Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--features/org.eclipse.emf.cdo.releng.setup-feature/.project (renamed from features/org.eclipse.emf.cdo.releng.setup.ide-feature/.project)2
-rw-r--r--features/org.eclipse.emf.cdo.releng.setup-feature/.settings/org.eclipse.ltk.core.refactoring.prefs (renamed from features/org.eclipse.emf.cdo.releng.setup.ide-feature/.settings/org.eclipse.ltk.core.refactoring.prefs)0
-rw-r--r--features/org.eclipse.emf.cdo.releng.setup-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs (renamed from features/org.eclipse.emf.cdo.releng.setup.ide-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs)0
-rw-r--r--features/org.eclipse.emf.cdo.releng.setup-feature/.settings/org.eclipse.mylyn.team.ui.prefs (renamed from features/org.eclipse.emf.cdo.releng.setup.ide-feature/.settings/org.eclipse.mylyn.team.ui.prefs)0
-rw-r--r--features/org.eclipse.emf.cdo.releng.setup-feature/build.properties (renamed from features/org.eclipse.emf.cdo.releng.setup.ide-feature/build.properties)0
-rw-r--r--features/org.eclipse.emf.cdo.releng.setup-feature/feature.properties (renamed from features/org.eclipse.emf.cdo.releng.setup.ide-feature/feature.properties)0
-rw-r--r--features/org.eclipse.emf.cdo.releng.setup-feature/feature.xml (renamed from features/org.eclipse.emf.cdo.releng.setup.ide-feature/feature.xml)30
-rw-r--r--features/org.eclipse.emf.cdo.releng.setup.editor-feature/feature.xml7
-rw-r--r--features/org.eclipse.emf.cdo.releng.setup.product-feature/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--features/org.eclipse.emf.cdo.releng.setup.product-feature/feature.xml21
-rw-r--r--features/org.eclipse.emf.cdo.releng.workingsets-feature/feature.xml14
-rw-r--r--features/org.eclipse.emf.cdo.site-feature/feature.xml2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/.classpath7
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/.project42
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.jdt.core.prefs405
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.jdt.ui.prefs (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.jdt.ui.prefs)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.ltk.core.refactoring.prefs (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.ltk.core.refactoring.prefs)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.mylyn.tasks.ui.prefs)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.mylyn.team.ui.prefs (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.mylyn.team.ui.prefs)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.pde.api.tools.prefs (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.pde.api.tools.prefs)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.pde.prefs (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.pde.prefs)9
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/META-INF/MANIFEST.MF15
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/build.properties10
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/AndPredicate.gifbin0 -> 1687 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/BuilderPredicate.gifbin0 -> 1676 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/AndPredicate.gifbin0 -> 129 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/BuilderPredicate.gifbin0 -> 129 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/FilePredicate.gifbin0 -> 129 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/NaturePredicate.gifbin0 -> 129 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/NotPredicate.gifbin0 -> 129 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/OrPredicate.gifbin0 -> 129 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/Predicate.gifbin0 -> 1656 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/RepositoryPredicate.gifbin0 -> 129 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/FilePredicate.gifbin0 -> 1703 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NamePredicate.gif (renamed from plugins/org.eclipse.emf.cdo.releng.workingsets.edit/icons/full/obj16/NamePredicate.gif)bin225 -> 225 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NaturePredicate.gifbin0 -> 1690 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NotPredicate.gifbin0 -> 1668 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/OrPredicate.gifbin0 -> 1668 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Predicate.gifbin0 -> 1656 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/RepositoryPredicate.gifbin0 -> 1690 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/plugin.properties38
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/plugin.xml22
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/AndPredicateItemProvider.java201
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/BuilderPredicateItemProvider.java198
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/FilePredicateItemProvider.java189
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NamePredicateItemProvider.java (renamed from plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/NamePredicateItemProvider.java)46
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NaturePredicateItemProvider.java180
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NotPredicateItemProvider.java201
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/OrPredicateItemProvider.java201
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/PredicatesEditPlugin.java96
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/PredicatesItemProviderAdapterFactory.java444
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/RepositoryPredicateItemProvider.java180
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/.classpath11
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/.project (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/.project)2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.jdt.core.prefs (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.jdt.core.prefs)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.jdt.ui.prefs (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.jdt.ui.prefs)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.ltk.core.refactoring.prefs (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.ltk.core.refactoring.prefs)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.mylyn.tasks.ui.prefs (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.mylyn.team.ui.prefs (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.mylyn.team.ui.prefs)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.pde.api.tools.prefs (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.pde.api.tools.prefs)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.pde.prefs31
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/META-INF/MANIFEST.MF18
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/about.html (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/about.html)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/about.ini (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/about.ini)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/about.mappings (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/about.mappings)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/about.properties (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/about.properties)14
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/build.properties (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/build.properties)17
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/copyright.txt (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/copyright.txt)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecore43
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecorediag286
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.genmodel38
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/modeling32.png (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/modeling32.png)bin2414 -> 2414 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/plugin.properties (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/plugin.properties)4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/plugin.xml24
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/AndPredicate.java42
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/BuilderPredicate.java50
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/FilePredicate.java77
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NamePredicate.java (renamed from plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/NamePredicate.java)21
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NaturePredicate.java50
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NotPredicate.java50
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/OrPredicate.java41
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/Predicate.java29
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesFactory.java106
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesPackage.java903
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/RepositoryPredicate.java51
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/AndPredicateImpl.java199
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/BuilderPredicateImpl.java227
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/FilePredicateImpl.java392
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NamePredicateImpl.java (renamed from plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/NamePredicateImpl.java)50
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NaturePredicateImpl.java222
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NotPredicateImpl.java225
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/OrPredicateImpl.java199
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesFactoryImpl.java265
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesPackageImpl.java507
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/RepositoryPredicateImpl.java229
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesAdapterFactory.java292
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesSwitch.java311
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/.classpath7
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/.project28
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.jdt.core.prefs405
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.jdt.ui.prefs119
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.mylyn.team.ui.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.pde.api.tools.prefs95
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.pde.prefs31
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/META-INF/MANIFEST.MF15
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/build.properties10
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/icons/full/obj16/PreferenceNode.gifbin0 -> 369 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/icons/full/obj16/Property.gifbin0 -> 329 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/plugin.properties30
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/plugin.xml22
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferenceNodeItemProvider.java243
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferencesEditPlugin.java96
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferencesItemProviderAdapterFactory.java241
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PropertyItemProvider.java194
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/.classpath7
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/.project28
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.jdt.core.prefs (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.jdt.core.prefs)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.jdt.ui.prefs119
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.mylyn.team.ui.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.pde.api.tools.prefs95
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.pde.prefs31
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/META-INF/MANIFEST.MF20
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/build.properties10
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/icons/full/obj16/PreferencesModelFile.gifbin0 -> 369 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/icons/full/wizban/NewPreferences.gifbin0 -> 2462 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/plugin.properties53
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/plugin.xml77
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/action/OpenEditorAction.java89
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/action/ShowInExplorerAction.java121
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/AllPreferencesPreferencePage.java150
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesActionBarContributor.java469
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesEditor.java1795
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesEditorPlugin.java98
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesModelWizard.java686
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/.classpath (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ui/.classpath)2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/.project24
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.jdt.core.prefs381
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.jdt.ui.prefs119
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.mylyn.team.ui.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.pde.api.tools.prefs95
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.pde.prefs31
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/META-INF/MANIFEST.MF16
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/about.html (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ui/about.html)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/about.ini15
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/about.mappings6
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/about.properties31
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/build.properties28
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/copyright.txt (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ui/copyright.txt)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore30
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.ecorediag124
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.genmodel22
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/modeling32.pngbin0 -> 2414 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/plugin.properties11
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/plugin.xml23
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferenceNode.java152
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferencesFactory.java52
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferencesPackage.java495
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/Property.java107
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferenceNodeImpl.java543
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesFactoryImpl.java246
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesPackageImpl.java347
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesURIHandlerImpl.java174
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PropertyImpl.java344
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesAdapterFactory.java152
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesSwitch.java142
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesUtil.java341
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.classpath7
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.project28
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.jdt.core.prefs405
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.jdt.ui.prefs119
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.mylyn.team.ui.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.pde.api.tools.prefs95
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.pde.prefs31
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/META-INF/MANIFEST.MF20
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/build.properties10
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/IncomingLinks.gifbin0 -> 85 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/OutgoingLinks.gifbin0 -> 86 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/PreferenceFilter.gifbin0 -> 222 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/PreferenceProfile.gifbin0 -> 554 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/Project.gifbin0 -> 233 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/WorkspaceConfiguration.gifbin0 -> 361 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/plugin.properties43
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/plugin.xml22
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/PreferenceFilterItemProvider.java335
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/PreferenceProfileItemProvider.java563
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectConfigEditPlugin.java101
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectConfigItemProviderAdapterFactory.java289
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectItemProvider.java766
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/WorkspaceConfigurationItemProvider.java240
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.classpath7
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.project28
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.jdt.core.prefs381
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.jdt.ui.prefs119
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.mylyn.team.ui.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.pde.api.tools.prefs95
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.pde.prefs31
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/META-INF/MANIFEST.MF24
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/build.properties10
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/icons/full/obj16/ProjectConfigModelFile.gifbin0 -> 361 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/icons/sample.gifbin0 -> 983 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/plugin.properties43
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/plugin.xml96
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigActionBarContributor.java712
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigEditor.java1850
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigEditorPlugin.java103
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigPreferencePage.java152
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/handlers/ApplyPreferenceProfilesHandler.java29
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/handlers/NavigateHandler.java133
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/.classpath7
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/.project24
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.jdt.core.prefs381
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.jdt.ui.prefs119
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.mylyn.team.ui.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.pde.api.tools.prefs95
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.pde.prefs31
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/META-INF/MANIFEST.MF21
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/about.html28
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/about.ini15
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/about.mappings6
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/about.properties31
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/build.properties28
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/copyright.txt8
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.ecore59
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.ecorediag330
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.genmodel38
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/modeling32.pngbin0 -> 2414 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/plugin.properties14
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/plugin.xml23
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/PreferenceFilter.java146
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/PreferenceProfile.java163
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/Project.java122
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/ProjectConfigFactory.java70
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/ProjectConfigPackage.java897
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/WorkspaceConfiguration.java117
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceFilterImpl.java438
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceProfileImpl.java498
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigFactoryImpl.java200
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigPackageImpl.java567
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigPlugin.java93
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigURIHandlerImpl.java129
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectImpl.java410
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/WorkspaceConfigurationImpl.java535
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigAdapterFactory.java192
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigSwitch.java188
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigUtil.java290
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigValidator.java263
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.release/release.properties5
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/.settings/org.eclipse.core.resources.prefs5
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/META-INF/MANIFEST.MF10
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ApiBaselineTask.gif (renamed from plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ApiBaseline.gif)bin588 -> 588 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/BuckminsterImportTask.gifbin0 -> 945 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/CompoundSetupTask.gifbin0 -> 596 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/DirectorCall.gifbin361 -> 0 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/EclipseIniTask.gifbin0 -> 576 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/EclipsePreferenceTask.gifbin0 -> 369 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/GitCloneTask.gif (renamed from plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/GitClone.gif)bin569 -> 569 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/InstallableUnit.gifbin585 -> 327 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/LinkLocation.gifbin215 -> 0 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/LinkLocationTask.gifbin0 -> 350 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/P2Repository.gifbin325 -> 353 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/P2Task.gifbin0 -> 585 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ResourceCopyTask.gifbin0 -> 581 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/StringVariableTask.gif (renamed from plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ToolPreference.gif)bin108 -> 108 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/TextModification.gifbin0 -> 533 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/TextModifyTask.gifbin0 -> 213 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ToolInstallation.gifbin608 -> 0 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/WorkingSetTask.gifbin0 -> 366 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/Workspace.gifbin578 -> 0 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/plugin.properties141
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ApiBaselineTaskItemProvider.java155
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/BranchItemProvider.java95
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/BuckminsterImportTaskItemProvider.java176
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/CompoundSetupTaskItemProvider.java210
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ConfigurableItemItemProvider.java93
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ConfigurationItemProvider.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipseIniTaskItemProvider.java175
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipsePreferenceTaskItemProvider.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ToolPreferenceItemProvider.java)83
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipseVersionItemProvider.java70
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/GitCloneTaskItemProvider.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/GitCloneItemProvider.java)100
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/InstallableUnitItemProvider.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/LinkLocationTaskItemProvider.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/LinkLocationItemProvider.java)81
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/OneTimeSetupTaskItemProvider.java127
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/P2RepositoryItemProvider.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/P2TaskItemProvider.java157
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/PreferencesItemProvider.java45
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ProjectItemProvider.java13
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ResourceCopyTaskItemProvider.java160
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupEditPlugin.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProvider.java8
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProviderAdapterFactory.java379
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupTaskContainerItemProvider.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/DirectorCallItemProvider.java)120
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupTaskItemProvider.java349
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/StringVariableTaskItemProvider.java188
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/TextModificationItemProvider.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ApiBaselineItemProvider.java)77
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/TextModifyTaskItemProvider.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ToolInstallationItemProvider.java)98
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/WorkingSetTaskItemProvider.java154
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.classpath7
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.project28
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.jdt.core.prefs405
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.jdt.ui.prefs119
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.mylyn.team.ui.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.pde.api.tools.prefs95
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.pde.prefs (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.pde.prefs)0
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/META-INF/MANIFEST.MF17
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/build.properties10
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/icons/full/obj16/SetupModelFile.gifbin0 -> 346 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/icons/full/wizban/NewSetup.gifbin0 -> 2462 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/plugin.properties72
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/plugin.xml105
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupActionBarContributor.java496
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditor.java1550
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditorAdvisor.java609
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditorPlugin.java97
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupModelWizard.java631
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor/.classpath6
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor/.settings/org.eclipse.core.resources.prefs5
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor/META-INF/MANIFEST.MF11
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor/icons/prefs.gif (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/icons/prefs.gif)bin308 -> 308 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor/icons/push_directly.gif (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/icons/push_directly.gif)bin222 -> 222 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor/icons/update.gif (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/icons/update.gif)bin332 -> 332 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.xml61
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditor.java60
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditorPlugin.java5
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupModelWizard.java17
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/ManualPerformAction.java71
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/PreferencesAction.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/PreferencesAction.java)2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/PushDirectAction.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/PushDirectAction.java)6
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ide/.classpath18
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ide/META-INF/MANIFEST.MF47
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ide/plugin.xml85
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Activator.java202
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Buckminster.java354
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/GitClones.java235
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/P2.java46
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Prefs.java98
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupContext.java42
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupIDE.java158
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Variables.java47
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/WorkingSets.java81
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/BuckyAction.java71
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.product/META-INF/MANIFEST.MF2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.product/Setup Dialog.launch16
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/Application.java58
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/Director.java188
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/SetupDialog.java310
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/ResourceManager.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/SWTResourceManager.java901
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.core.resources.prefs5
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ui/META-INF/MANIFEST.MF16
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/wb/swt/ResourceManager.java415
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/wb/swt/SWTResourceManager.java447
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/.classpath12
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/.refactorings/2013/8/33/refactorings.history3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/.refactorings/2013/8/33/refactorings.index16
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/META-INF/MANIFEST.MF53
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/Setup IDE.launch (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ide/Setup IDE.launch)7
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/build.properties3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/icons/install_wiz.gif (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ui/icons/install_wiz.gif)bin3550 -> 3550 bytes
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.setup25
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.xmi162
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/model/setup-rcp.genmodel95
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecore193
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecorediag886
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/model/setup.genmodel164
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/plugin.xml8
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/Activator.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Activator.java)51
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java540
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/emf/cdo/releng/setup/ui/ProgressLogDialog.java)56
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ResourceManager.java511
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/SWTResourceManager.java538
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaseline.java115
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaselineTask.java76
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java121
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/BuckminsterImportTask.java103
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/CompoundSetupTask.java49
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ConfigurableItem.java17
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseIniTask.java103
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipsePreferenceTask.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolPreference.java)32
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java31
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitCloneTask.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitClone.java)83
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java26
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocationTask.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocation.java)32
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/OneTimeSetupTask.java49
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java26
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Task.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/DirectorCall.java)39
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java20
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java53
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ResourceCopyTask.java76
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java23
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java108
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java2236
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTask.java139
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContainer.java42
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContext.java54
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskScope.java302
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/StringVariableTask.java103
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModification.java69
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModifyTask.java68
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolInstallation.java67
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Trigger.java327
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/WorkingSetTask.java42
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Progress.java47
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineImpl.java355
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineTaskImpl.java340
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java292
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BuckminsterImportTaskImpl.java515
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/CompoundSetupTaskImpl.java306
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurableItemImpl.java42
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/DirectorCallImpl.java231
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseIniTaskImpl.java374
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipsePreferenceTaskImpl.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolPreferenceImpl.java)131
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java102
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneImpl.java411
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneTaskImpl.java615
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java77
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationTaskImpl.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationImpl.java)84
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/OneTimeSetupTaskImpl.java215
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java76
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2TaskImpl.java516
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java64
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java150
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ResourceCopyTaskImpl.java298
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java322
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java144
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java1045
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskContainerImpl.java164
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskImpl.java471
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/StringVariableTaskImpl.java355
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModificationImpl.java221
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModifyTaskImpl.java250
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolInstallationImpl.java212
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/WorkingSetTaskImpl.java289
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/DownloadUtil.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Downloads.java)14
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/FileUtil.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Files.java)18
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/OS.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/OS.java)24
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/ServiceUtil.java58
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java340
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java497
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/StringExpander.java19
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/TargetPlatformUtil.java155
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLog.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLog.java)4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogMonitor.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogMonitor.java)8
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogProvider.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogProvider.java)2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogRunnable.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogRunnable.java)2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/.classpath7
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/.project (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ui/.project)4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.jdt.core.prefs381
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.jdt.ui.prefs119
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.ltk.core.refactoring.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.mylyn.team.ui.prefs3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.pde.api.tools.prefs95
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.pde.prefs31
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/META-INF/MANIFEST.MF21
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/about.html28
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/build.properties (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ui/build.properties)23
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/copyright.txt8
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/plugin.properties (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ui/plugin.properties)4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/plugin.xml25
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/src/org/eclipse/emf/cdo/releng/ui/Activator.java (renamed from plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/emf/cdo/releng/setup/ui/Activator.java)46
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.ui/src/org/eclipse/emf/cdo/releng/ui/preferences/RelengPreferencePage.java41
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets.edit/META-INF/MANIFEST.MF6
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets.edit/plugin.properties1
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetItemProvider.java28
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsEditPlugin.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsItemProviderAdapterFactory.java35
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets.editor/META-INF/MANIFEST.MF7
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.properties2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.xml6
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetManager.java2
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditor.java4
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditorPlugin.java3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsPreferencePage.java6
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets/META-INF/MANIFEST.MF3
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore15
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecorediag84
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.genmodel14
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/Predicate.java37
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSet.java44
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsFactory.java9
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsPackage.java213
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetImpl.java96
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsFactoryImpl.java19
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsPackageImpl.java110
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsAdapterFactory.java48
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsSwitch.java56
-rw-r--r--plugins/org.eclipse.emf.cdo.releng/local.setup68
514 files changed, 52913 insertions, 8863 deletions
diff --git a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/.project b/features/org.eclipse.emf.cdo.releng.setup-feature/.project
index 7cea4e3c28..b096c45541 100644
--- a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/.project
+++ b/features/org.eclipse.emf.cdo.releng.setup-feature/.project
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>org.eclipse.emf.cdo.releng.setup.ide-feature</name>
+ <name>org.eclipse.emf.cdo.releng.setup-feature</name>
<comment></comment>
<projects>
</projects>
diff --git a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/.settings/org.eclipse.ltk.core.refactoring.prefs b/features/org.eclipse.emf.cdo.releng.setup-feature/.settings/org.eclipse.ltk.core.refactoring.prefs
index 2e4a92ec2a..2e4a92ec2a 100644
--- a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ b/features/org.eclipse.emf.cdo.releng.setup-feature/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs b/features/org.eclipse.emf.cdo.releng.setup-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs
index d573634502..d573634502 100644
--- a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ b/features/org.eclipse.emf.cdo.releng.setup-feature/.settings/org.eclipse.mylyn.tasks.ui.prefs
diff --git a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/.settings/org.eclipse.mylyn.team.ui.prefs b/features/org.eclipse.emf.cdo.releng.setup-feature/.settings/org.eclipse.mylyn.team.ui.prefs
index 4d86eb45ba..4d86eb45ba 100644
--- a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/.settings/org.eclipse.mylyn.team.ui.prefs
+++ b/features/org.eclipse.emf.cdo.releng.setup-feature/.settings/org.eclipse.mylyn.team.ui.prefs
diff --git a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/build.properties b/features/org.eclipse.emf.cdo.releng.setup-feature/build.properties
index d71e9cdafe..d71e9cdafe 100644
--- a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/build.properties
+++ b/features/org.eclipse.emf.cdo.releng.setup-feature/build.properties
diff --git a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/feature.properties b/features/org.eclipse.emf.cdo.releng.setup-feature/feature.properties
index 304eb9af77..304eb9af77 100644
--- a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/feature.properties
+++ b/features/org.eclipse.emf.cdo.releng.setup-feature/feature.properties
diff --git a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/feature.xml b/features/org.eclipse.emf.cdo.releng.setup-feature/feature.xml
index 1dd2f9447b..620d8bb917 100644
--- a/features/org.eclipse.emf.cdo.releng.setup.ide-feature/feature.xml
+++ b/features/org.eclipse.emf.cdo.releng.setup-feature/feature.xml
@@ -10,7 +10,7 @@
Eike Stepper - initial API and implementation
-->
<feature
- id="org.eclipse.emf.cdo.releng.setup.ide"
+ id="org.eclipse.emf.cdo.releng.setup"
label="%featureName"
version="1.0.0.qualifier"
provider-name="%providerName"
@@ -36,38 +36,10 @@
</url>
<plugin
- id="org.eclipse.emf.cdo.releng.setup.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.emf.cdo.releng.setup.ide"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
id="org.eclipse.emf.cdo.releng.setup"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
- <plugin
- id="org.eclipse.emf.cdo.releng.setup.edit"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
- id="org.eclipse.emf.cdo.releng.setup.editor"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
</feature>
diff --git a/features/org.eclipse.emf.cdo.releng.setup.editor-feature/feature.xml b/features/org.eclipse.emf.cdo.releng.setup.editor-feature/feature.xml
index 42694f5b18..f04b9895da 100644
--- a/features/org.eclipse.emf.cdo.releng.setup.editor-feature/feature.xml
+++ b/features/org.eclipse.emf.cdo.releng.setup.editor-feature/feature.xml
@@ -35,12 +35,9 @@
<discovery label="%updateSiteName" url="http://www.eclipse.org/modeling/updates/"/>
</url>
- <plugin
+ <includes
id="org.eclipse.emf.cdo.releng.setup"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
+ version="0.0.0"/>
<plugin
id="org.eclipse.emf.cdo.releng.setup.edit"
diff --git a/features/org.eclipse.emf.cdo.releng.setup.product-feature/.settings/org.eclipse.core.resources.prefs b/features/org.eclipse.emf.cdo.releng.setup.product-feature/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000..ea8ba69565
--- /dev/null
+++ b/features/org.eclipse.emf.cdo.releng.setup.product-feature/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/Setup.product=UTF-8
diff --git a/features/org.eclipse.emf.cdo.releng.setup.product-feature/feature.xml b/features/org.eclipse.emf.cdo.releng.setup.product-feature/feature.xml
index 7e3e1fecd8..9fa6694ed9 100644
--- a/features/org.eclipse.emf.cdo.releng.setup.product-feature/feature.xml
+++ b/features/org.eclipse.emf.cdo.releng.setup.product-feature/feature.xml
@@ -48,13 +48,6 @@
unpack="false"/>
<plugin
- id="org.eclipse.emf.cdo.releng.setup.ui"
- download-size="0"
- install-size="0"
- version="0.0.0"
- unpack="false"/>
-
- <plugin
id="org.eclipse.emf.cdo.releng.setup.product"
download-size="0"
install-size="0"
@@ -88,4 +81,18 @@
install-size="0"
version="0.0.0"/>
+ <plugin
+ id="org.eclipse.equinox.p2.updatesite"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.cdo.releng.setup.editor.rcp"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
</feature>
diff --git a/features/org.eclipse.emf.cdo.releng.workingsets-feature/feature.xml b/features/org.eclipse.emf.cdo.releng.workingsets-feature/feature.xml
index 3d4b8f4f78..8fb33fd88f 100644
--- a/features/org.eclipse.emf.cdo.releng.workingsets-feature/feature.xml
+++ b/features/org.eclipse.emf.cdo.releng.workingsets-feature/feature.xml
@@ -56,4 +56,18 @@
version="0.0.0"
unpack="false"/>
+ <plugin
+ id="org.eclipse.emf.cdo.releng.predicates"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+ <plugin
+ id="org.eclipse.emf.cdo.releng.predicates.edit"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
</feature>
diff --git a/features/org.eclipse.emf.cdo.site-feature/feature.xml b/features/org.eclipse.emf.cdo.site-feature/feature.xml
index eaaafbbdd6..aa42882e84 100644
--- a/features/org.eclipse.emf.cdo.site-feature/feature.xml
+++ b/features/org.eclipse.emf.cdo.site-feature/feature.xml
@@ -47,7 +47,7 @@
<includes id="org.eclipse.emf.cdo.releng.projectcopy" version="0.0.0"/>
<includes id="org.eclipse.emf.cdo.releng.relativepaths" version="0.0.0"/>
<includes id="org.eclipse.emf.cdo.releng.setup.editor" version="0.0.0"/>
- <includes id="org.eclipse.emf.cdo.releng.setup.ide" version="0.0.0"/>
+ <includes id="org.eclipse.emf.cdo.releng.setup" version="0.0.0"/>
<includes id="org.eclipse.emf.cdo.releng.setup.product" version="0.0.0"/>
<includes id="org.eclipse.emf.cdo.releng.tasks" version="0.0.0"/>
<includes id="org.eclipse.emf.cdo.releng.version" version="0.0.0"/>
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.classpath b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.classpath
new file mode 100644
index 0000000000..3bc247511f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.project b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.project
new file mode 100644
index 0000000000..67b5648e49
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.project
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.cdo.releng.predicates.edit</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.emf.cdo.releng.version.VersionBuilder</name>
+ <arguments>
+ <dictionary>
+ <key>ignore.schema.builder</key>
+ <value>true</value>
+ </dictionary>
+ <dictionary>
+ <key>release.path</key>
+ <value>/org.eclipse.emf.cdo.releng.release/release.xml</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.emf.cdo.releng.version.VersionNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..b3af741094
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,405 @@
+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.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+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.doc.comment.support=enabled
+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.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+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=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+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.includeNullInfoFromAsserts=disabled
+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.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.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.unusedObjectAllocation=ignore
+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.unusedTypeParameter=ignore
+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,HIGH,LOW,LOW,LOW,LOW,LOW
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED
+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_annotation=0
+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_method_declaration=0
+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_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+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.alignment_for_union_type_in_multicatch=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=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.format_block_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=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+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.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+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.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+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=2
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=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_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=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_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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_try=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_semicolon_in_try_resources=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_try=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_try=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_semicolon_in_try_resources=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=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+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=space
+org.eclipse.jdt.core.formatter.tabulation.size=2
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.jdt.ui.prefs
index 3fc140fcdc..3fc140fcdc 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.jdt.ui.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.jdt.ui.prefs
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.ltk.core.refactoring.prefs
index 864e30fe5d..864e30fe5d 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs
index b050639a54..b050639a54 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.mylyn.team.ui.prefs
index 2f50f36c0c..2f50f36c0c 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.mylyn.team.ui.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.mylyn.team.ui.prefs
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.pde.api.tools.prefs
index 0c17d59e45..0c17d59e45 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.pde.api.tools.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.pde.prefs
index fd493c44ac..fe01bb701d 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.pde.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/.settings/org.eclipse.pde.prefs
@@ -1,26 +1,25 @@
+#Thu Feb 04 09:44:24 CET 2010
compilers.f.unresolved-features=1
compilers.f.unresolved-plugins=1
compilers.incompatible-environment=1
compilers.p.build=1
compilers.p.build.bin.includes=1
-compilers.p.build.encodings=2
-compilers.p.build.java.compiler=2
compilers.p.build.java.compliance=1
compilers.p.build.missing.output=2
compilers.p.build.output.library=1
compilers.p.build.source.library=1
compilers.p.build.src.includes=1
compilers.p.deprecated=2
-compilers.p.discouraged-class=2
+compilers.p.discouraged-class=1
compilers.p.internal=1
-compilers.p.missing-packages=2
+compilers.p.missing-packages=1
compilers.p.missing-version-export-package=1
compilers.p.missing-version-import-package=1
compilers.p.missing-version-require-bundle=1
compilers.p.no-required-att=0
compilers.p.not-externalized-att=2
compilers.p.unknown-attribute=1
-compilers.p.unknown-class=2
+compilers.p.unknown-class=1
compilers.p.unknown-element=1
compilers.p.unknown-identifier=1
compilers.p.unknown-resource=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..cf12e30141
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.cdo.releng.predicates.edit;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.emf.cdo.releng.predicates.provider.PredicatesEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.cdo.releng.predicates.provider
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.emf.cdo.releng.predicates;bundle-version="[1.0.0,2.0.0)";visibility:=reexport,
+ org.eclipse.emf.edit;bundle-version="[2.6.0,3.0.0)";visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/build.properties b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/build.properties
new file mode 100644
index 0000000000..6e3e902e80
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/AndPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/AndPredicate.gif
new file mode 100644
index 0000000000..d1fde2b075
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/AndPredicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/BuilderPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/BuilderPredicate.gif
new file mode 100644
index 0000000000..895f0cfa47
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/BuilderPredicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/AndPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/AndPredicate.gif
new file mode 100644
index 0000000000..498364f1c1
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/AndPredicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/BuilderPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/BuilderPredicate.gif
new file mode 100644
index 0000000000..2b69256029
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/BuilderPredicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/FilePredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/FilePredicate.gif
new file mode 100644
index 0000000000..1e5345fb32
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/FilePredicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/NaturePredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/NaturePredicate.gif
new file mode 100644
index 0000000000..8a5c70cbd7
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/NaturePredicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/NotPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/NotPredicate.gif
new file mode 100644
index 0000000000..ed87474740
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/NotPredicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/OrPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/OrPredicate.gif
new file mode 100644
index 0000000000..14af8aaee9
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/OrPredicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/Predicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/Predicate.gif
new file mode 100644
index 0000000000..9500f6ee59
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/Predicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/RepositoryPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/RepositoryPredicate.gif
new file mode 100644
index 0000000000..134551bff7
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Corel Auto-Preserve/RepositoryPredicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/FilePredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/FilePredicate.gif
new file mode 100644
index 0000000000..ad6a8e9252
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/FilePredicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/icons/full/obj16/NamePredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NamePredicate.gif
index b983f27e28..b983f27e28 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/icons/full/obj16/NamePredicate.gif
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NamePredicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NaturePredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NaturePredicate.gif
new file mode 100644
index 0000000000..2379f71de3
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NaturePredicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NotPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NotPredicate.gif
new file mode 100644
index 0000000000..83fcadfe9a
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/NotPredicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/OrPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/OrPredicate.gif
new file mode 100644
index 0000000000..f6ffb2ea58
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/OrPredicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Predicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Predicate.gif
new file mode 100644
index 0000000000..200df9b48e
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/Predicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/RepositoryPredicate.gif b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/RepositoryPredicate.gif
new file mode 100644
index 0000000000..7b4fe4abaf
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/icons/full/obj16/RepositoryPredicate.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/plugin.properties
new file mode 100644
index 0000000000..7a2524492c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/plugin.properties
@@ -0,0 +1,38 @@
+#
+
+pluginName = Predicates Edit Support
+providerName = www.example.org
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_Predicate_type = Predicate
+_UI_NamePredicate_type = Name Predicate
+_UI_RepositoryPredicate_type = Repository Predicate
+_UI_AndPredicate_type = And Predicate
+_UI_OrPredicate_type = Or Predicate
+_UI_NotPredicate_type = Not Predicate
+_UI_NaturePredicate_type = Nature Predicate
+_UI_BuilderPredicate_type = Builder Predicate
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_NamePredicate_pattern_feature = Pattern
+_UI_RepositoryPredicate_project_feature = Project
+_UI_AndPredicate_operands_feature = Operands
+_UI_OrPredicate_operands_feature = Operands
+_UI_NotPredicate_operand_feature = Operand
+_UI_NaturePredicate_nature_feature = Nature
+_UI_BuilderPredicate_builder_feature = Builder
+_UI_Unknown_feature = Unspecified
+
+_UI_FilePredicate_type = File Predicate
+_UI_FilePredicate_filePattern_feature = File Pattern
+_UI_FilePredicate_contentPattern_feature = Content Pattern
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/plugin.xml
new file mode 100644
index 0000000000..1619d79f11
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <!-- @generated predicates -->
+ <factory
+ uri="http://www.eclipse.org/CDO/releng/predicates/1.0"
+ class="org.eclipse.emf.cdo.releng.predicates.provider.PredicatesItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/AndPredicateItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/AndPredicateItemProvider.java
new file mode 100644
index 0000000000..a2dbae205c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/AndPredicateItemProvider.java
@@ -0,0 +1,201 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.provider;
+
+import org.eclipse.emf.cdo.releng.predicates.AndPredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.predicates.AndPredicate} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class AndPredicateItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AndPredicateItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
+ {
+ if (childrenFeatures == null)
+ {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child)
+ {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns AndPredicate.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/AndPredicate"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getText(Object object)
+ {
+ return "And";
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(AndPredicate.class))
+ {
+ case PredicatesPackage.AND_PREDICATE__OPERANDS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS,
+ PredicatesFactory.eINSTANCE.createNamePredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS,
+ PredicatesFactory.eINSTANCE.createRepositoryPredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS,
+ PredicatesFactory.eINSTANCE.createAndPredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS,
+ PredicatesFactory.eINSTANCE.createOrPredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS,
+ PredicatesFactory.eINSTANCE.createNotPredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS,
+ PredicatesFactory.eINSTANCE.createNaturePredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS,
+ PredicatesFactory.eINSTANCE.createBuilderPredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.AND_PREDICATE__OPERANDS,
+ PredicatesFactory.eINSTANCE.createFilePredicate()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/BuilderPredicateItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/BuilderPredicateItemProvider.java
new file mode 100644
index 0000000000..10252e020d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/BuilderPredicateItemProvider.java
@@ -0,0 +1,198 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.provider;
+
+import org.eclipse.emf.cdo.releng.predicates.BuilderPredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.core.resources.ICommand;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BuilderPredicateItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot();
+
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BuilderPredicateItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addBuilderPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Builder feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected void addBuilderPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory)
+ .getRootAdapterFactory(), getResourceLocator(), getString("_UI_BuilderPredicate_builder_feature"), getString(
+ "_UI_PropertyDescriptor_description", "_UI_BuilderPredicate_builder_feature", "_UI_BuilderPredicate_type"),
+ PredicatesPackage.Literals.BUILDER_PREDICATE__BUILDER, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)
+ {
+ @Override
+ public Collection<?> getChoiceOfValues(Object object)
+ {
+ List<String> result = new ArrayList<String>();
+ for (IProject project : WORKSPACE_ROOT.getProjects())
+ {
+ try
+ {
+ for (ICommand command : project.getDescription().getBuildSpec())
+ {
+ String name = command.getBuilderName();
+ if (!result.contains(name))
+ {
+ result.add(name);
+ }
+ }
+ }
+ catch (CoreException ex)
+ {
+ // Ignore
+ }
+ }
+ Collections.sort(result);
+ return result;
+ }
+ });
+ }
+
+ /**
+ * This returns BuilderPredicate.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/BuilderPredicate"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((BuilderPredicate)object).getBuilder();
+ return label == null ? "" : label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(BuilderPredicate.class))
+ {
+ case PredicatesPackage.BUILDER_PREDICATE__BUILDER:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/FilePredicateItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/FilePredicateItemProvider.java
new file mode 100644
index 0000000000..5fbe4c56e6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/FilePredicateItemProvider.java
@@ -0,0 +1,189 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.provider;
+
+import org.eclipse.emf.cdo.releng.predicates.FilePredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.predicates.FilePredicate} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class FilePredicateItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FilePredicateItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addFilePatternPropertyDescriptor(object);
+ addContentPatternPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the File Pattern feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addFilePatternPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_FilePredicate_filePattern_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_FilePredicate_filePattern_feature",
+ "_UI_FilePredicate_type"), PredicatesPackage.Literals.FILE_PREDICATE__FILE_PATTERN, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Content Pattern feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addContentPatternPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_FilePredicate_contentPattern_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_FilePredicate_contentPattern_feature",
+ "_UI_FilePredicate_type"), PredicatesPackage.Literals.FILE_PREDICATE__CONTENT_PATTERN, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns FilePredicate.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/FilePredicate"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getText(Object object)
+ {
+ FilePredicate filePredicate = (FilePredicate)object;
+ String label = filePredicate.getFilePattern();
+ label = label == null ? "" : label;
+ String contentPattern = filePredicate.getContentPattern();
+ if (contentPattern != null)
+ {
+ label += " -> " + contentPattern;
+ }
+ return label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(FilePredicate.class))
+ {
+ case PredicatesPackage.FILE_PREDICATE__FILE_PATTERN:
+ case PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/NamePredicateItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NamePredicateItemProvider.java
index 1992103019..9052c5552f 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/NamePredicateItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NamePredicateItemProvider.java
@@ -1,22 +1,15 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
+/**
*/
-package org.eclipse.emf.cdo.releng.workingsets.provider;
+package org.eclipse.emf.cdo.releng.predicates.provider;
-import org.eclipse.emf.cdo.releng.workingsets.NamePredicate;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage;
+import org.eclipse.emf.cdo.releng.predicates.NamePredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
@@ -31,7 +24,7 @@ import java.util.Collection;
import java.util.List;
/**
- * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.workingsets.NamePredicate} object.
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.predicates.NamePredicate} object.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -76,12 +69,19 @@ public class NamePredicateItemProvider extends ItemProviderAdapter implements IE
*/
protected void addPatternPropertyDescriptor(Object object)
{
- itemPropertyDescriptors.add(createItemPropertyDescriptor(
- ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
- getString("_UI_NamePredicate_pattern_feature"),
- getString("_UI_PropertyDescriptor_description", "_UI_NamePredicate_pattern_feature", "_UI_NamePredicate_type"),
- WorkingSetsPackage.Literals.NAME_PREDICATE__PATTERN, true, false, false,
- ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_NamePredicate_pattern_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_NamePredicate_pattern_feature", "_UI_NamePredicate_type"),
+ PredicatesPackage.Literals.NAME_PREDICATE__PATTERN,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
}
/**
@@ -134,9 +134,9 @@ public class NamePredicateItemProvider extends ItemProviderAdapter implements IE
switch (notification.getFeatureID(NamePredicate.class))
{
- case WorkingSetsPackage.NAME_PREDICATE__PATTERN:
- fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
- return;
+ case PredicatesPackage.NAME_PREDICATE__PATTERN:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
}
super.notifyChanged(notification);
}
@@ -163,7 +163,7 @@ public class NamePredicateItemProvider extends ItemProviderAdapter implements IE
@Override
public ResourceLocator getResourceLocator()
{
- return WorkingSetsEditPlugin.INSTANCE;
+ return ((IChildCreationExtender)adapterFactory).getResourceLocator();
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NaturePredicateItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NaturePredicateItemProvider.java
new file mode 100644
index 0000000000..2b1990e702
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NaturePredicateItemProvider.java
@@ -0,0 +1,180 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.provider;
+
+import org.eclipse.emf.cdo.releng.predicates.NaturePredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.core.resources.IProjectNatureDescriptor;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NaturePredicateItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ private static final IWorkspace WORKSPACE = ResourcesPlugin.getWorkspace();
+
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NaturePredicateItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addNaturePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Nature feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected void addNaturePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory)
+ .getRootAdapterFactory(), getResourceLocator(), getString("_UI_NaturePredicate_nature_feature"), getString(
+ "_UI_PropertyDescriptor_description", "_UI_NaturePredicate_nature_feature", "_UI_NaturePredicate_type"),
+ PredicatesPackage.Literals.NATURE_PREDICATE__NATURE, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)
+ {
+ @Override
+ public Collection<?> getChoiceOfValues(Object object)
+ {
+ List<String> result = new ArrayList<String>();
+ for (IProjectNatureDescriptor descriptor : WORKSPACE.getNatureDescriptors())
+ {
+ result.add(descriptor.getNatureId());
+ }
+ return result;
+ }
+ });
+ }
+
+ /**
+ * This returns NaturePredicate.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/NaturePredicate"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((NaturePredicate)object).getNature();
+ return label == null ? "" : label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(NaturePredicate.class))
+ {
+ case PredicatesPackage.NATURE_PREDICATE__NATURE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NotPredicateItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NotPredicateItemProvider.java
new file mode 100644
index 0000000000..246761d577
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/NotPredicateItemProvider.java
@@ -0,0 +1,201 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.provider;
+
+import org.eclipse.emf.cdo.releng.predicates.NotPredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.predicates.NotPredicate} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NotPredicateItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotPredicateItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
+ {
+ if (childrenFeatures == null)
+ {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child)
+ {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns NotPredicate.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/NotPredicate"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getText(Object object)
+ {
+ return "Not";
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(NotPredicate.class))
+ {
+ case PredicatesPackage.NOT_PREDICATE__OPERAND:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND,
+ PredicatesFactory.eINSTANCE.createNamePredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND,
+ PredicatesFactory.eINSTANCE.createRepositoryPredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND,
+ PredicatesFactory.eINSTANCE.createAndPredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND,
+ PredicatesFactory.eINSTANCE.createOrPredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND,
+ PredicatesFactory.eINSTANCE.createNotPredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND,
+ PredicatesFactory.eINSTANCE.createNaturePredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND,
+ PredicatesFactory.eINSTANCE.createBuilderPredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.NOT_PREDICATE__OPERAND,
+ PredicatesFactory.eINSTANCE.createFilePredicate()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/OrPredicateItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/OrPredicateItemProvider.java
new file mode 100644
index 0000000000..4fe4f2710a
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/OrPredicateItemProvider.java
@@ -0,0 +1,201 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.provider;
+
+import org.eclipse.emf.cdo.releng.predicates.OrPredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.predicates.OrPredicate} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OrPredicateItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OrPredicateItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
+ {
+ if (childrenFeatures == null)
+ {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child)
+ {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns OrPredicate.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/OrPredicate"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getText(Object object)
+ {
+ return "Or";
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(OrPredicate.class))
+ {
+ case PredicatesPackage.OR_PREDICATE__OPERANDS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS,
+ PredicatesFactory.eINSTANCE.createNamePredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS,
+ PredicatesFactory.eINSTANCE.createRepositoryPredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS,
+ PredicatesFactory.eINSTANCE.createAndPredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS,
+ PredicatesFactory.eINSTANCE.createOrPredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS,
+ PredicatesFactory.eINSTANCE.createNotPredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS,
+ PredicatesFactory.eINSTANCE.createNaturePredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS,
+ PredicatesFactory.eINSTANCE.createBuilderPredicate()));
+
+ newChildDescriptors.add(createChildParameter(PredicatesPackage.Literals.OR_PREDICATE__OPERANDS,
+ PredicatesFactory.eINSTANCE.createFilePredicate()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/PredicatesEditPlugin.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/PredicatesEditPlugin.java
new file mode 100644
index 0000000000..e4e95e2a5d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/PredicatesEditPlugin.java
@@ -0,0 +1,96 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Predicates edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class PredicatesEditPlugin extends EMFPlugin
+{
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final PredicatesEditPlugin INSTANCE = new PredicatesEditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredicatesEditPlugin()
+ {
+ super
+ (new ResourceLocator []
+ {
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator()
+ {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin()
+ {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipsePlugin
+ {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation()
+ {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/PredicatesItemProviderAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/PredicatesItemProviderAdapterFactory.java
new file mode 100644
index 0000000000..215f8d579d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/PredicatesItemProviderAdapterFactory.java
@@ -0,0 +1,444 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.cdo.releng.predicates.util.PredicatesAdapterFactory;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ChildCreationExtenderManager;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicatesItemProviderAdapterFactory extends PredicatesAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable, IChildCreationExtender
+{
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This helps manage the child creation extenders.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(PredicatesEditPlugin.INSTANCE, PredicatesPackage.eNS_URI);
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredicatesItemProviderAdapterFactory()
+ {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.predicates.NamePredicate} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NamePredicateItemProvider namePredicateItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.predicates.NamePredicate}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createNamePredicateAdapter()
+ {
+ if (namePredicateItemProvider == null)
+ {
+ namePredicateItemProvider = new NamePredicateItemProvider(this);
+ }
+
+ return namePredicateItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RepositoryPredicateItemProvider repositoryPredicateItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createRepositoryPredicateAdapter()
+ {
+ if (repositoryPredicateItemProvider == null)
+ {
+ repositoryPredicateItemProvider = new RepositoryPredicateItemProvider(this);
+ }
+
+ return repositoryPredicateItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.predicates.AndPredicate} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AndPredicateItemProvider andPredicateItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.predicates.AndPredicate}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createAndPredicateAdapter()
+ {
+ if (andPredicateItemProvider == null)
+ {
+ andPredicateItemProvider = new AndPredicateItemProvider(this);
+ }
+
+ return andPredicateItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.predicates.OrPredicate} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OrPredicateItemProvider orPredicateItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.predicates.OrPredicate}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createOrPredicateAdapter()
+ {
+ if (orPredicateItemProvider == null)
+ {
+ orPredicateItemProvider = new OrPredicateItemProvider(this);
+ }
+
+ return orPredicateItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.predicates.NotPredicate} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NotPredicateItemProvider notPredicateItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.predicates.NotPredicate}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createNotPredicateAdapter()
+ {
+ if (notPredicateItemProvider == null)
+ {
+ notPredicateItemProvider = new NotPredicateItemProvider(this);
+ }
+
+ return notPredicateItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NaturePredicateItemProvider naturePredicateItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createNaturePredicateAdapter()
+ {
+ if (naturePredicateItemProvider == null)
+ {
+ naturePredicateItemProvider = new NaturePredicateItemProvider(this);
+ }
+
+ return naturePredicateItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BuilderPredicateItemProvider builderPredicateItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createBuilderPredicateAdapter()
+ {
+ if (builderPredicateItemProvider == null)
+ {
+ builderPredicateItemProvider = new BuilderPredicateItemProvider(this);
+ }
+
+ return builderPredicateItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.predicates.FilePredicate} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FilePredicateItemProvider filePredicateItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.predicates.FilePredicate}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createFilePredicateAdapter()
+ {
+ if (filePredicateItemProvider == null)
+ {
+ filePredicateItemProvider = new FilePredicateItemProvider(this);
+ }
+
+ return filePredicateItemProvider;
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComposeableAdapterFactory getRootAdapterFactory()
+ {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory)
+ {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type)
+ {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type)
+ {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type)
+ {
+ if (isFactoryForType(type))
+ {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter)))
+ {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List<IChildCreationExtender> getChildCreationExtenders()
+ {
+ return childCreationExtenderManager.getChildCreationExtenders();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain)
+ {
+ return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ResourceLocator getResourceLocator()
+ {
+ return childCreationExtenderManager;
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener)
+ {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener)
+ {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void fireNotifyChanged(Notification notification)
+ {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null)
+ {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void dispose()
+ {
+ if (namePredicateItemProvider != null) namePredicateItemProvider.dispose();
+ if (repositoryPredicateItemProvider != null) repositoryPredicateItemProvider.dispose();
+ if (andPredicateItemProvider != null) andPredicateItemProvider.dispose();
+ if (orPredicateItemProvider != null) orPredicateItemProvider.dispose();
+ if (notPredicateItemProvider != null) notPredicateItemProvider.dispose();
+ if (naturePredicateItemProvider != null) naturePredicateItemProvider.dispose();
+ if (builderPredicateItemProvider != null) builderPredicateItemProvider.dispose();
+ if (filePredicateItemProvider != null) filePredicateItemProvider.dispose();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/RepositoryPredicateItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/RepositoryPredicateItemProvider.java
new file mode 100644
index 0000000000..1558b5f6f2
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates.edit/src/org/eclipse/emf/cdo/releng/predicates/provider/RepositoryPredicateItemProvider.java
@@ -0,0 +1,180 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.provider;
+
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+import org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class RepositoryPredicateItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot();
+
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RepositoryPredicateItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addProjectPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Project feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected void addProjectPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory)
+ .getRootAdapterFactory(), getResourceLocator(), getString("_UI_RepositoryPredicate_project_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_RepositoryPredicate_project_feature",
+ "_UI_RepositoryPredicate_type"), PredicatesPackage.Literals.REPOSITORY_PREDICATE__PROJECT, true, false,
+ false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)
+ {
+ @Override
+ public Collection<?> getChoiceOfValues(Object object)
+ {
+ List<IProject> result = new ArrayList<IProject>();
+ for (IProject project : WORKSPACE_ROOT.getProjects())
+ {
+ result.add(project);
+ }
+ return result;
+ }
+ });
+ }
+
+ /**
+ * This returns RepositoryPredicate.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/RepositoryPredicate"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getText(Object object)
+ {
+ IProject project = ((RepositoryPredicate)object).getProject();
+ return project == null ? "" : project.getName();
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(RepositoryPredicate.class))
+ {
+ case PredicatesPackage.REPOSITORY_PREDICATE__PROJECT:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/.classpath b/plugins/org.eclipse.emf.cdo.releng.predicates/.classpath
new file mode 100644
index 0000000000..ff7f2117f3
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.classpath
@@ -0,0 +1,11 @@
+<?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/egit/core/**"/>
+ </accessrules>
+ </classpathentry>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.project b/plugins/org.eclipse.emf.cdo.releng.predicates/.project
index f657bfbe45..d9d0447b12 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.project
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.project
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>org.eclipse.emf.cdo.releng.setup.ide</name>
+ <name>org.eclipse.emf.cdo.releng.predicates</name>
<comment></comment>
<projects>
</projects>
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000..172e111380
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding//model/predicates.ecorediag=UTF-8
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.jdt.core.prefs
index 48aafaf7ea..48aafaf7ea 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.jdt.core.prefs
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.jdt.ui.prefs
index 3fc140fcdc..3fc140fcdc 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.jdt.ui.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.jdt.ui.prefs
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.ltk.core.refactoring.prefs
index 864e30fe5d..864e30fe5d 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.ltk.core.refactoring.prefs
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.mylyn.tasks.ui.prefs
index b050639a54..b050639a54 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.mylyn.tasks.ui.prefs
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.mylyn.team.ui.prefs
index 2f50f36c0c..2f50f36c0c 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.mylyn.team.ui.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.mylyn.team.ui.prefs
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.pde.api.tools.prefs
index 0c17d59e45..0c17d59e45 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.pde.api.tools.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.pde.api.tools.prefs
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000000..fe01bb701d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,31 @@
+#Thu Feb 04 09:44:24 CET 2010
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=2
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=1
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+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
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.predicates/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..97af82bc76
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.emf.cdo.releng.predicates;singleton:=true
+Bundle-Version: 1.0.200.qualifier
+Bundle-ClassPath: .
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.emf.ecore;visibility:=reexport;bundle-version="[2.9.0,3.0.0)",
+ org.eclipse.core.resources;visibility:=reexport;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.team.core;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.egit.core;bundle-version="[3.0.1,5.0.0)"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.cdo.releng.predicates,
+ org.eclipse.emf.cdo.releng.predicates.impl,
+ org.eclipse.emf.cdo.releng.predicates.util
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/about.html b/plugins/org.eclipse.emf.cdo.releng.predicates/about.html
index d35d5aed64..d35d5aed64 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/about.html
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/about.html
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/about.ini b/plugins/org.eclipse.emf.cdo.releng.predicates/about.ini
index 32006ae5d6..32006ae5d6 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/about.ini
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/about.ini
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/about.mappings b/plugins/org.eclipse.emf.cdo.releng.predicates/about.mappings
index bddaab4310..bddaab4310 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/about.mappings
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/about.mappings
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/about.properties b/plugins/org.eclipse.emf.cdo.releng.predicates/about.properties
index a77a8cabda..9134ef220b 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/about.properties
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/about.properties
@@ -1,4 +1,4 @@
-# Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
+# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) 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
@@ -16,8 +16,16 @@
# append it to the end of the file, and change the code to use the new name.
# ==============================================================================
-featureName = Setup Development Environment Product IDE
-featureText = Setup Development Environment Product IDE\n\
+featureName = CDO Release Engineering Dynamic Working Sets
+featureText = CDO Release Engineering Dynamic Working Sets\n\
Version: {featureVersion}\n\
Build id: {0}\n\
\n\
+Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. All rights reserved.\n\
+\n\
+Visit http://www.eclipse.org/cdo
+
+# ==============================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# The above properties have been shipped for translation.
+# ==============================================================================
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/build.properties b/plugins/org.eclipse.emf.cdo.releng.predicates/build.properties
index 87627c2c7a..eb09361899 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/build.properties
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/build.properties
@@ -1,4 +1,4 @@
-# Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
+# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) 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
@@ -11,19 +11,18 @@
source.. = src/
output.. = bin/
-bin.includes = plugin.xml,\
- META-INF/,\
+bin.includes = META-INF/,\
.,\
+ plugin.xml,\
about.html,\
- copyright.txt,\
- plugin.properties,\
- icons/,\
about.ini,\
about.mappings,\
about.properties,\
- modeling32.png
-src.includes = about.html,\
copyright.txt,\
- Setup IDE.launch
+ modeling32.png,\
+ plugin.properties,\
+ model/
+src.includes = about.html,\
+ copyright.txt
generateSourceReferences = true
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/copyright.txt b/plugins/org.eclipse.emf.cdo.releng.predicates/copyright.txt
index 1c77978050..1c77978050 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/copyright.txt
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/copyright.txt
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecore b/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecore
new file mode 100644
index 0000000000..a8aad151d9
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecore
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="predicates" nsURI="http://www.eclipse.org/CDO/releng/predicates/1.0"
+ nsPrefix="predicates">
+ <eClassifiers xsi:type="ecore:EClass" name="Predicate" abstract="true" interface="true">
+ <eOperations name="matches" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eParameters name="project" eType="#//Project"/>
+ </eOperations>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="Project" instanceClassName="org.eclipse.core.resources.IProject"/>
+ <eClassifiers xsi:type="ecore:EClass" name="NamePredicate" eSuperTypes="#//Predicate">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="pattern" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="RepositoryPredicate" eSuperTypes="#//Predicate">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="project" eType="#//Project"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="AndPredicate" eSuperTypes="#//Predicate">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operands" upperBound="-1"
+ eType="#//Predicate" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OrPredicate" eSuperTypes="#//Predicate">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operands" upperBound="-1"
+ eType="#//Predicate" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NotPredicate" eSuperTypes="#//Predicate">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="operand" eType="#//Predicate"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="NaturePredicate" eSuperTypes="#//Predicate">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="nature" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BuilderPredicate" eSuperTypes="#//Predicate">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="builder" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="FilePredicate" eSuperTypes="#//Predicate">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="filePattern" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="contentPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecorediag b/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecorediag
new file mode 100644
index 0000000000..4c5f0a16a9
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecorediag
@@ -0,0 +1,286 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_mmJkYAvBEeOoPqB4RyWmHw" type="EcoreTools" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_mmQ5IAvBEeOoPqB4RyWmHw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_mmSHQAvBEeOoPqB4RyWmHw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_mmSHQQvBEeOoPqB4RyWmHw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_mmSHQgvBEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mmSHQwvBEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mmSHRAvBEeOoPqB4RyWmHw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mmSuUAvBEeOoPqB4RyWmHw" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_mmSuVAvBEeOoPqB4RyWmHw" type="2002">
+ <element xmi:type="ecore:EOperation" href="predicates.ecore#//Predicate/matches"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mmSuVQvBEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_mmSuUQvBEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mmSuUgvBEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mmSuUwvBEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mmQ5IQvBEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="predicates.ecore#//Predicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mmQ5IgvBEeOoPqB4RyWmHw" x="495" y="45"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mmTVYAvBEeOoPqB4RyWmHw" type="1004">
+ <children xmi:type="notation:Node" xmi:id="_mmT8cAvBEeOoPqB4RyWmHw" type="4008"/>
+ <children xmi:type="notation:Node" xmi:id="_mmT8cQvBEeOoPqB4RyWmHw" type="4009"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mmTVYQvBEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EDataType" href="predicates.ecore#//Project"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mmTVYgvBEeOoPqB4RyWmHw" x="45" y="45"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mmT8cgvBEeOoPqB4RyWmHw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_mmUjgAvBEeOoPqB4RyWmHw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_mmUjgQvBEeOoPqB4RyWmHw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_mmUjiQvBEeOoPqB4RyWmHw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="predicates.ecore#//NamePredicate/pattern"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_mmUjigvBEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_mmUjggvBEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mmUjgwvBEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mmUjhAvBEeOoPqB4RyWmHw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_mmUjhQvBEeOoPqB4RyWmHw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_mmUjhgvBEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_mmUjhwvBEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_mmUjiAvBEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mmT8cwvBEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="predicates.ecore#//NamePredicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mmT8dAvBEeOoPqB4RyWmHw" x="60" y="225"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__o53MAvBEeOoPqB4RyWmHw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="__o7FUAvBEeOoPqB4RyWmHw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="__o7sYAvBEeOoPqB4RyWmHw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_MyEF0AvCEeOoPqB4RyWmHw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="predicates.ecore#//RepositoryPredicate/project"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MyEF0QvCEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="__o7sYQvBEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__o7sYgvBEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__o7sYwvBEeOoPqB4RyWmHw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__o8TcAvBEeOoPqB4RyWmHw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="__o8TcQvBEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__o8TcgvBEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__o8TcwvBEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="__o53MQvBEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="predicates.ecore#//RepositoryPredicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__o53MgvBEeOoPqB4RyWmHw" x="270" y="225"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_aN9qQAvCEeOoPqB4RyWmHw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_aN_fcAvCEeOoPqB4RyWmHw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_aN_fcQvCEeOoPqB4RyWmHw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_aN_fcgvCEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aN_fcwvCEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aN_fdAvCEeOoPqB4RyWmHw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_aOAGgAvCEeOoPqB4RyWmHw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_aOAGgQvCEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aOAGggvCEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aOAGgwvCEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_aN9qQQvCEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="predicates.ecore#//AndPredicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aN9qQgvCEeOoPqB4RyWmHw" x="735" y="390"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_b-qy4AvCEeOoPqB4RyWmHw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_b-soEAvCEeOoPqB4RyWmHw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_b-soEQvCEeOoPqB4RyWmHw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_b-soEgvCEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b-soEwvCEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b-soFAvCEeOoPqB4RyWmHw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_b-tPIAvCEeOoPqB4RyWmHw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_b-tPIQvCEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_b-tPIgvCEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_b-tPIwvCEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_b-qy4QvCEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="predicates.ecore#//OrPredicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b-qy4gvCEeOoPqB4RyWmHw" x="945" y="390"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_eGA54AvCEeOoPqB4RyWmHw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_eGCIAAvCEeOoPqB4RyWmHw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_eGCvEAvCEeOoPqB4RyWmHw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_eGCvEQvCEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eGCvEgvCEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eGCvEwvCEeOoPqB4RyWmHw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_eGDWIAvCEeOoPqB4RyWmHw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_eGDWIQvCEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_eGDWIgvCEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_eGDWIwvCEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_eGA54QvCEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="predicates.ecore#//NotPredicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eGA54gvCEeOoPqB4RyWmHw" x="1125" y="405"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_BkwqcAvDEeOoPqB4RyWmHw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_Bkx4kAvDEeOoPqB4RyWmHw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_Bkx4kQvDEeOoPqB4RyWmHw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_HMg9IAvDEeOoPqB4RyWmHw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="predicates.ecore#//NaturePredicate/nature"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_HMg9IQvDEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Bkx4kgvDEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Bkx4kwvDEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Bkx4lAvDEeOoPqB4RyWmHw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_BkyfoAvDEeOoPqB4RyWmHw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_BkyfoQvDEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_BkyfogvDEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_BkyfowvDEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_BkwqcQvDEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="predicates.ecore#//NaturePredicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BkwqcgvDEeOoPqB4RyWmHw" x="135" y="510"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_L3QN8AvDEeOoPqB4RyWmHw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_L3Q1AAvDEeOoPqB4RyWmHw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_L3Q1AQvDEeOoPqB4RyWmHw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_NrDG0AvDEeOoPqB4RyWmHw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="predicates.ecore#//BuilderPredicate/builder"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NrDG0QvDEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_L3Q1AgvDEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_L3Q1AwvDEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_L3Q1BAvDEeOoPqB4RyWmHw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_L3RcEAvDEeOoPqB4RyWmHw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_L3RcEQvDEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_L3RcEgvDEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_L3RcEwvDEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_L3QN8QvDEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="predicates.ecore#//BuilderPredicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_L3QN8gvDEeOoPqB4RyWmHw" x="435" y="510"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Wr3uoAvlEeOoPqB4RyWmHw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_Wr5j0AvlEeOoPqB4RyWmHw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_Wr6K4AvlEeOoPqB4RyWmHw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_aFHiYAvlEeOoPqB4RyWmHw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="predicates.ecore#//FilePredicate/filePattern"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_aFHiYQvlEeOoPqB4RyWmHw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ghyD0AvlEeOoPqB4RyWmHw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="predicates.ecore#//FilePredicate/contentPattern"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ghyD0QvlEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Wr6K4QvlEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Wr6K4gvlEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Wr6K4wvlEeOoPqB4RyWmHw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Wr6K5AvlEeOoPqB4RyWmHw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_Wr6K5QvlEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_Wr6K5gvlEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_Wr6x8AvlEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Wr3uoQvlEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="predicates.ecore#//FilePredicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Wr3uogvlEeOoPqB4RyWmHw" x="675" y="525"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_mmJkYQvBEeOoPqB4RyWmHw"/>
+ <element xmi:type="ecore:EPackage" href="predicates.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_mmVxoAvBEeOoPqB4RyWmHw" type="3003" source="_mmT8cgvBEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_mmVxoQvBEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_mmVxogvBEeOoPqB4RyWmHw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mmVxowvBEeOoPqB4RyWmHw" points="[0, 0, 0, 70]$[0, -70, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_muV3EAvBEeOoPqB4RyWmHw" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_muV3EQvBEeOoPqB4RyWmHw" id="(0.49794238683127573,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_LQ7qQAvCEeOoPqB4RyWmHw" type="3003" source="__o53MAvBEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_LQ7qQQvCEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_LQ7qQgvCEeOoPqB4RyWmHw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LQ7qQwvCEeOoPqB4RyWmHw" points="[6, -12, -62, 105]$[6, -101, -62, 16]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LRCX8AvCEeOoPqB4RyWmHw" id="(0.31976744186046513,0.20408163265306123)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LRCX8QvCEeOoPqB4RyWmHw" id="(0.757201646090535,0.746031746031746)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_n8z_4AvCEeOoPqB4RyWmHw" type="3003" source="_aN9qQAvCEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_n8z_4QvCEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_n8z_4gvCEeOoPqB4RyWmHw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_n8z_4wvCEeOoPqB4RyWmHw" points="[8, -3, 4, 120]$[8, -92, 4, 31]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_n844YAvCEeOoPqB4RyWmHw" id="(0.7154471544715447,0.08163265306122448)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_pGe9sAvCEeOoPqB4RyWmHw" type="3003" source="_b-qy4AvCEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_pGe9sQvCEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_pGe9sgvCEeOoPqB4RyWmHw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pGe9swvCEeOoPqB4RyWmHw" points="[-17, -23, 97, 120]$[7, -136, 121, 7]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_pxSOMAvCEeOoPqB4RyWmHw" type="3003" source="_eGA54AvCEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_pxSOMQvCEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_pxSOMgvCEeOoPqB4RyWmHw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pxSOMwvCEeOoPqB4RyWmHw" points="[-14, -9, 169, 122]$[-181, -159, 2, -28]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pxV4kAvCEeOoPqB4RyWmHw" id="(0.39669421487603307,0.20408163265306123)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_pxWfoAvCEeOoPqB4RyWmHw" id="(0.8065843621399177,0.4603174603174603)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_sdUWoAvCEeOoPqB4RyWmHw" type="3002" source="_eGA54AvCEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw">
+ <children xmi:type="notation:Node" xmi:id="_sdbrYAvCEeOoPqB4RyWmHw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sdbrYQvCEeOoPqB4RyWmHw" x="-10" y="-10"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_sdcScAvCEeOoPqB4RyWmHw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_sdcScQvCEeOoPqB4RyWmHw" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_sdUWoQvCEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_sdUWogvCEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="predicates.ecore#//NotPredicate/operand"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sdUWowvCEeOoPqB4RyWmHw" points="[0, -21, 204, 141]$[0, -156, 204, 6]$[-193, -156, 11, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sddgkAvCEeOoPqB4RyWmHw" id="(0.8760330578512396,0.4489795918367347)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sdeHoAvCEeOoPqB4RyWmHw" id="(0.9547325102880658,0.15873015873015872)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_xy7wcAvCEeOoPqB4RyWmHw" type="3002" source="_b-qy4AvCEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw">
+ <children xmi:type="notation:Node" xmi:id="_xy8-kAvCEeOoPqB4RyWmHw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xy8-kQvCEeOoPqB4RyWmHw" x="-10" y="-4"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_xy9loAvCEeOoPqB4RyWmHw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xy9loQvCEeOoPqB4RyWmHw" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_xy7wcQvCEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_xy7wcgvCEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="predicates.ecore#//OrPredicate/operands"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xy7wcwvCEeOoPqB4RyWmHw" points="[-15, -38, 6, 98]$[-15, -127, 6, 9]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xzBQAAvCEeOoPqB4RyWmHw" id="(0.27927927927927926,0.8163265306122449)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xzBQAQvCEeOoPqB4RyWmHw" id="(0.7860082304526749,0.8571428571428571)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_7Mb2cAvCEeOoPqB4RyWmHw" type="3002" source="_aN9qQAvCEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw">
+ <children xmi:type="notation:Node" xmi:id="_7MdEkAvCEeOoPqB4RyWmHw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7MdEkQvCEeOoPqB4RyWmHw" x="-10" y="6"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7MdroAvCEeOoPqB4RyWmHw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7MdroQvCEeOoPqB4RyWmHw" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_7Mb2cQvCEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_7Mb2cgvCEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="predicates.ecore#//AndPredicate/operands"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7McdgAvCEeOoPqB4RyWmHw" points="[-10, -8, 1, 99]$[-10, -97, 1, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7MjLMAvCEeOoPqB4RyWmHw" id="(0.21138211382113822,0.1836734693877551)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_7MjLMQvCEeOoPqB4RyWmHw" id="(0.18518518518518517,0.8412698412698413)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_KbL4kAvDEeOoPqB4RyWmHw" type="3003" source="_BkwqcAvDEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_KbL4kQvDEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_KbL4kgvDEeOoPqB4RyWmHw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KbL4kwvDEeOoPqB4RyWmHw" points="[16, -11, -320, 226]$[337, -220, 1, 17]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KbQKAAvDEeOoPqB4RyWmHw" id="(0.3466666666666667,0.19047619047619047)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KbQKAQvDEeOoPqB4RyWmHw" id="(0.17695473251028807,0.7301587301587301)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_Q6NxgAvDEeOoPqB4RyWmHw" type="3003" source="_L3QN8AvDEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_Q6NxgQvDEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_Q6NxggvDEeOoPqB4RyWmHw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Q6NxgwvDEeOoPqB4RyWmHw" points="[2, -12, -31, 219]$[34, -221, 1, 10]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q6SC8AvDEeOoPqB4RyWmHw" id="(0.5555555555555556,0.20634920634920634)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q6SC8QvDEeOoPqB4RyWmHw" id="(0.1111111111111111,0.8412698412698413)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_YkCxMAvlEeOoPqB4RyWmHw" type="3003" source="_Wr3uoAvlEeOoPqB4RyWmHw" target="_mmQ5IAvBEeOoPqB4RyWmHw">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_YkCxMQvlEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_YkCxMgvlEeOoPqB4RyWmHw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_YkCxMwvlEeOoPqB4RyWmHw" points="[-6, -28, 77, 450]$[-203, -477, -120, 1]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_YkF0gAvlEeOoPqB4RyWmHw" id="(0.20512820512820512,0.6122448979591837)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.genmodel b/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.genmodel
new file mode 100644
index 0000000000..61785f83a7
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/model/predicates.genmodel
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.cdo.releng.predicates/src" creationIcons="false"
+ modelPluginID="org.eclipse.emf.cdo.releng.predicates" modelName="Predicates" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
+ importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false"
+ operationReflection="true" importOrganizing="true" decoration="Live">
+ <foreignModel>predicates.ecore</foreignModel>
+ <genPackages prefix="Predicates" basePackage="org.eclipse.emf.cdo.releng" disposableProviderFactory="true"
+ extensibleProviderFactory="true" ecorePackage="predicates.ecore#/">
+ <genDataTypes ecoreDataType="predicates.ecore#//Project"/>
+ <genClasses image="false" ecoreClass="predicates.ecore#//Predicate">
+ <genOperations ecoreOperation="predicates.ecore#//Predicate/matches">
+ <genParameters ecoreParameter="predicates.ecore#//Predicate/matches/project"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="predicates.ecore#//NamePredicate">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute predicates.ecore#//NamePredicate/pattern"/>
+ </genClasses>
+ <genClasses ecoreClass="predicates.ecore#//RepositoryPredicate">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute predicates.ecore#//RepositoryPredicate/project"/>
+ </genClasses>
+ <genClasses ecoreClass="predicates.ecore#//AndPredicate">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference predicates.ecore#//AndPredicate/operands"/>
+ </genClasses>
+ <genClasses ecoreClass="predicates.ecore#//OrPredicate">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference predicates.ecore#//OrPredicate/operands"/>
+ </genClasses>
+ <genClasses ecoreClass="predicates.ecore#//NotPredicate">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference predicates.ecore#//NotPredicate/operand"/>
+ </genClasses>
+ <genClasses ecoreClass="predicates.ecore#//NaturePredicate">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute predicates.ecore#//NaturePredicate/nature"/>
+ </genClasses>
+ <genClasses ecoreClass="predicates.ecore#//BuilderPredicate">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute predicates.ecore#//BuilderPredicate/builder"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/modeling32.png b/plugins/org.eclipse.emf.cdo.releng.predicates/modeling32.png
index 6b08de2ada..6b08de2ada 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/modeling32.png
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/modeling32.png
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.predicates/plugin.properties
index 54d279aee2..63fbb1d409 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/plugin.properties
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/plugin.properties
@@ -1,4 +1,4 @@
-# Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
+# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) 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
@@ -7,5 +7,5 @@
# Contributors:
# Eike Stepper - initial API and implementation
-pluginName = CDO Release Engineering Setup IDE
+pluginName = CDO Release Engineering Dynamic Working Sets
providerName = Eclipse Modeling Project
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.predicates/plugin.xml
new file mode 100644
index 0000000000..7439d1080b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/plugin.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<!--
+ Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) 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:
+ Eike Stepper - initial API and implementation
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated predicates -->
+ <package
+ uri="http://www.eclipse.org/CDO/releng/predicates/1.0"
+ class="org.eclipse.emf.cdo.releng.predicates.PredicatesPackage"
+ genModel="model/predicates.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/AndPredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/AndPredicate.java
new file mode 100644
index 0000000000..2498715be5
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/AndPredicate.java
@@ -0,0 +1,42 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+import org.eclipse.emf.common.util.EList;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>And Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.AndPredicate#getOperands <em>Operands</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getAndPredicate()
+ * @model
+ * @generated
+ */
+public interface AndPredicate extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>Operands</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.predicates.Predicate}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Operands</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Operands</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getAndPredicate_Operands()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Predicate> getOperands();
+
+} // AndPredicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/BuilderPredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/BuilderPredicate.java
new file mode 100644
index 0000000000..06b1d7d698
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/BuilderPredicate.java
@@ -0,0 +1,50 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Builder Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate#getBuilder <em>Builder</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getBuilderPredicate()
+ * @model
+ * @generated
+ */
+public interface BuilderPredicate extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>Builder</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Builder</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Builder</em>' attribute.
+ * @see #setBuilder(String)
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getBuilderPredicate_Builder()
+ * @model required="true"
+ * @generated
+ */
+ String getBuilder();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate#getBuilder <em>Builder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Builder</em>' attribute.
+ * @see #getBuilder()
+ * @generated
+ */
+ void setBuilder(String value);
+
+} // BuilderPredicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/FilePredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/FilePredicate.java
new file mode 100644
index 0000000000..997ad79615
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/FilePredicate.java
@@ -0,0 +1,77 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>File Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getFilePattern <em>File Pattern</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getContentPattern <em>Content Pattern</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getFilePredicate()
+ * @model
+ * @generated
+ */
+public interface FilePredicate extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>File Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>File Pattern</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>File Pattern</em>' attribute.
+ * @see #setFilePattern(String)
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getFilePredicate_FilePattern()
+ * @model required="true"
+ * @generated
+ */
+ String getFilePattern();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getFilePattern <em>File Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>File Pattern</em>' attribute.
+ * @see #getFilePattern()
+ * @generated
+ */
+ void setFilePattern(String value);
+
+ /**
+ * Returns the value of the '<em><b>Content Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Content Pattern</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Content Pattern</em>' attribute.
+ * @see #setContentPattern(String)
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getFilePredicate_ContentPattern()
+ * @model
+ * @generated
+ */
+ String getContentPattern();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getContentPattern <em>Content Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Content Pattern</em>' attribute.
+ * @see #getContentPattern()
+ * @generated
+ */
+ void setContentPattern(String value);
+
+} // FilePredicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/NamePredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NamePredicate.java
index daabac1170..8f4803a362 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/NamePredicate.java
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NamePredicate.java
@@ -1,14 +1,7 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
+/**
*/
-package org.eclipse.emf.cdo.releng.workingsets;
+package org.eclipse.emf.cdo.releng.predicates;
+
/**
* <!-- begin-user-doc -->
@@ -18,11 +11,11 @@ package org.eclipse.emf.cdo.releng.workingsets;
* <p>
* The following features are supported:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.workingsets.NamePredicate#getPattern <em>Pattern</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.NamePredicate#getPattern <em>Pattern</em>}</li>
* </ul>
* </p>
*
- * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage#getNamePredicate()
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNamePredicate()
* @model
* @generated
*/
@@ -38,14 +31,14 @@ public interface NamePredicate extends Predicate
* <!-- end-user-doc -->
* @return the value of the '<em>Pattern</em>' attribute.
* @see #setPattern(String)
- * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage#getNamePredicate_Pattern()
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNamePredicate_Pattern()
* @model required="true"
* @generated
*/
String getPattern();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.workingsets.NamePredicate#getPattern <em>Pattern</em>}' attribute.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.NamePredicate#getPattern <em>Pattern</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Pattern</em>' attribute.
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NaturePredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NaturePredicate.java
new file mode 100644
index 0000000000..cc21efc2d6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NaturePredicate.java
@@ -0,0 +1,50 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Nature Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate#getNature <em>Nature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNaturePredicate()
+ * @model
+ * @generated
+ */
+public interface NaturePredicate extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>Nature</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Nature</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Nature</em>' attribute.
+ * @see #setNature(String)
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNaturePredicate_Nature()
+ * @model required="true"
+ * @generated
+ */
+ String getNature();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate#getNature <em>Nature</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Nature</em>' attribute.
+ * @see #getNature()
+ * @generated
+ */
+ void setNature(String value);
+
+} // NaturePredicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NotPredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NotPredicate.java
new file mode 100644
index 0000000000..1888936d80
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/NotPredicate.java
@@ -0,0 +1,50 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Not Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.NotPredicate#getOperand <em>Operand</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNotPredicate()
+ * @model
+ * @generated
+ */
+public interface NotPredicate extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>Operand</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Operand</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Operand</em>' containment reference.
+ * @see #setOperand(Predicate)
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getNotPredicate_Operand()
+ * @model containment="true"
+ * @generated
+ */
+ Predicate getOperand();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.NotPredicate#getOperand <em>Operand</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Operand</em>' containment reference.
+ * @see #getOperand()
+ * @generated
+ */
+ void setOperand(Predicate value);
+
+} // NotPredicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/OrPredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/OrPredicate.java
new file mode 100644
index 0000000000..14456d3f87
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/OrPredicate.java
@@ -0,0 +1,41 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Or Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.OrPredicate#getOperands <em>Operands</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getOrPredicate()
+ * @model
+ * @generated
+ */
+public interface OrPredicate extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>Operands</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.predicates.Predicate}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Operands</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Operands</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getOrPredicate_Operands()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Predicate> getOperands();
+
+} // OrPredicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/Predicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/Predicate.java
new file mode 100644
index 0000000000..e5d45cddcc
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/Predicate.java
@@ -0,0 +1,29 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+import org.eclipse.core.resources.IProject;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getPredicate()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface Predicate extends EObject
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model projectDataType="org.eclipse.emf.cdo.releng.predicates.Project"
+ * @generated
+ */
+ boolean matches(IProject project);
+
+} // Predicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesFactory.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesFactory.java
new file mode 100644
index 0000000000..475fa0faf3
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesFactory.java
@@ -0,0 +1,106 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage
+ * @generated
+ */
+public interface PredicatesFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ PredicatesFactory eINSTANCE = org.eclipse.emf.cdo.releng.predicates.impl.PredicatesFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Name Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Name Predicate</em>'.
+ * @generated
+ */
+ NamePredicate createNamePredicate();
+
+ /**
+ * Returns a new object of class '<em>Repository Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Repository Predicate</em>'.
+ * @generated
+ */
+ RepositoryPredicate createRepositoryPredicate();
+
+ /**
+ * Returns a new object of class '<em>And Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>And Predicate</em>'.
+ * @generated
+ */
+ AndPredicate createAndPredicate();
+
+ /**
+ * Returns a new object of class '<em>Or Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Or Predicate</em>'.
+ * @generated
+ */
+ OrPredicate createOrPredicate();
+
+ /**
+ * Returns a new object of class '<em>Not Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Not Predicate</em>'.
+ * @generated
+ */
+ NotPredicate createNotPredicate();
+
+ /**
+ * Returns a new object of class '<em>Nature Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Nature Predicate</em>'.
+ * @generated
+ */
+ NaturePredicate createNaturePredicate();
+
+ /**
+ * Returns a new object of class '<em>Builder Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Builder Predicate</em>'.
+ * @generated
+ */
+ BuilderPredicate createBuilderPredicate();
+
+ /**
+ * Returns a new object of class '<em>File Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>File Predicate</em>'.
+ * @generated
+ */
+ FilePredicate createFilePredicate();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ PredicatesPackage getPredicatesPackage();
+
+} //PredicatesFactory
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesPackage.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesPackage.java
new file mode 100644
index 0000000000..3ca78cee5f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/PredicatesPackage.java
@@ -0,0 +1,903 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface PredicatesPackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "predicates";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/CDO/releng/predicates/1.0";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "predicates";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ PredicatesPackage eINSTANCE = org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.Predicate <em>Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.Predicate
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getPredicate()
+ * @generated
+ */
+ int PREDICATE = 0;
+
+ /**
+ * The number of structural features of the '<em>Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREDICATE_FEATURE_COUNT = 0;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREDICATE___MATCHES__IPROJECT = 0;
+
+ /**
+ * The number of operations of the '<em>Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREDICATE_OPERATION_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NamePredicateImpl <em>Name Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.NamePredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNamePredicate()
+ * @generated
+ */
+ int NAME_PREDICATE = 1;
+
+ /**
+ * The feature id for the '<em><b>Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAME_PREDICATE__PATTERN = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Name Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAME_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAME_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
+
+ /**
+ * The number of operations of the '<em>Name Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NAME_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.RepositoryPredicateImpl <em>Repository Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.RepositoryPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getRepositoryPredicate()
+ * @generated
+ */
+ int REPOSITORY_PREDICATE = 2;
+
+ /**
+ * The feature id for the '<em><b>Project</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPOSITORY_PREDICATE__PROJECT = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Repository Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPOSITORY_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPOSITORY_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
+
+ /**
+ * The number of operations of the '<em>Repository Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REPOSITORY_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.AndPredicateImpl <em>And Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.AndPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getAndPredicate()
+ * @generated
+ */
+ int AND_PREDICATE = 3;
+
+ /**
+ * The feature id for the '<em><b>Operands</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_PREDICATE__OPERANDS = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>And Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
+
+ /**
+ * The number of operations of the '<em>And Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int AND_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.OrPredicateImpl <em>Or Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.OrPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getOrPredicate()
+ * @generated
+ */
+ int OR_PREDICATE = 4;
+
+ /**
+ * The feature id for the '<em><b>Operands</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_PREDICATE__OPERANDS = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Or Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
+
+ /**
+ * The number of operations of the '<em>Or Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int OR_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NotPredicateImpl <em>Not Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.NotPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNotPredicate()
+ * @generated
+ */
+ int NOT_PREDICATE = 5;
+
+ /**
+ * The feature id for the '<em><b>Operand</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_PREDICATE__OPERAND = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Not Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
+
+ /**
+ * The number of operations of the '<em>Not Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NOT_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NaturePredicateImpl <em>Nature Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.NaturePredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNaturePredicate()
+ * @generated
+ */
+ int NATURE_PREDICATE = 6;
+
+ /**
+ * The feature id for the '<em><b>Nature</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NATURE_PREDICATE__NATURE = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Nature Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NATURE_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NATURE_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
+
+ /**
+ * The number of operations of the '<em>Nature Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int NATURE_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.BuilderPredicateImpl <em>Builder Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.BuilderPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getBuilderPredicate()
+ * @generated
+ */
+ int BUILDER_PREDICATE = 7;
+
+ /**
+ * The feature id for the '<em><b>Builder</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BUILDER_PREDICATE__BUILDER = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>Builder Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BUILDER_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BUILDER_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
+
+ /**
+ * The number of operations of the '<em>Builder Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BUILDER_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl <em>File Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getFilePredicate()
+ * @generated
+ */
+ int FILE_PREDICATE = 8;
+
+ /**
+ * The feature id for the '<em><b>File Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE_PREDICATE__FILE_PATTERN = PREDICATE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Content Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE_PREDICATE__CONTENT_PATTERN = PREDICATE_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>File Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 2;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
+
+ /**
+ * The number of operations of the '<em>File Predicate</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int FILE_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '<em>Project</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.core.resources.IProject
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getProject()
+ * @generated
+ */
+ int PROJECT = 9;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.Predicate <em>Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.Predicate
+ * @generated
+ */
+ EClass getPredicate();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.predicates.Predicate#matches(org.eclipse.core.resources.IProject) <em>Matches</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Matches</em>' operation.
+ * @see org.eclipse.emf.cdo.releng.predicates.Predicate#matches(org.eclipse.core.resources.IProject)
+ * @generated
+ */
+ EOperation getPredicate__Matches__IProject();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.NamePredicate <em>Name Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Name Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.NamePredicate
+ * @generated
+ */
+ EClass getNamePredicate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.NamePredicate#getPattern <em>Pattern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Pattern</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.NamePredicate#getPattern()
+ * @see #getNamePredicate()
+ * @generated
+ */
+ EAttribute getNamePredicate_Pattern();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate <em>Repository Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Repository Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate
+ * @generated
+ */
+ EClass getRepositoryPredicate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate#getProject <em>Project</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Project</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate#getProject()
+ * @see #getRepositoryPredicate()
+ * @generated
+ */
+ EAttribute getRepositoryPredicate_Project();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.AndPredicate <em>And Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>And Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.AndPredicate
+ * @generated
+ */
+ EClass getAndPredicate();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.predicates.AndPredicate#getOperands <em>Operands</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Operands</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.AndPredicate#getOperands()
+ * @see #getAndPredicate()
+ * @generated
+ */
+ EReference getAndPredicate_Operands();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.OrPredicate <em>Or Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Or Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.OrPredicate
+ * @generated
+ */
+ EClass getOrPredicate();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.predicates.OrPredicate#getOperands <em>Operands</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Operands</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.OrPredicate#getOperands()
+ * @see #getOrPredicate()
+ * @generated
+ */
+ EReference getOrPredicate_Operands();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.NotPredicate <em>Not Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Not Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.NotPredicate
+ * @generated
+ */
+ EClass getNotPredicate();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.emf.cdo.releng.predicates.NotPredicate#getOperand <em>Operand</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Operand</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.NotPredicate#getOperand()
+ * @see #getNotPredicate()
+ * @generated
+ */
+ EReference getNotPredicate_Operand();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate <em>Nature Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Nature Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.NaturePredicate
+ * @generated
+ */
+ EClass getNaturePredicate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate#getNature <em>Nature</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Nature</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.NaturePredicate#getNature()
+ * @see #getNaturePredicate()
+ * @generated
+ */
+ EAttribute getNaturePredicate_Nature();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate <em>Builder Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Builder Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.BuilderPredicate
+ * @generated
+ */
+ EClass getBuilderPredicate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate#getBuilder <em>Builder</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Builder</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.BuilderPredicate#getBuilder()
+ * @see #getBuilderPredicate()
+ * @generated
+ */
+ EAttribute getBuilderPredicate_Builder();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate <em>File Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>File Predicate</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.FilePredicate
+ * @generated
+ */
+ EClass getFilePredicate();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getFilePattern <em>File Pattern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>File Pattern</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.FilePredicate#getFilePattern()
+ * @see #getFilePredicate()
+ * @generated
+ */
+ EAttribute getFilePredicate_FilePattern();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate#getContentPattern <em>Content Pattern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Content Pattern</em>'.
+ * @see org.eclipse.emf.cdo.releng.predicates.FilePredicate#getContentPattern()
+ * @see #getFilePredicate()
+ * @generated
+ */
+ EAttribute getFilePredicate_ContentPattern();
+
+ /**
+ * Returns the meta object for data type '{@link org.eclipse.core.resources.IProject <em>Project</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Project</em>'.
+ * @see org.eclipse.core.resources.IProject
+ * @model instanceClass="org.eclipse.core.resources.IProject"
+ * @generated
+ */
+ EDataType getProject();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ PredicatesFactory getPredicatesFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.Predicate <em>Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.Predicate
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getPredicate()
+ * @generated
+ */
+ EClass PREDICATE = eINSTANCE.getPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Matches</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation PREDICATE___MATCHES__IPROJECT = eINSTANCE.getPredicate__Matches__IProject();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NamePredicateImpl <em>Name Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.NamePredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNamePredicate()
+ * @generated
+ */
+ EClass NAME_PREDICATE = eINSTANCE.getNamePredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Pattern</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NAME_PREDICATE__PATTERN = eINSTANCE.getNamePredicate_Pattern();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.RepositoryPredicateImpl <em>Repository Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.RepositoryPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getRepositoryPredicate()
+ * @generated
+ */
+ EClass REPOSITORY_PREDICATE = eINSTANCE.getRepositoryPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Project</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute REPOSITORY_PREDICATE__PROJECT = eINSTANCE.getRepositoryPredicate_Project();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.AndPredicateImpl <em>And Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.AndPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getAndPredicate()
+ * @generated
+ */
+ EClass AND_PREDICATE = eINSTANCE.getAndPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Operands</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference AND_PREDICATE__OPERANDS = eINSTANCE.getAndPredicate_Operands();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.OrPredicateImpl <em>Or Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.OrPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getOrPredicate()
+ * @generated
+ */
+ EClass OR_PREDICATE = eINSTANCE.getOrPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Operands</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference OR_PREDICATE__OPERANDS = eINSTANCE.getOrPredicate_Operands();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NotPredicateImpl <em>Not Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.NotPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNotPredicate()
+ * @generated
+ */
+ EClass NOT_PREDICATE = eINSTANCE.getNotPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Operand</b></em>' containment reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference NOT_PREDICATE__OPERAND = eINSTANCE.getNotPredicate_Operand();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.NaturePredicateImpl <em>Nature Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.NaturePredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getNaturePredicate()
+ * @generated
+ */
+ EClass NATURE_PREDICATE = eINSTANCE.getNaturePredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Nature</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute NATURE_PREDICATE__NATURE = eINSTANCE.getNaturePredicate_Nature();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.BuilderPredicateImpl <em>Builder Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.BuilderPredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getBuilderPredicate()
+ * @generated
+ */
+ EClass BUILDER_PREDICATE = eINSTANCE.getBuilderPredicate();
+
+ /**
+ * The meta object literal for the '<em><b>Builder</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BUILDER_PREDICATE__BUILDER = eINSTANCE.getBuilderPredicate_Builder();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl <em>File Predicate</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getFilePredicate()
+ * @generated
+ */
+ EClass FILE_PREDICATE = eINSTANCE.getFilePredicate();
+
+ /**
+ * The meta object literal for the '<em><b>File Pattern</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FILE_PREDICATE__FILE_PATTERN = eINSTANCE.getFilePredicate_FilePattern();
+
+ /**
+ * The meta object literal for the '<em><b>Content Pattern</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute FILE_PREDICATE__CONTENT_PATTERN = eINSTANCE.getFilePredicate_ContentPattern();
+
+ /**
+ * The meta object literal for the '<em>Project</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.core.resources.IProject
+ * @see org.eclipse.emf.cdo.releng.predicates.impl.PredicatesPackageImpl#getProject()
+ * @generated
+ */
+ EDataType PROJECT = eINSTANCE.getProject();
+
+ }
+
+} //PredicatesPackage
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/RepositoryPredicate.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/RepositoryPredicate.java
new file mode 100644
index 0000000000..f345e173de
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/RepositoryPredicate.java
@@ -0,0 +1,51 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates;
+
+import org.eclipse.core.resources.IProject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Repository Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate#getProject <em>Project</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getRepositoryPredicate()
+ * @model
+ * @generated
+ */
+public interface RepositoryPredicate extends Predicate
+{
+ /**
+ * Returns the value of the '<em><b>Project</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Project</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Project</em>' attribute.
+ * @see #setProject(IProject)
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#getRepositoryPredicate_Project()
+ * @model dataType="org.eclipse.emf.cdo.releng.predicates.Project"
+ * @generated
+ */
+ IProject getProject();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate#getProject <em>Project</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Project</em>' attribute.
+ * @see #getProject()
+ * @generated
+ */
+ void setProject(IProject value);
+
+} // RepositoryPredicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/AndPredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/AndPredicateImpl.java
new file mode 100644
index 0000000000..9afc3075e7
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/AndPredicateImpl.java
@@ -0,0 +1,199 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.AndPredicate;
+import org.eclipse.emf.cdo.releng.predicates.Predicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.core.resources.IProject;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>And Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.AndPredicateImpl#getOperands <em>Operands</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class AndPredicateImpl extends MinimalEObjectImpl.Container implements AndPredicate
+{
+ /**
+ * The cached value of the '{@link #getOperands() <em>Operands</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOperands()
+ * @generated
+ * @ordered
+ */
+ protected EList<Predicate> operands;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AndPredicateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PredicatesPackage.Literals.AND_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Predicate> getOperands()
+ {
+ if (operands == null)
+ {
+ operands = new EObjectContainmentEList<Predicate>(Predicate.class, this, PredicatesPackage.AND_PREDICATE__OPERANDS);
+ }
+ return operands;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean matches(IProject project)
+ {
+ for (Predicate operand : getOperands())
+ {
+ if (!operand.matches(project))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.AND_PREDICATE__OPERANDS:
+ return ((InternalEList<?>)getOperands()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.AND_PREDICATE__OPERANDS:
+ return getOperands();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.AND_PREDICATE__OPERANDS:
+ getOperands().clear();
+ getOperands().addAll((Collection<? extends Predicate>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.AND_PREDICATE__OPERANDS:
+ getOperands().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.AND_PREDICATE__OPERANDS:
+ return operands != null && !operands.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case PredicatesPackage.AND_PREDICATE___MATCHES__IPROJECT:
+ return matches((IProject)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // AndPredicateImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/BuilderPredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/BuilderPredicateImpl.java
new file mode 100644
index 0000000000..a39130189b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/BuilderPredicateImpl.java
@@ -0,0 +1,227 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.BuilderPredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.core.resources.ICommand;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Builder Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.BuilderPredicateImpl#getBuilder <em>Builder</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BuilderPredicateImpl extends MinimalEObjectImpl.Container implements BuilderPredicate
+{
+ /**
+ * The default value of the '{@link #getBuilder() <em>Builder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBuilder()
+ * @generated
+ * @ordered
+ */
+ protected static final String BUILDER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBuilder() <em>Builder</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBuilder()
+ * @generated
+ * @ordered
+ */
+ protected String builder = BUILDER_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BuilderPredicateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PredicatesPackage.Literals.BUILDER_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getBuilder()
+ {
+ return builder;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBuilder(String newBuilder)
+ {
+ String oldBuilder = builder;
+ builder = newBuilder;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.BUILDER_PREDICATE__BUILDER, oldBuilder, builder));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean matches(IProject project)
+ {
+ String builder = getBuilder();
+ if (builder != null)
+ {
+ try
+ {
+ for (ICommand command : project.getDescription().getBuildSpec())
+ {
+ String name = command.getBuilderName();
+ if (builder.equals(name))
+ {
+ return true;
+ }
+ }
+ }
+ catch (CoreException ex)
+ {
+ // Ignore
+ }
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.BUILDER_PREDICATE__BUILDER:
+ return getBuilder();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.BUILDER_PREDICATE__BUILDER:
+ setBuilder((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.BUILDER_PREDICATE__BUILDER:
+ setBuilder(BUILDER_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.BUILDER_PREDICATE__BUILDER:
+ return BUILDER_EDEFAULT == null ? builder != null : !BUILDER_EDEFAULT.equals(builder);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case PredicatesPackage.BUILDER_PREDICATE___MATCHES__IPROJECT:
+ return matches((IProject)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (builder: ");
+ result.append(builder);
+ result.append(')');
+ return result.toString();
+ }
+
+} // BuilderPredicateImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/FilePredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/FilePredicateImpl.java
new file mode 100644
index 0000000000..4fce36e583
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/FilePredicateImpl.java
@@ -0,0 +1,392 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.FilePredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceVisitor;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Status;
+
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.util.regex.Pattern;
+import java.util.regex.PatternSyntaxException;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>File Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl#getFilePattern <em>File Pattern</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.FilePredicateImpl#getContentPattern <em>Content Pattern</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class FilePredicateImpl extends MinimalEObjectImpl.Container implements FilePredicate
+{
+ /**
+ * The default value of the '{@link #getFilePattern() <em>File Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFilePattern()
+ * @generated
+ * @ordered
+ */
+ protected static final String FILE_PATTERN_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getFilePattern() <em>File Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getFilePattern()
+ * @generated
+ * @ordered
+ */
+ protected String filePattern = FILE_PATTERN_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getContentPattern() <em>Content Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getContentPattern()
+ * @generated
+ * @ordered
+ */
+ protected static final String CONTENT_PATTERN_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getContentPattern() <em>Content Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getContentPattern()
+ * @generated
+ * @ordered
+ */
+ protected String contentPattern = CONTENT_PATTERN_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected FilePredicateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PredicatesPackage.Literals.FILE_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getFilePattern()
+ {
+ return filePattern;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setFilePattern(String newFilePattern)
+ {
+ String oldFilePattern = filePattern;
+ filePattern = newFilePattern;
+ if (eNotificationRequired())
+ {
+ eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.FILE_PREDICATE__FILE_PATTERN,
+ oldFilePattern, filePattern));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getContentPattern()
+ {
+ return contentPattern;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setContentPattern(String newContentPattern)
+ {
+ String oldContentPattern = contentPattern;
+ contentPattern = newContentPattern;
+ if (eNotificationRequired())
+ {
+ eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN,
+ oldContentPattern, contentPattern));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean matches(IProject project)
+ {
+ String filePattern = getFilePattern();
+ if (filePattern != null)
+ {
+ StringBuilder pattern = new StringBuilder();
+ for (int i = 0, length = filePattern.length(); i < length; ++i)
+ {
+ char character = filePattern.charAt(i);
+ if (!Character.isJavaIdentifierPart(character))
+ {
+ if (character == '*')
+ {
+ if (i + 1 < length && filePattern.charAt(i + 1) == '*')
+ {
+ ++i;
+ pattern.append(".*");
+ }
+ else
+ {
+ pattern.append("[^/]*");
+ }
+ }
+ else if (character == '?')
+ {
+ pattern.append("[^/]");
+ }
+ else
+ {
+ pattern.append('\\');
+ pattern.append(character);
+ }
+ }
+ else
+ {
+ pattern.append(character);
+ }
+ }
+
+ try
+ {
+ final Pattern regex = Pattern.compile(pattern.toString());
+ final CoreException matched = new CoreException(Status.OK_STATUS);
+ final Pattern contentPattern = getContentPattern() == null ? null : Pattern.compile(getContentPattern());
+ try
+ {
+ project.accept(new IResourceVisitor()
+ {
+ public boolean visit(IResource resource) throws CoreException
+ {
+ String path = resource.getProjectRelativePath().toString();
+ if (regex.matcher(path).matches())
+ {
+ if (contentPattern == null)
+ {
+ throw matched;
+ }
+
+ if (resource.getType() == IResource.FILE)
+ {
+ IFile file = (IFile)resource;
+ String charset = file.getCharset();
+ InputStream inputStream = null;
+ try
+ {
+ inputStream = file.getContents();
+ BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
+ byte[] input = new byte[bufferedInputStream.available()];
+ bufferedInputStream.read(input);
+ String contents = charset == null ? new String(input) : new String(input, charset);
+ if (contentPattern.matcher(contents).find())
+ {
+ throw matched;
+ }
+ }
+ catch (IOException ex)
+ {
+ // Ignore.
+ }
+ finally
+ {
+ if (inputStream != null)
+ {
+ try
+ {
+ inputStream.close();
+ }
+ catch (IOException ex)
+ {
+ // Ignore.
+ }
+ }
+ }
+ }
+ }
+ return true;
+ }
+ });
+ }
+ catch (CoreException ex)
+ {
+ if (ex == matched)
+ {
+ return true;
+ }
+ }
+ }
+ catch (PatternSyntaxException exception)
+ {
+ // Ignore
+ }
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.FILE_PREDICATE__FILE_PATTERN:
+ return getFilePattern();
+ case PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN:
+ return getContentPattern();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.FILE_PREDICATE__FILE_PATTERN:
+ setFilePattern((String)newValue);
+ return;
+ case PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN:
+ setContentPattern((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.FILE_PREDICATE__FILE_PATTERN:
+ setFilePattern(FILE_PATTERN_EDEFAULT);
+ return;
+ case PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN:
+ setContentPattern(CONTENT_PATTERN_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.FILE_PREDICATE__FILE_PATTERN:
+ return FILE_PATTERN_EDEFAULT == null ? filePattern != null : !FILE_PATTERN_EDEFAULT.equals(filePattern);
+ case PredicatesPackage.FILE_PREDICATE__CONTENT_PATTERN:
+ return CONTENT_PATTERN_EDEFAULT == null ? contentPattern != null : !CONTENT_PATTERN_EDEFAULT
+ .equals(contentPattern);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case PredicatesPackage.FILE_PREDICATE___MATCHES__IPROJECT:
+ return matches((IProject)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (filePattern: ");
+ result.append(filePattern);
+ result.append(", contentPattern: ");
+ result.append(contentPattern);
+ result.append(')');
+ return result.toString();
+ }
+
+} // FilePredicateImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/NamePredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NamePredicateImpl.java
index b0fe91c634..9ffaa7f784 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/NamePredicateImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NamePredicateImpl.java
@@ -1,17 +1,9 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
+/**
*/
-package org.eclipse.emf.cdo.releng.workingsets.impl;
+package org.eclipse.emf.cdo.releng.predicates.impl;
-import org.eclipse.emf.cdo.releng.workingsets.NamePredicate;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage;
+import org.eclipse.emf.cdo.releng.predicates.NamePredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.EList;
@@ -30,7 +22,7 @@ import java.lang.reflect.InvocationTargetException;
* <p>
* The following features are implemented:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.workingsets.impl.NamePredicateImpl#getPattern <em>Pattern</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.NamePredicateImpl#getPattern <em>Pattern</em>}</li>
* </ul>
* </p>
*
@@ -76,7 +68,7 @@ public class NamePredicateImpl extends MinimalEObjectImpl.Container implements N
@Override
protected EClass eStaticClass()
{
- return WorkingSetsPackage.Literals.NAME_PREDICATE;
+ return PredicatesPackage.Literals.NAME_PREDICATE;
}
/**
@@ -99,8 +91,7 @@ public class NamePredicateImpl extends MinimalEObjectImpl.Container implements N
String oldPattern = pattern;
pattern = newPattern;
if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, WorkingSetsPackage.NAME_PREDICATE__PATTERN, oldPattern,
- pattern));
+ eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.NAME_PREDICATE__PATTERN, oldPattern, pattern));
}
/**
@@ -123,8 +114,8 @@ public class NamePredicateImpl extends MinimalEObjectImpl.Container implements N
{
switch (featureID)
{
- case WorkingSetsPackage.NAME_PREDICATE__PATTERN:
- return getPattern();
+ case PredicatesPackage.NAME_PREDICATE__PATTERN:
+ return getPattern();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -139,9 +130,9 @@ public class NamePredicateImpl extends MinimalEObjectImpl.Container implements N
{
switch (featureID)
{
- case WorkingSetsPackage.NAME_PREDICATE__PATTERN:
- setPattern((String)newValue);
- return;
+ case PredicatesPackage.NAME_PREDICATE__PATTERN:
+ setPattern((String)newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -156,9 +147,9 @@ public class NamePredicateImpl extends MinimalEObjectImpl.Container implements N
{
switch (featureID)
{
- case WorkingSetsPackage.NAME_PREDICATE__PATTERN:
- setPattern(PATTERN_EDEFAULT);
- return;
+ case PredicatesPackage.NAME_PREDICATE__PATTERN:
+ setPattern(PATTERN_EDEFAULT);
+ return;
}
super.eUnset(featureID);
}
@@ -173,8 +164,8 @@ public class NamePredicateImpl extends MinimalEObjectImpl.Container implements N
{
switch (featureID)
{
- case WorkingSetsPackage.NAME_PREDICATE__PATTERN:
- return PATTERN_EDEFAULT == null ? pattern != null : !PATTERN_EDEFAULT.equals(pattern);
+ case PredicatesPackage.NAME_PREDICATE__PATTERN:
+ return PATTERN_EDEFAULT == null ? pattern != null : !PATTERN_EDEFAULT.equals(pattern);
}
return super.eIsSet(featureID);
}
@@ -189,8 +180,8 @@ public class NamePredicateImpl extends MinimalEObjectImpl.Container implements N
{
switch (operationID)
{
- case WorkingSetsPackage.NAME_PREDICATE___MATCHES__IPROJECT:
- return matches((IProject)arguments.get(0));
+ case PredicatesPackage.NAME_PREDICATE___MATCHES__IPROJECT:
+ return matches((IProject)arguments.get(0));
}
return super.eInvoke(operationID, arguments);
}
@@ -203,8 +194,7 @@ public class NamePredicateImpl extends MinimalEObjectImpl.Container implements N
@Override
public String toString()
{
- if (eIsProxy())
- return super.toString();
+ if (eIsProxy()) return super.toString();
StringBuffer result = new StringBuffer(super.toString());
result.append(" (pattern: ");
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NaturePredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NaturePredicateImpl.java
new file mode 100644
index 0000000000..90efa6ca20
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NaturePredicateImpl.java
@@ -0,0 +1,222 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.NaturePredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Nature Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.NaturePredicateImpl#getNature <em>Nature</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NaturePredicateImpl extends MinimalEObjectImpl.Container implements NaturePredicate
+{
+ /**
+ * The default value of the '{@link #getNature() <em>Nature</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNature()
+ * @generated
+ * @ordered
+ */
+ protected static final String NATURE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNature() <em>Nature</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNature()
+ * @generated
+ * @ordered
+ */
+ protected String nature = NATURE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NaturePredicateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PredicatesPackage.Literals.NATURE_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getNature()
+ {
+ return nature;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNature(String newNature)
+ {
+ String oldNature = nature;
+ nature = newNature;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.NATURE_PREDICATE__NATURE, oldNature, nature));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean matches(IProject project)
+ {
+ try
+ {
+ String[] natureIds = project.getDescription().getNatureIds();
+ for (String natureId : natureIds)
+ {
+ if (natureId.equals(nature))
+ {
+ return true;
+ }
+ }
+ }
+ catch (CoreException ex)
+ {
+ // Ignore
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NATURE_PREDICATE__NATURE:
+ return getNature();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NATURE_PREDICATE__NATURE:
+ setNature((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NATURE_PREDICATE__NATURE:
+ setNature(NATURE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NATURE_PREDICATE__NATURE:
+ return NATURE_EDEFAULT == null ? nature != null : !NATURE_EDEFAULT.equals(nature);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case PredicatesPackage.NATURE_PREDICATE___MATCHES__IPROJECT:
+ return matches((IProject)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (nature: ");
+ result.append(nature);
+ result.append(')');
+ return result.toString();
+ }
+
+} // NaturePredicateImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NotPredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NotPredicateImpl.java
new file mode 100644
index 0000000000..188006e1b5
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/NotPredicateImpl.java
@@ -0,0 +1,225 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.NotPredicate;
+import org.eclipse.emf.cdo.releng.predicates.Predicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.core.resources.IProject;
+
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Not Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.NotPredicateImpl#getOperand <em>Operand</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class NotPredicateImpl extends MinimalEObjectImpl.Container implements NotPredicate
+{
+ /**
+ * The cached value of the '{@link #getOperand() <em>Operand</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOperand()
+ * @generated
+ * @ordered
+ */
+ protected Predicate operand;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected NotPredicateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PredicatesPackage.Literals.NOT_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Predicate getOperand()
+ {
+ return operand;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOperand(Predicate newOperand, NotificationChain msgs)
+ {
+ Predicate oldOperand = operand;
+ operand = newOperand;
+ if (eNotificationRequired())
+ {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, PredicatesPackage.NOT_PREDICATE__OPERAND, oldOperand, newOperand);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOperand(Predicate newOperand)
+ {
+ if (newOperand != operand)
+ {
+ NotificationChain msgs = null;
+ if (operand != null)
+ msgs = ((InternalEObject)operand).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - PredicatesPackage.NOT_PREDICATE__OPERAND, null, msgs);
+ if (newOperand != null)
+ msgs = ((InternalEObject)newOperand).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - PredicatesPackage.NOT_PREDICATE__OPERAND, null, msgs);
+ msgs = basicSetOperand(newOperand, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.NOT_PREDICATE__OPERAND, newOperand, newOperand));
+ }
+
+ /**
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean matches(IProject project)
+ {
+ Predicate operand = getOperand();
+ return operand == null || !operand.matches(project);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NOT_PREDICATE__OPERAND:
+ return basicSetOperand(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NOT_PREDICATE__OPERAND:
+ return getOperand();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NOT_PREDICATE__OPERAND:
+ setOperand((Predicate)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NOT_PREDICATE__OPERAND:
+ setOperand((Predicate)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.NOT_PREDICATE__OPERAND:
+ return operand != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case PredicatesPackage.NOT_PREDICATE___MATCHES__IPROJECT:
+ return matches((IProject)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // NotPredicateImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/OrPredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/OrPredicateImpl.java
new file mode 100644
index 0000000000..808b6dee95
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/OrPredicateImpl.java
@@ -0,0 +1,199 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.OrPredicate;
+import org.eclipse.emf.cdo.releng.predicates.Predicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.core.resources.IProject;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Or Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.OrPredicateImpl#getOperands <em>Operands</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class OrPredicateImpl extends MinimalEObjectImpl.Container implements OrPredicate
+{
+ /**
+ * The cached value of the '{@link #getOperands() <em>Operands</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOperands()
+ * @generated
+ * @ordered
+ */
+ protected EList<Predicate> operands;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OrPredicateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PredicatesPackage.Literals.OR_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Predicate> getOperands()
+ {
+ if (operands == null)
+ {
+ operands = new EObjectContainmentEList<Predicate>(Predicate.class, this, PredicatesPackage.OR_PREDICATE__OPERANDS);
+ }
+ return operands;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean matches(IProject project)
+ {
+ for (Predicate operand : getOperands())
+ {
+ if (operand.matches(project))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.OR_PREDICATE__OPERANDS:
+ return ((InternalEList<?>)getOperands()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.OR_PREDICATE__OPERANDS:
+ return getOperands();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.OR_PREDICATE__OPERANDS:
+ getOperands().clear();
+ getOperands().addAll((Collection<? extends Predicate>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.OR_PREDICATE__OPERANDS:
+ getOperands().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.OR_PREDICATE__OPERANDS:
+ return operands != null && !operands.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case PredicatesPackage.OR_PREDICATE___MATCHES__IPROJECT:
+ return matches((IProject)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+} // OrPredicateImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesFactoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesFactoryImpl.java
new file mode 100644
index 0000000000..856beb9893
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesFactoryImpl.java
@@ -0,0 +1,265 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.AndPredicate;
+import org.eclipse.emf.cdo.releng.predicates.BuilderPredicate;
+import org.eclipse.emf.cdo.releng.predicates.NamePredicate;
+import org.eclipse.emf.cdo.releng.predicates.NaturePredicate;
+import org.eclipse.emf.cdo.releng.predicates.NotPredicate;
+import org.eclipse.emf.cdo.releng.predicates.OrPredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+import org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.emf.cdo.releng.predicates.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicatesFactoryImpl extends EFactoryImpl implements PredicatesFactory
+{
+ private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot();
+
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PredicatesFactory init()
+ {
+ try
+ {
+ PredicatesFactory thePredicatesFactory = (PredicatesFactory)EPackage.Registry.INSTANCE.getEFactory(PredicatesPackage.eNS_URI);
+ if (thePredicatesFactory != null)
+ {
+ return thePredicatesFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new PredicatesFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredicatesFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case PredicatesPackage.NAME_PREDICATE: return createNamePredicate();
+ case PredicatesPackage.REPOSITORY_PREDICATE: return createRepositoryPredicate();
+ case PredicatesPackage.AND_PREDICATE: return createAndPredicate();
+ case PredicatesPackage.OR_PREDICATE: return createOrPredicate();
+ case PredicatesPackage.NOT_PREDICATE: return createNotPredicate();
+ case PredicatesPackage.NATURE_PREDICATE: return createNaturePredicate();
+ case PredicatesPackage.BUILDER_PREDICATE: return createBuilderPredicate();
+ case PredicatesPackage.FILE_PREDICATE: return createFilePredicate();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case PredicatesPackage.PROJECT:
+ return createProjectFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case PredicatesPackage.PROJECT:
+ return convertProjectToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NamePredicate createNamePredicate()
+ {
+ NamePredicateImpl namePredicate = new NamePredicateImpl();
+ return namePredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public RepositoryPredicate createRepositoryPredicate()
+ {
+ RepositoryPredicateImpl repositoryPredicate = new RepositoryPredicateImpl();
+ return repositoryPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AndPredicate createAndPredicate()
+ {
+ AndPredicateImpl andPredicate = new AndPredicateImpl();
+ return andPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OrPredicate createOrPredicate()
+ {
+ OrPredicateImpl orPredicate = new OrPredicateImpl();
+ return orPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotPredicate createNotPredicate()
+ {
+ NotPredicateImpl notPredicate = new NotPredicateImpl();
+ return notPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NaturePredicate createNaturePredicate()
+ {
+ NaturePredicateImpl naturePredicate = new NaturePredicateImpl();
+ return naturePredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BuilderPredicate createBuilderPredicate()
+ {
+ BuilderPredicateImpl builderPredicate = new BuilderPredicateImpl();
+ return builderPredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FilePredicate createFilePredicate()
+ {
+ FilePredicateImpl filePredicate = new FilePredicateImpl();
+ return filePredicate;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public IProject createProjectFromString(EDataType eDataType, String initialValue)
+ {
+ if (initialValue == null)
+ {
+ return null;
+ }
+ return WORKSPACE_ROOT.getProject(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertProjectToString(EDataType eDataType, Object instanceValue)
+ {
+ if (instanceValue == null)
+ {
+ return null;
+ }
+ IProject project = (IProject)instanceValue;
+ return project.getName();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredicatesPackage getPredicatesPackage()
+ {
+ return (PredicatesPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static PredicatesPackage getPackage()
+ {
+ return PredicatesPackage.eINSTANCE;
+ }
+
+} // PredicatesFactoryImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesPackageImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesPackageImpl.java
new file mode 100644
index 0000000000..ed68ffe2fc
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/PredicatesPackageImpl.java
@@ -0,0 +1,507 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.core.resources.IProject;
+
+import org.eclipse.emf.cdo.releng.predicates.AndPredicate;
+import org.eclipse.emf.cdo.releng.predicates.BuilderPredicate;
+import org.eclipse.emf.cdo.releng.predicates.FilePredicate;
+import org.eclipse.emf.cdo.releng.predicates.NamePredicate;
+import org.eclipse.emf.cdo.releng.predicates.NaturePredicate;
+import org.eclipse.emf.cdo.releng.predicates.NotPredicate;
+import org.eclipse.emf.cdo.releng.predicates.OrPredicate;
+import org.eclipse.emf.cdo.releng.predicates.Predicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+import org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PredicatesPackageImpl extends EPackageImpl implements PredicatesPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass predicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass namePredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass repositoryPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass andPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass orPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass notPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass naturePredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass builderPredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass filePredicateEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType projectEDataType = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private PredicatesPackageImpl()
+ {
+ super(eNS_URI, PredicatesFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link PredicatesPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static PredicatesPackage init()
+ {
+ if (isInited) return (PredicatesPackage)EPackage.Registry.INSTANCE.getEPackage(PredicatesPackage.eNS_URI);
+
+ // Obtain or create and register package
+ PredicatesPackageImpl thePredicatesPackage = (PredicatesPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof PredicatesPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new PredicatesPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ thePredicatesPackage.createPackageContents();
+
+ // Initialize created meta-data
+ thePredicatesPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ thePredicatesPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(PredicatesPackage.eNS_URI, thePredicatesPackage);
+ return thePredicatesPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPredicate()
+ {
+ return predicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getPredicate__Matches__IProject()
+ {
+ return predicateEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNamePredicate()
+ {
+ return namePredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNamePredicate_Pattern()
+ {
+ return (EAttribute)namePredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getRepositoryPredicate()
+ {
+ return repositoryPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getRepositoryPredicate_Project()
+ {
+ return (EAttribute)repositoryPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getAndPredicate()
+ {
+ return andPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getAndPredicate_Operands()
+ {
+ return (EReference)andPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getOrPredicate()
+ {
+ return orPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getOrPredicate_Operands()
+ {
+ return (EReference)orPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNotPredicate()
+ {
+ return notPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getNotPredicate_Operand()
+ {
+ return (EReference)notPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getNaturePredicate()
+ {
+ return naturePredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getNaturePredicate_Nature()
+ {
+ return (EAttribute)naturePredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getBuilderPredicate()
+ {
+ return builderPredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBuilderPredicate_Builder()
+ {
+ return (EAttribute)builderPredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getFilePredicate()
+ {
+ return filePredicateEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFilePredicate_FilePattern()
+ {
+ return (EAttribute)filePredicateEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getFilePredicate_ContentPattern()
+ {
+ return (EAttribute)filePredicateEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EDataType getProject()
+ {
+ return projectEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredicatesFactory getPredicatesFactory()
+ {
+ return (PredicatesFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ predicateEClass = createEClass(PREDICATE);
+ createEOperation(predicateEClass, PREDICATE___MATCHES__IPROJECT);
+
+ namePredicateEClass = createEClass(NAME_PREDICATE);
+ createEAttribute(namePredicateEClass, NAME_PREDICATE__PATTERN);
+
+ repositoryPredicateEClass = createEClass(REPOSITORY_PREDICATE);
+ createEAttribute(repositoryPredicateEClass, REPOSITORY_PREDICATE__PROJECT);
+
+ andPredicateEClass = createEClass(AND_PREDICATE);
+ createEReference(andPredicateEClass, AND_PREDICATE__OPERANDS);
+
+ orPredicateEClass = createEClass(OR_PREDICATE);
+ createEReference(orPredicateEClass, OR_PREDICATE__OPERANDS);
+
+ notPredicateEClass = createEClass(NOT_PREDICATE);
+ createEReference(notPredicateEClass, NOT_PREDICATE__OPERAND);
+
+ naturePredicateEClass = createEClass(NATURE_PREDICATE);
+ createEAttribute(naturePredicateEClass, NATURE_PREDICATE__NATURE);
+
+ builderPredicateEClass = createEClass(BUILDER_PREDICATE);
+ createEAttribute(builderPredicateEClass, BUILDER_PREDICATE__BUILDER);
+
+ filePredicateEClass = createEClass(FILE_PREDICATE);
+ createEAttribute(filePredicateEClass, FILE_PREDICATE__FILE_PATTERN);
+ createEAttribute(filePredicateEClass, FILE_PREDICATE__CONTENT_PATTERN);
+
+ // Create data types
+ projectEDataType = createEDataType(PROJECT);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ namePredicateEClass.getESuperTypes().add(this.getPredicate());
+ repositoryPredicateEClass.getESuperTypes().add(this.getPredicate());
+ andPredicateEClass.getESuperTypes().add(this.getPredicate());
+ orPredicateEClass.getESuperTypes().add(this.getPredicate());
+ notPredicateEClass.getESuperTypes().add(this.getPredicate());
+ naturePredicateEClass.getESuperTypes().add(this.getPredicate());
+ builderPredicateEClass.getESuperTypes().add(this.getPredicate());
+ filePredicateEClass.getESuperTypes().add(this.getPredicate());
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(predicateEClass, Predicate.class, "Predicate", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ EOperation op = initEOperation(getPredicate__Matches__IProject(), ecorePackage.getEBoolean(), "matches", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getProject(), "project", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(namePredicateEClass, NamePredicate.class, "NamePredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getNamePredicate_Pattern(), ecorePackage.getEString(), "pattern", null, 1, 1, NamePredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(repositoryPredicateEClass, RepositoryPredicate.class, "RepositoryPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getRepositoryPredicate_Project(), this.getProject(), "project", null, 0, 1, RepositoryPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(andPredicateEClass, AndPredicate.class, "AndPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getAndPredicate_Operands(), this.getPredicate(), null, "operands", null, 0, -1, AndPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(orPredicateEClass, OrPredicate.class, "OrPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getOrPredicate_Operands(), this.getPredicate(), null, "operands", null, 0, -1, OrPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(notPredicateEClass, NotPredicate.class, "NotPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getNotPredicate_Operand(), this.getPredicate(), null, "operand", null, 0, 1, NotPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(naturePredicateEClass, NaturePredicate.class, "NaturePredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getNaturePredicate_Nature(), ecorePackage.getEString(), "nature", null, 1, 1, NaturePredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(builderPredicateEClass, BuilderPredicate.class, "BuilderPredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getBuilderPredicate_Builder(), ecorePackage.getEString(), "builder", null, 1, 1, BuilderPredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(filePredicateEClass, FilePredicate.class, "FilePredicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getFilePredicate_FilePattern(), ecorePackage.getEString(), "filePattern", null, 1, 1, FilePredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getFilePredicate_ContentPattern(), ecorePackage.getEString(), "contentPattern", null, 0, 1, FilePredicate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize data types
+ initEDataType(projectEDataType, IProject.class, "Project", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //PredicatesPackageImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/RepositoryPredicateImpl.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/RepositoryPredicateImpl.java
new file mode 100644
index 0000000000..71ea579298
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/impl/RepositoryPredicateImpl.java
@@ -0,0 +1,229 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+import org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.egit.core.GitProvider;
+import org.eclipse.egit.core.project.GitProjectData;
+import org.eclipse.egit.core.project.RepositoryMapping;
+import org.eclipse.team.core.RepositoryProvider;
+
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Repository Predicate</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.predicates.impl.RepositoryPredicateImpl#getProject <em>Project</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class RepositoryPredicateImpl extends MinimalEObjectImpl.Container implements RepositoryPredicate
+{
+ /**
+ * The default value of the '{@link #getProject() <em>Project</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProject()
+ * @generated
+ * @ordered
+ */
+ protected static final IProject PROJECT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProject() <em>Project</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProject()
+ * @generated
+ * @ordered
+ */
+ protected IProject project = PROJECT_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected RepositoryPredicateImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PredicatesPackage.Literals.REPOSITORY_PREDICATE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IProject getProject()
+ {
+ return project;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProject(IProject newProject)
+ {
+ IProject oldProject = project;
+ project = newProject;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PredicatesPackage.REPOSITORY_PREDICATE__PROJECT, oldProject, project));
+ }
+
+ private IPath getGitDirAbsolutePath(IProject project)
+ {
+ if (project != null)
+ {
+ RepositoryProvider provider = RepositoryProvider.getProvider(project);
+ if (provider instanceof GitProvider)
+ {
+ GitProvider gitProvider = (GitProvider)provider;
+ GitProjectData data = gitProvider.getData();
+ RepositoryMapping repositoryMapping = data.getRepositoryMapping(project);
+ return repositoryMapping.getGitDirAbsolutePath();
+ }
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean matches(IProject project)
+ {
+ IPath prototypeGitDirAbsolutePath = getGitDirAbsolutePath(getProject());
+ IPath gitDirAbsolutePath = getGitDirAbsolutePath(project);
+ return prototypeGitDirAbsolutePath != null && prototypeGitDirAbsolutePath.equals(gitDirAbsolutePath);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.REPOSITORY_PREDICATE__PROJECT:
+ return getProject();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.REPOSITORY_PREDICATE__PROJECT:
+ setProject((IProject)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.REPOSITORY_PREDICATE__PROJECT:
+ setProject(PROJECT_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PredicatesPackage.REPOSITORY_PREDICATE__PROJECT:
+ return PROJECT_EDEFAULT == null ? project != null : !PROJECT_EDEFAULT.equals(project);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case PredicatesPackage.REPOSITORY_PREDICATE___MATCHES__IPROJECT:
+ return matches((IProject)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (project: ");
+ result.append(project);
+ result.append(')');
+ return result.toString();
+ }
+
+} // RepositoryPredicateImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesAdapterFactory.java
new file mode 100644
index 0000000000..c1e7d939f7
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesAdapterFactory.java
@@ -0,0 +1,292 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.util;
+
+import org.eclipse.emf.cdo.releng.predicates.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage
+ * @generated
+ */
+public class PredicatesAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static PredicatesPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredicatesAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = PredicatesPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object)
+ {
+ if (object == modelPackage)
+ {
+ return true;
+ }
+ if (object instanceof EObject)
+ {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PredicatesSwitch<Adapter> modelSwitch =
+ new PredicatesSwitch<Adapter>()
+ {
+ @Override
+ public Adapter casePredicate(Predicate object)
+ {
+ return createPredicateAdapter();
+ }
+ @Override
+ public Adapter caseNamePredicate(NamePredicate object)
+ {
+ return createNamePredicateAdapter();
+ }
+ @Override
+ public Adapter caseRepositoryPredicate(RepositoryPredicate object)
+ {
+ return createRepositoryPredicateAdapter();
+ }
+ @Override
+ public Adapter caseAndPredicate(AndPredicate object)
+ {
+ return createAndPredicateAdapter();
+ }
+ @Override
+ public Adapter caseOrPredicate(OrPredicate object)
+ {
+ return createOrPredicateAdapter();
+ }
+ @Override
+ public Adapter caseNotPredicate(NotPredicate object)
+ {
+ return createNotPredicateAdapter();
+ }
+ @Override
+ public Adapter caseNaturePredicate(NaturePredicate object)
+ {
+ return createNaturePredicateAdapter();
+ }
+ @Override
+ public Adapter caseBuilderPredicate(BuilderPredicate object)
+ {
+ return createBuilderPredicateAdapter();
+ }
+ @Override
+ public Adapter caseFilePredicate(FilePredicate object)
+ {
+ return createFilePredicateAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object)
+ {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.Predicate <em>Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.Predicate
+ * @generated
+ */
+ public Adapter createPredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.NamePredicate <em>Name Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.NamePredicate
+ * @generated
+ */
+ public Adapter createNamePredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate <em>Repository Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate
+ * @generated
+ */
+ public Adapter createRepositoryPredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.AndPredicate <em>And Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.AndPredicate
+ * @generated
+ */
+ public Adapter createAndPredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.OrPredicate <em>Or Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.OrPredicate
+ * @generated
+ */
+ public Adapter createOrPredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.NotPredicate <em>Not Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.NotPredicate
+ * @generated
+ */
+ public Adapter createNotPredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.NaturePredicate <em>Nature Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.NaturePredicate
+ * @generated
+ */
+ public Adapter createNaturePredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.BuilderPredicate <em>Builder Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.BuilderPredicate
+ * @generated
+ */
+ public Adapter createBuilderPredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.predicates.FilePredicate <em>File Predicate</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.predicates.FilePredicate
+ * @generated
+ */
+ public Adapter createFilePredicateAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} //PredicatesAdapterFactory
diff --git a/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesSwitch.java b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesSwitch.java
new file mode 100644
index 0000000000..359d1eac38
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.predicates/src/org/eclipse/emf/cdo/releng/predicates/util/PredicatesSwitch.java
@@ -0,0 +1,311 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.predicates.util;
+
+import org.eclipse.emf.cdo.releng.predicates.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.predicates.PredicatesPackage
+ * @generated
+ */
+public class PredicatesSwitch<T> extends Switch<T>
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static PredicatesPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PredicatesSwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = PredicatesPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage)
+ {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case PredicatesPackage.PREDICATE:
+ {
+ Predicate predicate = (Predicate)theEObject;
+ T result = casePredicate(predicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PredicatesPackage.NAME_PREDICATE:
+ {
+ NamePredicate namePredicate = (NamePredicate)theEObject;
+ T result = caseNamePredicate(namePredicate);
+ if (result == null) result = casePredicate(namePredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PredicatesPackage.REPOSITORY_PREDICATE:
+ {
+ RepositoryPredicate repositoryPredicate = (RepositoryPredicate)theEObject;
+ T result = caseRepositoryPredicate(repositoryPredicate);
+ if (result == null) result = casePredicate(repositoryPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PredicatesPackage.AND_PREDICATE:
+ {
+ AndPredicate andPredicate = (AndPredicate)theEObject;
+ T result = caseAndPredicate(andPredicate);
+ if (result == null) result = casePredicate(andPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PredicatesPackage.OR_PREDICATE:
+ {
+ OrPredicate orPredicate = (OrPredicate)theEObject;
+ T result = caseOrPredicate(orPredicate);
+ if (result == null) result = casePredicate(orPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PredicatesPackage.NOT_PREDICATE:
+ {
+ NotPredicate notPredicate = (NotPredicate)theEObject;
+ T result = caseNotPredicate(notPredicate);
+ if (result == null) result = casePredicate(notPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PredicatesPackage.NATURE_PREDICATE:
+ {
+ NaturePredicate naturePredicate = (NaturePredicate)theEObject;
+ T result = caseNaturePredicate(naturePredicate);
+ if (result == null) result = casePredicate(naturePredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PredicatesPackage.BUILDER_PREDICATE:
+ {
+ BuilderPredicate builderPredicate = (BuilderPredicate)theEObject;
+ T result = caseBuilderPredicate(builderPredicate);
+ if (result == null) result = casePredicate(builderPredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PredicatesPackage.FILE_PREDICATE:
+ {
+ FilePredicate filePredicate = (FilePredicate)theEObject;
+ T result = caseFilePredicate(filePredicate);
+ if (result == null) result = casePredicate(filePredicate);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePredicate(Predicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Name Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Name Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNamePredicate(NamePredicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Repository Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Repository Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRepositoryPredicate(RepositoryPredicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>And Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>And Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAndPredicate(AndPredicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Or Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Or Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOrPredicate(OrPredicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Not Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Not Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNotPredicate(NotPredicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Nature Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Nature Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNaturePredicate(NaturePredicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Builder Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Builder Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseBuilderPredicate(BuilderPredicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>File Predicate</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>File Predicate</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseFilePredicate(FilePredicate object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} //PredicatesSwitch
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.classpath b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.classpath
new file mode 100644
index 0000000000..3bc247511f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.project b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.project
new file mode 100644
index 0000000000..26912e0d08
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.cdo.releng.preferences.edit</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000..a4a4bde1e6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding//model/preferences.ecorediag=UTF-8
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..b3af741094
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,405 @@
+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.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+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.doc.comment.support=enabled
+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.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+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=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+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.includeNullInfoFromAsserts=disabled
+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.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.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.unusedObjectAllocation=ignore
+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.unusedTypeParameter=ignore
+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,HIGH,LOW,LOW,LOW,LOW,LOW
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED
+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_annotation=0
+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_method_declaration=0
+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_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+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.alignment_for_union_type_in_multicatch=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=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.format_block_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=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+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.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+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.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+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=2
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=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_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=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_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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_try=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_semicolon_in_try_resources=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_try=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_try=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_semicolon_in_try_resources=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=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+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=space
+org.eclipse.jdt.core.formatter.tabulation.size=2
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000000..3fc140fcdc
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,119 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=true
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=true
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=false
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_EMFT
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_EMFT
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" 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 * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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 * Eike Stepper - initial API and implementation\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 Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><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\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.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.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">${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">${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}</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></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_missing_override_annotations_interface_methods=false
+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=false
+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_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+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=false
+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=true
+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=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000000..864e30fe5d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs
new file mode 100644
index 0000000000..b050639a54
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs
@@ -0,0 +1,4 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+project.repository.kind=bugzilla
+project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.mylyn.team.ui.prefs
new file mode 100644
index 0000000000..2f50f36c0c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.mylyn.team.ui.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+commit.comment.template=[${task.id}] ${task.description} \r\n${task.url}
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000000..0c17d59e45
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,95 @@
+#Thu Feb 04 09:44:24 CET 2010
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+MISSING_EE_DESCRIPTIONS=Warning
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Ignore
+automatically_removed_unused_problem_filters=Disabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000000..fe01bb701d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,31 @@
+#Thu Feb 04 09:44:24 CET 2010
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=2
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=1
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+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
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..02c8a05c89
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.cdo.releng.preferences.edit;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.emf.cdo.releng.preferences.provider.PreferencesEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.cdo.releng.preferences.provider
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.cdo.releng.preferences;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/build.properties b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/build.properties
new file mode 100644
index 0000000000..6e3e902e80
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/icons/full/obj16/PreferenceNode.gif b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/icons/full/obj16/PreferenceNode.gif
new file mode 100644
index 0000000000..e8cb49fb5f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/icons/full/obj16/PreferenceNode.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/icons/full/obj16/Property.gif b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/icons/full/obj16/Property.gif
new file mode 100644
index 0000000000..99b7fa68d9
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/icons/full/obj16/Property.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/plugin.properties
new file mode 100644
index 0000000000..8ca07b08ce
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/plugin.properties
@@ -0,0 +1,30 @@
+#
+
+pluginName = Preferences Edit Support
+providerName = www.example.org
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_PreferenceNode_type = Preference Node
+_UI_Property_type = Property
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_PreferenceNode_children_feature = Children
+_UI_PreferenceNode_parent_feature = Parent
+_UI_PreferenceNode_properties_feature = Properties
+_UI_PreferenceNode_name_feature = Name
+_UI_Property_name_feature = Name
+_UI_Property_parent_feature = Parent
+_UI_Property_value_feature = Value
+_UI_Unknown_feature = Unspecified
+
+_UI_PreferenceNode_location_feature = Location
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/plugin.xml
new file mode 100644
index 0000000000..0550154313
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <!-- @generated preferences -->
+ <factory
+ uri="http://www.eclipse.org/CDO/releng/preferences/1.0"
+ class="org.eclipse.emf.cdo.releng.preferences.provider.PreferencesItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferenceNodeItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferenceNodeItemProvider.java
new file mode 100644
index 0000000000..290ddc5e91
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferenceNodeItemProvider.java
@@ -0,0 +1,243 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences.provider;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.preferences.PreferencesFactory;
+import org.eclipse.emf.cdo.releng.preferences.PreferencesPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PreferenceNodeItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceNodeItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ addLocationPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PreferenceNode_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PreferenceNode_name_feature", "_UI_PreferenceNode_type"),
+ PreferencesPackage.Literals.PREFERENCE_NODE__NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Location feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addLocationPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PreferenceNode_location_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PreferenceNode_location_feature", "_UI_PreferenceNode_type"),
+ PreferencesPackage.Literals.PREFERENCE_NODE__LOCATION,
+ false,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
+ {
+ if (childrenFeatures == null)
+ {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(PreferencesPackage.Literals.PREFERENCE_NODE__CHILDREN);
+ childrenFeatures.add(PreferencesPackage.Literals.PREFERENCE_NODE__PROPERTIES);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child)
+ {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns PreferenceNode.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PreferenceNode"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((PreferenceNode)object).getName();
+ return label == null ? "" : label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(PreferenceNode.class))
+ {
+ case PreferencesPackage.PREFERENCE_NODE__NAME:
+ case PreferencesPackage.PREFERENCE_NODE__LOCATION:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case PreferencesPackage.PREFERENCE_NODE__CHILDREN:
+ case PreferencesPackage.PREFERENCE_NODE__PROPERTIES:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (PreferencesPackage.Literals.PREFERENCE_NODE__CHILDREN,
+ PreferencesFactory.eINSTANCE.createPreferenceNode()));
+
+ newChildDescriptors.add
+ (createChildParameter
+ (PreferencesPackage.Literals.PREFERENCE_NODE__PROPERTIES,
+ PreferencesFactory.eINSTANCE.createProperty()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return PreferencesEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferencesEditPlugin.java b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferencesEditPlugin.java
new file mode 100644
index 0000000000..1c27a3f555
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferencesEditPlugin.java
@@ -0,0 +1,96 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences.provider;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Preferences edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class PreferencesEditPlugin extends EMFPlugin
+{
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final PreferencesEditPlugin INSTANCE = new PreferencesEditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferencesEditPlugin()
+ {
+ super
+ (new ResourceLocator []
+ {
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator()
+ {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin()
+ {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipsePlugin
+ {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation()
+ {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferencesItemProviderAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferencesItemProviderAdapterFactory.java
new file mode 100644
index 0000000000..86a86d9a2b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PreferencesItemProviderAdapterFactory.java
@@ -0,0 +1,241 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.cdo.releng.preferences.util.PreferencesAdapterFactory;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PreferencesItemProviderAdapterFactory extends PreferencesAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable
+{
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferencesItemProviderAdapterFactory()
+ {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PreferenceNodeItemProvider preferenceNodeItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPreferenceNodeAdapter()
+ {
+ if (preferenceNodeItemProvider == null)
+ {
+ preferenceNodeItemProvider = new PreferenceNodeItemProvider(this);
+ }
+
+ return preferenceNodeItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.preferences.Property} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PropertyItemProvider propertyItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.preferences.Property}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPropertyAdapter()
+ {
+ if (propertyItemProvider == null)
+ {
+ propertyItemProvider = new PropertyItemProvider(this);
+ }
+
+ return propertyItemProvider;
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComposeableAdapterFactory getRootAdapterFactory()
+ {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory)
+ {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type)
+ {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type)
+ {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type)
+ {
+ if (isFactoryForType(type))
+ {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter)))
+ {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener)
+ {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener)
+ {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void fireNotifyChanged(Notification notification)
+ {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null)
+ {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void dispose()
+ {
+ if (preferenceNodeItemProvider != null) preferenceNodeItemProvider.dispose();
+ if (propertyItemProvider != null) propertyItemProvider.dispose();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PropertyItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PropertyItemProvider.java
new file mode 100644
index 0000000000..062549536f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.edit/src/org/eclipse/emf/cdo/releng/preferences/provider/PropertyItemProvider.java
@@ -0,0 +1,194 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences.provider;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferencesPackage;
+import org.eclipse.emf.cdo.releng.preferences.Property;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.preferences.Property} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PropertyItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PropertyItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ addValuePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Property_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Property_name_feature", "_UI_Property_type"),
+ PreferencesPackage.Literals.PROPERTY__NAME,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Value feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addValuePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_Property_value_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Property_value_feature", "_UI_Property_type"),
+ PreferencesPackage.Literals.PROPERTY__VALUE,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns Property.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Property"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String name = ((Property)object).getName();
+ String value = ((Property)object).getValue();
+ return (name == null ? "" : name) + (value == null ? "" : "=" + crop(value));
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Property.class))
+ {
+ case PreferencesPackage.PROPERTY__NAME:
+ case PreferencesPackage.PROPERTY__VALUE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return PreferencesEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.classpath b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.classpath
new file mode 100644
index 0000000000..3bc247511f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.project b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.project
new file mode 100644
index 0000000000..2eadbeae48
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.cdo.releng.preferences.editor</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000..a4a4bde1e6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding//model/preferences.ecorediag=UTF-8
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.jdt.core.prefs
index 48aafaf7ea..48aafaf7ea 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.jdt.core.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.jdt.core.prefs
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000000..3fc140fcdc
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,119 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=true
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=true
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=false
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_EMFT
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_EMFT
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" 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 * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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 * Eike Stepper - initial API and implementation\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 Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><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\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.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.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">${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">${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}</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></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_missing_override_annotations_interface_methods=false
+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=false
+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_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+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=false
+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=true
+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=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000000..864e30fe5d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.mylyn.tasks.ui.prefs
new file mode 100644
index 0000000000..b050639a54
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.mylyn.tasks.ui.prefs
@@ -0,0 +1,4 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+project.repository.kind=bugzilla
+project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.mylyn.team.ui.prefs
new file mode 100644
index 0000000000..2f50f36c0c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.mylyn.team.ui.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+commit.comment.template=[${task.id}] ${task.description} \r\n${task.url}
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000000..0c17d59e45
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,95 @@
+#Thu Feb 04 09:44:24 CET 2010
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+MISSING_EE_DESCRIPTIONS=Warning
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Ignore
+automatically_removed_unused_problem_filters=Disabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000000..fe01bb701d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,31 @@
+#Thu Feb 04 09:44:24 CET 2010
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=2
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=1
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+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
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..09f2ecf960
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.cdo.releng.preferences.editor;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.emf.cdo.releng.preferences.presentation.PreferencesEditorPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.cdo.releng.preferences.action,
+ org.eclipse.emf.cdo.releng.preferences.presentation
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources;visibility:=reexport,
+ org.eclipse.emf.cdo.releng.preferences.edit;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.emf.edit.ui;visibility:=reexport,
+ org.eclipse.ui.ide;visibility:=reexport,
+ org.eclipse.core.filesystem
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/build.properties b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/build.properties
new file mode 100644
index 0000000000..5fb07711cf
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/icons/full/obj16/PreferencesModelFile.gif b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/icons/full/obj16/PreferencesModelFile.gif
new file mode 100644
index 0000000000..e8cb49fb5f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/icons/full/obj16/PreferencesModelFile.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/icons/full/wizban/NewPreferences.gif b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/icons/full/wizban/NewPreferences.gif
new file mode 100644
index 0000000000..0ed73ab4fd
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/icons/full/wizban/NewPreferences.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/plugin.properties
new file mode 100644
index 0000000000..d5012d3ed8
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/plugin.properties
@@ -0,0 +1,53 @@
+#
+
+pluginName = Preferences Editor
+providerName = www.example.org
+
+_UI_PreferencesEditor_menu = &Preferences Editor
+
+_UI_CreateChild_menu_item = &New Child
+_UI_CreateSibling_menu_item = N&ew Sibling
+
+_UI_ShowPropertiesView_menu_item = Show &Properties View
+_UI_RefreshViewer_menu_item = &Refresh
+
+_UI_SelectionPage_label = Selection
+_UI_ParentPage_label = Parent
+_UI_ListPage_label = List
+_UI_TreePage_label = Tree
+_UI_TablePage_label = Table
+_UI_TreeWithColumnsPage_label = Tree with Columns
+_UI_ObjectColumn_label = Object
+_UI_SelfColumn_label = Self
+
+_UI_NoObjectSelected = Selected Nothing
+_UI_SingleObjectSelected = Selected Object: {0}
+_UI_MultiObjectSelected = Selected {0} Objects
+
+_UI_OpenEditorError_label = Open Editor
+
+_UI_Wizard_category = Release Engineering
+
+_UI_CreateModelError_message = Problems encountered in file "{0}"
+
+_UI_PreferencesModelWizard_label = Preferences Model
+_UI_PreferencesModelWizard_description = Create a new Preferences model
+
+_UI_PreferencesEditor_label = Preferences Model Editor
+
+_UI_PreferencesEditorFilenameDefaultBase = My
+_UI_PreferencesEditorFilenameExtensions = preferences
+
+_UI_Wizard_label = New
+
+_WARN_FilenameExtension = The file name must end in ''.{0}''
+_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
+
+_UI_ModelObject = &Model Object
+_UI_XMLEncoding = &XML Encoding
+_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
+_UI_Wizard_initial_object_description = Select a model object to create
+
+_UI_FileConflict_label = File Conflict
+_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes?
+
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/plugin.xml
new file mode 100644
index 0000000000..b36238842f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/plugin.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.emf.cdo.releng.ui.preferences.RelengPreferencePage"
+ class="org.eclipse.emf.cdo.releng.preferences.presentation.AllPreferencesPreferencePage"
+ id="org.eclipse.emf.cdo.releng.preferences.presentation.AllPreferencesPreferencePage"
+ name="All Preferences">
+ </page>
+ </extension>
+
+ <extension point="org.eclipse.ui.newWizards">
+ <!-- @generated preferences -->
+ <category
+ id="org.eclipse.emf.ecore.Wizard.category.ID"
+ name="%_UI_Wizard_category"/>
+ <category
+ id="org.eclipse.emf.cdo.releng"
+ name="%_UI_Wizard_category"/>
+ <wizard
+ id="org.eclipse.emf.cdo.releng.preferences.presentation.PreferencesModelWizardID"
+ name="%_UI_PreferencesModelWizard_label"
+ class="org.eclipse.emf.cdo.releng.preferences.presentation.PreferencesModelWizard"
+ category="org.eclipse.emf.cdo.releng"
+ icon="icons/full/obj16/PreferencesModelFile.gif">
+ <description>%_UI_PreferencesModelWizard_description</description>
+ <selection class="org.eclipse.core.resources.IResource"/>
+ </wizard>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors">
+ <!-- @generated preferences -->
+ <editor
+ id="org.eclipse.emf.cdo.releng.preferences.presentation.PreferencesEditorID"
+ name="%_UI_PreferencesEditor_label"
+ icon="icons/full/obj16/PreferencesModelFile.gif"
+ extensions="preferences"
+ class="org.eclipse.emf.cdo.releng.preferences.presentation.PreferencesEditor"
+ contributorClass="org.eclipse.emf.cdo.releng.preferences.presentation.PreferencesActionBarContributor">
+ </editor>
+ </extension>
+
+
+ <extension point="org.eclipse.ui.popupMenus">
+ <objectContribution
+ id="org.eclipse.emf.cdo.releng.preferences.action.OpenEditor"
+ objectClass="org.eclipse.emf.cdo.releng.preferences.PreferenceNode">
+ <action
+ id="org.eclipse.emf.cdo.releng.preferences.action.OpenEditorAction"
+ label="Open Editor"
+ menubarPath="additions"
+ class="org.eclipse.emf.cdo.releng.preferences.action.OpenEditorAction"
+ enablesFor="1"/>
+ </objectContribution>
+ </extension>
+
+ <extension point="org.eclipse.ui.popupMenus">
+ <objectContribution
+ id="org.eclipse.emf.cdo.releng.preferences.action.ShowInExplorer"
+ objectClass="org.eclipse.emf.cdo.releng.preferences.PreferenceNode">
+ <action
+ id="org.eclipse.emf.cdo.releng.preferences.action.ShowInExplorerAction"
+ label="Show in Package Explorer"
+ menubarPath="additions"
+ class="org.eclipse.emf.cdo.releng.preferences.action.ShowInExplorerAction"
+ enablesFor="1"/>
+ </objectContribution>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/action/OpenEditorAction.java b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/action/OpenEditorAction.java
new file mode 100644
index 0000000000..48d0e9a14a
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/action/OpenEditorAction.java
@@ -0,0 +1,89 @@
+/**
+ * Copyright (c) 2002-2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.preferences.action;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+
+import org.eclipse.core.filesystem.EFS;
+import org.eclipse.core.filesystem.IFileStore;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.ActionDelegate;
+import org.eclipse.ui.ide.IDE;
+
+import java.io.File;
+import java.net.URI;
+
+public class OpenEditorAction extends ActionDelegate
+{
+ protected String path;
+
+ public OpenEditorAction()
+ {
+ super();
+ }
+
+ @Override
+ public void run(IAction action)
+ {
+ IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+
+ // Open an editor on the new file.
+ //
+ try
+ {
+ File file = new File(path);
+ URI uri = file.toURI();
+
+ IFile[] files = ResourcesPlugin.getWorkspace().getRoot().findFilesForLocationURI(uri);
+ if (files.length > 0)
+ {
+ IDE.openEditor(page, files[0]);
+ }
+ else
+ {
+ IFileStore fileStore = EFS.getStore(uri);
+ IDE.openEditorOnFileStore(page, fileStore);
+ }
+ }
+ catch (Exception exception)
+ {
+ MessageDialog.openError(workbenchWindow.getShell(), "Open Editor", exception.getMessage());
+ }
+ }
+
+ @Override
+ public void selectionChanged(IAction action, ISelection selection)
+ {
+ if (selection instanceof IStructuredSelection)
+ {
+ Object object = ((IStructuredSelection)selection).getFirstElement();
+ if (object instanceof PreferenceNode)
+ {
+ path = ((PreferenceNode)object).getLocation();
+
+ action.setEnabled(path != null);
+
+ return;
+ }
+ }
+ path = null;
+ action.setEnabled(false);
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/action/ShowInExplorerAction.java b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/action/ShowInExplorerAction.java
new file mode 100644
index 0000000000..c475e98cee
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/action/ShowInExplorerAction.java
@@ -0,0 +1,121 @@
+/**
+ * Copyright (c) 2002-2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM - Initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.preferences.action;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.preferences.presentation.PreferencesEditorPlugin;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.ActionDelegate;
+import org.eclipse.ui.part.IShowInTarget;
+import org.eclipse.ui.part.ShowInContext;
+
+import java.io.File;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class ShowInExplorerAction extends ActionDelegate
+{
+ private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot();
+
+ protected ISelection targetSelection;
+
+ public ShowInExplorerAction()
+ {
+ super();
+ }
+
+ @Override
+ public void run(IAction action)
+ {
+ IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ try
+ {
+ IViewPart packageExplorerView = page.showView("org.eclipse.jdt.ui.PackageExplorer");
+ IShowInTarget showInTarget = (IShowInTarget)packageExplorerView.getAdapter(IShowInTarget.class);
+ showInTarget.show(new ShowInContext(null, targetSelection));
+ }
+ catch (PartInitException ex)
+ {
+ PreferencesEditorPlugin.INSTANCE.log(ex);
+ }
+ }
+
+ @Override
+ public void selectionChanged(IAction action, ISelection selection)
+ {
+ if (selection instanceof IStructuredSelection)
+ {
+ List<IResource> resources = new ArrayList<IResource>();
+ for (Object object : ((IStructuredSelection)selection).toArray())
+ {
+ if (object instanceof PreferenceNode)
+ {
+ PreferenceNode preferenceNode = (PreferenceNode)object;
+ String path = preferenceNode.getLocation();
+
+ if (path != null)
+ {
+ File file = new File(path);
+ URI uri = file.toURI();
+
+ IFile[] files = WORKSPACE_ROOT.findFilesForLocationURI(uri);
+ if (files.length > 0)
+ {
+ resources.addAll(Arrays.asList(files));
+ }
+ }
+ else
+ {
+ PreferenceNode parent = preferenceNode.getParent();
+ if (parent != null && "project".equals(parent.getName()))
+ {
+ PreferenceNode grandParent = parent.getParent();
+ if (grandParent != null && "".equals(grandParent.getName()))
+ {
+ IProject project = WORKSPACE_ROOT.getProject(preferenceNode.getName());
+ if (project.isAccessible())
+ {
+ resources.add(project);
+ }
+ }
+ }
+ }
+ }
+ }
+ if (!resources.isEmpty())
+ {
+ targetSelection = new StructuredSelection(resources);
+ action.setEnabled(true);
+ return;
+ }
+ }
+
+ targetSelection = null;
+ action.setEnabled(false);
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/AllPreferencesPreferencePage.java b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/AllPreferencesPreferencePage.java
new file mode 100644
index 0000000000..b7d14eeee5
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/AllPreferencesPreferencePage.java
@@ -0,0 +1,150 @@
+/*
+ * Copyright (c) 2012 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.preferences.presentation;
+
+import org.eclipse.emf.cdo.releng.preferences.provider.PreferencesItemProviderAdapterFactory;
+import org.eclipse.emf.cdo.releng.preferences.util.PreferencesUtil;
+
+import org.eclipse.emf.common.ui.URIEditorInput;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.preference.IPreferencePageContainer;
+import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Point;
+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.ui.IEditorInput;
+import org.eclipse.ui.IPageLayout;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.IWorkbenchWindow;
+
+import java.lang.reflect.Method;
+
+/**
+ * @author Eike Stepper
+ */
+public class AllPreferencesPreferencePage extends PreferencePage implements IWorkbenchPreferencePage
+{
+ private IWorkbench workbench;
+
+ public AllPreferencesPreferencePage()
+ {
+ super("<taken from plugin.xml>");
+ setDescription("Manage all preferences:");
+ noDefaultAndApplyButton();
+ }
+
+ public void init(IWorkbench workbench)
+ {
+ this.workbench = workbench;
+ }
+
+ @Override
+ protected Control createContents(Composite parent)
+ {
+ GridLayout layout = new GridLayout();
+ layout.marginWidth = 0;
+ layout.marginHeight = 0;
+ layout.numColumns = 1;
+
+ Composite composite = new Composite(parent, SWT.NONE);
+ composite.setLayout(layout);
+
+ TreeViewer treeViewer = new TreeViewer(composite);
+ PreferencesItemProviderAdapterFactory adapterFactory = new PreferencesItemProviderAdapterFactory();
+ treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewer.setInput(PreferencesUtil.getRootPreferenceNode());
+ treeViewer.getControl().setLayoutData(
+ new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
+
+ return composite;
+ }
+
+ @Override
+ protected void contributeButtons(Composite parent)
+ {
+ super.contributeButtons(parent);
+
+ GridLayout gridLayout = (GridLayout)parent.getLayout();
+ gridLayout.numColumns = 1;
+
+ Button editButton = new Button(parent, SWT.PUSH);
+ editButton.setText("Edit...");
+
+ Dialog.applyDialogFont(editButton);
+ int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
+ Point minButtonSize = editButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
+ GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+ data.widthHint = Math.max(widthHint, minButtonSize.x);
+
+ editButton.setLayoutData(data);
+ editButton.addSelectionListener(new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected(SelectionEvent e)
+ {
+ // Invoke the close method on the preference dialog, but avoid using internal API, so do it reflectively.
+ IPreferencePageContainer container = getContainer();
+
+ try
+ {
+ Method method = container.getClass().getMethod("close");
+ method.invoke(container);
+ }
+ catch (Throwable ex)
+ {
+ PreferencesEditorPlugin.INSTANCE.log(ex);
+ }
+
+ openWorkingSetsEditor();
+ }
+ });
+
+ }
+
+ protected void openWorkingSetsEditor()
+ {
+ final IWorkbenchWindow activeWorkbenchWindow = workbench.getActiveWorkbenchWindow();
+ Display display = activeWorkbenchWindow.getShell().getDisplay();
+ display.asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+ IEditorInput editorInput = new URIEditorInput(PreferencesUtil.ROOT_PREFERENCE_NODE_URI.trimSegments(1)
+ .appendSegment("All.preferences"), "All Preferences");
+ IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();
+ activePage.openEditor(editorInput, "org.eclipse.emf.cdo.releng.preferences.presentation.PreferencesEditorID");
+ activePage.showView(IPageLayout.ID_PROP_SHEET);
+ }
+ catch (Exception ex)
+ {
+ PreferencesEditorPlugin.INSTANCE.log(ex);
+ }
+ }
+ });
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesActionBarContributor.java b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesActionBarContributor.java
new file mode 100644
index 0000000000..9cc4e96326
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesActionBarContributor.java
@@ -0,0 +1,469 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+/**
+ * This is the action bar contributor for the Preferences model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PreferencesActionBarContributor
+ extends EditingDomainActionBarContributor
+ implements ISelectionChangedListener
+{
+ /**
+ * This keeps track of the active editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IEditorPart activeEditorPart;
+
+ /**
+ * This keeps track of the current selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionProvider selectionProvider;
+
+ /**
+ * This action opens the Properties view.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction showPropertiesViewAction =
+ new Action(PreferencesEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item"))
+ {
+ @Override
+ public void run()
+ {
+ try
+ {
+ getPage().showView("org.eclipse.ui.views.PropertySheet");
+ }
+ catch (PartInitException exception)
+ {
+ PreferencesEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * This action refreshes the viewer of the current editor if the editor
+ * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction refreshViewerAction =
+ new Action(PreferencesEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item"))
+ {
+ @Override
+ public boolean isEnabled()
+ {
+ return activeEditorPart instanceof IViewerProvider;
+ }
+
+ @Override
+ public void run()
+ {
+ if (activeEditorPart instanceof IViewerProvider)
+ {
+ Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+ if (viewer != null)
+ {
+ viewer.refresh();
+ }
+ }
+ }
+ };
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createChildActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createChildMenuManager;
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createSiblingActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createSiblingMenuManager;
+
+ /**
+ * This creates an instance of the contributor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferencesActionBarContributor()
+ {
+ super(ADDITIONS_LAST_STYLE);
+ loadResourceAction = new LoadResourceAction();
+ validateAction = new ValidateAction();
+ controlAction = new ControlAction();
+ }
+
+ /**
+ * This adds Separators for editor additions to the tool bar.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToToolBar(IToolBarManager toolBarManager)
+ {
+ toolBarManager.add(new Separator("preferences-settings"));
+ toolBarManager.add(new Separator("preferences-additions"));
+ }
+
+ /**
+ * This adds to the menu bar a menu and some separators for editor additions,
+ * as well as the sub-menus for object creation items.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToMenu(IMenuManager menuManager)
+ {
+ super.contributeToMenu(menuManager);
+
+ IMenuManager submenuManager = new MenuManager(PreferencesEditorPlugin.INSTANCE.getString("_UI_PreferencesEditor_menu"), "org.eclipse.emf.cdo.releng.preferencesMenuID");
+ menuManager.insertAfter("additions", submenuManager);
+ submenuManager.add(new Separator("settings"));
+ submenuManager.add(new Separator("actions"));
+ submenuManager.add(new Separator("additions"));
+ submenuManager.add(new Separator("additions-end"));
+
+ // Prepare for CreateChild item addition or removal.
+ //
+ createChildMenuManager = new MenuManager(PreferencesEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ submenuManager.insertBefore("additions", createChildMenuManager);
+
+ // Prepare for CreateSibling item addition or removal.
+ //
+ createSiblingMenuManager = new MenuManager(PreferencesEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+ // Force an update because Eclipse hides empty menus now.
+ //
+ submenuManager.addMenuListener
+ (new IMenuListener()
+ {
+ public void menuAboutToShow(IMenuManager menuManager)
+ {
+ menuManager.updateAll(true);
+ }
+ });
+
+ addGlobalActions(submenuManager);
+ }
+
+ /**
+ * When the active editor changes, this remembers the change and registers with it as a selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setActiveEditor(IEditorPart part)
+ {
+ super.setActiveEditor(part);
+ activeEditorPart = part;
+
+ // Switch to the new selection provider.
+ //
+ if (selectionProvider != null)
+ {
+ selectionProvider.removeSelectionChangedListener(this);
+ }
+ if (part == null)
+ {
+ selectionProvider = null;
+ }
+ else
+ {
+ selectionProvider = part.getSite().getSelectionProvider();
+ selectionProvider.addSelectionChangedListener(this);
+
+ // Fake a selection changed event to update the menus.
+ //
+ if (selectionProvider.getSelection() != null)
+ {
+ selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+ }
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+ * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+ * that can be added to the selected object and updating the menus accordingly.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void selectionChanged(SelectionChangedEvent event)
+ {
+ // Remove any menu items for old selection.
+ //
+ if (createChildMenuManager != null)
+ {
+ depopulateManager(createChildMenuManager, createChildActions);
+ }
+ if (createSiblingMenuManager != null)
+ {
+ depopulateManager(createSiblingMenuManager, createSiblingActions);
+ }
+
+ // Query the new selection for appropriate new child/sibling descriptors
+ //
+ Collection<?> newChildDescriptors = null;
+ Collection<?> newSiblingDescriptors = null;
+
+ ISelection selection = event.getSelection();
+ if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1)
+ {
+ Object object = ((IStructuredSelection)selection).getFirstElement();
+
+ EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+ newChildDescriptors = domain.getNewChildDescriptors(object, null);
+ newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+ }
+
+ // Generate actions for selection; populate and redraw the menus.
+ //
+ createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+ createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+ if (createChildMenuManager != null)
+ {
+ populateManager(createChildMenuManager, createChildActions, null);
+ createChildMenuManager.update(true);
+ }
+ if (createSiblingMenuManager != null)
+ {
+ populateManager(createSiblingMenuManager, createSiblingActions, null);
+ createSiblingMenuManager.update(true);
+ }
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection)
+ {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null)
+ {
+ for (Object descriptor : descriptors)
+ {
+ actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection)
+ {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null)
+ {
+ for (Object descriptor : descriptors)
+ {
+ actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+ * by inserting them before the specified contribution item <code>contributionID</code>.
+ * If <code>contributionID</code> is <code>null</code>, they are simply added.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions, String contributionID)
+ {
+ if (actions != null)
+ {
+ for (IAction action : actions)
+ {
+ if (contributionID != null)
+ {
+ manager.insertBefore(contributionID, action);
+ }
+ else
+ {
+ manager.add(action);
+ }
+ }
+ }
+ }
+
+ /**
+ * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions)
+ {
+ if (actions != null)
+ {
+ IContributionItem[] items = manager.getItems();
+ for (int i = 0; i < items.length; i++)
+ {
+ // Look into SubContributionItems
+ //
+ IContributionItem contributionItem = items[i];
+ while (contributionItem instanceof SubContributionItem)
+ {
+ contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+ }
+
+ // Delete the ActionContributionItems with matching action.
+ //
+ if (contributionItem instanceof ActionContributionItem)
+ {
+ IAction action = ((ActionContributionItem)contributionItem).getAction();
+ if (actions.contains(action))
+ {
+ manager.remove(contributionItem);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This populates the pop-up menu before it appears.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager)
+ {
+ super.menuAboutToShow(menuManager);
+ MenuManager submenuManager = null;
+
+ submenuManager = new MenuManager(PreferencesEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ populateManager(submenuManager, createChildActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+
+ submenuManager = new MenuManager(PreferencesEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ populateManager(submenuManager, createSiblingActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+ }
+
+ /**
+ * This inserts global actions before the "additions-end" separator.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void addGlobalActions(IMenuManager menuManager)
+ {
+ menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+ menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+ refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());
+ menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+ super.addGlobalActions(menuManager);
+ }
+
+ /**
+ * This ensures that a delete action will clean up all references to deleted objects.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean removeAllReferencesOnDelete()
+ {
+ return true;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesEditor.java b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesEditor.java
new file mode 100644
index 0000000000..32f6f1e0d6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesEditor.java
@@ -0,0 +1,1795 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences.presentation;
+
+import org.eclipse.emf.cdo.releng.preferences.impl.PreferencesURIHandlerImpl;
+import org.eclipse.emf.cdo.releng.preferences.provider.PreferencesItemProviderAdapterFactory;
+import org.eclipse.emf.cdo.releng.preferences.util.PreferencesUtil;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.dialogs.SaveAsDialog;
+import org.eclipse.ui.ide.IGotoMarker;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This is an example of a Preferences model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PreferencesEditor extends MultiPageEditorPart implements IEditingDomainProvider, ISelectionProvider,
+ IMenuListener, IViewerProvider, IGotoMarker
+{
+ /**
+ * This keeps track of the editing domain that is used to track all changes to the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdapterFactoryEditingDomain editingDomain;
+
+ /**
+ * This is the one adapter factory used for providing views of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory adapterFactory;
+
+ /**
+ * This is the content outline page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IContentOutlinePage contentOutlinePage;
+
+ /**
+ * This is a kludge...
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStatusLineManager contentOutlineStatusLineManager;
+
+ /**
+ * This is the content outline page's viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer contentOutlineViewer;
+
+ /**
+ * This is the property sheet page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
+
+ /**
+ * This is the viewer that shadows the selection in the content outline.
+ * The parent relation must be correctly defined for this to work.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer selectionViewer;
+
+ /**
+ * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Viewer currentViewer;
+
+ /**
+ * This listens to which ever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionChangedListener selectionChangedListener;
+
+ /**
+ * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+ /**
+ * This keeps track of the selection of the editor as a whole.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+ /**
+ * The MarkerHelper is responsible for creating workspace resource markers presented
+ * in Eclipse's Problems View.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+ /**
+ * This listens for when the outline becomes active
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IPartListener partListener = new IPartListener()
+ {
+ public void partActivated(IWorkbenchPart p)
+ {
+ if (p instanceof ContentOutline)
+ {
+ if (((ContentOutline)p).getCurrentPage() == contentOutlinePage)
+ {
+ getActionBarContributor().setActiveEditor(PreferencesEditor.this);
+
+ setCurrentViewer(contentOutlineViewer);
+ }
+ }
+ else if (p instanceof PropertySheet)
+ {
+ if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage()))
+ {
+ getActionBarContributor().setActiveEditor(PreferencesEditor.this);
+ handleActivate();
+ }
+ }
+ else if (p == PreferencesEditor.this)
+ {
+ handleActivate();
+ }
+ }
+
+ public void partBroughtToTop(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+
+ public void partClosed(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+
+ public void partDeactivated(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+
+ public void partOpened(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+ };
+
+ /**
+ * Resources that have been removed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been changed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been saved.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+ /**
+ * Map to store the diagnostic associated with a resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+ /**
+ * Controls whether the problem indication should be updated.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean updateProblemIndication = true;
+
+ /**
+ * Adapter used to update the problem indication when resources are demanded loaded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EContentAdapter problemIndicationAdapter = new EContentAdapter()
+ {
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ if (notification.getNotifier() instanceof Resource)
+ {
+ switch (notification.getFeatureID(Resource.class))
+ {
+ case Resource.RESOURCE__IS_LOADED:
+ case Resource.RESOURCE__ERRORS:
+ case Resource.RESOURCE__WARNINGS:
+ {
+ Resource resource = (Resource)notification.getNotifier();
+ Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ resourceToDiagnosticMap.put(resource, diagnostic);
+ }
+ else
+ {
+ resourceToDiagnosticMap.remove(resource);
+ }
+
+ if (updateProblemIndication)
+ {
+ getSite().getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ updateProblemIndication();
+ }
+ });
+ }
+ break;
+ }
+ }
+ }
+ else
+ {
+ super.notifyChanged(notification);
+ }
+ }
+
+ @Override
+ protected void setTarget(Resource target)
+ {
+ basicSetTarget(target);
+ }
+
+ @Override
+ protected void unsetTarget(Resource target)
+ {
+ basicUnsetTarget(target);
+ resourceToDiagnosticMap.remove(target);
+ if (updateProblemIndication)
+ {
+ getSite().getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ updateProblemIndication();
+ }
+ });
+ }
+ }
+ };
+
+ /**
+ * This listens for workspace changes.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IResourceChangeListener resourceChangeListener = new IResourceChangeListener()
+ {
+ public void resourceChanged(IResourceChangeEvent event)
+ {
+ IResourceDelta delta = event.getDelta();
+ try
+ {
+ class ResourceDeltaVisitor implements IResourceDeltaVisitor
+ {
+ protected ResourceSet resourceSet = editingDomain.getResourceSet();
+
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ public boolean visit(IResourceDelta delta)
+ {
+ if (delta.getResource().getType() == IResource.FILE)
+ {
+ if (delta.getKind() == IResourceDelta.REMOVED || delta.getKind() == IResourceDelta.CHANGED
+ && delta.getFlags() != IResourceDelta.MARKERS)
+ {
+ Resource resource = resourceSet.getResource(
+ URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+ if (resource != null)
+ {
+ if (delta.getKind() == IResourceDelta.REMOVED)
+ {
+ removedResources.add(resource);
+ }
+ else if (!savedResources.remove(resource))
+ {
+ changedResources.add(resource);
+ }
+ }
+ }
+ return false;
+ }
+
+ return true;
+ }
+
+ public Collection<Resource> getChangedResources()
+ {
+ return changedResources;
+ }
+
+ public Collection<Resource> getRemovedResources()
+ {
+ return removedResources;
+ }
+ }
+
+ final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+ delta.accept(visitor);
+
+ if (!visitor.getRemovedResources().isEmpty())
+ {
+ getSite().getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ removedResources.addAll(visitor.getRemovedResources());
+ if (!isDirty())
+ {
+ getSite().getPage().closeEditor(PreferencesEditor.this, false);
+ }
+ }
+ });
+ }
+
+ if (!visitor.getChangedResources().isEmpty())
+ {
+ getSite().getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ changedResources.addAll(visitor.getChangedResources());
+ if (getSite().getPage().getActiveEditor() == PreferencesEditor.this)
+ {
+ handleActivate();
+ }
+ }
+ });
+ }
+ }
+ catch (CoreException exception)
+ {
+ PreferencesEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * Handles activation of the editor or it's associated views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleActivate()
+ {
+ // Recompute the read only state.
+ //
+ if (editingDomain.getResourceToReadOnlyMap() != null)
+ {
+ editingDomain.getResourceToReadOnlyMap().clear();
+
+ // Refresh any actions that may become enabled or disabled.
+ //
+ setSelection(getSelection());
+ }
+
+ if (!removedResources.isEmpty())
+ {
+ if (handleDirtyConflict())
+ {
+ getSite().getPage().closeEditor(PreferencesEditor.this, false);
+ }
+ else
+ {
+ removedResources.clear();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+ else if (!changedResources.isEmpty())
+ {
+ changedResources.removeAll(savedResources);
+ handleChangedResources();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+
+ /**
+ * Handles what to do with changed resources on activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleChangedResources()
+ {
+ if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict()))
+ {
+ if (isDirty())
+ {
+ changedResources.addAll(editingDomain.getResourceSet().getResources());
+ }
+ editingDomain.getCommandStack().flush();
+
+ updateProblemIndication = false;
+ for (Resource resource : changedResources)
+ {
+ if (resource.isLoaded())
+ {
+ resource.unload();
+ try
+ {
+ resource.load(Collections.EMPTY_MAP);
+ }
+ catch (IOException exception)
+ {
+ if (!resourceToDiagnosticMap.containsKey(resource))
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ }
+ }
+ }
+
+ if (AdapterFactoryEditingDomain.isStale(editorSelection))
+ {
+ setSelection(StructuredSelection.EMPTY);
+ }
+
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+ }
+
+ /**
+ * Updates the problems indication with the information described in the specified diagnostic.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void updateProblemIndication()
+ {
+ if (updateProblemIndication)
+ {
+ BasicDiagnostic diagnostic = new BasicDiagnostic(Diagnostic.OK, "org.eclipse.emf.cdo.releng.preferences.editor",
+ 0, null, new Object[] { editingDomain.getResourceSet() });
+ for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values())
+ {
+ if (childDiagnostic.getSeverity() != Diagnostic.OK)
+ {
+ diagnostic.add(childDiagnostic);
+ }
+ }
+
+ int lastEditorPage = getPageCount() - 1;
+ if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart)
+ {
+ ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ setActivePage(lastEditorPage);
+ }
+ }
+ else if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+ problemEditorPart.setDiagnostic(diagnostic);
+ problemEditorPart.setMarkerHelper(markerHelper);
+ try
+ {
+ addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+ setPageText(lastEditorPage, problemEditorPart.getPartName());
+ setActivePage(lastEditorPage);
+ showTabs();
+ }
+ catch (PartInitException exception)
+ {
+ PreferencesEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ if (markerHelper.hasMarkers(editingDomain.getResourceSet()))
+ {
+ markerHelper.deleteMarkers(editingDomain.getResourceSet());
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ try
+ {
+ markerHelper.createMarkers(diagnostic);
+ }
+ catch (CoreException exception)
+ {
+ PreferencesEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Shows a dialog that asks if conflicting changes should be discarded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean handleDirtyConflict()
+ {
+ return MessageDialog.openQuestion(getSite().getShell(), getString("_UI_FileConflict_label"),
+ getString("_WARN_FileConflict"));
+ }
+
+ /**
+ * This creates a model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferencesEditor()
+ {
+ super();
+ initializeEditingDomain();
+ }
+
+ protected void initializeEditingDomain()
+ {
+ initializeEditingDomainGen();
+
+ editingDomain.getResourceSet().getURIConverter().getURIHandlers().add(0, new PreferencesURIHandlerImpl());
+ }
+
+ /**
+ * This sets up the editing domain for the model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void initializeEditingDomainGen()
+ {
+ // Create an adapter factory that yields item providers.
+ //
+ adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+ adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new PreferencesItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+ // Create the command stack that will notify this editor as commands are executed.
+ //
+ BasicCommandStack commandStack = new BasicCommandStack();
+
+ // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+ //
+ commandStack.addCommandStackListener(new CommandStackListener()
+ {
+ public void commandStackChanged(final EventObject event)
+ {
+ getContainer().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+
+ // Try to select the affected objects.
+ //
+ Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+ if (mostRecentCommand != null)
+ {
+ setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+ }
+ for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext();)
+ {
+ PropertySheetPage propertySheetPage = i.next();
+ if (propertySheetPage.getControl().isDisposed())
+ {
+ i.remove();
+ }
+ else
+ {
+ propertySheetPage.refresh();
+ }
+ }
+ }
+ });
+ }
+ });
+
+ // Create the editing domain with a special command stack.
+ //
+ editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+ }
+
+ /**
+ * This is here for the listener to be able to call it.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void firePropertyChange(int action)
+ {
+ super.firePropertyChange(action);
+ }
+
+ /**
+ * This sets the selection into whichever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelectionToViewer(Collection<?> collection)
+ {
+ final Collection<?> theSelection = collection;
+ // Make sure it's okay.
+ //
+ if (theSelection != null && !theSelection.isEmpty())
+ {
+ Runnable runnable = new Runnable()
+ {
+ public void run()
+ {
+ // Try to select the items in the current content viewer of the editor.
+ //
+ if (currentViewer != null)
+ {
+ currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+ }
+ }
+ };
+ getSite().getShell().getDisplay().asyncExec(runnable);
+ }
+ }
+
+ /**
+ * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+ * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+ * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomain getEditingDomain()
+ {
+ return editingDomain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider
+ {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object[] getElements(Object object)
+ {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object[] getChildren(Object object)
+ {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean hasChildren(Object object)
+ {
+ Object parent = super.getParent(object);
+ return parent != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getParent(Object object)
+ {
+ return null;
+ }
+ }
+
+ /**
+ * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+ * is the current one.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrentViewer(Viewer viewer)
+ {
+ // If it is changing...
+ //
+ if (currentViewer != viewer)
+ {
+ if (selectionChangedListener == null)
+ {
+ // Create the listener on demand.
+ //
+ selectionChangedListener = new ISelectionChangedListener()
+ {
+ // This just notifies those things that are affected by the section.
+ //
+ public void selectionChanged(SelectionChangedEvent selectionChangedEvent)
+ {
+ setSelection(selectionChangedEvent.getSelection());
+ }
+ };
+ }
+
+ // Stop listening to the old one.
+ //
+ if (currentViewer != null)
+ {
+ currentViewer.removeSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Start listening to the new one.
+ //
+ if (viewer != null)
+ {
+ viewer.addSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Remember it.
+ //
+ currentViewer = viewer;
+
+ // Set the editors selection based on the current viewer's selection.
+ //
+ setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+ }
+ }
+
+ /**
+ * This returns the viewer as required by the {@link IViewerProvider} interface.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Viewer getViewer()
+ {
+ return currentViewer;
+ }
+
+ /**
+ * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createContextMenuFor(StructuredViewer viewer)
+ {
+ MenuManager contextMenu = new MenuManager("#PopUp");
+ contextMenu.add(new Separator("additions"));
+ contextMenu.setRemoveAllWhenShown(true);
+ contextMenu.addMenuListener(this);
+ Menu menu = contextMenu.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+ int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+ Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(),
+ FileTransfer.getInstance() };
+ viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+ viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+ }
+
+ private class SelectChangesListener extends EContentAdapter
+ {
+ protected List<Object> selection;
+
+ @Override
+ public synchronized void notifyChanged(Notification notification)
+ {
+ super.notifyChanged(notification);
+
+ boolean dispatch = false;
+ if (selection == null)
+ {
+ selection = new ArrayList<Object>();
+ dispatch = true;
+ }
+
+ switch (notification.getEventType())
+ {
+ case Notification.ADD:
+ {
+ selection.add(notification.getNewValue());
+ break;
+ }
+ case Notification.ADD_MANY:
+ {
+ selection.addAll((List<?>)notification.getNewValue());
+ break;
+ }
+ default:
+ {
+ selection.add(notification.getNotifier());
+ break;
+ }
+ }
+
+ if (dispatch)
+ {
+ final Display display = getSite().getShell().getDisplay();
+ display.asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ if (!selectionViewer.getControl().isDisposed())
+ {
+ display.timerExec(5000, new Runnable()
+ {
+ public void run()
+ {
+ synchronized (SelectChangesListener.this)
+ {
+ if (!selectionViewer.getControl().isDisposed())
+ {
+ List<Object> newSelection = selection;
+ selection = null;
+ setSelectionToViewer(newSelection);
+ }
+ }
+ }
+ });
+ }
+ }
+ });
+ }
+ }
+ }
+
+ public void createModel()
+ {
+ editingDomain.getResourceSet().getLoadOptions().put(PreferencesUtil.OPTION_SYNCHRONIZED_PREFERENCES, Boolean.TRUE);
+
+ createModelGen();
+
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+ if (resourceURI.segmentCount() == 1)
+ {
+ editingDomain.getResourceSet().eAdapters().add(new SelectChangesListener());
+ }
+ }
+
+ /**
+ * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createModelGen()
+ {
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+ Exception exception = null;
+ Resource resource = null;
+ try
+ {
+ // Load the resource through the editing domain.
+ //
+ resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+ }
+ catch (Exception e)
+ {
+ exception = e;
+ resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+ }
+
+ Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+ }
+
+ /**
+ * Returns a diagnostic describing the errors and warnings listed in the resource
+ * and the specified exception (if any).
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Diagnostic analyzeResourceProblems(Resource resource, Exception exception)
+ {
+ if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty())
+ {
+ BasicDiagnostic basicDiagnostic = new BasicDiagnostic(Diagnostic.ERROR,
+ "org.eclipse.emf.cdo.releng.preferences.editor", 0, getString("_UI_CreateModelError_message",
+ resource.getURI()), new Object[] { exception == null ? (Object)resource : exception });
+ basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+ return basicDiagnostic;
+ }
+ else if (exception != null)
+ {
+ return new BasicDiagnostic(Diagnostic.ERROR, "org.eclipse.emf.cdo.releng.preferences.editor", 0, getString(
+ "_UI_CreateModelError_message", resource.getURI()), new Object[] { exception });
+ }
+ else
+ {
+ return Diagnostic.OK_INSTANCE;
+ }
+ }
+
+ @Override
+ public void createPages()
+ {
+ createPagesGen();
+
+ EList<Resource> resources = editingDomain.getResourceSet().getResources();
+ if (!resources.isEmpty())
+ {
+ selectionViewer.setInput(resources.get(0).getContents().get(0));
+ }
+ }
+
+ /**
+ * This is the method used by the framework to install your own controls.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPagesGen()
+ {
+ // Creates the model from the editor input
+ //
+ createModel();
+
+ // Only creates the other pages if there is something that can be edited
+ //
+ if (!getEditingDomain().getResourceSet().getResources().isEmpty())
+ {
+ // Create a page for the selection tree view.
+ //
+ Tree tree = new Tree(getContainer(), SWT.MULTI);
+ selectionViewer = new TreeViewer(tree);
+ setCurrentViewer(selectionViewer);
+
+ selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ selectionViewer.setInput(editingDomain.getResourceSet());
+ selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+
+ new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(selectionViewer);
+ int pageIndex = addPage(tree);
+ setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+
+ getSite().getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ setActivePage(0);
+ }
+ });
+ }
+
+ // Ensures that this editor will only display the page's tab
+ // area if there are more than one page
+ //
+ getContainer().addControlListener(new ControlAdapter()
+ {
+ boolean guard = false;
+
+ @Override
+ public void controlResized(ControlEvent event)
+ {
+ if (!guard)
+ {
+ guard = true;
+ hideTabs();
+ guard = false;
+ }
+ }
+ });
+
+ getSite().getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ updateProblemIndication();
+ }
+ });
+ }
+
+ /**
+ * If there is just one page in the multi-page editor part,
+ * this hides the single tab at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void hideTabs()
+ {
+ if (getPageCount() <= 1)
+ {
+ setPageText(0, "");
+ if (getContainer() instanceof CTabFolder)
+ {
+ ((CTabFolder)getContainer()).setTabHeight(1);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y + 6);
+ }
+ }
+ }
+
+ /**
+ * If there is more than one page in the multi-page editor part,
+ * this shows the tabs at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void showTabs()
+ {
+ if (getPageCount() > 1)
+ {
+ setPageText(0, getString("_UI_SelectionPage_label"));
+ if (getContainer() instanceof CTabFolder)
+ {
+ ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y - 6);
+ }
+ }
+ }
+
+ /**
+ * This is used to track the active viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void pageChange(int pageIndex)
+ {
+ super.pageChange(pageIndex);
+
+ if (contentOutlinePage != null)
+ {
+ handleContentOutlineSelection(contentOutlinePage.getSelection());
+ }
+ }
+
+ /**
+ * This is how the framework determines which interfaces we implement.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Class key)
+ {
+ if (key.equals(IContentOutlinePage.class))
+ {
+ return showOutlineView() ? getContentOutlinePage() : null;
+ }
+ else if (key.equals(IPropertySheetPage.class))
+ {
+ return getPropertySheetPage();
+ }
+ else if (key.equals(IGotoMarker.class))
+ {
+ return this;
+ }
+ else
+ {
+ return super.getAdapter(key);
+ }
+ }
+
+ /**
+ * This accesses a cached version of the content outliner.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IContentOutlinePage getContentOutlinePage()
+ {
+ if (contentOutlinePage == null)
+ {
+ // The content outline is just a tree.
+ //
+ class MyContentOutlinePage extends ContentOutlinePage
+ {
+ @Override
+ public void createControl(Composite parent)
+ {
+ super.createControl(parent);
+ contentOutlineViewer = getTreeViewer();
+ contentOutlineViewer.addSelectionChangedListener(this);
+
+ // Set up the tree viewer.
+ //
+ contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+ // Make sure our popups work.
+ //
+ createContextMenuFor(contentOutlineViewer);
+
+ if (!editingDomain.getResourceSet().getResources().isEmpty())
+ {
+ // Select the root object in the view.
+ //
+ contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources()
+ .get(0)), true);
+ }
+ }
+
+ @Override
+ public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager,
+ IStatusLineManager statusLineManager)
+ {
+ super.makeContributions(menuManager, toolBarManager, statusLineManager);
+ contentOutlineStatusLineManager = statusLineManager;
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars)
+ {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ }
+
+ contentOutlinePage = new MyContentOutlinePage();
+
+ // Listen to selection so that we can handle it is a special way.
+ //
+ contentOutlinePage.addSelectionChangedListener(new ISelectionChangedListener()
+ {
+ // This ensures that we handle selections correctly.
+ //
+ public void selectionChanged(SelectionChangedEvent event)
+ {
+ handleContentOutlineSelection(event.getSelection());
+ }
+ });
+ }
+
+ return contentOutlinePage;
+ }
+
+ /**
+ * This accesses a cached version of the property sheet.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IPropertySheetPage getPropertySheetPage()
+ {
+ PropertySheetPage propertySheetPage = new ExtendedPropertySheetPage(editingDomain)
+ {
+ @Override
+ public void setSelectionToViewer(List<?> selection)
+ {
+ PreferencesEditor.this.setSelectionToViewer(selection);
+ PreferencesEditor.this.setFocus();
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars)
+ {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ propertySheetPages.add(propertySheetPage);
+
+ return propertySheetPage;
+ }
+
+ /**
+ * This deals with how we want selection in the outliner to affect the other views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void handleContentOutlineSelection(ISelection selection)
+ {
+ if (selectionViewer != null && !selection.isEmpty() && selection instanceof IStructuredSelection)
+ {
+ Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+ if (selectedElements.hasNext())
+ {
+ // Get the first selected element.
+ //
+ Object selectedElement = selectedElements.next();
+
+ ArrayList<Object> selectionList = new ArrayList<Object>();
+ selectionList.add(selectedElement);
+ while (selectedElements.hasNext())
+ {
+ selectionList.add(selectedElements.next());
+ }
+
+ // Set the selection to the widget.
+ //
+ selectionViewer.setSelection(new StructuredSelection(selectionList));
+ }
+ }
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply tests the command stack.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isDirty()
+ {
+ return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply saves the model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSave(IProgressMonitor progressMonitor)
+ {
+ // Save only resources that have actually changed.
+ //
+ final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+ saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+ saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
+
+ // Do the work within an operation because this is a long running activity that modifies the workbench.
+ //
+ WorkspaceModifyOperation operation = new WorkspaceModifyOperation()
+ {
+ // This is the method that gets invoked when the operation runs.
+ //
+ @Override
+ public void execute(IProgressMonitor monitor)
+ {
+ // Save the resources to the file system.
+ //
+ boolean first = true;
+ for (Resource resource : editingDomain.getResourceSet().getResources())
+ {
+ if ((first || !resource.getContents().isEmpty() || isPersisted(resource))
+ && !editingDomain.isReadOnly(resource))
+ {
+ try
+ {
+ long timeStamp = resource.getTimeStamp();
+ resource.save(saveOptions);
+ if (resource.getTimeStamp() != timeStamp)
+ {
+ savedResources.add(resource);
+ }
+ }
+ catch (Exception exception)
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ first = false;
+ }
+ }
+ }
+ };
+
+ updateProblemIndication = false;
+ try
+ {
+ // This runs the options, and shows progress.
+ //
+ new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+ // Refresh the necessary state.
+ //
+ ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+ }
+ catch (Exception exception)
+ {
+ // Something went wrong that shouldn't.
+ //
+ PreferencesEditorPlugin.INSTANCE.log(exception);
+ }
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+
+ /**
+ * This returns whether something has been persisted to the URI of the specified resource.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean isPersisted(Resource resource)
+ {
+ boolean result = false;
+ try
+ {
+ InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+ if (stream != null)
+ {
+ result = true;
+ stream.close();
+ }
+ }
+ catch (IOException e)
+ {
+ // Ignore
+ }
+ return result;
+ }
+
+ /**
+ * This always returns true because it is not currently supported.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isSaveAsAllowed()
+ {
+ return true;
+ }
+
+ /**
+ * This also changes the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSaveAs()
+ {
+ SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+ saveAsDialog.open();
+ IPath path = saveAsDialog.getResult();
+ if (path != null)
+ {
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+ if (file != null)
+ {
+ doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void doSaveAs(URI uri, IEditorInput editorInput)
+ {
+ editingDomain.getResourceSet().getResources().get(0).setURI(uri);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ IProgressMonitor progressMonitor = getActionBars().getStatusLineManager() != null ? getActionBars()
+ .getStatusLineManager().getProgressMonitor() : new NullProgressMonitor();
+ doSave(progressMonitor);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void gotoMarker(IMarker marker)
+ {
+ List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+ if (!targetObjects.isEmpty())
+ {
+ setSelectionToViewer(targetObjects);
+ }
+ }
+
+ /**
+ * This is called during startup.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void init(IEditorSite site, IEditorInput editorInput)
+ {
+ setSite(site);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ site.setSelectionProvider(this);
+ site.getPage().addPartListener(partListener);
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setFocus()
+ {
+ getControl(getActivePage()).setFocus();
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addSelectionChangedListener(ISelectionChangedListener listener)
+ {
+ selectionChangedListeners.add(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeSelectionChangedListener(ISelectionChangedListener listener)
+ {
+ selectionChangedListeners.remove(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ISelection getSelection()
+ {
+ return editorSelection;
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+ * Calling this result will notify the listeners.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelection(ISelection selection)
+ {
+ editorSelection = selection;
+
+ for (ISelectionChangedListener listener : selectionChangedListeners)
+ {
+ listener.selectionChanged(new SelectionChangedEvent(this, selection));
+ }
+ setStatusLineManager(selection);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatusLineManager(ISelection selection)
+ {
+ IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ? contentOutlineStatusLineManager
+ : getActionBars().getStatusLineManager();
+
+ if (statusLineManager != null)
+ {
+ if (selection instanceof IStructuredSelection)
+ {
+ Collection<?> collection = ((IStructuredSelection)selection).toList();
+ switch (collection.size())
+ {
+ case 0:
+ {
+ statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+ break;
+ }
+ case 1:
+ {
+ String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+ statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+ break;
+ }
+ default:
+ {
+ statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+ break;
+ }
+ }
+ }
+ else
+ {
+ statusLineManager.setMessage("");
+ }
+ }
+ }
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key)
+ {
+ return PreferencesEditorPlugin.INSTANCE.getString(key);
+ }
+
+ /**
+ * This looks up a string in plugin.properties, making a substitution.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key, Object s1)
+ {
+ return PreferencesEditorPlugin.INSTANCE.getString(key, new Object[] { s1 });
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void menuAboutToShow(IMenuManager menuManager)
+ {
+ ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomainActionBarContributor getActionBarContributor()
+ {
+ return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IActionBars getActionBars()
+ {
+ return getActionBarContributor().getActionBars();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdapterFactory getAdapterFactory()
+ {
+ return adapterFactory;
+ }
+
+ @Override
+ public void dispose()
+ {
+ disposeGen();
+
+ for (Resource resource : editingDomain.getResourceSet().getResources())
+ {
+ resource.unload();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void disposeGen()
+ {
+ updateProblemIndication = false;
+
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+ getSite().getPage().removePartListener(partListener);
+
+ adapterFactory.dispose();
+
+ if (getActionBarContributor().getActiveEditor() == this)
+ {
+ getActionBarContributor().setActiveEditor(null);
+ }
+
+ for (PropertySheetPage propertySheetPage : propertySheetPages)
+ {
+ propertySheetPage.dispose();
+ }
+
+ if (contentOutlinePage != null)
+ {
+ contentOutlinePage.dispose();
+ }
+
+ super.dispose();
+ }
+
+ /**
+ * Returns whether the outline view should be presented to the user.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean showOutlineView()
+ {
+ return false;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesEditorPlugin.java b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesEditorPlugin.java
new file mode 100644
index 0000000000..39806b2150
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesEditorPlugin.java
@@ -0,0 +1,98 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences.presentation;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.ui.EclipseUIPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Preferences editor plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class PreferencesEditorPlugin extends EMFPlugin
+{
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final PreferencesEditorPlugin INSTANCE = new PreferencesEditorPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferencesEditorPlugin()
+ {
+ super
+ (new ResourceLocator []
+ {
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator()
+ {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin()
+ {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipseUIPlugin
+ {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation()
+ {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesModelWizard.java b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesModelWizard.java
new file mode 100644
index 0000000000..c734961afe
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences.editor/src/org/eclipse/emf/cdo/releng/preferences/presentation/PreferencesModelWizard.java
@@ -0,0 +1,686 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences.presentation;
+
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.emf.common.CommonPlugin;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.ModifyEvent;
+
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.ISetSelectionTarget;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferencesFactory;
+import org.eclipse.emf.cdo.releng.preferences.PreferencesPackage;
+import org.eclipse.emf.cdo.releng.preferences.provider.PreferencesEditPlugin;
+
+
+import org.eclipse.core.runtime.Path;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PreferencesModelWizard extends Wizard implements INewWizard
+{
+ /**
+ * The supported extensions for created files.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<String> FILE_EXTENSIONS =
+ Collections.unmodifiableList(Arrays.asList(PreferencesEditorPlugin.INSTANCE.getString("_UI_PreferencesEditorFilenameExtensions").split("\\s*,\\s*")));
+
+ /**
+ * A formatted list of supported file extensions, suitable for display.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String FORMATTED_FILE_EXTENSIONS =
+ PreferencesEditorPlugin.INSTANCE.getString("_UI_PreferencesEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+ /**
+ * This caches an instance of the model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PreferencesPackage preferencesPackage = PreferencesPackage.eINSTANCE;
+
+ /**
+ * This caches an instance of the model factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PreferencesFactory preferencesFactory = preferencesPackage.getPreferencesFactory();
+
+ /**
+ * This is the file creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PreferencesModelWizardNewFileCreationPage newFileCreationPage;
+
+ /**
+ * This is the initial object creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PreferencesModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+ /**
+ * Remember the selection during initialization for populating the default container.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStructuredSelection selection;
+
+ /**
+ * Remember the workbench during initialization.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IWorkbench workbench;
+
+ /**
+ * Caches the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected List<String> initialObjectNames;
+
+ /**
+ * This just records the information.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection)
+ {
+ this.workbench = workbench;
+ this.selection = selection;
+ setWindowTitle(PreferencesEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+ setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(PreferencesEditorPlugin.INSTANCE.getImage("full/wizban/NewPreferences")));
+ }
+
+ /**
+ * Returns the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<String> getInitialObjectNames()
+ {
+ if (initialObjectNames == null)
+ {
+ initialObjectNames = new ArrayList<String>();
+ for (EClassifier eClassifier : preferencesPackage.getEClassifiers())
+ {
+ if (eClassifier instanceof EClass)
+ {
+ EClass eClass = (EClass)eClassifier;
+ if (!eClass.isAbstract())
+ {
+ initialObjectNames.add(eClass.getName());
+ }
+ }
+ }
+ Collections.sort(initialObjectNames, CommonPlugin.INSTANCE.getComparator());
+ }
+ return initialObjectNames;
+ }
+
+ /**
+ * Create a new model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EObject createInitialModel()
+ {
+ EClass eClass = (EClass)preferencesPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+ EObject rootObject = preferencesFactory.create(eClass);
+ return rootObject;
+ }
+
+ /**
+ * Do the work after everything is specified.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean performFinish()
+ {
+ try
+ {
+ // Remember the file.
+ //
+ final IFile modelFile = getModelFile();
+
+ // Do the work within an operation.
+ //
+ WorkspaceModifyOperation operation =
+ new WorkspaceModifyOperation()
+ {
+ @Override
+ protected void execute(IProgressMonitor progressMonitor)
+ {
+ try
+ {
+ // Create a resource set
+ //
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ // Get the URI of the model file.
+ //
+ URI fileURI = URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true);
+
+ // Create a resource for this file.
+ //
+ Resource resource = resourceSet.createResource(fileURI);
+
+ // Add the initial model object to the contents.
+ //
+ EObject rootObject = createInitialModel();
+ if (rootObject != null)
+ {
+ resource.getContents().add(rootObject);
+ }
+
+ // Save the contents of the resource to the file system.
+ //
+ Map<Object, Object> options = new HashMap<Object, Object>();
+ options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+ resource.save(options);
+ }
+ catch (Exception exception)
+ {
+ PreferencesEditorPlugin.INSTANCE.log(exception);
+ }
+ finally
+ {
+ progressMonitor.done();
+ }
+ }
+ };
+
+ getContainer().run(false, false, operation);
+
+ // Select the new file resource in the current view.
+ //
+ IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ final IWorkbenchPart activePart = page.getActivePart();
+ if (activePart instanceof ISetSelectionTarget)
+ {
+ final ISelection targetSelection = new StructuredSelection(modelFile);
+ getShell().getDisplay().asyncExec
+ (new Runnable()
+ {
+ public void run()
+ {
+ ((ISetSelectionTarget)activePart).selectReveal(targetSelection);
+ }
+ });
+ }
+
+ // Open an editor on the new file.
+ //
+ try
+ {
+ page.openEditor
+ (new FileEditorInput(modelFile),
+ workbench.getEditorRegistry().getDefaultEditor(modelFile.getFullPath().toString()).getId());
+ }
+ catch (PartInitException exception)
+ {
+ MessageDialog.openError(workbenchWindow.getShell(), PreferencesEditorPlugin.INSTANCE.getString("_UI_OpenEditorError_label"), exception.getMessage());
+ return false;
+ }
+
+ return true;
+ }
+ catch (Exception exception)
+ {
+ PreferencesEditorPlugin.INSTANCE.log(exception);
+ return false;
+ }
+ }
+
+ /**
+ * This is the one page of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class PreferencesModelWizardNewFileCreationPage extends WizardNewFileCreationPage
+ {
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferencesModelWizardNewFileCreationPage(String pageId, IStructuredSelection selection)
+ {
+ super(pageId, selection);
+ }
+
+ /**
+ * The framework calls this to see if the file is correct.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean validatePage()
+ {
+ if (super.validatePage())
+ {
+ String extension = new Path(getFileName()).getFileExtension();
+ if (extension == null || !FILE_EXTENSIONS.contains(extension))
+ {
+ String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+ setErrorMessage(PreferencesEditorPlugin.INSTANCE.getString(key, new Object [] { FORMATTED_FILE_EXTENSIONS }));
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IFile getModelFile()
+ {
+ return ResourcesPlugin.getWorkspace().getRoot().getFile(getContainerFullPath().append(getFileName()));
+ }
+ }
+
+ /**
+ * This is the page where the type of object to create is selected.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class PreferencesModelWizardInitialObjectCreationPage extends WizardPage
+ {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Combo initialObjectField;
+
+ /**
+ * @generated
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected List<String> encodings;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Combo encodingField;
+
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferencesModelWizardInitialObjectCreationPage(String pageId)
+ {
+ super(pageId);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createControl(Composite parent)
+ {
+ Composite composite = new Composite(parent, SWT.NONE);
+ {
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 1;
+ layout.verticalSpacing = 12;
+ composite.setLayout(layout);
+
+ GridData data = new GridData();
+ data.verticalAlignment = GridData.FILL;
+ data.grabExcessVerticalSpace = true;
+ data.horizontalAlignment = GridData.FILL;
+ composite.setLayoutData(data);
+ }
+
+ Label containerLabel = new Label(composite, SWT.LEFT);
+ {
+ containerLabel.setText(PreferencesEditorPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ containerLabel.setLayoutData(data);
+ }
+
+ initialObjectField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ initialObjectField.setLayoutData(data);
+ }
+
+ for (String objectName : getInitialObjectNames())
+ {
+ initialObjectField.add(getLabel(objectName));
+ }
+
+ if (initialObjectField.getItemCount() == 1)
+ {
+ initialObjectField.select(0);
+ }
+ initialObjectField.addModifyListener(validator);
+
+ Label encodingLabel = new Label(composite, SWT.LEFT);
+ {
+ encodingLabel.setText(PreferencesEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ encodingLabel.setLayoutData(data);
+ }
+ encodingField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ encodingField.setLayoutData(data);
+ }
+
+ for (String encoding : getEncodings())
+ {
+ encodingField.add(encoding);
+ }
+
+ encodingField.select(0);
+ encodingField.addModifyListener(validator);
+
+ setPageComplete(validatePage());
+ setControl(composite);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModifyListener validator =
+ new ModifyListener()
+ {
+ public void modifyText(ModifyEvent e)
+ {
+ setPageComplete(validatePage());
+ }
+ };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean validatePage()
+ {
+ return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setVisible(boolean visible)
+ {
+ super.setVisible(visible);
+ if (visible)
+ {
+ if (initialObjectField.getItemCount() == 1)
+ {
+ initialObjectField.clearSelection();
+ encodingField.setFocus();
+ }
+ else
+ {
+ encodingField.clearSelection();
+ initialObjectField.setFocus();
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getInitialObjectName()
+ {
+ String label = initialObjectField.getText();
+
+ for (String name : getInitialObjectNames())
+ {
+ if (getLabel(name).equals(label))
+ {
+ return name;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getEncoding()
+ {
+ return encodingField.getText();
+ }
+
+ /**
+ * Returns the label for the specified type name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected String getLabel(String typeName)
+ {
+ try
+ {
+ return PreferencesEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+ }
+ catch(MissingResourceException mre)
+ {
+ PreferencesEditorPlugin.INSTANCE.log(mre);
+ }
+ return typeName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<String> getEncodings()
+ {
+ if (encodings == null)
+ {
+ encodings = new ArrayList<String>();
+ for (StringTokenizer stringTokenizer = new StringTokenizer(PreferencesEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens(); )
+ {
+ encodings.add(stringTokenizer.nextToken());
+ }
+ }
+ return encodings;
+ }
+ }
+
+ /**
+ * The framework calls this to create the contents of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void addPages()
+ {
+ // Create a page, set the title, and the initial model file name.
+ //
+ newFileCreationPage = new PreferencesModelWizardNewFileCreationPage("Whatever", selection);
+ newFileCreationPage.setTitle(PreferencesEditorPlugin.INSTANCE.getString("_UI_PreferencesModelWizard_label"));
+ newFileCreationPage.setDescription(PreferencesEditorPlugin.INSTANCE.getString("_UI_PreferencesModelWizard_description"));
+ newFileCreationPage.setFileName(PreferencesEditorPlugin.INSTANCE.getString("_UI_PreferencesEditorFilenameDefaultBase") + "." + FILE_EXTENSIONS.get(0));
+ addPage(newFileCreationPage);
+
+ // Try and get the resource selection to determine a current directory for the file dialog.
+ //
+ if (selection != null && !selection.isEmpty())
+ {
+ // Get the resource...
+ //
+ Object selectedElement = selection.iterator().next();
+ if (selectedElement instanceof IResource)
+ {
+ // Get the resource parent, if its a file.
+ //
+ IResource selectedResource = (IResource)selectedElement;
+ if (selectedResource.getType() == IResource.FILE)
+ {
+ selectedResource = selectedResource.getParent();
+ }
+
+ // This gives us a directory...
+ //
+ if (selectedResource instanceof IFolder || selectedResource instanceof IProject)
+ {
+ // Set this for the container.
+ //
+ newFileCreationPage.setContainerFullPath(selectedResource.getFullPath());
+
+ // Make up a unique new name here.
+ //
+ String defaultModelBaseFilename = PreferencesEditorPlugin.INSTANCE.getString("_UI_PreferencesEditorFilenameDefaultBase");
+ String defaultModelFilenameExtension = FILE_EXTENSIONS.get(0);
+ String modelFilename = defaultModelBaseFilename + "." + defaultModelFilenameExtension;
+ for (int i = 1; ((IContainer)selectedResource).findMember(modelFilename) != null; ++i)
+ {
+ modelFilename = defaultModelBaseFilename + i + "." + defaultModelFilenameExtension;
+ }
+ newFileCreationPage.setFileName(modelFilename);
+ }
+ }
+ }
+ initialObjectCreationPage = new PreferencesModelWizardInitialObjectCreationPage("Whatever2");
+ initialObjectCreationPage.setTitle(PreferencesEditorPlugin.INSTANCE.getString("_UI_PreferencesModelWizard_label"));
+ initialObjectCreationPage.setDescription(PreferencesEditorPlugin.INSTANCE.getString("_UI_Wizard_initial_object_description"));
+ addPage(initialObjectCreationPage);
+ }
+
+ /**
+ * Get the file from the page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IFile getModelFile()
+ {
+ return newFileCreationPage.getModelFile();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.classpath b/plugins/org.eclipse.emf.cdo.releng.preferences/.classpath
index 304e86186a..64c5e31b7a 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.classpath
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.classpath
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry kind="src" path="src"/>
<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/plugins/org.eclipse.emf.cdo.releng.preferences/.project b/plugins/org.eclipse.emf.cdo.releng.preferences/.project
new file mode 100644
index 0000000000..50872be487
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.project
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.cdo.releng.preferences</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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.emf.cdo.releng.version.VersionNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000..a4a4bde1e6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding//model/preferences.ecorediag=UTF-8
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..48aafaf7ea
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,381 @@
+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.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+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.doc.comment.support=enabled
+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.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+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=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+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.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+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=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.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.unusedObjectAllocation=ignore
+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,HIGH,LOW,LOW,LOW,LOW,LOW
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED
+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_annotation=0
+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_method_declaration=0
+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_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+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.alignment_for_union_type_in_multicatch=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=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.format_block_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=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+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.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+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.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+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=2
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=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_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=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_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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_try=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_semicolon_in_try_resources=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_try=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_try=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_semicolon_in_try_resources=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=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+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=space
+org.eclipse.jdt.core.formatter.tabulation.size=2
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000000..3fc140fcdc
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,119 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=true
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=true
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=false
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_EMFT
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_EMFT
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" 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 * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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 * Eike Stepper - initial API and implementation\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 Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><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\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.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.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">${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">${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}</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></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_missing_override_annotations_interface_methods=false
+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=false
+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_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+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=false
+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=true
+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=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000000..864e30fe5d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.mylyn.tasks.ui.prefs
new file mode 100644
index 0000000000..b050639a54
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.mylyn.tasks.ui.prefs
@@ -0,0 +1,4 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+project.repository.kind=bugzilla
+project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.mylyn.team.ui.prefs
new file mode 100644
index 0000000000..2f50f36c0c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.mylyn.team.ui.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+commit.comment.template=[${task.id}] ${task.description} \r\n${task.url}
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000000..0c17d59e45
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,95 @@
+#Thu Feb 04 09:44:24 CET 2010
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+MISSING_EE_DESCRIPTIONS=Warning
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Ignore
+automatically_removed_unused_problem_filters=Disabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000000..fe01bb701d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,31 @@
+#Thu Feb 04 09:44:24 CET 2010
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=2
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=1
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+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
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.preferences/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..3ebff5f668
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/META-INF/MANIFEST.MF
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.emf.cdo.releng.preferences;singleton:=true
+Bundle-Version: 1.0.200.qualifier
+Bundle-ClassPath: .
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)";visibility:=reexport,
+ org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.cdo.releng.preferences,
+ org.eclipse.emf.cdo.releng.preferences.impl,
+ org.eclipse.emf.cdo.releng.preferences.util
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/about.html b/plugins/org.eclipse.emf.cdo.releng.preferences/about.html
index d35d5aed64..d35d5aed64 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/about.html
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/about.html
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/about.ini b/plugins/org.eclipse.emf.cdo.releng.preferences/about.ini
new file mode 100644
index 0000000000..32006ae5d6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/about.ini
@@ -0,0 +1,15 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=modeling32.png
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/about.mappings b/plugins/org.eclipse.emf.cdo.releng.preferences/about.mappings
new file mode 100644
index 0000000000..bddaab4310
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=@build@ \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/about.properties b/plugins/org.eclipse.emf.cdo.releng.preferences/about.properties
new file mode 100644
index 0000000000..9134ef220b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/about.properties
@@ -0,0 +1,31 @@
+# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) 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:
+# Eike Stepper - initial API and implementation
+
+# NLS_MESSAGEFORMAT_VAR
+
+# ==============================================================================
+# Do not change the properties between this line and the last line containing:
+# %%% END OF TRANSLATED PROPERTIES %%%
+# Instead, either redefine an existing property, or create a new property,
+# append it to the end of the file, and change the code to use the new name.
+# ==============================================================================
+
+featureName = CDO Release Engineering Dynamic Working Sets
+featureText = CDO Release Engineering Dynamic Working Sets\n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. All rights reserved.\n\
+\n\
+Visit http://www.eclipse.org/cdo
+
+# ==============================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# The above properties have been shipped for translation.
+# ==============================================================================
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/build.properties b/plugins/org.eclipse.emf.cdo.releng.preferences/build.properties
new file mode 100644
index 0000000000..eb09361899
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/build.properties
@@ -0,0 +1,28 @@
+# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) 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:
+# Eike Stepper - initial API and implementation
+
+# NLS_MESSAGEFORMAT_VAR
+
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ about.html,\
+ about.ini,\
+ about.mappings,\
+ about.properties,\
+ copyright.txt,\
+ modeling32.png,\
+ plugin.properties,\
+ model/
+src.includes = about.html,\
+ copyright.txt
+
+generateSourceReferences = true
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/copyright.txt b/plugins/org.eclipse.emf.cdo.releng.preferences/copyright.txt
index 1c77978050..1c77978050 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/copyright.txt
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/copyright.txt
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore b/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore
new file mode 100644
index 0000000000..cf39a96d45
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="preferences" nsURI="http://www.eclipse.org/CDO/releng/preferences/1.0"
+ nsPrefix="preferences">
+ <eClassifiers xsi:type="ecore:EClass" name="PreferenceNode">
+ <eOperations name="getNode" eType="#//PreferenceNode">
+ <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eOperations name="getProperty" eType="#//Property">
+ <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="children" upperBound="-1"
+ eType="#//PreferenceNode" containment="true" eOpposite="#//PreferenceNode/parent"
+ eKeys="#//PreferenceNode/name"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//PreferenceNode"
+ eOpposite="#//PreferenceNode/children"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="properties" upperBound="-1"
+ eType="#//Property" containment="true" eOpposite="#//Property/parent" eKeys="#//Property/name"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="location" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Property">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//PreferenceNode"
+ eOpposite="#//PreferenceNode/properties"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//EscapedString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="EscapedString" instanceClassName="java.lang.String"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.ecorediag b/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.ecorediag
new file mode 100644
index 0000000000..4521c46fac
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.ecorediag
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_nIq4kAWgEeOo7_Wc1UIK7A" type="EcoreTools" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_xuHNQAWgEeOo7_Wc1UIK7A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_xuJCcAWgEeOo7_Wc1UIK7A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_xuKQkAWgEeOo7_Wc1UIK7A" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_ixYSwAWhEeOo7_Wc1UIK7A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="preferences.ecore#//PreferenceNode/name"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ixYSwQWhEeOo7_Wc1UIK7A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_fbxAcAfTEeOoPqB4RyWmHw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="preferences.ecore#//PreferenceNode/location"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fbxAcQfTEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_xuKQkQWgEeOo7_Wc1UIK7A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xuKQkgWgEeOo7_Wc1UIK7A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xuKQkwWgEeOo7_Wc1UIK7A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_xuK3oAWgEeOo7_Wc1UIK7A" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_bXFZcAZnEeOxTbyYFvrvrA" type="2002">
+ <element xmi:type="ecore:EOperation" href="preferences.ecore#//PreferenceNode/getNode"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bXFZcQZnEeOxTbyYFvrvrA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_uu_CQAZnEeOxTbyYFvrvrA" type="2002">
+ <element xmi:type="ecore:EOperation" href="preferences.ecore#//PreferenceNode/getProperty"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uu_CQQZnEeOxTbyYFvrvrA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_xuK3oQWgEeOo7_Wc1UIK7A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_xuK3ogWgEeOo7_Wc1UIK7A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_xuK3owWgEeOo7_Wc1UIK7A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_xuHNQQWgEeOo7_Wc1UIK7A" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="preferences.ecore#//PreferenceNode"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xuHNQgWgEeOo7_Wc1UIK7A" x="195" y="45" width="378" height="138"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_aTA_UAWhEeOo7_Wc1UIK7A" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_aTCNcAWhEeOo7_Wc1UIK7A" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_aTC0gAWhEeOo7_Wc1UIK7A" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_lyxAIAWhEeOo7_Wc1UIK7A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="preferences.ecore#//Property/name"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lyxAIQWhEeOo7_Wc1UIK7A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7mlRwAWhEeOo7_Wc1UIK7A" type="2001">
+ <element xmi:type="ecore:EAttribute" href="preferences.ecore#//Property/value"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7mlRwQWhEeOo7_Wc1UIK7A"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_aTC0gQWhEeOo7_Wc1UIK7A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aTC0ggWhEeOo7_Wc1UIK7A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aTC0gwWhEeOo7_Wc1UIK7A"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_aTDbkAWhEeOo7_Wc1UIK7A" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_aTDbkQWhEeOo7_Wc1UIK7A"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aTDbkgWhEeOo7_Wc1UIK7A"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aTDbkwWhEeOo7_Wc1UIK7A"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_aTA_UQWhEeOo7_Wc1UIK7A" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="preferences.ecore#//Property"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aTA_UgWhEeOo7_Wc1UIK7A" x="195" y="360"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Z3I7YAZAEeOo7_Wc1UIK7A" type="1004">
+ <children xmi:type="notation:Node" xmi:id="_Z3JicAZAEeOo7_Wc1UIK7A" type="4008"/>
+ <children xmi:type="notation:Node" xmi:id="_Z3JicQZAEeOo7_Wc1UIK7A" type="4009"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Z3I7YQZAEeOo7_Wc1UIK7A" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EDataType" href="preferences.ecore#//EscapedString"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Z3I7YgZAEeOo7_Wc1UIK7A" x="690" y="60"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_nIq4kQWgEeOo7_Wc1UIK7A"/>
+ <element xmi:type="ecore:EPackage" href="preferences.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_3HgT0AWgEeOo7_Wc1UIK7A" type="3002" source="_xuHNQAWgEeOo7_Wc1UIK7A" target="_xuHNQAWgEeOo7_Wc1UIK7A">
+ <children xmi:type="notation:Node" xmi:id="_3Hhh8AWgEeOo7_Wc1UIK7A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Hhh8QWgEeOo7_Wc1UIK7A" x="-43" y="15"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3Hhh8gWgEeOo7_Wc1UIK7A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_3Hhh8wWgEeOo7_Wc1UIK7A" x="6" y="25"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_3HgT0QWgEeOo7_Wc1UIK7A" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_3HgT0gWgEeOo7_Wc1UIK7A" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="preferences.ecore#//PreferenceNode/children"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_3HgT0wWgEeOo7_Wc1UIK7A" points="[294, 45, 156, 45]$[294, 165, 156, 165]$[204, 165, 66, 165]$[204, 45, 66, 45]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8Y6GUQZAEeOo7_Wc1UIK7A" id="(0.10416666666666667,0.5102040816326531)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8Y6GUgZAEeOo7_Wc1UIK7A" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_7i4S8AWgEeOo7_Wc1UIK7A" type="3002" source="_xuHNQAWgEeOo7_Wc1UIK7A" target="_xuHNQAWgEeOo7_Wc1UIK7A">
+ <children xmi:type="notation:Node" xmi:id="_7i4S9AWgEeOo7_Wc1UIK7A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7i4S9QWgEeOo7_Wc1UIK7A" x="-3" y="19"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7i46AAWgEeOo7_Wc1UIK7A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_7i46AQWgEeOo7_Wc1UIK7A" x="24" y="-26"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_7i4S8QWgEeOo7_Wc1UIK7A" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_7i4S8gWgEeOo7_Wc1UIK7A" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="preferences.ecore#//PreferenceNode/parent"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_7i4S8wWgEeOo7_Wc1UIK7A" points="[66, 45, 204, 45]$[66, 165, 204, 165]$[156, 165, 294, 165]$[156, 45, 294, 45]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sGYoUAZnEeOxTbyYFvrvrA" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_sGYoUQZnEeOxTbyYFvrvrA" id="(0.10416666666666667,0.5102040816326531)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_cXdjUAWhEeOo7_Wc1UIK7A" type="3002" source="_xuHNQAWgEeOo7_Wc1UIK7A" target="_aTA_UAWhEeOo7_Wc1UIK7A">
+ <children xmi:type="notation:Node" xmi:id="_cXexcAWhEeOo7_Wc1UIK7A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cXexcQWhEeOo7_Wc1UIK7A" x="-14" y="-66"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_cXfYgAWhEeOo7_Wc1UIK7A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cXfYgQWhEeOo7_Wc1UIK7A" x="-14" y="36"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_cXdjUQWhEeOo7_Wc1UIK7A" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cXdjUgWhEeOo7_Wc1UIK7A" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="preferences.ecore#//PreferenceNode/properties"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cXdjUwWhEeOo7_Wc1UIK7A" points="[-84, 45, 4, -237]$[-84, 270, 4, -12]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tbLRAgZnEeOxTbyYFvrvrA" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tbLRAwZnEeOxTbyYFvrvrA" id="(0.45098039215686275,0.14285714285714285)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_03JlUAWhEeOo7_Wc1UIK7A" type="3002" source="_aTA_UAWhEeOo7_Wc1UIK7A" target="_xuHNQAWgEeOo7_Wc1UIK7A">
+ <children xmi:type="notation:Node" xmi:id="_03KzcAWhEeOo7_Wc1UIK7A" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_03KzcQWhEeOo7_Wc1UIK7A" x="-20" y="-35"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_03LagAWhEeOo7_Wc1UIK7A" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_03LagQWhEeOo7_Wc1UIK7A" x="-20" y="28"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_03JlUQWhEeOo7_Wc1UIK7A" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_03JlUgWhEeOo7_Wc1UIK7A" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="preferences.ecore#//Property/parent"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_03JlUwWhEeOo7_Wc1UIK7A" points="[4, -12, -84, 270]$[4, -237, -84, 45]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5ttEkAWhEeOo7_Wc1UIK7A" id="(0.45098039215686275,0.14285714285714285)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_5ttEkQWhEeOo7_Wc1UIK7A" id="(0.5,0.5)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.genmodel b/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.genmodel
new file mode 100644
index 0000000000..62596def78
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/model/preferences.genmodel
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.cdo.releng.preferences/src" creationIcons="false"
+ modelPluginID="org.eclipse.emf.cdo.releng.preferences" modelName="Preferences"
+ rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" importerID="org.eclipse.emf.importer.ecore"
+ complianceLevel="5.0" copyrightFields="false" operationReflection="true" importOrganizing="true">
+ <foreignModel>preferences.ecore</foreignModel>
+ <genPackages prefix="Preferences" basePackage="org.eclipse.emf.cdo.releng" disposableProviderFactory="true"
+ multipleEditorPages="false" ecorePackage="preferences.ecore#/">
+ <genClasses ecoreClass="preferences.ecore#//PreferenceNode">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference preferences.ecore#//PreferenceNode/children"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference preferences.ecore#//PreferenceNode/parent"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference preferences.ecore#//PreferenceNode/properties"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute preferences.ecore#//PreferenceNode/name"/>
+ </genClasses>
+ <genClasses ecoreClass="preferences.ecore#//Property">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute preferences.ecore#//Property/name"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference preferences.ecore#//Property/parent"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute preferences.ecore#//Property/value"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/modeling32.png b/plugins/org.eclipse.emf.cdo.releng.preferences/modeling32.png
new file mode 100644
index 0000000000..6b08de2ada
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/modeling32.png
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.preferences/plugin.properties
new file mode 100644
index 0000000000..63fbb1d409
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/plugin.properties
@@ -0,0 +1,11 @@
+# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) 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:
+# Eike Stepper - initial API and implementation
+
+pluginName = CDO Release Engineering Dynamic Working Sets
+providerName = Eclipse Modeling Project
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.preferences/plugin.xml
new file mode 100644
index 0000000000..479676ab3c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/plugin.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<!--
+ Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) 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:
+ Eike Stepper - initial API and implementation
+-->
+
+<plugin>
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated preferences -->
+ <package
+ uri="http://www.eclipse.org/CDO/releng/preferences/1.0"
+ class="org.eclipse.emf.cdo.releng.preferences.PreferencesPackage"
+ genModel="model/preferences.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferenceNode.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferenceNode.java
new file mode 100644
index 0000000000..35c5597b3c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferenceNode.java
@@ -0,0 +1,152 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Preference Node</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getChildren <em>Children</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getParent <em>Parent</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getProperties <em>Properties</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getLocation <em>Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getPreferenceNode()
+ * @model
+ * @generated
+ */
+public interface PreferenceNode extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Children</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getParent <em>Parent</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Children</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Children</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getPreferenceNode_Children()
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getParent
+ * @model opposite="parent" containment="true" keys="name"
+ * @generated
+ */
+ EList<PreferenceNode> getChildren();
+
+ /**
+ * Returns the value of the '<em><b>Parent</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getChildren <em>Children</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parent</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parent</em>' container reference.
+ * @see #setParent(PreferenceNode)
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getPreferenceNode_Parent()
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getChildren
+ * @model opposite="children" transient="false"
+ * @generated
+ */
+ PreferenceNode getParent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getParent <em>Parent</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Parent</em>' container reference.
+ * @see #getParent()
+ * @generated
+ */
+ void setParent(PreferenceNode value);
+
+ /**
+ * Returns the value of the '<em><b>Properties</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.preferences.Property}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.preferences.Property#getParent <em>Parent</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Properties</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Properties</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getPreferenceNode_Properties()
+ * @see org.eclipse.emf.cdo.releng.preferences.Property#getParent
+ * @model opposite="parent" containment="true" keys="name"
+ * @generated
+ */
+ EList<Property> getProperties();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getPreferenceNode_Name()
+ * @model required="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Location</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Location</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Location</em>' attribute.
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getPreferenceNode_Location()
+ * @model transient="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ String getLocation();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ PreferenceNode getNode(String name);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ Property getProperty(String name);
+
+} // PreferenceNode
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferencesFactory.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferencesFactory.java
new file mode 100644
index 0000000000..427a8cb217
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferencesFactory.java
@@ -0,0 +1,52 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage
+ * @generated
+ */
+public interface PreferencesFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ PreferencesFactory eINSTANCE = org.eclipse.emf.cdo.releng.preferences.impl.PreferencesFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Preference Node</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Preference Node</em>'.
+ * @generated
+ */
+ PreferenceNode createPreferenceNode();
+
+ /**
+ * Returns a new object of class '<em>Property</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Property</em>'.
+ * @generated
+ */
+ Property createProperty();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ PreferencesPackage getPreferencesPackage();
+
+} //PreferencesFactory
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferencesPackage.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferencesPackage.java
new file mode 100644
index 0000000000..d8b8bf4ece
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/PreferencesPackage.java
@@ -0,0 +1,495 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferencesFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface PreferencesPackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "preferences";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/CDO/releng/preferences/1.0";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "preferences";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ PreferencesPackage eINSTANCE = org.eclipse.emf.cdo.releng.preferences.impl.PreferencesPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl <em>Preference Node</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl
+ * @see org.eclipse.emf.cdo.releng.preferences.impl.PreferencesPackageImpl#getPreferenceNode()
+ * @generated
+ */
+ int PREFERENCE_NODE = 0;
+
+ /**
+ * The feature id for the '<em><b>Children</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_NODE__CHILDREN = 0;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_NODE__PARENT = 1;
+
+ /**
+ * The feature id for the '<em><b>Properties</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_NODE__PROPERTIES = 2;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_NODE__NAME = 3;
+
+ /**
+ * The feature id for the '<em><b>Location</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_NODE__LOCATION = 4;
+
+ /**
+ * The number of structural features of the '<em>Preference Node</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_NODE_FEATURE_COUNT = 5;
+
+ /**
+ * The operation id for the '<em>Get Node</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_NODE___GET_NODE__STRING = 0;
+
+ /**
+ * The operation id for the '<em>Get Property</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_NODE___GET_PROPERTY__STRING = 1;
+
+ /**
+ * The number of operations of the '<em>Preference Node</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_NODE_OPERATION_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.preferences.impl.PropertyImpl <em>Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.preferences.impl.PropertyImpl
+ * @see org.eclipse.emf.cdo.releng.preferences.impl.PreferencesPackageImpl#getProperty()
+ * @generated
+ */
+ int PROPERTY = 1;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY__NAME = 0;
+
+ /**
+ * The feature id for the '<em><b>Parent</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY__PARENT = 1;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY__VALUE = 2;
+
+ /**
+ * The number of structural features of the '<em>Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_FEATURE_COUNT = 3;
+
+ /**
+ * The number of operations of the '<em>Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_OPERATION_COUNT = 0;
+
+
+ /**
+ * The meta object id for the '<em>Escaped String</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.eclipse.emf.cdo.releng.preferences.impl.PreferencesPackageImpl#getEscapedString()
+ * @generated
+ */
+ int ESCAPED_STRING = 2;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode <em>Preference Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Preference Node</em>'.
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode
+ * @generated
+ */
+ EClass getPreferenceNode();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getChildren <em>Children</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Children</em>'.
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getChildren()
+ * @see #getPreferenceNode()
+ * @generated
+ */
+ EReference getPreferenceNode_Children();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getParent <em>Parent</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Parent</em>'.
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getParent()
+ * @see #getPreferenceNode()
+ * @generated
+ */
+ EReference getPreferenceNode_Parent();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getProperties <em>Properties</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Properties</em>'.
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getProperties()
+ * @see #getPreferenceNode()
+ * @generated
+ */
+ EReference getPreferenceNode_Properties();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getName()
+ * @see #getPreferenceNode()
+ * @generated
+ */
+ EAttribute getPreferenceNode_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getLocation <em>Location</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Location</em>'.
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getLocation()
+ * @see #getPreferenceNode()
+ * @generated
+ */
+ EAttribute getPreferenceNode_Location();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getNode(java.lang.String) <em>Get Node</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Node</em>' operation.
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getNode(java.lang.String)
+ * @generated
+ */
+ EOperation getPreferenceNode__GetNode__String();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getProperty(java.lang.String) <em>Get Property</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Get Property</em>' operation.
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getProperty(java.lang.String)
+ * @generated
+ */
+ EOperation getPreferenceNode__GetProperty__String();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.preferences.Property <em>Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Property</em>'.
+ * @see org.eclipse.emf.cdo.releng.preferences.Property
+ * @generated
+ */
+ EClass getProperty();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.preferences.Property#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.cdo.releng.preferences.Property#getName()
+ * @see #getProperty()
+ * @generated
+ */
+ EAttribute getProperty_Name();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.preferences.Property#getParent <em>Parent</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Parent</em>'.
+ * @see org.eclipse.emf.cdo.releng.preferences.Property#getParent()
+ * @see #getProperty()
+ * @generated
+ */
+ EReference getProperty_Parent();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.preferences.Property#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.emf.cdo.releng.preferences.Property#getValue()
+ * @see #getProperty()
+ * @generated
+ */
+ EAttribute getProperty_Value();
+
+ /**
+ * Returns the meta object for data type '{@link java.lang.String <em>Escaped String</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Escaped String</em>'.
+ * @see java.lang.String
+ * @model instanceClass="java.lang.String"
+ * @generated
+ */
+ EDataType getEscapedString();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ PreferencesFactory getPreferencesFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl <em>Preference Node</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl
+ * @see org.eclipse.emf.cdo.releng.preferences.impl.PreferencesPackageImpl#getPreferenceNode()
+ * @generated
+ */
+ EClass PREFERENCE_NODE = eINSTANCE.getPreferenceNode();
+
+ /**
+ * The meta object literal for the '<em><b>Children</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PREFERENCE_NODE__CHILDREN = eINSTANCE.getPreferenceNode_Children();
+
+ /**
+ * The meta object literal for the '<em><b>Parent</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PREFERENCE_NODE__PARENT = eINSTANCE.getPreferenceNode_Parent();
+
+ /**
+ * The meta object literal for the '<em><b>Properties</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PREFERENCE_NODE__PROPERTIES = eINSTANCE.getPreferenceNode_Properties();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PREFERENCE_NODE__NAME = eINSTANCE.getPreferenceNode_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Location</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PREFERENCE_NODE__LOCATION = eINSTANCE.getPreferenceNode_Location();
+
+ /**
+ * The meta object literal for the '<em><b>Get Node</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation PREFERENCE_NODE___GET_NODE__STRING = eINSTANCE.getPreferenceNode__GetNode__String();
+
+ /**
+ * The meta object literal for the '<em><b>Get Property</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation PREFERENCE_NODE___GET_PROPERTY__STRING = eINSTANCE.getPreferenceNode__GetProperty__String();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.preferences.impl.PropertyImpl <em>Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.preferences.impl.PropertyImpl
+ * @see org.eclipse.emf.cdo.releng.preferences.impl.PreferencesPackageImpl#getProperty()
+ * @generated
+ */
+ EClass PROPERTY = eINSTANCE.getProperty();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PROPERTY__NAME = eINSTANCE.getProperty_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Parent</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROPERTY__PARENT = eINSTANCE.getProperty_Parent();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PROPERTY__VALUE = eINSTANCE.getProperty_Value();
+
+ /**
+ * The meta object literal for the '<em>Escaped String</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.String
+ * @see org.eclipse.emf.cdo.releng.preferences.impl.PreferencesPackageImpl#getEscapedString()
+ * @generated
+ */
+ EDataType ESCAPED_STRING = eINSTANCE.getEscapedString();
+
+ }
+
+} //PreferencesPackage
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/Property.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/Property.java
new file mode 100644
index 0000000000..2df74423c5
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/Property.java
@@ -0,0 +1,107 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.preferences.Property#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.preferences.Property#getParent <em>Parent</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.preferences.Property#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getProperty()
+ * @model
+ * @generated
+ */
+public interface Property extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getProperty_Name()
+ * @model required="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.preferences.Property#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Parent</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getProperties <em>Properties</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Parent</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Parent</em>' container reference.
+ * @see #setParent(PreferenceNode)
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getProperty_Parent()
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode#getProperties
+ * @model opposite="properties" transient="false"
+ * @generated
+ */
+ PreferenceNode getParent();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.preferences.Property#getParent <em>Parent</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Parent</em>' container reference.
+ * @see #getParent()
+ * @generated
+ */
+ void setParent(PreferenceNode value);
+
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#getProperty_Value()
+ * @model dataType="org.eclipse.emf.cdo.releng.preferences.EscapedString"
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.preferences.Property#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+} // Property
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferenceNodeImpl.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferenceNodeImpl.java
new file mode 100644
index 0000000000..92abb11f66
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferenceNodeImpl.java
@@ -0,0 +1,543 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences.impl;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.preferences.PreferencesPackage;
+import org.eclipse.emf.cdo.releng.preferences.Property;
+import org.eclipse.emf.cdo.releng.preferences.util.PreferencesUtil;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.core.runtime.IPath;
+
+import org.osgi.service.prefs.BackingStoreException;
+import org.osgi.service.prefs.Preferences;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Preference Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl#getChildren <em>Children</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl#getParent <em>Parent</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl#getProperties <em>Properties</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.preferences.impl.PreferenceNodeImpl#getLocation <em>Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PreferenceNodeImpl extends MinimalEObjectImpl.Container implements PreferenceNode
+{
+ /**
+ * The cached value of the '{@link #getChildren() <em>Children</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getChildren()
+ * @generated
+ * @ordered
+ */
+ protected EList<PreferenceNode> children;
+
+ /**
+ * The cached value of the '{@link #getProperties() <em>Properties</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProperties()
+ * @generated
+ * @ordered
+ */
+ protected EList<Property> properties;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLocation() <em>Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLocation()
+ * @generated
+ * @ordered
+ */
+ protected static final String LOCATION_EDEFAULT = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PreferenceNodeImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PreferencesPackage.Literals.PREFERENCE_NODE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<PreferenceNode> getChildren()
+ {
+ if (children == null)
+ {
+ children = new EObjectContainmentWithInverseEList<PreferenceNode>(PreferenceNode.class, this,
+ PreferencesPackage.PREFERENCE_NODE__CHILDREN, PreferencesPackage.PREFERENCE_NODE__PARENT);
+ }
+ return children;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceNode getParent()
+ {
+ if (eContainerFeatureID() != PreferencesPackage.PREFERENCE_NODE__PARENT)
+ {
+ return null;
+ }
+ return (PreferenceNode)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetParent(PreferenceNode newParent, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newParent, PreferencesPackage.PREFERENCE_NODE__PARENT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParent(PreferenceNode newParent)
+ {
+ if (newParent != eInternalContainer() || eContainerFeatureID() != PreferencesPackage.PREFERENCE_NODE__PARENT
+ && newParent != null)
+ {
+ if (EcoreUtil.isAncestor(this, newParent))
+ {
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ }
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ if (newParent != null)
+ {
+ msgs = ((InternalEObject)newParent).eInverseAdd(this, PreferencesPackage.PREFERENCE_NODE__CHILDREN,
+ PreferenceNode.class, msgs);
+ }
+ msgs = basicSetParent(newParent, msgs);
+ if (msgs != null)
+ {
+ msgs.dispatch();
+ }
+ }
+ else if (eNotificationRequired())
+ {
+ eNotify(new ENotificationImpl(this, Notification.SET, PreferencesPackage.PREFERENCE_NODE__PARENT, newParent,
+ newParent));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Property> getProperties()
+ {
+ if (properties == null)
+ {
+ properties = new EObjectContainmentWithInverseEList<Property>(Property.class, this,
+ PreferencesPackage.PREFERENCE_NODE__PROPERTIES, PreferencesPackage.PROPERTY__PARENT);
+ }
+ return properties;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ {
+ eNotify(new ENotificationImpl(this, Notification.SET, PreferencesPackage.PREFERENCE_NODE__NAME, oldName, name));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLocation()
+ {
+ try
+ {
+ Preferences preferences = PreferencesUtil.getPreferences(this, false);
+ IPath path = PreferencesUtil.getLocation(preferences);
+ return path == null ? null : path.toString();
+ }
+ catch (BackingStoreException ex)
+ {
+ // Ignore
+ return null;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public PreferenceNode getNode(String name)
+ {
+ for (PreferenceNode node : getChildren())
+ {
+ if (name.equals(node.getName()))
+ {
+ return node;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Property getProperty(String name)
+ {
+ for (Property property : getProperties())
+ {
+ if (name.equals(property.getName()))
+ {
+ return property;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case PreferencesPackage.PREFERENCE_NODE__CHILDREN:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getChildren()).basicAdd(otherEnd, msgs);
+ case PreferencesPackage.PREFERENCE_NODE__PARENT:
+ if (eInternalContainer() != null)
+ {
+ msgs = eBasicRemoveFromContainer(msgs);
+ }
+ return basicSetParent((PreferenceNode)otherEnd, msgs);
+ case PreferencesPackage.PREFERENCE_NODE__PROPERTIES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getProperties()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case PreferencesPackage.PREFERENCE_NODE__CHILDREN:
+ return ((InternalEList<?>)getChildren()).basicRemove(otherEnd, msgs);
+ case PreferencesPackage.PREFERENCE_NODE__PARENT:
+ return basicSetParent(null, msgs);
+ case PreferencesPackage.PREFERENCE_NODE__PROPERTIES:
+ return ((InternalEList<?>)getProperties()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
+ {
+ switch (eContainerFeatureID())
+ {
+ case PreferencesPackage.PREFERENCE_NODE__PARENT:
+ return eInternalContainer().eInverseRemove(this, PreferencesPackage.PREFERENCE_NODE__CHILDREN,
+ PreferenceNode.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PreferencesPackage.PREFERENCE_NODE__CHILDREN:
+ return getChildren();
+ case PreferencesPackage.PREFERENCE_NODE__PARENT:
+ return getParent();
+ case PreferencesPackage.PREFERENCE_NODE__PROPERTIES:
+ return getProperties();
+ case PreferencesPackage.PREFERENCE_NODE__NAME:
+ return getName();
+ case PreferencesPackage.PREFERENCE_NODE__LOCATION:
+ return getLocation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PreferencesPackage.PREFERENCE_NODE__CHILDREN:
+ getChildren().clear();
+ getChildren().addAll((Collection<? extends PreferenceNode>)newValue);
+ return;
+ case PreferencesPackage.PREFERENCE_NODE__PARENT:
+ setParent((PreferenceNode)newValue);
+ return;
+ case PreferencesPackage.PREFERENCE_NODE__PROPERTIES:
+ getProperties().clear();
+ getProperties().addAll((Collection<? extends Property>)newValue);
+ return;
+ case PreferencesPackage.PREFERENCE_NODE__NAME:
+ setName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PreferencesPackage.PREFERENCE_NODE__CHILDREN:
+ getChildren().clear();
+ return;
+ case PreferencesPackage.PREFERENCE_NODE__PARENT:
+ setParent((PreferenceNode)null);
+ return;
+ case PreferencesPackage.PREFERENCE_NODE__PROPERTIES:
+ getProperties().clear();
+ return;
+ case PreferencesPackage.PREFERENCE_NODE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PreferencesPackage.PREFERENCE_NODE__CHILDREN:
+ return children != null && !children.isEmpty();
+ case PreferencesPackage.PREFERENCE_NODE__PARENT:
+ return getParent() != null;
+ case PreferencesPackage.PREFERENCE_NODE__PROPERTIES:
+ return properties != null && !properties.isEmpty();
+ case PreferencesPackage.PREFERENCE_NODE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case PreferencesPackage.PREFERENCE_NODE__LOCATION:
+ return LOCATION_EDEFAULT == null ? getLocation() != null : !LOCATION_EDEFAULT.equals(getLocation());
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case PreferencesPackage.PREFERENCE_NODE___GET_NODE__STRING:
+ return getNode((String)arguments.get(0));
+ case PreferencesPackage.PREFERENCE_NODE___GET_PROPERTY__STRING:
+ return getProperty((String)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ @Override
+ public String eURIFragmentSegment(EStructuralFeature eStructuralFeature, EObject eObject)
+ {
+ if (eStructuralFeature == PreferencesPackage.Literals.PREFERENCE_NODE__CHILDREN)
+ {
+ PreferenceNode child = (PreferenceNode)eObject;
+ String name = child.getName();
+ if (name != null)
+ {
+ String encodedName = URI.encodeSegment(name, false);
+ if (encodedName.startsWith("@"))
+ {
+ encodedName = "%40" + encodedName.substring(1);
+ }
+ return encodedName;
+ }
+ }
+
+ if (eStructuralFeature == PreferencesPackage.Literals.PREFERENCE_NODE__PROPERTIES)
+ {
+ Property property = (Property)eObject;
+ String name = property.getName();
+ if (name != null)
+ {
+ return "^" + URI.encodeSegment(name, false);
+ }
+ }
+
+ return super.eURIFragmentSegment(eStructuralFeature, eObject);
+ }
+
+ @Override
+ public EObject eObjectForURIFragmentSegment(String uriFragmentSegment)
+ {
+ if (uriFragmentSegment.startsWith("^"))
+ {
+ String preferenceNodeName = URI.decode(uriFragmentSegment.substring(1));
+ return getProperty(preferenceNodeName);
+ }
+ if (!uriFragmentSegment.startsWith("@"))
+ {
+ String preferenceNodeName = URI.decode(uriFragmentSegment);
+ return getNode(preferenceNodeName);
+ }
+ return super.eObjectForURIFragmentSegment(uriFragmentSegment);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} // PreferenceNodeImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesFactoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesFactoryImpl.java
new file mode 100644
index 0000000000..73af81b8a4
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesFactoryImpl.java
@@ -0,0 +1,246 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences.impl;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.preferences.PreferencesFactory;
+import org.eclipse.emf.cdo.releng.preferences.PreferencesPackage;
+import org.eclipse.emf.cdo.releng.preferences.Property;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PreferencesFactoryImpl extends EFactoryImpl implements PreferencesFactory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static PreferencesFactory init()
+ {
+ try
+ {
+ PreferencesFactory thePreferencesFactory = (PreferencesFactory)EPackage.Registry.INSTANCE.getEFactory(PreferencesPackage.eNS_URI);
+ if (thePreferencesFactory != null)
+ {
+ return thePreferencesFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new PreferencesFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferencesFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case PreferencesPackage.PREFERENCE_NODE: return createPreferenceNode();
+ case PreferencesPackage.PROPERTY: return createProperty();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case PreferencesPackage.ESCAPED_STRING:
+ return createEscapedStringFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case PreferencesPackage.ESCAPED_STRING:
+ return convertEscapedStringToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceNode createPreferenceNode()
+ {
+ PreferenceNodeImpl preferenceNode = new PreferenceNodeImpl();
+ return preferenceNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createProperty()
+ {
+ PropertyImpl property = new PropertyImpl();
+ return property;
+ }
+
+ private static final String[] ESCAPES = { "\\000", "\\001", "\\002", "\\003", "\\004", "\\005", "\\006", "\\007",
+ "\\010", "\\t", "\\n", "\\013", "\\014", "\\r", "\\016", "\\017", "\\020", "\\021", "\\022", "\\023", "\\024",
+ "\\025", "\\026", "\\027", "\\030", "\\031", "\\032", "\\033", "\\034", "\\035", "\\036", "\\037" };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String createEscapedStringFromString(EDataType eDataType, String initialValue)
+ {
+ if (initialValue == null)
+ {
+ return null;
+ }
+
+ StringBuilder result = new StringBuilder();
+ for (int i = 0, length = initialValue.length(); i < length; ++i)
+ {
+ char c = initialValue.charAt(i);
+ if (c == '\\')
+ {
+ if (++i < length)
+ {
+ c = initialValue.charAt(i);
+ if (c == 't')
+ {
+ result.append('\t');
+ continue;
+ }
+ else if (c == 'r')
+ {
+ result.append('\r');
+ continue;
+ }
+ else if (c == 'n')
+ {
+ result.append('\n');
+ continue;
+ }
+ else if (c == '\\')
+ {
+ result.append('\\');
+ continue;
+ }
+ else if (i + 2 < length && c >= '0' && c <= '7' && initialValue.charAt(i + 1) >= '0'
+ && initialValue.charAt(i + 1) <= '7' && initialValue.charAt(i + 2) >= '0'
+ && initialValue.charAt(i + 2) <= '7')
+ {
+ result.append((char)Integer.parseInt(initialValue.substring(i, i + 3), 8));
+ i += 2;
+ continue;
+ }
+ }
+ }
+ result.append(c);
+ }
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertEscapedStringToString(EDataType eDataType, Object instanceValue)
+ {
+ if (instanceValue == null)
+ {
+ return null;
+ }
+
+ String initialValue = instanceValue.toString();
+ StringBuilder result = new StringBuilder();
+ for (int i = 0, length = initialValue.length(); i < length; ++i)
+ {
+ char c = initialValue.charAt(i);
+ if (c < ESCAPES.length)
+ {
+ result.append(ESCAPES[c]);
+ }
+ else if (c == '\\')
+ {
+ result.append("\\\\");
+ }
+ else
+ {
+ result.append(c);
+ }
+ }
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferencesPackage getPreferencesPackage()
+ {
+ return (PreferencesPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static PreferencesPackage getPackage()
+ {
+ return PreferencesPackage.eINSTANCE;
+ }
+
+} // PreferencesFactoryImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesPackageImpl.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesPackageImpl.java
new file mode 100644
index 0000000000..dcc7b03510
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesPackageImpl.java
@@ -0,0 +1,347 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences.impl;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.preferences.PreferencesFactory;
+import org.eclipse.emf.cdo.releng.preferences.PreferencesPackage;
+import org.eclipse.emf.cdo.releng.preferences.Property;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PreferencesPackageImpl extends EPackageImpl implements PreferencesPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass preferenceNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass propertyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType escapedStringEDataType = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private PreferencesPackageImpl()
+ {
+ super(eNS_URI, PreferencesFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link PreferencesPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static PreferencesPackage init()
+ {
+ if (isInited) return (PreferencesPackage)EPackage.Registry.INSTANCE.getEPackage(PreferencesPackage.eNS_URI);
+
+ // Obtain or create and register package
+ PreferencesPackageImpl thePreferencesPackage = (PreferencesPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof PreferencesPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new PreferencesPackageImpl());
+
+ isInited = true;
+
+ // Create package meta-data objects
+ thePreferencesPackage.createPackageContents();
+
+ // Initialize created meta-data
+ thePreferencesPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ thePreferencesPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(PreferencesPackage.eNS_URI, thePreferencesPackage);
+ return thePreferencesPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPreferenceNode()
+ {
+ return preferenceNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPreferenceNode_Children()
+ {
+ return (EReference)preferenceNodeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPreferenceNode_Parent()
+ {
+ return (EReference)preferenceNodeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPreferenceNode_Properties()
+ {
+ return (EReference)preferenceNodeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPreferenceNode_Name()
+ {
+ return (EAttribute)preferenceNodeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPreferenceNode_Location()
+ {
+ return (EAttribute)preferenceNodeEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getPreferenceNode__GetNode__String()
+ {
+ return preferenceNodeEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getPreferenceNode__GetProperty__String()
+ {
+ return preferenceNodeEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProperty()
+ {
+ return propertyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProperty_Name()
+ {
+ return (EAttribute)propertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProperty_Parent()
+ {
+ return (EReference)propertyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProperty_Value()
+ {
+ return (EAttribute)propertyEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EDataType getEscapedString()
+ {
+ return escapedStringEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferencesFactory getPreferencesFactory()
+ {
+ return (PreferencesFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ preferenceNodeEClass = createEClass(PREFERENCE_NODE);
+ createEReference(preferenceNodeEClass, PREFERENCE_NODE__CHILDREN);
+ createEReference(preferenceNodeEClass, PREFERENCE_NODE__PARENT);
+ createEReference(preferenceNodeEClass, PREFERENCE_NODE__PROPERTIES);
+ createEAttribute(preferenceNodeEClass, PREFERENCE_NODE__NAME);
+ createEAttribute(preferenceNodeEClass, PREFERENCE_NODE__LOCATION);
+ createEOperation(preferenceNodeEClass, PREFERENCE_NODE___GET_NODE__STRING);
+ createEOperation(preferenceNodeEClass, PREFERENCE_NODE___GET_PROPERTY__STRING);
+
+ propertyEClass = createEClass(PROPERTY);
+ createEAttribute(propertyEClass, PROPERTY__NAME);
+ createEReference(propertyEClass, PROPERTY__PARENT);
+ createEAttribute(propertyEClass, PROPERTY__VALUE);
+
+ // Create data types
+ escapedStringEDataType = createEDataType(ESCAPED_STRING);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(preferenceNodeEClass, PreferenceNode.class, "PreferenceNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getPreferenceNode_Children(), this.getPreferenceNode(), this.getPreferenceNode_Parent(), "children", null, 0, -1, PreferenceNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ getPreferenceNode_Children().getEKeys().add(this.getPreferenceNode_Name());
+ initEReference(getPreferenceNode_Parent(), this.getPreferenceNode(), this.getPreferenceNode_Children(), "parent", null, 0, 1, PreferenceNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPreferenceNode_Properties(), this.getProperty(), this.getProperty_Parent(), "properties", null, 0, -1, PreferenceNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ getPreferenceNode_Properties().getEKeys().add(this.getProperty_Name());
+ initEAttribute(getPreferenceNode_Name(), ecorePackage.getEString(), "name", null, 1, 1, PreferenceNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getPreferenceNode_Location(), ecorePackage.getEString(), "location", null, 0, 1, PreferenceNode.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+ EOperation op = initEOperation(getPreferenceNode__GetNode__String(), this.getPreferenceNode(), "getNode", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "name", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = initEOperation(getPreferenceNode__GetProperty__String(), this.getProperty(), "getProperty", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "name", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(propertyEClass, Property.class, "Property", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getProperty_Name(), ecorePackage.getEString(), "name", null, 1, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getProperty_Parent(), this.getPreferenceNode(), this.getPreferenceNode_Properties(), "parent", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProperty_Value(), this.getEscapedString(), "value", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize data types
+ initEDataType(escapedStringEDataType, String.class, "EscapedString", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+ }
+
+} //PreferencesPackageImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesURIHandlerImpl.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesURIHandlerImpl.java
new file mode 100644
index 0000000000..dc98b11f88
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PreferencesURIHandlerImpl.java
@@ -0,0 +1,174 @@
+/*
+ * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.preferences.impl;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.preferences.util.PreferencesUtil;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.URIConverter;
+import org.eclipse.emf.ecore.resource.impl.URIHandlerImpl;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+
+import org.osgi.service.prefs.BackingStoreException;
+import org.osgi.service.prefs.Preferences;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Collections;
+import java.util.Map;
+
+/**
+ * @author Eike Stepper
+ */
+public class PreferencesURIHandlerImpl extends URIHandlerImpl
+{
+ private static final IEclipsePreferences ROOT = Platform.getPreferencesService().getRootNode();
+
+ @Override
+ public boolean canHandle(URI uri)
+ {
+ return "preference".equals(uri.scheme());
+ }
+
+ protected static class PreferenceAccessor
+ {
+ private final Preferences preferences;
+
+ private final String key;
+
+ public PreferenceAccessor(URI uri)
+ {
+ Preferences node = ROOT;
+ for (String name : uri.trimSegments(1).segments())
+ {
+ node = node.node(name);
+ }
+ key = uri.lastSegment();
+ preferences = node;
+ }
+
+ public String get()
+ {
+ return preferences.get(key, null);
+
+ }
+
+ public void put(String value) throws IOException
+ {
+ preferences.put(key, value);
+ flush();
+ }
+
+ public void remove() throws IOException
+ {
+ preferences.remove(key);
+ flush();
+ }
+
+ private void flush() throws IOException
+ {
+ try
+ {
+ preferences.flush();
+ }
+ catch (BackingStoreException ex)
+ {
+ throw new IOException(ex);
+ }
+ }
+ }
+
+ @Override
+ public InputStream createInputStream(URI uri, final Map<?, ?> options) throws IOException
+ {
+ if (uri.segmentCount() == 1)
+ {
+ class PreferencesInput extends InputStream implements URIConverter.Loadable
+ {
+ private PreferenceNode preferencesNode = PreferencesUtil.getRootPreferenceNode(Boolean.TRUE.equals(options
+ .get(PreferencesUtil.OPTION_SYNCHRONIZED_PREFERENCES)));
+
+ private InputStream in;
+
+ public void loadResource(Resource resource) throws IOException
+ {
+ resource.getContents().add(preferencesNode);
+ }
+
+ @Override
+ public int read() throws IOException
+ {
+ if (in == null)
+ {
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ preferencesNode.eResource().save(out, null);
+ in = new ByteArrayInputStream(out.toByteArray());
+ }
+ return in.read();
+ }
+ }
+
+ return new PreferencesInput();
+ }
+ URI preferencePath = uri.trimSegments(1);
+ String value = new PreferenceAccessor(preferencePath).get();
+ if (value == null)
+ {
+ throw new IOException("No preference value available for " + preferencePath);
+ }
+ return new URIConverter.ReadableInputStream(value);
+ }
+
+ @Override
+ public OutputStream createOutputStream(URI uri, Map<?, ?> options) throws IOException
+ {
+ final PreferenceAccessor accessor = new PreferenceAccessor(uri.trimSegments(1));
+ return new ByteArrayOutputStream()
+ {
+ @Override
+ public void close() throws IOException
+ {
+ accessor.put(new String(toByteArray(), "UTF-8"));
+ }
+ };
+ }
+
+ @Override
+ public void delete(URI uri, Map<?, ?> options) throws IOException
+ {
+ new PreferenceAccessor(uri.trimSegments(1)).remove();
+ }
+
+ @Override
+ public boolean exists(URI uri, Map<?, ?> options)
+ {
+ return new PreferenceAccessor(uri.trimSegments(1)).get() != null;
+ }
+
+ @Override
+ public Map<String, ?> getAttributes(URI uri, Map<?, ?> options)
+ {
+ return Collections.emptyMap();
+ }
+
+ @Override
+ public void setAttributes(URI uri, Map<String, ?> attributes, Map<?, ?> options) throws IOException
+ {
+ // Do nothing.
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PropertyImpl.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PropertyImpl.java
new file mode 100644
index 0000000000..8319e1e9b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/impl/PropertyImpl.java
@@ -0,0 +1,344 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences.impl;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.preferences.PreferencesPackage;
+import org.eclipse.emf.cdo.releng.preferences.Property;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Property</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.preferences.impl.PropertyImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.preferences.impl.PropertyImpl#getParent <em>Parent</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.preferences.impl.PropertyImpl#getValue <em>Value</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PropertyImpl extends MinimalEObjectImpl.Container implements Property
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PropertyImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return PreferencesPackage.Literals.PROPERTY;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PreferencesPackage.PROPERTY__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceNode getParent()
+ {
+ if (eContainerFeatureID() != PreferencesPackage.PROPERTY__PARENT) return null;
+ return (PreferenceNode)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetParent(PreferenceNode newParent, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newParent, PreferencesPackage.PROPERTY__PARENT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParent(PreferenceNode newParent)
+ {
+ if (newParent != eInternalContainer() || (eContainerFeatureID() != PreferencesPackage.PROPERTY__PARENT && newParent != null))
+ {
+ if (EcoreUtil.isAncestor(this, newParent))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newParent != null)
+ msgs = ((InternalEObject)newParent).eInverseAdd(this, PreferencesPackage.PREFERENCE_NODE__PROPERTIES, PreferenceNode.class, msgs);
+ msgs = basicSetParent(newParent, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PreferencesPackage.PROPERTY__PARENT, newParent, newParent));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(String newValue)
+ {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, PreferencesPackage.PROPERTY__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case PreferencesPackage.PROPERTY__PARENT:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetParent((PreferenceNode)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case PreferencesPackage.PROPERTY__PARENT:
+ return basicSetParent(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
+ {
+ switch (eContainerFeatureID())
+ {
+ case PreferencesPackage.PROPERTY__PARENT:
+ return eInternalContainer().eInverseRemove(this, PreferencesPackage.PREFERENCE_NODE__PROPERTIES, PreferenceNode.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case PreferencesPackage.PROPERTY__NAME:
+ return getName();
+ case PreferencesPackage.PROPERTY__PARENT:
+ return getParent();
+ case PreferencesPackage.PROPERTY__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case PreferencesPackage.PROPERTY__NAME:
+ setName((String)newValue);
+ return;
+ case PreferencesPackage.PROPERTY__PARENT:
+ setParent((PreferenceNode)newValue);
+ return;
+ case PreferencesPackage.PROPERTY__VALUE:
+ setValue((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case PreferencesPackage.PROPERTY__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case PreferencesPackage.PROPERTY__PARENT:
+ setParent((PreferenceNode)null);
+ return;
+ case PreferencesPackage.PROPERTY__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case PreferencesPackage.PROPERTY__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case PreferencesPackage.PROPERTY__PARENT:
+ return getParent() != null;
+ case PreferencesPackage.PROPERTY__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", value: ");
+ result.append(value);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PropertyImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesAdapterFactory.java
new file mode 100644
index 0000000000..41057ad260
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesAdapterFactory.java
@@ -0,0 +1,152 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences.util;
+
+import org.eclipse.emf.cdo.releng.preferences.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage
+ * @generated
+ */
+public class PreferencesAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static PreferencesPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferencesAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = PreferencesPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object)
+ {
+ if (object == modelPackage)
+ {
+ return true;
+ }
+ if (object instanceof EObject)
+ {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PreferencesSwitch<Adapter> modelSwitch =
+ new PreferencesSwitch<Adapter>()
+ {
+ @Override
+ public Adapter casePreferenceNode(PreferenceNode object)
+ {
+ return createPreferenceNodeAdapter();
+ }
+ @Override
+ public Adapter caseProperty(Property object)
+ {
+ return createPropertyAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object)
+ {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.preferences.PreferenceNode <em>Preference Node</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferenceNode
+ * @generated
+ */
+ public Adapter createPreferenceNodeAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.preferences.Property <em>Property</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.preferences.Property
+ * @generated
+ */
+ public Adapter createPropertyAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} //PreferencesAdapterFactory
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesSwitch.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesSwitch.java
new file mode 100644
index 0000000000..c4de14a7f7
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesSwitch.java
@@ -0,0 +1,142 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.preferences.util;
+
+import org.eclipse.emf.cdo.releng.preferences.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.preferences.PreferencesPackage
+ * @generated
+ */
+public class PreferencesSwitch<T> extends Switch<T>
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static PreferencesPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferencesSwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = PreferencesPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage)
+ {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case PreferencesPackage.PREFERENCE_NODE:
+ {
+ PreferenceNode preferenceNode = (PreferenceNode)theEObject;
+ T result = casePreferenceNode(preferenceNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case PreferencesPackage.PROPERTY:
+ {
+ Property property = (Property)theEObject;
+ T result = caseProperty(property);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Preference Node</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Preference Node</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePreferenceNode(PreferenceNode object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Property</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Property</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseProperty(Property object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} //PreferencesSwitch
diff --git a/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesUtil.java b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesUtil.java
new file mode 100644
index 0000000000..f0b0510d4f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.preferences/src/org/eclipse/emf/cdo/releng/preferences/util/PreferencesUtil.java
@@ -0,0 +1,341 @@
+/*
+ * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.preferences.util;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.preferences.PreferencesFactory;
+import org.eclipse.emf.cdo.releng.preferences.Property;
+
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterImpl;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences.NodeChangeEvent;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
+
+import org.osgi.service.prefs.BackingStoreException;
+import org.osgi.service.prefs.Preferences;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * @author Eike Stepper
+ */
+public final class PreferencesUtil
+{
+ /**
+ * A resource load option to load an instance using {@link #getRootPreferenceNode(boolean) PreferencesUtil.getRootPreferenceNode(true)}.
+ * The resource must be {@link Resource#unload() unloaded}, to avoid dangling listeners.
+ */
+ public static final String OPTION_SYNCHRONIZED_PREFERENCES = "SYNCHRONIZED_PREFERENCES";
+
+ private static final IEclipsePreferences ROOT = Platform.getPreferencesService().getRootNode();
+
+ public static final URI ROOT_PREFERENCE_NODE_URI = URI.createURI("preference:/");
+
+ private static class PreferencesAdapter extends AdapterImpl implements IEclipsePreferences.INodeChangeListener,
+ IEclipsePreferences.IPreferenceChangeListener
+ {
+ protected IEclipsePreferences preferences;
+
+ public PreferencesAdapter(IEclipsePreferences preferences)
+ {
+ this.preferences = preferences;
+
+ preferences.addNodeChangeListener(this);
+ preferences.addPreferenceChangeListener(this);
+ }
+
+ @Override
+ public boolean isAdapterForType(Object type)
+ {
+ return type == PreferencesAdapter.class;
+ }
+
+ public void preferenceChange(PreferenceChangeEvent event)
+ {
+ PreferenceNode preferenceNode = (PreferenceNode)target;
+ String name = event.getKey();
+ Object value = event.getNewValue();
+ EList<Property> properties = preferenceNode.getProperties();
+ for (int i = 0, size = properties.size(); i < size; ++i)
+ {
+ Property property = properties.get(i);
+ int comparison = property.getName().compareTo(name);
+ if (comparison == 0)
+ {
+ if (value == null)
+ {
+ properties.remove(i);
+ }
+ else
+ {
+ property.setValue(value.toString());
+ }
+ return;
+ }
+ else if (comparison > 0)
+ {
+ if (value != null)
+ {
+ property = PreferencesFactory.eINSTANCE.createProperty();
+ property.setName(name);
+ property.setValue(value.toString());
+ properties.add(i, property);
+ }
+ return;
+ }
+ }
+ Property property = PreferencesFactory.eINSTANCE.createProperty();
+ property.setName(name);
+ property.setValue(value.toString());
+ properties.add(property);
+ }
+
+ public void added(NodeChangeEvent event)
+ {
+ PreferenceNode preferenceNode = (PreferenceNode)target;
+ Preferences childNode = event.getChild();
+ PreferenceNode childPreferenceNode = PreferencesFactory.eINSTANCE.createPreferenceNode();
+ String name = childNode.name();
+ childPreferenceNode.setName(name);
+ traverse(childPreferenceNode, childNode, true);
+ EList<PreferenceNode> children = preferenceNode.getChildren();
+ for (int i = 0, size = children.size(); i < size; ++i)
+ {
+ PreferenceNode otherChildPreferenceNode = children.get(i);
+ if (otherChildPreferenceNode.getName().compareTo(name) >= 0)
+ {
+ children.add(i, childPreferenceNode);
+ return;
+ }
+ }
+ children.add(childPreferenceNode);
+ }
+
+ public void removed(NodeChangeEvent event)
+ {
+ PreferenceNode preferenceNode = (PreferenceNode)target;
+ Preferences childNode = event.getChild();
+ String name = childNode.name();
+ EList<PreferenceNode> children = preferenceNode.getChildren();
+ for (int i = 0, size = children.size(); i < size; ++i)
+ {
+ PreferenceNode childPreferenceNode = children.get(i);
+ if (childPreferenceNode.getName().equals(name))
+ {
+ children.remove(i);
+ return;
+ }
+ }
+ }
+
+ @Override
+ public void unsetTarget(Notifier oldTarget)
+ {
+ super.unsetTarget(oldTarget);
+
+ preferences.removeNodeChangeListener(this);
+ preferences.removePreferenceChangeListener(this);
+ }
+ }
+
+ public static PreferenceNode getRootPreferenceNode()
+ {
+ return getRootPreferenceNode(false);
+ }
+
+ public static PreferenceNode getRootPreferenceNode(boolean isSynchronized)
+ {
+ ResourceSet resourceSet = new ResourceSetImpl();
+ Resource resource = resourceSet.createResource(ROOT_PREFERENCE_NODE_URI.appendSegment("*.preferences"));
+ PreferenceNode root = PreferencesFactory.eINSTANCE.createPreferenceNode();
+ traverse(root, ROOT, isSynchronized);
+ resource.getContents().add(root);
+
+ return root;
+ }
+
+ private static void traverse(PreferenceNode preferenceNode, Preferences node, boolean isSynchronized)
+ {
+ try
+ {
+ if (isSynchronized && node instanceof IEclipsePreferences)
+ {
+ preferenceNode.eAdapters().add(new PreferencesAdapter((IEclipsePreferences)node));
+ }
+
+ preferenceNode.setName(node.name());
+
+ EList<PreferenceNode> children = preferenceNode.getChildren();
+ String[] childrenNames = node.childrenNames();
+ Arrays.sort(childrenNames);
+ for (String name : childrenNames)
+ {
+ Preferences childNode = node.node(name);
+ PreferenceNode childPreferenceNode = PreferencesFactory.eINSTANCE.createPreferenceNode();
+ traverse(childPreferenceNode, childNode, isSynchronized);
+ children.add(childPreferenceNode);
+ }
+ EList<Property> properties = preferenceNode.getProperties();
+ String[] keys = node.keys();
+ Arrays.sort(keys);
+ for (String name : keys)
+ {
+ Property property = PreferencesFactory.eINSTANCE.createProperty();
+ property.setName(name);
+ property.setValue(node.get(name, null));
+ properties.add(property);
+ }
+ }
+ catch (BackingStoreException ex)
+ {
+ // Ignore
+ }
+ }
+
+ public static Preferences getPreferences(PreferenceNode preferenceNode, boolean demandCreate)
+ throws BackingStoreException
+ {
+ if (preferenceNode == null)
+ {
+ return ROOT;
+ }
+
+ Preferences parentPreferences = getPreferences(preferenceNode.getParent(), demandCreate);
+ if (parentPreferences != null)
+ {
+ String name = preferenceNode.getName();
+ if (demandCreate || parentPreferences.nodeExists(name))
+ {
+ return parentPreferences.node(name);
+ }
+ }
+ return null;
+ }
+
+ public static IPath getLocation(Preferences preferences)
+ {
+ if (preferences == null)
+ {
+ return null;
+ }
+
+ try
+ {
+ Method getLocationMethod = preferences.getClass().getDeclaredMethod("getLocation");
+ getLocationMethod.setAccessible(true);
+ IPath location = (IPath)getLocationMethod.invoke(preferences);
+ return location;
+ }
+ catch (Exception ex)
+ {
+ // Ignore
+ }
+
+ return null;
+ }
+
+ private static List<PreferenceNode> getPath(PreferenceNode preferenceNode)
+ {
+ List<PreferenceNode> path = new ArrayList<PreferenceNode>();
+ while (preferenceNode != null)
+ {
+ path.add(preferenceNode);
+ preferenceNode = preferenceNode.getParent();
+ }
+ Collections.reverse(path);
+ return path;
+ }
+
+ public static PreferenceNode getAncestor(PreferenceNode preferenceNode)
+ {
+ List<PreferenceNode> path = getPath(preferenceNode);
+ int size = path.size();
+ if (size > 1)
+ {
+ PreferenceNode root = path.get(0);
+ if ("".equals(root.getName()))
+ {
+ PreferenceNode base = path.get(1);
+ String name = base.getName();
+ int start = 2;
+ if ("project".equals(name))
+ {
+ name = "instance";
+ PreferenceNode result = root.getNode(name);
+ for (int i = ++start; result != null && i < size; ++i)
+ {
+ result = result.getNode(path.get(i).getName());
+ }
+ if (result != null)
+ {
+ return result;
+ }
+ }
+
+ if ("instance".equals(name))
+ {
+ name = "default";
+ PreferenceNode result = root.getNode(name);
+ for (int i = start; result != null && i < size; ++i)
+ {
+ result = result.getNode(path.get(i).getName());
+ }
+ if (result != null)
+ {
+ return result;
+ }
+ }
+
+ if ("default".equals(name))
+ {
+ name = "configuration";
+ PreferenceNode result = root.getNode(name);
+ for (int i = start; result != null && i < size; ++i)
+ {
+ result = result.getNode(path.get(i).getName());
+ }
+ if (result != null)
+ {
+ return result;
+ }
+ }
+
+ if ("configuration".equals(name))
+ {
+ name = "bundle_defaults";
+ PreferenceNode result = root.getNode(name);
+ for (int i = start; result != null && i < size; ++i)
+ {
+ result = result.getNode(path.get(i).getName());
+ }
+ if (result != null)
+ {
+ return result;
+ }
+ }
+ }
+ }
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.classpath b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.classpath
new file mode 100644
index 0000000000..3bc247511f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.project b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.project
new file mode 100644
index 0000000000..f5a4d7c604
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.cdo.releng.projectconfig.edit</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000..0483dbc8d5
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding//model/projectconfig.ecorediag=UTF-8
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..b3af741094
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,405 @@
+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.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+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.doc.comment.support=enabled
+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.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+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=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+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.includeNullInfoFromAsserts=disabled
+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.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.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.unusedObjectAllocation=ignore
+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.unusedTypeParameter=ignore
+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,HIGH,LOW,LOW,LOW,LOW,LOW
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED
+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_annotation=0
+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_method_declaration=0
+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_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+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.alignment_for_union_type_in_multicatch=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=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.format_block_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=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+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.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+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.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+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=2
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=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_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=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_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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_try=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_semicolon_in_try_resources=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_try=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_try=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_semicolon_in_try_resources=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=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+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=space
+org.eclipse.jdt.core.formatter.tabulation.size=2
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000000..3fc140fcdc
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,119 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=true
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=true
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=false
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_EMFT
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_EMFT
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" 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 * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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 * Eike Stepper - initial API and implementation\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 Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><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\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.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.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">${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">${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}</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></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_missing_override_annotations_interface_methods=false
+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=false
+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_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+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=false
+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=true
+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=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000000..864e30fe5d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs
new file mode 100644
index 0000000000..b050639a54
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.mylyn.tasks.ui.prefs
@@ -0,0 +1,4 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+project.repository.kind=bugzilla
+project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.mylyn.team.ui.prefs
new file mode 100644
index 0000000000..2f50f36c0c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.mylyn.team.ui.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+commit.comment.template=[${task.id}] ${task.description} \r\n${task.url}
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000000..0c17d59e45
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,95 @@
+#Thu Feb 04 09:44:24 CET 2010
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+MISSING_EE_DESCRIPTIONS=Warning
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Ignore
+automatically_removed_unused_problem_filters=Disabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000000..fe01bb701d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,31 @@
+#Thu Feb 04 09:44:24 CET 2010
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=2
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=1
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+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
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..c2d3e0ec4b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.cdo.releng.projectconfig.edit;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.emf.cdo.releng.projectconfig.provider.ProjectConfigEditPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.cdo.releng.projectconfig.provider
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.cdo.releng.projectconfig;visibility:=reexport,
+ org.eclipse.emf.edit;visibility:=reexport,
+ org.eclipse.emf.cdo.releng.predicates;visibility:=reexport,
+ org.eclipse.emf.cdo.releng.predicates.edit;visibility:=reexport,
+ org.eclipse.emf.cdo.releng.preferences;visibility:=reexport,
+ org.eclipse.emf.cdo.releng.preferences.edit;visibility:=reexport,
+ org.eclipse.core.resources
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/build.properties b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/build.properties
new file mode 100644
index 0000000000..6e3e902e80
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin/
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/IncomingLinks.gif b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/IncomingLinks.gif
new file mode 100644
index 0000000000..fcf5652a86
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/IncomingLinks.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/OutgoingLinks.gif b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/OutgoingLinks.gif
new file mode 100644
index 0000000000..1745824683
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/OutgoingLinks.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/PreferenceFilter.gif b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/PreferenceFilter.gif
new file mode 100644
index 0000000000..3b581018ef
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/PreferenceFilter.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/PreferenceProfile.gif b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/PreferenceProfile.gif
new file mode 100644
index 0000000000..79f235321a
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/PreferenceProfile.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/Project.gif b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/Project.gif
new file mode 100644
index 0000000000..94dba8854a
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/Project.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/WorkspaceConfiguration.gif b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/WorkspaceConfiguration.gif
new file mode 100644
index 0000000000..1e9e8f0f79
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/icons/full/obj16/WorkspaceConfiguration.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/plugin.properties
new file mode 100644
index 0000000000..53bbe57454
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/plugin.properties
@@ -0,0 +1,43 @@
+#
+
+pluginName = Project Config Edit Support
+providerName = www.example.org
+
+_UI_CreateChild_text = {0}
+_UI_CreateChild_text2 = {1} {0}
+_UI_CreateChild_text3 = {1}
+_UI_CreateChild_tooltip = Create New {0} Under {1} Feature
+_UI_CreateChild_description = Create a new child of type {0} for the {1} feature of the selected {2}.
+_UI_CreateSibling_description = Create a new sibling of type {0} for the selected {2}, under the {1} feature of their parent.
+
+_UI_PropertyDescriptor_description = The {0} of the {1}
+
+_UI_WorkspaceConfiguration_type = Workspace Configuration
+_UI_Project_type = Project
+_UI_PreferenceProfile_type = Preference Profile
+_UI_PreferenceFilter_type = Preference Filter
+_UI_Unknown_type = Object
+
+_UI_Unknown_datatype= Value
+
+_UI_WorkspaceConfiguration_projects_feature = Projects
+_UI_WorkspaceConfiguration_defaultPreferenceNode_feature = Default Preference Node
+_UI_WorkspaceConfiguration_instancePrefenceNode_feature = Instance Preference Node
+_UI_Project_configuration_feature = Configuration
+_UI_Project_preferenceProfiles_feature = Preference Profiles
+_UI_Project_preferenceNode_feature = Preference Node
+_UI_Project_preferenceProfileReferences_feature = Preference Profile References
+_UI_PreferenceProfile_preferenceFilters_feature = Preference Filters
+_UI_PreferenceProfile_referentProjects_feature = Referent Projects
+_UI_PreferenceProfile_name_feature = Name
+_UI_PreferenceFilter_preferenceNode_feature = Preference Node
+_UI_PreferenceFilter_preferenceProfile_feature = Preference Profile
+_UI_PreferenceFilter_pattern_feature = Pattern
+_UI_Unknown_feature = Unspecified
+
+_UI_PreferenceProfile_project_feature = Project
+_UI_PreferenceProfile_predicates_feature = Predicates
+_UI_PreferenceFilter_inclusions_feature = Inclusions
+_UI_PreferenceFilter_exclusions_feature = Exclusions
+_UI_PreferenceProfile_prerequisites_feature = Prerequisites
+_UI_WorkspaceConfiguration_instancePreferenceNode_feature = Instance Preference Node
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/plugin.xml
new file mode 100644
index 0000000000..2bdfb649a8
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/plugin.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
+ <!-- @generated projectconfig -->
+ <factory
+ uri="http://www.eclipse.org/CDO/releng/projectconfig/1.0"
+ class="org.eclipse.emf.cdo.releng.projectconfig.provider.ProjectConfigItemProviderAdapterFactory"
+ supportedTypes=
+ "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
+ org.eclipse.emf.edit.provider.IStructuredItemContentProvider
+ org.eclipse.emf.edit.provider.ITreeItemContentProvider
+ org.eclipse.emf.edit.provider.IItemLabelProvider
+ org.eclipse.emf.edit.provider.IItemPropertySource"/>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/PreferenceFilterItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/PreferenceFilterItemProvider.java
new file mode 100644
index 0000000000..b8d5db404b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/PreferenceFilterItemProvider.java
@@ -0,0 +1,335 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.provider;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.preferences.Property;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile;
+import org.eclipse.emf.cdo.releng.projectconfig.Project;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.EMFEditPlugin;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedImage;
+import org.eclipse.emf.edit.provider.DelegatingWrapperItemProvider;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.IWrapperItemProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PreferenceFilterItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceFilterItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addPreferenceNodePropertyDescriptor(object);
+ addInclusionsPropertyDescriptor(object);
+ addExclusionsPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Preference Node feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected void addPreferenceNodePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory)
+ .getRootAdapterFactory(), getResourceLocator(), getString("_UI_PreferenceFilter_preferenceNode_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PreferenceFilter_preferenceNode_feature",
+ "_UI_PreferenceFilter_type"), ProjectConfigPackage.Literals.PREFERENCE_FILTER__PREFERENCE_NODE, true,
+ false, true, null, null, null)
+ {
+ @Override
+ public Collection<?> getChoiceOfValues(Object object)
+ {
+ Collection<Object> result = new ArrayList<Object>();
+ PreferenceFilter preferenceFilter = (PreferenceFilter)object;
+ PreferenceProfile preferenceProfile = preferenceFilter.getPreferenceProfile();
+ if (preferenceProfile != null)
+ {
+ Project project = preferenceProfile.getProject();
+ if (project != null)
+ {
+ PreferenceNode preferenceNode = project.getPreferenceNode();
+ if (preferenceNode != null)
+ {
+ result.addAll(preferenceNode.getChildren());
+ }
+ }
+ }
+ return result;
+ }
+ });
+ }
+
+ /**
+ * This adds a property descriptor for the Inclusions feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addInclusionsPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PreferenceFilter_inclusions_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PreferenceFilter_inclusions_feature", "_UI_PreferenceFilter_type"),
+ ProjectConfigPackage.Literals.PREFERENCE_FILTER__INCLUSIONS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Exclusions feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addExclusionsPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PreferenceFilter_exclusions_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PreferenceFilter_exclusions_feature", "_UI_PreferenceFilter_type"),
+ ProjectConfigPackage.Literals.PREFERENCE_FILTER__EXCLUSIONS,
+ true,
+ false,
+ false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null,
+ null));
+ }
+
+ /**
+ * This returns PreferenceFilter.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PreferenceFilter"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getText(Object object)
+ {
+ PreferenceFilter preferenceFilter = (PreferenceFilter)object;
+ String label = preferenceFilter.getInclusions().toString();
+ String exclusions = preferenceFilter.getExclusions().toString();
+ if (!"".equals(exclusions))
+ {
+ label += " - " + exclusions;
+ }
+
+ if (label == null)
+ {
+ label = "<unnamed>";
+ }
+
+ PreferenceNode preferenceNode = preferenceFilter.getPreferenceNode();
+ if (preferenceNode != null)
+ {
+ String name = preferenceNode.getName();
+ if (name != null)
+ {
+ label = name + " -> " + label;
+ }
+ }
+
+ return label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(PreferenceFilter.class))
+ {
+ case ProjectConfigPackage.PREFERENCE_FILTER__INCLUSIONS:
+ case ProjectConfigPackage.PREFERENCE_FILTER__EXCLUSIONS:
+ case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_NODE:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ Map<Property, IWrapperItemProvider> wrappers = new HashMap<Property, IWrapperItemProvider>();
+
+ private IWrapperItemProvider wrap(final PreferenceFilter preferenceFilter, int i, Property project)
+ {
+ IWrapperItemProvider wrapper = wrappers.get(project);
+ if (wrapper == null)
+ {
+ wrapper = new DelegatingWrapperItemProvider(project, preferenceFilter, null, i, adapterFactory)
+ {
+ @Override
+ public Object getParent(Object object)
+ {
+ return preferenceFilter;
+ }
+
+ @Override
+ public Object getImage(Object object)
+ {
+ Object image = super.getImage(object);
+ List<Object> images = new ArrayList<Object>(2);
+ images.add(image);
+ images.add(EMFEditPlugin.INSTANCE.getImage("full/ovr16/ControlledObject"));
+ return image = new ComposedImage(images);
+ }
+
+ @Override
+ public boolean hasChildren(Object object)
+ {
+ return false;
+ }
+
+ @Override
+ public Collection<?> getChildren(Object object)
+ {
+ return Collections.emptyList();
+ }
+ };
+ wrappers.put(project, wrapper);
+ }
+ else
+ {
+ wrapper.setIndex(i);
+ }
+ return wrapper;
+ }
+
+ @Override
+ public Collection<?> getChildren(Object object)
+ {
+ Collection<Object> result = new ArrayList<Object>();
+
+ PreferenceFilter preferenceFilter = (PreferenceFilter)object;
+ PreferenceNode preferenceNode = preferenceFilter.getPreferenceNode();
+ if (preferenceNode != null)
+ {
+ for (Property property : preferenceNode.getProperties())
+ {
+ String name = property.getName();
+ if (name != null)
+ {
+ if (preferenceFilter.matches(name))
+ {
+ result.add(wrap(preferenceFilter, -1, property));
+ }
+ }
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return ProjectConfigEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/PreferenceProfileItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/PreferenceProfileItemProvider.java
new file mode 100644
index 0000000000..a0590036de
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/PreferenceProfileItemProvider.java
@@ -0,0 +1,563 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.provider;
+
+import org.eclipse.emf.cdo.releng.predicates.Predicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile;
+import org.eclipse.emf.cdo.releng.projectconfig.Project;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigFactory;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.IdentityCommand;
+import org.eclipse.emf.common.command.UnexecutableCommand;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ECollections;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.EMFEditPlugin;
+import org.eclipse.emf.edit.command.AddCommand;
+import org.eclipse.emf.edit.command.CommandParameter;
+import org.eclipse.emf.edit.command.DragAndDropCommand;
+import org.eclipse.emf.edit.command.RemoveCommand;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedImage;
+import org.eclipse.emf.edit.provider.DelegatingWrapperItemProvider;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.IViewerNotification;
+import org.eclipse.emf.edit.provider.IWrapperItemProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class PreferenceProfileItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot();
+
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceProfileItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addReferentProjectsPropertyDescriptor(object);
+ addNamePropertyDescriptor(object);
+ addPrerequisitesPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Referent Projects feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected void addReferentProjectsPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory)
+ .getRootAdapterFactory(), getResourceLocator(), getString("_UI_PreferenceProfile_referentProjects_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PreferenceProfile_referentProjects_feature",
+ "_UI_PreferenceProfile_type"), ProjectConfigPackage.Literals.PREFERENCE_PROFILE__REFERENT_PROJECTS, true,
+ false, true, null, null, null)
+ {
+ @Override
+ public Collection<?> getChoiceOfValues(Object object)
+ {
+ Collection<?> allProjects = super.getChoiceOfValues(object);
+
+ PreferenceProfile preferenceProfile = (PreferenceProfile)object;
+ EList<Predicate> predicates = preferenceProfile.getPredicates();
+ if (predicates.isEmpty())
+ {
+ return allProjects;
+ }
+
+ Collection<Project> result = new ArrayList<Project>();
+ for (Object value : allProjects)
+ {
+ Project project = (Project)value;
+ String projectName = project.getPreferenceNode().getName();
+ IProject iProject = WORKSPACE_ROOT.getProject(projectName);
+ for (Predicate predicate : predicates)
+ {
+ if (predicate.matches(iProject))
+ {
+ result.add(project);
+ }
+ }
+ }
+
+ return result;
+ }
+ });
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_PreferenceProfile_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PreferenceProfile_name_feature",
+ "_UI_PreferenceProfile_type"), ProjectConfigPackage.Literals.PREFERENCE_PROFILE__NAME, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Prerequisites feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected void addPrerequisitesPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory)
+ .getRootAdapterFactory(), getResourceLocator(), getString("_UI_PreferenceProfile_prerequisites_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_PreferenceProfile_prerequisites_feature",
+ "_UI_PreferenceProfile_type"), ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREREQUISITES, true,
+ false, true, null, null, null)
+ {
+ @Override
+ public Collection<?> getChoiceOfValues(Object object)
+ {
+ PreferenceProfile preferenceProfile = (PreferenceProfile)object;
+ Collection<?> result = new ArrayList<Object>(super.getChoiceOfValues(object));
+ for (Iterator<?> i = result.iterator(); i.hasNext();)
+ {
+ PreferenceProfile prerequistePreferenceProfile = (PreferenceProfile)i.next();
+ if (prerequistePreferenceProfile == preferenceProfile
+ || prerequistePreferenceProfile.requires(preferenceProfile))
+ {
+ i.remove();
+ }
+ }
+ return result;
+ }
+ });
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
+ {
+ if (childrenFeatures == null)
+ {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREFERENCE_FILTERS);
+ childrenFeatures.add(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child)
+ {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns PreferenceProfile.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/PreferenceProfile"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((PreferenceProfile)object).getName();
+ return label == null ? "" : label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(PreferenceProfile.class))
+ {
+ case ProjectConfigPackage.PREFERENCE_PROFILE__NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES:
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ if (referents != null)
+ {
+ referents.update();
+ }
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ private class Referents extends ItemProvider implements IEditingDomainItemProvider
+ {
+ PreferenceProfile preferenceProfile;
+
+ public Referents(AdapterFactory adapterFactory, String text, Object image, PreferenceProfile preferenceProfile)
+ {
+ super(adapterFactory, text, image, preferenceProfile);
+ this.preferenceProfile = preferenceProfile;
+ }
+
+ Map<Project, IWrapperItemProvider> wrappers = new HashMap<Project, IWrapperItemProvider>();
+
+ public void update()
+ {
+ /*
+ * for (Object child : getChildren()) { ((IDisposable)child).dispose(); }
+ */
+ List<Object> children = new ArrayList<Object>();
+ EList<Project> referentProjects = preferenceProfile.getReferentProjects();
+ for (int i = 0, size = referentProjects.size(); i < size; ++i)
+ {
+ Project project = referentProjects.get(i);
+ IWrapperItemProvider wrapper = wrap(i, project);
+ children.add(wrapper);
+ }
+ ECollections.setEList(getChildren(), children);
+ }
+
+ private IWrapperItemProvider wrap(int i, Project project)
+ {
+ IWrapperItemProvider wrapper = wrappers.get(project);
+ if (wrapper == null)
+ {
+ wrapper = new DelegatingWrapperItemProvider(project, preferenceProfile,
+ ProjectConfigPackage.Literals.PREFERENCE_PROFILE__REFERENT_PROJECTS, i, adapterFactory)
+ {
+ @Override
+ public Object getParent(Object object)
+ {
+ return Referents.this;
+ }
+
+ @Override
+ public Object getImage(Object object)
+ {
+ Object image = super.getImage(object);
+ List<Object> images = new ArrayList<Object>(2);
+ images.add(image);
+ images.add(EMFEditPlugin.INSTANCE.getImage("full/ovr16/ControlledObject"));
+ return image = new ComposedImage(images);
+ }
+
+ @Override
+ public boolean hasChildren(Object object)
+ {
+ return false;
+ }
+
+ @Override
+ public Collection<?> getChildren(Object object)
+ {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ if (notification instanceof IViewerNotification && ((IViewerNotification)notification).isLabelUpdate())
+ {
+ super.notifyChanged(notification);
+ }
+ }
+ };
+ wrappers.put(project, wrapper);
+ }
+ else
+ {
+ wrapper.setIndex(i);
+ }
+ return wrapper;
+ }
+
+ @Override
+ public Command createCommand(Object object, EditingDomain editingDomain, Class<? extends Command> commandClass,
+ CommandParameter commandParameter)
+ {
+ final Collection<?> originalCollection = commandParameter.getCollection();
+ commandParameter = unwrapCommandValues(commandParameter, commandClass);
+ Collection<?> collection = commandParameter.getCollection();
+ if (commandClass == RemoveCommand.class)
+ {
+ if (preferenceProfile.getReferentProjects().containsAll(collection))
+ {
+ return new RemoveCommand(editingDomain, preferenceProfile,
+ ProjectConfigPackage.Literals.PREFERENCE_PROFILE__REFERENT_PROJECTS, collection)
+ {
+ @Override
+ public void doExecute()
+ {
+ super.doExecute();
+ update();
+ affectedObjects = Collections.singleton(Referents.this);
+ }
+
+ @Override
+ public void doUndo()
+ {
+ super.doUndo();
+ update();
+ affectedObjects = Collections.singleton(Referents.this);
+ }
+
+ @Override
+ public void doRedo()
+ {
+ super.doRedo();
+ update();
+ affectedObjects = Collections.singleton(Referents.this);
+ }
+ };
+ }
+ }
+ else if (commandClass == AddCommand.class && collection != null)
+ {
+ final Collection<Object> wrappers = new ArrayList<Object>();
+ for (Object value : collection)
+ {
+ if (value instanceof Project)
+ {
+ wrappers.add(wrap(-1, (Project)value));
+ }
+ else
+ {
+ return UnexecutableCommand.INSTANCE;
+ }
+ }
+ return new AddCommand(editingDomain, preferenceProfile,
+ ProjectConfigPackage.Literals.PREFERENCE_PROFILE__REFERENT_PROJECTS, collection)
+ {
+ @Override
+ public void doExecute()
+ {
+ super.doExecute();
+ update();
+ affectedObjects = wrappers;
+ }
+
+ @Override
+ public void doUndo()
+ {
+ super.doUndo();
+ update();
+ affectedObjects = Collections.singleton(Referents.this);
+ }
+
+ @Override
+ public void doRedo()
+ {
+ super.doRedo();
+ update();
+ affectedObjects = wrappers;
+ }
+ };
+ }
+ else if (commandClass == DragAndDropCommand.class)
+ {
+ DragAndDropCommand.Detail detail = (DragAndDropCommand.Detail)commandParameter.getFeature();
+ return new DragAndDropCommand(editingDomain, preferenceProfile, detail.location, detail.operations,
+ detail.operation, commandParameter.getCollection())
+ {
+ @Override
+ protected boolean prepareDropLinkOn()
+ {
+ dragCommand = IdentityCommand.INSTANCE;
+ dropCommand = AddCommand.create(domain, Referents.this,
+ ProjectConfigPackage.Literals.PREFERENCE_PROFILE__REFERENT_PROJECTS, originalCollection);
+ return dropCommand.canExecute();
+ }
+ };
+ }
+ return super.createCommand(object, editingDomain, commandClass, commandParameter);
+ }
+ }
+
+ @Override
+ public Command createCommand(Object object, EditingDomain domain, Class<? extends Command> commandClass,
+ CommandParameter commandParameter)
+ {
+ Collection<?> collection = commandParameter.getCollection();
+ if (collection != null)
+ {
+ for (Object value : collection)
+ {
+ if (value instanceof Project)
+ {
+ return referents.createCommand(referents, domain, commandClass, commandParameter);
+ }
+ }
+ }
+ return super.createCommand(object, domain, commandClass, commandParameter);
+ }
+
+ private Referents referents;
+
+ @Override
+ public Collection<?> getChildren(Object object)
+ {
+ Collection<Object> result = new ArrayList<Object>(super.getChildren(object));
+ PreferenceProfile preferenceProfile = (PreferenceProfile)object;
+ if (referents == null)
+ {
+ referents = new Referents(adapterFactory, "Referents", getResourceLocator().getImage("full/obj16/IncomingLinks"),
+ preferenceProfile);
+ }
+ referents.update();
+ result.add(referents);
+ return result;
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREFERENCE_FILTERS,
+ ProjectConfigFactory.eINSTANCE.createPreferenceFilter()));
+
+ newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES,
+ PredicatesFactory.eINSTANCE.createNamePredicate()));
+
+ newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES,
+ PredicatesFactory.eINSTANCE.createRepositoryPredicate()));
+
+ newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES,
+ PredicatesFactory.eINSTANCE.createAndPredicate()));
+
+ newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES,
+ PredicatesFactory.eINSTANCE.createOrPredicate()));
+
+ newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES,
+ PredicatesFactory.eINSTANCE.createNotPredicate()));
+
+ newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES,
+ PredicatesFactory.eINSTANCE.createNaturePredicate()));
+
+ newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES,
+ PredicatesFactory.eINSTANCE.createBuilderPredicate()));
+
+ newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PREFERENCE_PROFILE__PREDICATES,
+ PredicatesFactory.eINSTANCE.createFilePredicate()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return ProjectConfigEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectConfigEditPlugin.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectConfigEditPlugin.java
new file mode 100644
index 0000000000..bb918bb8ee
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectConfigEditPlugin.java
@@ -0,0 +1,101 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.provider;
+
+import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesEditPlugin;
+import org.eclipse.emf.cdo.releng.preferences.provider.PreferencesEditPlugin;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Project Config edit plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class ProjectConfigEditPlugin extends EMFPlugin
+{
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final ProjectConfigEditPlugin INSTANCE = new ProjectConfigEditPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProjectConfigEditPlugin()
+ {
+ super
+ (new ResourceLocator []
+ {
+ PredicatesEditPlugin.INSTANCE,
+ PreferencesEditPlugin.INSTANCE,
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator()
+ {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin()
+ {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipsePlugin
+ {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation()
+ {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectConfigItemProviderAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectConfigItemProviderAdapterFactory.java
new file mode 100644
index 0000000000..3d142e6775
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectConfigItemProviderAdapterFactory.java
@@ -0,0 +1,289 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.provider;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.cdo.releng.projectconfig.util.ProjectConfigAdapterFactory;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.Disposable;
+import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IDisposable;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.INotifyChangedListener;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+/**
+ * This is the factory that is used to provide the interfaces needed to support Viewers.
+ * The adapters generated by this factory convert EMF adapter notifications into calls to {@link #fireNotifyChanged fireNotifyChanged}.
+ * The adapters also support Eclipse property sheets.
+ * Note that most of the adapters are shared among multiple instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ProjectConfigItemProviderAdapterFactory extends ProjectConfigAdapterFactory implements ComposeableAdapterFactory, IChangeNotifier, IDisposable
+{
+ /**
+ * This keeps track of the root adapter factory that delegates to this adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory parentAdapterFactory;
+
+ /**
+ * This is used to implement {@link org.eclipse.emf.edit.provider.IChangeNotifier}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IChangeNotifier changeNotifier = new ChangeNotifier();
+
+ /**
+ * This keeps track of all the item providers created, so that they can be {@link #dispose disposed}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Disposable disposable = new Disposable();
+
+ /**
+ * This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Object> supportedTypes = new ArrayList<Object>();
+
+ /**
+ * This constructs an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProjectConfigItemProviderAdapterFactory()
+ {
+ supportedTypes.add(IEditingDomainItemProvider.class);
+ supportedTypes.add(IStructuredItemContentProvider.class);
+ supportedTypes.add(ITreeItemContentProvider.class);
+ supportedTypes.add(IItemLabelProvider.class);
+ supportedTypes.add(IItemPropertySource.class);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WorkspaceConfigurationItemProvider workspaceConfigurationItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createWorkspaceConfigurationAdapter()
+ {
+ if (workspaceConfigurationItemProvider == null)
+ {
+ workspaceConfigurationItemProvider = new WorkspaceConfigurationItemProvider(this);
+ }
+
+ return workspaceConfigurationItemProvider;
+ }
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.projectconfig.Project}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createProjectAdapter()
+ {
+ return new ProjectItemProvider(this);
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PreferenceProfileItemProvider preferenceProfileItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPreferenceProfileAdapter()
+ {
+ if (preferenceProfileItemProvider == null)
+ {
+ preferenceProfileItemProvider = new PreferenceProfileItemProvider(this);
+ }
+
+ return preferenceProfileItemProvider;
+ }
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createPreferenceFilterAdapter()
+ {
+ return new PreferenceFilterItemProvider(this);
+ }
+
+ /**
+ * This returns the root adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ComposeableAdapterFactory getRootAdapterFactory()
+ {
+ return parentAdapterFactory == null ? this : parentAdapterFactory.getRootAdapterFactory();
+ }
+
+ /**
+ * This sets the composed adapter factory that contains this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setParentAdapterFactory(ComposedAdapterFactory parentAdapterFactory)
+ {
+ this.parentAdapterFactory = parentAdapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object type)
+ {
+ return supportedTypes.contains(type) || super.isFactoryForType(type);
+ }
+
+ /**
+ * This implementation substitutes the factory itself as the key for the adapter.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter adapt(Notifier notifier, Object type)
+ {
+ return super.adapt(notifier, this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object adapt(Object object, Object type)
+ {
+ if (isFactoryForType(type))
+ {
+ Object adapter = super.adapt(object, type);
+ if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter)))
+ {
+ return adapter;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Associates an adapter with a notifier via the base implementation, then records it to ensure it will be disposed.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void associate(Adapter adapter, Notifier target)
+ {
+ super.associate(adapter, target);
+ if (adapter != null)
+ {
+ disposable.add(adapter);
+ }
+ }
+
+ /**
+ * This adds a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addListener(INotifyChangedListener notifyChangedListener)
+ {
+ changeNotifier.addListener(notifyChangedListener);
+ }
+
+ /**
+ * This removes a listener.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeListener(INotifyChangedListener notifyChangedListener)
+ {
+ changeNotifier.removeListener(notifyChangedListener);
+ }
+
+ /**
+ * This delegates to {@link #changeNotifier} and to {@link #parentAdapterFactory}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void fireNotifyChanged(Notification notification)
+ {
+ changeNotifier.fireNotifyChanged(notification);
+
+ if (parentAdapterFactory != null)
+ {
+ parentAdapterFactory.fireNotifyChanged(notification);
+ }
+ }
+
+ /**
+ * This disposes all of the item providers created by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void dispose()
+ {
+ disposable.dispose();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectItemProvider.java
new file mode 100644
index 0000000000..80fa34b245
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/ProjectItemProvider.java
@@ -0,0 +1,766 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.provider;
+
+import org.eclipse.emf.cdo.releng.predicates.AndPredicate;
+import org.eclipse.emf.cdo.releng.predicates.NaturePredicate;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory;
+import org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate;
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile;
+import org.eclipse.emf.cdo.releng.projectconfig.Project;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigFactory;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage;
+import org.eclipse.emf.cdo.releng.projectconfig.util.ProjectConfigUtil;
+
+import org.eclipse.emf.common.CommonPlugin;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.IdentityCommand;
+import org.eclipse.emf.common.command.UnexecutableCommand;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ECollections;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.EMFEditPlugin;
+import org.eclipse.emf.edit.command.AddCommand;
+import org.eclipse.emf.edit.command.CommandParameter;
+import org.eclipse.emf.edit.command.CreateChildCommand;
+import org.eclipse.emf.edit.command.DragAndDropCommand;
+import org.eclipse.emf.edit.command.DragAndDropCommand.Detail;
+import org.eclipse.emf.edit.command.DragAndDropFeedback;
+import org.eclipse.emf.edit.command.RemoveCommand;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.ComposedImage;
+import org.eclipse.emf.edit.provider.DelegatingWrapperItemProvider;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.IViewerNotification;
+import org.eclipse.emf.edit.provider.IWrapperItemProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.projectconfig.Project} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ProjectItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+
+ private static final Class<?> IWORKBENCH_ADAPTER_CLASS;
+
+ private static final Method GET_IMAGE_DESCRIPTOR_METHOD;
+
+ static
+ {
+ Class<?> workbenchAdapterClass = null;
+ Method method = null;
+
+ try
+ {
+ workbenchAdapterClass = CommonPlugin.loadClass("org.eclipse.ui.ide", "org.eclipse.ui.model.IWorkbenchAdapter");
+ method = workbenchAdapterClass.getMethod("getImageDescriptor", Object.class);
+ }
+ catch (Throwable throwable)
+ {
+ // Ignore
+ }
+
+ IWORKBENCH_ADAPTER_CLASS = workbenchAdapterClass;
+ GET_IMAGE_DESCRIPTOR_METHOD = method;
+
+ }
+
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProjectItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addPreferenceNodePropertyDescriptor(object);
+ addPreferenceProfileReferencesPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Preference Node feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addPreferenceNodePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_Project_preferenceNode_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Project_preferenceNode_feature", "_UI_Project_type"),
+ ProjectConfigPackage.Literals.PROJECT__PREFERENCE_NODE, true, false, true, null, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Preference Profile References feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected void addPreferenceProfileReferencesPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory)
+ .getRootAdapterFactory(), getResourceLocator(), getString("_UI_Project_preferenceProfileReferences_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_Project_preferenceProfileReferences_feature",
+ "_UI_Project_type"), ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILE_REFERENCES, true, false,
+ true, null, null, null)
+ {
+ IItemLabelProvider labelProvider = new IItemLabelProvider()
+ {
+ public String getText(Object object)
+ {
+ String result = itemDelegator.getText(object);
+ if (object instanceof PreferenceProfile)
+ {
+ PreferenceProfile preferenceProfile = (PreferenceProfile)object;
+ Project project = preferenceProfile.getProject();
+ if (project != null)
+ {
+ PreferenceNode preferenceNode = project.getPreferenceNode();
+ if (preferenceNode != null)
+ {
+ String name = preferenceNode.getName();
+ if (name != null)
+ {
+ result += " - " + name;
+ }
+ }
+ }
+ }
+ return result;
+ }
+
+ public Object getImage(Object object)
+ {
+ return itemDelegator.getImage(object);
+ }
+ };
+
+ @Override
+ public IItemLabelProvider getLabelProvider(Object object)
+ {
+ return labelProvider;
+ }
+
+ });
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
+ {
+ if (childrenFeatures == null)
+ {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILES);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child)
+ {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns Project.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ Project project = (Project)object;
+ PreferenceNode preferenceNode = project.getPreferenceNode();
+ if (preferenceNode != null)
+ {
+ String name = preferenceNode.getName();
+ if (name != null)
+ {
+ IProject iProject = ResourcesPlugin.getWorkspace().getRoot().getProject(name);
+ try
+ {
+ Object adapter = iProject.getAdapter(IWORKBENCH_ADAPTER_CLASS);
+ if (adapter != null)
+ {
+ return GET_IMAGE_DESCRIPTOR_METHOD.invoke(adapter, iProject);
+ }
+ }
+ catch (Throwable throwable)
+ {
+ // Ignore
+ }
+ }
+ }
+
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/Project"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getText(Object object)
+ {
+ Project project = (Project)object;
+ PreferenceNode preferenceNode = project.getPreferenceNode();
+ String label = "<invalid>";
+ if (preferenceNode != null)
+ {
+ String name = preferenceNode.getName();
+ if (name != null)
+ {
+ label = name;
+ }
+ }
+ return label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Project.class))
+ {
+ case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void notifyChangedFoo(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(Project.class))
+ {
+ case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES:
+ case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ private class References extends ItemProvider implements IEditingDomainItemProvider
+ {
+ Project project;
+
+ public References(AdapterFactory adapterFactory, String text, Object image, Project project)
+ {
+ super(adapterFactory, text, image, project);
+ this.project = project;
+ }
+
+ Map<PreferenceProfile, IWrapperItemProvider> wrappers = new HashMap<PreferenceProfile, IWrapperItemProvider>();
+
+ public void update()
+ {
+ /*
+ * for (Object child : getChildren()) { ((IDisposable)child).dispose(); }
+ */
+ List<Object> children = new ArrayList<Object>();
+ EList<PreferenceProfile> referentProjects = project.getPreferenceProfileReferences();
+ for (int i = 0, size = referentProjects.size(); i < size; ++i)
+ {
+ PreferenceProfile project = referentProjects.get(i);
+ IWrapperItemProvider wrapper = wrap(i, project);
+ children.add(wrapper);
+ }
+ ECollections.setEList(getChildren(), children);
+ }
+
+ private IWrapperItemProvider wrap(int i, PreferenceProfile preferenceProfile)
+ {
+ IWrapperItemProvider wrapper = wrappers.get(preferenceProfile);
+ if (wrapper == null)
+ {
+ wrapper = new DelegatingWrapperItemProvider(preferenceProfile, project,
+ ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILE_REFERENCES, i, adapterFactory)
+ {
+ @Override
+ public Object getParent(Object object)
+ {
+ return References.this;
+ }
+
+ @Override
+ public String getText(Object object)
+ {
+ String result = super.getText(object);
+ PreferenceProfile preferenceProfile = (PreferenceProfile)value;
+ Project project = preferenceProfile.getProject();
+ if (project != null)
+ {
+ PreferenceNode preferenceNode = project.getPreferenceNode();
+ if (preferenceNode != null)
+ {
+ String name = preferenceNode.getName();
+ if (name != null)
+ {
+ result += " - " + name;
+ }
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public Object getImage(Object object)
+ {
+ Object image = super.getImage(object);
+ List<Object> images = new ArrayList<Object>(2);
+ images.add(image);
+ images.add(EMFEditPlugin.INSTANCE.getImage("full/ovr16/ControlledObject"));
+ return image = new ComposedImage(images);
+ }
+
+ @Override
+ public boolean hasChildren(Object object)
+ {
+ return false;
+ }
+
+ @Override
+ public Collection<?> getChildren(Object object)
+ {
+ return Collections.emptyList();
+ }
+
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ if (notification instanceof IViewerNotification && ((IViewerNotification)notification).isLabelUpdate())
+ {
+ super.notifyChanged(notification);
+ }
+ }
+ };
+ wrappers.put(preferenceProfile, wrapper);
+ }
+ else
+ {
+ wrapper.setIndex(i);
+ }
+ return wrapper;
+ }
+
+ @Override
+ public Command createCommand(Object object, EditingDomain editingDomain, Class<? extends Command> commandClass,
+ CommandParameter commandParameter)
+ {
+ final Collection<?> originalCollection = commandParameter.getCollection();
+ commandParameter = unwrapCommandValues(commandParameter, commandClass);
+ Collection<?> collection = commandParameter.getCollection();
+ if (commandClass == RemoveCommand.class)
+ {
+ if (project.getPreferenceProfileReferences().containsAll(collection))
+ {
+ return new RemoveCommand(editingDomain, project,
+ ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILE_REFERENCES, collection)
+ {
+ @Override
+ public void doExecute()
+ {
+ super.doExecute();
+ update();
+ affectedObjects = Collections.singleton(References.this);
+ }
+
+ @Override
+ public void doUndo()
+ {
+ super.doUndo();
+ update();
+ affectedObjects = Collections.singleton(References.this);
+ }
+
+ @Override
+ public void doRedo()
+ {
+ super.doRedo();
+ update();
+ affectedObjects = Collections.singleton(References.this);
+ }
+ };
+ }
+ }
+ else if (commandClass == AddCommand.class && collection != null)
+ {
+ final Collection<Object> wrappers = new ArrayList<Object>();
+ for (Object value : collection)
+ {
+ if (value instanceof PreferenceProfile)
+ {
+ wrappers.add(wrap(-1, (PreferenceProfile)value));
+ }
+ else
+ {
+ return UnexecutableCommand.INSTANCE;
+ }
+ }
+ return new AddCommand(editingDomain, project,
+ ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILE_REFERENCES, collection)
+ {
+ @Override
+ public void doExecute()
+ {
+ super.doExecute();
+ update();
+ affectedObjects = wrappers;
+ }
+
+ @Override
+ public void doUndo()
+ {
+ super.doUndo();
+ update();
+ affectedObjects = Collections.singleton(References.this);
+ }
+
+ @Override
+ public void doRedo()
+ {
+ super.doRedo();
+ update();
+ affectedObjects = wrappers;
+ }
+ };
+ }
+ else if (commandClass == DragAndDropCommand.class)
+ {
+ DragAndDropCommand.Detail detail = (DragAndDropCommand.Detail)commandParameter.getFeature();
+ return new DragAndDropCommand(editingDomain, this, detail.location, detail.operations, detail.operation,
+ commandParameter.getCollection())
+ {
+ @Override
+ protected boolean prepareDropLinkOn()
+ {
+ dragCommand = IdentityCommand.INSTANCE;
+ dropCommand = AddCommand.create(domain, References.this,
+ ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILE_REFERENCES, originalCollection);
+ return dropCommand.canExecute();
+ }
+ };
+ }
+ return super.createCommand(object, editingDomain, commandClass, commandParameter);
+ }
+ }
+
+ /*
+ * @Override public Command createCommand(Object object, EditingDomain domain, Class<? extends Command> commandClass,
+ * CommandParameter commandParameter) { Collection<?> collection = commandParameter.getCollection(); if (collection !=
+ * null) { for (Object value : collection) { if (value instanceof PreferenceProfile) { return
+ * referents.createCommand(referents, domain, commandClass, commandParameter); } } } return
+ * super.createCommand(object, domain, commandClass, commandParameter); }
+ */
+
+ private References references;
+
+ @Override
+ public Collection<?> getChildren(Object object)
+ {
+ Collection<Object> result = new ArrayList<Object>(super.getChildren(object));
+ Project project = (Project)object;
+ if (references == null)
+ {
+ references = new References(adapterFactory, "References", getResourceLocator().getImage(
+ "full/obj16/OutgoingLinks"), project);
+ }
+ references.update();
+ result.add(references);
+ return result;
+ }
+
+ @Override
+ protected Command createDragAndDropCommand(EditingDomain domain, Object owner, float location, int operations,
+ int operation, Collection<?> collection)
+ {
+ if (operation == DragAndDropFeedback.DROP_LINK)
+ {
+ return references.createCommand(references, domain, DragAndDropCommand.class, new CommandParameter(references,
+ new Detail(location, operations, operation), collection));
+ }
+ return super.createDragAndDropCommand(domain, owner, location, operations, operation, collection);
+ }
+
+ private static final Set<String> IGNORE_NAME_COMPONENTS = new HashSet<String>(Arrays.asList(new String[] { "org",
+ "eclipse", "com" }));
+
+ private static final Map<String, String> ACRYONYMS = new HashMap<String, String>();
+ static
+ {
+ ACRYONYMS.put("jdt", "JDT");
+ ACRYONYMS.put("pde", "PDE");
+ ACRYONYMS.put("ui", "UI");
+ ACRYONYMS.put("api", "API");
+ ACRYONYMS.put("ltk", "LTK");
+ ACRYONYMS.put("gmf", "GMF");
+ }
+
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ Project project = (Project)object;
+ Collection<PreferenceNode> unmanagedPreferenceNodes = ProjectConfigUtil.getUnmanagedPreferenceNodes(project);
+
+ for (PreferenceNode preferenceNode : unmanagedPreferenceNodes)
+ {
+ String preferenceNodeName = preferenceNode.getName();
+ String[] nameComponents = preferenceNodeName.split("\\.");
+ int start = 0;
+ while (start < nameComponents.length)
+ {
+ if (!IGNORE_NAME_COMPONENTS.contains(nameComponents[start]))
+ {
+ break;
+ }
+ ++start;
+ }
+
+ StringBuilder builder = new StringBuilder();
+ for (int i = start; i < nameComponents.length; ++i)
+ {
+ if (builder.length() > 0)
+ {
+ builder.append(' ');
+ }
+ String nameComponent = nameComponents[i];
+ String acronym = ACRYONYMS.get(nameComponent);
+ if (acronym != null)
+ {
+ builder.append(acronym);
+ }
+ else
+ {
+ int length = nameComponent.length();
+ if (length >= 1)
+ {
+ builder.append(Character.toUpperCase(nameComponent.charAt(0)));
+ builder.append(nameComponent, 1, length);
+ }
+ }
+ }
+
+ PreferenceProfile preferenceProfile = ProjectConfigFactory.eINSTANCE.createPreferenceProfile();
+ if (builder.length() > 0)
+ {
+ preferenceProfile.setName(builder.toString());
+ }
+
+ PreferenceFilter preferenceFilter = ProjectConfigFactory.eINSTANCE.createPreferenceFilter();
+ preferenceFilter.setPreferenceNode(preferenceNode);
+ preferenceProfile.getPreferenceFilters().add(preferenceFilter);
+
+ AndPredicate andPredicate = PredicatesFactory.eINSTANCE.createAndPredicate();
+ preferenceProfile.getPredicates().add(andPredicate);
+
+ RepositoryPredicate repositoryPredicate = PredicatesFactory.eINSTANCE.createRepositoryPredicate();
+ IProject iProject = ProjectConfigUtil.getProject(project);
+ repositoryPredicate.setProject(iProject);
+ andPredicate.getOperands().add(repositoryPredicate);
+
+ try
+ {
+ String[] natureIds = iProject.getDescription().getNatureIds();
+ int bestMatchLength = 0;
+ String bestNatureId = null;
+ for (String natureId : natureIds)
+ {
+ String[] natureComponents = natureId.split("\\.");
+ int index = 0;
+ while (index < natureComponents.length && index < nameComponents.length)
+ {
+ if (!nameComponents[index].equals(natureComponents[index]))
+ {
+ break;
+ }
+ ++index;
+ }
+
+ if (bestMatchLength < index)
+ {
+ bestMatchLength = index;
+ bestNatureId = natureId;
+ }
+ }
+
+ if (bestMatchLength >= 3)
+ {
+ NaturePredicate naturePredicate = PredicatesFactory.eINSTANCE.createNaturePredicate();
+ naturePredicate.setNature(bestNatureId);
+ andPredicate.getOperands().add(naturePredicate);
+ }
+ }
+ catch (CoreException ex)
+ {
+ // Ignore
+ }
+
+ newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILES,
+ preferenceProfile));
+ }
+
+ collectNewChildDescriptorsGen(newChildDescriptors, object);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void collectNewChildDescriptorsGen(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILES,
+ ProjectConfigFactory.eINSTANCE.createPreferenceProfile()));
+ }
+
+ @Override
+ public String getCreateChildText(Object owner, Object feature, Object child, Collection<?> selection)
+ {
+ String text = super.getCreateChildText(owner, feature, child, selection);
+ if (child instanceof PreferenceProfile)
+ {
+ PreferenceProfile preferenceProfile = (PreferenceProfile)child;
+ EList<PreferenceFilter> preferenceFilters = preferenceProfile.getPreferenceFilters();
+ if (!preferenceFilters.isEmpty())
+ {
+ PreferenceFilter preferenceFilter = preferenceFilters.get(0);
+ PreferenceNode preferenceNode = preferenceFilter.getPreferenceNode();
+ if (preferenceNode != null)
+ {
+ String name = preferenceNode.getName();
+ if (name != null)
+ {
+ text += " for " + name;
+ }
+ }
+ }
+ }
+ return text;
+ }
+
+ @Override
+ protected Command createCreateChildCommand(EditingDomain domain, EObject owner, EStructuralFeature feature,
+ Object value, int index, Collection<?> collection)
+ {
+ return new CreateChildCommand(domain, owner, feature, value, index, collection, this);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return ProjectConfigEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/WorkspaceConfigurationItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/WorkspaceConfigurationItemProvider.java
new file mode 100644
index 0000000000..b1e3f45d99
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.edit/src/org/eclipse/emf/cdo/releng/projectconfig/provider/WorkspaceConfigurationItemProvider.java
@@ -0,0 +1,240 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigFactory;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage;
+import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class WorkspaceConfigurationItemProvider
+ extends ItemProviderAdapter
+ implements
+ IEditingDomainItemProvider,
+ IStructuredItemContentProvider,
+ ITreeItemContentProvider,
+ IItemLabelProvider,
+ IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WorkspaceConfigurationItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addDefaultPreferenceNodePropertyDescriptor(object);
+ addInstancePreferenceNodePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Default Preference Node feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDefaultPreferenceNodePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_WorkspaceConfiguration_defaultPreferenceNode_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_WorkspaceConfiguration_defaultPreferenceNode_feature", "_UI_WorkspaceConfiguration_type"),
+ ProjectConfigPackage.Literals.WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Instance Preference Node feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addInstancePreferenceNodePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add
+ (createItemPropertyDescriptor
+ (((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_WorkspaceConfiguration_instancePreferenceNode_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_WorkspaceConfiguration_instancePreferenceNode_feature", "_UI_WorkspaceConfiguration_type"),
+ ProjectConfigPackage.Literals.WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE,
+ true,
+ false,
+ true,
+ null,
+ null,
+ null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
+ {
+ if (childrenFeatures == null)
+ {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(ProjectConfigPackage.Literals.WORKSPACE_CONFIGURATION__PROJECTS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child)
+ {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns WorkspaceConfiguration.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/WorkspaceConfiguration"));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage()
+ {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ return getString("_UI_WorkspaceConfiguration_type");
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(WorkspaceConfiguration.class))
+ {
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add
+ (createChildParameter
+ (ProjectConfigPackage.Literals.WORKSPACE_CONFIGURATION__PROJECTS,
+ ProjectConfigFactory.eINSTANCE.createProject()));
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return ProjectConfigEditPlugin.INSTANCE;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.classpath b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.classpath
new file mode 100644
index 0000000000..3bc247511f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.project b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.project
new file mode 100644
index 0000000000..32fc65c49c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.cdo.releng.projectconfig.editor</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000..0483dbc8d5
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding//model/projectconfig.ecorediag=UTF-8
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..48aafaf7ea
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,381 @@
+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.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+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.doc.comment.support=enabled
+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.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+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=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+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.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+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=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.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.unusedObjectAllocation=ignore
+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,HIGH,LOW,LOW,LOW,LOW,LOW
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED
+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_annotation=0
+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_method_declaration=0
+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_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+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.alignment_for_union_type_in_multicatch=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=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.format_block_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=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+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.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+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.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+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=2
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=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_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=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_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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_try=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_semicolon_in_try_resources=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_try=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_try=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_semicolon_in_try_resources=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=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+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=space
+org.eclipse.jdt.core.formatter.tabulation.size=2
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000000..3fc140fcdc
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,119 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=true
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=true
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=false
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_EMFT
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_EMFT
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" 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 * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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 * Eike Stepper - initial API and implementation\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 Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><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\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.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.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">${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">${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}</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></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_missing_override_annotations_interface_methods=false
+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=false
+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_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+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=false
+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=true
+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=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000000..864e30fe5d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.mylyn.tasks.ui.prefs
new file mode 100644
index 0000000000..b050639a54
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.mylyn.tasks.ui.prefs
@@ -0,0 +1,4 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+project.repository.kind=bugzilla
+project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.mylyn.team.ui.prefs
new file mode 100644
index 0000000000..2f50f36c0c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.mylyn.team.ui.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+commit.comment.template=[${task.id}] ${task.description} \r\n${task.url}
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000000..0c17d59e45
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,95 @@
+#Thu Feb 04 09:44:24 CET 2010
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+MISSING_EE_DESCRIPTIONS=Warning
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Ignore
+automatically_removed_unused_problem_filters=Disabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000000..fe01bb701d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,31 @@
+#Thu Feb 04 09:44:24 CET 2010
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=2
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=1
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+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
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..6966c19b24
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/META-INF/MANIFEST.MF
@@ -0,0 +1,24 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.cdo.releng.projectconfig.editor;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.emf.cdo.releng.projectconfig.presentation.ProjectConfigEditorPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.cdo.releng.projectconfig.presentation;version="1.0.0",
+ org.eclipse.emf.cdo.releng.projectconfig.presentation.handlers;version="1.0.0";x-internal:=true
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources;visibility:=reexport,
+ org.eclipse.emf.cdo.releng.projectconfig.edit;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.emf.edit.ui;visibility:=reexport,
+ org.eclipse.ui.ide;visibility:=reexport,
+ org.eclipse.emf.cdo.releng.predicates.edit;visibility:=reexport,
+ org.eclipse.emf.cdo.releng.preferences.edit;visibility:=reexport,
+ org.eclipse.ui,
+ org.eclipse.emf.cdo.releng.preferences.editor,
+ org.eclipse.core.expressions
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/build.properties b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/build.properties
new file mode 100644
index 0000000000..5fb07711cf
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/icons/full/obj16/ProjectConfigModelFile.gif b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/icons/full/obj16/ProjectConfigModelFile.gif
new file mode 100644
index 0000000000..1e9e8f0f79
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/icons/full/obj16/ProjectConfigModelFile.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/icons/sample.gif b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/icons/sample.gif
new file mode 100644
index 0000000000..34fb3c9d8c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/icons/sample.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/plugin.properties
new file mode 100644
index 0000000000..6ee1bb7596
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/plugin.properties
@@ -0,0 +1,43 @@
+#
+
+pluginName = Project Config Editor
+providerName = www.example.org
+
+_UI_ProjectConfigEditor_menu = &ProjectConfig Editor
+
+_UI_CreateChild_menu_item = &New Child
+_UI_CreateSibling_menu_item = N&ew Sibling
+
+_UI_ShowPropertiesView_menu_item = Show &Properties View
+_UI_RefreshViewer_menu_item = &Refresh
+
+_UI_SelectionPage_label = Selection
+
+_UI_NoObjectSelected = Selected Nothing
+_UI_SingleObjectSelected = Selected Object: {0}
+_UI_MultiObjectSelected = Selected {0} Objects
+
+_UI_OpenEditorError_label = Open Editor
+
+_UI_Wizard_category = Example EMF Model Creation Wizards
+
+_UI_CreateModelError_message = Problems encountered in file "{0}"
+
+_UI_ProjectConfigEditor_label = ProjectConfig Model Editor
+
+_UI_ProjectConfigEditorFilenameDefaultBase = My
+_UI_ProjectConfigEditorFilenameExtensions = projectconfig
+
+_UI_Wizard_label = New
+
+_WARN_FilenameExtension = The file name must end in ''.{0}''
+_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
+
+_UI_ModelObject = &Model Object
+_UI_XMLEncoding = &XML Encoding
+_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
+_UI_Wizard_initial_object_description = Select a model object to create
+
+_UI_FileConflict_label = File Conflict
+_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes?
+
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/plugin.xml
new file mode 100644
index 0000000000..9c716de42a
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/plugin.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ category="org.eclipse.emf.cdo.releng.ui.preferences.RelengPreferencePage"
+ class="org.eclipse.emf.cdo.releng.projectconfig.presentation.ProjectConfigPreferencePage"
+ id="org.eclipse.emf.cdo.releng.projectconfig.presentation.ProjectConfigPreferencePage"
+ name="Project Preference Configuration">
+ </page>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors">
+ <!-- @generated projectconfig -->
+ <editor
+ id="org.eclipse.emf.cdo.releng.projectconfig.presentation.ProjectConfigEditorID"
+ name="%_UI_ProjectConfigEditor_label"
+ icon="icons/full/obj16/ProjectConfigModelFile.gif"
+ extensions="projectconfig"
+ class="org.eclipse.emf.cdo.releng.projectconfig.presentation.ProjectConfigEditor"
+ contributorClass="org.eclipse.emf.cdo.releng.projectconfig.presentation.ProjectConfigActionBarContributor">
+ </editor>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.commands">
+ <category
+ id="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.category"
+ name="Project Preference Management">
+ </category>
+ <command
+ categoryId="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.category"
+ id="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.ApplyPreferenceProfiles"
+ name="Apply Project Preferences">
+ </command>
+ <command
+ categoryId="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.category"
+ id="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.Navigate"
+ name="Navigate">
+ </command>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.cdo.releng.projectconfig.presentation.handlers.ApplyPreferenceProfilesHandler"
+ commandId="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.ApplyPreferenceProfiles">
+ </handler>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.menus">
+ <menuContribution
+ locationURI="view:org.eclipse.jdt.ui.PackageExplorer?after=additions">
+ <command
+ commandId="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.ApplyPreferenceProfiles"
+ id="org.eclipse.emf.cdo.releng.projectconfig.editor.menus.ApplyPreferenceProfiles"
+ mnemonic="A">
+ </command>
+ </menuContribution>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.handlers">
+ <handler
+ class="org.eclipse.emf.cdo.releng.projectconfig.presentation.handlers.NavigateHandler"
+ commandId="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.Navigate">
+ </handler>
+ </extension>
+
+ <extension point="org.eclipse.ui.contexts">
+ <context
+ description="Editing Project Configuration Preferences"
+ id="org.eclipse.emf.cdo.releng.projectconfig.editor.context"
+ name="Editing Project Configuration Preferences"
+ parentId="org.eclipse.ui.contexts.window">
+ </context>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.bindings">
+ <key
+ commandId="org.eclipse.emf.cdo.releng.projectconfig.editor.commands.Navigate"
+ contextId="org.eclipse.emf.cdo.releng.projectconfig.editor.context"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
+ sequence="F3">
+ </key>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigActionBarContributor.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigActionBarContributor.java
new file mode 100644
index 0000000000..c50d7f0ca1
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigActionBarContributor.java
@@ -0,0 +1,712 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.presentation;
+
+import org.eclipse.emf.cdo.releng.predicates.RepositoryPredicate;
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.preferences.action.ShowInExplorerAction;
+import org.eclipse.emf.cdo.releng.projectconfig.Project;
+import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.edit.command.ChangeCommand;
+import org.eclipse.emf.edit.command.CommandParameter;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+import org.eclipse.emf.edit.ui.provider.DiagnosticDecorator;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.menus.CommandContributionItem;
+import org.eclipse.ui.menus.CommandContributionItemParameter;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the action bar contributor for the ProjectConfig model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ProjectConfigActionBarContributor extends EditingDomainActionBarContributor implements
+ ISelectionChangedListener
+{
+ private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot();
+
+ /**
+ * This keeps track of the active editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IEditorPart activeEditorPart;
+
+ /**
+ * This keeps track of the current selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionProvider selectionProvider;
+
+ /**
+ * This action opens the Properties view.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction showPropertiesViewAction = new Action(
+ ProjectConfigEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item"))
+ {
+ @Override
+ public void run()
+ {
+ try
+ {
+ getPage().showView("org.eclipse.ui.views.PropertySheet");
+ }
+ catch (PartInitException exception)
+ {
+ ProjectConfigEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * This action refreshes the viewer of the current editor if the editor
+ * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction refreshViewerAction = new Action(
+ ProjectConfigEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item"))
+ {
+ @Override
+ public boolean isEnabled()
+ {
+ return activeEditorPart instanceof IViewerProvider;
+ }
+
+ @Override
+ public void run()
+ {
+ if (activeEditorPart instanceof IViewerProvider)
+ {
+ Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+ if (viewer != null)
+ {
+ viewer.refresh();
+ }
+ }
+ }
+ };
+
+ protected IAction updatePreferenceProfileReferencesAction = new Action("Update Preference Profile References")
+ {
+ @Override
+ public boolean isEnabled()
+ {
+ return activeEditorPart instanceof IEditingDomainProvider;
+ }
+
+ @Override
+ public void run()
+ {
+ if (activeEditorPart instanceof IEditingDomainProvider)
+ {
+ EditingDomain editingDomain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+ EList<Resource> resources = editingDomain.getResourceSet().getResources();
+ if (!resources.isEmpty())
+ {
+ final WorkspaceConfiguration workspaceConfiguration = (WorkspaceConfiguration)resources.get(0).getContents()
+ .get(0);
+
+ editingDomain.getCommandStack().execute(new ChangeCommand(workspaceConfiguration)
+ {
+ @Override
+ public String getDescription()
+ {
+ return "Updates preference profile references based on the preference profile predicates";
+ }
+
+ @Override
+ public String getLabel()
+ {
+ return "Update References";
+ }
+
+ @Override
+ protected void doExecute()
+ {
+ workspaceConfiguration.updatePreferenceProfileReferences();
+ }
+ });
+ }
+ }
+ }
+ };
+
+ protected IAction applyPreferenceProfilesAction = new Action("Apply Preference Profile")
+ {
+ @Override
+ public boolean isEnabled()
+ {
+ return activeEditorPart instanceof IEditingDomainProvider;
+ }
+
+ @Override
+ public void run()
+ {
+ if (activeEditorPart instanceof IEditingDomainProvider)
+ {
+ EditingDomain editingDomain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+ EList<Resource> resources = editingDomain.getResourceSet().getResources();
+ if (!resources.isEmpty())
+ {
+ final WorkspaceConfiguration workspaceConfiguration = (WorkspaceConfiguration)resources.get(0).getContents()
+ .get(0);
+
+ editingDomain.getCommandStack().execute(new ChangeCommand(workspaceConfiguration)
+ {
+ @Override
+ public String getDescription()
+ {
+ return "Apply preference profiles to all affected workspace projects";
+ }
+
+ @Override
+ public String getLabel()
+ {
+ return "Update Preference Profiles";
+ }
+
+ @Override
+ protected void doExecute()
+ {
+ workspaceConfiguration.updatePreferenceProfileReferences();
+ workspaceConfiguration.applyPreferenceProfiles();
+ }
+ });
+ }
+ }
+ }
+ };
+
+ protected IAction reloadEditorAction = new Action("Reload Editor")
+ {
+ @Override
+ public boolean isEnabled()
+ {
+ return activeEditorPart instanceof ProjectConfigEditor;
+ }
+
+ @Override
+ public void run()
+ {
+ if (activeEditorPart instanceof ProjectConfigEditor)
+ {
+ ProjectConfigEditor projectConfigEditor = (ProjectConfigEditor)activeEditorPart;
+ projectConfigEditor.reload();
+ }
+ }
+ };
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createChildActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createChildMenuManager;
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createSiblingActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createSiblingMenuManager;
+
+ /**
+ * This creates an instance of the contributor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProjectConfigActionBarContributor()
+ {
+ super(ADDITIONS_LAST_STYLE);
+ loadResourceAction = new LoadResourceAction();
+ validateAction = new ValidateAction();
+ liveValidationAction = new DiagnosticDecorator.LiveValidator.LiveValidationAction(ProjectConfigEditorPlugin
+ .getPlugin().getDialogSettings());
+ controlAction = new ControlAction();
+ }
+
+ /**
+ * This adds Separators for editor additions to the tool bar.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToToolBar(IToolBarManager toolBarManager)
+ {
+ toolBarManager.add(new Separator("projectconfig-settings"));
+ toolBarManager.add(new Separator("projectconfig-additions"));
+ }
+
+ /**
+ * This adds to the menu bar a menu and some separators for editor additions,
+ * as well as the sub-menus for object creation items.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToMenu(IMenuManager menuManager)
+ {
+ super.contributeToMenu(menuManager);
+
+ IMenuManager submenuManager = new MenuManager(
+ ProjectConfigEditorPlugin.INSTANCE.getString("_UI_ProjectConfigEditor_menu"),
+ "org.eclipse.emf.cdo.releng.projectconfigMenuID");
+ menuManager.insertAfter("additions", submenuManager);
+ submenuManager.add(new Separator("settings"));
+ submenuManager.add(new Separator("actions"));
+ submenuManager.add(new Separator("additions"));
+ submenuManager.add(new Separator("additions-end"));
+
+ // Prepare for CreateChild item addition or removal.
+ //
+ createChildMenuManager = new MenuManager(ProjectConfigEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ submenuManager.insertBefore("additions", createChildMenuManager);
+
+ // Prepare for CreateSibling item addition or removal.
+ //
+ createSiblingMenuManager = new MenuManager(
+ ProjectConfigEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+ // Force an update because Eclipse hides empty menus now.
+ //
+ submenuManager.addMenuListener(new IMenuListener()
+ {
+ public void menuAboutToShow(IMenuManager menuManager)
+ {
+ menuManager.updateAll(true);
+ }
+ });
+
+ addGlobalActions(submenuManager);
+ }
+
+ /**
+ * When the active editor changes, this remembers the change and registers with it as a selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setActiveEditor(IEditorPart part)
+ {
+ super.setActiveEditor(part);
+ activeEditorPart = part;
+
+ // Switch to the new selection provider.
+ //
+ if (selectionProvider != null)
+ {
+ selectionProvider.removeSelectionChangedListener(this);
+ }
+ if (part == null)
+ {
+ selectionProvider = null;
+ }
+ else
+ {
+ selectionProvider = part.getSite().getSelectionProvider();
+ selectionProvider.addSelectionChangedListener(this);
+
+ // Fake a selection changed event to update the menus.
+ //
+ if (selectionProvider.getSelection() != null)
+ {
+ selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+ }
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+ * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+ * that can be added to the selected object and updating the menus accordingly.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void selectionChanged(SelectionChangedEvent event)
+ {
+ // Remove any menu items for old selection.
+ //
+ if (createChildMenuManager != null)
+ {
+ depopulateManager(createChildMenuManager, createChildActions);
+ }
+ if (createSiblingMenuManager != null)
+ {
+ depopulateManager(createSiblingMenuManager, createSiblingActions);
+ }
+
+ // Query the new selection for appropriate new child/sibling descriptors
+ //
+ Collection<?> newChildDescriptors = null;
+ Collection<?> newSiblingDescriptors = null;
+
+ ISelection selection = event.getSelection();
+ if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1)
+ {
+ Object object = ((IStructuredSelection)selection).getFirstElement();
+
+ EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+ newChildDescriptors = domain.getNewChildDescriptors(object, null);
+ newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+ }
+
+ // Generate actions for selection; populate and redraw the menus.
+ //
+ createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+ createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+ if (createChildMenuManager != null)
+ {
+ populateManager(createChildMenuManager, createChildActions, null);
+ createChildMenuManager.update(true);
+ }
+ if (createSiblingMenuManager != null)
+ {
+ populateManager(createSiblingMenuManager, createSiblingActions, null);
+ createSiblingMenuManager.update(true);
+ }
+ }
+
+ protected void augment(Collection<?> descriptors, ISelection selection)
+ {
+ if (selection instanceof IStructuredSelection && descriptors != null)
+ {
+ IStructuredSelection structuredSelection = (IStructuredSelection)selection;
+ Object object = structuredSelection.getFirstElement();
+ if (object instanceof EObject)
+ {
+ for (EObject eObject = (EObject)object; eObject != null; eObject = eObject.eContainer())
+ {
+ if (eObject instanceof Project)
+ {
+ for (Object descriptor : descriptors)
+ {
+ if (descriptor instanceof CommandParameter)
+ {
+ CommandParameter commandParameter = (CommandParameter)descriptor;
+ Object value = commandParameter.getValue();
+ if (value instanceof RepositoryPredicate)
+ {
+ Project project = (Project)eObject;
+ PreferenceNode preferenceNode = project.getPreferenceNode();
+ if (preferenceNode != null)
+ {
+ String projectName = preferenceNode.getName();
+ IProject iProject = WORKSPACE_ROOT.getProject(projectName);
+ RepositoryPredicate repositoryPredicate = (RepositoryPredicate)value;
+ repositoryPredicate.setProject(iProject);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection)
+ {
+ augment(descriptors, selection);
+ return generateCreateChildActionsGen(descriptors, selection);
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateChildActionsGen(Collection<?> descriptors, ISelection selection)
+ {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null)
+ {
+ for (Object descriptor : descriptors)
+ {
+ actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection)
+ {
+ augment(descriptors, selection);
+ return generateCreateSiblingActionsGen(descriptors, selection);
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateSiblingActionsGen(Collection<?> descriptors, ISelection selection)
+ {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null)
+ {
+ for (Object descriptor : descriptors)
+ {
+ actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+ * by inserting them before the specified contribution item <code>contributionID</code>.
+ * If <code>contributionID</code> is <code>null</code>, they are simply added.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions,
+ String contributionID)
+ {
+ if (actions != null)
+ {
+ for (IAction action : actions)
+ {
+ if (contributionID != null)
+ {
+ manager.insertBefore(contributionID, action);
+ }
+ else
+ {
+ manager.add(action);
+ }
+ }
+ }
+ }
+
+ /**
+ * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions)
+ {
+ if (actions != null)
+ {
+ IContributionItem[] items = manager.getItems();
+ for (int i = 0; i < items.length; i++)
+ {
+ // Look into SubContributionItems
+ //
+ IContributionItem contributionItem = items[i];
+ while (contributionItem instanceof SubContributionItem)
+ {
+ contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+ }
+
+ // Delete the ActionContributionItems with matching action.
+ //
+ if (contributionItem instanceof ActionContributionItem)
+ {
+ IAction action = ((ActionContributionItem)contributionItem).getAction();
+ if (actions.contains(action))
+ {
+ manager.remove(contributionItem);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This populates the pop-up menu before it appears.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager)
+ {
+ super.menuAboutToShow(menuManager);
+ MenuManager submenuManager = null;
+
+ submenuManager = new MenuManager(ProjectConfigEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ populateManager(submenuManager, createChildActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+
+ submenuManager = new MenuManager(ProjectConfigEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ populateManager(submenuManager, createSiblingActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+
+ ISelectionProvider selectionProvider = activeEditor instanceof ISelectionProvider ? (ISelectionProvider)activeEditor
+ : activeEditor.getEditorSite().getSelectionProvider();
+
+ if (selectionProvider != null)
+ {
+ ISelection selection = selectionProvider.getSelection();
+ IStructuredSelection structuredSelection = selection instanceof IStructuredSelection ? (IStructuredSelection)selection
+ : StructuredSelection.EMPTY;
+
+ final List<PreferenceNode> preferenceNodes = new ArrayList<PreferenceNode>();
+ for (Object object : structuredSelection.toArray())
+ {
+ if (object instanceof Project)
+ {
+ preferenceNodes.add(((Project)object).getPreferenceNode());
+ }
+ }
+
+ final Action action = new Action()
+ {
+ ShowInExplorerAction showInExplorerAction = new ShowInExplorerAction();
+
+ {
+ showInExplorerAction.selectionChanged(this, new StructuredSelection(preferenceNodes));
+ }
+
+ @Override
+ public String getText()
+ {
+ return "Show in Package Explorer";
+ }
+
+ @Override
+ public void run()
+ {
+ showInExplorerAction.run(this);
+ }
+ };
+
+ if (action.isEnabled())
+ {
+ menuManager.insertAfter("additions", action);
+ }
+ }
+
+ menuManager.insertAfter("ui-actions", new CommandContributionItem(new CommandContributionItemParameter(
+ activeEditorPart.getEditorSite(), "org.eclipse.emf.cdo.releng.projectconfig.editor.commands.Navigate",
+ "org.eclipse.emf.cdo.releng.projectconfig.editor.commands.Navigate", 0)));
+
+ }
+
+ @Override
+ protected void addGlobalActions(IMenuManager menuManager)
+ {
+ addGlobalActionsGen(menuManager);
+
+ updatePreferenceProfileReferencesAction.setEnabled(updatePreferenceProfileReferencesAction.isEnabled());
+ menuManager.insertAfter("ui-actions", updatePreferenceProfileReferencesAction);
+
+ updatePreferenceProfileReferencesAction.setEnabled(applyPreferenceProfilesAction.isEnabled());
+ menuManager.insertAfter("ui-actions", applyPreferenceProfilesAction);
+
+ menuManager.insertAfter("ui-actions", reloadEditorAction);
+ }
+
+ /**
+ * This inserts global actions before the "additions-end" separator.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addGlobalActionsGen(IMenuManager menuManager)
+ {
+ menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+ menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+ refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());
+ menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+ super.addGlobalActions(menuManager);
+ }
+
+ /**
+ * This ensures that a delete action will clean up all references to deleted objects.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean removeAllReferencesOnDelete()
+ {
+ return true;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigEditor.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigEditor.java
new file mode 100644
index 0000000000..90ecbd80d3
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigEditor.java
@@ -0,0 +1,1850 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.presentation;
+
+import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesItemProviderAdapterFactory;
+import org.eclipse.emf.cdo.releng.preferences.provider.PreferencesItemProviderAdapterFactory;
+import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration;
+import org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigURIHandlerImpl;
+import org.eclipse.emf.cdo.releng.projectconfig.provider.ProjectConfigItemProviderAdapterFactory;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.ui.MarkerHelper;
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+import org.eclipse.emf.common.ui.viewer.ColumnViewerInformationControlToolTipSupport;
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.DecoratingColumLabelProvider;
+import org.eclipse.emf.edit.ui.provider.DiagnosticDecorator;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+import org.eclipse.emf.edit.ui.util.EditUIMarkerHelper;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.util.LocalSelectionTransfer;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.contexts.IContextService;
+import org.eclipse.ui.dialogs.SaveAsDialog;
+import org.eclipse.ui.ide.IGotoMarker;
+import org.eclipse.ui.part.FileEditorInput;
+import org.eclipse.ui.part.MultiPageEditorPart;
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * This is an example of a ProjectConfig model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ProjectConfigEditor extends MultiPageEditorPart implements IEditingDomainProvider, ISelectionProvider,
+ IMenuListener, IViewerProvider, IGotoMarker
+{
+ /**
+ * This keeps track of the editing domain that is used to track all changes to the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdapterFactoryEditingDomain editingDomain;
+
+ /**
+ * This is the one adapter factory used for providing views of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory adapterFactory;
+
+ /**
+ * This is the content outline page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IContentOutlinePage contentOutlinePage;
+
+ /**
+ * This is a kludge...
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStatusLineManager contentOutlineStatusLineManager;
+
+ /**
+ * This is the content outline page's viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer contentOutlineViewer;
+
+ /**
+ * This is the property sheet page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
+
+ /**
+ * This is the viewer that shadows the selection in the content outline.
+ * The parent relation must be correctly defined for this to work.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer selectionViewer;
+
+ /**
+ * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Viewer currentViewer;
+
+ /**
+ * This listens to which ever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionChangedListener selectionChangedListener;
+
+ /**
+ * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+ /**
+ * This keeps track of the selection of the editor as a whole.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+ /**
+ * The MarkerHelper is responsible for creating workspace resource markers presented
+ * in Eclipse's Problems View.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected MarkerHelper markerHelper = new EditUIMarkerHelper();
+
+ /**
+ * This listens for when the outline becomes active
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IPartListener partListener = new IPartListener()
+ {
+ public void partActivated(IWorkbenchPart p)
+ {
+ if (p instanceof ContentOutline)
+ {
+ if (((ContentOutline)p).getCurrentPage() == contentOutlinePage)
+ {
+ getActionBarContributor().setActiveEditor(ProjectConfigEditor.this);
+
+ setCurrentViewer(contentOutlineViewer);
+ }
+ }
+ else if (p instanceof PropertySheet)
+ {
+ if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage()))
+ {
+ getActionBarContributor().setActiveEditor(ProjectConfigEditor.this);
+ handleActivate();
+ }
+ }
+ else if (p == ProjectConfigEditor.this)
+ {
+ handleActivate();
+ }
+ }
+
+ public void partBroughtToTop(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+
+ public void partClosed(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+
+ public void partDeactivated(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+
+ public void partOpened(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+ };
+
+ /**
+ * Resources that have been removed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been changed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been saved.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+ /**
+ * Map to store the diagnostic associated with a resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+ /**
+ * Controls whether the problem indication should be updated.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean updateProblemIndication = true;
+
+ /**
+ * Adapter used to update the problem indication when resources are demanded loaded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EContentAdapter problemIndicationAdapter = new EContentAdapter()
+ {
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ if (notification.getNotifier() instanceof Resource)
+ {
+ switch (notification.getFeatureID(Resource.class))
+ {
+ case Resource.RESOURCE__IS_LOADED:
+ case Resource.RESOURCE__ERRORS:
+ case Resource.RESOURCE__WARNINGS:
+ {
+ Resource resource = (Resource)notification.getNotifier();
+ Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ resourceToDiagnosticMap.put(resource, diagnostic);
+ }
+ else
+ {
+ resourceToDiagnosticMap.remove(resource);
+ }
+
+ if (updateProblemIndication)
+ {
+ getSite().getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ updateProblemIndication();
+ }
+ });
+ }
+ break;
+ }
+ }
+ }
+ else
+ {
+ super.notifyChanged(notification);
+ }
+ }
+
+ @Override
+ protected void setTarget(Resource target)
+ {
+ basicSetTarget(target);
+ }
+
+ @Override
+ protected void unsetTarget(Resource target)
+ {
+ basicUnsetTarget(target);
+ resourceToDiagnosticMap.remove(target);
+ if (updateProblemIndication)
+ {
+ getSite().getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ updateProblemIndication();
+ }
+ });
+ }
+ }
+ };
+
+ /**
+ * This listens for workspace changes.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IResourceChangeListener resourceChangeListener = new IResourceChangeListener()
+ {
+ public void resourceChanged(IResourceChangeEvent event)
+ {
+ IResourceDelta delta = event.getDelta();
+ try
+ {
+ class ResourceDeltaVisitor implements IResourceDeltaVisitor
+ {
+ protected ResourceSet resourceSet = editingDomain.getResourceSet();
+
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ public boolean visit(final IResourceDelta delta)
+ {
+ if (delta.getResource().getType() == IResource.FILE)
+ {
+ if (delta.getKind() == IResourceDelta.REMOVED || delta.getKind() == IResourceDelta.CHANGED)
+ {
+ final Resource resource = resourceSet.getResource(
+ URI.createPlatformResourceURI(delta.getFullPath().toString(), true), false);
+ if (resource != null)
+ {
+ if (delta.getKind() == IResourceDelta.REMOVED)
+ {
+ removedResources.add(resource);
+ }
+ else
+ {
+ if ((delta.getFlags() & IResourceDelta.MARKERS) != 0)
+ {
+ DiagnosticDecorator.DiagnosticAdapter.update(resource,
+ markerHelper.getMarkerDiagnostics(resource, (IFile)delta.getResource()));
+ }
+ if ((delta.getFlags() & IResourceDelta.CONTENT) != 0)
+ {
+ if (!savedResources.remove(resource))
+ {
+ changedResources.add(resource);
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ return true;
+ }
+
+ public Collection<Resource> getChangedResources()
+ {
+ return changedResources;
+ }
+
+ public Collection<Resource> getRemovedResources()
+ {
+ return removedResources;
+ }
+ }
+
+ final ResourceDeltaVisitor visitor = new ResourceDeltaVisitor();
+ delta.accept(visitor);
+
+ if (!visitor.getRemovedResources().isEmpty())
+ {
+ getSite().getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ removedResources.addAll(visitor.getRemovedResources());
+ if (!isDirty())
+ {
+ getSite().getPage().closeEditor(ProjectConfigEditor.this, false);
+ }
+ }
+ });
+ }
+
+ if (!visitor.getChangedResources().isEmpty())
+ {
+ getSite().getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ changedResources.addAll(visitor.getChangedResources());
+ if (getSite().getPage().getActiveEditor() == ProjectConfigEditor.this)
+ {
+ handleActivate();
+ }
+ }
+ });
+ }
+ }
+ catch (CoreException exception)
+ {
+ ProjectConfigEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * Handles activation of the editor or it's associated views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleActivate()
+ {
+ // Recompute the read only state.
+ //
+ if (editingDomain.getResourceToReadOnlyMap() != null)
+ {
+ editingDomain.getResourceToReadOnlyMap().clear();
+
+ // Refresh any actions that may become enabled or disabled.
+ //
+ setSelection(getSelection());
+ }
+
+ if (!removedResources.isEmpty())
+ {
+ if (handleDirtyConflict())
+ {
+ getSite().getPage().closeEditor(ProjectConfigEditor.this, false);
+ }
+ else
+ {
+ removedResources.clear();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+ else if (!changedResources.isEmpty())
+ {
+ changedResources.removeAll(savedResources);
+ handleChangedResources();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+
+ /**
+ * Handles what to do with changed resources on activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleChangedResources()
+ {
+ if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict()))
+ {
+ if (isDirty())
+ {
+ changedResources.addAll(editingDomain.getResourceSet().getResources());
+ }
+ editingDomain.getCommandStack().flush();
+
+ updateProblemIndication = false;
+ for (Resource resource : changedResources)
+ {
+ if (resource.isLoaded())
+ {
+ resource.unload();
+ try
+ {
+ resource.load(Collections.EMPTY_MAP);
+ }
+ catch (IOException exception)
+ {
+ if (!resourceToDiagnosticMap.containsKey(resource))
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ }
+ }
+ }
+
+ if (AdapterFactoryEditingDomain.isStale(editorSelection))
+ {
+ setSelection(StructuredSelection.EMPTY);
+ }
+
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+ }
+
+ /**
+ * Updates the problems indication with the information described in the specified diagnostic.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void updateProblemIndication()
+ {
+ if (updateProblemIndication)
+ {
+ BasicDiagnostic diagnostic = new BasicDiagnostic(Diagnostic.OK,
+ "org.eclipse.emf.cdo.releng.projectconfig.editor", 0, null, new Object[] { editingDomain.getResourceSet() });
+ for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values())
+ {
+ if (childDiagnostic.getSeverity() != Diagnostic.OK)
+ {
+ diagnostic.add(childDiagnostic);
+ }
+ }
+
+ int lastEditorPage = getPageCount() - 1;
+ if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart)
+ {
+ ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ setActivePage(lastEditorPage);
+ }
+ }
+ else if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+ problemEditorPart.setDiagnostic(diagnostic);
+ problemEditorPart.setMarkerHelper(markerHelper);
+ try
+ {
+ addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+ setPageText(lastEditorPage, problemEditorPart.getPartName());
+ setActivePage(lastEditorPage);
+ showTabs();
+ }
+ catch (PartInitException exception)
+ {
+ ProjectConfigEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+
+ if (markerHelper.hasMarkers(editingDomain.getResourceSet()))
+ {
+ markerHelper.deleteMarkers(editingDomain.getResourceSet());
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ try
+ {
+ markerHelper.createMarkers(diagnostic);
+ }
+ catch (CoreException exception)
+ {
+ ProjectConfigEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Shows a dialog that asks if conflicting changes should be discarded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean handleDirtyConflict()
+ {
+ return MessageDialog.openQuestion(getSite().getShell(), getString("_UI_FileConflict_label"),
+ getString("_WARN_FileConflict"));
+ }
+
+ /**
+ * This creates a model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProjectConfigEditor()
+ {
+ super();
+ initializeEditingDomain();
+ }
+
+ /**
+ * This sets up the editing domain for the model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void initializeEditingDomain()
+ {
+ // Create an adapter factory that yields item providers.
+ //
+ adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+ adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ProjectConfigItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new PredicatesItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new PreferencesItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+ // Create the command stack that will notify this editor as commands are executed.
+ //
+ BasicCommandStack commandStack = new BasicCommandStack();
+
+ // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+ //
+ commandStack.addCommandStackListener(new CommandStackListener()
+ {
+ public void commandStackChanged(final EventObject event)
+ {
+ getContainer().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+
+ // Try to select the affected objects.
+ //
+ Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+ if (mostRecentCommand != null)
+ {
+ setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+ }
+ for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext();)
+ {
+ PropertySheetPage propertySheetPage = i.next();
+ if (propertySheetPage.getControl().isDisposed())
+ {
+ i.remove();
+ }
+ else
+ {
+ propertySheetPage.refresh();
+ }
+ }
+ }
+ });
+ }
+ });
+
+ // Create the editing domain with a special command stack.
+ //
+ editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+ }
+
+ /**
+ * This is here for the listener to be able to call it.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void firePropertyChange(int action)
+ {
+ super.firePropertyChange(action);
+ }
+
+ /**
+ * This sets the selection into whichever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelectionToViewer(Collection<?> collection)
+ {
+ final Collection<?> theSelection = collection;
+ // Make sure it's okay.
+ //
+ if (theSelection != null && !theSelection.isEmpty())
+ {
+ Runnable runnable = new Runnable()
+ {
+ public void run()
+ {
+ // Try to select the items in the current content viewer of the editor.
+ //
+ if (currentViewer != null)
+ {
+ currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+ }
+ }
+ };
+ getSite().getShell().getDisplay().asyncExec(runnable);
+ }
+ }
+
+ /**
+ * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+ * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+ * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomain getEditingDomain()
+ {
+ return editingDomain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider
+ {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object[] getElements(Object object)
+ {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object[] getChildren(Object object)
+ {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean hasChildren(Object object)
+ {
+ Object parent = super.getParent(object);
+ return parent != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getParent(Object object)
+ {
+ return null;
+ }
+ }
+
+ /**
+ * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+ * is the current one.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrentViewer(Viewer viewer)
+ {
+ // If it is changing...
+ //
+ if (currentViewer != viewer)
+ {
+ if (selectionChangedListener == null)
+ {
+ // Create the listener on demand.
+ //
+ selectionChangedListener = new ISelectionChangedListener()
+ {
+ // This just notifies those things that are affected by the section.
+ //
+ public void selectionChanged(SelectionChangedEvent selectionChangedEvent)
+ {
+ setSelection(selectionChangedEvent.getSelection());
+ }
+ };
+ }
+
+ // Stop listening to the old one.
+ //
+ if (currentViewer != null)
+ {
+ currentViewer.removeSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Start listening to the new one.
+ //
+ if (viewer != null)
+ {
+ viewer.addSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Remember it.
+ //
+ currentViewer = viewer;
+
+ // Set the editors selection based on the current viewer's selection.
+ //
+ setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+ }
+ }
+
+ /**
+ * This returns the viewer as required by the {@link IViewerProvider} interface.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Viewer getViewer()
+ {
+ return currentViewer;
+ }
+
+ protected void createContextMenuFor(StructuredViewer viewer)
+ {
+ createContextMenuForGen(viewer);
+
+ viewer.getControl().addMouseListener(new MouseAdapter()
+ {
+ @Override
+ public void mouseDoubleClick(MouseEvent event)
+ {
+ if (event.button == 1)
+ {
+ try
+ {
+ getEditorSite().getPage().showView("org.eclipse.ui.views.PropertySheet");
+ }
+ catch (PartInitException exception)
+ {
+ ProjectConfigEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ }
+ });
+
+ }
+
+ /**
+ * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createContextMenuForGen(StructuredViewer viewer)
+ {
+ MenuManager contextMenu = new MenuManager("#PopUp");
+ contextMenu.add(new Separator("additions"));
+ contextMenu.setRemoveAllWhenShown(true);
+ contextMenu.addMenuListener(this);
+ Menu menu = contextMenu.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+ int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+ Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance(), LocalSelectionTransfer.getTransfer(),
+ FileTransfer.getInstance() };
+ viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+ viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+ }
+
+ public void reload()
+ {
+ ResourceSet resourceSet = editingDomain.getResourceSet();
+ editingDomain.getCommandStack().flush();
+
+ EList<Resource> resources = resourceSet.getResources();
+ resources.clear();
+
+ Exception exception = null;
+ Resource resource = null;
+
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+ try
+ {
+ // Load the resource through the editing domain.
+ //
+ resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+ }
+ catch (Exception e)
+ {
+ exception = e;
+ resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+ }
+
+ Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+
+ selectionViewer.setInput(resource);
+ }
+
+ public void createModel()
+ {
+ ResourceSet resourceSet = editingDomain.getResourceSet();
+ resourceSet.getURIConverter().getURIHandlers().add(0, new ProjectConfigURIHandlerImpl());
+ createModelGen();
+
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+ if ("configuration".equals(resourceURI.scheme()) && resourceURI.segmentCount() == 1)
+ {
+ Resource resource = resourceSet.getResource(resourceURI, false);
+ if (resource != null)
+ {
+ EList<EObject> contents = resource.getContents();
+ if (!contents.isEmpty())
+ {
+ EObject object = contents.get(0);
+ if (object instanceof WorkspaceConfiguration)
+ {
+ WorkspaceConfiguration workspaceConfiguration = (WorkspaceConfiguration)object;
+ if (workspaceConfiguration.getProjects().isEmpty()
+ && ResourcesPlugin.getWorkspace().getRoot().getProjects().length != 0)
+ {
+ getSite().getShell().getDisplay().timerExec(3000, new Runnable()
+ {
+ public void run()
+ {
+ reload();
+ }
+ });
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createModelGen()
+ {
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+ Exception exception = null;
+ Resource resource = null;
+ try
+ {
+ // Load the resource through the editing domain.
+ //
+ resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+ }
+ catch (Exception e)
+ {
+ exception = e;
+ resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+ }
+
+ Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+ }
+
+ /**
+ * Returns a diagnostic describing the errors and warnings listed in the resource
+ * and the specified exception (if any).
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Diagnostic analyzeResourceProblems(Resource resource, Exception exception)
+ {
+ if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty())
+ {
+ BasicDiagnostic basicDiagnostic = new BasicDiagnostic(Diagnostic.ERROR,
+ "org.eclipse.emf.cdo.releng.projectconfig.editor", 0, getString("_UI_CreateModelError_message",
+ resource.getURI()), new Object[] { exception == null ? (Object)resource : exception });
+ basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+ return basicDiagnostic;
+ }
+ else if (exception != null)
+ {
+ return new BasicDiagnostic(Diagnostic.ERROR, "org.eclipse.emf.cdo.releng.projectconfig.editor", 0, getString(
+ "_UI_CreateModelError_message", resource.getURI()), new Object[] { exception });
+ }
+ else
+ {
+ return Diagnostic.OK_INSTANCE;
+ }
+ }
+
+ @Override
+ public void createPages()
+ {
+ createPagesGen();
+
+ EList<Resource> resources = getEditingDomain().getResourceSet().getResources();
+ if (!resources.isEmpty())
+ {
+ selectionViewer.setInput(resources.get(0));
+ }
+
+ DiagnosticDecorator labelDecorator = new DiagnosticDecorator(editingDomain, selectionViewer,
+ ProjectConfigEditorPlugin.getPlugin().getDialogSettings())
+ {
+ @Override
+ protected BasicDiagnostic decorate(Map<Object, BasicDiagnostic> objects,
+ ITreeContentProvider treeContentProvider, Set<Object> visited, Object object, List<Integer> path)
+ {
+ if (object instanceof EObject)
+ {
+ return super.decorate(objects, treeContentProvider, visited, object, path);
+ }
+ return null;
+ }
+ };
+ DecoratingColumLabelProvider labelProvider = new DecoratingColumLabelProvider(new AdapterFactoryLabelProvider(
+ adapterFactory), labelDecorator);
+ selectionViewer.setLabelProvider(labelProvider);
+ }
+
+ /**
+ * This is the method used by the framework to install your own controls.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPagesGen()
+ {
+ // Creates the model from the editor input
+ //
+ createModel();
+
+ // Only creates the other pages if there is something that can be edited
+ //
+ if (!getEditingDomain().getResourceSet().getResources().isEmpty())
+ {
+ // Create a page for the selection tree view.
+ //
+ Tree tree = new Tree(getContainer(), SWT.MULTI);
+ selectionViewer = new TreeViewer(tree);
+ setCurrentViewer(selectionViewer);
+
+ selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ selectionViewer.setLabelProvider(new DecoratingColumLabelProvider(
+ new AdapterFactoryLabelProvider(adapterFactory), new DiagnosticDecorator(editingDomain, selectionViewer,
+ ProjectConfigEditorPlugin.getPlugin().getDialogSettings())));
+ selectionViewer.setInput(editingDomain.getResourceSet());
+ selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+
+ new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+ new ColumnViewerInformationControlToolTipSupport(selectionViewer,
+ new DiagnosticDecorator.EditingDomainLocationListener(editingDomain, selectionViewer));
+
+ createContextMenuFor(selectionViewer);
+ int pageIndex = addPage(tree);
+ setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+
+ getSite().getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ setActivePage(0);
+ }
+ });
+ }
+
+ // Ensures that this editor will only display the page's tab
+ // area if there are more than one page
+ //
+ getContainer().addControlListener(new ControlAdapter()
+ {
+ boolean guard = false;
+
+ @Override
+ public void controlResized(ControlEvent event)
+ {
+ if (!guard)
+ {
+ guard = true;
+ hideTabs();
+ guard = false;
+ }
+ }
+ });
+
+ getSite().getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ updateProblemIndication();
+ }
+ });
+ }
+
+ /**
+ * If there is just one page in the multi-page editor part,
+ * this hides the single tab at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void hideTabs()
+ {
+ if (getPageCount() <= 1)
+ {
+ setPageText(0, "");
+ if (getContainer() instanceof CTabFolder)
+ {
+ ((CTabFolder)getContainer()).setTabHeight(1);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y + 6);
+ }
+ }
+ }
+
+ /**
+ * If there is more than one page in the multi-page editor part,
+ * this shows the tabs at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void showTabs()
+ {
+ if (getPageCount() > 1)
+ {
+ setPageText(0, getString("_UI_SelectionPage_label"));
+ if (getContainer() instanceof CTabFolder)
+ {
+ ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y - 6);
+ }
+ }
+ }
+
+ /**
+ * This is used to track the active viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void pageChange(int pageIndex)
+ {
+ super.pageChange(pageIndex);
+
+ if (contentOutlinePage != null)
+ {
+ handleContentOutlineSelection(contentOutlinePage.getSelection());
+ }
+ }
+
+ /**
+ * This is how the framework determines which interfaces we implement.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Class key)
+ {
+ if (key.equals(IContentOutlinePage.class))
+ {
+ return showOutlineView() ? getContentOutlinePage() : null;
+ }
+ else if (key.equals(IPropertySheetPage.class))
+ {
+ return getPropertySheetPage();
+ }
+ else if (key.equals(IGotoMarker.class))
+ {
+ return this;
+ }
+ else
+ {
+ return super.getAdapter(key);
+ }
+ }
+
+ /**
+ * This accesses a cached version of the content outliner.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IContentOutlinePage getContentOutlinePage()
+ {
+ if (contentOutlinePage == null)
+ {
+ // The content outline is just a tree.
+ //
+ class MyContentOutlinePage extends ContentOutlinePage
+ {
+ @Override
+ public void createControl(Composite parent)
+ {
+ super.createControl(parent);
+ contentOutlineViewer = getTreeViewer();
+ contentOutlineViewer.addSelectionChangedListener(this);
+
+ // Set up the tree viewer.
+ //
+ contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ contentOutlineViewer.setLabelProvider(new DecoratingColumLabelProvider(new AdapterFactoryLabelProvider(
+ adapterFactory), new DiagnosticDecorator(editingDomain, contentOutlineViewer, ProjectConfigEditorPlugin
+ .getPlugin().getDialogSettings())));
+ contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+ new ColumnViewerInformationControlToolTipSupport(contentOutlineViewer,
+ new DiagnosticDecorator.EditingDomainLocationListener(editingDomain, contentOutlineViewer));
+
+ // Make sure our popups work.
+ //
+ createContextMenuFor(contentOutlineViewer);
+
+ if (!editingDomain.getResourceSet().getResources().isEmpty())
+ {
+ // Select the root object in the view.
+ //
+ contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources()
+ .get(0)), true);
+ }
+ }
+
+ @Override
+ public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager,
+ IStatusLineManager statusLineManager)
+ {
+ super.makeContributions(menuManager, toolBarManager, statusLineManager);
+ contentOutlineStatusLineManager = statusLineManager;
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars)
+ {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ }
+
+ contentOutlinePage = new MyContentOutlinePage();
+
+ // Listen to selection so that we can handle it is a special way.
+ //
+ contentOutlinePage.addSelectionChangedListener(new ISelectionChangedListener()
+ {
+ // This ensures that we handle selections correctly.
+ //
+ public void selectionChanged(SelectionChangedEvent event)
+ {
+ handleContentOutlineSelection(event.getSelection());
+ }
+ });
+ }
+
+ return contentOutlinePage;
+ }
+
+ /**
+ * This accesses a cached version of the property sheet.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IPropertySheetPage getPropertySheetPage()
+ {
+ PropertySheetPage propertySheetPage = new ExtendedPropertySheetPage(editingDomain,
+ ExtendedPropertySheetPage.Decoration.LIVE, ProjectConfigEditorPlugin.getPlugin().getDialogSettings())
+ {
+ @Override
+ public void setSelectionToViewer(List<?> selection)
+ {
+ ProjectConfigEditor.this.setSelectionToViewer(selection);
+ ProjectConfigEditor.this.setFocus();
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars)
+ {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ propertySheetPages.add(propertySheetPage);
+
+ return propertySheetPage;
+ }
+
+ /**
+ * This deals with how we want selection in the outliner to affect the other views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void handleContentOutlineSelection(ISelection selection)
+ {
+ if (selectionViewer != null && !selection.isEmpty() && selection instanceof IStructuredSelection)
+ {
+ Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+ if (selectedElements.hasNext())
+ {
+ // Get the first selected element.
+ //
+ Object selectedElement = selectedElements.next();
+
+ ArrayList<Object> selectionList = new ArrayList<Object>();
+ selectionList.add(selectedElement);
+ while (selectedElements.hasNext())
+ {
+ selectionList.add(selectedElements.next());
+ }
+
+ // Set the selection to the widget.
+ //
+ selectionViewer.setSelection(new StructuredSelection(selectionList));
+ }
+ }
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply tests the command stack.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isDirty()
+ {
+ return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply saves the model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public void doSave(IProgressMonitor progressMonitor)
+ {
+ // Save only resources that have actually changed.
+ //
+ final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+ // saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+ saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
+
+ // Do the work within an operation because this is a long running activity that modifies the workbench.
+ //
+ WorkspaceModifyOperation operation = new WorkspaceModifyOperation()
+ {
+ // This is the method that gets invoked when the operation runs.
+ //
+ @Override
+ public void execute(IProgressMonitor monitor)
+ {
+ // Save the resources to the file system.
+ //
+ boolean first = true;
+ for (Resource resource : editingDomain.getResourceSet().getResources())
+ {
+ if ((first || !resource.getContents().isEmpty() || isPersisted(resource))
+ && !editingDomain.isReadOnly(resource))
+ {
+ try
+ {
+ long timeStamp = resource.getTimeStamp();
+ resource.save(saveOptions);
+ if (resource.getTimeStamp() != timeStamp)
+ {
+ savedResources.add(resource);
+ }
+ }
+ catch (Exception exception)
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ first = false;
+ }
+ }
+ }
+ };
+
+ updateProblemIndication = false;
+ try
+ {
+ // This runs the options, and shows progress.
+ //
+ new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+ // Refresh the necessary state.
+ //
+ ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+ }
+ catch (Exception exception)
+ {
+ // Something went wrong that shouldn't.
+ //
+ ProjectConfigEditorPlugin.INSTANCE.log(exception);
+ }
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+
+ /**
+ * This returns whether something has been persisted to the URI of the specified resource.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean isPersisted(Resource resource)
+ {
+ boolean result = false;
+ try
+ {
+ InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+ if (stream != null)
+ {
+ result = true;
+ stream.close();
+ }
+ }
+ catch (IOException e)
+ {
+ // Ignore
+ }
+ return result;
+ }
+
+ /**
+ * This always returns true because it is not currently supported.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isSaveAsAllowed()
+ {
+ return true;
+ }
+
+ /**
+ * This also changes the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSaveAs()
+ {
+ SaveAsDialog saveAsDialog = new SaveAsDialog(getSite().getShell());
+ saveAsDialog.open();
+ IPath path = saveAsDialog.getResult();
+ if (path != null)
+ {
+ IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+ if (file != null)
+ {
+ doSaveAs(URI.createPlatformResourceURI(file.getFullPath().toString(), true), new FileEditorInput(file));
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void doSaveAs(URI uri, IEditorInput editorInput)
+ {
+ editingDomain.getResourceSet().getResources().get(0).setURI(uri);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ IProgressMonitor progressMonitor = getActionBars().getStatusLineManager() != null ? getActionBars()
+ .getStatusLineManager().getProgressMonitor() : new NullProgressMonitor();
+ doSave(progressMonitor);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void gotoMarker(IMarker marker)
+ {
+ List<?> targetObjects = markerHelper.getTargetObjects(editingDomain, marker);
+ if (!targetObjects.isEmpty())
+ {
+ setSelectionToViewer(targetObjects);
+ }
+ }
+
+ @Override
+ public void init(IEditorSite site, IEditorInput editorInput)
+ {
+ initGen(site, editorInput);
+ IContextService contextService = (IContextService)site.getService(IContextService.class);
+ contextService.activateContext("org.eclipse.emf.cdo.releng.projectconfig.editor.context");
+ }
+
+ /**
+ * This is called during startup.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initGen(IEditorSite site, IEditorInput editorInput)
+ {
+ setSite(site);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ site.setSelectionProvider(this);
+ site.getPage().addPartListener(partListener);
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_CHANGE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setFocus()
+ {
+ getControl(getActivePage()).setFocus();
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addSelectionChangedListener(ISelectionChangedListener listener)
+ {
+ selectionChangedListeners.add(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeSelectionChangedListener(ISelectionChangedListener listener)
+ {
+ selectionChangedListeners.remove(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ISelection getSelection()
+ {
+ return editorSelection;
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+ * Calling this result will notify the listeners.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelection(ISelection selection)
+ {
+ editorSelection = selection;
+
+ for (ISelectionChangedListener listener : selectionChangedListeners)
+ {
+ listener.selectionChanged(new SelectionChangedEvent(this, selection));
+ }
+ setStatusLineManager(selection);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatusLineManager(ISelection selection)
+ {
+ IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ? contentOutlineStatusLineManager
+ : getActionBars().getStatusLineManager();
+
+ if (statusLineManager != null)
+ {
+ if (selection instanceof IStructuredSelection)
+ {
+ Collection<?> collection = ((IStructuredSelection)selection).toList();
+ switch (collection.size())
+ {
+ case 0:
+ {
+ statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+ break;
+ }
+ case 1:
+ {
+ String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+ statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+ break;
+ }
+ default:
+ {
+ statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+ break;
+ }
+ }
+ }
+ else
+ {
+ statusLineManager.setMessage("");
+ }
+ }
+ }
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key)
+ {
+ return ProjectConfigEditorPlugin.INSTANCE.getString(key);
+ }
+
+ /**
+ * This looks up a string in plugin.properties, making a substitution.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key, Object s1)
+ {
+ return ProjectConfigEditorPlugin.INSTANCE.getString(key, new Object[] { s1 });
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void menuAboutToShow(IMenuManager menuManager)
+ {
+ ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomainActionBarContributor getActionBarContributor()
+ {
+ return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IActionBars getActionBars()
+ {
+ return getActionBarContributor().getActionBars();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdapterFactory getAdapterFactory()
+ {
+ return adapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void dispose()
+ {
+ updateProblemIndication = false;
+
+ ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceChangeListener);
+
+ getSite().getPage().removePartListener(partListener);
+
+ adapterFactory.dispose();
+
+ if (getActionBarContributor().getActiveEditor() == this)
+ {
+ getActionBarContributor().setActiveEditor(null);
+ }
+
+ for (PropertySheetPage propertySheetPage : propertySheetPages)
+ {
+ propertySheetPage.dispose();
+ }
+
+ if (contentOutlinePage != null)
+ {
+ contentOutlinePage.dispose();
+ }
+
+ super.dispose();
+ }
+
+ /**
+ * Returns whether the outline view should be presented to the user.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean showOutlineView()
+ {
+ return false;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigEditorPlugin.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigEditorPlugin.java
new file mode 100644
index 0000000000..c0be5c5587
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigEditorPlugin.java
@@ -0,0 +1,103 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.presentation;
+
+import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesEditPlugin;
+import org.eclipse.emf.cdo.releng.preferences.provider.PreferencesEditPlugin;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.ui.EclipseUIPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Project Config editor plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class ProjectConfigEditorPlugin extends EMFPlugin
+{
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final ProjectConfigEditorPlugin INSTANCE = new ProjectConfigEditorPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProjectConfigEditorPlugin()
+ {
+ super
+ (new ResourceLocator []
+ {
+ PredicatesEditPlugin.INSTANCE,
+ PreferencesEditPlugin.INSTANCE,
+ });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator()
+ {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin()
+ {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipseUIPlugin
+ {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation()
+ {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigPreferencePage.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigPreferencePage.java
new file mode 100644
index 0000000000..d557383bf8
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/ProjectConfigPreferencePage.java
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) 2012 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.presentation;
+
+import org.eclipse.emf.cdo.releng.projectconfig.util.ProjectConfigUtil;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.ui.URIEditorInput;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.preference.IPreferencePageContainer;
+import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.Point;
+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.ui.IEditorInput;
+import org.eclipse.ui.IPageLayout;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+import org.eclipse.ui.IWorkbenchWindow;
+
+import java.lang.reflect.Method;
+
+/**
+ * @author Eike Stepper
+ */
+public class ProjectConfigPreferencePage extends PreferencePage implements IWorkbenchPreferencePage
+{
+ private IWorkbench workbench;
+
+ public ProjectConfigPreferencePage()
+ {
+ super("<taken from plugin.xml>");
+ setDescription(" Manage project preferences configurations:");
+ noDefaultAndApplyButton();
+ }
+
+ public void init(IWorkbench workbench)
+ {
+ this.workbench = workbench;
+ }
+
+ @Override
+ protected Control createContents(Composite parent)
+ {
+ GridLayout layout = new GridLayout();
+ layout.marginWidth = 0;
+ layout.marginHeight = 0;
+ layout.numColumns = 1;
+
+ Composite composite = new Composite(parent, SWT.NONE);
+ composite.setLayout(layout);
+
+ TreeViewer treeViewer = new TreeViewer(composite);
+ AdapterFactory adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+ treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ treeViewer.setInput(ProjectConfigUtil.getWorkspaceConfiguration().eResource());
+ treeViewer.getControl().setLayoutData(
+ new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));
+
+ return composite;
+ }
+
+ @Override
+ protected void contributeButtons(Composite parent)
+ {
+ super.contributeButtons(parent);
+
+ GridLayout gridLayout = (GridLayout)parent.getLayout();
+ gridLayout.numColumns = 1;
+
+ Button editButton = new Button(parent, SWT.PUSH);
+ editButton.setText("Edit...");
+
+ Dialog.applyDialogFont(editButton);
+ int widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
+ Point minButtonSize = editButton.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
+ GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+ data.widthHint = Math.max(widthHint, minButtonSize.x);
+
+ editButton.setLayoutData(data);
+ editButton.addSelectionListener(new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected(SelectionEvent e)
+ {
+ // Invoke the close method on the preference dialog, but avoid using internal API, so do it reflectively.
+ IPreferencePageContainer container = getContainer();
+
+ try
+ {
+ Method method = container.getClass().getMethod("close");
+ method.invoke(container);
+ }
+ catch (Throwable ex)
+ {
+ ProjectConfigEditorPlugin.INSTANCE.log(ex);
+ }
+
+ openWorkingSetsEditor();
+ }
+ });
+
+ }
+
+ protected void openWorkingSetsEditor()
+ {
+ final IWorkbenchWindow activeWorkbenchWindow = workbench.getActiveWorkbenchWindow();
+ Display display = activeWorkbenchWindow.getShell().getDisplay();
+ display.asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+ IEditorInput editorInput = new URIEditorInput(ProjectConfigUtil.PROJECT_CONFIG_URI
+ .appendSegment("All.projectconfig"), "Project Preference Configuration");
+ IWorkbenchPage activePage = activeWorkbenchWindow.getActivePage();
+ activePage.openEditor(editorInput,
+ "org.eclipse.emf.cdo.releng.projectconfig.presentation.ProjectConfigEditorID");
+ activePage.showView(IPageLayout.ID_PROP_SHEET);
+ }
+ catch (Exception ex)
+ {
+ ProjectConfigEditorPlugin.INSTANCE.log(ex);
+ }
+ }
+ });
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/handlers/ApplyPreferenceProfilesHandler.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/handlers/ApplyPreferenceProfilesHandler.java
new file mode 100644
index 0000000000..75cf14ebf2
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/handlers/ApplyPreferenceProfilesHandler.java
@@ -0,0 +1,29 @@
+package org.eclipse.emf.cdo.releng.projectconfig.presentation.handlers;
+
+import org.eclipse.emf.cdo.releng.projectconfig.util.ProjectConfigUtil;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+
+/**
+ * Our sample handler extends AbstractHandler, an IHandler base class.
+ * @see org.eclipse.core.commands.IHandler
+ * @see org.eclipse.core.commands.AbstractHandler
+ */
+public class ApplyPreferenceProfilesHandler extends AbstractHandler
+{
+ public ApplyPreferenceProfilesHandler()
+ {
+ }
+
+ /**
+ * the command has been executed, so extract extract the needed information
+ * from the application context.
+ */
+ public Object execute(ExecutionEvent event) throws ExecutionException
+ {
+ ProjectConfigUtil.getWorkspaceConfiguration().applyPreferenceProfiles();
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/handlers/NavigateHandler.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/handlers/NavigateHandler.java
new file mode 100644
index 0000000000..89553e6ee1
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig.editor/src/org/eclipse/emf/cdo/releng/projectconfig/presentation/handlers/NavigateHandler.java
@@ -0,0 +1,133 @@
+package org.eclipse.emf.cdo.releng.projectconfig.presentation.handlers;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.preferences.util.PreferencesUtil;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile;
+import org.eclipse.emf.cdo.releng.projectconfig.Project;
+import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.edit.provider.IWrapperItemProvider;
+import org.eclipse.emf.edit.provider.ItemProvider;
+
+import org.eclipse.core.commands.AbstractHandler;
+import org.eclipse.core.commands.ExecutionEvent;
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.expressions.IEvaluationContext;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.ui.ISources;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Our sample handler extends AbstractHandler, an IHandler base class.
+ * @see org.eclipse.core.commands.IHandler
+ * @see org.eclipse.core.commands.AbstractHandler
+ */
+public class NavigateHandler extends AbstractHandler
+{
+ protected IStructuredSelection targetSelection;
+
+ protected Viewer viewer;
+
+ public NavigateHandler()
+ {
+ }
+
+ /**
+ * the command has been executed, so extract extract the needed information
+ * from the application context.
+ */
+ public Object execute(ExecutionEvent event) throws ExecutionException
+ {
+ if (viewer != null)
+ {
+ viewer.setSelection(targetSelection, true);
+ }
+ return null;
+ }
+
+ @Override
+ public void setEnabled(Object evaluationContext)
+ {
+ IEvaluationContext evaluationContext2 = (IEvaluationContext)evaluationContext;
+ Object activeEditorPart = evaluationContext2.getVariable(ISources.ACTIVE_EDITOR_NAME);
+ if (activeEditorPart instanceof IViewerProvider)
+ {
+ viewer = ((IViewerProvider)activeEditorPart).getViewer();
+ }
+ Object selection = evaluationContext2.getVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME);
+ if (selection instanceof IStructuredSelection)
+ {
+ updateSelection((IStructuredSelection)selection);
+ }
+
+ setBaseEnabled(viewer != null && !targetSelection.isEmpty());
+ }
+
+ public boolean updateSelection(IStructuredSelection selection)
+ {
+ List<Object> targets = new ArrayList<Object>();
+ for (Object object : selection.toArray())
+ {
+ if (object instanceof WorkspaceConfiguration)
+ {
+ WorkspaceConfiguration workspaceConfiguration = (WorkspaceConfiguration)object;
+ for (Project project : workspaceConfiguration.getProjects())
+ {
+ targets.addAll(project.getPreferenceProfiles());
+ }
+ }
+ else if (object instanceof Project)
+ {
+ Project project = (Project)object;
+ targets.add(project.getPreferenceNode());
+ }
+ else if (object instanceof PreferenceProfile)
+ {
+ PreferenceProfile preferenceProfile = (PreferenceProfile)object;
+ targets.addAll(preferenceProfile.getReferentProjects());
+ }
+ else if (object instanceof PreferenceFilter)
+ {
+ PreferenceFilter preferenceFilter = (PreferenceFilter)object;
+ PreferenceNode preferenceNode = preferenceFilter.getPreferenceNode();
+ if (preferenceNode != null)
+ {
+ targets.add(preferenceNode);
+ }
+ }
+ else if (object instanceof IWrapperItemProvider)
+ {
+ IWrapperItemProvider wrapperItemProvider = (IWrapperItemProvider)object;
+ targets.add(wrapperItemProvider.getValue());
+ }
+ else if (object instanceof ItemProvider)
+ {
+ ItemProvider itemProvider = (ItemProvider)object;
+ for (Object child : itemProvider.getChildren())
+ {
+ if (child instanceof IWrapperItemProvider)
+ {
+ targets.add(((IWrapperItemProvider)child).getValue());
+ }
+ }
+ }
+ else if (object instanceof PreferenceNode)
+ {
+ PreferenceNode preferenceNode = (PreferenceNode)object;
+ PreferenceNode ancestor = PreferencesUtil.getAncestor(preferenceNode);
+ if (ancestor != null)
+ {
+ targets.add(ancestor);
+ }
+ }
+ }
+ targetSelection = new StructuredSelection(targets);
+ return !targetSelection.isEmpty();
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.classpath b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.classpath
new file mode 100644
index 0000000000..64c5e31b7a
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.classpath
@@ -0,0 +1,7 @@
+<?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/plugins/org.eclipse.emf.cdo.releng.projectconfig/.project b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.project
new file mode 100644
index 0000000000..6ce9cfa518
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.project
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.cdo.releng.projectconfig</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>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.emf.cdo.releng.version.VersionNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000..0483dbc8d5
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding//model/projectconfig.ecorediag=UTF-8
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..48aafaf7ea
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,381 @@
+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.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+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.doc.comment.support=enabled
+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.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+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=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+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.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+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=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.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.unusedObjectAllocation=ignore
+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,HIGH,LOW,LOW,LOW,LOW,LOW
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED
+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_annotation=0
+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_method_declaration=0
+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_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+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.alignment_for_union_type_in_multicatch=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=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.format_block_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=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+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.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+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.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+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=2
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=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_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=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_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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_try=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_semicolon_in_try_resources=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_try=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_try=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_semicolon_in_try_resources=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=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+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=space
+org.eclipse.jdt.core.formatter.tabulation.size=2
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000000..3fc140fcdc
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,119 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=true
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=true
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=false
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_EMFT
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_EMFT
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" 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 * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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 * Eike Stepper - initial API and implementation\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 Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><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\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.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.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">${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">${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}</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></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_missing_override_annotations_interface_methods=false
+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=false
+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_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+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=false
+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=true
+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=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000000..864e30fe5d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.mylyn.tasks.ui.prefs
new file mode 100644
index 0000000000..b050639a54
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.mylyn.tasks.ui.prefs
@@ -0,0 +1,4 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+project.repository.kind=bugzilla
+project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.mylyn.team.ui.prefs
new file mode 100644
index 0000000000..2f50f36c0c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.mylyn.team.ui.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+commit.comment.template=[${task.id}] ${task.description} \r\n${task.url}
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000000..0c17d59e45
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,95 @@
+#Thu Feb 04 09:44:24 CET 2010
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+MISSING_EE_DESCRIPTIONS=Warning
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Ignore
+automatically_removed_unused_problem_filters=Disabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000000..fe01bb701d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,31 @@
+#Thu Feb 04 09:44:24 CET 2010
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=2
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=1
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+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
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.projectconfig/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..e4d77b0cd2
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.emf.cdo.releng.projectconfig;singleton:=true
+Bundle-Version: 1.0.200.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPlugin$Implementation
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.emf.ecore;visibility:=reexport;bundle-version="[2.9.0,3.0.0)",
+ org.eclipse.emf.cdo.releng.predicates;visibility:=reexport,
+ org.eclipse.emf.cdo.releng.preferences;visibility:=reexport,
+ org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.team.core;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.9.0,3.0.0)"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.cdo.releng.projectconfig,
+ org.eclipse.emf.cdo.releng.projectconfig.impl,
+ org.eclipse.emf.cdo.releng.projectconfig.util
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.html b/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.html
new file mode 100644
index 0000000000..d35d5aed64
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</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/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.ini b/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.ini
new file mode 100644
index 0000000000..32006ae5d6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.ini
@@ -0,0 +1,15 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=modeling32.png
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.mappings b/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.mappings
new file mode 100644
index 0000000000..bddaab4310
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=@build@ \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.properties b/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.properties
new file mode 100644
index 0000000000..9134ef220b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/about.properties
@@ -0,0 +1,31 @@
+# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) 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:
+# Eike Stepper - initial API and implementation
+
+# NLS_MESSAGEFORMAT_VAR
+
+# ==============================================================================
+# Do not change the properties between this line and the last line containing:
+# %%% END OF TRANSLATED PROPERTIES %%%
+# Instead, either redefine an existing property, or create a new property,
+# append it to the end of the file, and change the code to use the new name.
+# ==============================================================================
+
+featureName = CDO Release Engineering Dynamic Working Sets
+featureText = CDO Release Engineering Dynamic Working Sets\n\
+Version: {featureVersion}\n\
+Build id: {0}\n\
+\n\
+Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) and others. All rights reserved.\n\
+\n\
+Visit http://www.eclipse.org/cdo
+
+# ==============================================================================
+# %%% END OF TRANSLATED PROPERTIES %%%
+# The above properties have been shipped for translation.
+# ==============================================================================
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/build.properties b/plugins/org.eclipse.emf.cdo.releng.projectconfig/build.properties
new file mode 100644
index 0000000000..eb09361899
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/build.properties
@@ -0,0 +1,28 @@
+# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) 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:
+# Eike Stepper - initial API and implementation
+
+# NLS_MESSAGEFORMAT_VAR
+
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ plugin.xml,\
+ about.html,\
+ about.ini,\
+ about.mappings,\
+ about.properties,\
+ copyright.txt,\
+ modeling32.png,\
+ plugin.properties,\
+ model/
+src.includes = about.html,\
+ copyright.txt
+
+generateSourceReferences = true
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/copyright.txt b/plugins/org.eclipse.emf.cdo.releng.projectconfig/copyright.txt
new file mode 100644
index 0000000000..1c77978050
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/copyright.txt
@@ -0,0 +1,8 @@
+Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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:
+ Eike Stepper - initial API and implementation
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.ecore b/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.ecore
new file mode 100644
index 0000000000..a616700f8e
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.ecore
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="projectconfig" nsURI="http://www.eclipse.org/CDO/releng/projectconfig/1.0"
+ nsPrefix="projectconfig">
+ <eClassifiers xsi:type="ecore:EClass" name="WorkspaceConfiguration">
+ <eOperations name="applyPreferenceProfiles"/>
+ <eOperations name="updatePreferenceProfileReferences"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="projects" upperBound="-1"
+ eType="#//Project" containment="true" eOpposite="#//Project/configuration"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="defaultPreferenceNode"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore#//PreferenceNode"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="instancePreferenceNode"
+ lowerBound="1" eType="ecore:EClass ../../org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore#//PreferenceNode"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Project">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
+ <details key="constraints" value="AllPreferencesManaged"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="configuration" lowerBound="1"
+ eType="#//WorkspaceConfiguration" eOpposite="#//WorkspaceConfiguration/projects"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preferenceProfiles" upperBound="-1"
+ eType="#//PreferenceProfile" containment="true" eOpposite="#//PreferenceProfile/project"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preferenceNode" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore#//PreferenceNode"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preferenceProfileReferences"
+ upperBound="-1" eType="#//PreferenceProfile" eOpposite="#//PreferenceProfile/referentProjects"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PreferenceProfile">
+ <eOperations name="requires" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eParameters name="preferenceProfile" eType="#//PreferenceProfile"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preferenceFilters" upperBound="-1"
+ eType="#//PreferenceFilter" containment="true" eOpposite="#//PreferenceFilter/preferenceProfile"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="referentProjects" upperBound="-1"
+ eType="#//Project" eOpposite="#//Project/preferenceProfileReferences"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="project" eType="#//Project"
+ eOpposite="#//Project/preferenceProfiles"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="predicates" upperBound="-1"
+ eType="ecore:EClass ../../org.eclipse.emf.cdo.releng.predicates/model/predicates.ecore#//Predicate"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="prerequisites" upperBound="-1"
+ eType="#//PreferenceProfile"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PreferenceFilter">
+ <eOperations name="matches" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preferenceNode" lowerBound="1"
+ eType="ecore:EClass ../../org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore#//PreferenceNode"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preferenceProfile" lowerBound="1"
+ eType="#//PreferenceProfile" eOpposite="#//PreferenceProfile/preferenceFilters"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="inclusions" lowerBound="1"
+ eType="#//Pattern" defaultValueLiteral=".*"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="exclusions" lowerBound="1"
+ eType="#//Pattern" defaultValueLiteral=""/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="Pattern" instanceClassName="java.util.regex.Pattern"/>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.ecorediag b/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.ecorediag
new file mode 100644
index 0000000000..6ce1c6e0f3
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.ecorediag
@@ -0,0 +1,330 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_2lsywAZaEeOxTbyYFvrvrA" type="EcoreTools" measurementUnit="Pixel">
+ <children xmi:type="notation:Node" xmi:id="_2lwdIAZaEeOxTbyYFvrvrA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_2lwdIwZaEeOxTbyYFvrvrA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_2lwdJAZaEeOxTbyYFvrvrA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_2lwdJQZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2lwdJgZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2lwdJwZaEeOxTbyYFvrvrA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2lwdKAZaEeOxTbyYFvrvrA" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_vF7lUAyLEeOoPqB4RyWmHw" type="2002">
+ <element xmi:type="ecore:EOperation" href="projectconfig.ecore#//WorkspaceConfiguration/applyPreferenceProfiles"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vF7lUQyLEeOoPqB4RyWmHw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_zP980AyLEeOoPqB4RyWmHw" type="2002">
+ <element xmi:type="ecore:EOperation" href="projectconfig.ecore#//WorkspaceConfiguration/updatePreferenceProfileReferences"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zP980QyLEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_2lxEMAZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2lxEMQZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2lxEMgZaEeOxTbyYFvrvrA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_2lwdIQZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="projectconfig.ecore#//WorkspaceConfiguration"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2lwdIgZaEeOxTbyYFvrvrA" x="555" y="30" width="318" height="108"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2ly5YAZaEeOxTbyYFvrvrA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_2ly5YwZaEeOxTbyYFvrvrA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_2ly5ZAZaEeOxTbyYFvrvrA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_2ly5ZQZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2ly5ZgZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2ly5ZwZaEeOxTbyYFvrvrA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2ly5aAZaEeOxTbyYFvrvrA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_2ly5aQZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2ly5agZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2ly5awZaEeOxTbyYFvrvrA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_2ly5YQZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="projectconfig.ecore#//Project"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2ly5YgZaEeOxTbyYFvrvrA" x="630" y="225"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2lzgcAZaEeOxTbyYFvrvrA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_2lzgcwZaEeOxTbyYFvrvrA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_2lzgdAZaEeOxTbyYFvrvrA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_iCuc8AZlEeOxTbyYFvrvrA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="projectconfig.ecore#//PreferenceProfile/name"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_iCuc8QZlEeOxTbyYFvrvrA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_2lzgdQZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2lzgdgZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2lzgdwZaEeOxTbyYFvrvrA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2lzgeAZaEeOxTbyYFvrvrA" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_9hq_wA5EEeOoPqB4RyWmHw" type="2002">
+ <element xmi:type="ecore:EOperation" href="projectconfig.ecore#//PreferenceProfile/requires"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_9hq_wQ5EEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_2lzgeQZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2lzgegZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2lzgewZaEeOxTbyYFvrvrA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_2lzgcQZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="projectconfig.ecore#//PreferenceProfile"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2lzgcgZaEeOxTbyYFvrvrA" x="630" y="360"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2l0HgAZaEeOxTbyYFvrvrA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_2l0HgwZaEeOxTbyYFvrvrA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_2l0HhAZaEeOxTbyYFvrvrA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_2l0HjAZaEeOxTbyYFvrvrA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="projectconfig.ecore#//PreferenceFilter/inclusions"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2l0HjQZaEeOxTbyYFvrvrA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_bOkxsA4-EeOoPqB4RyWmHw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="projectconfig.ecore#//PreferenceFilter/exclusions"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_bOkxsQ4-EeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_2l0HhQZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2l0HhgZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2l0HhwZaEeOxTbyYFvrvrA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2l0HiAZaEeOxTbyYFvrvrA" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_POqNoA4_EeOoPqB4RyWmHw" type="2002">
+ <element xmi:type="ecore:EOperation" href="projectconfig.ecore#//PreferenceFilter/matches"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_POqNoQ4_EeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_2l0HiQZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_2l0HigZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_2l0HiwZaEeOxTbyYFvrvrA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_2l0HgQZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="projectconfig.ecore#//PreferenceFilter"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2l0HggZaEeOxTbyYFvrvrA" x="630" y="540"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4FxeYAZaEeOxTbyYFvrvrA" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_4GP_gAZaEeOxTbyYFvrvrA" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_4GP_gQZaEeOxTbyYFvrvrA" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_4F72cAZaEeOxTbyYFvrvrA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_4F8dgAZaEeOxTbyYFvrvrA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_4F8dgQZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4F8dggZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4F8dgwZaEeOxTbyYFvrvrA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4F9EkAZaEeOxTbyYFvrvrA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_4F9EkQZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_4F9EkgZaEeOxTbyYFvrvrA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_4F9EkwZaEeOxTbyYFvrvrA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_4FxeYQZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.eclipse.emf.cdo.releng.preferences/model/preferences.ecore#//PreferenceNode"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4FxeYgZaEeOxTbyYFvrvrA" x="105" y="210" width="318" height="198"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_aSK0AAvyEeOoPqB4RyWmHw" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_aSwp4AvyEeOoPqB4RyWmHw" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_aSwp4QvyEeOoPqB4RyWmHw" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_aST98AvyEeOoPqB4RyWmHw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_aSUlAAvyEeOoPqB4RyWmHw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_aSUlAQvyEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aSUlAgvyEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aSUlAwvyEeOoPqB4RyWmHw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_aSVMEAvyEeOoPqB4RyWmHw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_aSVMEQvyEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aSVMEgvyEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aSVMEwvyEeOoPqB4RyWmHw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_aSLbEAvyEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecore#//Predicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aSLbEQvyEeOoPqB4RyWmHw" x="285" y="465"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_Q-wHsA4-EeOoPqB4RyWmHw" type="1004">
+ <children xmi:type="notation:Node" xmi:id="_Q-wHsw4-EeOoPqB4RyWmHw" type="4008"/>
+ <children xmi:type="notation:Node" xmi:id="_Q-wuwA4-EeOoPqB4RyWmHw" type="4009"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_Q-wHsQ4-EeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EDataType" href="projectconfig.ecore#//Pattern"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Q-wHsg4-EeOoPqB4RyWmHw" x="930" y="555" width="303"/>
+ </children>
+ <styles xmi:type="notation:DiagramStyle" xmi:id="_2lsywQZaEeOxTbyYFvrvrA"/>
+ <element xmi:type="ecore:EPackage" href="projectconfig.ecore#/"/>
+ <edges xmi:type="notation:Edge" xmi:id="_2l0ukAZaEeOxTbyYFvrvrA" type="3002" source="_2lwdIAZaEeOxTbyYFvrvrA" target="_2ly5YAZaEeOxTbyYFvrvrA">
+ <children xmi:type="notation:Node" xmi:id="_2l0ulAZaEeOxTbyYFvrvrA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2l0ulQZaEeOxTbyYFvrvrA" x="-6" y="-60"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2l0ulgZaEeOxTbyYFvrvrA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2l0ulwZaEeOxTbyYFvrvrA" x="-6" y="33"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_2l0ukQZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_2l0ukgZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="projectconfig.ecore#//WorkspaceConfiguration/projects"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2l0ukwZaEeOxTbyYFvrvrA" points="[-22, 106, 10, -136]$[-22, 195, 10, -47]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6dtV4AyLEeOoPqB4RyWmHw" id="(0.49760765550239233,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_6dtV4QyLEeOoPqB4RyWmHw" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_2l1VoAZaEeOxTbyYFvrvrA" type="3002" source="_2ly5YAZaEeOxTbyYFvrvrA" target="_2lwdIAZaEeOxTbyYFvrvrA">
+ <children xmi:type="notation:Node" xmi:id="_2l18sAZaEeOxTbyYFvrvrA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2l18sQZaEeOxTbyYFvrvrA" x="-10" y="-88"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2l2jwAZaEeOxTbyYFvrvrA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2l2jwQZaEeOxTbyYFvrvrA" x="-12" y="50"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_2l1VoQZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_2l1VogZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="projectconfig.ecore#//Project/configuration"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2l1VowZaEeOxTbyYFvrvrA" points="[10, -47, -22, 195]$[10, -136, -22, 106]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2u-qkgZaEeOxTbyYFvrvrA" id="(0.5,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2u_RoAZaEeOxTbyYFvrvrA" id="(0.49760765550239233,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_2l2jwgZaEeOxTbyYFvrvrA" type="3002" source="_2ly5YAZaEeOxTbyYFvrvrA" target="_2lzgcAZaEeOxTbyYFvrvrA">
+ <children xmi:type="notation:Node" xmi:id="_2l3K0AZaEeOxTbyYFvrvrA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2l3K0QZaEeOxTbyYFvrvrA" x="-19" y="-85"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2l3K0gZaEeOxTbyYFvrvrA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2l3K0wZaEeOxTbyYFvrvrA" x="-19" y="33"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_2l2jwwZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_2l2jxAZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="projectconfig.ecore#//Project/preferenceProfiles"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2l2jxQZaEeOxTbyYFvrvrA" points="[2, 3, -61, -93]$[2, 91, -61, -5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JksFsA5FEeOoPqB4RyWmHw" id="(0.5686274509803921,0.9387755102040817)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JksFsQ5FEeOoPqB4RyWmHw" id="(0.38,0.07936507936507936)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_2l3K1AZaEeOxTbyYFvrvrA" type="3002" source="_2lzgcAZaEeOxTbyYFvrvrA" target="_2l0HgAZaEeOxTbyYFvrvrA">
+ <children xmi:type="notation:Node" xmi:id="_2l3K2AZaEeOxTbyYFvrvrA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2l3K2QZaEeOxTbyYFvrvrA" x="-16" y="-78"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2l3K2gZaEeOxTbyYFvrvrA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2l3x4AZaEeOxTbyYFvrvrA" x="-16" y="48"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_2l3K1QZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_2l3K1gZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="projectconfig.ecore#//PreferenceProfile/preferenceFilters"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2l3K1wZaEeOxTbyYFvrvrA" points="[-14, 0, -17, -118]$[-14, 118, -17, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Zn5KMAZbEeOxTbyYFvrvrA" id="(0.5,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Zn5KMQZbEeOxTbyYFvrvrA" id="(0.5,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_2l3x4QZaEeOxTbyYFvrvrA" type="3002" source="_2l0HgAZaEeOxTbyYFvrvrA" target="_2lzgcAZaEeOxTbyYFvrvrA">
+ <children xmi:type="notation:Node" xmi:id="_2l3x5QZaEeOxTbyYFvrvrA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2l3x5gZaEeOxTbyYFvrvrA" x="-9" y="-71"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2l3x5wZaEeOxTbyYFvrvrA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2l3x6AZaEeOxTbyYFvrvrA" x="-6" y="35"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_2l3x4gZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_2l3x4wZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="projectconfig.ecore#//PreferenceFilter/preferenceProfile"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2l3x5AZaEeOxTbyYFvrvrA" points="[-17, 0, -14, 118]$[-17, -118, -14, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2u-DgAZaEeOxTbyYFvrvrA" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2u-DgQZaEeOxTbyYFvrvrA" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_4GDLMAZaEeOxTbyYFvrvrA" type="3002" source="_2lwdIAZaEeOxTbyYFvrvrA" target="_4FxeYAZaEeOxTbyYFvrvrA">
+ <children xmi:type="notation:Node" xmi:id="_4GDyQAZaEeOxTbyYFvrvrA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4GDyQQZaEeOxTbyYFvrvrA" x="-28" y="-96"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4GDyQgZaEeOxTbyYFvrvrA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4GDyQwZaEeOxTbyYFvrvrA" x="-28" y="17"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_4GDLMQZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4GDLMgZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="projectconfig.ecore#//WorkspaceConfiguration/defaultPreferenceNode"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4GDLMwZaEeOxTbyYFvrvrA" points="[-103, -23, 454, -192]$[-598, -23, -41, -192]$[-598, 127, -41, -42]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_4GEZUAZaEeOxTbyYFvrvrA" type="3002" source="_2lwdIAZaEeOxTbyYFvrvrA" target="_4FxeYAZaEeOxTbyYFvrvrA">
+ <children xmi:type="notation:Node" xmi:id="_4GEZVAZaEeOxTbyYFvrvrA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4GEZVQZaEeOxTbyYFvrvrA" x="11" y="-116"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4GFAYAZaEeOxTbyYFvrvrA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4GFAYQZaEeOxTbyYFvrvrA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_4GEZUQZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4GEZUgZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="projectconfig.ecore#//WorkspaceConfiguration/instancePreferenceNode"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4GEZUwZaEeOxTbyYFvrvrA" points="[-103, 22, 454, -147]$[-501, 22, 56, -147]$[-501, 127, 56, -42]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_4GFncAZaEeOxTbyYFvrvrA" type="3002" source="_2ly5YAZaEeOxTbyYFvrvrA" target="_4FxeYAZaEeOxTbyYFvrvrA">
+ <children xmi:type="notation:Node" xmi:id="_4GFndAZaEeOxTbyYFvrvrA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4GFndQZaEeOxTbyYFvrvrA" x="-44" y="-29"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4GFndgZaEeOxTbyYFvrvrA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4GFndwZaEeOxTbyYFvrvrA" x="-4" y="19"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_4GFncQZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4GFncgZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="projectconfig.ecore#//Project/preferenceNode"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4GFncwZaEeOxTbyYFvrvrA" points="[-19, -23, 85, 110]$[-103, -132, 1, 1]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_4GGOgAZaEeOxTbyYFvrvrA" type="3002" source="_2l0HgAZaEeOxTbyYFvrvrA" target="_4FxeYAZaEeOxTbyYFvrvrA">
+ <children xmi:type="notation:Node" xmi:id="_4GG1kAZaEeOxTbyYFvrvrA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4GG1kQZaEeOxTbyYFvrvrA" y="-80"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_4GG1kgZaEeOxTbyYFvrvrA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_4GG1kwZaEeOxTbyYFvrvrA" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_4GGOgQZaEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_4GGOggZaEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="projectconfig.ecore#//PreferenceFilter/preferenceNode"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_4GGOgwZaEeOxTbyYFvrvrA" points="[-77, 0, 484, 378]$[-557, 0, 4, 378]$[-557, -336, 4, 42]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_cpvxoAZbEeOxTbyYFvrvrA" type="3002" source="_2ly5YAZaEeOxTbyYFvrvrA" target="_2lzgcAZaEeOxTbyYFvrvrA">
+ <children xmi:type="notation:Node" xmi:id="_cpvxpAZbEeOxTbyYFvrvrA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cpvxpQZbEeOxTbyYFvrvrA" x="-38" y="-26"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_cpwYsAZbEeOxTbyYFvrvrA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cpwYsQZbEeOxTbyYFvrvrA" x="11" y="19"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_cpvxoQZbEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cpvxogZbEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="projectconfig.ecore#//Project/preferenceProfileReferences"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cpvxowZbEeOxTbyYFvrvrA" points="[50, -8, -155, -159]$[370, -8, 165, -159]$[370, 157, 165, 6]$[264, 157, 59, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fnXHYAZdEeOxTbyYFvrvrA" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_fnXHYQZdEeOxTbyYFvrvrA" id="(0.8133333333333334,0.5306122448979592)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_VzQwEAZdEeOxTbyYFvrvrA" type="3002" source="_2lzgcAZaEeOxTbyYFvrvrA" target="_2ly5YAZaEeOxTbyYFvrvrA">
+ <children xmi:type="notation:Node" xmi:id="_VzRXIAZdEeOxTbyYFvrvrA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VzRXIQZdEeOxTbyYFvrvrA" x="-10" y="-17"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VzR-MAZdEeOxTbyYFvrvrA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VzR-MQZdEeOxTbyYFvrvrA" x="8" y="28"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_VzQwEQZdEeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_VzQwEgZdEeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="projectconfig.ecore#//PreferenceProfile/referentProjects"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VzQwEwZdEeOxTbyYFvrvrA" points="[59, 6, 264, 157]$[165, 6, 370, 157]$[165, -159, 370, -8]$[-155, -159, 50, -8]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_I2MA8A5FEeOoPqB4RyWmHw" id="(0.8133333333333334,0.5306122448979592)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_I2MoAA5FEeOoPqB4RyWmHw" id="(0.5,0.5)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_TJdIUAZ1EeOxTbyYFvrvrA" type="3002" source="_2lzgcAZaEeOxTbyYFvrvrA" target="_2ly5YAZaEeOxTbyYFvrvrA">
+ <children xmi:type="notation:Node" xmi:id="_TJdvYAZ1EeOxTbyYFvrvrA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TJdvYQZ1EeOxTbyYFvrvrA" x="-9" y="-47"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_TJdvYgZ1EeOxTbyYFvrvrA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TJdvYwZ1EeOxTbyYFvrvrA" x="-9" y="30"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_TJdIUQZ1EeOxTbyYFvrvrA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_TJdIUgZ1EeOxTbyYFvrvrA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="projectconfig.ecore#//PreferenceProfile/project"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TJdIUwZ1EeOxTbyYFvrvrA" points="[-61, -5, 2, 91]$[-61, -93, 2, 3]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TJfkkAZ1EeOxTbyYFvrvrA" id="(0.38,0.07936507936507936)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TJfkkQZ1EeOxTbyYFvrvrA" id="(0.5686274509803921,0.9387755102040817)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_cTBRcAvyEeOoPqB4RyWmHw" type="3002" source="_2lzgcAZaEeOxTbyYFvrvrA" target="_aSK0AAvyEeOoPqB4RyWmHw">
+ <children xmi:type="notation:Node" xmi:id="_cTCfkAvyEeOoPqB4RyWmHw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cTCfkQvyEeOoPqB4RyWmHw" x="14" y="-57"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_cTCfkgvyEeOoPqB4RyWmHw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cTCfkwvyEeOoPqB4RyWmHw" x="-1" y="30"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_cTBRcQvyEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_cTBRcgvyEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="projectconfig.ecore#//PreferenceProfile/predicates"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cTBRcwvyEeOoPqB4RyWmHw" points="[-13, 30, 186, -35]$[-181, 30, 18, -35]$[-181, 60, 18, -5]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cTH_IAvyEeOoPqB4RyWmHw" id="(0.09333333333333334,0.5079365079365079)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_cTImMAvyEeOoPqB4RyWmHw" id="(0.6625514403292181,0.06976744186046512)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_vyKDIA5BEeOoPqB4RyWmHw" type="3002" source="_2lzgcAZaEeOxTbyYFvrvrA" target="_2lzgcAZaEeOxTbyYFvrvrA">
+ <children xmi:type="notation:Node" xmi:id="_vyLRQA5BEeOoPqB4RyWmHw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vyLRQQ5BEeOoPqB4RyWmHw" x="-31" y="-23"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_vyL4UA5BEeOoPqB4RyWmHw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_vyL4UQ5BEeOoPqB4RyWmHw" x="10" y="10"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_vyKDIQ5BEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_vyKDIg5BEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="projectconfig.ecore#//PreferenceProfile/prerequisites"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_vyKDIw5BEeOoPqB4RyWmHw" points="[-37, 27, -39, 30]$[-157, 27, -159, 30]$[-157, -3, -159, 0]$[-37, -3, -39, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vyQw0A5BEeOoPqB4RyWmHw" id="(0.12,0.30158730158730157)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vyQw0Q5BEeOoPqB4RyWmHw" id="(0.12666666666666668,0.25396825396825395)"/>
+ </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.genmodel b/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.genmodel
new file mode 100644
index 0000000000..ea07e4864a
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/model/projectconfig.genmodel
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.cdo.releng.projectconfig/src"
+ creationIcons="false" modelPluginID="org.eclipse.emf.cdo.releng.projectconfig"
+ modelName="Project Config" modelPluginClass="org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPlugin"
+ rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" importerID="org.eclipse.emf.importer.ecore"
+ complianceLevel="5.0" copyrightFields="false" usedGenPackages="../../org.eclipse.emf.cdo.releng.predicates/model/predicates.genmodel#//predicates ../../org.eclipse.emf.cdo.releng.preferences/model/preferences.genmodel#//preferences"
+ operationReflection="true" importOrganizing="true" decoration="Live">
+ <foreignModel>projectconfig.ecore</foreignModel>
+ <genPackages prefix="ProjectConfig" basePackage="org.eclipse.emf.cdo.releng" disposableProviderFactory="true"
+ multipleEditorPages="false" generateModelWizard="false" ecorePackage="projectconfig.ecore#/">
+ <genClasses ecoreClass="projectconfig.ecore#//WorkspaceConfiguration">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference projectconfig.ecore#//WorkspaceConfiguration/projects"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference projectconfig.ecore#//WorkspaceConfiguration/defaultPreferenceNode"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference projectconfig.ecore#//WorkspaceConfiguration/instancePrefenceNode"/>
+ <genOperations ecoreOperation="projectconfig.ecore#//WorkspaceConfiguration/applyPreferenceProfiles"/>
+ <genOperations ecoreOperation="projectconfig.ecore#//WorkspaceConfiguration/updatePreferenceProfileReferences"/>
+ </genClasses>
+ <genClasses provider="Stateful" ecoreClass="projectconfig.ecore#//Project">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference projectconfig.ecore#//Project/configuration"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference projectconfig.ecore#//Project/preferenceProfiles"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference projectconfig.ecore#//Project/preferenceNode"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference projectconfig.ecore#//Project/preferenceProfileReferences"/>
+ </genClasses>
+ <genClasses provider="Stateful" ecoreClass="projectconfig.ecore#//PreferenceProfile">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference projectconfig.ecore#//PreferenceProfile/preferenceFilters"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference projectconfig.ecore#//PreferenceProfile/referentProjects"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute projectconfig.ecore#//PreferenceProfile/name"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference projectconfig.ecore#//PreferenceProfile/project"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference projectconfig.ecore#//PreferenceProfile/predicates"/>
+ </genClasses>
+ <genClasses provider="Stateful" ecoreClass="projectconfig.ecore#//PreferenceFilter">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference projectconfig.ecore#//PreferenceFilter/preferenceNode"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference projectconfig.ecore#//PreferenceFilter/preferenceProfile"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute projectconfig.ecore#//PreferenceFilter/pattern"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/modeling32.png b/plugins/org.eclipse.emf.cdo.releng.projectconfig/modeling32.png
new file mode 100644
index 0000000000..6b08de2ada
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/modeling32.png
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.projectconfig/plugin.properties
new file mode 100644
index 0000000000..784abf50af
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/plugin.properties
@@ -0,0 +1,14 @@
+# Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) 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:
+# Eike Stepper - initial API and implementation
+
+pluginName = CDO Release Engineering Dynamic Working Sets
+providerName = Eclipse Modeling Project
+
+
+_UI_AllPreferencesManaged_diagnostic = The preferences for {0} are not managed by a preference profile or preference profile reference
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.projectconfig/plugin.xml
new file mode 100644
index 0000000000..9a58ea67fe
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/plugin.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<!--
+ Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) 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:
+ Eike Stepper - initial API and implementation
+-->
+
+<plugin>
+ <extension point="org.eclipse.emf.ecore.generated_package">
+ <!-- @generated projectconfig -->
+ <package
+ uri="http://www.eclipse.org/CDO/releng/projectconfig/1.0"
+ class="org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage"
+ genModel="model/projectconfig.genmodel"/>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/PreferenceFilter.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/PreferenceFilter.java
new file mode 100644
index 0000000000..2faf5cad1a
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/PreferenceFilter.java
@@ -0,0 +1,146 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig;
+
+import java.util.regex.Pattern;
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Preference Filter</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceNode <em>Preference Node</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceProfile <em>Preference Profile</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getInclusions <em>Inclusions</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getExclusions <em>Exclusions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceFilter()
+ * @model
+ * @generated
+ */
+public interface PreferenceFilter extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Preference Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Preference Node</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Preference Node</em>' reference.
+ * @see #setPreferenceNode(PreferenceNode)
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceFilter_PreferenceNode()
+ * @model required="true"
+ * @generated
+ */
+ PreferenceNode getPreferenceNode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceNode <em>Preference Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Preference Node</em>' reference.
+ * @see #getPreferenceNode()
+ * @generated
+ */
+ void setPreferenceNode(PreferenceNode value);
+
+ /**
+ * Returns the value of the '<em><b>Preference Profile</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPreferenceFilters <em>Preference Filters</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Preference Profile</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Preference Profile</em>' container reference.
+ * @see #setPreferenceProfile(PreferenceProfile)
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceFilter_PreferenceProfile()
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPreferenceFilters
+ * @model opposite="preferenceFilters" required="true" transient="false"
+ * @generated
+ */
+ PreferenceProfile getPreferenceProfile();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceProfile <em>Preference Profile</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Preference Profile</em>' container reference.
+ * @see #getPreferenceProfile()
+ * @generated
+ */
+ void setPreferenceProfile(PreferenceProfile value);
+
+ /**
+ * Returns the value of the '<em><b>Inclusions</b></em>' attribute.
+ * The default value is <code>".*"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Inclusions</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Inclusions</em>' attribute.
+ * @see #setInclusions(Pattern)
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceFilter_Inclusions()
+ * @model default=".*" dataType="org.eclipse.emf.cdo.releng.projectconfig.Pattern" required="true"
+ * @generated
+ */
+ Pattern getInclusions();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getInclusions <em>Inclusions</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Inclusions</em>' attribute.
+ * @see #getInclusions()
+ * @generated
+ */
+ void setInclusions(Pattern value);
+
+ /**
+ * Returns the value of the '<em><b>Exclusions</b></em>' attribute.
+ * The default value is <code>""</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Exclusions</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Exclusions</em>' attribute.
+ * @see #setExclusions(Pattern)
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceFilter_Exclusions()
+ * @model default="" dataType="org.eclipse.emf.cdo.releng.projectconfig.Pattern" required="true"
+ * @generated
+ */
+ Pattern getExclusions();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getExclusions <em>Exclusions</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Exclusions</em>' attribute.
+ * @see #getExclusions()
+ * @generated
+ */
+ void setExclusions(Pattern value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ boolean matches(String value);
+
+} // PreferenceFilter
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/PreferenceProfile.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/PreferenceProfile.java
new file mode 100644
index 0000000000..9a6a109954
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/PreferenceProfile.java
@@ -0,0 +1,163 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig;
+
+import org.eclipse.emf.cdo.releng.predicates.Predicate;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Preference Profile</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPreferenceFilters <em>Preference Filters</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getReferentProjects <em>Referent Projects</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getProject <em>Project</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPredicates <em>Predicates</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPrerequisites <em>Prerequisites</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceProfile()
+ * @model
+ * @generated
+ */
+public interface PreferenceProfile extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Preference Filters</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceProfile <em>Preference Profile</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Preference Filters</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Preference Filters</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceProfile_PreferenceFilters()
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceProfile
+ * @model opposite="preferenceProfile" containment="true"
+ * @generated
+ */
+ EList<PreferenceFilter> getPreferenceFilters();
+
+ /**
+ * Returns the value of the '<em><b>Referent Projects</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.projectconfig.Project}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfileReferences <em>Preference Profile References</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Referent Projects</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Referent Projects</em>' reference list.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceProfile_ReferentProjects()
+ * @see org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfileReferences
+ * @model opposite="preferenceProfileReferences"
+ * @generated
+ */
+ EList<Project> getReferentProjects();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceProfile_Name()
+ * @model required="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Project</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfiles <em>Preference Profiles</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Project</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Project</em>' container reference.
+ * @see #setProject(Project)
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceProfile_Project()
+ * @see org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfiles
+ * @model opposite="preferenceProfiles" transient="false"
+ * @generated
+ */
+ Project getProject();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getProject <em>Project</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Project</em>' container reference.
+ * @see #getProject()
+ * @generated
+ */
+ void setProject(Project value);
+
+ /**
+ * Returns the value of the '<em><b>Predicates</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.predicates.Predicate}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Predicates</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Predicates</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceProfile_Predicates()
+ * @model containment="true"
+ * @generated
+ */
+ EList<Predicate> getPredicates();
+
+ /**
+ * Returns the value of the '<em><b>Prerequisites</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Requires</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Prerequisites</em>' reference list.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getPreferenceProfile_Prerequisites()
+ * @model
+ * @generated
+ */
+ EList<PreferenceProfile> getPrerequisites();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ boolean requires(PreferenceProfile preferenceProfile);
+
+} // PreferenceProfile
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/Project.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/Project.java
new file mode 100644
index 0000000000..beeb7c4c70
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/Project.java
@@ -0,0 +1,122 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Project</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getConfiguration <em>Configuration</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfiles <em>Preference Profiles</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceNode <em>Preference Node</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfileReferences <em>Preference Profile References</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getProject()
+ * @model annotation="http://www.eclipse.org/emf/2002/Ecore constraints='AllPreferencesManaged'"
+ * @generated
+ */
+public interface Project extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Configuration</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getProjects <em>Projects</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Configuration</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Configuration</em>' container reference.
+ * @see #setConfiguration(WorkspaceConfiguration)
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getProject_Configuration()
+ * @see org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getProjects
+ * @model opposite="projects" required="true" transient="false"
+ * @generated
+ */
+ WorkspaceConfiguration getConfiguration();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getConfiguration <em>Configuration</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Configuration</em>' container reference.
+ * @see #getConfiguration()
+ * @generated
+ */
+ void setConfiguration(WorkspaceConfiguration value);
+
+ /**
+ * Returns the value of the '<em><b>Preference Profiles</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getProject <em>Project</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Preference Profiles</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Preference Profiles</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getProject_PreferenceProfiles()
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getProject
+ * @model opposite="project" containment="true"
+ * @generated
+ */
+ EList<PreferenceProfile> getPreferenceProfiles();
+
+ /**
+ * Returns the value of the '<em><b>Preference Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Preference Node</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Preference Node</em>' reference.
+ * @see #setPreferenceNode(PreferenceNode)
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getProject_PreferenceNode()
+ * @model required="true"
+ * @generated
+ */
+ PreferenceNode getPreferenceNode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceNode <em>Preference Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Preference Node</em>' reference.
+ * @see #getPreferenceNode()
+ * @generated
+ */
+ void setPreferenceNode(PreferenceNode value);
+
+ /**
+ * Returns the value of the '<em><b>Preference Profile References</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getReferentProjects <em>Referent Projects</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Preference Profile References</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Preference Profile References</em>' reference list.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getProject_PreferenceProfileReferences()
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getReferentProjects
+ * @model opposite="referentProjects"
+ * @generated
+ */
+ EList<PreferenceProfile> getPreferenceProfileReferences();
+
+} // Project
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/ProjectConfigFactory.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/ProjectConfigFactory.java
new file mode 100644
index 0000000000..4cef0abab1
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/ProjectConfigFactory.java
@@ -0,0 +1,70 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage
+ * @generated
+ */
+public interface ProjectConfigFactory extends EFactory
+{
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ProjectConfigFactory eINSTANCE = org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigFactoryImpl.init();
+
+ /**
+ * Returns a new object of class '<em>Workspace Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Workspace Configuration</em>'.
+ * @generated
+ */
+ WorkspaceConfiguration createWorkspaceConfiguration();
+
+ /**
+ * Returns a new object of class '<em>Project</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Project</em>'.
+ * @generated
+ */
+ Project createProject();
+
+ /**
+ * Returns a new object of class '<em>Preference Profile</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Preference Profile</em>'.
+ * @generated
+ */
+ PreferenceProfile createPreferenceProfile();
+
+ /**
+ * Returns a new object of class '<em>Preference Filter</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Preference Filter</em>'.
+ * @generated
+ */
+ PreferenceFilter createPreferenceFilter();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ ProjectConfigPackage getProjectConfigPackage();
+
+} //ProjectConfigFactory
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/ProjectConfigPackage.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/ProjectConfigPackage.java
new file mode 100644
index 0000000000..1b92bc04df
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/ProjectConfigPackage.java
@@ -0,0 +1,897 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigFactory
+ * @model kind="package"
+ * @generated
+ */
+public interface ProjectConfigPackage extends EPackage
+{
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "projectconfig";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://www.eclipse.org/CDO/releng/projectconfig/1.0";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "projectconfig";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ProjectConfigPackage eINSTANCE = org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.projectconfig.impl.WorkspaceConfigurationImpl <em>Workspace Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.WorkspaceConfigurationImpl
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getWorkspaceConfiguration()
+ * @generated
+ */
+ int WORKSPACE_CONFIGURATION = 0;
+
+ /**
+ * The feature id for the '<em><b>Projects</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WORKSPACE_CONFIGURATION__PROJECTS = 0;
+
+ /**
+ * The feature id for the '<em><b>Default Preference Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE = 1;
+
+ /**
+ * The feature id for the '<em><b>Instance Preference Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE = 2;
+
+ /**
+ * The number of structural features of the '<em>Workspace Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WORKSPACE_CONFIGURATION_FEATURE_COUNT = 3;
+
+ /**
+ * The operation id for the '<em>Apply Preference Profiles</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WORKSPACE_CONFIGURATION___APPLY_PREFERENCE_PROFILES = 0;
+
+ /**
+ * The operation id for the '<em>Update Preference Profile References</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WORKSPACE_CONFIGURATION___UPDATE_PREFERENCE_PROFILE_REFERENCES = 1;
+
+ /**
+ * The number of operations of the '<em>Workspace Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WORKSPACE_CONFIGURATION_OPERATION_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectImpl <em>Project</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectImpl
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getProject()
+ * @generated
+ */
+ int PROJECT = 1;
+
+ /**
+ * The feature id for the '<em><b>Configuration</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT__CONFIGURATION = 0;
+
+ /**
+ * The feature id for the '<em><b>Preference Profiles</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT__PREFERENCE_PROFILES = 1;
+
+ /**
+ * The feature id for the '<em><b>Preference Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT__PREFERENCE_NODE = 2;
+
+ /**
+ * The feature id for the '<em><b>Preference Profile References</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT__PREFERENCE_PROFILE_REFERENCES = 3;
+
+ /**
+ * The number of structural features of the '<em>Project</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT_FEATURE_COUNT = 4;
+
+ /**
+ * The number of operations of the '<em>Project</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl <em>Preference Profile</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getPreferenceProfile()
+ * @generated
+ */
+ int PREFERENCE_PROFILE = 2;
+
+ /**
+ * The feature id for the '<em><b>Preference Filters</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_PROFILE__PREFERENCE_FILTERS = 0;
+
+ /**
+ * The feature id for the '<em><b>Referent Projects</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_PROFILE__REFERENT_PROJECTS = 1;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_PROFILE__NAME = 2;
+
+ /**
+ * The feature id for the '<em><b>Project</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_PROFILE__PROJECT = 3;
+
+ /**
+ * The feature id for the '<em><b>Predicates</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_PROFILE__PREDICATES = 4;
+
+ /**
+ * The feature id for the '<em><b>Prerequisites</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_PROFILE__PREREQUISITES = 5;
+
+ /**
+ * The number of structural features of the '<em>Preference Profile</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_PROFILE_FEATURE_COUNT = 6;
+
+ /**
+ * The operation id for the '<em>Requires</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_PROFILE___REQUIRES__PREFERENCEPROFILE = 0;
+
+ /**
+ * The number of operations of the '<em>Preference Profile</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_PROFILE_OPERATION_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceFilterImpl <em>Preference Filter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceFilterImpl
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getPreferenceFilter()
+ * @generated
+ */
+ int PREFERENCE_FILTER = 3;
+
+ /**
+ * The feature id for the '<em><b>Preference Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_FILTER__PREFERENCE_NODE = 0;
+
+ /**
+ * The feature id for the '<em><b>Preference Profile</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_FILTER__PREFERENCE_PROFILE = 1;
+
+ /**
+ * The feature id for the '<em><b>Inclusions</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_FILTER__INCLUSIONS = 2;
+
+ /**
+ * The feature id for the '<em><b>Exclusions</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_FILTER__EXCLUSIONS = 3;
+
+ /**
+ * The number of structural features of the '<em>Preference Filter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_FILTER_FEATURE_COUNT = 4;
+
+ /**
+ * The operation id for the '<em>Matches</em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_FILTER___MATCHES__STRING = 0;
+
+ /**
+ * The number of operations of the '<em>Preference Filter</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCE_FILTER_OPERATION_COUNT = 1;
+
+
+ /**
+ * The meta object id for the '<em>Pattern</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.util.regex.Pattern
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getPattern()
+ * @generated
+ */
+ int PATTERN = 4;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration <em>Workspace Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Workspace Configuration</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration
+ * @generated
+ */
+ EClass getWorkspaceConfiguration();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getProjects <em>Projects</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Projects</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getProjects()
+ * @see #getWorkspaceConfiguration()
+ * @generated
+ */
+ EReference getWorkspaceConfiguration_Projects();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getDefaultPreferenceNode <em>Default Preference Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Default Preference Node</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getDefaultPreferenceNode()
+ * @see #getWorkspaceConfiguration()
+ * @generated
+ */
+ EReference getWorkspaceConfiguration_DefaultPreferenceNode();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getInstancePreferenceNode <em>Instance Preference Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Instance Preference Node</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getInstancePreferenceNode()
+ * @see #getWorkspaceConfiguration()
+ * @generated
+ */
+ EReference getWorkspaceConfiguration_InstancePreferenceNode();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#applyPreferenceProfiles() <em>Apply Preference Profiles</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Apply Preference Profiles</em>' operation.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#applyPreferenceProfiles()
+ * @generated
+ */
+ EOperation getWorkspaceConfiguration__ApplyPreferenceProfiles();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#updatePreferenceProfileReferences() <em>Update Preference Profile References</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Update Preference Profile References</em>' operation.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#updatePreferenceProfileReferences()
+ * @generated
+ */
+ EOperation getWorkspaceConfiguration__UpdatePreferenceProfileReferences();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.projectconfig.Project <em>Project</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Project</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.Project
+ * @generated
+ */
+ EClass getProject();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getConfiguration <em>Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Configuration</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.Project#getConfiguration()
+ * @see #getProject()
+ * @generated
+ */
+ EReference getProject_Configuration();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfiles <em>Preference Profiles</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Preference Profiles</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfiles()
+ * @see #getProject()
+ * @generated
+ */
+ EReference getProject_PreferenceProfiles();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceNode <em>Preference Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Preference Node</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceNode()
+ * @see #getProject()
+ * @generated
+ */
+ EReference getProject_PreferenceNode();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfileReferences <em>Preference Profile References</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Preference Profile References</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.Project#getPreferenceProfileReferences()
+ * @see #getProject()
+ * @generated
+ */
+ EReference getProject_PreferenceProfileReferences();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile <em>Preference Profile</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Preference Profile</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile
+ * @generated
+ */
+ EClass getPreferenceProfile();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPreferenceFilters <em>Preference Filters</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Preference Filters</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPreferenceFilters()
+ * @see #getPreferenceProfile()
+ * @generated
+ */
+ EReference getPreferenceProfile_PreferenceFilters();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getReferentProjects <em>Referent Projects</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Referent Projects</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getReferentProjects()
+ * @see #getPreferenceProfile()
+ * @generated
+ */
+ EReference getPreferenceProfile_ReferentProjects();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getName()
+ * @see #getPreferenceProfile()
+ * @generated
+ */
+ EAttribute getPreferenceProfile_Name();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getProject <em>Project</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Project</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getProject()
+ * @see #getPreferenceProfile()
+ * @generated
+ */
+ EReference getPreferenceProfile_Project();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPredicates <em>Predicates</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Predicates</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPredicates()
+ * @see #getPreferenceProfile()
+ * @generated
+ */
+ EReference getPreferenceProfile_Predicates();
+
+ /**
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPrerequisites <em>Prerequisites</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Prerequisites</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#getPrerequisites()
+ * @see #getPreferenceProfile()
+ * @generated
+ */
+ EReference getPreferenceProfile_Prerequisites();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#requires(org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile) <em>Requires</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Requires</em>' operation.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile#requires(org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile)
+ * @generated
+ */
+ EOperation getPreferenceProfile__Requires__PreferenceProfile();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter <em>Preference Filter</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Preference Filter</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter
+ * @generated
+ */
+ EClass getPreferenceFilter();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceNode <em>Preference Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference '<em>Preference Node</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceNode()
+ * @see #getPreferenceFilter()
+ * @generated
+ */
+ EReference getPreferenceFilter_PreferenceNode();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceProfile <em>Preference Profile</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Preference Profile</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getPreferenceProfile()
+ * @see #getPreferenceFilter()
+ * @generated
+ */
+ EReference getPreferenceFilter_PreferenceProfile();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getInclusions <em>Inclusions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Inclusions</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getInclusions()
+ * @see #getPreferenceFilter()
+ * @generated
+ */
+ EAttribute getPreferenceFilter_Inclusions();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getExclusions <em>Exclusions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Exclusions</em>'.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#getExclusions()
+ * @see #getPreferenceFilter()
+ * @generated
+ */
+ EAttribute getPreferenceFilter_Exclusions();
+
+ /**
+ * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#matches(java.lang.String) <em>Matches</em>}' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the '<em>Matches</em>' operation.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter#matches(java.lang.String)
+ * @generated
+ */
+ EOperation getPreferenceFilter__Matches__String();
+
+ /**
+ * Returns the meta object for data type '{@link java.util.regex.Pattern <em>Pattern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Pattern</em>'.
+ * @see java.util.regex.Pattern
+ * @model instanceClass="java.util.regex.Pattern"
+ * @generated
+ */
+ EDataType getPattern();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ ProjectConfigFactory getProjectConfigFactory();
+
+ /**
+ * <!-- begin-user-doc -->
+ * Defines literals for the meta objects that represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each operation of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ interface Literals
+ {
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.projectconfig.impl.WorkspaceConfigurationImpl <em>Workspace Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.WorkspaceConfigurationImpl
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getWorkspaceConfiguration()
+ * @generated
+ */
+ EClass WORKSPACE_CONFIGURATION = eINSTANCE.getWorkspaceConfiguration();
+
+ /**
+ * The meta object literal for the '<em><b>Projects</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference WORKSPACE_CONFIGURATION__PROJECTS = eINSTANCE.getWorkspaceConfiguration_Projects();
+
+ /**
+ * The meta object literal for the '<em><b>Default Preference Node</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE = eINSTANCE.getWorkspaceConfiguration_DefaultPreferenceNode();
+
+ /**
+ * The meta object literal for the '<em><b>Instance Preference Node</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE = eINSTANCE.getWorkspaceConfiguration_InstancePreferenceNode();
+
+ /**
+ * The meta object literal for the '<em><b>Apply Preference Profiles</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation WORKSPACE_CONFIGURATION___APPLY_PREFERENCE_PROFILES = eINSTANCE.getWorkspaceConfiguration__ApplyPreferenceProfiles();
+
+ /**
+ * The meta object literal for the '<em><b>Update Preference Profile References</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation WORKSPACE_CONFIGURATION___UPDATE_PREFERENCE_PROFILE_REFERENCES = eINSTANCE.getWorkspaceConfiguration__UpdatePreferenceProfileReferences();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectImpl <em>Project</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectImpl
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getProject()
+ * @generated
+ */
+ EClass PROJECT = eINSTANCE.getProject();
+
+ /**
+ * The meta object literal for the '<em><b>Configuration</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROJECT__CONFIGURATION = eINSTANCE.getProject_Configuration();
+
+ /**
+ * The meta object literal for the '<em><b>Preference Profiles</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROJECT__PREFERENCE_PROFILES = eINSTANCE.getProject_PreferenceProfiles();
+
+ /**
+ * The meta object literal for the '<em><b>Preference Node</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROJECT__PREFERENCE_NODE = eINSTANCE.getProject_PreferenceNode();
+
+ /**
+ * The meta object literal for the '<em><b>Preference Profile References</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PROJECT__PREFERENCE_PROFILE_REFERENCES = eINSTANCE.getProject_PreferenceProfileReferences();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl <em>Preference Profile</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getPreferenceProfile()
+ * @generated
+ */
+ EClass PREFERENCE_PROFILE = eINSTANCE.getPreferenceProfile();
+
+ /**
+ * The meta object literal for the '<em><b>Preference Filters</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PREFERENCE_PROFILE__PREFERENCE_FILTERS = eINSTANCE.getPreferenceProfile_PreferenceFilters();
+
+ /**
+ * The meta object literal for the '<em><b>Referent Projects</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PREFERENCE_PROFILE__REFERENT_PROJECTS = eINSTANCE.getPreferenceProfile_ReferentProjects();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PREFERENCE_PROFILE__NAME = eINSTANCE.getPreferenceProfile_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Project</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PREFERENCE_PROFILE__PROJECT = eINSTANCE.getPreferenceProfile_Project();
+
+ /**
+ * The meta object literal for the '<em><b>Predicates</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PREFERENCE_PROFILE__PREDICATES = eINSTANCE.getPreferenceProfile_Predicates();
+
+ /**
+ * The meta object literal for the '<em><b>Prerequisites</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PREFERENCE_PROFILE__PREREQUISITES = eINSTANCE.getPreferenceProfile_Prerequisites();
+
+ /**
+ * The meta object literal for the '<em><b>Requires</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation PREFERENCE_PROFILE___REQUIRES__PREFERENCEPROFILE = eINSTANCE.getPreferenceProfile__Requires__PreferenceProfile();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceFilterImpl <em>Preference Filter</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceFilterImpl
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getPreferenceFilter()
+ * @generated
+ */
+ EClass PREFERENCE_FILTER = eINSTANCE.getPreferenceFilter();
+
+ /**
+ * The meta object literal for the '<em><b>Preference Node</b></em>' reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PREFERENCE_FILTER__PREFERENCE_NODE = eINSTANCE.getPreferenceFilter_PreferenceNode();
+
+ /**
+ * The meta object literal for the '<em><b>Preference Profile</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference PREFERENCE_FILTER__PREFERENCE_PROFILE = eINSTANCE.getPreferenceFilter_PreferenceProfile();
+
+ /**
+ * The meta object literal for the '<em><b>Inclusions</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PREFERENCE_FILTER__INCLUSIONS = eINSTANCE.getPreferenceFilter_Inclusions();
+
+ /**
+ * The meta object literal for the '<em><b>Exclusions</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute PREFERENCE_FILTER__EXCLUSIONS = eINSTANCE.getPreferenceFilter_Exclusions();
+
+ /**
+ * The meta object literal for the '<em><b>Matches</b></em>' operation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EOperation PREFERENCE_FILTER___MATCHES__STRING = eINSTANCE.getPreferenceFilter__Matches__String();
+
+ /**
+ * The meta object literal for the '<em>Pattern</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.util.regex.Pattern
+ * @see org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPackageImpl#getPattern()
+ * @generated
+ */
+ EDataType PATTERN = eINSTANCE.getPattern();
+
+ }
+
+} //ProjectConfigPackage
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/WorkspaceConfiguration.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/WorkspaceConfiguration.java
new file mode 100644
index 0000000000..f473506672
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/WorkspaceConfiguration.java
@@ -0,0 +1,117 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Workspace Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getProjects <em>Projects</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getDefaultPreferenceNode <em>Default Preference Node</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getInstancePreferenceNode <em>Instance Preference Node</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getWorkspaceConfiguration()
+ * @model
+ * @generated
+ */
+public interface WorkspaceConfiguration extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Projects</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.projectconfig.Project}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.projectconfig.Project#getConfiguration <em>Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Projects</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Projects</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getWorkspaceConfiguration_Projects()
+ * @see org.eclipse.emf.cdo.releng.projectconfig.Project#getConfiguration
+ * @model opposite="configuration" containment="true"
+ * @generated
+ */
+ EList<Project> getProjects();
+
+ /**
+ * Returns the value of the '<em><b>Default Preference Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Default Preference Node</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Default Preference Node</em>' reference.
+ * @see #setDefaultPreferenceNode(PreferenceNode)
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getWorkspaceConfiguration_DefaultPreferenceNode()
+ * @model required="true"
+ * @generated
+ */
+ PreferenceNode getDefaultPreferenceNode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getDefaultPreferenceNode <em>Default Preference Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Default Preference Node</em>' reference.
+ * @see #getDefaultPreferenceNode()
+ * @generated
+ */
+ void setDefaultPreferenceNode(PreferenceNode value);
+
+ /**
+ * Returns the value of the '<em><b>Instance Preference Node</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Instance Preference Node</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Instance Preference Node</em>' reference.
+ * @see #setInstancePreferenceNode(PreferenceNode)
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#getWorkspaceConfiguration_InstancePreferenceNode()
+ * @model required="true"
+ * @generated
+ */
+ PreferenceNode getInstancePreferenceNode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration#getInstancePreferenceNode <em>Instance Preference Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Instance Preference Node</em>' reference.
+ * @see #getInstancePreferenceNode()
+ * @generated
+ */
+ void setInstancePreferenceNode(PreferenceNode value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void applyPreferenceProfiles();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ void updatePreferenceProfileReferences();
+
+} // WorkspaceConfiguration
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceFilterImpl.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceFilterImpl.java
new file mode 100644
index 0000000000..f147be70e8
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceFilterImpl.java
@@ -0,0 +1,438 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.impl;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigFactory;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.regex.Pattern;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Preference Filter</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceFilterImpl#getPreferenceNode <em>Preference Node</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceFilterImpl#getPreferenceProfile <em>Preference Profile</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceFilterImpl#getInclusions <em>Inclusions</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceFilterImpl#getExclusions <em>Exclusions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PreferenceFilterImpl extends MinimalEObjectImpl.Container implements PreferenceFilter
+{
+ /**
+ * The cached value of the '{@link #getPreferenceNode() <em>Preference Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPreferenceNode()
+ * @generated
+ * @ordered
+ */
+ protected PreferenceNode preferenceNode;
+
+ /**
+ * The default value of the '{@link #getInclusions() <em>Inclusions</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInclusions()
+ * @generated
+ * @ordered
+ */
+ protected static final Pattern INCLUSIONS_EDEFAULT = (Pattern)ProjectConfigFactory.eINSTANCE.createFromString(ProjectConfigPackage.eINSTANCE.getPattern(), ".*");
+
+ /**
+ * The cached value of the '{@link #getInclusions() <em>Inclusions</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInclusions()
+ * @generated
+ * @ordered
+ */
+ protected Pattern inclusions = INCLUSIONS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getExclusions() <em>Exclusions</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExclusions()
+ * @generated
+ * @ordered
+ */
+ protected static final Pattern EXCLUSIONS_EDEFAULT = (Pattern)ProjectConfigFactory.eINSTANCE.createFromString(ProjectConfigPackage.eINSTANCE.getPattern(), "");
+
+ /**
+ * The cached value of the '{@link #getExclusions() <em>Exclusions</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExclusions()
+ * @generated
+ * @ordered
+ */
+ protected Pattern exclusions = EXCLUSIONS_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PreferenceFilterImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ProjectConfigPackage.Literals.PREFERENCE_FILTER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceNode getPreferenceNode()
+ {
+ if (preferenceNode != null && preferenceNode.eIsProxy())
+ {
+ InternalEObject oldPreferenceNode = (InternalEObject)preferenceNode;
+ preferenceNode = (PreferenceNode)eResolveProxy(oldPreferenceNode);
+ if (preferenceNode != oldPreferenceNode)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_NODE, oldPreferenceNode, preferenceNode));
+ }
+ }
+ return preferenceNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceNode basicGetPreferenceNode()
+ {
+ return preferenceNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPreferenceNode(PreferenceNode newPreferenceNode)
+ {
+ PreferenceNode oldPreferenceNode = preferenceNode;
+ preferenceNode = newPreferenceNode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_NODE, oldPreferenceNode, preferenceNode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceProfile getPreferenceProfile()
+ {
+ if (eContainerFeatureID() != ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE) return null;
+ return (PreferenceProfile)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetPreferenceProfile(PreferenceProfile newPreferenceProfile, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newPreferenceProfile, ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPreferenceProfile(PreferenceProfile newPreferenceProfile)
+ {
+ if (newPreferenceProfile != eInternalContainer() || (eContainerFeatureID() != ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE && newPreferenceProfile != null))
+ {
+ if (EcoreUtil.isAncestor(this, newPreferenceProfile))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newPreferenceProfile != null)
+ msgs = ((InternalEObject)newPreferenceProfile).eInverseAdd(this, ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS, PreferenceProfile.class, msgs);
+ msgs = basicSetPreferenceProfile(newPreferenceProfile, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE, newPreferenceProfile, newPreferenceProfile));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Pattern getInclusions()
+ {
+ return inclusions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInclusions(Pattern newInclusions)
+ {
+ Pattern oldInclusions = inclusions;
+ inclusions = newInclusions;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PREFERENCE_FILTER__INCLUSIONS, oldInclusions, inclusions));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Pattern getExclusions()
+ {
+ return exclusions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExclusions(Pattern newExclusions)
+ {
+ Pattern oldExclusions = exclusions;
+ exclusions = newExclusions;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PREFERENCE_FILTER__EXCLUSIONS, oldExclusions, exclusions));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean matches(String value)
+ {
+ return getInclusions().matcher(value).matches() && !getExclusions().matcher(value).matches();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetPreferenceProfile((PreferenceProfile)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE:
+ return basicSetPreferenceProfile(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
+ {
+ switch (eContainerFeatureID())
+ {
+ case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE:
+ return eInternalContainer().eInverseRemove(this, ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS, PreferenceProfile.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_NODE:
+ if (resolve) return getPreferenceNode();
+ return basicGetPreferenceNode();
+ case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE:
+ return getPreferenceProfile();
+ case ProjectConfigPackage.PREFERENCE_FILTER__INCLUSIONS:
+ return getInclusions();
+ case ProjectConfigPackage.PREFERENCE_FILTER__EXCLUSIONS:
+ return getExclusions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_NODE:
+ setPreferenceNode((PreferenceNode)newValue);
+ return;
+ case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE:
+ setPreferenceProfile((PreferenceProfile)newValue);
+ return;
+ case ProjectConfigPackage.PREFERENCE_FILTER__INCLUSIONS:
+ setInclusions((Pattern)newValue);
+ return;
+ case ProjectConfigPackage.PREFERENCE_FILTER__EXCLUSIONS:
+ setExclusions((Pattern)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_NODE:
+ setPreferenceNode((PreferenceNode)null);
+ return;
+ case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE:
+ setPreferenceProfile((PreferenceProfile)null);
+ return;
+ case ProjectConfigPackage.PREFERENCE_FILTER__INCLUSIONS:
+ setInclusions(INCLUSIONS_EDEFAULT);
+ return;
+ case ProjectConfigPackage.PREFERENCE_FILTER__EXCLUSIONS:
+ setExclusions(EXCLUSIONS_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_NODE:
+ return preferenceNode != null;
+ case ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE:
+ return getPreferenceProfile() != null;
+ case ProjectConfigPackage.PREFERENCE_FILTER__INCLUSIONS:
+ return INCLUSIONS_EDEFAULT == null ? inclusions != null : !INCLUSIONS_EDEFAULT.equals(inclusions);
+ case ProjectConfigPackage.PREFERENCE_FILTER__EXCLUSIONS:
+ return EXCLUSIONS_EDEFAULT == null ? exclusions != null : !EXCLUSIONS_EDEFAULT.equals(exclusions);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case ProjectConfigPackage.PREFERENCE_FILTER___MATCHES__STRING:
+ return matches((String)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (inclusions: ");
+ result.append(inclusions);
+ result.append(", exclusions: ");
+ result.append(exclusions);
+ result.append(')');
+ return result.toString();
+ }
+
+} // PreferenceFilterImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceProfileImpl.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceProfileImpl.java
new file mode 100644
index 0000000000..ea07f383be
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/PreferenceProfileImpl.java
@@ -0,0 +1,498 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.Predicate;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile;
+import org.eclipse.emf.cdo.releng.projectconfig.Project;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Preference Profile</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getPreferenceFilters <em>Preference Filters</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getReferentProjects <em>Referent Projects</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getProject <em>Project</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getPredicates <em>Predicates</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.PreferenceProfileImpl#getPrerequisites <em>Prerequisites</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PreferenceProfileImpl extends MinimalEObjectImpl.Container implements PreferenceProfile
+{
+ /**
+ * The cached value of the '{@link #getPreferenceFilters() <em>Preference Filters</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPreferenceFilters()
+ * @generated
+ * @ordered
+ */
+ protected EList<PreferenceFilter> preferenceFilters;
+
+ /**
+ * The cached value of the '{@link #getReferentProjects() <em>Referent Projects</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReferentProjects()
+ * @generated
+ * @ordered
+ */
+ protected EList<Project> referentProjects;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getPredicates() <em>Predicates</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPredicates()
+ * @generated
+ * @ordered
+ */
+ protected EList<Predicate> predicates;
+
+ /**
+ * The cached value of the '{@link #getPrerequisites() <em>Prerequisites</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPrerequisites()
+ * @generated
+ * @ordered
+ */
+ protected EList<PreferenceProfile> prerequisites;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PreferenceProfileImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ProjectConfigPackage.Literals.PREFERENCE_PROFILE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<PreferenceFilter> getPreferenceFilters()
+ {
+ if (preferenceFilters == null)
+ {
+ preferenceFilters = new EObjectContainmentWithInverseEList<PreferenceFilter>(PreferenceFilter.class, this, ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS, ProjectConfigPackage.PREFERENCE_FILTER__PREFERENCE_PROFILE);
+ }
+ return preferenceFilters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Project> getReferentProjects()
+ {
+ if (referentProjects == null)
+ {
+ referentProjects = new EObjectWithInverseResolvingEList.ManyInverse<Project>(Project.class, this, ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS, ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES);
+ }
+ return referentProjects;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PREFERENCE_PROFILE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Project getProject()
+ {
+ if (eContainerFeatureID() != ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT) return null;
+ return (Project)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetProject(Project newProject, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newProject, ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProject(Project newProject)
+ {
+ if (newProject != eInternalContainer() || (eContainerFeatureID() != ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT && newProject != null))
+ {
+ if (EcoreUtil.isAncestor(this, newProject))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newProject != null)
+ msgs = ((InternalEObject)newProject).eInverseAdd(this, ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES, Project.class, msgs);
+ msgs = basicSetProject(newProject, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT, newProject, newProject));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Predicate> getPredicates()
+ {
+ if (predicates == null)
+ {
+ predicates = new EObjectContainmentEList<Predicate>(Predicate.class, this, ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES);
+ }
+ return predicates;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<PreferenceProfile> getPrerequisites()
+ {
+ if (prerequisites == null)
+ {
+ prerequisites = new EObjectResolvingEList<PreferenceProfile>(PreferenceProfile.class, this, ProjectConfigPackage.PREFERENCE_PROFILE__PREREQUISITES);
+ }
+ return prerequisites;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean requires(PreferenceProfile preferenceProfile)
+ {
+ return requires(new HashSet<PreferenceProfile>(), getPrerequisites(), preferenceProfile);
+ }
+
+ private boolean requires(Set<PreferenceProfile> visited, List<PreferenceProfile> preferenceProfiles,
+ PreferenceProfile preferenceProfile)
+ {
+ for (PreferenceProfile requiredPreferenceProfile : preferenceProfiles)
+ {
+ if (requiredPreferenceProfile == preferenceProfile)
+ {
+ return true;
+ }
+ if (visited.add(requiredPreferenceProfile))
+ {
+ requires(visited, requiredPreferenceProfile.getPrerequisites(), requiredPreferenceProfile);
+ }
+ }
+ return false;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getPreferenceFilters()).basicAdd(otherEnd, msgs);
+ case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getReferentProjects()).basicAdd(otherEnd, msgs);
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetProject((Project)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS:
+ return ((InternalEList<?>)getPreferenceFilters()).basicRemove(otherEnd, msgs);
+ case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS:
+ return ((InternalEList<?>)getReferentProjects()).basicRemove(otherEnd, msgs);
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT:
+ return basicSetProject(null, msgs);
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES:
+ return ((InternalEList<?>)getPredicates()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
+ {
+ switch (eContainerFeatureID())
+ {
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT:
+ return eInternalContainer().eInverseRemove(this, ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES, Project.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS:
+ return getPreferenceFilters();
+ case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS:
+ return getReferentProjects();
+ case ProjectConfigPackage.PREFERENCE_PROFILE__NAME:
+ return getName();
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT:
+ return getProject();
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES:
+ return getPredicates();
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREREQUISITES:
+ return getPrerequisites();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS:
+ getPreferenceFilters().clear();
+ getPreferenceFilters().addAll((Collection<? extends PreferenceFilter>)newValue);
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS:
+ getReferentProjects().clear();
+ getReferentProjects().addAll((Collection<? extends Project>)newValue);
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__NAME:
+ setName((String)newValue);
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT:
+ setProject((Project)newValue);
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES:
+ getPredicates().clear();
+ getPredicates().addAll((Collection<? extends Predicate>)newValue);
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREREQUISITES:
+ getPrerequisites().clear();
+ getPrerequisites().addAll((Collection<? extends PreferenceProfile>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS:
+ getPreferenceFilters().clear();
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS:
+ getReferentProjects().clear();
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT:
+ setProject((Project)null);
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES:
+ getPredicates().clear();
+ return;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREREQUISITES:
+ getPrerequisites().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREFERENCE_FILTERS:
+ return preferenceFilters != null && !preferenceFilters.isEmpty();
+ case ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS:
+ return referentProjects != null && !referentProjects.isEmpty();
+ case ProjectConfigPackage.PREFERENCE_PROFILE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT:
+ return getProject() != null;
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREDICATES:
+ return predicates != null && !predicates.isEmpty();
+ case ProjectConfigPackage.PREFERENCE_PROFILE__PREREQUISITES:
+ return prerequisites != null && !prerequisites.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case ProjectConfigPackage.PREFERENCE_PROFILE___REQUIRES__PREFERENCEPROFILE:
+ return requires((PreferenceProfile)arguments.get(0));
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+} // PreferenceProfileImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigFactoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigFactoryImpl.java
new file mode 100644
index 0000000000..c5d526c2bb
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigFactoryImpl.java
@@ -0,0 +1,200 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.impl;
+
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile;
+import org.eclipse.emf.cdo.releng.projectconfig.Project;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigFactory;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage;
+import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import java.util.regex.Pattern;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ProjectConfigFactoryImpl extends EFactoryImpl implements ProjectConfigFactory
+{
+ /**
+ * Creates the default factory implementation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static ProjectConfigFactory init()
+ {
+ try
+ {
+ ProjectConfigFactory theProjectConfigFactory = (ProjectConfigFactory)EPackage.Registry.INSTANCE.getEFactory(ProjectConfigPackage.eNS_URI);
+ if (theProjectConfigFactory != null)
+ {
+ return theProjectConfigFactory;
+ }
+ }
+ catch (Exception exception)
+ {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new ProjectConfigFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProjectConfigFactoryImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass)
+ {
+ switch (eClass.getClassifierID())
+ {
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION: return createWorkspaceConfiguration();
+ case ProjectConfigPackage.PROJECT: return createProject();
+ case ProjectConfigPackage.PREFERENCE_PROFILE: return createPreferenceProfile();
+ case ProjectConfigPackage.PREFERENCE_FILTER: return createPreferenceFilter();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case ProjectConfigPackage.PATTERN:
+ return createPatternFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue)
+ {
+ switch (eDataType.getClassifierID())
+ {
+ case ProjectConfigPackage.PATTERN:
+ return convertPatternToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WorkspaceConfiguration createWorkspaceConfiguration()
+ {
+ WorkspaceConfigurationImpl workspaceConfiguration = new WorkspaceConfigurationImpl();
+ return workspaceConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Project createProject()
+ {
+ ProjectImpl project = new ProjectImpl();
+ return project;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceProfile createPreferenceProfile()
+ {
+ PreferenceProfileImpl preferenceProfile = new PreferenceProfileImpl();
+ return preferenceProfile;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceFilter createPreferenceFilter()
+ {
+ PreferenceFilterImpl preferenceFilter = new PreferenceFilterImpl();
+ return preferenceFilter;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Pattern createPatternFromString(EDataType eDataType, String initialValue)
+ {
+ return initialValue == null ? null : Pattern.compile(initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertPatternToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProjectConfigPackage getProjectConfigPackage()
+ {
+ return (ProjectConfigPackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static ProjectConfigPackage getPackage()
+ {
+ return ProjectConfigPackage.eINSTANCE;
+ }
+
+} // ProjectConfigFactoryImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigPackageImpl.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigPackageImpl.java
new file mode 100644
index 0000000000..d2139a7f74
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigPackageImpl.java
@@ -0,0 +1,567 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.impl;
+
+import java.util.regex.Pattern;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
+import org.eclipse.emf.cdo.releng.preferences.PreferencesPackage;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile;
+import org.eclipse.emf.cdo.releng.projectconfig.Project;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigFactory;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage;
+import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration;
+import org.eclipse.emf.cdo.releng.projectconfig.util.ProjectConfigValidator;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EOperation;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EValidator;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ProjectConfigPackageImpl extends EPackageImpl implements ProjectConfigPackage
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass workspaceConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass projectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass preferenceProfileEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass preferenceFilterEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType patternEDataType = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ProjectConfigPackageImpl()
+ {
+ super(eNS_URI, ProjectConfigFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
+ *
+ * <p>This method is used to initialize {@link ProjectConfigPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static ProjectConfigPackage init()
+ {
+ if (isInited) return (ProjectConfigPackage)EPackage.Registry.INSTANCE.getEPackage(ProjectConfigPackage.eNS_URI);
+
+ // Obtain or create and register package
+ ProjectConfigPackageImpl theProjectConfigPackage = (ProjectConfigPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ProjectConfigPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ProjectConfigPackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ PredicatesPackage.eINSTANCE.eClass();
+ PreferencesPackage.eINSTANCE.eClass();
+
+ // Create package meta-data objects
+ theProjectConfigPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theProjectConfigPackage.initializePackageContents();
+
+ // Register package validator
+ EValidator.Registry.INSTANCE.put
+ (theProjectConfigPackage,
+ new EValidator.Descriptor()
+ {
+ public EValidator getEValidator()
+ {
+ return ProjectConfigValidator.INSTANCE;
+ }
+ });
+
+ // Mark meta-data to indicate it can't be changed
+ theProjectConfigPackage.freeze();
+
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(ProjectConfigPackage.eNS_URI, theProjectConfigPackage);
+ return theProjectConfigPackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getWorkspaceConfiguration()
+ {
+ return workspaceConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getWorkspaceConfiguration_Projects()
+ {
+ return (EReference)workspaceConfigurationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getWorkspaceConfiguration_DefaultPreferenceNode()
+ {
+ return (EReference)workspaceConfigurationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getWorkspaceConfiguration_InstancePreferenceNode()
+ {
+ return (EReference)workspaceConfigurationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getWorkspaceConfiguration__ApplyPreferenceProfiles()
+ {
+ return workspaceConfigurationEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getWorkspaceConfiguration__UpdatePreferenceProfileReferences()
+ {
+ return workspaceConfigurationEClass.getEOperations().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProject()
+ {
+ return projectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProject_Configuration()
+ {
+ return (EReference)projectEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProject_PreferenceProfiles()
+ {
+ return (EReference)projectEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProject_PreferenceNode()
+ {
+ return (EReference)projectEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getProject_PreferenceProfileReferences()
+ {
+ return (EReference)projectEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPreferenceProfile()
+ {
+ return preferenceProfileEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPreferenceProfile_PreferenceFilters()
+ {
+ return (EReference)preferenceProfileEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPreferenceProfile_ReferentProjects()
+ {
+ return (EReference)preferenceProfileEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPreferenceProfile_Name()
+ {
+ return (EAttribute)preferenceProfileEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPreferenceProfile_Project()
+ {
+ return (EReference)preferenceProfileEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPreferenceProfile_Predicates()
+ {
+ return (EReference)preferenceProfileEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPreferenceProfile_Prerequisites()
+ {
+ return (EReference)preferenceProfileEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getPreferenceProfile__Requires__PreferenceProfile()
+ {
+ return preferenceProfileEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPreferenceFilter()
+ {
+ return preferenceFilterEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPreferenceFilter_PreferenceNode()
+ {
+ return (EReference)preferenceFilterEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPreferenceFilter_PreferenceProfile()
+ {
+ return (EReference)preferenceFilterEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPreferenceFilter_Inclusions()
+ {
+ return (EAttribute)preferenceFilterEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPreferenceFilter_Exclusions()
+ {
+ return (EAttribute)preferenceFilterEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EOperation getPreferenceFilter__Matches__String()
+ {
+ return preferenceFilterEClass.getEOperations().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EDataType getPattern()
+ {
+ return patternEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProjectConfigFactory getProjectConfigFactory()
+ {
+ return (ProjectConfigFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents()
+ {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ workspaceConfigurationEClass = createEClass(WORKSPACE_CONFIGURATION);
+ createEReference(workspaceConfigurationEClass, WORKSPACE_CONFIGURATION__PROJECTS);
+ createEReference(workspaceConfigurationEClass, WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE);
+ createEReference(workspaceConfigurationEClass, WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE);
+ createEOperation(workspaceConfigurationEClass, WORKSPACE_CONFIGURATION___APPLY_PREFERENCE_PROFILES);
+ createEOperation(workspaceConfigurationEClass, WORKSPACE_CONFIGURATION___UPDATE_PREFERENCE_PROFILE_REFERENCES);
+
+ projectEClass = createEClass(PROJECT);
+ createEReference(projectEClass, PROJECT__CONFIGURATION);
+ createEReference(projectEClass, PROJECT__PREFERENCE_PROFILES);
+ createEReference(projectEClass, PROJECT__PREFERENCE_NODE);
+ createEReference(projectEClass, PROJECT__PREFERENCE_PROFILE_REFERENCES);
+
+ preferenceProfileEClass = createEClass(PREFERENCE_PROFILE);
+ createEReference(preferenceProfileEClass, PREFERENCE_PROFILE__PREFERENCE_FILTERS);
+ createEReference(preferenceProfileEClass, PREFERENCE_PROFILE__REFERENT_PROJECTS);
+ createEAttribute(preferenceProfileEClass, PREFERENCE_PROFILE__NAME);
+ createEReference(preferenceProfileEClass, PREFERENCE_PROFILE__PROJECT);
+ createEReference(preferenceProfileEClass, PREFERENCE_PROFILE__PREDICATES);
+ createEReference(preferenceProfileEClass, PREFERENCE_PROFILE__PREREQUISITES);
+ createEOperation(preferenceProfileEClass, PREFERENCE_PROFILE___REQUIRES__PREFERENCEPROFILE);
+
+ preferenceFilterEClass = createEClass(PREFERENCE_FILTER);
+ createEReference(preferenceFilterEClass, PREFERENCE_FILTER__PREFERENCE_NODE);
+ createEReference(preferenceFilterEClass, PREFERENCE_FILTER__PREFERENCE_PROFILE);
+ createEAttribute(preferenceFilterEClass, PREFERENCE_FILTER__INCLUSIONS);
+ createEAttribute(preferenceFilterEClass, PREFERENCE_FILTER__EXCLUSIONS);
+ createEOperation(preferenceFilterEClass, PREFERENCE_FILTER___MATCHES__STRING);
+
+ // Create data types
+ patternEDataType = createEDataType(PATTERN);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents()
+ {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ PreferencesPackage thePreferencesPackage = (PreferencesPackage)EPackage.Registry.INSTANCE.getEPackage(PreferencesPackage.eNS_URI);
+ PredicatesPackage thePredicatesPackage = (PredicatesPackage)EPackage.Registry.INSTANCE.getEPackage(PredicatesPackage.eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(workspaceConfigurationEClass, WorkspaceConfiguration.class, "WorkspaceConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getWorkspaceConfiguration_Projects(), this.getProject(), this.getProject_Configuration(), "projects", null, 0, -1, WorkspaceConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getWorkspaceConfiguration_DefaultPreferenceNode(), thePreferencesPackage.getPreferenceNode(), null, "defaultPreferenceNode", null, 1, 1, WorkspaceConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getWorkspaceConfiguration_InstancePreferenceNode(), thePreferencesPackage.getPreferenceNode(), null, "instancePreferenceNode", null, 1, 1, WorkspaceConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEOperation(getWorkspaceConfiguration__ApplyPreferenceProfiles(), null, "applyPreferenceProfiles", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEOperation(getWorkspaceConfiguration__UpdatePreferenceProfileReferences(), null, "updatePreferenceProfileReferences", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(projectEClass, Project.class, "Project", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getProject_Configuration(), this.getWorkspaceConfiguration(), this.getWorkspaceConfiguration_Projects(), "configuration", null, 1, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getProject_PreferenceProfiles(), this.getPreferenceProfile(), this.getPreferenceProfile_Project(), "preferenceProfiles", null, 0, -1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getProject_PreferenceNode(), thePreferencesPackage.getPreferenceNode(), null, "preferenceNode", null, 1, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getProject_PreferenceProfileReferences(), this.getPreferenceProfile(), this.getPreferenceProfile_ReferentProjects(), "preferenceProfileReferences", null, 0, -1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(preferenceProfileEClass, PreferenceProfile.class, "PreferenceProfile", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getPreferenceProfile_PreferenceFilters(), this.getPreferenceFilter(), this.getPreferenceFilter_PreferenceProfile(), "preferenceFilters", null, 0, -1, PreferenceProfile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPreferenceProfile_ReferentProjects(), this.getProject(), this.getProject_PreferenceProfileReferences(), "referentProjects", null, 0, -1, PreferenceProfile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getPreferenceProfile_Name(), ecorePackage.getEString(), "name", null, 1, 1, PreferenceProfile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPreferenceProfile_Project(), this.getProject(), this.getProject_PreferenceProfiles(), "project", null, 0, 1, PreferenceProfile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPreferenceProfile_Predicates(), thePredicatesPackage.getPredicate(), null, "predicates", null, 0, -1, PreferenceProfile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPreferenceProfile_Prerequisites(), this.getPreferenceProfile(), null, "prerequisites", null, 0, -1, PreferenceProfile.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ EOperation op = initEOperation(getPreferenceProfile__Requires__PreferenceProfile(), ecorePackage.getEBoolean(), "requires", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getPreferenceProfile(), "preferenceProfile", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(preferenceFilterEClass, PreferenceFilter.class, "PreferenceFilter", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getPreferenceFilter_PreferenceNode(), thePreferencesPackage.getPreferenceNode(), null, "preferenceNode", null, 1, 1, PreferenceFilter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPreferenceFilter_PreferenceProfile(), this.getPreferenceProfile(), this.getPreferenceProfile_PreferenceFilters(), "preferenceProfile", null, 1, 1, PreferenceFilter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getPreferenceFilter_Inclusions(), this.getPattern(), "inclusions", ".*", 1, 1, PreferenceFilter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getPreferenceFilter_Exclusions(), this.getPattern(), "exclusions", "", 1, 1, PreferenceFilter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ op = initEOperation(getPreferenceFilter__Matches__String(), ecorePackage.getEBoolean(), "matches", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEString(), "value", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ // Initialize data types
+ initEDataType(patternEDataType, Pattern.class, "Pattern", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http://www.eclipse.org/emf/2002/Ecore
+ createEcoreAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/Ecore</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createEcoreAnnotations()
+ {
+ String source = "http://www.eclipse.org/emf/2002/Ecore";
+ addAnnotation
+ (projectEClass,
+ source,
+ new String[]
+ {
+ "constraints", "AllPreferencesManaged"
+ });
+ }
+
+} //ProjectConfigPackageImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigPlugin.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigPlugin.java
new file mode 100644
index 0000000000..2c9f0706cf
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigPlugin.java
@@ -0,0 +1,93 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.impl;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Project Config model plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class ProjectConfigPlugin extends EMFPlugin
+{
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final ProjectConfigPlugin INSTANCE = new ProjectConfigPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProjectConfigPlugin()
+ {
+ super(new ResourceLocator [] {});
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator()
+ {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin()
+ {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipsePlugin
+ {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation()
+ {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigURIHandlerImpl.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigURIHandlerImpl.java
new file mode 100644
index 0000000000..e942706a49
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectConfigURIHandlerImpl.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.impl;
+
+import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration;
+import org.eclipse.emf.cdo.releng.projectconfig.util.ProjectConfigUtil;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.URIConverter;
+import org.eclipse.emf.ecore.resource.impl.URIHandlerImpl;
+
+import org.osgi.service.prefs.BackingStoreException;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.Collections;
+import java.util.Map;
+
+/**
+ * @author Eike Stepper
+ */
+public class ProjectConfigURIHandlerImpl extends URIHandlerImpl
+{
+ @Override
+ public boolean canHandle(URI uri)
+ {
+ return ProjectConfigUtil.PROJECT_CONFIG_SCHEME.equals(uri.scheme());
+ }
+
+ @Override
+ public InputStream createInputStream(URI uri, final Map<?, ?> options) throws IOException
+ {
+ if (uri.segmentCount() == 1)
+ {
+ class ProjectConfigInput extends InputStream implements URIConverter.Loadable
+ {
+ private InputStream in;
+
+ public void loadResource(Resource resource) throws IOException
+ {
+ resource.getContents().addAll(ProjectConfigUtil.getWorkspaceConfiguration().eResource().getContents());
+ }
+
+ @Override
+ public int read() throws IOException
+ {
+ if (in == null)
+ {
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ ProjectConfigUtil.getWorkspaceConfiguration().eResource().save(out, null);
+ in = new ByteArrayInputStream(out.toByteArray());
+ }
+ return in.read();
+ }
+ }
+
+ return new ProjectConfigInput();
+ }
+ throw new IOException("No preference value available for ");
+ }
+
+ @Override
+ public OutputStream createOutputStream(URI uri, Map<?, ?> options) throws IOException
+ {
+ if (uri.segmentCount() == 1)
+ {
+ class ProjectConfigOutput extends OutputStream implements URIConverter.Saveable
+ {
+ public void saveResource(Resource resource) throws IOException
+ {
+ try
+ {
+ ProjectConfigUtil.saveWorkspaceConfiguration((WorkspaceConfiguration)resource.getContents().get(0));
+ }
+ catch (BackingStoreException ex)
+ {
+ throw new IOException(ex);
+ }
+ }
+
+ @Override
+ public void write(int b) throws IOException
+ {
+ throw new IOException("Write not supported");
+ }
+ }
+
+ return new ProjectConfigOutput();
+ }
+ throw new IOException("Output not supported");
+ }
+
+ @Override
+ public void delete(URI uri, Map<?, ?> options) throws IOException
+ {
+ throw new IOException("Delete not supported");
+ }
+
+ @Override
+ public boolean exists(URI uri, Map<?, ?> options)
+ {
+ // TODO
+ return false;
+ }
+
+ @Override
+ public Map<String, ?> getAttributes(URI uri, Map<?, ?> options)
+ {
+ return Collections.emptyMap();
+ }
+
+ @Override
+ public void setAttributes(URI uri, Map<String, ?> attributes, Map<?, ?> options) throws IOException
+ {
+ // Do nothing.
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectImpl.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectImpl.java
new file mode 100644
index 0000000000..4ad8ad4f18
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/ProjectImpl.java
@@ -0,0 +1,410 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.impl;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile;
+import org.eclipse.emf.cdo.releng.projectconfig.Project;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage;
+import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Project</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectImpl#getConfiguration <em>Configuration</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectImpl#getPreferenceProfiles <em>Preference Profiles</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectImpl#getPreferenceNode <em>Preference Node</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectImpl#getPreferenceProfileReferences <em>Preference Profile References</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ProjectImpl extends MinimalEObjectImpl.Container implements Project
+{
+ /**
+ * The cached value of the '{@link #getPreferenceProfiles() <em>Preference Profiles</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPreferenceProfiles()
+ * @generated
+ * @ordered
+ */
+ protected EList<PreferenceProfile> preferenceProfiles;
+
+ /**
+ * The cached value of the '{@link #getPreferenceNode() <em>Preference Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPreferenceNode()
+ * @generated
+ * @ordered
+ */
+ protected PreferenceNode preferenceNode;
+
+ /**
+ * The cached value of the '{@link #getPreferenceProfileReferences() <em>Preference Profile References</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPreferenceProfileReferences()
+ * @generated
+ * @ordered
+ */
+ protected EList<PreferenceProfile> preferenceProfileReferences;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProjectImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ProjectConfigPackage.Literals.PROJECT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WorkspaceConfiguration getConfiguration()
+ {
+ if (eContainerFeatureID() != ProjectConfigPackage.PROJECT__CONFIGURATION) return null;
+ return (WorkspaceConfiguration)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetConfiguration(WorkspaceConfiguration newConfiguration, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newConfiguration, ProjectConfigPackage.PROJECT__CONFIGURATION, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setConfiguration(WorkspaceConfiguration newConfiguration)
+ {
+ if (newConfiguration != eInternalContainer() || (eContainerFeatureID() != ProjectConfigPackage.PROJECT__CONFIGURATION && newConfiguration != null))
+ {
+ if (EcoreUtil.isAncestor(this, newConfiguration))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newConfiguration != null)
+ msgs = ((InternalEObject)newConfiguration).eInverseAdd(this, ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS, WorkspaceConfiguration.class, msgs);
+ msgs = basicSetConfiguration(newConfiguration, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PROJECT__CONFIGURATION, newConfiguration, newConfiguration));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<PreferenceProfile> getPreferenceProfiles()
+ {
+ if (preferenceProfiles == null)
+ {
+ preferenceProfiles = new EObjectContainmentWithInverseEList<PreferenceProfile>(PreferenceProfile.class, this, ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES, ProjectConfigPackage.PREFERENCE_PROFILE__PROJECT);
+ }
+ return preferenceProfiles;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceNode getPreferenceNode()
+ {
+ if (preferenceNode != null && preferenceNode.eIsProxy())
+ {
+ InternalEObject oldPreferenceNode = (InternalEObject)preferenceNode;
+ preferenceNode = (PreferenceNode)eResolveProxy(oldPreferenceNode);
+ if (preferenceNode != oldPreferenceNode)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProjectConfigPackage.PROJECT__PREFERENCE_NODE, oldPreferenceNode, preferenceNode));
+ }
+ }
+ return preferenceNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceNode basicGetPreferenceNode()
+ {
+ return preferenceNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPreferenceNode(PreferenceNode newPreferenceNode)
+ {
+ PreferenceNode oldPreferenceNode = preferenceNode;
+ preferenceNode = newPreferenceNode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.PROJECT__PREFERENCE_NODE, oldPreferenceNode, preferenceNode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<PreferenceProfile> getPreferenceProfileReferences()
+ {
+ if (preferenceProfileReferences == null)
+ {
+ preferenceProfileReferences = new EObjectWithInverseResolvingEList.ManyInverse<PreferenceProfile>(PreferenceProfile.class, this, ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES, ProjectConfigPackage.PREFERENCE_PROFILE__REFERENT_PROJECTS);
+ }
+ return preferenceProfileReferences;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PROJECT__CONFIGURATION:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetConfiguration((WorkspaceConfiguration)otherEnd, msgs);
+ case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getPreferenceProfiles()).basicAdd(otherEnd, msgs);
+ case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getPreferenceProfileReferences()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PROJECT__CONFIGURATION:
+ return basicSetConfiguration(null, msgs);
+ case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES:
+ return ((InternalEList<?>)getPreferenceProfiles()).basicRemove(otherEnd, msgs);
+ case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES:
+ return ((InternalEList<?>)getPreferenceProfileReferences()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
+ {
+ switch (eContainerFeatureID())
+ {
+ case ProjectConfigPackage.PROJECT__CONFIGURATION:
+ return eInternalContainer().eInverseRemove(this, ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS, WorkspaceConfiguration.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PROJECT__CONFIGURATION:
+ return getConfiguration();
+ case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES:
+ return getPreferenceProfiles();
+ case ProjectConfigPackage.PROJECT__PREFERENCE_NODE:
+ if (resolve) return getPreferenceNode();
+ return basicGetPreferenceNode();
+ case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES:
+ return getPreferenceProfileReferences();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PROJECT__CONFIGURATION:
+ setConfiguration((WorkspaceConfiguration)newValue);
+ return;
+ case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES:
+ getPreferenceProfiles().clear();
+ getPreferenceProfiles().addAll((Collection<? extends PreferenceProfile>)newValue);
+ return;
+ case ProjectConfigPackage.PROJECT__PREFERENCE_NODE:
+ setPreferenceNode((PreferenceNode)newValue);
+ return;
+ case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES:
+ getPreferenceProfileReferences().clear();
+ getPreferenceProfileReferences().addAll((Collection<? extends PreferenceProfile>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PROJECT__CONFIGURATION:
+ setConfiguration((WorkspaceConfiguration)null);
+ return;
+ case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES:
+ getPreferenceProfiles().clear();
+ return;
+ case ProjectConfigPackage.PROJECT__PREFERENCE_NODE:
+ setPreferenceNode((PreferenceNode)null);
+ return;
+ case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES:
+ getPreferenceProfileReferences().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.PROJECT__CONFIGURATION:
+ return getConfiguration() != null;
+ case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILES:
+ return preferenceProfiles != null && !preferenceProfiles.isEmpty();
+ case ProjectConfigPackage.PROJECT__PREFERENCE_NODE:
+ return preferenceNode != null;
+ case ProjectConfigPackage.PROJECT__PREFERENCE_PROFILE_REFERENCES:
+ return preferenceProfileReferences != null && !preferenceProfileReferences.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public String eURIFragmentSegment(EStructuralFeature eStructuralFeature, EObject eObject)
+ {
+ if (eStructuralFeature == ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILES)
+ {
+ PreferenceProfile child = (PreferenceProfile)eObject;
+ String name = child.getName();
+ if (name != null)
+ {
+ String encodedName = URI.encodeSegment(name, false);
+ if (encodedName.startsWith("@"))
+ {
+ encodedName = "%40" + encodedName.substring(1);
+ }
+ return encodedName;
+ }
+ }
+
+ return super.eURIFragmentSegment(eStructuralFeature, eObject);
+ }
+
+ @Override
+ public EObject eObjectForURIFragmentSegment(String uriFragmentSegment)
+ {
+ if (!uriFragmentSegment.startsWith("@"))
+ {
+ String preferenceProfileName = URI.decode(uriFragmentSegment);
+ for (PreferenceProfile preferenceProfile : getPreferenceProfiles())
+ {
+ if (preferenceProfileName.equals(preferenceProfile.getName()))
+ {
+ return preferenceProfile;
+ }
+ }
+ return null;
+ }
+ return super.eObjectForURIFragmentSegment(uriFragmentSegment);
+ }
+} // ProjectImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/WorkspaceConfigurationImpl.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/WorkspaceConfigurationImpl.java
new file mode 100644
index 0000000000..3004290775
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/impl/WorkspaceConfigurationImpl.java
@@ -0,0 +1,535 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.impl;
+
+import org.eclipse.emf.cdo.releng.predicates.Predicate;
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.preferences.util.PreferencesUtil;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile;
+import org.eclipse.emf.cdo.releng.projectconfig.Project;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage;
+import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.ECollections;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.osgi.service.prefs.BackingStoreException;
+import org.osgi.service.prefs.Preferences;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Workspace Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.WorkspaceConfigurationImpl#getProjects <em>Projects</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.WorkspaceConfigurationImpl#getDefaultPreferenceNode <em>Default Preference Node</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.projectconfig.impl.WorkspaceConfigurationImpl#getInstancePreferenceNode <em>Instance Preference Node</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class WorkspaceConfigurationImpl extends MinimalEObjectImpl.Container implements WorkspaceConfiguration
+{
+ private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot();
+
+ /**
+ * The cached value of the '{@link #getProjects() <em>Projects</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProjects()
+ * @generated
+ * @ordered
+ */
+ protected EList<Project> projects;
+
+ /**
+ * The cached value of the '{@link #getDefaultPreferenceNode() <em>Default Preference Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefaultPreferenceNode()
+ * @generated
+ * @ordered
+ */
+ protected PreferenceNode defaultPreferenceNode;
+
+ /**
+ * The cached value of the '{@link #getInstancePreferenceNode() <em>Instance Preference Node</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInstancePreferenceNode()
+ * @generated
+ * @ordered
+ */
+ protected PreferenceNode instancePreferenceNode;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WorkspaceConfigurationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return ProjectConfigPackage.Literals.WORKSPACE_CONFIGURATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<Project> getProjects()
+ {
+ if (projects == null)
+ {
+ projects = new EObjectContainmentWithInverseEList<Project>(Project.class, this, ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS, ProjectConfigPackage.PROJECT__CONFIGURATION);
+ }
+ return projects;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceNode getDefaultPreferenceNode()
+ {
+ if (defaultPreferenceNode != null && defaultPreferenceNode.eIsProxy())
+ {
+ InternalEObject oldDefaultPreferenceNode = (InternalEObject)defaultPreferenceNode;
+ defaultPreferenceNode = (PreferenceNode)eResolveProxy(oldDefaultPreferenceNode);
+ if (defaultPreferenceNode != oldDefaultPreferenceNode)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProjectConfigPackage.WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE, oldDefaultPreferenceNode, defaultPreferenceNode));
+ }
+ }
+ return defaultPreferenceNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceNode basicGetDefaultPreferenceNode()
+ {
+ return defaultPreferenceNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDefaultPreferenceNode(PreferenceNode newDefaultPreferenceNode)
+ {
+ PreferenceNode oldDefaultPreferenceNode = defaultPreferenceNode;
+ defaultPreferenceNode = newDefaultPreferenceNode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE, oldDefaultPreferenceNode, defaultPreferenceNode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceNode getInstancePreferenceNode()
+ {
+ if (instancePreferenceNode != null && instancePreferenceNode.eIsProxy())
+ {
+ InternalEObject oldInstancePreferenceNode = (InternalEObject)instancePreferenceNode;
+ instancePreferenceNode = (PreferenceNode)eResolveProxy(oldInstancePreferenceNode);
+ if (instancePreferenceNode != oldInstancePreferenceNode)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProjectConfigPackage.WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE, oldInstancePreferenceNode, instancePreferenceNode));
+ }
+ }
+ return instancePreferenceNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PreferenceNode basicGetInstancePreferenceNode()
+ {
+ return instancePreferenceNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setInstancePreferenceNode(PreferenceNode newInstancePreferenceNode)
+ {
+ PreferenceNode oldInstancePreferenceNode = instancePreferenceNode;
+ instancePreferenceNode = newInstancePreferenceNode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProjectConfigPackage.WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE, oldInstancePreferenceNode, instancePreferenceNode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void applyPreferenceProfiles()
+ {
+ for (Project project : getProjects())
+ {
+ try
+ {
+ Preferences projectPreferences = PreferencesUtil.getPreferences(project.getPreferenceNode(), true);
+
+ Set<Preferences> clearedPreferences = new HashSet<Preferences>();
+ for (PreferenceProfile preferenceProfile : project.getPreferenceProfileReferences())
+ {
+ if (preferenceProfile.getProject() != project)
+ {
+ for (PreferenceFilter preferenceFilter : preferenceProfile.getPreferenceFilters())
+ {
+ PreferenceNode preferenceNode = preferenceFilter.getPreferenceNode();
+ try
+ {
+ Preferences sourcePreferences = PreferencesUtil.getPreferences(preferenceNode, true);
+ if (projectPreferences == null)
+ {
+ projectPreferences = PreferencesUtil.getPreferences(project.getPreferenceNode(), true);
+ }
+ Preferences targetPreferences = projectPreferences.node(sourcePreferences.name());
+ if (clearedPreferences.add(targetPreferences))
+ {
+ targetPreferences.clear();
+ }
+ for (String key : sourcePreferences.keys())
+ {
+ if (preferenceFilter.matches(key))
+ {
+ targetPreferences.put(key, sourcePreferences.get(key, null));
+ }
+ }
+ }
+ catch (BackingStoreException ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+ }
+ }
+
+ if (!clearedPreferences.isEmpty())
+ {
+ for (Preferences preferences : clearedPreferences)
+ {
+ if (preferences.keys().length == 0)
+ {
+ preferences.removeNode();
+ }
+ }
+
+ projectPreferences.flush();
+ }
+ }
+ catch (BackingStoreException ex1)
+ {
+ ex1.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void updatePreferenceProfileReferences()
+ {
+ boolean sort = false;
+ for (Project project : getProjects())
+ {
+ for (PreferenceProfile preferenceProfile : project.getPreferenceProfiles())
+ {
+ if (!preferenceProfile.getPrerequisites().isEmpty())
+ {
+ sort = true;
+ }
+
+ EList<Predicate> predicates = preferenceProfile.getPredicates();
+ if (!predicates.isEmpty())
+ {
+ List<Project> referents = new ArrayList<Project>();
+ for (Predicate predicate : predicates)
+ {
+ for (Project referencedProject : getProjects())
+ {
+ IProject iProject = WORKSPACE_ROOT.getProject(referencedProject.getPreferenceNode().getName());
+ if (iProject.isAccessible())
+ {
+ if (predicate.matches(iProject))
+ {
+ referents.add(referencedProject);
+ }
+ }
+ }
+ }
+ ECollections.setEList(preferenceProfile.getReferentProjects(), referents);
+ }
+ }
+ }
+
+ if (sort)
+ {
+ for (Project project : getProjects())
+ {
+ ECollections.sort(project.getPreferenceProfileReferences(), new Comparator<PreferenceProfile>()
+ {
+ public int compare(PreferenceProfile p1, PreferenceProfile p2)
+ {
+ if (p2.requires(p1))
+ {
+ if (!p1.requires(p2))
+ {
+ return -1;
+ }
+ }
+ else if (p1.requires(p2))
+ {
+ return 1;
+ }
+ return p1.getName().compareTo(p2.getName());
+ }
+ });
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getProjects()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS:
+ return ((InternalEList<?>)getProjects()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS:
+ return getProjects();
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE:
+ if (resolve) return getDefaultPreferenceNode();
+ return basicGetDefaultPreferenceNode();
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE:
+ if (resolve) return getInstancePreferenceNode();
+ return basicGetInstancePreferenceNode();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS:
+ getProjects().clear();
+ getProjects().addAll((Collection<? extends Project>)newValue);
+ return;
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE:
+ setDefaultPreferenceNode((PreferenceNode)newValue);
+ return;
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE:
+ setInstancePreferenceNode((PreferenceNode)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS:
+ getProjects().clear();
+ return;
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE:
+ setDefaultPreferenceNode((PreferenceNode)null);
+ return;
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE:
+ setInstancePreferenceNode((PreferenceNode)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION__PROJECTS:
+ return projects != null && !projects.isEmpty();
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION__DEFAULT_PREFERENCE_NODE:
+ return defaultPreferenceNode != null;
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION__INSTANCE_PREFERENCE_NODE:
+ return instancePreferenceNode != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
+ {
+ switch (operationID)
+ {
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION___APPLY_PREFERENCE_PROFILES:
+ applyPreferenceProfiles();
+ return null;
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION___UPDATE_PREFERENCE_PROFILE_REFERENCES:
+ updatePreferenceProfileReferences();
+ return null;
+ }
+ return super.eInvoke(operationID, arguments);
+ }
+
+ @Override
+ public String eURIFragmentSegment(EStructuralFeature eStructuralFeature, EObject eObject)
+ {
+ if (eStructuralFeature == ProjectConfigPackage.Literals.WORKSPACE_CONFIGURATION__PROJECTS)
+ {
+ Project child = (Project)eObject;
+ PreferenceNode preferenceNode = child.getPreferenceNode();
+ if (preferenceNode != null)
+ {
+ String name = preferenceNode.getName();
+ if (name != null)
+ {
+ String encodedName = URI.encodeSegment(name, false);
+ if (encodedName.startsWith("@"))
+ {
+ encodedName = "%40" + encodedName.substring(1);
+ }
+ return name;
+ }
+ }
+ }
+
+ return super.eURIFragmentSegment(eStructuralFeature, eObject);
+ }
+
+ @Override
+ public EObject eObjectForURIFragmentSegment(String uriFragmentSegment)
+ {
+ if (!uriFragmentSegment.startsWith("@"))
+ {
+ String preferenceNodeName = URI.decode(uriFragmentSegment);
+ for (Project project : getProjects())
+ {
+ PreferenceNode preferenceNode = project.getPreferenceNode();
+ if (preferenceNode != null && preferenceNodeName.equals(preferenceNode.getName()))
+ {
+ return project;
+ }
+ }
+ return null;
+ }
+ return super.eObjectForURIFragmentSegment(uriFragmentSegment);
+ }
+
+} // WorkspaceConfigurationImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigAdapterFactory.java
new file mode 100644
index 0000000000..53864c39b3
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigAdapterFactory.java
@@ -0,0 +1,192 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.util;
+
+import org.eclipse.emf.cdo.releng.projectconfig.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage
+ * @generated
+ */
+public class ProjectConfigAdapterFactory extends AdapterFactoryImpl
+{
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ProjectConfigPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProjectConfigAdapterFactory()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = ProjectConfigPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object)
+ {
+ if (object == modelPackage)
+ {
+ return true;
+ }
+ if (object instanceof EObject)
+ {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProjectConfigSwitch<Adapter> modelSwitch =
+ new ProjectConfigSwitch<Adapter>()
+ {
+ @Override
+ public Adapter caseWorkspaceConfiguration(WorkspaceConfiguration object)
+ {
+ return createWorkspaceConfigurationAdapter();
+ }
+ @Override
+ public Adapter caseProject(Project object)
+ {
+ return createProjectAdapter();
+ }
+ @Override
+ public Adapter casePreferenceProfile(PreferenceProfile object)
+ {
+ return createPreferenceProfileAdapter();
+ }
+ @Override
+ public Adapter casePreferenceFilter(PreferenceFilter object)
+ {
+ return createPreferenceFilterAdapter();
+ }
+ @Override
+ public Adapter defaultCase(EObject object)
+ {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target)
+ {
+ return modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration <em>Workspace Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration
+ * @generated
+ */
+ public Adapter createWorkspaceConfigurationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.projectconfig.Project <em>Project</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.Project
+ * @generated
+ */
+ public Adapter createProjectAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile <em>Preference Profile</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile
+ * @generated
+ */
+ public Adapter createPreferenceProfileAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter <em>Preference Filter</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter
+ * @generated
+ */
+ public Adapter createPreferenceFilterAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter()
+ {
+ return null;
+ }
+
+} //ProjectConfigAdapterFactory
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigSwitch.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigSwitch.java
new file mode 100644
index 0000000000..682c554cd5
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigSwitch.java
@@ -0,0 +1,188 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.util;
+
+import org.eclipse.emf.cdo.releng.projectconfig.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage
+ * @generated
+ */
+public class ProjectConfigSwitch<T> extends Switch<T>
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ProjectConfigPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProjectConfigSwitch()
+ {
+ if (modelPackage == null)
+ {
+ modelPackage = ProjectConfigPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @parameter ePackage the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage)
+ {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject)
+ {
+ switch (classifierID)
+ {
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION:
+ {
+ WorkspaceConfiguration workspaceConfiguration = (WorkspaceConfiguration)theEObject;
+ T result = caseWorkspaceConfiguration(workspaceConfiguration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ProjectConfigPackage.PROJECT:
+ {
+ Project project = (Project)theEObject;
+ T result = caseProject(project);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ProjectConfigPackage.PREFERENCE_PROFILE:
+ {
+ PreferenceProfile preferenceProfile = (PreferenceProfile)theEObject;
+ T result = casePreferenceProfile(preferenceProfile);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ProjectConfigPackage.PREFERENCE_FILTER:
+ {
+ PreferenceFilter preferenceFilter = (PreferenceFilter)theEObject;
+ T result = casePreferenceFilter(preferenceFilter);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Workspace Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Workspace Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseWorkspaceConfiguration(WorkspaceConfiguration object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Project</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Project</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseProject(Project object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Preference Profile</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Preference Profile</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePreferenceProfile(PreferenceProfile object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Preference Filter</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Preference Filter</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePreferenceFilter(PreferenceFilter object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object)
+ {
+ return null;
+ }
+
+} //ProjectConfigSwitch
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigUtil.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigUtil.java
new file mode 100644
index 0000000000..978d14670e
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigUtil.java
@@ -0,0 +1,290 @@
+/*
+ * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.util;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.preferences.PreferencesFactory;
+import org.eclipse.emf.cdo.releng.preferences.Property;
+import org.eclipse.emf.cdo.releng.preferences.util.PreferencesUtil;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceFilter;
+import org.eclipse.emf.cdo.releng.projectconfig.PreferenceProfile;
+import org.eclipse.emf.cdo.releng.projectconfig.Project;
+import org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigFactory;
+import org.eclipse.emf.cdo.releng.projectconfig.WorkspaceConfiguration;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.URIConverter;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+
+import org.osgi.service.prefs.BackingStoreException;
+import org.osgi.service.prefs.Preferences;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Eike Stepper
+ */
+public final class ProjectConfigUtil
+{
+ private static final IWorkspaceRoot WORKSPACE_ROOT = ResourcesPlugin.getWorkspace().getRoot();
+
+ public static final String PROJECT_CONF_NODE_NAME = "org.eclipse.emf.cdo.releng.projectconfig";
+
+ public static final String PROJECT_CONF_PROJECT_KEY = "project";
+
+ public static final String PROJECT_CONF_PROFILES_KEY = "profiles";
+
+ public static final String PROJECT_CONF_REFERENCES_KEY = "references";
+
+ public static final String PROJECT_CONFIG_SCHEME = "configuration";
+
+ public static final URI PROJECT_CONFIG_URI = URI.createURI(PROJECT_CONFIG_SCHEME + ":/");
+
+ public static final WorkspaceConfiguration getWorkspaceConfiguration()
+ {
+ ResourceSet resourceSet = new ResourceSetImpl();
+ Resource resource = resourceSet.createResource(URI.createURI("*.projectconfig"));
+ resource.setURI(PROJECT_CONFIG_URI);
+
+ PreferenceNode rootPreferenceNode = PreferencesUtil.getRootPreferenceNode();
+
+ WorkspaceConfiguration workspaceConfiguration = ProjectConfigFactory.eINSTANCE.createWorkspaceConfiguration();
+ workspaceConfiguration.setInstancePreferenceNode(rootPreferenceNode.getNode("instance"));
+ workspaceConfiguration.setDefaultPreferenceNode(rootPreferenceNode.getNode("default"));
+
+ PreferenceNode projectsPreferenceNode = rootPreferenceNode.getNode("project");
+ EList<Project> projects = workspaceConfiguration.getProjects();
+
+ for (IProject iProject : WORKSPACE_ROOT.getProjects())
+ {
+ String name = iProject.getName();
+ PreferenceNode projectPreferenceNode = projectsPreferenceNode.getNode(name);
+ if (projectPreferenceNode != null)
+ {
+ Project project = ProjectConfigFactory.eINSTANCE.createProject();
+
+ PreferenceNode projectConfNode = projectPreferenceNode.getNode(PROJECT_CONF_NODE_NAME);
+ if (projectConfNode != null)
+ {
+ Property projectProperty = projectConfNode.getProperty(PROJECT_CONF_PROJECT_KEY);
+ if (projectProperty != null)
+ {
+ String value = projectProperty.getValue();
+ if (value != null)
+ {
+ XMLResourceImpl projectResource = new XMLResourceImpl(PROJECT_CONFIG_URI);
+ InputStream in = new URIConverter.ReadableInputStream(value);
+ try
+ {
+ projectResource.load(in, null);
+ }
+ catch (IOException ex)
+ {
+ // Ignore.
+ }
+ EList<EObject> contents = projectResource.getContents();
+ if (!contents.isEmpty())
+ {
+ project = (Project)contents.get(0);
+ }
+ }
+ }
+ }
+
+ if (project == null)
+ {
+ project = ProjectConfigFactory.eINSTANCE.createProject();
+ }
+
+ project.setPreferenceNode(projectPreferenceNode);
+
+ projects.add(project);
+ }
+ }
+
+ EList<EObject> contents = resource.getContents();
+ contents.add(workspaceConfiguration);
+ contents.add(rootPreferenceNode);
+
+ for (Project project : projects)
+ {
+ for (PreferenceProfile preferenceProfile : project.getPreferenceProfiles())
+ {
+ for (PreferenceFilter preferenceFilter : preferenceProfile.getPreferenceFilters())
+ {
+ preferenceFilter.getPreferenceNode();
+ }
+
+ for (PreferenceProfile requiredPreferenceProfile : preferenceProfile.getPrerequisites())
+ {
+ // Resolve proxies.
+ requiredPreferenceProfile.getClass();
+ }
+ }
+ EList<PreferenceProfile> profileReferences = project.getPreferenceProfileReferences();
+ ArrayList<PreferenceProfile> copy = new ArrayList<PreferenceProfile>(profileReferences);
+ profileReferences.clear();
+ profileReferences.addAll(copy);
+ }
+
+ workspaceConfiguration.updatePreferenceProfileReferences();
+
+ return workspaceConfiguration;
+ }
+
+ public static final void saveWorkspaceConfiguration(WorkspaceConfiguration workspaceConfiguration)
+ throws BackingStoreException
+ {
+ for (Project project : workspaceConfiguration.getProjects())
+ {
+ PreferenceNode projectPreferenceNode = project.getPreferenceNode();
+ String projectName = projectPreferenceNode.getName();
+
+ Preferences projectPreferences = PreferencesUtil.getPreferences(projectPreferenceNode, true);
+
+ EList<PreferenceProfile> preferenceProfiles = project.getPreferenceProfiles();
+ EList<PreferenceProfile> preferenceProfileReferences = project.getPreferenceProfileReferences();
+
+ String projectPropertyValue = null;
+ if (!preferenceProfileReferences.isEmpty() || !preferenceProfiles.isEmpty())
+ {
+ Project copy = EcoreUtil.copy(project);
+ copy.setPreferenceNode(null);
+ EList<PreferenceProfile> copyPreferenceProfileReferences = copy.getPreferenceProfileReferences();
+ copyPreferenceProfileReferences.clear();
+
+ for (PreferenceProfile preferenceProfileReference : preferenceProfileReferences)
+ {
+ if (preferenceProfileReference.getPredicates().isEmpty())
+ {
+ PreferenceProfile proxy = ProjectConfigFactory.eINSTANCE.createPreferenceProfile();
+ ((InternalEObject)proxy).eSetProxyURI(URI.createURI(".#"
+ + preferenceProfileReference.eResource().getURIFragment(preferenceProfileReference)));
+ copyPreferenceProfileReferences.add(proxy);
+ }
+ }
+
+ for (PreferenceProfile preferenceProfile : copy.getPreferenceProfiles())
+ {
+ for (PreferenceFilter preferenceFilter : preferenceProfile.getPreferenceFilters())
+ {
+ PreferenceNode preferenceNode = preferenceFilter.getPreferenceNode();
+ if (preferenceNode != null)
+ {
+ PreferenceNode proxy = PreferencesFactory.eINSTANCE.createPreferenceNode();
+ ((InternalEObject)proxy).eSetProxyURI(URI.createURI(".#"
+ + preferenceNode.eResource().getURIFragment(preferenceNode)));
+ preferenceFilter.setPreferenceNode(proxy);
+ }
+ }
+
+ EList<PreferenceProfile> requires = preferenceProfile.getPrerequisites();
+ List<PreferenceProfile> requiresCopy = new ArrayList<PreferenceProfile>(requires);
+ requires.clear();
+ for (PreferenceProfile requiredPreferenceProfile : requiresCopy)
+ {
+ Resource eResource = requiredPreferenceProfile.eResource();
+ if (eResource == null)
+ {
+ requires.add(requiredPreferenceProfile);
+ }
+ else
+ {
+ PreferenceProfile proxy = ProjectConfigFactory.eINSTANCE.createPreferenceProfile();
+ ((InternalEObject)proxy).eSetProxyURI(URI.createURI(".#"
+ + eResource.getURIFragment(requiredPreferenceProfile)));
+ requires.add(proxy);
+ }
+ }
+ }
+
+ if (!copy.getPreferenceProfiles().isEmpty() || !copy.getPreferenceProfileReferences().isEmpty())
+ {
+ Resource resource = new XMLResourceImpl(workspaceConfiguration.eResource().getURI());
+ resource.getContents().add(copy);
+
+ Map<Object, Object> options = new HashMap<Object, Object>();
+ options.put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+ options.put(XMLResource.OPTION_LINE_WIDTH, 10);
+ options.put(XMLResource.OPTION_ENCODING, "UTF-8");
+ try
+ {
+ StringWriter writer = new StringWriter();
+ OutputStream out = new URIConverter.WriteableOutputStream(writer, "UTF-8");
+ resource.save(out, options);
+ projectPropertyValue = writer.toString();
+ }
+ catch (IOException ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+ }
+
+ if (projectPropertyValue == null)
+ {
+ if (projectPreferences.nodeExists(PROJECT_CONF_NODE_NAME))
+ {
+ projectPreferences.node(PROJECT_CONF_NODE_NAME).removeNode();
+ projectPreferences.flush();
+ }
+ }
+ else
+ {
+ System.err.println(projectName + " -> project = " + projectPropertyValue);
+
+ Preferences projectConfPreferences = projectPreferences.node(PROJECT_CONF_NODE_NAME);
+ projectConfPreferences.put(PROJECT_CONF_PROJECT_KEY, projectPropertyValue);
+ projectConfPreferences.flush();
+ }
+ }
+ }
+
+ public static IProject getProject(Project project)
+ {
+ PreferenceNode preferenceNode = project.getPreferenceNode();
+ if (preferenceNode != null)
+ {
+ String name = preferenceNode.getName();
+ if (name != null)
+ {
+ return WORKSPACE_ROOT.getProject(name);
+ }
+ }
+
+ return null;
+ }
+
+ public static Collection<PreferenceNode> getUnmanagedPreferenceNodes(Project project)
+ {
+ return ProjectConfigValidator.collectUnmanagedPreferences(project).values();
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigValidator.java b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigValidator.java
new file mode 100644
index 0000000000..e88c76a58b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.projectconfig/src/org/eclipse/emf/cdo/releng/projectconfig/util/ProjectConfigValidator.java
@@ -0,0 +1,263 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.projectconfig.util;
+
+import org.eclipse.emf.cdo.releng.preferences.PreferenceNode;
+import org.eclipse.emf.cdo.releng.projectconfig.*;
+import org.eclipse.emf.cdo.releng.projectconfig.impl.ProjectConfigPlugin;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.EObjectValidator;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Pattern;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Validator</b> for the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.projectconfig.ProjectConfigPackage
+ * @generated
+ */
+public class ProjectConfigValidator extends EObjectValidator
+{
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final ProjectConfigValidator INSTANCE = new ProjectConfigValidator();
+
+ /**
+ * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.common.util.Diagnostic#getSource()
+ * @see org.eclipse.emf.common.util.Diagnostic#getCode()
+ * @generated
+ */
+ public static final String DIAGNOSTIC_SOURCE = "org.eclipse.emf.cdo.releng.projectconfig";
+
+ /**
+ * A constant with a fixed name that can be used as the base value for additional hand written constants.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 0;
+
+ /**
+ * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ProjectConfigValidator()
+ {
+ super();
+ }
+
+ /**
+ * Returns the package of this validator switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EPackage getEPackage()
+ {
+ return ProjectConfigPackage.eINSTANCE;
+ }
+
+ /**
+ * Calls <code>validateXXX</code> for the corresponding classifier of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics, Map<Object, Object> context)
+ {
+ switch (classifierID)
+ {
+ case ProjectConfigPackage.WORKSPACE_CONFIGURATION:
+ return validateWorkspaceConfiguration((WorkspaceConfiguration)value, diagnostics, context);
+ case ProjectConfigPackage.PROJECT:
+ return validateProject((Project)value, diagnostics, context);
+ case ProjectConfigPackage.PREFERENCE_PROFILE:
+ return validatePreferenceProfile((PreferenceProfile)value, diagnostics, context);
+ case ProjectConfigPackage.PREFERENCE_FILTER:
+ return validatePreferenceFilter((PreferenceFilter)value, diagnostics, context);
+ case ProjectConfigPackage.PATTERN:
+ return validatePattern((Pattern)value, diagnostics, context);
+ default:
+ return true;
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateWorkspaceConfiguration(WorkspaceConfiguration workspaceConfiguration,
+ DiagnosticChain diagnostics, Map<Object, Object> context)
+ {
+ return validate_EveryDefaultConstraint(workspaceConfiguration, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateProject(Project project, DiagnosticChain diagnostics, Map<Object, Object> context)
+ {
+ if (!validate_NoCircularContainment(project, diagnostics, context)) return false;
+ boolean result = validate_EveryMultiplicityConforms(project, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(project, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(project, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(project, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(project, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(project, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(project, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(project, diagnostics, context);
+ if (result || diagnostics != null) result &= validateProject_AllPreferencesManaged(project, diagnostics, context);
+ return result;
+ }
+
+ static Map<String, PreferenceNode> collectUnmanagedPreferences(Project project)
+ {
+ Map<String, PreferenceNode> result = new LinkedHashMap<String, PreferenceNode>();
+ PreferenceNode preferenceNode = project.getPreferenceNode();
+ if (preferenceNode != null)
+ {
+ for (PreferenceNode child : preferenceNode.getChildren())
+ {
+ if (!child.getProperties().isEmpty())
+ {
+ result.put(child.getName(), child);
+ }
+ }
+
+ result.remove(ProjectConfigUtil.PROJECT_CONF_NODE_NAME);
+
+ for (PreferenceProfile preferenceProfile : project.getPreferenceProfiles())
+ {
+ for (PreferenceFilter preferenceFilter : preferenceProfile.getPreferenceFilters())
+ {
+ PreferenceNode otherPreferenceNode = preferenceFilter.getPreferenceNode();
+ if (otherPreferenceNode != null)
+ {
+ result.remove(otherPreferenceNode.getName());
+ }
+ }
+ }
+
+ for (PreferenceProfile preferenceProfile : project.getPreferenceProfileReferences())
+ {
+ for (PreferenceFilter preferenceFilter : preferenceProfile.getPreferenceFilters())
+ {
+ PreferenceNode otherPreferenceNode = preferenceFilter.getPreferenceNode();
+ if (otherPreferenceNode != null)
+ {
+ result.remove(otherPreferenceNode.getName());
+ }
+ }
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Validates the AllPreferencesManaged constraint of '<em>Project</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean validateProject_AllPreferencesManaged(Project project, DiagnosticChain diagnostics,
+ Map<Object, Object> context)
+ {
+ Map<String, PreferenceNode> unmanagedPreferences = collectUnmanagedPreferences(project);
+
+ if (!unmanagedPreferences.isEmpty())
+ {
+ if (diagnostics != null)
+ {
+ String substitution = unmanagedPreferences.keySet().toString();
+ substitution = substitution.substring(1, substitution.length() - 1);
+ int lastComma = substitution.lastIndexOf(',');
+ if (lastComma != -1)
+ {
+ substitution = substitution.substring(0, lastComma) + " and " + substitution.substring(lastComma + 1);
+ }
+ List<Object> data = new ArrayList<Object>();
+ data.add(project);
+ data.add(ProjectConfigPackage.Literals.PROJECT__PREFERENCE_PROFILE_REFERENCES);
+ data.addAll(unmanagedPreferences.values());
+ diagnostics.add(createDiagnostic(Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0,
+ "_UI_AllPreferencesManaged_diagnostic", new Object[] { substitution }, data.toArray(), context));
+ }
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePreferenceProfile(PreferenceProfile preferenceProfile, DiagnosticChain diagnostics,
+ Map<Object, Object> context)
+ {
+ return validate_EveryDefaultConstraint(preferenceProfile, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePreferenceFilter(PreferenceFilter preferenceFilter, DiagnosticChain diagnostics,
+ Map<Object, Object> context)
+ {
+ return validate_EveryDefaultConstraint(preferenceFilter, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validatePattern(Pattern pattern, DiagnosticChain diagnostics, Map<Object, Object> context)
+ {
+ return true;
+ }
+
+ /**
+ * Returns the resource locator that will be used to fetch messages for this validator's diagnostics.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return ProjectConfigPlugin.INSTANCE;
+ }
+
+} // ProjectConfigValidator
diff --git a/plugins/org.eclipse.emf.cdo.releng.release/release.properties b/plugins/org.eclipse.emf.cdo.releng.release/release.properties
index 0718209125..62a5fbcd03 100644
--- a/plugins/org.eclipse.emf.cdo.releng.release/release.properties
+++ b/plugins/org.eclipse.emf.cdo.releng.release/release.properties
@@ -1,6 +1,11 @@
#
+<<<<<<< Upstream, based on origin/master
#Tue Aug 27 08:29:53 CEST 2013
root.projects=org.eclipse.emf.cdo.site-feature org.eclipse.net4j.db.db2-feature org.eclipse.emf.cdo.releng org.eclipse.emf.cdo.releng.doc org.eclipse.emf.cdo.releng.release org.eclipse.emf.cdo.examples.clone org.eclipse.emf.cdo.examples.client org.eclipse.emf.cdo.examples.master org.eclipse.emf.cdo.examples.client.offline
+=======
+#Tue Aug 27 15:55:39 CEST 2013
+root.projects=org.eclipse.emf.cdo.site-feature org.eclipse.net4j.db.db2-feature org.eclipse.emf.cdo.releng org.eclipse.emf.cdo.releng.doc org.eclipse.emf.cdo.releng.release org.eclipse.emf.cdo.examples.clone org.eclipse.emf.cdo.examples.client org.eclipse.emf.cdo.examples.master org.eclipse.emf.cdo.examples.client.offline org.eclipse.emf.cdo.releng.setup.product org.eclipse.emf.cdo.releng.ui
+>>>>>>> aeba188 Improve setup related models
baseline.for.integration=true
show.deviations=false
ignored.references=org.eclipse.emf.cdo.examples.installer.client org.eclipse.emf.cdo.examples.installer.clone org.eclipse.emf.cdo.examples.installer.master org.eclipse.net4j.db.derby org.apache.derby org.eclipse.emf.cdo.server.objectivity org.eclipse.emf.cdo.server.objectivity.stub org.eclipse.emf.cdo.tests.objectivity
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.edit/.settings/org.eclipse.core.resources.prefs
index 45834dcf98..38ce18d974 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/.settings/org.eclipse.core.resources.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/.settings/org.eclipse.core.resources.prefs
@@ -1,5 +1,2 @@
eclipse.preferences.version=1
-encoding/.project=UTF-8
-encoding//model/Configuration.xmi=ASCII
-encoding//model/setup.ecore=UTF-8
-encoding//model/setup.ecorediag=UTF-8
+encoding/.project=UTF-8 \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.setup.edit/META-INF/MANIFEST.MF
index 67953d3baa..1868369e0a 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/META-INF/MANIFEST.MF
@@ -10,8 +10,10 @@ Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Export-Package: org.eclipse.emf.cdo.releng.setup.provider;version="1.0.0"
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.cdo.releng.setup;bundle-version="[1.0.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
- org.eclipse.emf.cdo.releng.workingsets;bundle-version="[1.0.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.cdo.releng.workingsets.edit;bundle-version="[1.0.0,2.0.0)";visibility:=reexport
+ org.eclipse.emf.cdo.releng.setup;visibility:=reexport;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.edit;visibility:=reexport;bundle-version="[2.5.0,3.0.0)",
+ org.eclipse.emf.cdo.releng.workingsets;visibility:=reexport;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.cdo.releng.workingsets.edit;visibility:=reexport;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.cdo.releng.predicates;visibility:=reexport;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.cdo.releng.predicates.edit;visibility:=reexport;bundle-version="[1.0.0,2.0.0)"
Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ApiBaseline.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ApiBaselineTask.gif
index 311b0df582..311b0df582 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ApiBaseline.gif
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ApiBaselineTask.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/BuckminsterImportTask.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/BuckminsterImportTask.gif
new file mode 100644
index 0000000000..ca58d41c7b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/BuckminsterImportTask.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/CompoundSetupTask.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/CompoundSetupTask.gif
new file mode 100644
index 0000000000..e7c4e9a23f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/CompoundSetupTask.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/DirectorCall.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/DirectorCall.gif
deleted file mode 100644
index b394107797..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/DirectorCall.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/EclipseIniTask.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/EclipseIniTask.gif
new file mode 100644
index 0000000000..ace52f0e93
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/EclipseIniTask.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/EclipsePreferenceTask.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/EclipsePreferenceTask.gif
new file mode 100644
index 0000000000..e8cb49fb5f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/EclipsePreferenceTask.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/GitClone.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/GitCloneTask.gif
index aae8cca858..aae8cca858 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/GitClone.gif
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/GitCloneTask.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/InstallableUnit.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/InstallableUnit.gif
index 8706680c79..b4cc50fc45 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/InstallableUnit.gif
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/InstallableUnit.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/LinkLocation.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/LinkLocation.gif
deleted file mode 100644
index d0b5c15991..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/LinkLocation.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/LinkLocationTask.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/LinkLocationTask.gif
new file mode 100644
index 0000000000..b99741d766
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/LinkLocationTask.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/P2Repository.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/P2Repository.gif
index ae982990dc..b8568f4f81 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/P2Repository.gif
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/P2Repository.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/P2Task.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/P2Task.gif
new file mode 100644
index 0000000000..8706680c79
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/P2Task.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ResourceCopyTask.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ResourceCopyTask.gif
new file mode 100644
index 0000000000..16eed37220
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ResourceCopyTask.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ToolPreference.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/StringVariableTask.gif
index e35f594d88..e35f594d88 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ToolPreference.gif
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/StringVariableTask.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/TextModification.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/TextModification.gif
new file mode 100644
index 0000000000..e8de662520
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/TextModification.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/TextModifyTask.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/TextModifyTask.gif
new file mode 100644
index 0000000000..3931b40e07
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/TextModifyTask.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ToolInstallation.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ToolInstallation.gif
deleted file mode 100644
index d8735b8930..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/ToolInstallation.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/WorkingSetTask.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/WorkingSetTask.gif
new file mode 100644
index 0000000000..f878001bdd
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/WorkingSetTask.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/Workspace.gif b/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/Workspace.gif
deleted file mode 100644
index ca14cfca4e..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/icons/full/obj16/Workspace.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.setup.edit/plugin.properties
index 3226421baa..a1a60dd606 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/plugin.properties
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/plugin.properties
@@ -19,81 +19,100 @@ _UI_CreateSibling_description = Create a new sibling of type {0} for the selecte
_UI_PropertyDescriptor_description = The {0} of the {1}
+_UI_EclipseVersion_type = Eclipse Version
_UI_Configuration_type = Configuration
+_UI_ConfigurableItem_type = Configurable Item
_UI_Project_type = Project
_UI_Branch_type = Branch
-_UI_ToolInstallation_type = Tool Installation
-_UI_EclipseVersion_type = Eclipse Version
-_UI_DirectorCall_type = Director Call
-_UI_InstallableUnit_type = Installable Unit
-_UI_P2Repository_type = P2 Repository
-_UI_ApiBaseline_type = Api Baseline
-_UI_GitClone_type = Git Clone
_UI_Preferences_type = Preferences
-_UI_Workspace_type = Workspace
+_UI_Setup_type = Setup
+_UI_SetupTask_type = Setup Task
+_UI_SetupTaskContainer_type = Setup Task Container
+_UI_CompoundSetupTask_type = Compound Setup Task
+_UI_OneTimeSetupTask_type = One-Time Setup Task
+_UI_InstallTask_type = Install Task
+_UI_EclipseIniTask_type = Eclipse.ini
+_UI_LinkLocationTask_type = Link Location
+_UI_P2Task_type = p2 Director
+_UI_InstallableUnit_type = Installable Unit
+_UI_P2Repository_type = Repository
+_UI_BuckminsterImportTask_type = Buckminster Import
+_UI_ApiBaselineTask_type = API Baseline
+_UI_GitCloneTask_type = Git Clone
+_UI_EclipsePreferenceTask_type = Eclipse Preference
+_UI_StringVariableTask_type = String Variable
+_UI_WorkingSetTask_type = Working Sets
_UI_Unknown_type = Object
+ _UI_Unknown_datatype= Value
-_UI_Unknown_datatype= Value
-
+_UI_EclipseVersion_configuration_feature = Configuration
+_UI_EclipseVersion_version_feature = Version
+_UI_EclipseVersion_installTasks_feature = Install Tasks
_UI_Configuration_projects_feature = Projects
_UI_Configuration_eclipseVersions_feature = Eclipse Versions
+_UI_Project_configuration_feature = Configuration
_UI_Project_branches_feature = Branches
_UI_Project_name_feature = Name
-_UI_Project_apiBaselines_feature = Api Baselines
+_UI_Branch_project_feature = Project
_UI_Branch_name_feature = Name
-_UI_Branch_gitClones_feature = Git Clones
-_UI_Branch_apiBaseline_feature = Api Baseline
-_UI_Branch_mspecFilePath_feature = Mspec File Path
-_UI_Branch_targetFilePath_feature = Target File Path
-_UI_ToolInstallation_directorCalls_feature = Director Calls
-_UI_EclipseVersion_version_feature = Version
-_UI_EclipseVersion_directorCall_feature = Director Call
-_UI_DirectorCall_installableUnits_feature = Installable Units
-_UI_DirectorCall_p2Repositories_feature = P2 Repositories
-_UI_InstallableUnit_id_feature = Id
-_UI_P2Repository_url_feature = Url
-_UI_ApiBaseline_name_feature = Name
-_UI_ApiBaseline_zipLocation_feature = Zip Location
-_UI_GitClone_name_feature = Name
-_UI_GitClone_remoteURI_feature = Remote URI
-_UI_GitClone_checkoutBranch_feature = Checkout Branch
_UI_Preferences_userName_feature = User Name
-_UI_Preferences_bundlePool_feature = Bundle Pool
_UI_Preferences_installFolder_feature = Install Folder
-_UI_Workspace_branch_feature = Branch
-_UI_Unknown_feature = Unspecified
-
-_UI_Workspace_eclipseVersion_feature = Eclipse Version
-_UI_Workspace_preferences_feature = Preferences
-_UI_Branch_cloneVariableName_feature = Clone Variable Name
_UI_Preferences_gitPrefix_feature = Git Prefix
-_UI_Setup_type = Setup
_UI_Setup_branch_feature = Branch
_UI_Setup_eclipseVersion_feature = Eclipse Version
_UI_Setup_preferences_feature = Preferences
-_UI_ApiBaseline_version_feature = Version
-_UI_EclipseVersion_configuration_feature = Configuration
-_UI_InstallableUnit_directorCall_feature = Director Call
-_UI_P2Repository_directorCall_feature = Director Call
-_UI_Project_configuration_feature = Configuration
-_UI_Branch_project_feature = Project
-_UI_ApiBaseline_project_feature = Project
-_UI_GitClone_branch_feature = Branch
-_UI_ToolPreference_type = Tool Preference
-_UI_ToolInstallation_toolPreferences_feature = Tool Preferences
-_UI_ToolPreference_key_feature = Key
-_UI_ToolPreference_value_feature = Value
-_UI_P2Repository_disableUpdates_feature = Disable Updates
-_UI_Branch_javaVersion_feature = Java Version
-_UI_JRE_JRE_13_literal = JRE_13
-_UI_JRE_JRE_14_literal = JRE_14
-_UI_JRE_JRE_15_literal = JRE_15
-_UI_JRE_JRE_16_literal = JRE_16
-_UI_JRE_JRE_17_literal = JRE_17
-_UI_JRE_JRE_18_literal = JRE_18
-_UI_Setup_updateLocations_feature = Update Locations
-_UI_LinkLocation_type = Link Location
-_UI_Preferences_linkLocations_feature = Link Locations
-_UI_LinkLocation_path_feature = Path
-_UI_LinkLocation_name_feature = Name
-_UI_Project_workingSetGroup_feature = Working Set Group
+_UI_SetupTask_requirements_feature = Requirements
+_UI_SetupTask_restrictions_feature = Restrictions
+_UI_SetupTask_scope_feature = Scope
+_UI_SetupTaskContainer_setupTasks_feature = Setup Tasks
+_UI_CompoundSetupTask_name_feature = Name
+_UI_OneTimeSetupTask_id_feature = ID
+_UI_EclipseIniTask_option_feature = Option
+_UI_EclipseIniTask_value_feature = Value
+_UI_EclipseIniTask_vm_feature = VM
+_UI_LinkLocationTask_path_feature = Path
+_UI_LinkLocationTask_name_feature = Name
+_UI_P2Task_p2Repositories_feature = Repositories
+_UI_P2Task_installableUnits_feature = Installable Units
+_UI_InstallableUnit_p2Task_feature = p2 Director
+_UI_InstallableUnit_id_feature = ID
+_UI_P2Repository_p2Task_feature = p2 Director
+_UI_P2Repository_url_feature = URL
+_UI_BuckminsterImportTask_mspec_feature = MSpec
+_UI_BuckminsterImportTask_targetPlatform_feature = Target Platform
+_UI_BuckminsterImportTask_bundlePool_feature = Bundle Pool
+_UI_ApiBaselineTask_version_feature = Version
+_UI_ApiBaselineTask_zipLocation_feature = Zip URL
+_UI_GitCloneTask_name_feature = Name
+_UI_GitCloneTask_remoteName_feature = Remote Name
+_UI_GitCloneTask_remoteURI_feature = Remote URI
+_UI_GitCloneTask_checkoutBranch_feature = Checkout Branch
+_UI_EclipsePreferenceTask_key_feature = Key
+_UI_EclipsePreferenceTask_value_feature = Value
+_UI_StringVariableTask_name_feature = Name
+_UI_StringVariableTask_value_feature = Value
+_UI_StringVariableTask_description_feature = Description
+_UI_WorkingSetTask_workingSetGroup_feature = Working Sets _UI_Unknown_feature = Unspecified
+
+_UI_SetupTaskScope_None_literal = None
+_UI_SetupTaskScope_Configuration_literal = Configuration
+_UI_SetupTaskScope_Project_literal = Project
+_UI_SetupTaskScope_Branch_literal = Branch
+_UI_SetupTaskScope_User_literal = User
+_UI_Unknown_feature = Unspecified
+
+_UI_SetupTaskProvider_type = Task Provider
+_UI_ResourceCopyTask_type = Resource Copy Task
+_UI_TextModifyTask_type = Text Modify Task
+_UI_TextModification_type = Text Modification
+_UI_ResourceCopyTask_sourceURL_feature = Source URL
+_UI_ResourceCopyTask_targetURL_feature = Target URL
+_UI_TextModifyTask_url_feature = Url
+_UI_TextModifyTask_modifications_feature = Modifications
+_UI_TextModification_pattern_feature = Pattern
+_UI_TextModification_substitutions_feature = Substitutions
+_UI_SetupTask_excludedTriggers_feature = Excluded Triggers
+_UI_Trigger_BOOTSTRAP_literal = BOOTSTRAP
+_UI_Trigger_STARTUP_literal = STARTUP
+_UI_Trigger_MANUAL_literal = MANUAL
+_UI_WorkingSetTask_workingSets_feature = Working Sets
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ApiBaselineTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ApiBaselineTaskItemProvider.java
new file mode 100644
index 0000000000..749cabcc57
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ApiBaselineTaskItemProvider.java
@@ -0,0 +1,155 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.provider;
+
+import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ApiBaselineTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ApiBaselineTaskItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addVersionPropertyDescriptor(object);
+ addZipLocationPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Version feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addVersionPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ApiBaselineTask_version_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ApiBaselineTask_version_feature",
+ "_UI_ApiBaselineTask_type"), SetupPackage.Literals.API_BASELINE_TASK__VERSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Zip Location feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addZipLocationPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ApiBaselineTask_zipLocation_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ApiBaselineTask_zipLocation_feature",
+ "_UI_ApiBaselineTask_type"), SetupPackage.Literals.API_BASELINE_TASK__ZIP_LOCATION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns ApiBaselineTask.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ApiBaselineTask"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((ApiBaselineTask)object).getVersion();
+ return label == null || label.length() == 0 ? getString("_UI_ApiBaselineTask_type")
+ : getString("_UI_ApiBaselineTask_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ApiBaselineTask.class))
+ {
+ case SetupPackage.API_BASELINE_TASK__VERSION:
+ case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/BranchItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/BranchItemProvider.java
index 9693c1bb7c..84c51dcbb6 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/BranchItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/BranchItemProvider.java
@@ -11,12 +11,10 @@
package org.eclipse.emf.cdo.releng.setup.provider;
import org.eclipse.emf.cdo.releng.setup.Branch;
-import org.eclipse.emf.cdo.releng.setup.SetupFactory;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -36,7 +34,7 @@ import java.util.List;
* <!-- end-user-doc -->
* @generated
*/
-public class BranchItemProvider extends ToolInstallationItemProvider implements IEditingDomainItemProvider,
+public class BranchItemProvider extends ConfigurableItemItemProvider implements IEditingDomainItemProvider,
IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
{
/**
@@ -64,9 +62,6 @@ public class BranchItemProvider extends ToolInstallationItemProvider implements
super.getPropertyDescriptors(object);
addNamePropertyDescriptor(object);
- addApiBaselinePropertyDescriptor(object);
- addMspecFilePathPropertyDescriptor(object);
- addCloneVariableNamePropertyDescriptor(object);
}
return itemPropertyDescriptors;
}
@@ -88,86 +83,6 @@ public class BranchItemProvider extends ToolInstallationItemProvider implements
}
/**
- * This adds a property descriptor for the Api Baseline feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected void addApiBaselinePropertyDescriptor(Object object)
- {
- itemPropertyDescriptors.add(createItemPropertyDescriptor(
- ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
- getString("_UI_Branch_apiBaseline_feature"),
- getString("_UI_PropertyDescriptor_description", "_UI_Branch_apiBaseline_feature", "_UI_Branch_type"),
- SetupPackage.Literals.BRANCH__API_BASELINE, true, false, true, null, null, null));
- }
-
- /**
- * This adds a property descriptor for the Mspec File Path feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected void addMspecFilePathPropertyDescriptor(Object object)
- {
- itemPropertyDescriptors.add(createItemPropertyDescriptor(
- ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
- getString("_UI_Branch_mspecFilePath_feature"),
- getString("_UI_PropertyDescriptor_description", "_UI_Branch_mspecFilePath_feature", "_UI_Branch_type"),
- SetupPackage.Literals.BRANCH__MSPEC_FILE_PATH, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
- null, null));
- }
-
- /**
- * This adds a property descriptor for the Clone Variable Name feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected void addCloneVariableNamePropertyDescriptor(Object object)
- {
- itemPropertyDescriptors.add(createItemPropertyDescriptor(
- ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
- getString("_UI_Branch_cloneVariableName_feature"),
- getString("_UI_PropertyDescriptor_description", "_UI_Branch_cloneVariableName_feature", "_UI_Branch_type"),
- SetupPackage.Literals.BRANCH__CLONE_VARIABLE_NAME, true, false, false,
- ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
- }
-
- /**
- * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
- * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
- * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
- {
- if (childrenFeatures == null)
- {
- super.getChildrenFeatures(object);
- childrenFeatures.add(SetupPackage.Literals.BRANCH__GIT_CLONES);
- }
- return childrenFeatures;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EStructuralFeature getChildFeature(Object object, Object child)
- {
- // Check the type of the specified child object and return the proper feature to use for
- // adding (see {@link AddCommand}) it as a child.
-
- return super.getChildFeature(object, child);
- }
-
- /**
* This returns Branch.gif.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -207,13 +122,8 @@ public class BranchItemProvider extends ToolInstallationItemProvider implements
switch (notification.getFeatureID(Branch.class))
{
case SetupPackage.BRANCH__NAME:
- case SetupPackage.BRANCH__MSPEC_FILE_PATH:
- case SetupPackage.BRANCH__CLONE_VARIABLE_NAME:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
- case SetupPackage.BRANCH__GIT_CLONES:
- fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
- return;
}
super.notifyChanged(notification);
}
@@ -229,9 +139,6 @@ public class BranchItemProvider extends ToolInstallationItemProvider implements
protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
{
super.collectNewChildDescriptors(newChildDescriptors, object);
-
- newChildDescriptors.add(createChildParameter(SetupPackage.Literals.BRANCH__GIT_CLONES,
- SetupFactory.eINSTANCE.createGitClone()));
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/BuckminsterImportTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/BuckminsterImportTaskItemProvider.java
new file mode 100644
index 0000000000..4a82f656e9
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/BuckminsterImportTaskItemProvider.java
@@ -0,0 +1,176 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.provider;
+
+import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class BuckminsterImportTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BuckminsterImportTaskItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addMspecPropertyDescriptor(object);
+ addTargetPlatformPropertyDescriptor(object);
+ addBundlePoolPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Mspec feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addMspecPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_BuckminsterImportTask_mspec_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_BuckminsterImportTask_mspec_feature",
+ "_UI_BuckminsterImportTask_type"), SetupPackage.Literals.BUCKMINSTER_IMPORT_TASK__MSPEC, true, false,
+ false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Target Platform feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTargetPlatformPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_BuckminsterImportTask_targetPlatform_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_BuckminsterImportTask_targetPlatform_feature",
+ "_UI_BuckminsterImportTask_type"), SetupPackage.Literals.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM, true,
+ false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Bundle Pool feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addBundlePoolPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_BuckminsterImportTask_bundlePool_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_BuckminsterImportTask_bundlePool_feature",
+ "_UI_BuckminsterImportTask_type"), SetupPackage.Literals.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL, true, false,
+ false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns BuckminsterImportTask.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/BuckminsterImportTask"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((BuckminsterImportTask)object).getMspec();
+ return label == null || label.length() == 0 ? getString("_UI_BuckminsterImportTask_type")
+ : getString("_UI_BuckminsterImportTask_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(BuckminsterImportTask.class))
+ {
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC:
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM:
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/CompoundSetupTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/CompoundSetupTaskItemProvider.java
new file mode 100644
index 0000000000..33287c05df
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/CompoundSetupTaskItemProvider.java
@@ -0,0 +1,210 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.provider;
+
+import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupFactory;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class CompoundSetupTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompoundSetupTaskItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_CompoundSetupTask_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_CompoundSetupTask_name_feature",
+ "_UI_CompoundSetupTask_type"), SetupPackage.Literals.COMPOUND_SETUP_TASK__NAME, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
+ {
+ if (childrenFeatures == null)
+ {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child)
+ {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns CompoundSetupTask.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/CompoundSetupTask"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((CompoundSetupTask)object).getName();
+ return label == null || label.length() == 0 ? getString("_UI_CompoundSetupTask_type")
+ : getString("_UI_CompoundSetupTask_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(CompoundSetupTask.class))
+ {
+ case SetupPackage.COMPOUND_SETUP_TASK__NAME:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createCompoundSetupTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createEclipseIniTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createLinkLocationTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createP2Task()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createBuckminsterImportTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createApiBaselineTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createGitCloneTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createEclipsePreferenceTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createStringVariableTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createWorkingSetTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createResourceCopyTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createTextModifyTask()));
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ConfigurableItemItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ConfigurableItemItemProvider.java
new file mode 100644
index 0000000000..8c88c25374
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ConfigurableItemItemProvider.java
@@ -0,0 +1,93 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.provider;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.ConfigurableItem} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ConfigurableItemItemProvider extends SetupTaskContainerItemProvider implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ConfigurableItemItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ return getString("_UI_ConfigurableItem_type");
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ConfigurationItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ConfigurationItemProvider.java
index 3bce868991..305272219b 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ConfigurationItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ConfigurationItemProvider.java
@@ -18,6 +18,7 @@ import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
@@ -186,7 +187,7 @@ public class ConfigurationItemProvider extends ItemProviderAdapter implements IE
@Override
public ResourceLocator getResourceLocator()
{
- return SetupEditPlugin.INSTANCE;
+ return ((IChildCreationExtender)adapterFactory).getResourceLocator();
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipseIniTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipseIniTaskItemProvider.java
new file mode 100644
index 0000000000..4b89965af9
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipseIniTaskItemProvider.java
@@ -0,0 +1,175 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.provider;
+
+import org.eclipse.emf.cdo.releng.setup.EclipseIniTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class EclipseIniTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EclipseIniTaskItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addOptionPropertyDescriptor(object);
+ addValuePropertyDescriptor(object);
+ addVmPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Option feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addOptionPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EclipseIniTask_option_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EclipseIniTask_option_feature",
+ "_UI_EclipseIniTask_type"), SetupPackage.Literals.ECLIPSE_INI_TASK__OPTION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Value feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addValuePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_EclipseIniTask_value_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EclipseIniTask_value_feature", "_UI_EclipseIniTask_type"),
+ SetupPackage.Literals.ECLIPSE_INI_TASK__VALUE, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Vm feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addVmPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_EclipseIniTask_vm_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EclipseIniTask_vm_feature", "_UI_EclipseIniTask_type"),
+ SetupPackage.Literals.ECLIPSE_INI_TASK__VM, true, false, false, ItemPropertyDescriptor.BOOLEAN_VALUE_IMAGE,
+ null, null));
+ }
+
+ /**
+ * This returns EclipseIniTask.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/EclipseIniTask"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getText(Object object)
+ {
+ EclipseIniTaskImpl task = (EclipseIniTaskImpl)object;
+ String label = task.getLabel(task.getValue());
+ return label == null || label.length() == 0 ? getString("_UI_EclipseIniTask_type")
+ : getString("_UI_EclipseIniTask_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(EclipseIniTask.class))
+ {
+ case SetupPackage.ECLIPSE_INI_TASK__OPTION:
+ case SetupPackage.ECLIPSE_INI_TASK__VALUE:
+ case SetupPackage.ECLIPSE_INI_TASK__VM:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ToolPreferenceItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipsePreferenceTaskItemProvider.java
index 016db92189..c05f2f4fe1 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ToolPreferenceItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipsePreferenceTaskItemProvider.java
@@ -1,21 +1,12 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup.provider;
+import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.setup.ToolPreference;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -24,7 +15,6 @@ import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
import org.eclipse.emf.edit.provider.ViewerNotification;
import org.eclipse.core.runtime.Path;
@@ -33,12 +23,12 @@ import java.util.Collection;
import java.util.List;
/**
- * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.ToolPreference} object.
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask} object.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
-public class ToolPreferenceItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+public class EclipsePreferenceTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider,
IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
{
/**
@@ -47,7 +37,7 @@ public class ToolPreferenceItemProvider extends ItemProviderAdapter implements I
* <!-- end-user-doc -->
* @generated
*/
- public ToolPreferenceItemProvider(AdapterFactory adapterFactory)
+ public EclipsePreferenceTaskItemProvider(AdapterFactory adapterFactory)
{
super(adapterFactory);
}
@@ -80,11 +70,12 @@ public class ToolPreferenceItemProvider extends ItemProviderAdapter implements I
protected void addKeyPropertyDescriptor(Object object)
{
itemPropertyDescriptors.add(createItemPropertyDescriptor(
- ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
- getString("_UI_ToolPreference_key_feature"),
- getString("_UI_PropertyDescriptor_description", "_UI_ToolPreference_key_feature", "_UI_ToolPreference_type"),
- SetupPackage.Literals.TOOL_PREFERENCE__KEY, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
- null, null));
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EclipsePreferenceTask_key_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EclipsePreferenceTask_key_feature",
+ "_UI_EclipsePreferenceTask_type"), SetupPackage.Literals.ECLIPSE_PREFERENCE_TASK__KEY, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
}
/**
@@ -96,26 +87,16 @@ public class ToolPreferenceItemProvider extends ItemProviderAdapter implements I
protected void addValuePropertyDescriptor(Object object)
{
itemPropertyDescriptors.add(createItemPropertyDescriptor(
- ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
- getString("_UI_ToolPreference_value_feature"),
- getString("_UI_PropertyDescriptor_description", "_UI_ToolPreference_value_feature", "_UI_ToolPreference_type"),
- SetupPackage.Literals.TOOL_PREFERENCE__VALUE, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
- null, null));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean hasChildren(Object object)
- {
- return hasChildren(object, true);
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EclipsePreferenceTask_value_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_EclipsePreferenceTask_value_feature",
+ "_UI_EclipsePreferenceTask_type"), SetupPackage.Literals.ECLIPSE_PREFERENCE_TASK__VALUE, true, false,
+ false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
}
/**
- * This returns ToolPreference.gif.
+ * This returns EclipsePreferenceTask.gif.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -123,7 +104,7 @@ public class ToolPreferenceItemProvider extends ItemProviderAdapter implements I
@Override
public Object getImage(Object object)
{
- return overlayImage(object, getResourceLocator().getImage("full/obj16/ToolPreference"));
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/EclipsePreferenceTask"));
}
/**
@@ -135,16 +116,16 @@ public class ToolPreferenceItemProvider extends ItemProviderAdapter implements I
@Override
public String getText(Object object)
{
- String key = ((ToolPreference)object).getKey();
- String value = ((ToolPreference)object).getValue();
+ String key = ((EclipsePreferenceTask)object).getKey();
+ String value = ((EclipsePreferenceTask)object).getValue();
if (key != null && key.length() != 0)
{
- key = new Path(key).lastSegment();
+ key = new Path(key).removeFirstSegments(1).toString();
}
else if (value == null || value.length() == 0)
{
- return getString("_UI_ToolPreference_type");
+ return getString("_UI_EclipsePreferenceTask_type");
}
return "" + key + " = " + value;
@@ -162,10 +143,10 @@ public class ToolPreferenceItemProvider extends ItemProviderAdapter implements I
{
updateChildren(notification);
- switch (notification.getFeatureID(ToolPreference.class))
+ switch (notification.getFeatureID(EclipsePreferenceTask.class))
{
- case SetupPackage.TOOL_PREFERENCE__KEY:
- case SetupPackage.TOOL_PREFERENCE__VALUE:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
}
@@ -185,16 +166,4 @@ public class ToolPreferenceItemProvider extends ItemProviderAdapter implements I
super.collectNewChildDescriptors(newChildDescriptors, object);
}
- /**
- * Return the resource locator for this item provider's resources.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public ResourceLocator getResourceLocator()
- {
- return SetupEditPlugin.INSTANCE;
- }
-
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipseVersionItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipseVersionItemProvider.java
index c729eb3506..ec1c6ff5c4 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipseVersionItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/EclipseVersionItemProvider.java
@@ -11,13 +11,9 @@
package org.eclipse.emf.cdo.releng.setup.provider;
import org.eclipse.emf.cdo.releng.setup.EclipseVersion;
-import org.eclipse.emf.cdo.releng.setup.SetupFactory;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.ResourceLocator;
-import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -26,9 +22,7 @@ import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
import org.eclipse.emf.edit.provider.ViewerNotification;
-
import java.util.Collection;
import java.util.List;
@@ -38,7 +32,7 @@ import java.util.List;
* <!-- end-user-doc -->
* @generated
*/
-public class EclipseVersionItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+public class EclipseVersionItemProvider extends ConfigurableItemItemProvider implements IEditingDomainItemProvider,
IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
{
/**
@@ -89,50 +83,6 @@ public class EclipseVersionItemProvider extends ItemProviderAdapter implements I
}
/**
- * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
- * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
- * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
- {
- if (childrenFeatures == null)
- {
- super.getChildrenFeatures(object);
- childrenFeatures.add(SetupPackage.Literals.ECLIPSE_VERSION__DIRECTOR_CALL);
- }
- return childrenFeatures;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EStructuralFeature getChildFeature(Object object, Object child)
- {
- // Check the type of the specified child object and return the proper feature to use for
- // adding (see {@link AddCommand}) it as a child.
-
- return super.getChildFeature(object, child);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean hasChildren(Object object)
- {
- return hasChildren(object, true);
- }
-
- /**
* This returns EclipseVersion.gif.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -175,9 +125,6 @@ public class EclipseVersionItemProvider extends ItemProviderAdapter implements I
case SetupPackage.ECLIPSE_VERSION__VERSION:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
- case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL:
- fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
- return;
}
super.notifyChanged(notification);
}
@@ -193,21 +140,6 @@ public class EclipseVersionItemProvider extends ItemProviderAdapter implements I
protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
{
super.collectNewChildDescriptors(newChildDescriptors, object);
-
- newChildDescriptors.add(createChildParameter(SetupPackage.Literals.ECLIPSE_VERSION__DIRECTOR_CALL,
- SetupFactory.eINSTANCE.createDirectorCall()));
- }
-
- /**
- * Return the resource locator for this item provider's resources.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public ResourceLocator getResourceLocator()
- {
- return SetupEditPlugin.INSTANCE;
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/GitCloneItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/GitCloneTaskItemProvider.java
index 1502c52e00..e08efe55b4 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/GitCloneItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/GitCloneTaskItemProvider.java
@@ -1,21 +1,12 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup.provider;
-import org.eclipse.emf.cdo.releng.setup.GitClone;
+import org.eclipse.emf.cdo.releng.setup.GitCloneTask;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -24,19 +15,18 @@ import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
import org.eclipse.emf.edit.provider.ViewerNotification;
import java.util.Collection;
import java.util.List;
/**
- * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.GitClone} object.
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.GitCloneTask} object.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
-public class GitCloneItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+public class GitCloneTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider,
IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
{
/**
@@ -45,7 +35,7 @@ public class GitCloneItemProvider extends ItemProviderAdapter implements IEditin
* <!-- end-user-doc -->
* @generated
*/
- public GitCloneItemProvider(AdapterFactory adapterFactory)
+ public GitCloneTaskItemProvider(AdapterFactory adapterFactory)
{
super(adapterFactory);
}
@@ -64,6 +54,7 @@ public class GitCloneItemProvider extends ItemProviderAdapter implements IEditin
super.getPropertyDescriptors(object);
addNamePropertyDescriptor(object);
+ addRemoteNamePropertyDescriptor(object);
addRemoteURIPropertyDescriptor(object);
addCheckoutBranchPropertyDescriptor(object);
}
@@ -80,57 +71,65 @@ public class GitCloneItemProvider extends ItemProviderAdapter implements IEditin
{
itemPropertyDescriptors.add(createItemPropertyDescriptor(
((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
- getString("_UI_GitClone_name_feature"),
- getString("_UI_PropertyDescriptor_description", "_UI_GitClone_name_feature", "_UI_GitClone_type"),
- SetupPackage.Literals.GIT_CLONE__NAME, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null,
- null));
+ getString("_UI_GitCloneTask_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_GitCloneTask_name_feature", "_UI_GitCloneTask_type"),
+ SetupPackage.Literals.GIT_CLONE_TASK__NAME, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null, null));
}
/**
- * This adds a property descriptor for the Remote URI feature.
+ * This adds a property descriptor for the Remote Name feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- protected void addRemoteURIPropertyDescriptor(Object object)
+ protected void addRemoteNamePropertyDescriptor(Object object)
{
- itemPropertyDescriptors.add(createItemPropertyDescriptor(
- ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
- getString("_UI_GitClone_remoteURI_feature"),
- getString("_UI_PropertyDescriptor_description", "_UI_GitClone_remoteURI_feature", "_UI_GitClone_type"),
- SetupPackage.Literals.GIT_CLONE__REMOTE_URI, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
- null, null));
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_GitCloneTask_remoteName_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_GitCloneTask_remoteName_feature",
+ "_UI_GitCloneTask_type"), SetupPackage.Literals.GIT_CLONE_TASK__REMOTE_NAME, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
}
/**
- * This adds a property descriptor for the Checkout Branch feature.
+ * This adds a property descriptor for the Remote URI feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- protected void addCheckoutBranchPropertyDescriptor(Object object)
+ protected void addRemoteURIPropertyDescriptor(Object object)
{
itemPropertyDescriptors.add(createItemPropertyDescriptor(
((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
- getString("_UI_GitClone_checkoutBranch_feature"),
- getString("_UI_PropertyDescriptor_description", "_UI_GitClone_checkoutBranch_feature", "_UI_GitClone_type"),
- SetupPackage.Literals.GIT_CLONE__CHECKOUT_BRANCH, true, false, false,
+ getString("_UI_GitCloneTask_remoteURI_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_GitCloneTask_remoteURI_feature", "_UI_GitCloneTask_type"),
+ SetupPackage.Literals.GIT_CLONE_TASK__REMOTE_URI, true, false, false,
ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
}
/**
+ * This adds a property descriptor for the Checkout Branch feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- @Override
- public boolean hasChildren(Object object)
+ protected void addCheckoutBranchPropertyDescriptor(Object object)
{
- return hasChildren(object, true);
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_GitCloneTask_checkoutBranch_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_GitCloneTask_checkoutBranch_feature",
+ "_UI_GitCloneTask_type"), SetupPackage.Literals.GIT_CLONE_TASK__CHECKOUT_BRANCH, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
}
/**
- * This returns GitClone.gif.
+ * This returns GitCloneTask.gif.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -138,7 +137,7 @@ public class GitCloneItemProvider extends ItemProviderAdapter implements IEditin
@Override
public Object getImage(Object object)
{
- return overlayImage(object, getResourceLocator().getImage("full/obj16/GitClone"));
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/GitCloneTask"));
}
/**
@@ -150,11 +149,11 @@ public class GitCloneItemProvider extends ItemProviderAdapter implements IEditin
@Override
public String getText(Object object)
{
- String uri = ((GitClone)object).getRemoteURI();
- String branch = ((GitClone)object).getCheckoutBranch();
+ String uri = ((GitCloneTask)object).getRemoteURI();
+ String branch = ((GitCloneTask)object).getCheckoutBranch();
if ((uri == null || uri.length() == 0) && (branch == null || branch.length() == 0))
{
- return getString("_UI_GitClone_type");
+ return getString("_UI_GitCloneTask_type");
}
return "" + uri + " (" + branch + ")";
@@ -172,11 +171,12 @@ public class GitCloneItemProvider extends ItemProviderAdapter implements IEditin
{
updateChildren(notification);
- switch (notification.getFeatureID(GitClone.class))
+ switch (notification.getFeatureID(GitCloneTask.class))
{
- case SetupPackage.GIT_CLONE__NAME:
- case SetupPackage.GIT_CLONE__REMOTE_URI:
- case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH:
+ case SetupPackage.GIT_CLONE_TASK__NAME:
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME:
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_URI:
+ case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
}
@@ -196,16 +196,4 @@ public class GitCloneItemProvider extends ItemProviderAdapter implements IEditin
super.collectNewChildDescriptors(newChildDescriptors, object);
}
- /**
- * Return the resource locator for this item provider's resources.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public ResourceLocator getResourceLocator()
- {
- return SetupEditPlugin.INSTANCE;
- }
-
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/InstallableUnitItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/InstallableUnitItemProvider.java
index 626906c9f8..7113ea59d9 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/InstallableUnitItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/InstallableUnitItemProvider.java
@@ -17,6 +17,7 @@ import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
@@ -168,7 +169,7 @@ public class InstallableUnitItemProvider extends ItemProviderAdapter implements
@Override
public ResourceLocator getResourceLocator()
{
- return SetupEditPlugin.INSTANCE;
+ return ((IChildCreationExtender)adapterFactory).getResourceLocator();
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/LinkLocationItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/LinkLocationTaskItemProvider.java
index bca3dc48a8..078df0b8b2 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/LinkLocationItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/LinkLocationTaskItemProvider.java
@@ -1,21 +1,12 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup.provider;
-import org.eclipse.emf.cdo.releng.setup.LinkLocation;
+import org.eclipse.emf.cdo.releng.setup.LinkLocationTask;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -24,19 +15,18 @@ import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
import org.eclipse.emf.edit.provider.ViewerNotification;
import java.util.Collection;
import java.util.List;
/**
- * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.LinkLocation} object.
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask} object.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
-public class LinkLocationItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+public class LinkLocationTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider,
IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
{
/**
@@ -45,7 +35,7 @@ public class LinkLocationItemProvider extends ItemProviderAdapter implements IEd
* <!-- end-user-doc -->
* @generated
*/
- public LinkLocationItemProvider(AdapterFactory adapterFactory)
+ public LinkLocationTaskItemProvider(AdapterFactory adapterFactory)
{
super(adapterFactory);
}
@@ -78,11 +68,12 @@ public class LinkLocationItemProvider extends ItemProviderAdapter implements IEd
protected void addPathPropertyDescriptor(Object object)
{
itemPropertyDescriptors.add(createItemPropertyDescriptor(
- ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
- getString("_UI_LinkLocation_path_feature"),
- getString("_UI_PropertyDescriptor_description", "_UI_LinkLocation_path_feature", "_UI_LinkLocation_type"),
- SetupPackage.Literals.LINK_LOCATION__PATH, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
- null, null));
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_LinkLocationTask_path_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_LinkLocationTask_path_feature",
+ "_UI_LinkLocationTask_type"), SetupPackage.Literals.LINK_LOCATION_TASK__PATH, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
}
/**
@@ -94,26 +85,16 @@ public class LinkLocationItemProvider extends ItemProviderAdapter implements IEd
protected void addNamePropertyDescriptor(Object object)
{
itemPropertyDescriptors.add(createItemPropertyDescriptor(
- ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
- getString("_UI_LinkLocation_name_feature"),
- getString("_UI_PropertyDescriptor_description", "_UI_LinkLocation_name_feature", "_UI_LinkLocation_type"),
- SetupPackage.Literals.LINK_LOCATION__NAME, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
- null, null));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean hasChildren(Object object)
- {
- return hasChildren(object, true);
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_LinkLocationTask_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_LinkLocationTask_name_feature",
+ "_UI_LinkLocationTask_type"), SetupPackage.Literals.LINK_LOCATION_TASK__NAME, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
}
/**
- * This returns LinkLocation.gif.
+ * This returns LinkLocationTask.gif.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -121,7 +102,7 @@ public class LinkLocationItemProvider extends ItemProviderAdapter implements IEd
@Override
public Object getImage(Object object)
{
- return overlayImage(object, getResourceLocator().getImage("full/obj16/LinkLocation"));
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/LinkLocationTask"));
}
/**
@@ -133,9 +114,9 @@ public class LinkLocationItemProvider extends ItemProviderAdapter implements IEd
@Override
public String getText(Object object)
{
- String label = ((LinkLocation)object).getPath();
- return label == null || label.length() == 0 ? getString("_UI_LinkLocation_type")
- : getString("_UI_LinkLocation_type") + " " + label;
+ String label = ((LinkLocationTask)object).getPath();
+ return label == null || label.length() == 0 ? getString("_UI_LinkLocationTask_type")
+ : getString("_UI_LinkLocationTask_type") + " " + label;
}
/**
@@ -150,10 +131,10 @@ public class LinkLocationItemProvider extends ItemProviderAdapter implements IEd
{
updateChildren(notification);
- switch (notification.getFeatureID(LinkLocation.class))
+ switch (notification.getFeatureID(LinkLocationTask.class))
{
- case SetupPackage.LINK_LOCATION__PATH:
- case SetupPackage.LINK_LOCATION__NAME:
+ case SetupPackage.LINK_LOCATION_TASK__PATH:
+ case SetupPackage.LINK_LOCATION_TASK__NAME:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
}
@@ -173,16 +154,4 @@ public class LinkLocationItemProvider extends ItemProviderAdapter implements IEd
super.collectNewChildDescriptors(newChildDescriptors, object);
}
- /**
- * Return the resource locator for this item provider's resources.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public ResourceLocator getResourceLocator()
- {
- return SetupEditPlugin.INSTANCE;
- }
-
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/OneTimeSetupTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/OneTimeSetupTaskItemProvider.java
new file mode 100644
index 0000000000..d0a42aa51d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/OneTimeSetupTaskItemProvider.java
@@ -0,0 +1,127 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.provider;
+
+import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class OneTimeSetupTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public OneTimeSetupTaskItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addIdPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Id feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addIdPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_OneTimeSetupTask_id_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_OneTimeSetupTask_id_feature",
+ "_UI_OneTimeSetupTask_type"), SetupPackage.Literals.ONE_TIME_SETUP_TASK__ID, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String label = ((OneTimeSetupTask)object).getId();
+ return label == null || label.length() == 0 ? getString("_UI_OneTimeSetupTask_type")
+ : getString("_UI_OneTimeSetupTask_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(OneTimeSetupTask.class))
+ {
+ case SetupPackage.ONE_TIME_SETUP_TASK__ID:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/P2RepositoryItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/P2RepositoryItemProvider.java
index 2fe20cbadc..1bd27fc50a 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/P2RepositoryItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/P2RepositoryItemProvider.java
@@ -17,6 +17,7 @@ import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
@@ -163,7 +164,7 @@ public class P2RepositoryItemProvider extends ItemProviderAdapter implements IEd
@Override
public ResourceLocator getResourceLocator()
{
- return SetupEditPlugin.INSTANCE;
+ return ((IChildCreationExtender)adapterFactory).getResourceLocator();
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/P2TaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/P2TaskItemProvider.java
new file mode 100644
index 0000000000..0091048daf
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/P2TaskItemProvider.java
@@ -0,0 +1,157 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.provider;
+
+import org.eclipse.emf.cdo.releng.setup.P2Task;
+import org.eclipse.emf.cdo.releng.setup.SetupFactory;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.P2Task} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class P2TaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public P2TaskItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
+ {
+ if (childrenFeatures == null)
+ {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(SetupPackage.Literals.P2_TASK__P2_REPOSITORIES);
+ childrenFeatures.add(SetupPackage.Literals.P2_TASK__INSTALLABLE_UNITS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child)
+ {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns P2Task.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/P2Task"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getText(Object object)
+ {
+ return getString("_UI_P2Task_type");
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(P2Task.class))
+ {
+ case SetupPackage.P2_TASK__P2_REPOSITORIES:
+ case SetupPackage.P2_TASK__INSTALLABLE_UNITS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.P2_TASK__P2_REPOSITORIES,
+ SetupFactory.eINSTANCE.createP2Repository()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.P2_TASK__INSTALLABLE_UNITS,
+ SetupFactory.eINSTANCE.createInstallableUnit()));
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/PreferencesItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/PreferencesItemProvider.java
index 729cc60242..bf04c2f0a3 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/PreferencesItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/PreferencesItemProvider.java
@@ -11,11 +11,10 @@
package org.eclipse.emf.cdo.releng.setup.provider;
import org.eclipse.emf.cdo.releng.setup.Preferences;
-import org.eclipse.emf.cdo.releng.setup.SetupFactory;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -25,6 +24,7 @@ import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
+
import java.util.Collection;
import java.util.List;
@@ -34,7 +34,7 @@ import java.util.List;
* <!-- end-user-doc -->
* @generated
*/
-public class PreferencesItemProvider extends ToolInstallationItemProvider implements IEditingDomainItemProvider,
+public class PreferencesItemProvider extends SetupTaskContainerItemProvider implements IEditingDomainItemProvider,
IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
{
/**
@@ -119,39 +119,6 @@ public class PreferencesItemProvider extends ToolInstallationItemProvider implem
}
/**
- * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
- * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
- * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
- {
- if (childrenFeatures == null)
- {
- super.getChildrenFeatures(object);
- childrenFeatures.add(SetupPackage.Literals.PREFERENCES__LINK_LOCATIONS);
- }
- return childrenFeatures;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EStructuralFeature getChildFeature(Object object, Object child)
- {
- // Check the type of the specified child object and return the proper feature to use for
- // adding (see {@link AddCommand}) it as a child.
-
- return super.getChildFeature(object, child);
- }
-
- /**
* This returns Preferences.gif.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -196,9 +163,6 @@ public class PreferencesItemProvider extends ToolInstallationItemProvider implem
case SetupPackage.PREFERENCES__GIT_PREFIX:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
- case SetupPackage.PREFERENCES__LINK_LOCATIONS:
- fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
- return;
}
super.notifyChanged(notification);
}
@@ -214,9 +178,6 @@ public class PreferencesItemProvider extends ToolInstallationItemProvider implem
protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
{
super.collectNewChildDescriptors(newChildDescriptors, object);
-
- newChildDescriptors.add(createChildParameter(SetupPackage.Literals.PREFERENCES__LINK_LOCATIONS,
- SetupFactory.eINSTANCE.createLinkLocation()));
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ProjectItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ProjectItemProvider.java
index f68b2d32fb..88e402947f 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ProjectItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ProjectItemProvider.java
@@ -14,7 +14,6 @@ import org.eclipse.emf.cdo.releng.setup.Project;
import org.eclipse.emf.cdo.releng.setup.SetupFactory;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsFactory;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EStructuralFeature;
@@ -37,7 +36,7 @@ import java.util.List;
* <!-- end-user-doc -->
* @generated
*/
-public class ProjectItemProvider extends ToolInstallationItemProvider implements IEditingDomainItemProvider,
+public class ProjectItemProvider extends ConfigurableItemItemProvider implements IEditingDomainItemProvider,
IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
{
/**
@@ -100,8 +99,6 @@ public class ProjectItemProvider extends ToolInstallationItemProvider implements
{
super.getChildrenFeatures(object);
childrenFeatures.add(SetupPackage.Literals.PROJECT__BRANCHES);
- childrenFeatures.add(SetupPackage.Literals.PROJECT__API_BASELINES);
- childrenFeatures.add(SetupPackage.Literals.PROJECT__WORKING_SET_GROUP);
}
return childrenFeatures;
}
@@ -163,8 +160,6 @@ public class ProjectItemProvider extends ToolInstallationItemProvider implements
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
case SetupPackage.PROJECT__BRANCHES:
- case SetupPackage.PROJECT__API_BASELINES:
- case SetupPackage.PROJECT__WORKING_SET_GROUP:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
return;
}
@@ -185,12 +180,6 @@ public class ProjectItemProvider extends ToolInstallationItemProvider implements
newChildDescriptors.add(createChildParameter(SetupPackage.Literals.PROJECT__BRANCHES,
SetupFactory.eINSTANCE.createBranch()));
-
- newChildDescriptors.add(createChildParameter(SetupPackage.Literals.PROJECT__API_BASELINES,
- SetupFactory.eINSTANCE.createApiBaseline()));
-
- newChildDescriptors.add(createChildParameter(SetupPackage.Literals.PROJECT__WORKING_SET_GROUP,
- WorkingSetsFactory.eINSTANCE.createWorkingSetGroup()));
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ResourceCopyTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ResourceCopyTaskItemProvider.java
new file mode 100644
index 0000000000..5bf51eb602
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ResourceCopyTaskItemProvider.java
@@ -0,0 +1,160 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskScope;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ResourceCopyTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ResourceCopyTaskItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addSourceURLPropertyDescriptor(object);
+ addTargetURLPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Source URL feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addSourceURLPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ResourceCopyTask_sourceURL_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ResourceCopyTask_sourceURL_feature",
+ "_UI_ResourceCopyTask_type"), SetupPackage.Literals.RESOURCE_COPY_TASK__SOURCE_URL, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Target URL feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addTargetURLPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_ResourceCopyTask_targetURL_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_ResourceCopyTask_targetURL_feature",
+ "_UI_ResourceCopyTask_type"), SetupPackage.Literals.RESOURCE_COPY_TASK__TARGET_URL, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns ResourceCopyTask.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/ResourceCopyTask"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ SetupTaskScope labelValue = ((ResourceCopyTask)object).getScope();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_ResourceCopyTask_type")
+ : getString("_UI_ResourceCopyTask_type") + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(ResourceCopyTask.class))
+ {
+ case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL:
+ case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupEditPlugin.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupEditPlugin.java
index 304ee79e5b..c4e3d0b87a 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupEditPlugin.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupEditPlugin.java
@@ -10,7 +10,9 @@
*/
package org.eclipse.emf.cdo.releng.setup.provider;
+import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesEditPlugin;
import org.eclipse.emf.cdo.releng.workingsets.provider.WorkingSetsEditPlugin;
+
import org.eclipse.emf.common.EMFPlugin;
import org.eclipse.emf.common.util.ResourceLocator;
@@ -46,7 +48,7 @@ public final class SetupEditPlugin extends EMFPlugin
*/
public SetupEditPlugin()
{
- super(new ResourceLocator[] { WorkingSetsEditPlugin.INSTANCE, });
+ super(new ResourceLocator[] { WorkingSetsEditPlugin.INSTANCE, PredicatesEditPlugin.INSTANCE, });
}
/**
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProvider.java
index 24fa6c1389..fc4dfcf618 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProvider.java
@@ -19,6 +19,7 @@ import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
@@ -117,7 +118,6 @@ public class SetupItemProvider extends ItemProviderAdapter implements IEditingDo
childrenFeatures.add(SetupPackage.Literals.SETUP__BRANCH);
childrenFeatures.add(SetupPackage.Literals.SETUP__ECLIPSE_VERSION);
childrenFeatures.add(SetupPackage.Literals.SETUP__PREFERENCES);
- childrenFeatures.add(SetupPackage.Literals.SETUP__UPDATE_LOCATIONS);
}
return childrenFeatures;
}
@@ -186,7 +186,6 @@ public class SetupItemProvider extends ItemProviderAdapter implements IEditingDo
switch (notification.getFeatureID(Setup.class))
{
case SetupPackage.SETUP__PREFERENCES:
- case SetupPackage.SETUP__UPDATE_LOCATIONS:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
return;
}
@@ -207,9 +206,6 @@ public class SetupItemProvider extends ItemProviderAdapter implements IEditingDo
newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP__PREFERENCES,
SetupFactory.eINSTANCE.createPreferences()));
-
- newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP__UPDATE_LOCATIONS,
- SetupFactory.eINSTANCE.createP2Repository()));
}
/**
@@ -221,7 +217,7 @@ public class SetupItemProvider extends ItemProviderAdapter implements IEditingDo
@Override
public ResourceLocator getResourceLocator()
{
- return SetupEditPlugin.INSTANCE;
+ return ((IChildCreationExtender)adapterFactory).getResourceLocator();
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProviderAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProviderAdapterFactory.java
index d2d21a513e..ff8b513a6f 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProviderAdapterFactory.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupItemProviderAdapterFactory.java
@@ -10,15 +10,20 @@
*/
package org.eclipse.emf.cdo.releng.setup.provider;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
import org.eclipse.emf.cdo.releng.setup.util.SetupAdapterFactory;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.emf.edit.provider.ChangeNotifier;
+import org.eclipse.emf.edit.provider.ChildCreationExtenderManager;
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.IChangeNotifier;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
import org.eclipse.emf.edit.provider.IDisposable;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
@@ -29,6 +34,7 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.List;
/**
* This is the factory that is used to provide the interfaces needed to support Viewers.
@@ -40,7 +46,7 @@ import java.util.Collection;
* @generated
*/
public class SetupItemProviderAdapterFactory extends SetupAdapterFactory implements ComposeableAdapterFactory,
- IChangeNotifier, IDisposable
+ IChangeNotifier, IDisposable, IChildCreationExtender
{
/**
* This keeps track of the root adapter factory that delegates to this adapter factory.
@@ -59,6 +65,15 @@ public class SetupItemProviderAdapterFactory extends SetupAdapterFactory impleme
protected IChangeNotifier changeNotifier = new ChangeNotifier();
/**
+ * This helps manage the child creation extenders.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ChildCreationExtenderManager childCreationExtenderManager = new ChildCreationExtenderManager(
+ SetupEditPlugin.INSTANCE, SetupPackage.eNS_URI);
+
+ /**
* This keeps track of all the supported types checked by {@link #isFactoryForType isFactoryForType}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -157,6 +172,56 @@ public class SetupItemProviderAdapterFactory extends SetupAdapterFactory impleme
}
/**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ApiBaselineTaskItemProvider apiBaselineTaskItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createApiBaselineTaskAdapter()
+ {
+ if (apiBaselineTaskItemProvider == null)
+ {
+ apiBaselineTaskItemProvider = new ApiBaselineTaskItemProvider(this);
+ }
+
+ return apiBaselineTaskItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.GitCloneTask} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GitCloneTaskItemProvider gitCloneTaskItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.GitCloneTask}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createGitCloneTaskAdapter()
+ {
+ if (gitCloneTaskItemProvider == null)
+ {
+ gitCloneTaskItemProvider = new GitCloneTaskItemProvider(this);
+ }
+
+ return gitCloneTaskItemProvider;
+ }
+
+ /**
* This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.EclipseVersion} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -182,28 +247,28 @@ public class SetupItemProviderAdapterFactory extends SetupAdapterFactory impleme
}
/**
- * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.DirectorCall} instances.
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.P2Task} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- protected DirectorCallItemProvider directorCallItemProvider;
+ protected P2TaskItemProvider p2TaskItemProvider;
/**
- * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.DirectorCall}.
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.P2Task}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
- public Adapter createDirectorCallAdapter()
+ public Adapter createP2TaskAdapter()
{
- if (directorCallItemProvider == null)
+ if (p2TaskItemProvider == null)
{
- directorCallItemProvider = new DirectorCallItemProvider(this);
+ p2TaskItemProvider = new P2TaskItemProvider(this);
}
- return directorCallItemProvider;
+ return p2TaskItemProvider;
}
/**
@@ -257,128 +322,228 @@ public class SetupItemProviderAdapterFactory extends SetupAdapterFactory impleme
}
/**
- * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.ApiBaseline} instances.
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.Setup} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- protected ApiBaselineItemProvider apiBaselineItemProvider;
+ protected SetupItemProvider setupItemProvider;
/**
- * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.ApiBaseline}.
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.Setup}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
- public Adapter createApiBaselineAdapter()
+ public Adapter createSetupAdapter()
{
- if (apiBaselineItemProvider == null)
+ if (setupItemProvider == null)
{
- apiBaselineItemProvider = new ApiBaselineItemProvider(this);
+ setupItemProvider = new SetupItemProvider(this);
}
- return apiBaselineItemProvider;
+ return setupItemProvider;
}
/**
- * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.GitClone} instances.
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- protected GitCloneItemProvider gitCloneItemProvider;
+ protected WorkingSetTaskItemProvider workingSetTaskItemProvider;
/**
- * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.GitClone}.
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
- public Adapter createGitCloneAdapter()
+ public Adapter createWorkingSetTaskAdapter()
{
- if (gitCloneItemProvider == null)
+ if (workingSetTaskItemProvider == null)
{
- gitCloneItemProvider = new GitCloneItemProvider(this);
+ workingSetTaskItemProvider = new WorkingSetTaskItemProvider(this);
}
- return gitCloneItemProvider;
+ return workingSetTaskItemProvider;
}
/**
- * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.Setup} instances.
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- protected SetupItemProvider setupItemProvider;
+ protected ResourceCopyTaskItemProvider resourceCopyTaskItemProvider;
/**
- * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.Setup}.
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createResourceCopyTaskAdapter()
+ {
+ if (resourceCopyTaskItemProvider == null)
+ {
+ resourceCopyTaskItemProvider = new ResourceCopyTaskItemProvider(this);
+ }
+
+ return resourceCopyTaskItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.TextModifyTask} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TextModifyTaskItemProvider textModifyTaskItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.TextModifyTask}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createTextModifyTaskAdapter()
+ {
+ if (textModifyTaskItemProvider == null)
+ {
+ textModifyTaskItemProvider = new TextModifyTaskItemProvider(this);
+ }
+
+ return textModifyTaskItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.TextModification} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TextModificationItemProvider textModificationItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.TextModification}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createTextModificationAdapter()
+ {
+ if (textModificationItemProvider == null)
+ {
+ textModificationItemProvider = new TextModificationItemProvider(this);
+ }
+
+ return textModificationItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EclipseIniTaskItemProvider eclipseIniTaskItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
- public Adapter createSetupAdapter()
+ public Adapter createEclipseIniTaskAdapter()
{
- if (setupItemProvider == null)
+ if (eclipseIniTaskItemProvider == null)
{
- setupItemProvider = new SetupItemProvider(this);
+ eclipseIniTaskItemProvider = new EclipseIniTaskItemProvider(this);
}
- return setupItemProvider;
+ return eclipseIniTaskItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompoundSetupTaskItemProvider compoundSetupTaskItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createCompoundSetupTaskAdapter()
+ {
+ if (compoundSetupTaskItemProvider == null)
+ {
+ compoundSetupTaskItemProvider = new CompoundSetupTaskItemProvider(this);
+ }
+
+ return compoundSetupTaskItemProvider;
}
/**
- * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.ToolPreference} instances.
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- protected ToolPreferenceItemProvider toolPreferenceItemProvider;
+ protected BuckminsterImportTaskItemProvider buckminsterImportTaskItemProvider;
/**
- * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.ToolPreference}.
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
- public Adapter createToolPreferenceAdapter()
+ public Adapter createBuckminsterImportTaskAdapter()
{
- if (toolPreferenceItemProvider == null)
+ if (buckminsterImportTaskItemProvider == null)
{
- toolPreferenceItemProvider = new ToolPreferenceItemProvider(this);
+ buckminsterImportTaskItemProvider = new BuckminsterImportTaskItemProvider(this);
}
- return toolPreferenceItemProvider;
+ return buckminsterImportTaskItemProvider;
}
/**
- * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.LinkLocation} instances.
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.StringVariableTask} instances.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- protected LinkLocationItemProvider linkLocationItemProvider;
+ protected StringVariableTaskItemProvider stringVariableTaskItemProvider;
/**
- * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.LinkLocation}.
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.StringVariableTask}.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
- public Adapter createLinkLocationAdapter()
+ public Adapter createStringVariableTaskAdapter()
{
- if (linkLocationItemProvider == null)
+ if (stringVariableTaskItemProvider == null)
{
- linkLocationItemProvider = new LinkLocationItemProvider(this);
+ stringVariableTaskItemProvider = new StringVariableTaskItemProvider(this);
}
- return linkLocationItemProvider;
+ return stringVariableTaskItemProvider;
}
/**
@@ -407,6 +572,56 @@ public class SetupItemProviderAdapterFactory extends SetupAdapterFactory impleme
}
/**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LinkLocationTaskItemProvider linkLocationTaskItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createLinkLocationTaskAdapter()
+ {
+ if (linkLocationTaskItemProvider == null)
+ {
+ linkLocationTaskItemProvider = new LinkLocationTaskItemProvider(this);
+ }
+
+ return linkLocationTaskItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask} instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EclipsePreferenceTaskItemProvider eclipsePreferenceTaskItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Adapter createEclipsePreferenceTaskAdapter()
+ {
+ if (eclipsePreferenceTaskItemProvider == null)
+ {
+ eclipsePreferenceTaskItemProvider = new EclipsePreferenceTaskItemProvider(this);
+ }
+
+ return eclipsePreferenceTaskItemProvider;
+ }
+
+ /**
* This returns the root adapter factory that contains this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -472,6 +687,36 @@ public class SetupItemProviderAdapterFactory extends SetupAdapterFactory impleme
}
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public List<IChildCreationExtender> getChildCreationExtenders()
+ {
+ return childCreationExtenderManager.getChildCreationExtenders();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Collection<?> getNewChildDescriptors(Object object, EditingDomain editingDomain)
+ {
+ return childCreationExtenderManager.getNewChildDescriptors(object, editingDomain);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ResourceLocator getResourceLocator()
+ {
+ return childCreationExtenderManager;
+ }
+
+ /**
* This adds a listener.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -517,32 +762,48 @@ public class SetupItemProviderAdapterFactory extends SetupAdapterFactory impleme
*/
public void dispose()
{
- if (preferencesItemProvider != null)
- preferencesItemProvider.dispose();
- if (linkLocationItemProvider != null)
- linkLocationItemProvider.dispose();
- if (toolPreferenceItemProvider != null)
- toolPreferenceItemProvider.dispose();
if (eclipseVersionItemProvider != null)
eclipseVersionItemProvider.dispose();
- if (directorCallItemProvider != null)
- directorCallItemProvider.dispose();
- if (installableUnitItemProvider != null)
- installableUnitItemProvider.dispose();
- if (p2RepositoryItemProvider != null)
- p2RepositoryItemProvider.dispose();
if (configurationItemProvider != null)
configurationItemProvider.dispose();
if (projectItemProvider != null)
projectItemProvider.dispose();
if (branchItemProvider != null)
branchItemProvider.dispose();
- if (apiBaselineItemProvider != null)
- apiBaselineItemProvider.dispose();
- if (gitCloneItemProvider != null)
- gitCloneItemProvider.dispose();
+ if (preferencesItemProvider != null)
+ preferencesItemProvider.dispose();
if (setupItemProvider != null)
setupItemProvider.dispose();
+ if (compoundSetupTaskItemProvider != null)
+ compoundSetupTaskItemProvider.dispose();
+ if (eclipseIniTaskItemProvider != null)
+ eclipseIniTaskItemProvider.dispose();
+ if (linkLocationTaskItemProvider != null)
+ linkLocationTaskItemProvider.dispose();
+ if (p2TaskItemProvider != null)
+ p2TaskItemProvider.dispose();
+ if (installableUnitItemProvider != null)
+ installableUnitItemProvider.dispose();
+ if (p2RepositoryItemProvider != null)
+ p2RepositoryItemProvider.dispose();
+ if (buckminsterImportTaskItemProvider != null)
+ buckminsterImportTaskItemProvider.dispose();
+ if (apiBaselineTaskItemProvider != null)
+ apiBaselineTaskItemProvider.dispose();
+ if (gitCloneTaskItemProvider != null)
+ gitCloneTaskItemProvider.dispose();
+ if (eclipsePreferenceTaskItemProvider != null)
+ eclipsePreferenceTaskItemProvider.dispose();
+ if (stringVariableTaskItemProvider != null)
+ stringVariableTaskItemProvider.dispose();
+ if (workingSetTaskItemProvider != null)
+ workingSetTaskItemProvider.dispose();
+ if (resourceCopyTaskItemProvider != null)
+ resourceCopyTaskItemProvider.dispose();
+ if (textModifyTaskItemProvider != null)
+ textModifyTaskItemProvider.dispose();
+ if (textModificationItemProvider != null)
+ textModificationItemProvider.dispose();
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/DirectorCallItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupTaskContainerItemProvider.java
index 889cb6a6ee..61b405bc40 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/DirectorCallItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupTaskContainerItemProvider.java
@@ -1,25 +1,15 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup.provider;
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
-import org.eclipse.emf.cdo.releng.setup.InstallableUnit;
import org.eclipse.emf.cdo.releng.setup.SetupFactory;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
@@ -28,30 +18,25 @@ import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemProviderAdapter;
import org.eclipse.emf.edit.provider.ViewerNotification;
-
import java.util.Collection;
import java.util.List;
/**
- * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.DirectorCall} object.
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer} object.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
-public class DirectorCallItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+public class SetupTaskContainerItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
{
- private static final String PREFIX = "org.eclipse.";
-
- private static final String SUFFIX = ".feature.group";
-
/**
* This constructs an instance from a factory and a notifier.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- public DirectorCallItemProvider(AdapterFactory adapterFactory)
+ public SetupTaskContainerItemProvider(AdapterFactory adapterFactory)
{
super(adapterFactory);
}
@@ -87,8 +72,7 @@ public class DirectorCallItemProvider extends ItemProviderAdapter implements IEd
if (childrenFeatures == null)
{
super.getChildrenFeatures(object);
- childrenFeatures.add(SetupPackage.Literals.DIRECTOR_CALL__INSTALLABLE_UNITS);
- childrenFeatures.add(SetupPackage.Literals.DIRECTOR_CALL__P2_REPOSITORIES);
+ childrenFeatures.add(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS);
}
return childrenFeatures;
}
@@ -119,56 +103,15 @@ public class DirectorCallItemProvider extends ItemProviderAdapter implements IEd
}
/**
- * This returns DirectorCall.gif.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object getImage(Object object)
- {
- return overlayImage(object, getResourceLocator().getImage("full/obj16/DirectorCall"));
- }
-
- /**
* This returns the label text for the adapted class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @generated NOT
+ * @generated
*/
@Override
public String getText(Object object)
{
- DirectorCall directorCall = (DirectorCall)object;
- EList<InstallableUnit> installableUnits = directorCall.getInstallableUnits();
- if (!installableUnits.isEmpty())
- {
- StringBuilder builder = new StringBuilder();
- for (InstallableUnit installableUnit : installableUnits)
- {
- if (builder.length() > 0)
- {
- builder.append(", ");
- }
-
- String id = installableUnit.getId();
- if (id.startsWith(PREFIX))
- {
- id = id.substring(PREFIX.length());
- }
-
- if (id.endsWith(SUFFIX))
- {
- id = id.substring(0, id.length() - SUFFIX.length());
- }
-
- builder.append(id);
- }
-
- return getString("_UI_DirectorCall_type") + " (" + builder + ")";
- }
-
- return getString("_UI_DirectorCall_type");
+ return getString("_UI_SetupTaskContainer_type");
}
/**
@@ -183,10 +126,9 @@ public class DirectorCallItemProvider extends ItemProviderAdapter implements IEd
{
updateChildren(notification);
- switch (notification.getFeatureID(DirectorCall.class))
+ switch (notification.getFeatureID(SetupTaskContainer.class))
{
- case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS:
- case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES:
+ case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
return;
}
@@ -205,11 +147,41 @@ public class DirectorCallItemProvider extends ItemProviderAdapter implements IEd
{
super.collectNewChildDescriptors(newChildDescriptors, object);
- newChildDescriptors.add(createChildParameter(SetupPackage.Literals.DIRECTOR_CALL__INSTALLABLE_UNITS,
- SetupFactory.eINSTANCE.createInstallableUnit()));
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createCompoundSetupTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createEclipseIniTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createLinkLocationTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createP2Task()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createBuckminsterImportTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createApiBaselineTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createGitCloneTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createEclipsePreferenceTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createStringVariableTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createWorkingSetTask()));
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createResourceCopyTask()));
- newChildDescriptors.add(createChildParameter(SetupPackage.Literals.DIRECTOR_CALL__P2_REPOSITORIES,
- SetupFactory.eINSTANCE.createP2Repository()));
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.SETUP_TASK_CONTAINER__SETUP_TASKS,
+ SetupFactory.eINSTANCE.createTextModifyTask()));
}
/**
@@ -221,7 +193,7 @@ public class DirectorCallItemProvider extends ItemProviderAdapter implements IEd
@Override
public ResourceLocator getResourceLocator()
{
- return SetupEditPlugin.INSTANCE;
+ return ((IChildCreationExtender)adapterFactory).getResourceLocator();
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupTaskItemProvider.java
new file mode 100644
index 0000000000..5cf6ac990b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/SetupTaskItemProvider.java
@@ -0,0 +1,349 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.provider;
+
+import org.eclipse.emf.cdo.releng.setup.Configuration;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskScope;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.ResourceLocator;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.SetupTask} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SetupTaskItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ private static final Map<Set<Trigger>, IItemLabelProvider> EXCLUSION_LABEL_PROVIDERS = new HashMap<Set<Trigger>, IItemLabelProvider>();
+
+ static
+ {
+ for (Set<Trigger> validTriggers : Trigger.LITERALS.keySet())
+ {
+ final Map<Set<Trigger>, String> exclusionLabels = new HashMap<Set<Trigger>, String>();
+
+ for (Set<Trigger> triggers : Trigger.LITERALS.keySet())
+ {
+ Set<Trigger> compliment = new LinkedHashSet<Trigger>(validTriggers);
+ compliment.removeAll(triggers);
+ exclusionLabels.put(triggers, Trigger.LITERALS.get(compliment));
+ }
+
+ EXCLUSION_LABEL_PROVIDERS.put(validTriggers, new IItemLabelProvider()
+ {
+ public String getText(Object object)
+ {
+ return exclusionLabels.get(object);
+ }
+
+ public Object getImage(Object object)
+ {
+ return null;
+ }
+ });
+ }
+ }
+
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SetupTaskItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addRequirementsPropertyDescriptor(object);
+ addRestrictionsPropertyDescriptor(object);
+ addScopePropertyDescriptor(object);
+ addExcludedTriggersPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Requirements feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected void addRequirementsPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory)
+ .getRootAdapterFactory(), getResourceLocator(), getString("_UI_SetupTask_requirements_feature"), getString(
+ "_UI_PropertyDescriptor_description", "_UI_SetupTask_requirements_feature", "_UI_SetupTask_type"),
+ SetupPackage.Literals.SETUP_TASK__REQUIREMENTS, true, false, true, null, null, null)
+ {
+ private IItemLabelProvider labelProvider = new HierarchicalItemLabelProvider(itemDelegator);
+
+ @Override
+ public IItemLabelProvider getLabelProvider(Object object)
+ {
+ return labelProvider;
+ }
+
+ @Override
+ public Collection<?> getChoiceOfValues(Object object)
+ {
+ SetupTask setupTask = (SetupTask)object;
+ Collection<?> result = new ArrayList<Object>(super.getChoiceOfValues(object));
+ for (Iterator<?> it = result.iterator(); it.hasNext();)
+ {
+ Object value = it.next();
+ if (value instanceof SetupTask && ((SetupTask)value).requires(setupTask))
+ {
+ // Remove items that would cause a circularity.
+ it.remove();
+ }
+ }
+ return result;
+ }
+
+ });
+ }
+
+ /**
+ * This adds a property descriptor for the Restrictions feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected void addRestrictionsPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory)
+ .getRootAdapterFactory(), getResourceLocator(), getString("_UI_SetupTask_restrictions_feature"), getString(
+ "_UI_PropertyDescriptor_description", "_UI_SetupTask_restrictions_feature", "_UI_SetupTask_type"),
+ SetupPackage.Literals.SETUP_TASK__RESTRICTIONS, true, false, true, null, null, null)
+ {
+ private IItemLabelProvider labelProvider = new HierarchicalItemLabelProvider(itemDelegator);
+
+ @Override
+ public IItemLabelProvider getLabelProvider(Object object)
+ {
+ return labelProvider;
+ }
+ });
+ }
+
+ /**
+ * This adds a property descriptor for the Scope feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addScopePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_SetupTask_scope_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_SetupTask_scope_feature", "_UI_SetupTask_type"),
+ SetupPackage.Literals.SETUP_TASK__SCOPE, false, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null,
+ null));
+ }
+
+ /**
+ * This adds a property descriptor for the Excluded Triggers feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ protected void addExcludedTriggersPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(new ItemPropertyDescriptor(((ComposeableAdapterFactory)adapterFactory)
+ .getRootAdapterFactory(), getResourceLocator(), getString("_UI_SetupTask_excludedTriggers_feature"), getString(
+ "_UI_PropertyDescriptor_description", "_UI_SetupTask_excludedTriggers_feature", "_UI_SetupTask_type"),
+ SetupPackage.Literals.SETUP_TASK__EXCLUDED_TRIGGERS, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null)
+ {
+ @Override
+ public IItemLabelProvider getLabelProvider(Object object)
+ {
+ final SetupTask setupTask = (SetupTask)object;
+ return EXCLUSION_LABEL_PROVIDERS.get(setupTask.getValidTriggers());
+ }
+
+ @Override
+ public String getDisplayName(Object object)
+ {
+ return "Triggers";
+ }
+
+ @Override
+ public String getDescription(Object object)
+ {
+ return "The triggers for which the task is applicable";
+ }
+
+ @Override
+ public Collection<?> getChoiceOfValues(Object object)
+ {
+ SetupTask setupTask = (SetupTask)object;
+ Set<Trigger> validTriggers = setupTask.getValidTriggers();
+ List<Set<Trigger>> result = new ArrayList<Set<Trigger>>(Trigger.LITERALS.keySet());
+ for (Iterator<Set<Trigger>> it = result.iterator(); it.hasNext();)
+ {
+ if (!validTriggers.containsAll(it.next()))
+ {
+ it.remove();
+ }
+ }
+ Collections.reverse(result);
+ return result;
+ }
+ });
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean hasChildren(Object object)
+ {
+ return hasChildren(object, true);
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getText(Object object)
+ {
+ SetupTaskScope labelValue = ((SetupTask)object).getScope();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_SetupTask_type") : getString("_UI_SetupTask_type")
+ + " " + label;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(SetupTask.class))
+ {
+ case SetupPackage.SETUP_TASK__SCOPE:
+ case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+ /**
+ * Return the resource locator for this item provider's resources.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ResourceLocator getResourceLocator()
+ {
+ return ((IChildCreationExtender)adapterFactory).getResourceLocator();
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private static class HierarchicalItemLabelProvider implements IItemLabelProvider
+ {
+ private AdapterFactoryItemDelegator itemDelegator;
+
+ public HierarchicalItemLabelProvider(AdapterFactoryItemDelegator itemDelegator)
+ {
+ this.itemDelegator = itemDelegator;
+ }
+
+ public String getText(Object object)
+ {
+ StringBuilder builder = new StringBuilder();
+ while (object != null && !(object instanceof Configuration))
+ {
+ if (builder.length() != 0)
+ {
+ builder.insert(0, " - ");
+ }
+
+ String text = itemDelegator.getText(object);
+ builder.insert(0, text);
+
+ object = itemDelegator.getParent(object);
+ }
+
+ return builder.toString();
+ }
+
+ public Object getImage(Object object)
+ {
+ return itemDelegator.getImage(object);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/StringVariableTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/StringVariableTaskItemProvider.java
new file mode 100644
index 0000000000..6607cd115c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/StringVariableTaskItemProvider.java
@@ -0,0 +1,188 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.provider;
+
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.StringVariableTask;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import org.eclipse.core.runtime.Path;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.StringVariableTask} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class StringVariableTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StringVariableTaskItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ addNamePropertyDescriptor(object);
+ addValuePropertyDescriptor(object);
+ addDescriptionPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Name feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addNamePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_StringVariableTask_name_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_StringVariableTask_name_feature",
+ "_UI_StringVariableTask_type"), SetupPackage.Literals.STRING_VARIABLE_TASK__NAME, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Value feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addValuePropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_StringVariableTask_value_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_StringVariableTask_value_feature",
+ "_UI_StringVariableTask_type"), SetupPackage.Literals.STRING_VARIABLE_TASK__VALUE, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Description feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addDescriptionPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_StringVariableTask_description_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_StringVariableTask_description_feature",
+ "_UI_StringVariableTask_type"), SetupPackage.Literals.STRING_VARIABLE_TASK__DESCRIPTION, true, false,
+ false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns StringVariableTask.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/StringVariableTask"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getText(Object object)
+ {
+ String name = ((StringVariableTask)object).getName();
+ String value = ((StringVariableTask)object).getValue();
+
+ if (name != null && name.length() != 0)
+ {
+ name = new Path(name).lastSegment();
+ }
+ else if (value == null || value.length() == 0)
+ {
+ return getString("_UI_StringVariableTask_type");
+ }
+
+ return "" + name + " = " + value;
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(StringVariableTask.class))
+ {
+ case SetupPackage.STRING_VARIABLE_TASK__NAME:
+ case SetupPackage.STRING_VARIABLE_TASK__VALUE:
+ case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ApiBaselineItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/TextModificationItemProvider.java
index ac2f7cf9cc..6c0a77f4ac 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ApiBaselineItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/TextModificationItemProvider.java
@@ -1,22 +1,20 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup.provider;
-import org.eclipse.emf.cdo.releng.setup.ApiBaseline;
+import java.util.Collection;
+import java.util.List;
+
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.TextModification;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
+
import org.eclipse.emf.common.util.ResourceLocator;
+
import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IChildCreationExtender;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
@@ -27,16 +25,13 @@ import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ItemProviderAdapter;
import org.eclipse.emf.edit.provider.ViewerNotification;
-import java.util.Collection;
-import java.util.List;
-
/**
- * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.ApiBaseline} object.
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.TextModification} object.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
-public class ApiBaselineItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+public class TextModificationItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
{
/**
@@ -45,7 +40,7 @@ public class ApiBaselineItemProvider extends ItemProviderAdapter implements IEdi
* <!-- end-user-doc -->
* @generated
*/
- public ApiBaselineItemProvider(AdapterFactory adapterFactory)
+ public TextModificationItemProvider(AdapterFactory adapterFactory)
{
super(adapterFactory);
}
@@ -63,41 +58,43 @@ public class ApiBaselineItemProvider extends ItemProviderAdapter implements IEdi
{
super.getPropertyDescriptors(object);
- addVersionPropertyDescriptor(object);
- addZipLocationPropertyDescriptor(object);
+ addPatternPropertyDescriptor(object);
+ addSubstitutionsPropertyDescriptor(object);
}
return itemPropertyDescriptors;
}
/**
- * This adds a property descriptor for the Version feature.
+ * This adds a property descriptor for the Pattern feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- protected void addVersionPropertyDescriptor(Object object)
+ protected void addPatternPropertyDescriptor(Object object)
{
itemPropertyDescriptors.add(createItemPropertyDescriptor(
- ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
- getString("_UI_ApiBaseline_version_feature"),
- getString("_UI_PropertyDescriptor_description", "_UI_ApiBaseline_version_feature", "_UI_ApiBaseline_type"),
- SetupPackage.Literals.API_BASELINE__VERSION, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
- null, null));
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_TextModification_pattern_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_TextModification_pattern_feature",
+ "_UI_TextModification_type"), SetupPackage.Literals.TEXT_MODIFICATION__PATTERN, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
}
/**
- * This adds a property descriptor for the Zip Location feature.
+ * This adds a property descriptor for the Substitutions feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- protected void addZipLocationPropertyDescriptor(Object object)
+ protected void addSubstitutionsPropertyDescriptor(Object object)
{
itemPropertyDescriptors.add(createItemPropertyDescriptor(
- ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
- getString("_UI_ApiBaseline_zipLocation_feature"),
- getString("_UI_PropertyDescriptor_description", "_UI_ApiBaseline_zipLocation_feature", "_UI_ApiBaseline_type"),
- SetupPackage.Literals.API_BASELINE__ZIP_LOCATION, true, false, false,
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_TextModification_substitutions_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_TextModification_substitutions_feature",
+ "_UI_TextModification_type"), SetupPackage.Literals.TEXT_MODIFICATION__SUBSTITUTIONS, true, false, false,
ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
}
@@ -113,7 +110,7 @@ public class ApiBaselineItemProvider extends ItemProviderAdapter implements IEdi
}
/**
- * This returns ApiBaseline.gif.
+ * This returns TextModification.gif.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -121,7 +118,7 @@ public class ApiBaselineItemProvider extends ItemProviderAdapter implements IEdi
@Override
public Object getImage(Object object)
{
- return overlayImage(object, getResourceLocator().getImage("full/obj16/ApiBaseline"));
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/TextModification"));
}
/**
@@ -133,9 +130,9 @@ public class ApiBaselineItemProvider extends ItemProviderAdapter implements IEdi
@Override
public String getText(Object object)
{
- String label = ((ApiBaseline)object).getVersion();
- return label == null || label.length() == 0 ? getString("_UI_ApiBaseline_type") : getString("_UI_ApiBaseline_type")
- + " " + label;
+ String label = ((TextModification)object).getPattern();
+ return label == null || label.length() == 0 ? getString("_UI_TextModification_type")
+ : getString("_UI_TextModification_type") + " " + label;
}
/**
@@ -150,10 +147,10 @@ public class ApiBaselineItemProvider extends ItemProviderAdapter implements IEdi
{
updateChildren(notification);
- switch (notification.getFeatureID(ApiBaseline.class))
+ switch (notification.getFeatureID(TextModification.class))
{
- case SetupPackage.API_BASELINE__VERSION:
- case SetupPackage.API_BASELINE__ZIP_LOCATION:
+ case SetupPackage.TEXT_MODIFICATION__PATTERN:
+ case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
}
@@ -182,7 +179,7 @@ public class ApiBaselineItemProvider extends ItemProviderAdapter implements IEdi
@Override
public ResourceLocator getResourceLocator()
{
- return SetupEditPlugin.INSTANCE;
+ return ((IChildCreationExtender)adapterFactory).getResourceLocator();
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ToolInstallationItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/TextModifyTaskItemProvider.java
index 1eb56f1298..2eb51ea017 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/ToolInstallationItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/TextModifyTaskItemProvider.java
@@ -1,42 +1,37 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup.provider;
+import java.util.Collection;
+import java.util.List;
+
import org.eclipse.emf.cdo.releng.setup.SetupFactory;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.setup.ToolInstallation;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskScope;
+import org.eclipse.emf.cdo.releng.setup.TextModifyTask;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.util.ResourceLocator;
+
import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.IItemPropertySource;
import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
-import org.eclipse.emf.edit.provider.ItemProviderAdapter;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ViewerNotification;
-import java.util.Collection;
-import java.util.List;
-
/**
- * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.ToolInstallation} object.
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.TextModifyTask} object.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
-public class ToolInstallationItemProvider extends ItemProviderAdapter implements IEditingDomainItemProvider,
+public class TextModifyTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider,
IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
{
/**
@@ -45,7 +40,7 @@ public class ToolInstallationItemProvider extends ItemProviderAdapter implements
* <!-- end-user-doc -->
* @generated
*/
- public ToolInstallationItemProvider(AdapterFactory adapterFactory)
+ public TextModifyTaskItemProvider(AdapterFactory adapterFactory)
{
super(adapterFactory);
}
@@ -63,11 +58,28 @@ public class ToolInstallationItemProvider extends ItemProviderAdapter implements
{
super.getPropertyDescriptors(object);
+ addUrlPropertyDescriptor(object);
}
return itemPropertyDescriptors;
}
/**
+ * This adds a property descriptor for the Url feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addUrlPropertyDescriptor(Object object)
+ {
+ itemPropertyDescriptors.add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(), getResourceLocator(),
+ getString("_UI_TextModifyTask_url_feature"),
+ getString("_UI_PropertyDescriptor_description", "_UI_TextModifyTask_url_feature", "_UI_TextModifyTask_type"),
+ SetupPackage.Literals.TEXT_MODIFY_TASK__URL, true, false, false, ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+ null, null));
+ }
+
+ /**
* This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
* {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
* {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
@@ -81,8 +93,7 @@ public class ToolInstallationItemProvider extends ItemProviderAdapter implements
if (childrenFeatures == null)
{
super.getChildrenFeatures(object);
- childrenFeatures.add(SetupPackage.Literals.TOOL_INSTALLATION__DIRECTOR_CALLS);
- childrenFeatures.add(SetupPackage.Literals.TOOL_INSTALLATION__TOOL_PREFERENCES);
+ childrenFeatures.add(SetupPackage.Literals.TEXT_MODIFY_TASK__MODIFICATIONS);
}
return childrenFeatures;
}
@@ -102,18 +113,7 @@ public class ToolInstallationItemProvider extends ItemProviderAdapter implements
}
/**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean hasChildren(Object object)
- {
- return hasChildren(object, true);
- }
-
- /**
- * This returns ToolInstallation.gif.
+ * This returns TextModifyTask.gif.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -121,7 +121,7 @@ public class ToolInstallationItemProvider extends ItemProviderAdapter implements
@Override
public Object getImage(Object object)
{
- return overlayImage(object, getResourceLocator().getImage("full/obj16/ToolInstallation"));
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/TextModifyTask"));
}
/**
@@ -133,7 +133,10 @@ public class ToolInstallationItemProvider extends ItemProviderAdapter implements
@Override
public String getText(Object object)
{
- return getString("_UI_ToolInstallation_type");
+ SetupTaskScope labelValue = ((TextModifyTask)object).getScope();
+ String label = labelValue == null ? null : labelValue.toString();
+ return label == null || label.length() == 0 ? getString("_UI_TextModifyTask_type")
+ : getString("_UI_TextModifyTask_type") + " " + label;
}
/**
@@ -148,10 +151,12 @@ public class ToolInstallationItemProvider extends ItemProviderAdapter implements
{
updateChildren(notification);
- switch (notification.getFeatureID(ToolInstallation.class))
+ switch (notification.getFeatureID(TextModifyTask.class))
{
- case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS:
- case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES:
+ case SetupPackage.TEXT_MODIFY_TASK__URL:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
return;
}
@@ -170,23 +175,8 @@ public class ToolInstallationItemProvider extends ItemProviderAdapter implements
{
super.collectNewChildDescriptors(newChildDescriptors, object);
- newChildDescriptors.add(createChildParameter(SetupPackage.Literals.TOOL_INSTALLATION__DIRECTOR_CALLS,
- SetupFactory.eINSTANCE.createDirectorCall()));
-
- newChildDescriptors.add(createChildParameter(SetupPackage.Literals.TOOL_INSTALLATION__TOOL_PREFERENCES,
- SetupFactory.eINSTANCE.createToolPreference()));
- }
-
- /**
- * Return the resource locator for this item provider's resources.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public ResourceLocator getResourceLocator()
- {
- return SetupEditPlugin.INSTANCE;
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.TEXT_MODIFY_TASK__MODIFICATIONS,
+ SetupFactory.eINSTANCE.createTextModification()));
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/WorkingSetTaskItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/WorkingSetTaskItemProvider.java
new file mode 100644
index 0000000000..049b66a57c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.edit/src/org/eclipse/emf/cdo/releng/setup/provider/WorkingSetTaskItemProvider.java
@@ -0,0 +1,154 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.provider;
+
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.WorkingSetTask;
+import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsFactory;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class WorkingSetTaskItemProvider extends SetupTaskItemProvider implements IEditingDomainItemProvider,
+ IStructuredItemContentProvider, ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource
+{
+ /**
+ * This constructs an instance from a factory and a notifier.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WorkingSetTaskItemProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object)
+ {
+ if (itemPropertyDescriptors == null)
+ {
+ super.getPropertyDescriptors(object);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+ * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+ * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
+ {
+ if (childrenFeatures == null)
+ {
+ super.getChildrenFeatures(object);
+ childrenFeatures.add(SetupPackage.Literals.WORKING_SET_TASK__WORKING_SETS);
+ }
+ return childrenFeatures;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EStructuralFeature getChildFeature(Object object, Object child)
+ {
+ // Check the type of the specified child object and return the proper feature to use for
+ // adding (see {@link AddCommand}) it as a child.
+
+ return super.getChildFeature(object, child);
+ }
+
+ /**
+ * This returns WorkingSetTask.gif.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object)
+ {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/WorkingSetTask"));
+ }
+
+ /**
+ * This returns the label text for the adapted class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ public String getText(Object object)
+ {
+ return getString("_UI_WorkingSetTask_type");
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached
+ * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(WorkingSetTask.class))
+ {
+ case SetupPackage.WORKING_SET_TASK__WORKING_SETS:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+ * that can be created under this object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object)
+ {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+
+ newChildDescriptors.add(createChildParameter(SetupPackage.Literals.WORKING_SET_TASK__WORKING_SETS,
+ WorkingSetsFactory.eINSTANCE.createWorkingSet()));
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.classpath b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.classpath
new file mode 100644
index 0000000000..3bc247511f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.project b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.project
new file mode 100644
index 0000000000..b723a70090
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.emf.cdo.releng.setup.editor.rcp</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000..38ce18d974
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/.project=UTF-8 \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..a32f23e030
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,405 @@
+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.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+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.doc.comment.support=enabled
+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.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+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=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+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.includeNullInfoFromAsserts=disabled
+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.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.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.unusedObjectAllocation=ignore
+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.unusedTypeParameter=ignore
+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,HIGH,LOW,LOW,LOW,LOW,LOW
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED
+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_annotation=0
+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_method_declaration=0
+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_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+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.alignment_for_union_type_in_multicatch=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=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.format_block_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=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+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.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+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.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+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=2
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=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_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=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_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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_try=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_semicolon_in_try_resources=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_try=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_try=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_semicolon_in_try_resources=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=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+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=space
+org.eclipse.jdt.core.formatter.tabulation.size=2
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000000..3fc140fcdc
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,119 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=true
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=true
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=false
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_EMFT
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_EMFT
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" 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 * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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 * Eike Stepper - initial API and implementation\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 Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><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\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.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.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">${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">${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}</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></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_missing_override_annotations_interface_methods=false
+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=false
+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_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+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=false
+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=true
+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=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000000..864e30fe5d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.mylyn.tasks.ui.prefs
new file mode 100644
index 0000000000..b050639a54
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.mylyn.tasks.ui.prefs
@@ -0,0 +1,4 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+project.repository.kind=bugzilla
+project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.mylyn.team.ui.prefs
new file mode 100644
index 0000000000..2f50f36c0c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.mylyn.team.ui.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+commit.comment.template=[${task.id}] ${task.description} \r\n${task.url}
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000000..0c17d59e45
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,95 @@
+#Thu Feb 04 09:44:24 CET 2010
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+MISSING_EE_DESCRIPTIONS=Warning
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Ignore
+automatically_removed_unused_problem_filters=Disabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.pde.prefs
index eb962232b8..eb962232b8 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.settings/org.eclipse.pde.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/.settings/org.eclipse.pde.prefs
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..d43986fafe
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/META-INF/MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.emf.cdo.releng.setup.editor.rcp;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Activator: org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorPlugin$Implementation
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Export-Package: org.eclipse.emf.cdo.releng.setup.rcp.presentation
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.emf.cdo.releng.setup.edit;visibility:=reexport,
+ org.eclipse.emf.ecore.xmi;visibility:=reexport,
+ org.eclipse.emf.edit.ui;visibility:=reexport,
+ org.eclipse.emf.cdo.releng.workingsets.edit;visibility:=reexport
+Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/build.properties b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/build.properties
new file mode 100644
index 0000000000..5fb07711cf
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/build.properties
@@ -0,0 +1,10 @@
+#
+
+bin.includes = .,\
+ icons/,\
+ META-INF/,\
+ plugin.xml,\
+ plugin.properties
+jars.compile.order = .
+source.. = src/
+output.. = bin
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/icons/full/obj16/SetupModelFile.gif b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/icons/full/obj16/SetupModelFile.gif
new file mode 100644
index 0000000000..dd4fa0a2b6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/icons/full/obj16/SetupModelFile.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/icons/full/wizban/NewSetup.gif b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/icons/full/wizban/NewSetup.gif
new file mode 100644
index 0000000000..e52cb90c78
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/icons/full/wizban/NewSetup.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/plugin.properties
new file mode 100644
index 0000000000..4c54e71c8c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/plugin.properties
@@ -0,0 +1,72 @@
+#
+
+pluginName = Setup Editor
+providerName = www.example.org
+
+_UI_SetupEditor_menu = &Setup Editor
+
+_UI_CreateChild_menu_item = &New Child
+_UI_CreateSibling_menu_item = N&ew Sibling
+
+_UI_ShowPropertiesView_menu_item = Show &Properties View
+_UI_RefreshViewer_menu_item = &Refresh
+
+_UI_SelectionPage_label = Selection
+
+_UI_NoObjectSelected = Selected Nothing
+_UI_SingleObjectSelected = Selected Object: {0}
+_UI_MultiObjectSelected = Selected {0} Objects
+
+_UI_OpenEditorError_label = Open Editor
+
+_UI_Wizard_category = Example EMF Model Creation Wizards
+
+_UI_CreateModelError_message = Problems encountered in file "{0}"
+
+_UI_SetupModelWizard_label = Setup Model
+_UI_SetupModelWizard_description = Create a new Setup model
+
+_UI_SetupEditor_label = Setup Model Editor
+
+_UI_SetupEditorFilenameDefaultBase = My
+_UI_SetupEditorFilenameExtensions = setup
+
+_UI_Wizard_label = New
+
+_WARN_FilenameExtension = The file name must end in ''.{0}''
+_WARN_FilenameExtensions = The file name must have one of the following extensions: {0}
+
+_UI_ModelObject = &Model Object
+_UI_XMLEncoding = &XML Encoding
+_UI_XMLEncodingChoices = UTF-8 ASCII UTF-16 UTF-16BE UTF-16LE ISO-8859-1
+_UI_Wizard_initial_object_description = Specify a file name and select a model object to create
+
+_UI_FileConflict_label = File Conflict
+_WARN_FileConflict = There are unsaved changes that conflict with changes made outside the editor. Do you wish to discard this editor's changes?
+
+_UI_SetupEditorAdvisor_ActionSet_label = Setup Action Set
+_UI_Perspective_label = Setup
+
+_UI_Browse_label = &Browse...
+_UI_File_label = &File
+_UI_Question_title = Question
+_WARN_FileConflict = The file "{0}" already exists. Do you want to replace the existing file?
+_UI_Error_title = Error
+_WARN_No_Editor = There is no editor registered for the file "{0}".
+
+_UI_Application_title = Setup Application
+_UI_Menu_File_label = &File
+_UI_Menu_New_label = &New
+_UI_Menu_Open_label = &Open...
+_UI_Menu_Open_description = Opens a model object file
+_UI_Menu_OpenURI_label = &Open URI...
+_UI_Menu_OpenURI_description = Opens a model object loading it from a URI
+_UI_Menu_Edit_label = &Edit
+_UI_Menu_Window_label = &Window
+_UI_Menu_Help_label = &Help
+_UI_Menu_About_label = Setup &About...
+_UI_About_title = Setup Application
+_UI_About_text = Setup Application about box goes here.
+
+_UI_SetupModelWizard_ActionSet_label = Setup Model Action Set
+
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/plugin.xml
new file mode 100644
index 0000000000..eec2e3682c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/plugin.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+-->
+
+<plugin>
+
+ <extension
+ point="org.eclipse.core.runtime.applications"
+ id="SetupEditorAdvisorApplication">
+ <!-- @generated setup-rcp -->
+ <application>
+ <run class="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisor$Application"/>
+ </application>
+ </extension>
+
+ <extension point="org.eclipse.ui.perspectives">
+ <!-- @generated setup-rcp -->
+ <perspective
+ name="%_UI_Perspective_label"
+ class="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisor$Perspective"
+ id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorPerspective">
+ </perspective>
+ </extension>
+
+ <extension point="org.eclipse.ui.commands">
+ <!-- @generated setup-rcp -->
+ <command
+ name="%_UI_Menu_OpenURI_label"
+ description="%_UI_Menu_OpenURI_description"
+ categoryId="org.eclipse.ui.category.file"
+ id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorOpenURICommand"/>
+ <command
+ name="%_UI_Menu_Open_label"
+ description="%_UI_Menu_Open_description"
+ categoryId="org.eclipse.ui.category.file"
+ id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorOpenCommand"/>
+ </extension>
+
+ <extension point="org.eclipse.ui.bindings">
+ <!-- @generated setup-rcp -->
+ <key
+ commandId="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorOpenURICommand"
+ sequence="M1+U"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/>
+ <key
+ commandId="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorOpenCommand"
+ sequence="M1+O"
+ schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/>
+ </extension>
+
+ <extension point="org.eclipse.ui.actionSets">
+ <!-- @generated setup-rcp -->
+ <actionSet
+ label="%_UI_SetupEditorAdvisor_ActionSet_label"
+ visible="true"
+ id="SetupEditorAdvisorActionSet">
+ <action
+ label="%_UI_Menu_About_label"
+ class="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisor$AboutAction"
+ menubarPath="help/additions"
+ id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorAboutAction"/>
+ <action
+ label="%_UI_Menu_OpenURI_label"
+ definitionId="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorOpenURICommand"
+ class="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisor$OpenURIAction"
+ menubarPath="file/additions"
+ id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorOpenURIAction"/>
+ <action
+ label="%_UI_Menu_Open_label"
+ definitionId="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorOpenCommand"
+ class="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisor$OpenAction"
+ menubarPath="file/additions"
+ id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorOpenAction"/>
+ </actionSet>
+ </extension>
+
+ <extension point="org.eclipse.ui.actionSets">
+ <!-- @generated setup-rcp -->
+ <actionSet
+ label="%_UI_SetupModelWizard_ActionSet_label"
+ visible="true"
+ id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupActionBarContributorActionSet">
+ <action
+ label="%_UI_SetupModelWizard_label"
+ class="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupActionBarContributor$NewAction"
+ menubarPath="file/new/additions"
+ id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupActionBarContributorNewAction"/>
+ </actionSet>
+ </extension>
+
+ <extension point="org.eclipse.ui.editors">
+ <!-- @generated setup-rcp -->
+ <editor
+ id="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorID"
+ name="%_UI_SetupEditor_label"
+ icon="icons/full/obj16/SetupModelFile.gif"
+ extensions="setup"
+ class="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditor"
+ contributorClass="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupActionBarContributor">
+ </editor>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupActionBarContributor.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupActionBarContributor.java
new file mode 100644
index 0000000000..f6d8b374fb
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupActionBarContributor.java
@@ -0,0 +1,496 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.rcp.presentation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.eclipse.emf.common.ui.action.WorkbenchWindowActionDelegate;
+
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+
+import org.eclipse.emf.edit.ui.action.ControlAction;
+import org.eclipse.emf.edit.ui.action.CreateChildAction;
+import org.eclipse.emf.edit.ui.action.CreateSiblingAction;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.action.ValidateAction;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.ActionContributionItem;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.action.SubContributionItem;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.Viewer;
+
+import org.eclipse.jface.wizard.WizardDialog;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PartInitException;
+
+/**
+ * This is the action bar contributor for the Setup model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SetupActionBarContributor extends EditingDomainActionBarContributor implements ISelectionChangedListener
+{
+ /**
+ * Action to create objects from the Setup model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class NewAction extends WorkbenchWindowActionDelegate
+ {
+ /**
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void run(IAction action)
+ {
+ SetupModelWizard wizard = new SetupModelWizard();
+ wizard.init(getWindow().getWorkbench(), StructuredSelection.EMPTY);
+ WizardDialog wizardDialog = new WizardDialog(getWindow().getShell(), wizard);
+ wizardDialog.open();
+ }
+ }
+
+ /**
+ * This keeps track of the active editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IEditorPart activeEditorPart;
+
+ /**
+ * This keeps track of the current selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionProvider selectionProvider;
+
+ /**
+ * This action opens the Properties view.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction showPropertiesViewAction = new Action(
+ SetupEditorPlugin.INSTANCE.getString("_UI_ShowPropertiesView_menu_item"))
+ {
+ @Override
+ public void run()
+ {
+ try
+ {
+ getPage().showView("org.eclipse.ui.views.PropertySheet");
+ }
+ catch (PartInitException exception)
+ {
+ SetupEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ };
+
+ /**
+ * This action refreshes the viewer of the current editor if the editor
+ * implements {@link org.eclipse.emf.common.ui.viewer.IViewerProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IAction refreshViewerAction = new Action(
+ SetupEditorPlugin.INSTANCE.getString("_UI_RefreshViewer_menu_item"))
+ {
+ @Override
+ public boolean isEnabled()
+ {
+ return activeEditorPart instanceof IViewerProvider;
+ }
+
+ @Override
+ public void run()
+ {
+ if (activeEditorPart instanceof IViewerProvider)
+ {
+ Viewer viewer = ((IViewerProvider)activeEditorPart).getViewer();
+ if (viewer != null)
+ {
+ viewer.refresh();
+ }
+ }
+ }
+ };
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateChildAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createChildActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateChild actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createChildMenuManager;
+
+ /**
+ * This will contain one {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} corresponding to each descriptor
+ * generated for the current selection by the item provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> createSiblingActions;
+
+ /**
+ * This is the menu manager into which menu contribution items should be added for CreateSibling actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createSiblingMenuManager;
+
+ /**
+ * This creates an instance of the contributor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SetupActionBarContributor()
+ {
+ super(ADDITIONS_LAST_STYLE);
+ loadResourceAction = new LoadResourceAction();
+ validateAction = new ValidateAction();
+ controlAction = new ControlAction();
+ }
+
+ /**
+ * This adds Separators for editor additions to the tool bar.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToToolBar(IToolBarManager toolBarManager)
+ {
+ toolBarManager.add(new Separator("setup-settings"));
+ toolBarManager.add(new Separator("setup-additions"));
+ }
+
+ /**
+ * This adds to the menu bar a menu and some separators for editor additions,
+ * as well as the sub-menus for object creation items.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void contributeToMenu(IMenuManager menuManager)
+ {
+ super.contributeToMenu(menuManager);
+
+ IMenuManager submenuManager = new MenuManager(SetupEditorPlugin.INSTANCE.getString("_UI_SetupEditor_menu"),
+ "org.eclipse.emf.cdo.releng.setupMenuID");
+ menuManager.insertAfter("additions", submenuManager);
+ submenuManager.add(new Separator("settings"));
+ submenuManager.add(new Separator("actions"));
+ submenuManager.add(new Separator("additions"));
+ submenuManager.add(new Separator("additions-end"));
+
+ // Prepare for CreateChild item addition or removal.
+ //
+ createChildMenuManager = new MenuManager(SetupEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ submenuManager.insertBefore("additions", createChildMenuManager);
+
+ // Prepare for CreateSibling item addition or removal.
+ //
+ createSiblingMenuManager = new MenuManager(SetupEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ submenuManager.insertBefore("additions", createSiblingMenuManager);
+
+ // Force an update because Eclipse hides empty menus now.
+ //
+ submenuManager.addMenuListener(new IMenuListener()
+ {
+ public void menuAboutToShow(IMenuManager menuManager)
+ {
+ menuManager.updateAll(true);
+ }
+ });
+
+ addGlobalActions(submenuManager);
+ }
+
+ /**
+ * When the active editor changes, this remembers the change and registers with it as a selection provider.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setActiveEditor(IEditorPart part)
+ {
+ super.setActiveEditor(part);
+ activeEditorPart = part;
+
+ // Switch to the new selection provider.
+ //
+ if (selectionProvider != null)
+ {
+ selectionProvider.removeSelectionChangedListener(this);
+ }
+ if (part == null)
+ {
+ selectionProvider = null;
+ }
+ else
+ {
+ selectionProvider = part.getSite().getSelectionProvider();
+ selectionProvider.addSelectionChangedListener(this);
+
+ // Fake a selection changed event to update the menus.
+ //
+ if (selectionProvider.getSelection() != null)
+ {
+ selectionChanged(new SelectionChangedEvent(selectionProvider, selectionProvider.getSelection()));
+ }
+ }
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionChangedListener},
+ * handling {@link org.eclipse.jface.viewers.SelectionChangedEvent}s by querying for the children and siblings
+ * that can be added to the selected object and updating the menus accordingly.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void selectionChanged(SelectionChangedEvent event)
+ {
+ // Remove any menu items for old selection.
+ //
+ if (createChildMenuManager != null)
+ {
+ depopulateManager(createChildMenuManager, createChildActions);
+ }
+ if (createSiblingMenuManager != null)
+ {
+ depopulateManager(createSiblingMenuManager, createSiblingActions);
+ }
+
+ // Query the new selection for appropriate new child/sibling descriptors
+ //
+ Collection<?> newChildDescriptors = null;
+ Collection<?> newSiblingDescriptors = null;
+
+ ISelection selection = event.getSelection();
+ if (selection instanceof IStructuredSelection && ((IStructuredSelection)selection).size() == 1)
+ {
+ Object object = ((IStructuredSelection)selection).getFirstElement();
+
+ EditingDomain domain = ((IEditingDomainProvider)activeEditorPart).getEditingDomain();
+
+ newChildDescriptors = domain.getNewChildDescriptors(object, null);
+ newSiblingDescriptors = domain.getNewChildDescriptors(null, object);
+ }
+
+ // Generate actions for selection; populate and redraw the menus.
+ //
+ createChildActions = generateCreateChildActions(newChildDescriptors, selection);
+ createSiblingActions = generateCreateSiblingActions(newSiblingDescriptors, selection);
+
+ if (createChildMenuManager != null)
+ {
+ populateManager(createChildMenuManager, createChildActions, null);
+ createChildMenuManager.update(true);
+ }
+ if (createSiblingMenuManager != null)
+ {
+ populateManager(createSiblingMenuManager, createSiblingActions, null);
+ createSiblingMenuManager.update(true);
+ }
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateChildAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateChildActions(Collection<?> descriptors, ISelection selection)
+ {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null)
+ {
+ for (Object descriptor : descriptors)
+ {
+ actions.add(new CreateChildAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This generates a {@link org.eclipse.emf.edit.ui.action.CreateSiblingAction} for each object in <code>descriptors</code>,
+ * and returns the collection of these actions.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<IAction> generateCreateSiblingActions(Collection<?> descriptors, ISelection selection)
+ {
+ Collection<IAction> actions = new ArrayList<IAction>();
+ if (descriptors != null)
+ {
+ for (Object descriptor : descriptors)
+ {
+ actions.add(new CreateSiblingAction(activeEditorPart, selection, descriptor));
+ }
+ }
+ return actions;
+ }
+
+ /**
+ * This populates the specified <code>manager</code> with {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection,
+ * by inserting them before the specified contribution item <code>contributionID</code>.
+ * If <code>contributionID</code> is <code>null</code>, they are simply added.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void populateManager(IContributionManager manager, Collection<? extends IAction> actions,
+ String contributionID)
+ {
+ if (actions != null)
+ {
+ for (IAction action : actions)
+ {
+ if (contributionID != null)
+ {
+ manager.insertBefore(contributionID, action);
+ }
+ else
+ {
+ manager.add(action);
+ }
+ }
+ }
+ }
+
+ /**
+ * This removes from the specified <code>manager</code> all {@link org.eclipse.jface.action.ActionContributionItem}s
+ * based on the {@link org.eclipse.jface.action.IAction}s contained in the <code>actions</code> collection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void depopulateManager(IContributionManager manager, Collection<? extends IAction> actions)
+ {
+ if (actions != null)
+ {
+ IContributionItem[] items = manager.getItems();
+ for (int i = 0; i < items.length; i++)
+ {
+ // Look into SubContributionItems
+ //
+ IContributionItem contributionItem = items[i];
+ while (contributionItem instanceof SubContributionItem)
+ {
+ contributionItem = ((SubContributionItem)contributionItem).getInnerItem();
+ }
+
+ // Delete the ActionContributionItems with matching action.
+ //
+ if (contributionItem instanceof ActionContributionItem)
+ {
+ IAction action = ((ActionContributionItem)contributionItem).getAction();
+ if (actions.contains(action))
+ {
+ manager.remove(contributionItem);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * This populates the pop-up menu before it appears.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void menuAboutToShow(IMenuManager menuManager)
+ {
+ super.menuAboutToShow(menuManager);
+ MenuManager submenuManager = null;
+
+ submenuManager = new MenuManager(SetupEditorPlugin.INSTANCE.getString("_UI_CreateChild_menu_item"));
+ populateManager(submenuManager, createChildActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+
+ submenuManager = new MenuManager(SetupEditorPlugin.INSTANCE.getString("_UI_CreateSibling_menu_item"));
+ populateManager(submenuManager, createSiblingActions, null);
+ menuManager.insertBefore("edit", submenuManager);
+ }
+
+ /**
+ * This inserts global actions before the "additions-end" separator.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void addGlobalActions(IMenuManager menuManager)
+ {
+ menuManager.insertAfter("additions-end", new Separator("ui-actions"));
+ menuManager.insertAfter("ui-actions", showPropertiesViewAction);
+
+ refreshViewerAction.setEnabled(refreshViewerAction.isEnabled());
+ menuManager.insertAfter("ui-actions", refreshViewerAction);
+
+ super.addGlobalActions(menuManager);
+ }
+
+ /**
+ * This ensures that a delete action will clean up all references to deleted objects.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected boolean removeAllReferencesOnDelete()
+ {
+ return true;
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditor.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditor.java
new file mode 100644
index 0000000000..b12a485d41
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditor.java
@@ -0,0 +1,1550 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.rcp.presentation;
+
+import org.eclipse.emf.cdo.releng.setup.provider.SetupItemProviderAdapterFactory;
+import org.eclipse.emf.cdo.releng.workingsets.provider.WorkingSetsItemProviderAdapterFactory;
+
+import org.eclipse.emf.common.command.BasicCommandStack;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandStack;
+import org.eclipse.emf.common.command.CommandStackListener;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.ui.URIEditorInput;
+import org.eclipse.emf.common.ui.editor.ProblemEditorPart;
+import org.eclipse.emf.common.ui.viewer.IViewerProvider;
+import org.eclipse.emf.common.util.BasicDiagnostic;
+import org.eclipse.emf.common.util.Diagnostic;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EContentAdapter;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.domain.IEditingDomainProvider;
+import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
+import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory;
+import org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory;
+import org.eclipse.emf.edit.ui.action.EditingDomainActionBarContributor;
+import org.eclipse.emf.edit.ui.celleditor.AdapterFactoryTreeEditor;
+import org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter;
+import org.eclipse.emf.edit.ui.dnd.LocalTransfer;
+import org.eclipse.emf.edit.ui.dnd.ViewerDragAdapter;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
+import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
+import org.eclipse.emf.edit.ui.provider.UnwrappingSelectionProvider;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+import org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.IToolBarManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.ControlAdapter;
+import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorSite;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.MultiPageEditorPart;
+import org.eclipse.ui.views.contentoutline.ContentOutline;
+import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
+import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.ui.views.properties.PropertySheet;
+import org.eclipse.ui.views.properties.PropertySheetPage;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EventObject;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This is an example of a Setup model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SetupEditor extends MultiPageEditorPart implements IEditingDomainProvider, ISelectionProvider,
+ IMenuListener, IViewerProvider
+{
+ /**
+ * The filters for file extensions supported by the editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<String> FILE_EXTENSION_FILTERS = prefixExtensions(SetupModelWizard.FILE_EXTENSIONS, "*.");
+
+ /**
+ * Returns a new unmodifiable list containing prefixed versions of the extensions in the given list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static List<String> prefixExtensions(List<String> extensions, String prefix)
+ {
+ List<String> result = new ArrayList<String>();
+ for (String extension : extensions)
+ {
+ result.add(prefix + extension);
+ }
+ return Collections.unmodifiableList(result);
+ }
+
+ /**
+ * This keeps track of the editing domain that is used to track all changes to the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected AdapterFactoryEditingDomain editingDomain;
+
+ /**
+ * This is the one adapter factory used for providing views of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ComposedAdapterFactory adapterFactory;
+
+ /**
+ * This is the content outline page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IContentOutlinePage contentOutlinePage;
+
+ /**
+ * This is a kludge...
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStatusLineManager contentOutlineStatusLineManager;
+
+ /**
+ * This is the content outline page's viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer contentOutlineViewer;
+
+ /**
+ * This is the property sheet page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected List<PropertySheetPage> propertySheetPages = new ArrayList<PropertySheetPage>();
+
+ /**
+ * This is the viewer that shadows the selection in the content outline.
+ * The parent relation must be correctly defined for this to work.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TreeViewer selectionViewer;
+
+ /**
+ * This keeps track of the active content viewer, which may be either one of the viewers in the pages or the content outline viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Viewer currentViewer;
+
+ /**
+ * This listens to which ever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelectionChangedListener selectionChangedListener;
+
+ /**
+ * This keeps track of all the {@link org.eclipse.jface.viewers.ISelectionChangedListener}s that are listening to this editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<ISelectionChangedListener> selectionChangedListeners = new ArrayList<ISelectionChangedListener>();
+
+ /**
+ * This keeps track of the selection of the editor as a whole.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ISelection editorSelection = StructuredSelection.EMPTY;
+
+ /**
+ * This listens for when the outline becomes active
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IPartListener partListener = new IPartListener()
+ {
+ public void partActivated(IWorkbenchPart p)
+ {
+ if (p instanceof ContentOutline)
+ {
+ if (((ContentOutline)p).getCurrentPage() == contentOutlinePage)
+ {
+ getActionBarContributor().setActiveEditor(SetupEditor.this);
+
+ setCurrentViewer(contentOutlineViewer);
+ }
+ }
+ else if (p instanceof PropertySheet)
+ {
+ if (propertySheetPages.contains(((PropertySheet)p).getCurrentPage()))
+ {
+ getActionBarContributor().setActiveEditor(SetupEditor.this);
+ handleActivate();
+ }
+ }
+ else if (p == SetupEditor.this)
+ {
+ handleActivate();
+ }
+ }
+
+ public void partBroughtToTop(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+
+ public void partClosed(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+
+ public void partDeactivated(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+
+ public void partOpened(IWorkbenchPart p)
+ {
+ // Ignore.
+ }
+ };
+
+ /**
+ * Resources that have been removed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> removedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been changed since last activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> changedResources = new ArrayList<Resource>();
+
+ /**
+ * Resources that have been saved.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<Resource> savedResources = new ArrayList<Resource>();
+
+ /**
+ * Map to store the diagnostic associated with a resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Map<Resource, Diagnostic> resourceToDiagnosticMap = new LinkedHashMap<Resource, Diagnostic>();
+
+ /**
+ * Controls whether the problem indication should be updated.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean updateProblemIndication = true;
+
+ /**
+ * Adapter used to update the problem indication when resources are demanded loaded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EContentAdapter problemIndicationAdapter = new EContentAdapter()
+ {
+ @Override
+ public void notifyChanged(Notification notification)
+ {
+ if (notification.getNotifier() instanceof Resource)
+ {
+ switch (notification.getFeatureID(Resource.class))
+ {
+ case Resource.RESOURCE__IS_LOADED:
+ case Resource.RESOURCE__ERRORS:
+ case Resource.RESOURCE__WARNINGS:
+ {
+ Resource resource = (Resource)notification.getNotifier();
+ Diagnostic diagnostic = analyzeResourceProblems(resource, null);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ resourceToDiagnosticMap.put(resource, diagnostic);
+ }
+ else
+ {
+ resourceToDiagnosticMap.remove(resource);
+ }
+
+ if (updateProblemIndication)
+ {
+ getSite().getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ updateProblemIndication();
+ }
+ });
+ }
+ break;
+ }
+ }
+ }
+ else
+ {
+ super.notifyChanged(notification);
+ }
+ }
+
+ @Override
+ protected void setTarget(Resource target)
+ {
+ basicSetTarget(target);
+ }
+
+ @Override
+ protected void unsetTarget(Resource target)
+ {
+ basicUnsetTarget(target);
+ resourceToDiagnosticMap.remove(target);
+ if (updateProblemIndication)
+ {
+ getSite().getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ updateProblemIndication();
+ }
+ });
+ }
+ }
+ };
+
+ /**
+ * Handles activation of the editor or it's associated views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleActivate()
+ {
+ // Recompute the read only state.
+ //
+ if (editingDomain.getResourceToReadOnlyMap() != null)
+ {
+ editingDomain.getResourceToReadOnlyMap().clear();
+
+ // Refresh any actions that may become enabled or disabled.
+ //
+ setSelection(getSelection());
+ }
+
+ if (!removedResources.isEmpty())
+ {
+ if (handleDirtyConflict())
+ {
+ getSite().getPage().closeEditor(SetupEditor.this, false);
+ }
+ else
+ {
+ removedResources.clear();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+ else if (!changedResources.isEmpty())
+ {
+ changedResources.removeAll(savedResources);
+ handleChangedResources();
+ changedResources.clear();
+ savedResources.clear();
+ }
+ }
+
+ /**
+ * Handles what to do with changed resources on activation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void handleChangedResources()
+ {
+ if (!changedResources.isEmpty() && (!isDirty() || handleDirtyConflict()))
+ {
+ if (isDirty())
+ {
+ changedResources.addAll(editingDomain.getResourceSet().getResources());
+ }
+ editingDomain.getCommandStack().flush();
+
+ updateProblemIndication = false;
+ for (Resource resource : changedResources)
+ {
+ if (resource.isLoaded())
+ {
+ resource.unload();
+ try
+ {
+ resource.load(Collections.EMPTY_MAP);
+ }
+ catch (IOException exception)
+ {
+ if (!resourceToDiagnosticMap.containsKey(resource))
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ }
+ }
+ }
+
+ if (AdapterFactoryEditingDomain.isStale(editorSelection))
+ {
+ setSelection(StructuredSelection.EMPTY);
+ }
+
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+ }
+
+ /**
+ * Updates the problems indication with the information described in the specified diagnostic.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void updateProblemIndication()
+ {
+ if (updateProblemIndication)
+ {
+ BasicDiagnostic diagnostic = new BasicDiagnostic(Diagnostic.OK, "org.eclipse.emf.cdo.releng.setup.editor.rcp", 0,
+ null, new Object[] { editingDomain.getResourceSet() });
+ for (Diagnostic childDiagnostic : resourceToDiagnosticMap.values())
+ {
+ if (childDiagnostic.getSeverity() != Diagnostic.OK)
+ {
+ diagnostic.add(childDiagnostic);
+ }
+ }
+
+ int lastEditorPage = getPageCount() - 1;
+ if (lastEditorPage >= 0 && getEditor(lastEditorPage) instanceof ProblemEditorPart)
+ {
+ ((ProblemEditorPart)getEditor(lastEditorPage)).setDiagnostic(diagnostic);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ setActivePage(lastEditorPage);
+ }
+ }
+ else if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ ProblemEditorPart problemEditorPart = new ProblemEditorPart();
+ problemEditorPart.setDiagnostic(diagnostic);
+ try
+ {
+ addPage(++lastEditorPage, problemEditorPart, getEditorInput());
+ setPageText(lastEditorPage, problemEditorPart.getPartName());
+ setActivePage(lastEditorPage);
+ showTabs();
+ }
+ catch (PartInitException exception)
+ {
+ SetupEditorPlugin.INSTANCE.log(exception);
+ }
+ }
+ }
+ }
+
+ /**
+ * Shows a dialog that asks if conflicting changes should be discarded.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean handleDirtyConflict()
+ {
+ return MessageDialog.openQuestion(getSite().getShell(), getString("_UI_FileConflict_label"),
+ getString("_WARN_FileConflict"));
+ }
+
+ /**
+ * This creates a model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SetupEditor()
+ {
+ super();
+ initializeEditingDomain();
+ }
+
+ /**
+ * This sets up the editing domain for the model editor.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void initializeEditingDomain()
+ {
+ // Create an adapter factory that yields item providers.
+ //
+ adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
+
+ adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new SetupItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new WorkingSetsItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
+
+ // Create the command stack that will notify this editor as commands are executed.
+ //
+ BasicCommandStack commandStack = new BasicCommandStack();
+
+ // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
+ //
+ commandStack.addCommandStackListener(new CommandStackListener()
+ {
+ public void commandStackChanged(final EventObject event)
+ {
+ getContainer().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+
+ // Try to select the affected objects.
+ //
+ Command mostRecentCommand = ((CommandStack)event.getSource()).getMostRecentCommand();
+ if (mostRecentCommand != null)
+ {
+ setSelectionToViewer(mostRecentCommand.getAffectedObjects());
+ }
+ for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext();)
+ {
+ PropertySheetPage propertySheetPage = i.next();
+ if (propertySheetPage.getControl().isDisposed())
+ {
+ i.remove();
+ }
+ else
+ {
+ propertySheetPage.refresh();
+ }
+ }
+ }
+ });
+ }
+ });
+
+ // Create the editing domain with a special command stack.
+ //
+ editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
+ }
+
+ /**
+ * This is here for the listener to be able to call it.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void firePropertyChange(int action)
+ {
+ super.firePropertyChange(action);
+ }
+
+ /**
+ * This sets the selection into whichever viewer is active.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelectionToViewer(Collection<?> collection)
+ {
+ final Collection<?> theSelection = collection;
+ // Make sure it's okay.
+ //
+ if (theSelection != null && !theSelection.isEmpty())
+ {
+ Runnable runnable = new Runnable()
+ {
+ public void run()
+ {
+ // Try to select the items in the current content viewer of the editor.
+ //
+ if (currentViewer != null)
+ {
+ currentViewer.setSelection(new StructuredSelection(theSelection.toArray()), true);
+ }
+ }
+ };
+ getSite().getShell().getDisplay().asyncExec(runnable);
+ }
+ }
+
+ /**
+ * This returns the editing domain as required by the {@link IEditingDomainProvider} interface.
+ * This is important for implementing the static methods of {@link AdapterFactoryEditingDomain}
+ * and for supporting {@link org.eclipse.emf.edit.ui.action.CommandAction}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomain getEditingDomain()
+ {
+ return editingDomain;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class ReverseAdapterFactoryContentProvider extends AdapterFactoryContentProvider
+ {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ReverseAdapterFactoryContentProvider(AdapterFactory adapterFactory)
+ {
+ super(adapterFactory);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object[] getElements(Object object)
+ {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object[] getChildren(Object object)
+ {
+ Object parent = super.getParent(object);
+ return (parent == null ? Collections.EMPTY_SET : Collections.singleton(parent)).toArray();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean hasChildren(Object object)
+ {
+ Object parent = super.getParent(object);
+ return parent != null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object getParent(Object object)
+ {
+ return null;
+ }
+ }
+
+ /**
+ * This makes sure that one content viewer, either for the current page or the outline view, if it has focus,
+ * is the current one.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCurrentViewer(Viewer viewer)
+ {
+ // If it is changing...
+ //
+ if (currentViewer != viewer)
+ {
+ if (selectionChangedListener == null)
+ {
+ // Create the listener on demand.
+ //
+ selectionChangedListener = new ISelectionChangedListener()
+ {
+ // This just notifies those things that are affected by the section.
+ //
+ public void selectionChanged(SelectionChangedEvent selectionChangedEvent)
+ {
+ setSelection(selectionChangedEvent.getSelection());
+ }
+ };
+ }
+
+ // Stop listening to the old one.
+ //
+ if (currentViewer != null)
+ {
+ currentViewer.removeSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Start listening to the new one.
+ //
+ if (viewer != null)
+ {
+ viewer.addSelectionChangedListener(selectionChangedListener);
+ }
+
+ // Remember it.
+ //
+ currentViewer = viewer;
+
+ // Set the editors selection based on the current viewer's selection.
+ //
+ setSelection(currentViewer == null ? StructuredSelection.EMPTY : currentViewer.getSelection());
+ }
+ }
+
+ /**
+ * This returns the viewer as required by the {@link IViewerProvider} interface.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Viewer getViewer()
+ {
+ return currentViewer;
+ }
+
+ /**
+ * This creates a context menu for the viewer and adds a listener as well registering the menu for extension.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createContextMenuFor(StructuredViewer viewer)
+ {
+ MenuManager contextMenu = new MenuManager("#PopUp");
+ contextMenu.add(new Separator("additions"));
+ contextMenu.setRemoveAllWhenShown(true);
+ contextMenu.addMenuListener(this);
+ Menu menu = contextMenu.createContextMenu(viewer.getControl());
+ viewer.getControl().setMenu(menu);
+ getSite().registerContextMenu(contextMenu, new UnwrappingSelectionProvider(viewer));
+
+ int dndOperations = DND.DROP_COPY | DND.DROP_MOVE | DND.DROP_LINK;
+ Transfer[] transfers = new Transfer[] { LocalTransfer.getInstance() };
+ viewer.addDragSupport(dndOperations, transfers, new ViewerDragAdapter(viewer));
+ viewer.addDropSupport(dndOperations, transfers, new EditingDomainViewerDropAdapter(editingDomain, viewer));
+ }
+
+ /**
+ * This is the method called to load a resource into the editing domain's resource set based on the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createModel()
+ {
+ URI resourceURI = EditUIUtil.getURI(getEditorInput());
+ Exception exception = null;
+ Resource resource = null;
+ try
+ {
+ // Load the resource through the editing domain.
+ //
+ resource = editingDomain.getResourceSet().getResource(resourceURI, true);
+ }
+ catch (Exception e)
+ {
+ exception = e;
+ resource = editingDomain.getResourceSet().getResource(resourceURI, false);
+ }
+
+ Diagnostic diagnostic = analyzeResourceProblems(resource, exception);
+ if (diagnostic.getSeverity() != Diagnostic.OK)
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ editingDomain.getResourceSet().eAdapters().add(problemIndicationAdapter);
+ }
+
+ /**
+ * Returns a diagnostic describing the errors and warnings listed in the resource
+ * and the specified exception (if any).
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Diagnostic analyzeResourceProblems(Resource resource, Exception exception)
+ {
+ if (!resource.getErrors().isEmpty() || !resource.getWarnings().isEmpty())
+ {
+ BasicDiagnostic basicDiagnostic = new BasicDiagnostic(Diagnostic.ERROR,
+ "org.eclipse.emf.cdo.releng.setup.editor.rcp", 0,
+ getString("_UI_CreateModelError_message", resource.getURI()),
+ new Object[] { exception == null ? (Object)resource : exception });
+ basicDiagnostic.merge(EcoreUtil.computeDiagnostic(resource, true));
+ return basicDiagnostic;
+ }
+ else if (exception != null)
+ {
+ return new BasicDiagnostic(Diagnostic.ERROR, "org.eclipse.emf.cdo.releng.setup.editor.rcp", 0, getString(
+ "_UI_CreateModelError_message", resource.getURI()), new Object[] { exception });
+ }
+ else
+ {
+ return Diagnostic.OK_INSTANCE;
+ }
+ }
+
+ /**
+ * This is the method used by the framework to install your own controls.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPagesGen()
+ {
+ // Creates the model from the editor input
+ //
+ createModel();
+
+ // Only creates the other pages if there is something that can be edited
+ //
+ if (!getEditingDomain().getResourceSet().getResources().isEmpty())
+ {
+ // Create a page for the selection tree view.
+ //
+ Tree tree = new Tree(getContainer(), SWT.MULTI);
+ selectionViewer = new TreeViewer(tree);
+ setCurrentViewer(selectionViewer);
+
+ selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ selectionViewer.setInput(editingDomain.getResourceSet());
+ selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
+
+ new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
+
+ createContextMenuFor(selectionViewer);
+ int pageIndex = addPage(tree);
+ setPageText(pageIndex, getString("_UI_SelectionPage_label"));
+
+ getSite().getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ setActivePage(0);
+ }
+ });
+ }
+
+ // Ensures that this editor will only display the page's tab
+ // area if there are more than one page
+ //
+ getContainer().addControlListener(new ControlAdapter()
+ {
+ boolean guard = false;
+
+ @Override
+ public void controlResized(ControlEvent event)
+ {
+ if (!guard)
+ {
+ guard = true;
+ hideTabs();
+ guard = false;
+ }
+ }
+ });
+
+ getSite().getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ updateProblemIndication();
+ }
+ });
+ }
+
+ @Override
+ public void createPages()
+ {
+ createPagesGen();
+
+ Resource resource = editingDomain.getResourceSet().getResources().get(0);
+ selectionViewer.setInput(resource);
+ selectionViewer.setSelection(new StructuredSelection(resource.getContents().get(0)), true);
+ }
+
+ /**
+ * If there is just one page in the multi-page editor part,
+ * this hides the single tab at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void hideTabs()
+ {
+ if (getPageCount() <= 1)
+ {
+ setPageText(0, "");
+ if (getContainer() instanceof CTabFolder)
+ {
+ ((CTabFolder)getContainer()).setTabHeight(1);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y + 6);
+ }
+ }
+ }
+
+ /**
+ * If there is more than one page in the multi-page editor part,
+ * this shows the tabs at the bottom.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void showTabs()
+ {
+ if (getPageCount() > 1)
+ {
+ setPageText(0, getString("_UI_SelectionPage_label"));
+ if (getContainer() instanceof CTabFolder)
+ {
+ ((CTabFolder)getContainer()).setTabHeight(SWT.DEFAULT);
+ Point point = getContainer().getSize();
+ getContainer().setSize(point.x, point.y - 6);
+ }
+ }
+ }
+
+ /**
+ * This is used to track the active viewer.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected void pageChange(int pageIndex)
+ {
+ super.pageChange(pageIndex);
+
+ if (contentOutlinePage != null)
+ {
+ handleContentOutlineSelection(contentOutlinePage.getSelection());
+ }
+ }
+
+ /**
+ * This is how the framework determines which interfaces we implement.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("rawtypes")
+ @Override
+ public Object getAdapter(Class key)
+ {
+ if (key.equals(IContentOutlinePage.class))
+ {
+ return showOutlineView() ? getContentOutlinePage() : null;
+ }
+ else if (key.equals(IPropertySheetPage.class))
+ {
+ return getPropertySheetPage();
+ }
+ else
+ {
+ return super.getAdapter(key);
+ }
+ }
+
+ /**
+ * This accesses a cached version of the content outliner.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IContentOutlinePage getContentOutlinePage()
+ {
+ if (contentOutlinePage == null)
+ {
+ // The content outline is just a tree.
+ //
+ class MyContentOutlinePage extends ContentOutlinePage
+ {
+ @Override
+ public void createControl(Composite parent)
+ {
+ super.createControl(parent);
+ contentOutlineViewer = getTreeViewer();
+ contentOutlineViewer.addSelectionChangedListener(this);
+
+ // Set up the tree viewer.
+ //
+ contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
+ contentOutlineViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
+ contentOutlineViewer.setInput(editingDomain.getResourceSet());
+
+ // Make sure our popups work.
+ //
+ createContextMenuFor(contentOutlineViewer);
+
+ if (!editingDomain.getResourceSet().getResources().isEmpty())
+ {
+ // Select the root object in the view.
+ //
+ contentOutlineViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources()
+ .get(0)), true);
+ }
+ }
+
+ @Override
+ public void makeContributions(IMenuManager menuManager, IToolBarManager toolBarManager,
+ IStatusLineManager statusLineManager)
+ {
+ super.makeContributions(menuManager, toolBarManager, statusLineManager);
+ contentOutlineStatusLineManager = statusLineManager;
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars)
+ {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ }
+
+ contentOutlinePage = new MyContentOutlinePage();
+
+ // Listen to selection so that we can handle it is a special way.
+ //
+ contentOutlinePage.addSelectionChangedListener(new ISelectionChangedListener()
+ {
+ // This ensures that we handle selections correctly.
+ //
+ public void selectionChanged(SelectionChangedEvent event)
+ {
+ handleContentOutlineSelection(event.getSelection());
+ }
+ });
+ }
+
+ return contentOutlinePage;
+ }
+
+ /**
+ * This accesses a cached version of the property sheet.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IPropertySheetPage getPropertySheetPage()
+ {
+ PropertySheetPage propertySheetPage = new ExtendedPropertySheetPage(editingDomain)
+ {
+ @Override
+ public void setSelectionToViewer(List<?> selection)
+ {
+ SetupEditor.this.setSelectionToViewer(selection);
+ SetupEditor.this.setFocus();
+ }
+
+ @Override
+ public void setActionBars(IActionBars actionBars)
+ {
+ super.setActionBars(actionBars);
+ getActionBarContributor().shareGlobalActions(this, actionBars);
+ }
+ };
+ propertySheetPage.setPropertySourceProvider(new AdapterFactoryContentProvider(adapterFactory));
+ propertySheetPages.add(propertySheetPage);
+
+ return propertySheetPage;
+ }
+
+ /**
+ * This deals with how we want selection in the outliner to affect the other views.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void handleContentOutlineSelection(ISelection selection)
+ {
+ if (selectionViewer != null && !selection.isEmpty() && selection instanceof IStructuredSelection)
+ {
+ Iterator<?> selectedElements = ((IStructuredSelection)selection).iterator();
+ if (selectedElements.hasNext())
+ {
+ // Get the first selected element.
+ //
+ Object selectedElement = selectedElements.next();
+
+ ArrayList<Object> selectionList = new ArrayList<Object>();
+ selectionList.add(selectedElement);
+ while (selectedElements.hasNext())
+ {
+ selectionList.add(selectedElements.next());
+ }
+
+ // Set the selection to the widget.
+ //
+ selectionViewer.setSelection(new StructuredSelection(selectionList));
+ }
+ }
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply tests the command stack.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isDirty()
+ {
+ return ((BasicCommandStack)editingDomain.getCommandStack()).isSaveNeeded();
+ }
+
+ /**
+ * This is for implementing {@link IEditorPart} and simply saves the model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSave(IProgressMonitor progressMonitor)
+ {
+ // Save only resources that have actually changed.
+ //
+ final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
+ saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
+
+ // Do the work within an operation because this is a long running activity that modifies the workbench.
+ //
+ IRunnableWithProgress operation = new IRunnableWithProgress()
+ {
+ // This is the method that gets invoked when the operation runs.
+ //
+ public void run(IProgressMonitor monitor)
+ {
+ // Save the resources to the file system.
+ //
+ boolean first = true;
+ for (Resource resource : editingDomain.getResourceSet().getResources())
+ {
+ if ((first || !resource.getContents().isEmpty() || isPersisted(resource))
+ && !editingDomain.isReadOnly(resource))
+ {
+ try
+ {
+ long timeStamp = resource.getTimeStamp();
+ resource.save(saveOptions);
+ if (resource.getTimeStamp() != timeStamp)
+ {
+ savedResources.add(resource);
+ }
+ }
+ catch (Exception exception)
+ {
+ resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
+ }
+ first = false;
+ }
+ }
+ }
+ };
+
+ updateProblemIndication = false;
+ try
+ {
+ // This runs the options, and shows progress.
+ //
+ new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
+
+ // Refresh the necessary state.
+ //
+ ((BasicCommandStack)editingDomain.getCommandStack()).saveIsDone();
+ firePropertyChange(IEditorPart.PROP_DIRTY);
+ }
+ catch (Exception exception)
+ {
+ // Something went wrong that shouldn't.
+ //
+ SetupEditorPlugin.INSTANCE.log(exception);
+ }
+ updateProblemIndication = true;
+ updateProblemIndication();
+ }
+
+ /**
+ * This returns whether something has been persisted to the URI of the specified resource.
+ * The implementation uses the URI converter from the editor's resource set to try to open an input stream.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean isPersisted(Resource resource)
+ {
+ boolean result = false;
+ try
+ {
+ InputStream stream = editingDomain.getResourceSet().getURIConverter().createInputStream(resource.getURI());
+ if (stream != null)
+ {
+ result = true;
+ stream.close();
+ }
+ }
+ catch (IOException e)
+ {
+ // Ignore
+ }
+ return result;
+ }
+
+ /**
+ * This always returns true because it is not currently supported.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isSaveAsAllowed()
+ {
+ return true;
+ }
+
+ /**
+ * This also changes the editor's input.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void doSaveAs()
+ {
+ String[] filters = FILE_EXTENSION_FILTERS.toArray(new String[FILE_EXTENSION_FILTERS.size()]);
+ String[] files = SetupEditorAdvisor.openFilePathDialog(getSite().getShell(), SWT.SAVE, filters);
+ if (files.length > 0)
+ {
+ URI uri = URI.createFileURI(files[0]);
+ doSaveAs(uri, new URIEditorInput(uri));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void doSaveAs(URI uri, IEditorInput editorInput)
+ {
+ editingDomain.getResourceSet().getResources().get(0).setURI(uri);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ IProgressMonitor progressMonitor = getActionBars().getStatusLineManager() != null ? getActionBars()
+ .getStatusLineManager().getProgressMonitor() : new NullProgressMonitor();
+ doSave(progressMonitor);
+ }
+
+ /**
+ * This is called during startup.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void init(IEditorSite site, IEditorInput editorInput)
+ {
+ setSite(site);
+ setInputWithNotify(editorInput);
+ setPartName(editorInput.getName());
+ site.setSelectionProvider(this);
+ site.getPage().addPartListener(partListener);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setFocus()
+ {
+ getControl(getActivePage()).setFocus();
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void addSelectionChangedListener(ISelectionChangedListener listener)
+ {
+ selectionChangedListeners.add(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider}.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void removeSelectionChangedListener(ISelectionChangedListener listener)
+ {
+ selectionChangedListeners.remove(listener);
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to return this editor's overall selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ISelection getSelection()
+ {
+ return editorSelection;
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.viewers.ISelectionProvider} to set this editor's overall selection.
+ * Calling this result will notify the listeners.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSelection(ISelection selection)
+ {
+ editorSelection = selection;
+
+ for (ISelectionChangedListener listener : selectionChangedListeners)
+ {
+ listener.selectionChanged(new SelectionChangedEvent(this, selection));
+ }
+ setStatusLineManager(selection);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStatusLineManager(ISelection selection)
+ {
+ IStatusLineManager statusLineManager = currentViewer != null && currentViewer == contentOutlineViewer ? contentOutlineStatusLineManager
+ : getActionBars().getStatusLineManager();
+
+ if (statusLineManager != null)
+ {
+ if (selection instanceof IStructuredSelection)
+ {
+ Collection<?> collection = ((IStructuredSelection)selection).toList();
+ switch (collection.size())
+ {
+ case 0:
+ {
+ statusLineManager.setMessage(getString("_UI_NoObjectSelected"));
+ break;
+ }
+ case 1:
+ {
+ String text = new AdapterFactoryItemDelegator(adapterFactory).getText(collection.iterator().next());
+ statusLineManager.setMessage(getString("_UI_SingleObjectSelected", text));
+ break;
+ }
+ default:
+ {
+ statusLineManager.setMessage(getString("_UI_MultiObjectSelected", Integer.toString(collection.size())));
+ break;
+ }
+ }
+ }
+ else
+ {
+ statusLineManager.setMessage("");
+ }
+ }
+ }
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key)
+ {
+ return SetupEditorPlugin.INSTANCE.getString(key);
+ }
+
+ /**
+ * This looks up a string in plugin.properties, making a substitution.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key, Object s1)
+ {
+ return SetupEditorPlugin.INSTANCE.getString(key, new Object[] { s1 });
+ }
+
+ /**
+ * This implements {@link org.eclipse.jface.action.IMenuListener} to help fill the context menus with contributions from the Edit menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void menuAboutToShow(IMenuManager menuManager)
+ {
+ ((IMenuListener)getEditorSite().getActionBarContributor()).menuAboutToShow(menuManager);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EditingDomainActionBarContributor getActionBarContributor()
+ {
+ return (EditingDomainActionBarContributor)getEditorSite().getActionBarContributor();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public IActionBars getActionBars()
+ {
+ return getActionBarContributor().getActionBars();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public AdapterFactory getAdapterFactory()
+ {
+ return adapterFactory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void dispose()
+ {
+ updateProblemIndication = false;
+
+ getSite().getPage().removePartListener(partListener);
+
+ adapterFactory.dispose();
+
+ if (getActionBarContributor().getActiveEditor() == this)
+ {
+ getActionBarContributor().setActiveEditor(null);
+ }
+
+ for (PropertySheetPage propertySheetPage : propertySheetPages)
+ {
+ propertySheetPage.dispose();
+ }
+
+ if (contentOutlinePage != null)
+ {
+ contentOutlinePage.dispose();
+ }
+
+ super.dispose();
+ }
+
+ /**
+ * Returns whether the outline view should be presented to the user.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean showOutlineView()
+ {
+ return false;
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditorAdvisor.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditorAdvisor.java
new file mode 100644
index 0000000000..54536af5f4
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditorAdvisor.java
@@ -0,0 +1,609 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.rcp.presentation;
+
+import org.eclipse.emf.common.ui.URIEditorInput;
+import org.eclipse.emf.common.ui.action.WorkbenchWindowActionDelegate;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.edit.ui.action.LoadResourceAction;
+import org.eclipse.emf.edit.ui.util.EditUIUtil;
+
+import org.eclipse.equinox.app.IApplication;
+import org.eclipse.equinox.app.IApplicationContext;
+import org.eclipse.jface.action.GroupMarker;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorDescriptor;
+import org.eclipse.ui.IFolderLayout;
+import org.eclipse.ui.IPageLayout;
+import org.eclipse.ui.IPerspectiveFactory;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.actions.ContributionItemFactory;
+import org.eclipse.ui.application.ActionBarAdvisor;
+import org.eclipse.ui.application.IActionBarConfigurer;
+import org.eclipse.ui.application.IWorkbenchConfigurer;
+import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
+import org.eclipse.ui.application.WorkbenchAdvisor;
+import org.eclipse.ui.application.WorkbenchWindowAdvisor;
+
+import java.io.File;
+import java.util.Arrays;
+
+/**
+ * Customized {@link WorkbenchAdvisor} for the RCP application.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class SetupEditorAdvisor extends WorkbenchAdvisor
+{
+ /**
+ * The default file extension filters for use in dialogs.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final String[] FILE_EXTENSION_FILTERS = SetupEditor.FILE_EXTENSION_FILTERS.toArray(new String[0]);
+
+ /**
+ * This looks up a string in the plugin's plugin.properties file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key)
+ {
+ return SetupEditorPlugin.INSTANCE.getString(key);
+ }
+
+ /**
+ * This looks up a string in plugin.properties, making a substitution.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static String getString(String key, Object s1)
+ {
+ return org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorPlugin.INSTANCE.getString(key,
+ new Object[] { s1 });
+ }
+
+ /**
+ * RCP's application
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Application implements IApplication
+ {
+ /**
+ * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object start(IApplicationContext context) throws Exception
+ {
+ WorkbenchAdvisor workbenchAdvisor = new SetupEditorAdvisor();
+ Display display = PlatformUI.createDisplay();
+ try
+ {
+ int returnCode = PlatformUI.createAndRunWorkbench(display, workbenchAdvisor);
+ if (returnCode == PlatformUI.RETURN_RESTART)
+ {
+ return IApplication.EXIT_RESTART;
+ }
+ else
+ {
+ return IApplication.EXIT_OK;
+ }
+ }
+ finally
+ {
+ display.dispose();
+ }
+ }
+
+ /**
+ * @see org.eclipse.equinox.app.IApplication#stop()
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void stop()
+ {
+ // Do nothing.
+ }
+ }
+
+ /**
+ * RCP's perspective
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Perspective implements IPerspectiveFactory
+ {
+ /**
+ * Perspective ID
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String ID_PERSPECTIVE = "org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisorPerspective";
+
+ /**
+ * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void createInitialLayout(IPageLayout layout)
+ {
+ layout.setEditorAreaVisible(true);
+ layout.addPerspectiveShortcut(ID_PERSPECTIVE);
+
+ IFolderLayout bottom = layout.createFolder("bottom", IPageLayout.BOTTOM, (float)0.60, layout.getEditorArea());
+ bottom.addView(IPageLayout.ID_PROP_SHEET);
+ }
+ }
+
+ /**
+ * RCP's window advisor
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class WindowAdvisor extends WorkbenchWindowAdvisor
+ {
+ /**
+ * @see WorkbenchWindowAdvisor#WorkbenchWindowAdvisor(org.eclipse.ui.application.IWorkbenchWindowConfigurer)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WindowAdvisor(IWorkbenchWindowConfigurer configurer)
+ {
+ super(configurer);
+ }
+
+ /**
+ * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#preWindowOpen()
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void preWindowOpen()
+ {
+ IWorkbenchWindowConfigurer configurer = getWindowConfigurer();
+ configurer.setInitialSize(new Point(600, 450));
+ configurer.setShowCoolBar(false);
+ configurer.setShowStatusLine(true);
+ configurer.setTitle(getString("_UI_Application_title"));
+ }
+
+ /**
+ * @see org.eclipse.ui.application.WorkbenchWindowAdvisor#createActionBarAdvisor(org.eclipse.ui.application.IActionBarConfigurer)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public ActionBarAdvisor createActionBarAdvisor(IActionBarConfigurer configurer)
+ {
+ return new WindowActionBarAdvisor(configurer);
+ }
+ }
+
+ /**
+ * RCP's action bar advisor
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class WindowActionBarAdvisor extends ActionBarAdvisor
+ {
+ /**
+ * @see ActionBarAdvisor#ActionBarAdvisor(org.eclipse.ui.application.IActionBarConfigurer)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public WindowActionBarAdvisor(IActionBarConfigurer configurer)
+ {
+ super(configurer);
+ }
+
+ /**
+ * @see org.eclipse.ui.application.ActionBarAdvisor#fillMenuBar(org.eclipse.jface.action.IMenuManager)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ @Override
+ protected void fillMenuBar(IMenuManager menuBar)
+ {
+ IWorkbenchWindow window = getActionBarConfigurer().getWindowConfigurer().getWindow();
+ menuBar.add(createFileMenu(window));
+ menuBar.add(createEditMenu(window));
+ menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
+ menuBar.add(createHelpMenu(window));
+ }
+
+ /**
+ * Creates the 'File' menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createFileMenu(IWorkbenchWindow window)
+ {
+ IMenuManager menu = new MenuManager(getString("_UI_Menu_File_label"), IWorkbenchActionConstants.M_FILE);
+ menu.add(new GroupMarker(IWorkbenchActionConstants.FILE_START));
+
+ IMenuManager newMenu = new MenuManager(getString("_UI_Menu_New_label"), "new");
+ newMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
+
+ menu.add(newMenu);
+ menu.add(new Separator());
+ menu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
+ menu.add(new Separator());
+ addToMenuAndRegister(menu, ActionFactory.CLOSE.create(window));
+ addToMenuAndRegister(menu, ActionFactory.CLOSE_ALL.create(window));
+ menu.add(new Separator());
+ addToMenuAndRegister(menu, ActionFactory.SAVE.create(window));
+ addToMenuAndRegister(menu, ActionFactory.SAVE_AS.create(window));
+ addToMenuAndRegister(menu, ActionFactory.SAVE_ALL.create(window));
+ menu.add(new Separator());
+ addToMenuAndRegister(menu, ActionFactory.QUIT.create(window));
+ menu.add(new GroupMarker(IWorkbenchActionConstants.FILE_END));
+ return menu;
+ }
+
+ /**
+ * Creates the 'Edit' menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createEditMenu(IWorkbenchWindow window)
+ {
+ IMenuManager menu = new MenuManager(getString("_UI_Menu_Edit_label"), IWorkbenchActionConstants.M_EDIT);
+ menu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_START));
+
+ addToMenuAndRegister(menu, ActionFactory.UNDO.create(window));
+ addToMenuAndRegister(menu, ActionFactory.REDO.create(window));
+ menu.add(new GroupMarker(IWorkbenchActionConstants.UNDO_EXT));
+ menu.add(new Separator());
+
+ addToMenuAndRegister(menu, ActionFactory.CUT.create(window));
+ addToMenuAndRegister(menu, ActionFactory.COPY.create(window));
+ addToMenuAndRegister(menu, ActionFactory.PASTE.create(window));
+ menu.add(new GroupMarker(IWorkbenchActionConstants.CUT_EXT));
+ menu.add(new Separator());
+
+ addToMenuAndRegister(menu, ActionFactory.DELETE.create(window));
+ addToMenuAndRegister(menu, ActionFactory.SELECT_ALL.create(window));
+ menu.add(new Separator());
+
+ menu.add(new GroupMarker(IWorkbenchActionConstants.ADD_EXT));
+
+ menu.add(new GroupMarker(IWorkbenchActionConstants.EDIT_END));
+ menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+ return menu;
+ }
+
+ /**
+ * Creates the 'Window' menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createWindowMenu(IWorkbenchWindow window)
+ {
+ IMenuManager menu = new MenuManager(getString("_UI_Menu_Window_label"), IWorkbenchActionConstants.M_WINDOW);
+
+ addToMenuAndRegister(menu, ActionFactory.OPEN_NEW_WINDOW.create(window));
+ menu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
+ menu.add(ContributionItemFactory.OPEN_WINDOWS.create(window));
+
+ return menu;
+ }
+
+ /**
+ * Creates the 'Help' menu.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IMenuManager createHelpMenu(IWorkbenchWindow window)
+ {
+ IMenuManager menu = new MenuManager(getString("_UI_Menu_Help_label"), IWorkbenchActionConstants.M_HELP);
+ // Welcome or intro page would go here
+ // Help contents would go here
+ // Tips and tricks page would go here
+ menu.add(new GroupMarker(IWorkbenchActionConstants.HELP_START));
+ menu.add(new GroupMarker(IWorkbenchActionConstants.HELP_END));
+ menu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
+ return menu;
+ }
+
+ /**
+ * Adds the specified action to the given menu and also registers the action with the
+ * action bar configurer, in order to activate its key binding.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void addToMenuAndRegister(IMenuManager menuManager, IAction action)
+ {
+ menuManager.add(action);
+ getActionBarConfigurer().registerGlobalAction(action);
+ }
+ }
+
+ /**
+ * About action for the RCP application.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class AboutAction extends WorkbenchWindowActionDelegate
+ {
+ /**
+ * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void run(IAction action)
+ {
+ MessageDialog.openInformation(getWindow().getShell(), getString("_UI_About_title"), getString("_UI_About_text"));
+ }
+ }
+
+ /**
+ * Open action for the objects from the Setup model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class OpenAction extends WorkbenchWindowActionDelegate
+ {
+ /**
+ * Opens the editors for the files selected using the file dialog.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void run(IAction action)
+ {
+ String[] filePaths = openFilePathDialog(getWindow().getShell(), SWT.OPEN, null);
+ if (filePaths.length > 0)
+ {
+ openEditor(getWindow().getWorkbench(), URI.createFileURI(filePaths[0]));
+ }
+ }
+ }
+
+ /**
+ * Open URI action for the objects from the Setup model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class OpenURIAction extends WorkbenchWindowActionDelegate
+ {
+ /**
+ * Opens the editors for the files selected using the LoadResourceDialog.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void run(IAction action)
+ {
+ LoadResourceAction.LoadResourceDialog loadResourceDialog = new LoadResourceAction.LoadResourceDialog(getWindow()
+ .getShell());
+ if (Window.OK == loadResourceDialog.open())
+ {
+ for (URI uri : loadResourceDialog.getURIs())
+ {
+ openEditor(getWindow().getWorkbench(), uri);
+ }
+ }
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static String[] openFilePathDialog(Shell shell, int style, String[] fileExtensionFilters)
+ {
+ return openFilePathDialog(shell, style, fileExtensionFilters, (style & SWT.OPEN) != 0, (style & SWT.OPEN) != 0,
+ (style & SWT.SAVE) != 0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static String[] openFilePathDialog(Shell shell, int style, String[] fileExtensionFilters,
+ boolean includeGroupFilter, boolean includeAllFilter, boolean addExtension)
+ {
+ FileDialog fileDialog = new FileDialog(shell, style);
+ if (fileExtensionFilters == null)
+ {
+ fileExtensionFilters = FILE_EXTENSION_FILTERS;
+ }
+
+ // If requested, augment the file extension filters by adding a group of all the other filters (*.ext1;*.ext2;...)
+ // at the beginning and/or an all files wildcard (*.*) at the end.
+ //
+ includeGroupFilter &= fileExtensionFilters.length > 1;
+ int offset = includeGroupFilter ? 1 : 0;
+
+ if (includeGroupFilter || includeAllFilter)
+ {
+ int size = fileExtensionFilters.length + offset + (includeAllFilter ? 1 : 0);
+ String[] allFilters = new String[size];
+ StringBuilder group = includeGroupFilter ? new StringBuilder() : null;
+
+ for (int i = 0; i < fileExtensionFilters.length; i++)
+ {
+ if (includeGroupFilter)
+ {
+ if (i != 0)
+ {
+ group.append(';');
+ }
+ group.append(fileExtensionFilters[i]);
+ }
+ allFilters[i + offset] = fileExtensionFilters[i];
+ }
+
+ if (includeGroupFilter)
+ {
+ allFilters[0] = group.toString();
+ }
+ if (includeAllFilter)
+ {
+ allFilters[allFilters.length - 1] = "*.*";
+ }
+
+ fileDialog.setFilterExtensions(allFilters);
+ }
+ else
+ {
+ fileDialog.setFilterExtensions(fileExtensionFilters);
+ }
+ fileDialog.open();
+
+ String[] filenames = fileDialog.getFileNames();
+ String[] result = new String[filenames.length];
+ String path = fileDialog.getFilterPath() + File.separator;
+ String extension = null;
+
+ // If extension adding requested, get the dotted extension corresponding to the selected filter.
+ //
+ if (addExtension)
+ {
+ int i = fileDialog.getFilterIndex();
+ if (i != -1 && (!includeAllFilter || i != fileExtensionFilters.length))
+ {
+ i = includeGroupFilter && i == 0 ? 0 : i - offset;
+ String filter = fileExtensionFilters[i];
+ int dot = filter.lastIndexOf('.');
+ if (dot == 1 && filter.charAt(0) == '*')
+ {
+ extension = filter.substring(dot);
+ }
+ }
+ }
+
+ // Build the result by adding the selected path and, if needed, auto-appending the extension.
+ //
+ for (int i = 0; i < filenames.length; i++)
+ {
+ String filename = path + filenames[i];
+ if (extension != null)
+ {
+ int dot = filename.lastIndexOf('.');
+ if (dot == -1 || !Arrays.asList(fileExtensionFilters).contains("*" + filename.substring(dot)))
+ {
+ filename += extension;
+ }
+ }
+ result[i] = filename;
+ }
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static boolean openEditor(IWorkbench workbench, URI uri)
+ {
+ IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+
+ IEditorDescriptor editorDescriptor = EditUIUtil.getDefaultEditor(uri, null);
+ if (editorDescriptor == null)
+ {
+ MessageDialog.openError(workbenchWindow.getShell(), getString("_UI_Error_title"),
+ getString("_WARN_No_Editor", uri.lastSegment()));
+ return false;
+ }
+ else
+ {
+ try
+ {
+ page.openEditor(new URIEditorInput(uri), editorDescriptor.getId());
+ }
+ catch (PartInitException exception)
+ {
+ MessageDialog.openError(workbenchWindow.getShell(), getString("_UI_OpenEditorError_label"),
+ exception.getMessage());
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * @see org.eclipse.ui.application.WorkbenchAdvisor#getInitialWindowPerspectiveId()
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getInitialWindowPerspectiveId()
+ {
+ return Perspective.ID_PERSPECTIVE;
+ }
+
+ /**
+ * @see org.eclipse.ui.application.WorkbenchAdvisor#initialize(org.eclipse.ui.application.IWorkbenchConfigurer)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void initialize(IWorkbenchConfigurer configurer)
+ {
+ super.initialize(configurer);
+ configurer.setSaveAndRestore(true);
+ }
+
+ /**
+ * @see org.eclipse.ui.application.WorkbenchAdvisor#createWorkbenchWindowAdvisor(org.eclipse.ui.application.IWorkbenchWindowConfigurer)
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor(IWorkbenchWindowConfigurer configurer)
+ {
+ return new WindowAdvisor(configurer);
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditorPlugin.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditorPlugin.java
new file mode 100644
index 0000000000..6d2d2218a6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupEditorPlugin.java
@@ -0,0 +1,97 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.rcp.presentation;
+
+import org.eclipse.emf.cdo.releng.workingsets.provider.WorkingSetsEditPlugin;
+
+import org.eclipse.emf.common.EMFPlugin;
+
+import org.eclipse.emf.common.ui.EclipseUIPlugin;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+/**
+ * This is the central singleton for the Setup editor plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public final class SetupEditorPlugin extends EMFPlugin
+{
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final SetupEditorPlugin INSTANCE = new SetupEditorPlugin();
+
+ /**
+ * Keep track of the singleton.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static Implementation plugin;
+
+ /**
+ * Create the instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SetupEditorPlugin()
+ {
+ super(new ResourceLocator[] { WorkingSetsEditPlugin.INSTANCE, });
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ @Override
+ public ResourceLocator getPluginResourceLocator()
+ {
+ return plugin;
+ }
+
+ /**
+ * Returns the singleton instance of the Eclipse plugin.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the singleton instance.
+ * @generated
+ */
+ public static Implementation getPlugin()
+ {
+ return plugin;
+ }
+
+ /**
+ * The actual implementation of the Eclipse <b>Plugin</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static class Implementation extends EclipseUIPlugin
+ {
+ /**
+ * Creates an instance.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Implementation()
+ {
+ super();
+
+ // Remember the static instance.
+ //
+ plugin = this;
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupModelWizard.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupModelWizard.java
new file mode 100644
index 0000000000..5f24c79ef2
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor.rcp/src/org/eclipse/emf/cdo/releng/setup/rcp/presentation/SetupModelWizard.java
@@ -0,0 +1,631 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.rcp.presentation;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.StringTokenizer;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+import org.eclipse.emf.edit.ui.provider.ExtendedImageRegistry;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+
+import org.eclipse.swt.SWT;
+
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.ModifyEvent;
+
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbench;
+
+import org.eclipse.emf.cdo.releng.setup.SetupFactory;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.provider.SetupEditPlugin;
+
+import java.io.File;
+
+import org.eclipse.jface.operation.IRunnableWithProgress;
+
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Text;
+
+/**
+ * This is a simple wizard for creating a new model file.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class SetupModelWizard extends Wizard implements INewWizard
+{
+ /**
+ * The supported extensions for created files.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<String> FILE_EXTENSIONS = Collections.unmodifiableList(Arrays
+ .asList(SetupEditorPlugin.INSTANCE.getString("_UI_SetupEditorFilenameExtensions").split("\\s*,\\s*")));
+
+ /**
+ * A formatted list of supported file extensions, suitable for display.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final String FORMATTED_FILE_EXTENSIONS = SetupEditorPlugin.INSTANCE.getString(
+ "_UI_SetupEditorFilenameExtensions").replaceAll("\\s*,\\s*", ", ");
+
+ /**
+ * This caches an instance of the model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SetupPackage setupPackage = SetupPackage.eINSTANCE;
+
+ /**
+ * This caches an instance of the model factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SetupFactory setupFactory = setupPackage.getSetupFactory();
+
+ /**
+ * This is the initial object creation page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SetupModelWizardInitialObjectCreationPage initialObjectCreationPage;
+
+ /**
+ * Remember the selection during initialization for populating the default container.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IStructuredSelection selection;
+
+ /**
+ * Remember the workbench during initialization.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected IWorkbench workbench;
+
+ /**
+ * Caches the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected List<String> initialObjectNames;
+
+ /**
+ * This just records the information.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void init(IWorkbench workbench, IStructuredSelection selection)
+ {
+ this.workbench = workbench;
+ this.selection = selection;
+ setWindowTitle(SetupEditorPlugin.INSTANCE.getString("_UI_Wizard_label"));
+ setDefaultPageImageDescriptor(ExtendedImageRegistry.INSTANCE.getImageDescriptor(SetupEditorPlugin.INSTANCE
+ .getImage("full/wizban/NewSetup")));
+ }
+
+ /**
+ * Returns the names of the types that can be created as the root object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<String> getInitialObjectNames()
+ {
+ if (initialObjectNames == null)
+ {
+ initialObjectNames = new ArrayList<String>();
+ for (EClassifier eClassifier : setupPackage.getEClassifiers())
+ {
+ if (eClassifier instanceof EClass)
+ {
+ EClass eClass = (EClass)eClassifier;
+ if (!eClass.isAbstract())
+ {
+ initialObjectNames.add(eClass.getName());
+ }
+ }
+ }
+ Collections.sort(initialObjectNames, java.text.Collator.getInstance());
+ }
+ return initialObjectNames;
+ }
+
+ /**
+ * Create a new model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EObject createInitialModel()
+ {
+ EClass eClass = (EClass)setupPackage.getEClassifier(initialObjectCreationPage.getInitialObjectName());
+ EObject rootObject = setupFactory.create(eClass);
+ return rootObject;
+ }
+
+ /**
+ * Do the work after everything is specified.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean performFinish()
+ {
+ try
+ {
+ // Get the URI of the model file.
+ //
+ final URI fileURI = getModelURI();
+ if (new File(fileURI.toFileString()).exists())
+ {
+ if (!MessageDialog.openQuestion(getShell(), SetupEditorPlugin.INSTANCE.getString("_UI_Question_title"),
+ SetupEditorPlugin.INSTANCE.getString("_WARN_FileConflict", new String[] { fileURI.toFileString() })))
+ {
+ initialObjectCreationPage.selectFileField();
+ return false;
+ }
+ }
+
+ // Do the work within an operation.
+ //
+ IRunnableWithProgress operation = new IRunnableWithProgress()
+ {
+ public void run(IProgressMonitor progressMonitor)
+ {
+ try
+ {
+ // Create a resource set
+ //
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ // Create a resource for this file.
+ //
+ Resource resource = resourceSet.createResource(fileURI);
+
+ // Add the initial model object to the contents.
+ //
+ EObject rootObject = createInitialModel();
+ if (rootObject != null)
+ {
+ resource.getContents().add(rootObject);
+ }
+
+ // Save the contents of the resource to the file system.
+ //
+ Map<Object, Object> options = new HashMap<Object, Object>();
+ options.put(XMLResource.OPTION_ENCODING, initialObjectCreationPage.getEncoding());
+ resource.save(options);
+ }
+ catch (Exception exception)
+ {
+ SetupEditorPlugin.INSTANCE.log(exception);
+ }
+ finally
+ {
+ progressMonitor.done();
+ }
+ }
+ };
+
+ getContainer().run(false, false, operation);
+
+ return SetupEditorAdvisor.openEditor(workbench, fileURI);
+ }
+ catch (Exception exception)
+ {
+ SetupEditorPlugin.INSTANCE.log(exception);
+ return false;
+ }
+ }
+
+ /**
+ * This is the page where the type of object to create is selected.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public class SetupModelWizardInitialObjectCreationPage extends WizardPage
+ {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Text fileField;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Combo initialObjectField;
+
+ /**
+ * @generated
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ protected List<String> encodings;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Combo encodingField;
+
+ /**
+ * Pass in the selection.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public SetupModelWizardInitialObjectCreationPage(String pageId)
+ {
+ super(pageId);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createControl(Composite parent)
+ {
+ Composite composite = new Composite(parent, SWT.NONE);
+ {
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 1;
+ layout.verticalSpacing = 12;
+ composite.setLayout(layout);
+
+ GridData data = new GridData();
+ data.verticalAlignment = GridData.FILL;
+ data.grabExcessVerticalSpace = true;
+ data.horizontalAlignment = GridData.FILL;
+ composite.setLayoutData(data);
+ }
+
+ Label resourceURILabel = new Label(composite, SWT.LEFT);
+ {
+ resourceURILabel.setText(SetupEditorPlugin.INSTANCE.getString("_UI_File_label"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ resourceURILabel.setLayoutData(data);
+ }
+
+ Composite fileComposite = new Composite(composite, SWT.NONE);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.END;
+ fileComposite.setLayoutData(data);
+
+ GridLayout layout = new GridLayout();
+ data.horizontalAlignment = GridData.FILL;
+ layout.marginHeight = 0;
+ layout.marginWidth = 0;
+ layout.numColumns = 2;
+ fileComposite.setLayout(layout);
+ }
+
+ fileField = new Text(fileComposite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ data.horizontalSpan = 1;
+ fileField.setLayoutData(data);
+ }
+
+ fileField.addModifyListener(validator);
+
+ Button resourceURIBrowseFileSystemButton = new Button(fileComposite, SWT.PUSH);
+ resourceURIBrowseFileSystemButton.setText(SetupEditorPlugin.INSTANCE.getString("_UI_Browse_label"));
+
+ resourceURIBrowseFileSystemButton.addSelectionListener(new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected(SelectionEvent event)
+ {
+ String[] filters = SetupEditor.FILE_EXTENSION_FILTERS.toArray(new String[SetupEditor.FILE_EXTENSION_FILTERS
+ .size()]);
+ String[] files = SetupEditorAdvisor.openFilePathDialog(getShell(), SWT.SAVE, filters);
+ if (files.length > 0)
+ {
+ fileField.setText(files[0]);
+ }
+ }
+ });
+ Label containerLabel = new Label(composite, SWT.LEFT);
+ {
+ containerLabel.setText(SetupEditorPlugin.INSTANCE.getString("_UI_ModelObject"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ containerLabel.setLayoutData(data);
+ }
+
+ initialObjectField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ initialObjectField.setLayoutData(data);
+ }
+
+ for (String objectName : getInitialObjectNames())
+ {
+ initialObjectField.add(getLabel(objectName));
+ }
+
+ if (initialObjectField.getItemCount() == 1)
+ {
+ initialObjectField.select(0);
+ }
+ initialObjectField.addModifyListener(validator);
+
+ Label encodingLabel = new Label(composite, SWT.LEFT);
+ {
+ encodingLabel.setText(SetupEditorPlugin.INSTANCE.getString("_UI_XMLEncoding"));
+
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ encodingLabel.setLayoutData(data);
+ }
+ encodingField = new Combo(composite, SWT.BORDER);
+ {
+ GridData data = new GridData();
+ data.horizontalAlignment = GridData.FILL;
+ data.grabExcessHorizontalSpace = true;
+ encodingField.setLayoutData(data);
+ }
+
+ for (String encoding : getEncodings())
+ {
+ encodingField.add(encoding);
+ }
+
+ encodingField.select(0);
+ encodingField.addModifyListener(validator);
+
+ setPageComplete(validatePage());
+ setControl(composite);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModifyListener validator = new ModifyListener()
+ {
+ public void modifyText(ModifyEvent e)
+ {
+ setPageComplete(validatePage());
+ }
+ };
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected boolean validatePage()
+ {
+ URI fileURI = getFileURI();
+ if (fileURI == null || fileURI.isEmpty())
+ {
+ setErrorMessage(null);
+ return false;
+ }
+
+ String extension = fileURI.fileExtension();
+ if (extension == null || !FILE_EXTENSIONS.contains(extension))
+ {
+ String key = FILE_EXTENSIONS.size() > 1 ? "_WARN_FilenameExtensions" : "_WARN_FilenameExtension";
+ setErrorMessage(SetupEditorPlugin.INSTANCE.getString(key, new Object[] { FORMATTED_FILE_EXTENSIONS }));
+ return false;
+ }
+
+ setErrorMessage(null);
+ return getInitialObjectName() != null && getEncodings().contains(encodingField.getText());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setVisible(boolean visible)
+ {
+ super.setVisible(visible);
+ if (visible)
+ {
+ initialObjectField.clearSelection();
+ encodingField.clearSelection();
+ fileField.setFocus();
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getInitialObjectName()
+ {
+ String label = initialObjectField.getText();
+
+ for (String name : getInitialObjectNames())
+ {
+ if (getLabel(name).equals(label))
+ {
+ return name;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getEncoding()
+ {
+ return encodingField.getText();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public URI getFileURI()
+ {
+ try
+ {
+ return URI.createFileURI(fileField.getText());
+ }
+ catch (Exception exception)
+ {
+ // Ignore
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void selectFileField()
+ {
+ initialObjectField.clearSelection();
+ encodingField.clearSelection();
+ fileField.selectAll();
+ fileField.setFocus();
+ }
+
+ /**
+ * Returns the label for the specified type name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected String getLabel(String typeName)
+ {
+ try
+ {
+ return SetupEditPlugin.INSTANCE.getString("_UI_" + typeName + "_type");
+ }
+ catch (MissingResourceException mre)
+ {
+ SetupEditorPlugin.INSTANCE.log(mre);
+ }
+ return typeName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected Collection<String> getEncodings()
+ {
+ if (encodings == null)
+ {
+ encodings = new ArrayList<String>();
+ for (StringTokenizer stringTokenizer = new StringTokenizer(
+ SetupEditorPlugin.INSTANCE.getString("_UI_XMLEncodingChoices")); stringTokenizer.hasMoreTokens();)
+ {
+ encodings.add(stringTokenizer.nextToken());
+ }
+ }
+ return encodings;
+ }
+ }
+
+ /**
+ * The framework calls this to create the contents of the wizard.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void addPages()
+ {
+ initialObjectCreationPage = new SetupModelWizardInitialObjectCreationPage("Whatever2");
+ initialObjectCreationPage.setTitle(SetupEditorPlugin.INSTANCE.getString("_UI_SetupModelWizard_label"));
+ initialObjectCreationPage.setDescription(SetupEditorPlugin.INSTANCE
+ .getString("_UI_Wizard_initial_object_description"));
+ addPage(initialObjectCreationPage);
+ }
+
+ /**
+ * Get the URI from the page.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public URI getModelURI()
+ {
+ return initialObjectCreationPage.getFileURI();
+ }
+
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/.classpath b/plugins/org.eclipse.emf.cdo.releng.setup.editor/.classpath
index 304e86186a..467d0ae05e 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/.classpath
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/.classpath
@@ -2,6 +2,10 @@
<classpath>
<classpathentry kind="src" path="src"/>
<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="con" path="org.eclipse.pde.core.requiredPlugins">
+ <accessrules>
+ <accessrule kind="accessible" pattern="org/eclipse/egit/**"/>
+ </accessrules>
+ </classpathentry>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.editor/.settings/org.eclipse.core.resources.prefs
index 45834dcf98..38ce18d974 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/.settings/org.eclipse.core.resources.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/.settings/org.eclipse.core.resources.prefs
@@ -1,5 +1,2 @@
eclipse.preferences.version=1
-encoding/.project=UTF-8
-encoding//model/Configuration.xmi=ASCII
-encoding//model/setup.ecore=UTF-8
-encoding//model/setup.ecorediag=UTF-8
+encoding/.project=UTF-8 \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.setup.editor/META-INF/MANIFEST.MF
index ab3800c7f5..ec19bc4e47 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/META-INF/MANIFEST.MF
@@ -8,11 +8,18 @@ Bundle-Activator: org.eclipse.emf.cdo.releng.setup.presentation.SetupEditorPlugi
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.cdo.releng.setup.presentation;x-friends:=org.eclipse.emf.cdo.releng.setup.ide;version="1.0.0"
+Export-Package: org.eclipse.emf.cdo.releng.setup.presentation;x-internal:=true;version="1.0.0",
+ org.eclipse.emf.cdo.releng.setup.presentation.actions;x-internal:=true;version="1.0.0"
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
org.eclipse.core.resources;visibility:=reexport;bundle-version="[3.5.0,4.0.0)",
org.eclipse.emf.cdo.releng.setup.edit;visibility:=reexport;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.cdo.releng.workingsets.edit;visibility:=reexport;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.cdo.releng.predicates.edit;visibility:=reexport;bundle-version="[1.0.0,2.0.0)",
org.eclipse.emf.ecore.xmi;visibility:=reexport;bundle-version="[2.5.0,3.0.0)",
org.eclipse.emf.edit.ui;visibility:=reexport;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.ui.ide;visibility:=reexport;bundle-version="[3.5.0,4.0.0)"
+ org.eclipse.ui.ide;visibility:=reexport;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.jgit;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.egit;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.egit.core;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.egit.ui;bundle-version="[3.0.0,4.0.0)"
Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/icons/prefs.gif b/plugins/org.eclipse.emf.cdo.releng.setup.editor/icons/prefs.gif
index 5eed04350e..5eed04350e 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/icons/prefs.gif
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/icons/prefs.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/icons/push_directly.gif b/plugins/org.eclipse.emf.cdo.releng.setup.editor/icons/push_directly.gif
index b67692df43..b67692df43 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/icons/push_directly.gif
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/icons/push_directly.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/icons/update.gif b/plugins/org.eclipse.emf.cdo.releng.setup.editor/icons/update.gif
index 16f4f7c4e0..16f4f7c4e0 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/icons/update.gif
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/icons/update.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.properties
index f03733cabd..3ffe081464 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.properties
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.properties
@@ -33,7 +33,7 @@ _UI_MultiObjectSelected = Selected {0} Objects
_UI_OpenEditorError_label = Open Editor
-_UI_Wizard_category = Example EMF Model Creation Wizards
+_UI_Wizard_category = Release Engineering
_UI_CreateModelError_message = Problems encountered in file "{0}"
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.xml
index 81470761ec..de114166bc 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.xml
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/plugin.xml
@@ -14,21 +14,25 @@
<plugin>
<extension point="org.eclipse.ui.newWizards">
- <!-- @generated setup -->
+ <!-- @generated setup not -->
<category
id="org.eclipse.emf.ecore.Wizard.category.ID"
name="%_UI_Wizard_category"/>
+ <category
+ id="org.eclipse.emf.cdo.releng"
+ name="%_UI_Wizard_category"/>
<wizard
id="org.eclipse.emf.cdo.releng.setup.presentation.SetupModelWizardID"
name="%_UI_SetupModelWizard_label"
class="org.eclipse.emf.cdo.releng.setup.presentation.SetupModelWizard"
- category="org.eclipse.emf.ecore.Wizard.category.ID"
+ category="org.eclipse.emf.cdo.releng"
icon="icons/full/obj16/SetupModelFile.gif">
<description>%_UI_SetupModelWizard_description</description>
<selection class="org.eclipse.core.resources.IResource"/>
</wizard>
</extension>
+
<extension point="org.eclipse.ui.editors">
<!-- @generated setup -->
<editor
@@ -41,4 +45,57 @@
</editor>
</extension>
+ <extension
+ point="org.eclipse.ui.actionSets">
+ <actionSet
+ id="org.eclipse.emf.cdo.releng.setup.editor.actionSet"
+ label="Setup Actions"
+ visible="true">
+ <menu
+ id="setupMenu"
+ label="Setup &amp;Menu">
+ <separator
+ name="setupGroup">
+ </separator>
+ </menu>
+ <action
+ class="org.eclipse.emf.cdo.releng.setup.presentation.actions.PreferencesAction"
+ icon="icons/prefs.gif"
+ id="org.eclipse.emf.cdo.releng.setup.presentation.actions.PreferencesAction"
+ label="&amp;Preferences"
+ style="push"
+ toolbarPath="setupGroup"
+ tooltip="Opens an editor on the setup preferences">
+ </action>
+ <action
+ class="org.eclipse.emf.cdo.releng.setup.presentation.actions.ManualPerformAction"
+ icon="icons/update.gif"
+ id="org.eclipse.emf.cdo.releng.setup.presentation.actions.ManualPerformAction"
+ label="&amp;Perform"
+ style="push"
+ toolbarPath="setupGroup"
+ tooltip="Perform setup tasks">
+ </action>
+ </actionSet>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.popupMenus">
+ <objectContribution
+ adaptable="true"
+ id="org.eclipse.emf.cdo.releng.setup.editor.contribution1"
+ objectClass="org.eclipse.egit.ui.internal.repository.tree.RepositoryNode">
+ <action
+ class="org.eclipse.emf.cdo.releng.setup.presentation.actions.PushDirectAction"
+ enablesFor="1"
+ icon="icons/push_directly.gif"
+ id="org.eclipse.emf.cdo.releng.setup.editor.PushDirectAction"
+ label="Push Directly"
+ menubarPath="additions"
+ state="true"
+ style="push"/>
+ </objectContribution>
+ </extension>
+
+
</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditor.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditor.java
index e370a9b3d3..f706e6b8e3 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditor.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditor.java
@@ -10,8 +10,11 @@
*/
package org.eclipse.emf.cdo.releng.setup.presentation;
+import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesItemProviderAdapterFactory;
import org.eclipse.emf.cdo.releng.setup.Preferences;
+import org.eclipse.emf.cdo.releng.setup.SetupFactory;
import org.eclipse.emf.cdo.releng.setup.provider.SetupItemProviderAdapterFactory;
+import org.eclipse.emf.cdo.releng.workingsets.provider.WorkingSetsItemProviderAdapterFactory;
import org.eclipse.emf.common.command.BasicCommandStack;
import org.eclipse.emf.common.command.Command;
@@ -28,6 +31,7 @@ import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.util.EContentAdapter;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
@@ -84,6 +88,8 @@ import org.eclipse.swt.dnd.DND;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlEvent;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
@@ -689,6 +695,8 @@ public class SetupEditor extends MultiPageEditorPart implements IEditingDomainPr
adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new SetupItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new WorkingSetsItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new PredicatesItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
// Create the command stack that will notify this editor as commands are executed.
@@ -1003,10 +1011,9 @@ public class SetupEditor extends MultiPageEditorPart implements IEditingDomainPr
* This is the method used by the framework to install your own controls.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @generated NOT
+ * @generated
*/
- @Override
- public void createPages()
+ public void createPagesGen()
{
// Creates the model from the editor input
//
@@ -1024,7 +1031,7 @@ public class SetupEditor extends MultiPageEditorPart implements IEditingDomainPr
selectionViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
selectionViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
- selectionViewer.setInput(editingDomain.getResourceSet().getResources().get(0));
+ selectionViewer.setInput(editingDomain.getResourceSet());
selectionViewer.setSelection(new StructuredSelection(editingDomain.getResourceSet().getResources().get(0)), true);
new AdapterFactoryTreeEditor(selectionViewer.getTree(), adapterFactory);
@@ -1070,6 +1077,41 @@ public class SetupEditor extends MultiPageEditorPart implements IEditingDomainPr
});
}
+ @Override
+ public void createPages()
+ {
+ createPagesGen();
+
+ Resource resource = editingDomain.getResourceSet().getResources().get(0);
+ selectionViewer.setInput(resource);
+ selectionViewer.setSelection(new StructuredSelection(resource.getContents().get(0)), true);
+
+ getViewer().getControl().addMouseListener(new MouseListener()
+ {
+ public void mouseDoubleClick(MouseEvent e)
+ {
+ try
+ {
+ getSite().getPage().showView("org.eclipse.ui.views.PropertySheet"); //$NON-NLS-1$
+ }
+ catch (PartInitException ex)
+ {
+ SetupEditorPlugin.INSTANCE.log(ex);
+ }
+ }
+
+ public void mouseDown(MouseEvent e)
+ {
+ // do nothing
+ }
+
+ public void mouseUp(MouseEvent e)
+ {
+ // do nothing
+ }
+ });
+ }
+
/**
* If there is just one page in the multi-page editor part,
* this hides the single tab at the bottom.
@@ -1715,6 +1757,16 @@ public class SetupEditor extends MultiPageEditorPart implements IEditingDomainPr
try
{
URI uri = Preferences.PREFERENCES_URI;
+
+ ResourceSet resourceSet = new ResourceSetImpl();
+ if (!resourceSet.getURIConverter().exists(uri, null))
+ {
+ Resource resource = resourceSet.createResource(Preferences.PREFERENCES_URI);
+ Preferences preferences = SetupFactory.eINSTANCE.createPreferences();
+ resource.getContents().add(preferences);
+ resource.save(null);
+ }
+
IEditorInput editorInput = new URIEditorInput(uri, uri.lastSegment());
page.openEditor(editorInput, EDITOR_ID);
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditorPlugin.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditorPlugin.java
index 96cbf6d2bc..910e8b8392 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditorPlugin.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupEditorPlugin.java
@@ -10,6 +10,8 @@
*/
package org.eclipse.emf.cdo.releng.setup.presentation;
+import org.eclipse.emf.cdo.releng.workingsets.provider.WorkingSetsEditPlugin;
+
import org.eclipse.emf.common.EMFPlugin;
import org.eclipse.emf.common.ui.EclipseUIPlugin;
import org.eclipse.emf.common.util.ResourceLocator;
@@ -17,6 +19,7 @@ import org.eclipse.emf.common.util.ResourceLocator;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesEditPlugin;
/**
* This is the central singleton for the Setup editor plugin.
@@ -50,7 +53,7 @@ public final class SetupEditorPlugin extends EMFPlugin
*/
public SetupEditorPlugin()
{
- super(new ResourceLocator[] {});
+ super(new ResourceLocator[] { WorkingSetsEditPlugin.INSTANCE, PredicatesEditPlugin.INSTANCE, });
}
/**
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupModelWizard.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupModelWizard.java
index b6eba9d82e..d545c83de5 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupModelWizard.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/SetupModelWizard.java
@@ -406,7 +406,7 @@ public class SetupModelWizard extends Wizard implements INewWizard
* <!-- end-user-doc -->
* @generated
*/
- public void createControl(Composite parent)
+ public void createControlGen(Composite parent)
{
Composite composite = new Composite(parent, SWT.NONE);
{
@@ -478,6 +478,21 @@ public class SetupModelWizard extends Wizard implements INewWizard
setControl(composite);
}
+ public void createControl(Composite parent)
+ {
+ createControlGen(parent);
+
+ String[] items = initialObjectField.getItems();
+ for (int i = 0; i < items.length; ++i)
+ {
+ if (items[i].equals("Project"))
+ {
+ initialObjectField.select(i);
+ break;
+ }
+ }
+ }
+
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/ManualPerformAction.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/ManualPerformAction.java
new file mode 100644
index 0000000000..f39153c097
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/ManualPerformAction.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.setup.presentation.actions;
+
+import org.eclipse.emf.cdo.releng.internal.setup.SetupTaskPerformer;
+import org.eclipse.emf.cdo.releng.internal.setup.ui.ProgressLogDialog;
+import org.eclipse.emf.cdo.releng.setup.presentation.SetupEditorPlugin;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogRunnable;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWindowActionDelegate;
+import org.eclipse.ui.PlatformUI;
+
+import java.io.File;
+
+/**
+ * @author Eike Stepper
+ */
+public class ManualPerformAction implements IWorkbenchWindowActionDelegate
+{
+ public ManualPerformAction()
+ {
+ }
+
+ public void init(IWorkbenchWindow window)
+ {
+ }
+
+ public void selectionChanged(IAction action, ISelection selection)
+ {
+ }
+
+ public void dispose()
+ {
+ }
+
+ public void run(IAction action)
+ {
+ try
+ {
+ final SetupTaskPerformer setupTaskPerformer = new SetupTaskPerformer(true);
+ File logFile = new File(setupTaskPerformer.getInstallDir(), "setup.log");
+ IWorkbenchWindow window = PlatformUI.getWorkbench().getWorkbenchWindows()[0];
+ final Shell shell = window.getShell();
+ ProgressLogDialog.run(shell, logFile, "Setting up IDE", new ProgressLogRunnable()
+ {
+ public boolean run(ProgressLog log) throws Exception
+ {
+ setupTaskPerformer.perform();
+ return true;
+ }
+ });
+ }
+ catch (Exception ex)
+ {
+ SetupEditorPlugin.INSTANCE.log(ex);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/PreferencesAction.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/PreferencesAction.java
index 5fec4dea09..1b70644cbe 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/PreferencesAction.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/PreferencesAction.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.ide.actions;
+package org.eclipse.emf.cdo.releng.setup.presentation.actions;
import org.eclipse.emf.cdo.releng.setup.presentation.SetupEditor;
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/PushDirectAction.java b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/PushDirectAction.java
index 922b02adc9..a822acb8b8 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/PushDirectAction.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.editor/src/org/eclipse/emf/cdo/releng/setup/presentation/actions/PushDirectAction.java
@@ -8,9 +8,9 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.ide.actions;
+package org.eclipse.emf.cdo.releng.setup.presentation.actions;
-import org.eclipse.emf.cdo.releng.setup.ide.Activator;
+import org.eclipse.emf.cdo.releng.setup.presentation.SetupEditorPlugin;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -79,7 +79,7 @@ public class PushDirectAction implements IObjectActionDelegate
}
catch (Exception ex)
{
- return Activator.getStatus(ex);
+ return SetupEditorPlugin.getStatus(ex);
}
finally
{
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.classpath b/plugins/org.eclipse.emf.cdo.releng.setup.ide/.classpath
deleted file mode 100644
index 1b34366a4c..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/.classpath
+++ /dev/null
@@ -1,18 +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/equinox/p2/publisher/**"/>
- <accessrule kind="accessible" pattern="org/eclipse/equinox/p2/publisher/eclipse/**"/>
- <accessrule kind="accessible" pattern="org/eclipse/equinox/internal/p2/director/app/**"/>
- <accessrule kind="accessible" pattern="org/eclipse/equinox/internal/p2/console/**"/>
- <accessrule kind="accessible" pattern="org/eclipse/egit/core/**"/>
- <accessrule kind="accessible" pattern="org/eclipse/egit/core/op/**"/>
- <accessrule kind="accessible" pattern="org/eclipse/jgit/lib/**"/>
- <accessrule kind="accessible" pattern="org/eclipse/ui/internal/progress/**"/>
- </accessrules>
- </classpathentry>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.setup.ide/META-INF/MANIFEST.MF
deleted file mode 100644
index 80f5fa8563..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,47 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-SymbolicName: org.eclipse.emf.cdo.releng.setup.ide;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-ClassPath: .
-Bundle-Name: %pluginName
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-Activator: org.eclipse.emf.cdo.releng.setup.ide.Activator
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.core.filesystem;bundle-version="[1.3.0,2.0.0)",
- org.eclipse.core.variables;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.ui.ide;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.team.ui;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.jgit;bundle-version="[3.0.0,4.0.0)",
- com.jcraft.jsch;bundle-version="[0.0.0,1.0.0)",
- javaewah;bundle-version="[0.0.0,1.0.0)",
- org.eclipse.egit;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.egit.core;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.egit.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.edit.ui;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.cdo.releng.setup;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.emf.cdo.releng.setup.edit;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.emf.cdo.releng.setup.editor;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.emf.cdo.releng.setup.ui;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.buckminster.cmdline;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.buckminster.runtime;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.buckminster.core;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.buckminster.pde;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.equinox.p2.core;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.equinox.p2.ui;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.equinox.p2.metadata;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.equinox.p2.repository;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.equinox.p2.artifact.repository;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.equinox.p2.metadata.repository;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.equinox.p2.console;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.equinox.p2.publisher;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.equinox.p2.publisher.eclipse;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)"
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.cdo.releng.setup.ide;version="1.0.0";x-internal:=true,
- org.eclipse.emf.cdo.releng.setup.ide.actions;version="1.0.0";x-internal:=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.setup.ide/plugin.xml
deleted file mode 100644
index 65574ab95a..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/plugin.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<!--
- Copyright (c) 2012, 2013 Eike Stepper (Berlin, Germany) 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:
- Eike Stepper - initial API and implementation
--->
-
-<plugin>
-
- <extension
- point="org.eclipse.buckminster.cmdline.commands">
- <command
- addhelpflags="false"
- class="org.eclipse.emf.cdo.releng.setup.ide.Buckminster$ImportCommand"
- name="import2"
- status="NORMAL">
- </command>
- </extension>
-
- <extension
- point="org.eclipse.ui.startup">
- <startup
- class="org.eclipse.emf.cdo.releng.setup.ide.Activator$EarlyStartup">
- </startup>
- </extension>
-
- <extension
- point="org.eclipse.ui.actionSets">
- <actionSet
- id="org.eclipse.emf.cdo.releng.setup.ide.actionSet"
- label="Setup Actions"
- visible="true">
- <menu
- id="setupMenu"
- label="Setup &amp;Menu">
- <separator
- name="setupGroup">
- </separator>
- </menu>
- <action
- class="org.eclipse.emf.cdo.releng.setup.ide.actions.PreferencesAction"
- icon="icons/prefs.gif"
- id="org.eclipse.emf.cdo.releng.setup.ide.actions.PreferencesAction"
- label="&amp;Preferences"
- style="push"
- toolbarPath="setupGroup"
- tooltip="Opens an editor on the setup preferences">
- </action>
- <action
- class="org.eclipse.emf.cdo.releng.setup.ide.actions.BuckyAction"
- icon="icons/update.gif"
- id="org.eclipse.emf.cdo.releng.setup.ide.actions.BuckyAction"
- label="&amp;Bucky"
- style="push"
- toolbarPath="setupGroup"
- tooltip="Imports the Buckminster MSpec">
- </action>
- </actionSet>
- </extension>
-
- <extension
- point="org.eclipse.ui.popupMenus">
- <objectContribution
- adaptable="true"
- id="org.eclipse.emf.cdo.releng.setup.ide.contribution1"
- objectClass="org.eclipse.egit.ui.internal.repository.tree.RepositoryNode">
- <action
- class="org.eclipse.emf.cdo.releng.setup.ide.actions.PushDirectAction"
- enablesFor="1"
- icon="icons/push_directly.gif"
- id="org.eclipse.emf.cdo.releng.setup.ide.PushDirectAction"
- label="Push Directly"
- menubarPath="additions"
- state="true"
- style="push"/>
- </objectContribution>
- </extension>
-
-</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Activator.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Activator.java
deleted file mode 100644
index 224059588f..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Activator.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.ide;
-
-import org.eclipse.emf.cdo.releng.setup.GitClone;
-import org.eclipse.emf.cdo.releng.setup.Setup;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
-
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.ui.IStartup;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-
-import org.osgi.framework.BundleContext;
-
-import java.io.File;
-
-/**
- * @author Eike Stepper
- */
-public class Activator extends AbstractUIPlugin implements SetupContext
-{
- public static final String PLUGIN_ID = "org.eclipse.emf.cdo.releng.setup.ide";
-
- private static Activator plugin;
-
- static BundleContext bundleContext;
-
- private File branchDir;
-
- private Setup setup;
-
- public Activator()
- {
- }
-
- public File getLogFile()
- {
- return new File(branchDir, "setup.log");
- }
-
- public File getProjectDir()
- {
- return branchDir.getParentFile();
- }
-
- public File getBaselineDir()
- {
- return new File(getProjectDir(), ".baselines");
- }
-
- public File getBranchDir()
- {
- return branchDir;
- }
-
- public File getEclipseDir()
- {
- return new File(branchDir, "eclipse");
- }
-
- public File getGitDir()
- {
- return new File(branchDir, "git");
- }
-
- public File getWorkDir(GitClone clone)
- {
- return new File(getGitDir(), clone.getName());
- }
-
- public File getWorkspaceDir()
- {
- return new File(branchDir, "ws");
- }
-
- public File getTargetPlatformDir()
- {
- return new File(branchDir, "tp");
- }
-
- public Setup getSetup()
- {
- return setup;
- }
-
- @Override
- public void start(BundleContext context) throws Exception
- {
- super.start(context);
- bundleContext = context;
- plugin = this;
-
- try
- {
- if ("true".equals(System.getProperty("org.eclipse.emf.cdo.releng.setup.ide", "false")))
- {
- ResourceSet resourceSet = new ResourceSetImpl();
- resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl());
-
- IPath branchDirPath = ResourcesPlugin.getWorkspace().getRoot().getLocation().removeLastSegments(1);
- branchDir = new File(branchDirPath.toOSString());
-
- URI uri = URI.createFileURI(branchDirPath.append("setup.xmi").toOSString());
- Resource resource = resourceSet.getResource(uri, true);
-
- setup = (Setup)resource.getContents().get(0);
- SetupIDE.run();
- }
- }
- catch (Exception ex)
- {
- log(ex);
- }
- }
-
- @Override
- public void stop(BundleContext context) throws Exception
- {
- setup = null;
- branchDir = null;
-
- plugin = null;
- super.stop(context);
- }
-
- public static void log(String message)
- {
- log(message, IStatus.INFO);
- }
-
- protected static void log(String message, int severity)
- {
- plugin.getLog().log(new Status(severity, PLUGIN_ID, message));
- }
-
- public static void log(IStatus status)
- {
- plugin.getLog().log(status);
- }
-
- public static String log(Throwable t)
- {
- IStatus status = getStatus(t);
- log(status);
- return status.getMessage();
- }
-
- public static IStatus getStatus(Throwable t)
- {
- if (t instanceof CoreException)
- {
- CoreException coreException = (CoreException)t;
- return coreException.getStatus();
- }
-
- String msg = t.getLocalizedMessage();
- if (msg == null || msg.length() == 0)
- {
- msg = t.getClass().getName();
- }
-
- return new Status(IStatus.ERROR, PLUGIN_ID, msg, t);
- }
-
- public static Activator getDefault()
- {
- return plugin;
- }
-
- public static ImageDescriptor getImageDescriptor(String path)
- {
- return imageDescriptorFromPlugin(PLUGIN_ID, path);
- }
-
- /**
- * @author Eike Stepper
- */
- public static final class EarlyStartup implements IStartup
- {
- public void earlyStartup()
- {
- }
- }
-}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Buckminster.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Buckminster.java
deleted file mode 100644
index 83cfb87e01..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Buckminster.java
+++ /dev/null
@@ -1,354 +0,0 @@
-/*
- * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.ide;
-
-import org.eclipse.emf.cdo.releng.setup.ApiBaseline;
-import org.eclipse.emf.cdo.releng.setup.Branch;
-import org.eclipse.emf.cdo.releng.setup.GitClone;
-import org.eclipse.emf.cdo.releng.setup.Project;
-import org.eclipse.emf.cdo.releng.setup.Setup;
-import org.eclipse.emf.cdo.releng.setup.helper.Downloads;
-import org.eclipse.emf.cdo.releng.setup.helper.Files;
-import org.eclipse.emf.cdo.releng.setup.helper.OS;
-import org.eclipse.emf.cdo.releng.setup.helper.Progress;
-import org.eclipse.emf.cdo.releng.setup.helper.ProgressLogProvider;
-
-import org.eclipse.net4j.util.io.FileLock;
-import org.eclipse.net4j.util.io.ZIPUtil;
-import org.eclipse.net4j.util.io.ZIPUtil.FileSystemUnzipHandler;
-
-import org.eclipse.buckminster.cmdline.Headless;
-import org.eclipse.buckminster.core.commands.Import;
-import org.eclipse.core.resources.IWorkspaceDescription;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.jobs.Job;
-import org.eclipse.core.runtime.jobs.ProgressProvider;
-import org.eclipse.equinox.p2.publisher.AbstractPublisherApplication;
-import org.eclipse.equinox.p2.publisher.eclipse.FeaturesAndBundlesPublisherApplication;
-import org.eclipse.ui.internal.progress.ProgressManager;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * @author Eike Stepper
- */
-public final class Buckminster
-{
- private static final SetupContext CONTEXT = Activator.getDefault();
-
- // TODO Don't use Headless because if cancels important jobs! Use e.g. ImportAction code instead...
- public static void run(String... args) throws Exception
- {
- Activator.log("Buckminster command: " + Arrays.asList(args));
-
- try
- {
- Headless buckminster = new Headless();
- buckminster.run(args);
- }
- finally
- {
- Job.getJobManager().setProgressProvider(ProgressManager.getInstance());
- }
- }
-
- public static void importBaseline() throws Exception
- {
- Branch branch = CONTEXT.getSetup().getBranch();
- ApiBaseline apiBaseline = branch.getApiBaseline();
- if (apiBaseline == null)
- {
- return;
- }
-
- boolean autoBuilding = disableAutoBuilding();
-
- try
- {
- String version = apiBaseline.getVersion();
- Progress.log().addLine("Setting baseline " + version);
-
- final File baselineDir = CONTEXT.getBaselineDir();
- File target = new File(baselineDir, version);
- if (!target.exists())
- {
- String url = apiBaseline.getZipLocation();
- File file = Downloads.downloadURL(url);
- baselineDir.mkdirs();
-
- final File[] rootDir = { null };
- ZIPUtil.unzip(file, new FileSystemUnzipHandler(baselineDir, ZIPUtil.DEFAULT_BUFFER_SIZE)
- {
- @Override
- public void unzipFile(String name, InputStream zipStream)
- {
- if (rootDir[0] == null)
- {
- rootDir[0] = new File(baselineDir, new Path(name).segment(0));
- }
-
- Progress.log().addLine("Unzipping " + name);
- super.unzipFile(name, zipStream);
- }
- });
-
- rootDir[0].renameTo(target);
- }
-
- String name = apiBaseline.getProject().getName() + " Baseline";
- importTarget(target, name, false);
-
- Progress.log().addLine("Setting baseline: " + name);
- run("addbaseline", "-A", name);
- }
- finally
- {
- restoreAutoBuilding(autoBuilding);
- }
- }
-
- private static String getTargetName()
- {
- Setup setup = CONTEXT.getSetup();
- Branch branch = setup.getBranch();
- Project project = branch.getProject();
- return project.getName() + " Target";
- }
-
- private static String createTargetDefinition(File folder, String name) throws IOException
- {
- File xml = getTargetXML(folder);
- String xmlPath = xml.getAbsolutePath();
- Progress.log().addLine("Creating target definition: " + xmlPath);
-
- List<String> lines = new ArrayList<String>();
- lines.add("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>");
- lines.add("<?pde version=\"3.8\"?>");
- lines.add("<target name=\"" + name + "\" sequenceNumber=\"0\">");
- lines.add(" <locations>");
- lines.add(" <location path=\"" + folder.getCanonicalPath().replace('\\', '/') + "\" type=\"Directory\"/>");
- lines.add(" </locations>");
- lines.add("</target>");
-
- folder.mkdirs();
- OS.INSTANCE.writeText(xml, lines);
- return xmlPath;
- }
-
- private static void importTarget(File folder, String name, boolean activate) throws Exception
- {
- String xmlPath = createTargetDefinition(folder, name);
- Progress.log().addLine("Loading target definition: " + xmlPath);
-
- if (activate)
- {
- run("importtarget", "--active", xmlPath);
- }
- else
- {
- run("importtarget", xmlPath);
- }
- }
-
- public static void importTarget() throws Exception
- {
- File targetPlatformDir = CONTEXT.getTargetPlatformDir();
- String name = getTargetName();
-
- boolean autoBuilding = disableAutoBuilding();
-
- try
- {
- importTarget(targetPlatformDir, name, true);
- }
- finally
- {
- restoreAutoBuilding(autoBuilding);
- }
- }
-
- public static void importMSpec() throws Exception
- {
- initVars();
-
- File tpOld = null;
- File tp = CONTEXT.getTargetPlatformDir();
- if (tp.exists())
- {
- tpOld = new File(tp.getParentFile(), tp.getName() + "." + System.currentTimeMillis());
- Files.rename(tp, tpOld);
- }
-
- FileLock tpPoolLock = null;
- boolean autoBuilding = disableAutoBuilding();
-
- try
- {
- File tpPool = updateTargetPlatformPool();
- tpPoolLock = FileLock.forWrite(tpPool);
-
- File gitDir = CONTEXT.getGitDir();
- Setup setup = CONTEXT.getSetup();
-
- Progress.log().addLine("Creating new target platform folder");
- createTargetDefinition(tp, getTargetName());
-
- String bomPath = new File(CONTEXT.getBranchDir(), "bom.xml").getAbsolutePath();
- String mspecPath = new File(gitDir, setup.getBranch().getMspecFilePath()).getAbsolutePath();
- Progress.log().addLine("Importing MSpec " + mspecPath);
-
- run("--displaystacktrace", "import2", "-B", bomPath, mspecPath);
-
- if (tpPoolLock != null)
- {
- updateBundlePool(tp.getAbsolutePath(), tpPool.getAbsolutePath());
- }
-
- if (Progress.log().isCancelled())
- {
- throw new InterruptedException();
- }
- }
- catch (Exception ex)
- {
- File tpBroken = new File(tp.getParentFile(), tp.getName() + "." + System.currentTimeMillis());
- Files.rename(tp, tpBroken);
- if (tpOld != null)
- {
- Files.rename(tpOld, tp);
- }
-
- Files.deleteAsync(tpBroken);
- throw ex;
- }
- finally
- {
- try
- {
- if (tpPoolLock != null)
- {
- tpPoolLock.release();
- }
- }
- finally
- {
- restoreAutoBuilding(autoBuilding);
- }
- }
-
- if (tpOld != null)
- {
- Files.deleteAsync(tpOld);
- }
- }
-
- private static File updateTargetPlatformPool() throws Exception
- {
- File installFolder = new File(CONTEXT.getSetup().getPreferences().getInstallFolder());
-
- File idePool = new File(installFolder, ".p2pool-ide");
- idePool.mkdirs();
-
- File tpPool = new File(installFolder, ".p2pool-tp");
- tpPool.mkdirs();
-
- FileLock idePoolLock = FileLock.forWrite(idePool);
-
- try
- {
- updateBundlePool(idePool.getAbsolutePath(), tpPool.getAbsolutePath());
- }
- finally
- {
- idePoolLock.release();
- }
-
- return tpPool;
- }
-
- private static File getTargetXML(File folder)
- {
- return new File(folder, "target.xml");
- }
-
- private static void initVars() throws Exception
- {
- Setup setup = CONTEXT.getSetup();
- Branch branch = setup.getBranch();
-
- for (GitClone gitClone : branch.getGitClones())
- {
- File workDir = CONTEXT.getWorkDir(gitClone);
- String cloneName = workDir.getName();
- String variableName = branch.getCloneVariableName();
- if (variableName == null)
- {
- variableName = "git.clone." + cloneName;
- }
-
- String description = "Location of " + cloneName + " git clone";
- Variables.set(variableName, description, workDir.getAbsolutePath().replace('\\', '/'));
- }
- }
-
- private static void updateBundlePool(String source, String bundlePool) throws Exception
- {
- Progress.log().addLine("Updating bundle pool: " + bundlePool);
-
- String bundlePoolURL = "file:/" + bundlePool.replace('\\', '/');
- String[] args = { "-source", source, "-metadataRepository", bundlePoolURL, "-artifactRepository", bundlePoolURL,
- "-append", "-publishArtifacts" };
-
- AbstractPublisherApplication publisher = new FeaturesAndBundlesPublisherApplication();
- publisher.run(args);
- }
-
- public static boolean disableAutoBuilding() throws CoreException
- {
- boolean autoBuilding = ResourcesPlugin.getWorkspace().isAutoBuilding();
- if (autoBuilding)
- {
- restoreAutoBuilding(false);
- }
-
- return autoBuilding;
- }
-
- public static void restoreAutoBuilding(boolean autoBuilding) throws CoreException
- {
- if (autoBuilding != ResourcesPlugin.getWorkspace().isAutoBuilding())
- {
- IWorkspaceDescription description = ResourcesPlugin.getWorkspace().getDescription();
- description.setAutoBuilding(autoBuilding);
-
- ResourcesPlugin.getWorkspace().setDescription(description);
- }
- }
-
- /**
- * @author Eike Stepper
- */
- public static class ImportCommand extends Import
- {
- @Override
- public ProgressProvider getProgressProvider()
- {
- return new ProgressLogProvider(Progress.log(), ProgressManager.getInstance());
- }
- }
-}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/GitClones.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/GitClones.java
deleted file mode 100644
index 8c0953ba84..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/GitClones.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.ide;
-
-import org.eclipse.emf.cdo.releng.setup.Branch;
-import org.eclipse.emf.cdo.releng.setup.GitClone;
-import org.eclipse.emf.cdo.releng.setup.Setup;
-import org.eclipse.emf.cdo.releng.setup.helper.Files;
-import org.eclipse.emf.cdo.releng.setup.helper.OS;
-import org.eclipse.emf.cdo.releng.setup.helper.Progress;
-
-import org.eclipse.emf.common.util.URI;
-
-import org.eclipse.jgit.api.CheckoutCommand;
-import org.eclipse.jgit.api.CloneCommand;
-import org.eclipse.jgit.api.CreateBranchCommand;
-import org.eclipse.jgit.api.CreateBranchCommand.SetupUpstreamMode;
-import org.eclipse.jgit.api.Git;
-import org.eclipse.jgit.api.ResetCommand;
-import org.eclipse.jgit.api.ResetCommand.ResetType;
-import org.eclipse.jgit.api.StatusCommand;
-import org.eclipse.jgit.api.errors.GitAPIException;
-import org.eclipse.jgit.errors.NoWorkTreeException;
-import org.eclipse.jgit.lib.ConfigConstants;
-import org.eclipse.jgit.lib.CoreConfig.AutoCRLF;
-import org.eclipse.jgit.lib.ProgressMonitor;
-import org.eclipse.jgit.lib.Ref;
-import org.eclipse.jgit.lib.Repository;
-import org.eclipse.jgit.lib.StoredConfig;
-import org.eclipse.jgit.transport.RefSpec;
-import org.eclipse.jgit.transport.RemoteConfig;
-
-import java.io.File;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author Eike Stepper
- */
-public final class GitClones
-{
- private static final SetupContext CONTEXT = Activator.getDefault();
-
- public static void init() throws Exception
- {
- Setup setup = CONTEXT.getSetup();
- Branch branch = setup.getBranch();
- String userName = setup.getPreferences().getUserName();
-
- for (GitClone gitClone : branch.getGitClones())
- {
- File workDir = CONTEXT.getWorkDir(gitClone);
-
- Repository repository = null;
- Git git = null;
-
- try
- {
- boolean needsClone = true;
- if (workDir.isDirectory())
- {
- Progress.log().addLine("Opening Git clone " + workDir);
- git = Git.open(workDir);
- if (hasWorkingDirectory(git))
- {
- needsClone = false;
- }
- else
- {
- Files.rename(workDir);
- }
- }
-
- String checkoutBranch = gitClone.getCheckoutBranch();
- if (needsClone)
- {
- URI baseURI = URI.createURI(gitClone.getRemoteURI());
- String remote = URI.createHierarchicalURI(baseURI.scheme(), userName + "@" + baseURI.authority(),
- baseURI.device(), baseURI.segments(), baseURI.query(), baseURI.fragment()).toString();
- Progress.log().addLine("Cloning Git repo " + remote + " to " + workDir);
-
- CloneCommand command = Git.cloneRepository();
- command.setNoCheckout(true);
- command.setURI(remote);
- command.setRemote("origin");
- command.setBranchesToClone(Collections.singleton(checkoutBranch));
- command.setDirectory(workDir);
- command.setTimeout(10);
- command.setProgressMonitor(new ProgressLogWrapper());
-
- git = command.call();
- }
-
- repository = git.getRepository();
- StoredConfig config = repository.getConfig();
-
- boolean changed = false;
- if (OS.INSTANCE.isLineEndingConversionNeeded())
- {
- changed = true;
- config.setEnum(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_AUTOCRLF, AutoCRLF.TRUE);
- }
-
- String gerritQueue = "refs/for/" + checkoutBranch;
-
- List<RemoteConfig> remoteConfigs = RemoteConfig.getAllRemoteConfigs(config);
- for (RemoteConfig remoteConfig : remoteConfigs)
- {
- if ("origin".equals(remoteConfig.getName()))
- {
- List<RefSpec> pushRefSpecs = remoteConfig.getPushRefSpecs();
- if (!hasGerritPushRefSpec(pushRefSpecs, gerritQueue))
- {
- RefSpec refSpec = new RefSpec("HEAD:" + gerritQueue);
- Progress.log().addLine("Adding push ref spec: " + refSpec);
-
- remoteConfig.addPushRefSpec(refSpec);
- remoteConfig.update(config);
- changed = true;
- }
-
- break;
- }
- }
-
- if (changed)
- {
- config.save();
- }
-
- Map<String, Ref> allRefs = repository.getAllRefs();
- if (!allRefs.containsKey("refs/heads/" + checkoutBranch))
- {
- {
- CreateBranchCommand command = git.branchCreate();
- command.setUpstreamMode(SetupUpstreamMode.SET_UPSTREAM);
- command.setName(checkoutBranch);
- command.setStartPoint("refs/remotes/origin/" + checkoutBranch);
-
- command.call();
- }
-
- {
- CheckoutCommand command = git.checkout();
- command.setName(checkoutBranch);
-
- command.call();
- }
-
- {
- ResetCommand command = git.reset();
- command.setMode(ResetType.HARD);
-
- command.call();
- }
- }
- }
- finally
- {
- if (repository != null)
- {
- repository.close();
- }
- }
- }
- }
-
- private static boolean hasWorkingDirectory(Git git) throws GitAPIException
- {
- try
- {
- StatusCommand statusCommand = git.status();
- statusCommand.call();
- return true;
- }
- catch (NoWorkTreeException ex)
- {
- return false;
- }
- catch (GitAPIException ex)
- {
- throw ex;
- }
- }
-
- private static boolean hasGerritPushRefSpec(List<RefSpec> pushRefSpecs, String gerritQueue)
- {
- for (RefSpec refSpec : pushRefSpecs)
- {
- if (refSpec.getDestination().equals(gerritQueue))
- {
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * @author Eike Stepper
- */
- private static final class ProgressLogWrapper implements ProgressMonitor
- {
- public void update(int completed)
- {
- }
-
- public void start(int totalTasks)
- {
- }
-
- public boolean isCancelled()
- {
- return Progress.log().isCancelled();
- }
-
- public void endTask()
- {
- }
-
- public void beginTask(String title, int totalWork)
- {
- Progress.log().addLine(title);
- }
- }
-}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/P2.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/P2.java
deleted file mode 100644
index 5d28d0f1ab..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/P2.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.ide;
-
-import org.eclipse.emf.cdo.releng.setup.P2Repository;
-import org.eclipse.emf.cdo.releng.setup.Setup;
-import org.eclipse.emf.cdo.releng.setup.helper.Progress;
-
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.equinox.p2.ui.ProvisioningUI;
-
-import java.net.URI;
-
-/**
- * @author Eike Stepper
- */
-public class P2
-{
- private static final SetupContext CONTEXT = Activator.getDefault();
-
- public static void registerUpdateLocations() throws Exception
- {
- Setup setup = CONTEXT.getSetup();
- for (P2Repository p2Repository : setup.getUpdateLocations())
- {
- URI location = new URI(p2Repository.getUrl());
- Progress.log().addLine("Registering update location: " + location);
- addRepository(location);
- }
- }
-
- private static void addRepository(URI location) throws Exception
- {
- ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI();
- provisioningUI.loadMetadataRepository(location, false, new NullProgressMonitor());
- provisioningUI.loadArtifactRepository(location, false, new NullProgressMonitor());
- }
-}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Prefs.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Prefs.java
deleted file mode 100644
index 1dcb39bce7..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Prefs.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.ide;
-
-import org.eclipse.emf.cdo.releng.setup.Branch;
-import org.eclipse.emf.cdo.releng.setup.Preferences;
-import org.eclipse.emf.cdo.releng.setup.Project;
-import org.eclipse.emf.cdo.releng.setup.Setup;
-import org.eclipse.emf.cdo.releng.setup.ToolInstallation;
-import org.eclipse.emf.cdo.releng.setup.ToolPreference;
-import org.eclipse.emf.cdo.releng.setup.helper.Progress;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author Eike Stepper
- */
-public final class Prefs
-{
- private static final SetupContext CONTEXT = Activator.getDefault();
-
- private static final IEclipsePreferences ROOT = Platform.getPreferencesService().getRootNode();
-
- public static void initEarly() throws Exception
- {
- Setup setup = CONTEXT.getSetup();
- Branch branch = setup.getBranch();
- Project project = branch.getProject();
-
- final String name = project.getName() + ("master".equals(branch.getName()) ? "" : " " + branch.getName());
- PlatformUI.getWorkbench().getWorkbenchWindows()[0].getShell().getDisplay().syncExec(new Runnable()
- {
- public void run()
- {
- set("instance/org.eclipse.ui.ide/WORKSPACE_NAME", name);
- }
- });
-
- set("instance/org.eclipse.ui.workbench/RUN_IN_BACKGROUND", "true");
- }
-
- public static void initLate() throws Exception
- {
- Setup setup = CONTEXT.getSetup();
- Branch branch = setup.getBranch();
- Project project = branch.getProject();
-
- Preferences preferences = setup.getPreferences();
- init(preferences);
- init(branch);
- init(project);
- }
-
- private static void init(ToolInstallation preferenceHolder)
- {
- for (ToolPreference toolPreference : preferenceHolder.getToolPreferences())
- {
- init(toolPreference);
- }
- }
-
- private static void init(ToolPreference toolPreference)
- {
- String key = toolPreference.getKey();
- if (key.startsWith("/"))
- {
- key = key.substring(1);
- }
-
- String value = toolPreference.getValue();
- set(key, value);
- }
-
- public static void set(String key, String value)
- {
- org.osgi.service.prefs.Preferences node = ROOT;
-
- String[] segments = key.split("/");
- for (int i = 0; i < segments.length - 1; i++)
- {
- String segment = segments[i];
- node = node.node(segment);
- }
-
- Progress.log().addLine("Setting preference " + key + " = " + value);
- node.put(segments[segments.length - 1], value);
- }
-}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupContext.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupContext.java
deleted file mode 100644
index f51bb86438..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupContext.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.ide;
-
-import org.eclipse.emf.cdo.releng.setup.GitClone;
-import org.eclipse.emf.cdo.releng.setup.Setup;
-
-import java.io.File;
-
-/**
- * @author Eike Stepper
- */
-public interface SetupContext
-{
- public File getLogFile();
-
- public File getProjectDir();
-
- public File getBaselineDir();
-
- public File getBranchDir();
-
- public File getEclipseDir();
-
- public File getGitDir();
-
- public File getWorkDir(GitClone clone);
-
- public File getWorkspaceDir();
-
- public File getTargetPlatformDir();
-
- public Setup getSetup();
-}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupIDE.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupIDE.java
deleted file mode 100644
index 8cff533693..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/SetupIDE.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.ide;
-
-import org.eclipse.emf.cdo.releng.setup.helper.OS;
-import org.eclipse.emf.cdo.releng.setup.helper.ProgressLog;
-import org.eclipse.emf.cdo.releng.setup.helper.ProgressLogRunnable;
-import org.eclipse.emf.cdo.releng.setup.ui.ProgressLogDialog;
-
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-import java.io.File;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @author Eike Stepper
- */
-public final class SetupIDE
-{
- private static final SetupContext CONTEXT = Activator.getDefault();
-
- private static final IWorkbench WORKBENCH = PlatformUI.getWorkbench();
-
- private static final int INITIAL = 0;
-
- private static final int DONE = 100;
-
- private static int state;
-
- public static void run() throws Exception
- {
- state = readState();
- if (state == DONE)
- {
- return;
- }
-
- IWorkbenchWindow window = WORKBENCH.getWorkbenchWindows()[0];
- run(window);
- }
-
- private static void run(IWorkbenchWindow window)
- {
- final Shell shell = window.getShell();
- shell.getDisplay().asyncExec(new Runnable()
- {
- public void run()
- {
- ProgressLogDialog.run(shell, CONTEXT.getLogFile(), "Setting up IDE", new ProgressLogRunnable()
- {
- public boolean run(ProgressLog log) throws Exception
- {
- boolean autoBuilding = Buckminster.disableAutoBuilding();
-
- try
- {
- return SetupIDE.run(log);
- }
- finally
- {
- Buckminster.restoreAutoBuilding(autoBuilding);
- }
- }
- });
- }
- });
- }
-
- private static boolean run(ProgressLog log) throws Exception
- {
- boolean restart = false;
- if (state < 1)
- {
- P2.registerUpdateLocations();
- saveState(1);
- }
-
- if (state < 2)
- {
- Prefs.initEarly();
- saveState(2);
- }
-
- if (state < 3)
- {
- GitClones.init();
- saveState(3);
- }
-
- if (state < 4)
- {
- Buckminster.importBaseline();
- saveState(4);
- }
-
- if (state < 5)
- {
- Buckminster.importTarget();
- saveState(5);
- }
-
- if (state < 6)
- {
- Buckminster.importMSpec();
- saveState(6);
- restart = true;
- }
-
- if (state < 7)
- {
- WorkingSets.init();
- saveState(7);
- }
-
- if (state < DONE)
- {
- Prefs.initLate();
- saveState(DONE);
- }
-
- Buckminster.restoreAutoBuilding(true);
- return restart;
- }
-
- private static void saveState(int state)
- {
- File stateFile = new File(Activator.getDefault().getStateLocation().toOSString(), "state.txt");
- OS.INSTANCE.writeText(stateFile, Collections.singletonList(Integer.toString(state)));
- }
-
- private static int readState()
- {
- File stateFile = new File(Activator.getDefault().getStateLocation().toOSString(), "state.txt");
- if (stateFile.exists())
- {
- List<String> lines = OS.INSTANCE.readText(stateFile);
- if (!lines.isEmpty())
- {
- String line = lines.get(0);
- return Integer.parseInt(line);
- }
- }
-
- return INITIAL;
- }
-}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Variables.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Variables.java
deleted file mode 100644
index 97d2078d21..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/Variables.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.ide;
-
-import org.eclipse.emf.cdo.releng.setup.helper.Progress;
-
-import org.eclipse.core.variables.IStringVariableManager;
-import org.eclipse.core.variables.IValueVariable;
-import org.eclipse.core.variables.VariablesPlugin;
-
-/**
- * @author Eike Stepper
- */
-public final class Variables
-{
- public static void set(String name, String description, String value) throws Exception
- {
- IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
- IValueVariable variable = manager.getValueVariable(name);
- if (variable == null)
- {
- variable = manager.newValueVariable(name, description);
- manager.addVariables(new IValueVariable[] { variable });
- }
-
- String oldDescription = variable.getDescription();
- if (!description.equals(oldDescription))
- {
- variable.setDescription(description);
- }
-
- String oldValue = variable.getValue();
- if (!value.equals(oldValue))
- {
- Progress.log().addLine("Setting string substitution variable " + name + " = " + value);
- variable.setValue(value);
- }
- }
-}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/WorkingSets.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/WorkingSets.java
deleted file mode 100644
index e78ef47111..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/WorkingSets.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.ide;
-
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup;
-import org.eclipse.emf.cdo.releng.workingsets.util.WorkingSetsUtil;
-
-import org.eclipse.emf.ecore.resource.Resource;
-
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-import java.io.IOException;
-import java.lang.reflect.Method;
-
-/**
- * @author Eike Stepper
- */
-public final class WorkingSets
-{
- private static final SetupContext CONTEXT = Activator.getDefault();
-
- private static final IWorkbench WORKBENCH = PlatformUI.getWorkbench();
-
- private static final String JAVA_PACKAGE_EXPLORER_VIEW_ID = "org.eclipse.jdt.ui.PackageExplorer";
-
- public static void init() throws IOException
- {
- WorkingSetGroup workingSetGroup = CONTEXT.getSetup().getBranch().getProject().getWorkingSetGroup();
- if (workingSetGroup != null)
- {
- initPackageExplorer();
-
- WorkingSetGroup defaultWorkingSetGroup = WorkingSetsUtil.getWorkingSetGroup();
- Resource resource = defaultWorkingSetGroup.eResource();
- resource.getContents().set(0, workingSetGroup);
- resource.save(null);
- }
- }
-
- private static void initPackageExplorer()
- {
- IWorkbenchWindow workbenchWindow = WORKBENCH.getWorkbenchWindows()[0];
- for (final IViewReference viewReference : workbenchWindow.getActivePage().getViewReferences())
- {
- if (JAVA_PACKAGE_EXPLORER_VIEW_ID.equals(viewReference.getId()))
- {
- workbenchWindow.getShell().getDisplay().asyncExec(new Runnable()
- {
- public void run()
- {
- IViewPart view = viewReference.getView(false);
- if (view != null)
- {
- try
- {
- Method method = view.getClass().getMethod("rootModeChanged", int.class);
- method.invoke(view, 2);
- }
- catch (Exception ex)
- {
- Activator.log(ex);
- }
- }
- }
- });
- }
- }
- }
-}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/BuckyAction.java b/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/BuckyAction.java
deleted file mode 100644
index d0b0858b01..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/src/org/eclipse/emf/cdo/releng/setup/ide/actions/BuckyAction.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.ide.actions;
-
-import org.eclipse.emf.cdo.releng.setup.helper.ProgressLog;
-import org.eclipse.emf.cdo.releng.setup.helper.ProgressLogRunnable;
-import org.eclipse.emf.cdo.releng.setup.ide.Activator;
-import org.eclipse.emf.cdo.releng.setup.ide.Buckminster;
-import org.eclipse.emf.cdo.releng.setup.ide.SetupContext;
-import org.eclipse.emf.cdo.releng.setup.ui.ProgressLogDialog;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.IWorkbenchWindowActionDelegate;
-
-/**
- * @author Eike Stepper
- */
-public class BuckyAction implements IWorkbenchWindowActionDelegate
-{
- private static final SetupContext CONTEXT = Activator.getDefault();
-
- private IWorkbenchWindow window;
-
- public BuckyAction()
- {
- }
-
- public void init(IWorkbenchWindow window)
- {
- this.window = window;
- }
-
- public void selectionChanged(IAction action, ISelection selection)
- {
- }
-
- public void dispose()
- {
- }
-
- public void run(IAction action)
- {
- ProgressLogDialog.run(window.getShell(), CONTEXT.getLogFile(), "Importing mspec", new ProgressLogRunnable()
- {
- public boolean run(ProgressLog log) throws Exception
- {
- boolean autoBuilding = Buckminster.disableAutoBuilding();
-
- try
- {
- Buckminster.importMSpec();
- return true;
- }
- finally
- {
- Buckminster.restoreAutoBuilding(autoBuilding);
- }
- }
- });
- }
-}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.product/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.setup.product/META-INF/MANIFEST.MF
index 1e37237808..3479a961c4 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.product/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.product/META-INF/MANIFEST.MF
@@ -12,7 +12,7 @@ Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
org.eclipse.emf.edit.ui;bundle-version="[2.5.0,3.0.0)",
org.eclipse.emf.cdo.releng.setup;bundle-version="[1.0.0,2.0.0)",
org.eclipse.emf.cdo.releng.setup.edit;bundle-version="[1.0.0,2.0.0)",
- org.eclipse.emf.cdo.releng.setup.ui;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.cdo.releng.setup.editor.rcp;bundle-version="[1.0.0,2.0.0)",
org.eclipse.equinox.p2.director.app;bundle-version="[1.0.0,2.0.0)"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.product/Setup Dialog.launch b/plugins/org.eclipse.emf.cdo.releng.setup.product/Setup Dialog.launch
index 3618777d8b..83f377a58e 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.product/Setup Dialog.launch
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.product/Setup Dialog.launch
@@ -7,13 +7,13 @@
<booleanAttribute key="automaticValidate" value="true"/>
<stringAttribute key="bootstrap" value=""/>
<stringAttribute key="checked" value="[NONE]"/>
-<booleanAttribute key="clearConfig" value="false"/>
-<booleanAttribute key="clearws" value="false"/>
+<booleanAttribute key="clearConfig" value="true"/>
+<booleanAttribute key="clearws" value="true"/>
<booleanAttribute key="clearwslog" value="false"/>
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Setup Dialog"/>
<booleanAttribute key="default" value="false"/>
<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="C:\develop\setup\configuration"/>
+<stringAttribute key="location" value="D:\sandbox\tmp6\cdo\master\ws.setup.dialog"/>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
@@ -22,11 +22,11 @@
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.p2.mirrors=false -Declipse.p2.unsignedPolicy=allow -Xms1024m -Xmx2500m"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.p2.mirrors=false -Declipse.p2.unsignedPolicy=allow -Xms1024m -Xmx2500m -Dreleng.url=file:/${workspace_loc}/org.eclipse.emf.cdo.releng.setup.update -Dsetup.uri=file://${resource_loc:/org.eclipse.emf.cdo.releng.setup/model/Configuration.setup}"/>
<stringAttribute key="pde.version" value="3.3"/>
-<stringAttribute key="product" value="org.eclipse.platform.ide"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.eclipse.ant.core@default:default,org.eclipse.compare.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86_64@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.ql@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.win32.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.text@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.w3c.css.sac@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.cdo.releng.setup.edit@default:default,org.eclipse.emf.cdo.releng.setup.editor@default:default,org.eclipse.emf.cdo.releng.setup.product@default:default,org.eclipse.emf.cdo.releng.setup.ui@default:default,org.eclipse.emf.cdo.releng.setup@default:default,org.eclipse.net4j.util@default:default"/>
+<stringAttribute key="product" value="org.eclipse.emf.cdo.releng.setup.product.ide"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,com.jcraft.jsch@default:default,javaewah@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.ant@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.eclipse.ant.core@default:default,org.eclipse.buckminster.ant@default:default,org.eclipse.buckminster.cmdline@default:default,org.eclipse.buckminster.core@default:default,org.eclipse.buckminster.download@default:default,org.eclipse.buckminster.jarprocessor@default:default,org.eclipse.buckminster.jdt@default:default,org.eclipse.buckminster.osgi.filter@default:default,org.eclipse.buckminster.pde@default:default,org.eclipse.buckminster.runtime@default:default,org.eclipse.buckminster.sax@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86_64@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient4.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient4@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.egit.core@default:default,org.eclipse.egit.ui@default:default,org.eclipse.egit@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.ql@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security.win32.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jgit@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.api.tools@default:default,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.search@default:default,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.objectweb.asm@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.w3c.css.sac@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.cdo.releng.predicates.edit@default:default,org.eclipse.emf.cdo.releng.predicates@default:default,org.eclipse.emf.cdo.releng.setup.edit@default:default,org.eclipse.emf.cdo.releng.setup.editor.rcp@default:default,org.eclipse.emf.cdo.releng.setup.editor@default:default,org.eclipse.emf.cdo.releng.setup.product@default:default,org.eclipse.emf.cdo.releng.setup@default:default,org.eclipse.emf.cdo.releng.workingsets.edit@default:default,org.eclipse.emf.cdo.releng.workingsets@default:default,org.eclipse.net4j.util@default:default"/>
<booleanAttribute key="show_selected_only" value="false"/>
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
<booleanAttribute key="tracing" value="true"/>
@@ -681,5 +681,5 @@
<booleanAttribute key="useCustomFeatures" value="false"/>
<booleanAttribute key="useDefaultConfig" value="true"/>
<booleanAttribute key="useDefaultConfigArea" value="true"/>
-<booleanAttribute key="useProduct" value="false"/>
+<booleanAttribute key="useProduct" value="true"/>
</launchConfiguration>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/Application.java b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/Application.java
index cffd00f5fc..f9bd7af591 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/Application.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/Application.java
@@ -10,20 +10,72 @@
*/
package org.eclipse.emf.cdo.releng.setup.product;
+import org.eclipse.emf.cdo.releng.setup.Preferences;
+import org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorAdvisor;
+
+import org.eclipse.emf.common.ui.URIEditorInput;
+import org.eclipse.emf.common.util.URI;
+
import org.eclipse.equinox.app.IApplication;
import org.eclipse.equinox.app.IApplicationContext;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
/**
* @author Eike Stepper
*/
public class Application implements IApplication
{
- public Object start(IApplicationContext context) throws Exception
+ public Object start(final IApplicationContext context) throws Exception
{
try
{
- SetupDialog dialog = new SetupDialog(null);
- dialog.open();
+ final Display display = Display.getDefault();
+
+ for (;;)
+ {
+ SetupDialog dialog = new SetupDialog(null);
+ dialog.open();
+ if (dialog.getReturnCode() != -2)
+ {
+ break;
+ }
+
+ display.asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ IWorkbench workbench = PlatformUI.getWorkbench();
+ IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
+ if (workbenchWindow == null)
+ {
+ display.asyncExec(this);
+ }
+ else
+ {
+ URI uri = Preferences.PREFERENCES_URI;
+ IEditorInput editorInput = new URIEditorInput(uri, uri.lastSegment());
+ try
+ {
+ IWorkbenchPage page = workbenchWindow.getActivePage();
+ page.openEditor(editorInput, "org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorID");
+ }
+ catch (PartInitException ex)
+ {
+ Activator.log(ex);
+ }
+ }
+ }
+ });
+
+ PlatformUI.createAndRunWorkbench(display, new SetupEditorAdvisor());
+ }
+
return 0;
}
catch (Exception ex)
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/Director.java b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/Director.java
deleted file mode 100644
index 7fbf725783..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/Director.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.product;
-
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
-import org.eclipse.emf.cdo.releng.setup.InstallableUnit;
-import org.eclipse.emf.cdo.releng.setup.P2Repository;
-import org.eclipse.emf.cdo.releng.setup.SetupFactory;
-import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.setup.helper.Files;
-import org.eclipse.emf.cdo.releng.setup.helper.Progress;
-import org.eclipse.emf.cdo.releng.setup.helper.ProgressLog;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EObject;
-
-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.equinox.internal.p2.director.app.DirectorApplication;
-import org.eclipse.equinox.internal.p2.director.app.ILog;
-
-import java.io.File;
-
-/**
- * @author Eike Stepper
- */
-public final class Director
-{
- private DirectorCall directorCall;
-
- private String bundlePool;
-
- private boolean resetProfile;
-
- private Director(DirectorCall directorCall, String bundlePool)
- {
- this.directorCall = directorCall;
- this.bundlePool = bundlePool;
- }
-
- private Director(String bundlePool)
- {
- this(SetupFactory.eINSTANCE.createDirectorCall(), bundlePool);
- }
-
- private Director iu(String id)
- {
- InstallableUnit installableUnit = SetupFactory.eINSTANCE.createInstallableUnit();
- installableUnit.setId(id);
- directorCall.getInstallableUnits().add(installableUnit);
- return this;
- }
-
- public Director bundle(String id)
- {
- return iu(id);
- }
-
- public Director feature(String id)
- {
- return iu(id + ".feature.group");
- }
-
- public Director resetProfile()
- {
- resetProfile = true;
- return this;
- }
-
- public Director repository(String url)
- {
- P2Repository p2Repository = SetupFactory.eINSTANCE.createP2Repository();
- p2Repository.setUrl(url);
- directorCall.getP2Repositories().add(p2Repository);
- return this;
- }
-
- public void install(String destination) throws Exception
- {
- File eclipseFolder = new File(destination);
- eclipseFolder.mkdirs();
-
- File branchFolder = eclipseFolder.getParentFile();
- File projectFolder = branchFolder.getParentFile();
- String profileName = projectFolder.getName() + "_" + branchFolder.getName();
- profileName = profileName.replace('.', '_');
- profileName = profileName.replace('-', '_');
- profileName = profileName.replace('/', '_');
- profileName = profileName.replace('\\', '_');
-
- EList<P2Repository> p2Repositories = directorCall.getP2Repositories();
- EList<InstallableUnit> installableUnits = directorCall.getInstallableUnits();
-
- Progress.log().addLine(
- "Calling director to install " + installableUnits.size() + (installableUnits.size() == 1 ? " unit" : " units")
- + " from " + p2Repositories.size() + (p2Repositories.size() == 1 ? " repository" : " repositories")
- + " to " + destination);
-
- String repositories = makeList(p2Repositories, SetupPackage.Literals.P2_REPOSITORY__URL);
- String ius = makeList(installableUnits, SetupPackage.Literals.INSTALLABLE_UNIT__ID);
-
- String os = Platform.getOS();
- String ws = Platform.getWS();
- String arch = Platform.getOSArch();
-
- String bundleAgent = new File(bundlePool, "p2").getAbsolutePath();
- if (resetProfile)
- {
- Files.delete(new File(bundleAgent, "org.eclipse.equinox.p2.engine/profileRegistry/" + profileName + ".profile"),
- new NullProgressMonitor());
- }
-
- String[] args = { "-destination", destination, "-repository", repositories, "-installIU", ius, "-profile",
- profileName, "-profileProperties", "org.eclipse.update.install.features=true", "-bundlepool", bundlePool,
- "-shared", bundleAgent, "-p2.os", os, "-p2.ws", ws, "-p2.arch", arch };
-
- DirectorApplication app = new DirectorApplication();
- app.setLog(new ILog()
- {
- public void log(String message)
- {
- ProgressLog log = Progress.log();
- if (log.isCancelled())
- {
- throw new OperationCanceledException();
- }
-
- log.addLine(message);
- }
-
- public void log(IStatus status)
- {
- log(status.getMessage());
- }
-
- public void close()
- {
- }
- });
-
- app.run(args);
- }
-
- private String makeList(EList<? extends EObject> objects, EAttribute attribute)
- {
- StringBuilder builder = new StringBuilder();
- for (EObject object : objects)
- {
- if (builder.length() > 0)
- {
- builder.append(',');
- }
-
- Object value = object.eGet(attribute);
- builder.append(value);
- }
-
- return builder.toString();
- }
-
- public static Director from(String bundlePool)
- {
- return new Director(bundlePool);
- }
-
- public static void install(String bundlePool, DirectorCall directorCall, String destination, boolean resetProfile)
- throws Exception
- {
- Director director = new Director(directorCall, bundlePool);
- if (resetProfile)
- {
- director.resetProfile();
- }
-
- director.install(destination);
- }
-}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/SetupDialog.java b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/SetupDialog.java
index b06a2f66e1..7a5d8230e1 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/SetupDialog.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/emf/cdo/releng/setup/product/SetupDialog.java
@@ -10,37 +10,34 @@
*/
package org.eclipse.emf.cdo.releng.setup.product;
+import org.eclipse.emf.cdo.releng.internal.setup.SetupTaskPerformer;
+import org.eclipse.emf.cdo.releng.internal.setup.ui.ProgressLogDialog;
+import org.eclipse.emf.cdo.releng.internal.setup.ui.ResourceManager;
import org.eclipse.emf.cdo.releng.setup.Branch;
import org.eclipse.emf.cdo.releng.setup.Configuration;
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
import org.eclipse.emf.cdo.releng.setup.EclipseVersion;
-import org.eclipse.emf.cdo.releng.setup.LinkLocation;
-import org.eclipse.emf.cdo.releng.setup.P2Repository;
import org.eclipse.emf.cdo.releng.setup.Preferences;
import org.eclipse.emf.cdo.releng.setup.Project;
import org.eclipse.emf.cdo.releng.setup.Setup;
import org.eclipse.emf.cdo.releng.setup.SetupFactory;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.setup.ToolInstallation;
-import org.eclipse.emf.cdo.releng.setup.helper.OS;
-import org.eclipse.emf.cdo.releng.setup.helper.Progress;
-import org.eclipse.emf.cdo.releng.setup.helper.ProgressLog;
-import org.eclipse.emf.cdo.releng.setup.helper.ProgressLogRunnable;
import org.eclipse.emf.cdo.releng.setup.provider.BranchItemProvider;
import org.eclipse.emf.cdo.releng.setup.provider.ConfigurationItemProvider;
import org.eclipse.emf.cdo.releng.setup.provider.ProjectItemProvider;
import org.eclipse.emf.cdo.releng.setup.provider.SetupItemProviderAdapterFactory;
-import org.eclipse.emf.cdo.releng.setup.ui.ProgressLogDialog;
+import org.eclipse.emf.cdo.releng.setup.util.OS;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogRunnable;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.xmi.XMIResource;
import org.eclipse.emf.ecore.xmi.XMLResource;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
@@ -85,17 +82,13 @@ import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeColumn;
import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.wb.swt.ResourceManager;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.Map;
/**
* @author Eike Stepper
@@ -103,17 +96,10 @@ import java.util.Set;
public class SetupDialog extends TitleAreaDialog
{
private static final String SETUP_URI = System.getProperty("setup.uri",
- "http://git.eclipse.org/c/cdo/cdo.git/plain/plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.xmi");
+ "http://git.eclipse.org/c/cdo/cdo.git/plain/plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.setup")
+ .replace('\\', '/');
- private static final String EGIT_URI = System.getProperty("egit.uri", "http://download.eclipse.org/releases/kepler");
-
- private static final String BUCKY_URI = System.getProperty("bucky.uri",
- "http://download.eclipse.org/tools/buckminster/updates-4.3");
-
- private static final String RELENG_URI = System.getProperty("releng.uri",
- "http://download.eclipse.org/modeling/emf/cdo/updates/integration");
-
- private HashMap<Branch, Setup> setups;
+ private Map<Branch, Setup> setups;
private AdapterFactory adapterFactory;
@@ -150,7 +136,7 @@ public class SetupDialog extends TitleAreaDialog
@Override
public boolean close()
{
- savePreferences();
+ saveEObject(preferences);
return super.close();
}
@@ -163,7 +149,7 @@ public class SetupDialog extends TitleAreaDialog
{
getShell().setText(ProgressLogDialog.TITLE);
setTitle(ProgressLogDialog.TITLE);
- setTitleImage(ResourceManager.getPluginImage("org.eclipse.emf.cdo.releng.setup.ui", "icons/install_wiz.gif"));
+ setTitleImage(ResourceManager.getPluginImage("org.eclipse.emf.cdo.releng.setup", "icons/install_wiz.gif"));
URI configurationURI = URI.createURI(SETUP_URI);
Resource resource = resourceSet.getResource(configurationURI, true);
@@ -292,16 +278,6 @@ public class SetupDialog extends TitleAreaDialog
{
Branch branch = (Branch)element;
Setup setup = setups.get(branch);
- if (setup == null)
- {
- setup = SetupFactory.eINSTANCE.createSetup();
- setup.setBranch(branch);
- setup.setEclipseVersion(getDefaultEclipseVersion());
-
- Resource resource = resourceSet.createResource(getSetupURI(branch));
- resource.getContents().add(setup);
- }
-
EclipseVersion eclipseVersion = setup.getEclipseVersion();
return labelProvider.getText(eclipseVersion);
}
@@ -347,8 +323,21 @@ public class SetupDialog extends TitleAreaDialog
}
});
- Label empty = new Label(grpPreferences, SWT.NONE);
- empty.setBounds(0, 0, 55, 15);
+ // Label empty = new Label(grpPreferences, SWT.NONE);
+ // empty.setBounds(0, 0, 55, 15);
+ Button editButton = new Button(grpPreferences, SWT.NONE);
+ editButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
+ editButton.setBounds(0, 0, 75, 25);
+ editButton.setText("Edit...");
+ editButton.addSelectionListener(new SelectionAdapter()
+ {
+ @Override
+ public void widgetSelected(SelectionEvent e)
+ {
+ close();
+ setReturnCode(-2);
+ }
+ });
Label installFolderLabel = new Label(grpPreferences, SWT.NONE);
installFolderLabel.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
@@ -363,6 +352,12 @@ public class SetupDialog extends TitleAreaDialog
public void modifyText(ModifyEvent e)
{
preferences.setInstallFolder(installFolderText.getText());
+ for (Setup setup : setups.values())
+ {
+ URI uri = getSetupURI(setup.getBranch());
+ setup.eResource().setURI(uri);
+ }
+
validate();
}
});
@@ -469,6 +464,8 @@ public class SetupDialog extends TitleAreaDialog
Resource resource = resourceSet.getResource(Preferences.PREFERENCES_URI, true);
preferences = (Preferences)resource.getContents().get(0);
+ setups = initSetups();
+
userNameText.setText(safe(preferences.getUserName()));
installFolderText.setText(safe(preferences.getInstallFolder()));
gitPrefixText.setText(safe(preferences.getGitPrefix()));
@@ -479,6 +476,8 @@ public class SetupDialog extends TitleAreaDialog
preferences = SetupFactory.eINSTANCE.createPreferences();
resource.getContents().add(preferences);
+ setups = initSetups();
+
File rootFolder = new File(System.getProperty("user.home", "."));
userNameText.setText(safe(System.getProperty("user.name", "<username>")).toLowerCase());
@@ -486,14 +485,13 @@ public class SetupDialog extends TitleAreaDialog
gitPrefixText.setText(safe(getAbsolutePath(new File(OS.INSTANCE.getGitPrefix()))));
}
- initWorkspaces();
viewer.setInput(configuration);
viewer.expandAll();
}
- private void initWorkspaces()
+ private Map<Branch, Setup> initSetups()
{
- setups = new HashMap<Branch, Setup>();
+ Map<Branch, Setup> setups = new HashMap<Branch, Setup>();
for (Project project : configuration.getProjects())
{
for (Branch branch : project.getBranches())
@@ -508,8 +506,9 @@ public class SetupDialog extends TitleAreaDialog
else
{
setup = SetupFactory.eINSTANCE.createSetup();
- setup.setBranch(branch);
setup.setEclipseVersion(getDefaultEclipseVersion());
+ setup.setBranch(branch);
+ setup.setPreferences(preferences);
Resource resource = resourceSet.createResource(uri);
resource.getContents().add(setup);
@@ -518,6 +517,8 @@ public class SetupDialog extends TitleAreaDialog
setups.put(branch, setup);
}
}
+
+ return setups;
}
private EclipseVersion getDefaultEclipseVersion()
@@ -625,7 +626,9 @@ public class SetupDialog extends TitleAreaDialog
if (object instanceof Branch)
{
Branch branch = (Branch)object;
- return branch.isInstalled(installFolderText.getText());
+ Setup setup = setups.get(branch);
+ URI uri = setup.eResource().getURI();
+ return resourceSet.getURIConverter().exists(uri, null);
}
return false;
@@ -672,218 +675,29 @@ public class SetupDialog extends TitleAreaDialog
private void install(Setup setup, String installFolder, String gitPrefix) throws Exception
{
- Branch branch = setup.getBranch();
- Progress.log().addLine("Setting up " + branch.getProject().getName() + " " + branch.getName());
-
- URI branchURI = branch.getURI(installFolder).trimSegments(1);
- String destination = branchURI.appendSegment("eclipse").toFileString();
+ saveEObject(setup);
- Set<String> updateLocations = new HashSet<String>();
- updateLocations.add(EGIT_URI);
- updateLocations.add(BUCKY_URI);
- updateLocations.add(RELENG_URI);
+ SetupTaskPerformer performer = new SetupTaskPerformer(new File(installFolder, setup.getBranch().getProject()
+ .getName()
+ + "/" + setup.getBranch().getName()));
+ performer.getWorkspaceDir().mkdirs();
+ performer.perform();
- String bundlePool = new File(installFolder, ".p2pool-ide").getAbsolutePath();
-
- install(bundlePool, destination, updateLocations, setup.getEclipseVersion().getDirectorCall(), true);
-
- Director.from(bundlePool) //
- .feature("org.eclipse.egit") //
- .repository(EGIT_URI) //
- //
- .feature("org.eclipse.buckminster.core.feature") //
- .feature("org.eclipse.buckminster.git.feature") //
- .feature("org.eclipse.buckminster.pde.feature") //
- .repository(BUCKY_URI) //
- //
- .feature("org.eclipse.emf.cdo.releng.setup.ide") //
- .repository(RELENG_URI) //
- //
- .install(destination);
-
- install(bundlePool, destination, updateLocations, branch.getProject());
- install(bundlePool, destination, updateLocations, branch);
- install(bundlePool, destination, updateLocations, preferences);
-
- install(preferences.getLinkLocations(), destination);
-
- File branchFolder = new File(branchURI.toFileString());
- mangleEclipseIni(destination, branchFolder, gitPrefix);
-
- setup.setPreferences(EcoreUtil.copy(preferences));
- for (String updateLocation : updateLocations)
- {
- P2Repository p2Repository = SetupFactory.eINSTANCE.createP2Repository();
- p2Repository.setUrl(updateLocation);
-
- setup.getUpdateLocations().add(p2Repository);
- }
-
- Resource setupResource = setup.eResource();
- setupResource.setURI(getSetupURI(branch, installFolder));
- setupResource.save(null);
-
- new File(branchFolder, "ws").mkdirs();
- launchIDE(setup, branchFolder);
- }
-
- private void install(String bundlePool, String destination, Set<String> updateLocations, ToolInstallation installation)
- throws Exception
- {
- for (DirectorCall directorCall : installation.getDirectorCalls())
- {
- install(bundlePool, destination, updateLocations, directorCall, false);
- }
- }
-
- private void install(String bundlePool, String destination, Set<String> updateLocations, DirectorCall directorCall,
- boolean resetProfile) throws Exception
- {
- Director.install(bundlePool, directorCall, destination, resetProfile);
- for (P2Repository p2Repository : directorCall.getP2Repositories())
- {
- updateLocations.add(p2Repository.getUrl());
- }
- }
-
- private void install(EList<LinkLocation> linkLocations, String destination) throws Exception
- {
- if (!linkLocations.isEmpty())
- {
- File links = new File(destination, "links");
- links.mkdirs();
-
- for (LinkLocation linkLocation : linkLocations)
- {
- File path = new File(linkLocation.getPath()).getCanonicalFile();
-
- String name = linkLocation.getName();
- if (name == null || name.length() == 0)
- {
- name = path.getName();
- }
-
- File link = new File(links, name + ".link");
-
- List<String> lines = Collections.singletonList("path=" + path.toString().replace("\\", "\\\\"));
- OS.INSTANCE.writeText(link, lines);
- }
- }
- }
-
- private void mangleEclipseIni(String destination, File branchFolder, String gitPrefix)
- {
- File eclipseIni = new File(destination, "eclipse.ini");
-
- List<String> oldLines = OS.INSTANCE.readText(eclipseIni);
- List<String> newLines = new ArrayList<String>(oldLines);
- mangleEclipseIni(newLines, branchFolder, gitPrefix);
-
- if (!newLines.equals(oldLines))
- {
- Progress.log().addLine("Adjusting eclipse.ini");
- OS.INSTANCE.writeText(eclipseIni, newLines);
- }
- }
-
- private void mangleEclipseIni(List<String> lines, File branchFolder, String gitPrefix)
- {
- String maxHeap = Platform.getOSArch().endsWith("_64") ? "-Xmx4g" : "-Xmx1g";
-
- int xmx = findLine(lines, "-Xmx");
- if (xmx == -1)
- {
- lines.add(maxHeap);
- }
- else
- {
- lines.set(xmx, maxHeap);
- }
-
- int maxperm = findLine(lines, "--launcher.XXMaxPermSize");
- if (maxperm == -1)
- {
- maxperm = findLine(lines, "-vmargs");
- lines.add(maxperm, "--launcher.XXMaxPermSize");
- lines.add(maxperm + 1, "512m");
- }
- else
- {
- lines.set(maxperm + 1, "512m");
- }
-
- String ws = new File(branchFolder, "ws").getAbsolutePath();
-
- int data = findLine(lines, "-data");
- if (data == -1)
- {
- data = findLine(lines, "-vmargs");
- lines.add(data, "-data");
- lines.add(data + 1, ws);
- }
- else
- {
- lines.set(data + 1, ws);
- }
-
- if (gitPrefix.length() != 0)
- {
- gitPrefix = "-Djgit.gitprefix=" + gitPrefix;
- if (!lines.contains(gitPrefix))
- {
- lines.add(gitPrefix);
- }
- }
-
- String setupIDE = "-Dorg.eclipse.emf.cdo.releng.setup.ide=true";
- if (!lines.contains(setupIDE))
- {
- lines.add(setupIDE);
- }
-
- File projectFolder = branchFolder.getParentFile();
- String poolPath = new File(projectFolder.getParentFile(), ".p2pool-tp").getAbsolutePath();
- String bundlePool = "-Dorg.eclipse.buckminster.core.bundle.pool=" + poolPath;
- if (!lines.contains(bundlePool))
- {
- lines.add(bundlePool);
- }
- }
-
- private int findLine(List<String> lines, String search)
- {
- int index = 0;
- for (String line : lines)
- {
- if (line.contains(search))
- {
- return index;
- }
-
- ++index;
- }
-
- return -1;
- }
-
- private void launchIDE(Setup setup, File branchFolder) throws IOException
- {
- Progress.log().addLine("Launching IDE");
-
- String eclipseExecutable = OS.INSTANCE.getEclipseExecutable();
- String eclipsePath = new File(branchFolder, "eclipse/" + eclipseExecutable).getAbsolutePath();
- File ws = new File(branchFolder, "ws");
+ performer.log("Launching IDE");
+ String eclipseExecutable = performer.getOS().getEclipseExecutable();
+ String eclipsePath = new File(performer.getBranchDir(), "eclipse/" + eclipseExecutable).getAbsolutePath();
+ File ws = new File(performer.getBranchDir(), "ws");
ProcessBuilder builder = new ProcessBuilder(eclipsePath);
builder.directory(ws);
builder.start();
}
- private void savePreferences()
+ private void saveEObject(EObject eObject)
{
try
{
- XMLResource xmlResource = (XMLResource)preferences.eResource();
+ XMLResource xmlResource = (XMLResource)eObject.eResource();
xmlResource.getEObjectToExtensionMap().clear();
xmlResource.save(null);
}
@@ -913,6 +727,7 @@ public class SetupDialog extends TitleAreaDialog
childrenFeatures = new ArrayList<EStructuralFeature>();
childrenFeatures.add(SetupPackage.Literals.CONFIGURATION__PROJECTS);
}
+
return childrenFeatures;
}
};
@@ -928,7 +743,6 @@ public class SetupDialog extends TitleAreaDialog
{
projectItemProvider = new ProjectItemProvider(this)
{
-
@Override
public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object)
{
@@ -937,6 +751,7 @@ public class SetupDialog extends TitleAreaDialog
childrenFeatures = new ArrayList<EStructuralFeature>();
childrenFeatures.add(SetupPackage.Literals.PROJECT__BRANCHES);
}
+
return childrenFeatures;
}
};
@@ -959,6 +774,7 @@ public class SetupDialog extends TitleAreaDialog
{
childrenFeatures = new ArrayList<EStructuralFeature>();
}
+
return childrenFeatures;
}
};
@@ -999,7 +815,7 @@ public class SetupDialog extends TitleAreaDialog
{
if (isInstalled(object))
{
- return getShell().getDisplay().getSystemColor(SWT.COLOR_GRAY);
+ return getShell().getDisplay().getSystemColor(SWT.COLOR_BLUE);
}
return super.getBackground(object);
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/ResourceManager.java b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/ResourceManager.java
index 42b9dc18f4..99ccdcd711 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/ResourceManager.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/ResourceManager.java
@@ -10,6 +10,8 @@
*******************************************************************************/
package org.eclipse.wb.swt;
+import org.eclipse.emf.cdo.releng.internal.setup.ui.SWTResourceManager;
+
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.resource.CompositeImageDescriptor;
import org.eclipse.jface.resource.ImageDescriptor;
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/SWTResourceManager.java b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/SWTResourceManager.java
index 3e217255d8..3bcc1029a6 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/SWTResourceManager.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup.product/src/org/eclipse/wb/swt/SWTResourceManager.java
@@ -40,408 +40,499 @@ import java.util.Map;
* @author scheglov_ke
* @author Dan Rubel
*/
-public class SWTResourceManager {
- ////////////////////////////////////////////////////////////////////////////
- //
- // Color
- //
- ////////////////////////////////////////////////////////////////////////////
- private static Map<RGB, Color> m_colorMap = new HashMap<RGB, Color>();
- /**
- * Returns the system {@link Color} matching the specific ID.
- *
- * @param systemColorID
- * the ID value for the color
- * @return the system {@link Color} matching the specific ID
- */
- public static Color getColor(int systemColorID) {
- Display display = Display.getCurrent();
- return display.getSystemColor(systemColorID);
- }
- /**
- * Returns a {@link Color} given its red, green and blue component values.
- *
- * @param r
- * the red component of the color
- * @param g
- * the green component of the color
- * @param b
- * the blue component of the color
- * @return the {@link Color} matching the given red, green and blue component values
- */
- public static Color getColor(int r, int g, int b) {
- return getColor(new RGB(r, g, b));
- }
- /**
- * Returns a {@link Color} given its RGB value.
- *
- * @param rgb
- * the {@link RGB} value of the color
- * @return the {@link Color} matching the RGB value
- */
- public static Color getColor(RGB rgb) {
- Color color = m_colorMap.get(rgb);
- if (color == null) {
- Display display = Display.getCurrent();
- color = new Color(display, rgb);
- m_colorMap.put(rgb, color);
- }
- return color;
- }
- /**
- * Dispose of all the cached {@link Color}'s.
- */
- public static void disposeColors() {
- for (Color color : m_colorMap.values()) {
- color.dispose();
- }
- m_colorMap.clear();
- }
- ////////////////////////////////////////////////////////////////////////////
- //
- // Image
- //
- ////////////////////////////////////////////////////////////////////////////
- /**
- * Maps image paths to images.
- */
- private static Map<String, Image> m_imageMap = new HashMap<String, Image>();
- /**
- * Returns an {@link Image} encoded by the specified {@link InputStream}.
- *
- * @param stream
- * the {@link InputStream} encoding the image data
- * @return the {@link Image} encoded by the specified input stream
- */
- protected static Image getImage(InputStream stream) throws IOException {
- try {
- Display display = Display.getCurrent();
- ImageData data = new ImageData(stream);
- if (data.transparentPixel > 0) {
- return new Image(display, data, data.getTransparencyMask());
- }
- return new Image(display, data);
- } finally {
- stream.close();
- }
- }
- /**
- * Returns an {@link Image} stored in the file at the specified path.
- *
- * @param path
- * the path to the image file
- * @return the {@link Image} stored in the file at the specified path
- */
- public static Image getImage(String path) {
- Image image = m_imageMap.get(path);
- if (image == null) {
- try {
- image = getImage(new FileInputStream(path));
- m_imageMap.put(path, image);
- } catch (Exception e) {
- image = getMissingImage();
- m_imageMap.put(path, image);
- }
- }
- return image;
- }
- /**
- * Returns an {@link Image} stored in the file at the specified path relative to the specified class.
- *
- * @param clazz
- * the {@link Class} relative to which to find the image
- * @param path
- * the path to the image file, if starts with <code>'/'</code>
- * @return the {@link Image} stored in the file at the specified path
- */
- public static Image getImage(Class<?> clazz, String path) {
- String key = clazz.getName() + '|' + path;
- Image image = m_imageMap.get(key);
- if (image == null) {
- try {
- image = getImage(clazz.getResourceAsStream(path));
- m_imageMap.put(key, image);
- } catch (Exception e) {
- image = getMissingImage();
- m_imageMap.put(key, image);
- }
- }
- return image;
- }
- private static final int MISSING_IMAGE_SIZE = 10;
- /**
- * @return the small {@link Image} that can be used as placeholder for missing image.
- */
- private static Image getMissingImage() {
- Image image = new Image(Display.getCurrent(), MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
- //
- GC gc = new GC(image);
- gc.setBackground(getColor(SWT.COLOR_RED));
- gc.fillRectangle(0, 0, MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
- gc.dispose();
- //
- return image;
- }
- /**
- * Style constant for placing decorator image in top left corner of base image.
- */
- public static final int TOP_LEFT = 1;
- /**
- * Style constant for placing decorator image in top right corner of base image.
- */
- public static final int TOP_RIGHT = 2;
- /**
- * Style constant for placing decorator image in bottom left corner of base image.
- */
- public static final int BOTTOM_LEFT = 3;
- /**
- * Style constant for placing decorator image in bottom right corner of base image.
- */
- public static final int BOTTOM_RIGHT = 4;
- /**
- * Internal value.
- */
- protected static final int LAST_CORNER_KEY = 5;
- /**
- * Maps images to decorated images.
- */
- @SuppressWarnings("unchecked")
- private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY];
- /**
- * Returns an {@link Image} composed of a base image decorated by another image.
- *
- * @param baseImage
- * the base {@link Image} that should be decorated
- * @param decorator
- * the {@link Image} to decorate the base image
- * @return {@link Image} The resulting decorated image
- */
- public static Image decorateImage(Image baseImage, Image decorator) {
- return decorateImage(baseImage, decorator, BOTTOM_RIGHT);
- }
- /**
- * Returns an {@link Image} composed of a base image decorated by another image.
- *
- * @param baseImage
- * the base {@link Image} that should be decorated
- * @param decorator
- * the {@link Image} to decorate the base image
- * @param corner
- * the corner to place decorator image
- * @return the resulting decorated {@link Image}
- */
- public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) {
- if (corner <= 0 || corner >= LAST_CORNER_KEY) {
- throw new IllegalArgumentException("Wrong decorate corner");
- }
- Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner];
- if (cornerDecoratedImageMap == null) {
- cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>();
- m_decoratedImageMap[corner] = cornerDecoratedImageMap;
- }
- Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage);
- if (decoratedMap == null) {
- decoratedMap = new HashMap<Image, Image>();
- cornerDecoratedImageMap.put(baseImage, decoratedMap);
- }
- //
- Image result = decoratedMap.get(decorator);
- if (result == null) {
- Rectangle bib = baseImage.getBounds();
- Rectangle dib = decorator.getBounds();
- //
- result = new Image(Display.getCurrent(), bib.width, bib.height);
- //
- GC gc = new GC(result);
- gc.drawImage(baseImage, 0, 0);
- if (corner == TOP_LEFT) {
- gc.drawImage(decorator, 0, 0);
- } else if (corner == TOP_RIGHT) {
- gc.drawImage(decorator, bib.width - dib.width, 0);
- } else if (corner == BOTTOM_LEFT) {
- gc.drawImage(decorator, 0, bib.height - dib.height);
- } else if (corner == BOTTOM_RIGHT) {
- gc.drawImage(decorator, bib.width - dib.width, bib.height - dib.height);
- }
- gc.dispose();
- //
- decoratedMap.put(decorator, result);
- }
- return result;
- }
- /**
- * Dispose all of the cached {@link Image}'s.
- */
- public static void disposeImages() {
- // dispose loaded images
- {
- for (Image image : m_imageMap.values()) {
- image.dispose();
- }
- m_imageMap.clear();
- }
- // dispose decorated images
- for (int i = 0; i < m_decoratedImageMap.length; i++) {
- Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i];
- if (cornerDecoratedImageMap != null) {
- for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values()) {
- for (Image image : decoratedMap.values()) {
- image.dispose();
- }
- decoratedMap.clear();
- }
- cornerDecoratedImageMap.clear();
- }
- }
- }
- ////////////////////////////////////////////////////////////////////////////
- //
- // Font
- //
- ////////////////////////////////////////////////////////////////////////////
- /**
- * Maps font names to fonts.
- */
- private static Map<String, Font> m_fontMap = new HashMap<String, Font>();
- /**
- * Maps fonts to their bold versions.
- */
- private static Map<Font, Font> m_fontToBoldFontMap = new HashMap<Font, Font>();
- /**
- * Returns a {@link Font} based on its name, height and style.
- *
- * @param name
- * the name of the font
- * @param height
- * the height of the font
- * @param style
- * the style of the font
- * @return {@link Font} The font matching the name, height and style
- */
- public static Font getFont(String name, int height, int style) {
- return getFont(name, height, style, false, false);
- }
- /**
- * Returns a {@link Font} based on its name, height and style. Windows-specific strikeout and underline
- * flags are also supported.
- *
- * @param name
- * the name of the font
- * @param size
- * the size of the font
- * @param style
- * the style of the font
- * @param strikeout
- * the strikeout flag (warning: Windows only)
- * @param underline
- * the underline flag (warning: Windows only)
- * @return {@link Font} The font matching the name, height, style, strikeout and underline
- */
- public static Font getFont(String name, int size, int style, boolean strikeout, boolean underline) {
- String fontName = name + '|' + size + '|' + style + '|' + strikeout + '|' + underline;
- Font font = m_fontMap.get(fontName);
- if (font == null) {
- FontData fontData = new FontData(name, size, style);
- if (strikeout || underline) {
- try {
- Class<?> logFontClass = Class.forName("org.eclipse.swt.internal.win32.LOGFONT"); //$NON-NLS-1$
- Object logFont = FontData.class.getField("data").get(fontData); //$NON-NLS-1$
- if (logFont != null && logFontClass != null) {
- if (strikeout) {
- logFontClass.getField("lfStrikeOut").set(logFont, Byte.valueOf((byte) 1)); //$NON-NLS-1$
- }
- if (underline) {
- logFontClass.getField("lfUnderline").set(logFont, Byte.valueOf((byte) 1)); //$NON-NLS-1$
- }
- }
- } catch (Throwable e) {
- System.err.println("Unable to set underline or strikeout" + " (probably on a non-Windows platform). " + e); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- font = new Font(Display.getCurrent(), fontData);
- m_fontMap.put(fontName, font);
- }
- return font;
- }
- /**
- * Returns a bold version of the given {@link Font}.
- *
- * @param baseFont
- * the {@link Font} for which a bold version is desired
- * @return the bold version of the given {@link Font}
- */
- public static Font getBoldFont(Font baseFont) {
- Font font = m_fontToBoldFontMap.get(baseFont);
- if (font == null) {
- FontData fontDatas[] = baseFont.getFontData();
- FontData data = fontDatas[0];
- font = new Font(Display.getCurrent(), data.getName(), data.getHeight(), SWT.BOLD);
- m_fontToBoldFontMap.put(baseFont, font);
- }
- return font;
- }
- /**
- * Dispose all of the cached {@link Font}'s.
- */
- public static void disposeFonts() {
- // clear fonts
- for (Font font : m_fontMap.values()) {
- font.dispose();
- }
- m_fontMap.clear();
- // clear bold fonts
- for (Font font : m_fontToBoldFontMap.values()) {
- font.dispose();
- }
- m_fontToBoldFontMap.clear();
- }
- ////////////////////////////////////////////////////////////////////////////
- //
- // Cursor
- //
- ////////////////////////////////////////////////////////////////////////////
- /**
- * Maps IDs to cursors.
- */
- private static Map<Integer, Cursor> m_idToCursorMap = new HashMap<Integer, Cursor>();
- /**
- * Returns the system cursor matching the specific ID.
- *
- * @param id
- * int The ID value for the cursor
- * @return Cursor The system cursor matching the specific ID
- */
- public static Cursor getCursor(int id) {
- Integer key = Integer.valueOf(id);
- Cursor cursor = m_idToCursorMap.get(key);
- if (cursor == null) {
- cursor = new Cursor(Display.getDefault(), id);
- m_idToCursorMap.put(key, cursor);
- }
- return cursor;
- }
- /**
- * Dispose all of the cached cursors.
- */
- public static void disposeCursors() {
- for (Cursor cursor : m_idToCursorMap.values()) {
- cursor.dispose();
- }
- m_idToCursorMap.clear();
- }
- ////////////////////////////////////////////////////////////////////////////
- //
- // General
- //
- ////////////////////////////////////////////////////////////////////////////
- /**
- * Dispose of cached objects and their underlying OS resources. This should only be called when the cached
- * objects are no longer needed (e.g. on application shutdown).
- */
- public static void dispose() {
- disposeColors();
- disposeImages();
- disposeFonts();
- disposeCursors();
- }
-} \ No newline at end of file
+public class SWTResourceManager
+{
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // Color
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ private static Map<RGB, Color> m_colorMap = new HashMap<RGB, Color>();
+
+ /**
+ * Returns the system {@link Color} matching the specific ID.
+ *
+ * @param systemColorID
+ * the ID value for the color
+ * @return the system {@link Color} matching the specific ID
+ */
+ public static Color getColor(int systemColorID)
+ {
+ Display display = Display.getCurrent();
+ return display.getSystemColor(systemColorID);
+ }
+
+ /**
+ * Returns a {@link Color} given its red, green and blue component values.
+ *
+ * @param r
+ * the red component of the color
+ * @param g
+ * the green component of the color
+ * @param b
+ * the blue component of the color
+ * @return the {@link Color} matching the given red, green and blue component values
+ */
+ public static Color getColor(int r, int g, int b)
+ {
+ return getColor(new RGB(r, g, b));
+ }
+
+ /**
+ * Returns a {@link Color} given its RGB value.
+ *
+ * @param rgb
+ * the {@link RGB} value of the color
+ * @return the {@link Color} matching the RGB value
+ */
+ public static Color getColor(RGB rgb)
+ {
+ Color color = m_colorMap.get(rgb);
+ if (color == null)
+ {
+ Display display = Display.getCurrent();
+ color = new Color(display, rgb);
+ m_colorMap.put(rgb, color);
+ }
+ return color;
+ }
+
+ /**
+ * Dispose of all the cached {@link Color}'s.
+ */
+ public static void disposeColors()
+ {
+ for (Color color : m_colorMap.values())
+ {
+ color.dispose();
+ }
+ m_colorMap.clear();
+ }
+
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // Image
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps image paths to images.
+ */
+ private static Map<String, Image> m_imageMap = new HashMap<String, Image>();
+
+ /**
+ * Returns an {@link Image} encoded by the specified {@link InputStream}.
+ *
+ * @param stream
+ * the {@link InputStream} encoding the image data
+ * @return the {@link Image} encoded by the specified input stream
+ */
+ protected static Image getImage(InputStream stream) throws IOException
+ {
+ try
+ {
+ Display display = Display.getCurrent();
+ ImageData data = new ImageData(stream);
+ if (data.transparentPixel > 0)
+ {
+ return new Image(display, data, data.getTransparencyMask());
+ }
+ return new Image(display, data);
+ }
+ finally
+ {
+ stream.close();
+ }
+ }
+
+ /**
+ * Returns an {@link Image} stored in the file at the specified path.
+ *
+ * @param path
+ * the path to the image file
+ * @return the {@link Image} stored in the file at the specified path
+ */
+ public static Image getImage(String path)
+ {
+ Image image = m_imageMap.get(path);
+ if (image == null)
+ {
+ try
+ {
+ image = getImage(new FileInputStream(path));
+ m_imageMap.put(path, image);
+ }
+ catch (Exception e)
+ {
+ image = getMissingImage();
+ m_imageMap.put(path, image);
+ }
+ }
+ return image;
+ }
+
+ /**
+ * Returns an {@link Image} stored in the file at the specified path relative to the specified class.
+ *
+ * @param clazz
+ * the {@link Class} relative to which to find the image
+ * @param path
+ * the path to the image file, if starts with <code>'/'</code>
+ * @return the {@link Image} stored in the file at the specified path
+ */
+ public static Image getImage(Class<?> clazz, String path)
+ {
+ String key = clazz.getName() + '|' + path;
+ Image image = m_imageMap.get(key);
+ if (image == null)
+ {
+ try
+ {
+ image = getImage(clazz.getResourceAsStream(path));
+ m_imageMap.put(key, image);
+ }
+ catch (Exception e)
+ {
+ image = getMissingImage();
+ m_imageMap.put(key, image);
+ }
+ }
+ return image;
+ }
+
+ private static final int MISSING_IMAGE_SIZE = 10;
+
+ /**
+ * @return the small {@link Image} that can be used as placeholder for missing image.
+ */
+ private static Image getMissingImage()
+ {
+ Image image = new Image(Display.getCurrent(), MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
+ //
+ GC gc = new GC(image);
+ gc.setBackground(getColor(SWT.COLOR_RED));
+ gc.fillRectangle(0, 0, MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
+ gc.dispose();
+ //
+ return image;
+ }
+
+ /**
+ * Style constant for placing decorator image in top left corner of base image.
+ */
+ public static final int TOP_LEFT = 1;
+
+ /**
+ * Style constant for placing decorator image in top right corner of base image.
+ */
+ public static final int TOP_RIGHT = 2;
+
+ /**
+ * Style constant for placing decorator image in bottom left corner of base image.
+ */
+ public static final int BOTTOM_LEFT = 3;
+
+ /**
+ * Style constant for placing decorator image in bottom right corner of base image.
+ */
+ public static final int BOTTOM_RIGHT = 4;
+
+ /**
+ * Internal value.
+ */
+ protected static final int LAST_CORNER_KEY = 5;
+
+ /**
+ * Maps images to decorated images.
+ */
+ @SuppressWarnings("unchecked")
+ private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY];
+
+ /**
+ * Returns an {@link Image} composed of a base image decorated by another image.
+ *
+ * @param baseImage
+ * the base {@link Image} that should be decorated
+ * @param decorator
+ * the {@link Image} to decorate the base image
+ * @return {@link Image} The resulting decorated image
+ */
+ public static Image decorateImage(Image baseImage, Image decorator)
+ {
+ return decorateImage(baseImage, decorator, BOTTOM_RIGHT);
+ }
+
+ /**
+ * Returns an {@link Image} composed of a base image decorated by another image.
+ *
+ * @param baseImage
+ * the base {@link Image} that should be decorated
+ * @param decorator
+ * the {@link Image} to decorate the base image
+ * @param corner
+ * the corner to place decorator image
+ * @return the resulting decorated {@link Image}
+ */
+ public static Image decorateImage(final Image baseImage, final Image decorator, final int corner)
+ {
+ if (corner <= 0 || corner >= LAST_CORNER_KEY)
+ {
+ throw new IllegalArgumentException("Wrong decorate corner");
+ }
+ Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner];
+ if (cornerDecoratedImageMap == null)
+ {
+ cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>();
+ m_decoratedImageMap[corner] = cornerDecoratedImageMap;
+ }
+ Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage);
+ if (decoratedMap == null)
+ {
+ decoratedMap = new HashMap<Image, Image>();
+ cornerDecoratedImageMap.put(baseImage, decoratedMap);
+ }
+ //
+ Image result = decoratedMap.get(decorator);
+ if (result == null)
+ {
+ Rectangle bib = baseImage.getBounds();
+ Rectangle dib = decorator.getBounds();
+ //
+ result = new Image(Display.getCurrent(), bib.width, bib.height);
+ //
+ GC gc = new GC(result);
+ gc.drawImage(baseImage, 0, 0);
+ if (corner == TOP_LEFT)
+ {
+ gc.drawImage(decorator, 0, 0);
+ }
+ else if (corner == TOP_RIGHT)
+ {
+ gc.drawImage(decorator, bib.width - dib.width, 0);
+ }
+ else if (corner == BOTTOM_LEFT)
+ {
+ gc.drawImage(decorator, 0, bib.height - dib.height);
+ }
+ else if (corner == BOTTOM_RIGHT)
+ {
+ gc.drawImage(decorator, bib.width - dib.width, bib.height - dib.height);
+ }
+ gc.dispose();
+ //
+ decoratedMap.put(decorator, result);
+ }
+ return result;
+ }
+
+ /**
+ * Dispose all of the cached {@link Image}'s.
+ */
+ public static void disposeImages()
+ {
+ // dispose loaded images
+ {
+ for (Image image : m_imageMap.values())
+ {
+ image.dispose();
+ }
+ m_imageMap.clear();
+ }
+ // dispose decorated images
+ for (int i = 0; i < m_decoratedImageMap.length; i++)
+ {
+ Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i];
+ if (cornerDecoratedImageMap != null)
+ {
+ for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values())
+ {
+ for (Image image : decoratedMap.values())
+ {
+ image.dispose();
+ }
+ decoratedMap.clear();
+ }
+ cornerDecoratedImageMap.clear();
+ }
+ }
+ }
+
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // Font
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps font names to fonts.
+ */
+ private static Map<String, Font> m_fontMap = new HashMap<String, Font>();
+
+ /**
+ * Maps fonts to their bold versions.
+ */
+ private static Map<Font, Font> m_fontToBoldFontMap = new HashMap<Font, Font>();
+
+ /**
+ * Returns a {@link Font} based on its name, height and style.
+ *
+ * @param name
+ * the name of the font
+ * @param height
+ * the height of the font
+ * @param style
+ * the style of the font
+ * @return {@link Font} The font matching the name, height and style
+ */
+ public static Font getFont(String name, int height, int style)
+ {
+ return getFont(name, height, style, false, false);
+ }
+
+ /**
+ * Returns a {@link Font} based on its name, height and style. Windows-specific strikeout and underline
+ * flags are also supported.
+ *
+ * @param name
+ * the name of the font
+ * @param size
+ * the size of the font
+ * @param style
+ * the style of the font
+ * @param strikeout
+ * the strikeout flag (warning: Windows only)
+ * @param underline
+ * the underline flag (warning: Windows only)
+ * @return {@link Font} The font matching the name, height, style, strikeout and underline
+ */
+ public static Font getFont(String name, int size, int style, boolean strikeout, boolean underline)
+ {
+ String fontName = name + '|' + size + '|' + style + '|' + strikeout + '|' + underline;
+ Font font = m_fontMap.get(fontName);
+ if (font == null)
+ {
+ FontData fontData = new FontData(name, size, style);
+ if (strikeout || underline)
+ {
+ try
+ {
+ Class<?> logFontClass = Class.forName("org.eclipse.swt.internal.win32.LOGFONT"); //$NON-NLS-1$
+ Object logFont = FontData.class.getField("data").get(fontData); //$NON-NLS-1$
+ if (logFont != null && logFontClass != null)
+ {
+ if (strikeout)
+ {
+ logFontClass.getField("lfStrikeOut").set(logFont, Byte.valueOf((byte)1)); //$NON-NLS-1$
+ }
+ if (underline)
+ {
+ logFontClass.getField("lfUnderline").set(logFont, Byte.valueOf((byte)1)); //$NON-NLS-1$
+ }
+ }
+ }
+ catch (Throwable e)
+ {
+ System.err.println("Unable to set underline or strikeout" + " (probably on a non-Windows platform). " + e); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+ font = new Font(Display.getCurrent(), fontData);
+ m_fontMap.put(fontName, font);
+ }
+ return font;
+ }
+
+ /**
+ * Returns a bold version of the given {@link Font}.
+ *
+ * @param baseFont
+ * the {@link Font} for which a bold version is desired
+ * @return the bold version of the given {@link Font}
+ */
+ public static Font getBoldFont(Font baseFont)
+ {
+ Font font = m_fontToBoldFontMap.get(baseFont);
+ if (font == null)
+ {
+ FontData fontDatas[] = baseFont.getFontData();
+ FontData data = fontDatas[0];
+ font = new Font(Display.getCurrent(), data.getName(), data.getHeight(), SWT.BOLD);
+ m_fontToBoldFontMap.put(baseFont, font);
+ }
+ return font;
+ }
+
+ /**
+ * Dispose all of the cached {@link Font}'s.
+ */
+ public static void disposeFonts()
+ {
+ // clear fonts
+ for (Font font : m_fontMap.values())
+ {
+ font.dispose();
+ }
+ m_fontMap.clear();
+ // clear bold fonts
+ for (Font font : m_fontToBoldFontMap.values())
+ {
+ font.dispose();
+ }
+ m_fontToBoldFontMap.clear();
+ }
+
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // Cursor
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps IDs to cursors.
+ */
+ private static Map<Integer, Cursor> m_idToCursorMap = new HashMap<Integer, Cursor>();
+
+ /**
+ * Returns the system cursor matching the specific ID.
+ *
+ * @param id
+ * int The ID value for the cursor
+ * @return Cursor The system cursor matching the specific ID
+ */
+ public static Cursor getCursor(int id)
+ {
+ Integer key = Integer.valueOf(id);
+ Cursor cursor = m_idToCursorMap.get(key);
+ if (cursor == null)
+ {
+ cursor = new Cursor(Display.getDefault(), id);
+ m_idToCursorMap.put(key, cursor);
+ }
+ return cursor;
+ }
+
+ /**
+ * Dispose all of the cached cursors.
+ */
+ public static void disposeCursors()
+ {
+ for (Cursor cursor : m_idToCursorMap.values())
+ {
+ cursor.dispose();
+ }
+ m_idToCursorMap.clear();
+ }
+
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // General
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ /**
+ * Dispose of cached objects and their underlying OS resources. This should only be called when the cached
+ * objects are no longer needed (e.g. on application shutdown).
+ */
+ public static void dispose()
+ {
+ disposeColors();
+ disposeImages();
+ disposeFonts();
+ disposeCursors();
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 45834dcf98..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,5 +0,0 @@
-eclipse.preferences.version=1
-encoding/.project=UTF-8
-encoding//model/Configuration.xmi=ASCII
-encoding//model/setup.ecore=UTF-8
-encoding//model/setup.ecorediag=UTF-8
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.setup.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index 41bacd1adf..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,16 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
-Bundle-SymbolicName: org.eclipse.emf.cdo.releng.setup.ui;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-ClassPath: .
-Bundle-Activator: org.eclipse.emf.cdo.releng.setup.ui.Activator
-Bundle-Vendor: %providerName
-Bundle-Localization: plugin
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Export-Package: org.eclipse.emf.cdo.releng.setup.ui;version="1.0.0";x-friends:="org.eclipse.emf.cdo.releng.setup.ide,org.eclipse.emf.cdo.releng.setup.product"
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.ui;bundle-version="[3.0.0,4.0.0)",
- org.eclipse.emf.cdo.releng.setup.edit;bundle-version="[1.0.0,2.0.0)";visibility:=reexport,
- org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)"
-Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/wb/swt/ResourceManager.java b/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/wb/swt/ResourceManager.java
deleted file mode 100644
index c1bfc8b578..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/wb/swt/ResourceManager.java
+++ /dev/null
@@ -1,415 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Google, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Google, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wb.swt;
-
-import java.io.File;
-import java.io.InputStream;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.CompositeImageDescriptor;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.Rectangle;
-import org.osgi.framework.Bundle;
-
-/**
- * Utility class for managing OS resources associated with SWT/JFace controls such as colors, fonts, images,
- * etc.
- *
- * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the
- * operating system resources managed by cached objects when those objects and OS resources are no longer
- * needed (e.g. on application shutdown)
- *
- * This class may be freely distributed as part of any application or plugin.
- * <p>
- *
- * @author scheglov_ke
- * @author Dan Rubel
- */
-public class ResourceManager extends SWTResourceManager {
- ////////////////////////////////////////////////////////////////////////////
- //
- // Image
- //
- ////////////////////////////////////////////////////////////////////////////
- private static Map<ImageDescriptor, Image> m_descriptorImageMap = new HashMap<ImageDescriptor, Image>();
- /**
- * Returns an {@link ImageDescriptor} stored in the file at the specified path relative to the specified
- * class.
- *
- * @param clazz
- * the {@link Class} relative to which to find the image descriptor.
- * @param path
- * the path to the image file.
- * @return the {@link ImageDescriptor} stored in the file at the specified path.
- */
- public static ImageDescriptor getImageDescriptor(Class<?> clazz, String path) {
- return ImageDescriptor.createFromFile(clazz, path);
- }
- /**
- * Returns an {@link ImageDescriptor} stored in the file at the specified path.
- *
- * @param path
- * the path to the image file.
- * @return the {@link ImageDescriptor} stored in the file at the specified path.
- */
- public static ImageDescriptor getImageDescriptor(String path) {
- try {
- return ImageDescriptor.createFromURL(new File(path).toURI().toURL());
- } catch (MalformedURLException e) {
- return null;
- }
- }
- /**
- * Returns an {@link Image} based on the specified {@link ImageDescriptor}.
- *
- * @param descriptor
- * the {@link ImageDescriptor} for the {@link Image}.
- * @return the {@link Image} based on the specified {@link ImageDescriptor}.
- */
- public static Image getImage(ImageDescriptor descriptor) {
- if (descriptor == null) {
- return null;
- }
- Image image = m_descriptorImageMap.get(descriptor);
- if (image == null) {
- image = descriptor.createImage();
- m_descriptorImageMap.put(descriptor, image);
- }
- return image;
- }
- /**
- * Maps images to decorated images.
- */
- @SuppressWarnings("unchecked")
- private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY];
- /**
- * Returns an {@link Image} composed of a base image decorated by another image.
- *
- * @param baseImage
- * the base {@link Image} that should be decorated.
- * @param decorator
- * the {@link Image} to decorate the base image.
- * @return {@link Image} The resulting decorated image.
- */
- public static Image decorateImage(Image baseImage, Image decorator) {
- return decorateImage(baseImage, decorator, BOTTOM_RIGHT);
- }
- /**
- * Returns an {@link Image} composed of a base image decorated by another image.
- *
- * @param baseImage
- * the base {@link Image} that should be decorated.
- * @param decorator
- * the {@link Image} to decorate the base image.
- * @param corner
- * the corner to place decorator image.
- * @return the resulting decorated {@link Image}.
- */
- public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) {
- if (corner <= 0 || corner >= LAST_CORNER_KEY) {
- throw new IllegalArgumentException("Wrong decorate corner");
- }
- Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner];
- if (cornerDecoratedImageMap == null) {
- cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>();
- m_decoratedImageMap[corner] = cornerDecoratedImageMap;
- }
- Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage);
- if (decoratedMap == null) {
- decoratedMap = new HashMap<Image, Image>();
- cornerDecoratedImageMap.put(baseImage, decoratedMap);
- }
- //
- Image result = decoratedMap.get(decorator);
- if (result == null) {
- final Rectangle bib = baseImage.getBounds();
- final Rectangle dib = decorator.getBounds();
- final Point baseImageSize = new Point(bib.width, bib.height);
- CompositeImageDescriptor compositImageDesc = new CompositeImageDescriptor() {
- @Override
- protected void drawCompositeImage(int width, int height) {
- drawImage(baseImage.getImageData(), 0, 0);
- if (corner == TOP_LEFT) {
- drawImage(decorator.getImageData(), 0, 0);
- } else if (corner == TOP_RIGHT) {
- drawImage(decorator.getImageData(), bib.width - dib.width, 0);
- } else if (corner == BOTTOM_LEFT) {
- drawImage(decorator.getImageData(), 0, bib.height - dib.height);
- } else if (corner == BOTTOM_RIGHT) {
- drawImage(decorator.getImageData(), bib.width - dib.width, bib.height - dib.height);
- }
- }
- @Override
- protected Point getSize() {
- return baseImageSize;
- }
- };
- //
- result = compositImageDesc.createImage();
- decoratedMap.put(decorator, result);
- }
- return result;
- }
- /**
- * Dispose all of the cached images.
- */
- public static void disposeImages() {
- SWTResourceManager.disposeImages();
- // dispose ImageDescriptor images
- {
- for (Iterator<Image> I = m_descriptorImageMap.values().iterator(); I.hasNext();) {
- I.next().dispose();
- }
- m_descriptorImageMap.clear();
- }
- // dispose decorated images
- for (int i = 0; i < m_decoratedImageMap.length; i++) {
- Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i];
- if (cornerDecoratedImageMap != null) {
- for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values()) {
- for (Image image : decoratedMap.values()) {
- image.dispose();
- }
- decoratedMap.clear();
- }
- cornerDecoratedImageMap.clear();
- }
- }
- // dispose plugin images
- {
- for (Iterator<Image> I = m_URLImageMap.values().iterator(); I.hasNext();) {
- I.next().dispose();
- }
- m_URLImageMap.clear();
- }
- }
- ////////////////////////////////////////////////////////////////////////////
- //
- // Plugin images support
- //
- ////////////////////////////////////////////////////////////////////////////
- /**
- * Maps URL to images.
- */
- private static Map<String, Image> m_URLImageMap = new HashMap<String, Image>();
- /**
- * Provider for plugin resources, used by WindowBuilder at design time.
- */
- public interface PluginResourceProvider {
- URL getEntry(String symbolicName, String path);
- }
- /**
- * Instance of {@link PluginResourceProvider}, used by WindowBuilder at design time.
- */
- private static PluginResourceProvider m_designTimePluginResourceProvider = null;
- /**
- * Returns an {@link Image} based on a plugin and file path.
- *
- * @param plugin
- * the plugin {@link Object} containing the image
- * @param name
- * the path to the image within the plugin
- * @return the {@link Image} stored in the file at the specified path
- *
- * @deprecated Use {@link #getPluginImage(String, String)} instead.
- */
- @Deprecated
- public static Image getPluginImage(Object plugin, String name) {
- try {
- URL url = getPluginImageURL(plugin, name);
- if (url != null) {
- return getPluginImageFromUrl(url);
- }
- } catch (Throwable e) {
- // Ignore any exceptions
- }
- return null;
- }
- /**
- * Returns an {@link Image} based on a {@link Bundle} and resource entry path.
- *
- * @param symbolicName
- * the symbolic name of the {@link Bundle}.
- * @param path
- * the path of the resource entry.
- * @return the {@link Image} stored in the file at the specified path.
- */
- public static Image getPluginImage(String symbolicName, String path) {
- try {
- URL url = getPluginImageURL(symbolicName, path);
- if (url != null) {
- return getPluginImageFromUrl(url);
- }
- } catch (Throwable e) {
- // Ignore any exceptions
- }
- return null;
- }
- /**
- * Returns an {@link Image} based on given {@link URL}.
- */
- private static Image getPluginImageFromUrl(URL url) {
- try {
- try {
- String key = url.toExternalForm();
- Image image = m_URLImageMap.get(key);
- if (image == null) {
- InputStream stream = url.openStream();
- try {
- image = getImage(stream);
- m_URLImageMap.put(key, image);
- } finally {
- stream.close();
- }
- }
- return image;
- } catch (Throwable e) {
- // Ignore any exceptions
- }
- } catch (Throwable e) {
- // Ignore any exceptions
- }
- return null;
- }
- /**
- * Returns an {@link ImageDescriptor} based on a plugin and file path.
- *
- * @param plugin
- * the plugin {@link Object} containing the image.
- * @param name
- * the path to th eimage within the plugin.
- * @return the {@link ImageDescriptor} stored in the file at the specified path.
- *
- * @deprecated Use {@link #getPluginImageDescriptor(String, String)} instead.
- */
- @Deprecated
- public static ImageDescriptor getPluginImageDescriptor(Object plugin, String name) {
- try {
- try {
- URL url = getPluginImageURL(plugin, name);
- return ImageDescriptor.createFromURL(url);
- } catch (Throwable e) {
- // Ignore any exceptions
- }
- } catch (Throwable e) {
- // Ignore any exceptions
- }
- return null;
- }
- /**
- * Returns an {@link ImageDescriptor} based on a {@link Bundle} and resource entry path.
- *
- * @param symbolicName
- * the symbolic name of the {@link Bundle}.
- * @param path
- * the path of the resource entry.
- * @return the {@link ImageDescriptor} based on a {@link Bundle} and resource entry path.
- */
- public static ImageDescriptor getPluginImageDescriptor(String symbolicName, String path) {
- try {
- URL url = getPluginImageURL(symbolicName, path);
- if (url != null) {
- return ImageDescriptor.createFromURL(url);
- }
- } catch (Throwable e) {
- // Ignore any exceptions
- }
- return null;
- }
- /**
- * Returns an {@link URL} based on a {@link Bundle} and resource entry path.
- */
- private static URL getPluginImageURL(String symbolicName, String path) {
- // try runtime plugins
- {
- Bundle bundle = Platform.getBundle(symbolicName);
- if (bundle != null) {
- return bundle.getEntry(path);
- }
- }
- // try design time provider
- if (m_designTimePluginResourceProvider != null) {
- return m_designTimePluginResourceProvider.getEntry(symbolicName, path);
- }
- // no such resource
- return null;
- }
- /**
- * Returns an {@link URL} based on a plugin and file path.
- *
- * @param plugin
- * the plugin {@link Object} containing the file path.
- * @param name
- * the file path.
- * @return the {@link URL} representing the file at the specified path.
- * @throws Exception
- */
- private static URL getPluginImageURL(Object plugin, String name) throws Exception {
- // try to work with 'plugin' as with OSGI BundleContext
- try {
- Class<?> BundleClass = Class.forName("org.osgi.framework.Bundle"); //$NON-NLS-1$
- Class<?> BundleContextClass = Class.forName("org.osgi.framework.BundleContext"); //$NON-NLS-1$
- if (BundleContextClass.isAssignableFrom(plugin.getClass())) {
- Method getBundleMethod = BundleContextClass.getMethod("getBundle", new Class[0]); //$NON-NLS-1$
- Object bundle = getBundleMethod.invoke(plugin, new Object[0]);
- //
- Class<?> PathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$
- Constructor<?> pathConstructor = PathClass.getConstructor(new Class[]{String.class});
- Object path = pathConstructor.newInstance(new Object[]{name});
- //
- Class<?> IPathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$
- Class<?> PlatformClass = Class.forName("org.eclipse.core.runtime.Platform"); //$NON-NLS-1$
- Method findMethod = PlatformClass.getMethod("find", new Class[]{BundleClass, IPathClass}); //$NON-NLS-1$
- return (URL) findMethod.invoke(null, new Object[]{bundle, path});
- }
- } catch (Throwable e) {
- // Ignore any exceptions
- }
- // else work with 'plugin' as with usual Eclipse plugin
- {
- Class<?> PluginClass = Class.forName("org.eclipse.core.runtime.Plugin"); //$NON-NLS-1$
- if (PluginClass.isAssignableFrom(plugin.getClass())) {
- //
- Class<?> PathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$
- Constructor<?> pathConstructor = PathClass.getConstructor(new Class[]{String.class});
- Object path = pathConstructor.newInstance(new Object[]{name});
- //
- Class<?> IPathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$
- Method findMethod = PluginClass.getMethod("find", new Class[]{IPathClass}); //$NON-NLS-1$
- return (URL) findMethod.invoke(plugin, new Object[]{path});
- }
- }
- return null;
- }
- ////////////////////////////////////////////////////////////////////////////
- //
- // General
- //
- ////////////////////////////////////////////////////////////////////////////
- /**
- * Dispose of cached objects and their underlying OS resources. This should only be called when the cached
- * objects are no longer needed (e.g. on application shutdown).
- */
- public static void dispose() {
- disposeColors();
- disposeFonts();
- disposeImages();
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/wb/swt/SWTResourceManager.java b/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/wb/swt/SWTResourceManager.java
deleted file mode 100644
index d8a285807a..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/wb/swt/SWTResourceManager.java
+++ /dev/null
@@ -1,447 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Google, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Google, Inc. - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wb.swt;
-
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.swt.SWT;
-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.ImageData;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * Utility class for managing OS resources associated with SWT controls such as colors, fonts, images, etc.
- * <p>
- * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the
- * operating system resources managed by cached objects when those objects and OS resources are no longer
- * needed (e.g. on application shutdown)
- * <p>
- * This class may be freely distributed as part of any application or plugin.
- * <p>
- * @author scheglov_ke
- * @author Dan Rubel
- */
-public class SWTResourceManager {
- ////////////////////////////////////////////////////////////////////////////
- //
- // Color
- //
- ////////////////////////////////////////////////////////////////////////////
- private static Map<RGB, Color> m_colorMap = new HashMap<RGB, Color>();
- /**
- * Returns the system {@link Color} matching the specific ID.
- *
- * @param systemColorID
- * the ID value for the color
- * @return the system {@link Color} matching the specific ID
- */
- public static Color getColor(int systemColorID) {
- Display display = Display.getCurrent();
- return display.getSystemColor(systemColorID);
- }
- /**
- * Returns a {@link Color} given its red, green and blue component values.
- *
- * @param r
- * the red component of the color
- * @param g
- * the green component of the color
- * @param b
- * the blue component of the color
- * @return the {@link Color} matching the given red, green and blue component values
- */
- public static Color getColor(int r, int g, int b) {
- return getColor(new RGB(r, g, b));
- }
- /**
- * Returns a {@link Color} given its RGB value.
- *
- * @param rgb
- * the {@link RGB} value of the color
- * @return the {@link Color} matching the RGB value
- */
- public static Color getColor(RGB rgb) {
- Color color = m_colorMap.get(rgb);
- if (color == null) {
- Display display = Display.getCurrent();
- color = new Color(display, rgb);
- m_colorMap.put(rgb, color);
- }
- return color;
- }
- /**
- * Dispose of all the cached {@link Color}'s.
- */
- public static void disposeColors() {
- for (Color color : m_colorMap.values()) {
- color.dispose();
- }
- m_colorMap.clear();
- }
- ////////////////////////////////////////////////////////////////////////////
- //
- // Image
- //
- ////////////////////////////////////////////////////////////////////////////
- /**
- * Maps image paths to images.
- */
- private static Map<String, Image> m_imageMap = new HashMap<String, Image>();
- /**
- * Returns an {@link Image} encoded by the specified {@link InputStream}.
- *
- * @param stream
- * the {@link InputStream} encoding the image data
- * @return the {@link Image} encoded by the specified input stream
- */
- protected static Image getImage(InputStream stream) throws IOException {
- try {
- Display display = Display.getCurrent();
- ImageData data = new ImageData(stream);
- if (data.transparentPixel > 0) {
- return new Image(display, data, data.getTransparencyMask());
- }
- return new Image(display, data);
- } finally {
- stream.close();
- }
- }
- /**
- * Returns an {@link Image} stored in the file at the specified path.
- *
- * @param path
- * the path to the image file
- * @return the {@link Image} stored in the file at the specified path
- */
- public static Image getImage(String path) {
- Image image = m_imageMap.get(path);
- if (image == null) {
- try {
- image = getImage(new FileInputStream(path));
- m_imageMap.put(path, image);
- } catch (Exception e) {
- image = getMissingImage();
- m_imageMap.put(path, image);
- }
- }
- return image;
- }
- /**
- * Returns an {@link Image} stored in the file at the specified path relative to the specified class.
- *
- * @param clazz
- * the {@link Class} relative to which to find the image
- * @param path
- * the path to the image file, if starts with <code>'/'</code>
- * @return the {@link Image} stored in the file at the specified path
- */
- public static Image getImage(Class<?> clazz, String path) {
- String key = clazz.getName() + '|' + path;
- Image image = m_imageMap.get(key);
- if (image == null) {
- try {
- image = getImage(clazz.getResourceAsStream(path));
- m_imageMap.put(key, image);
- } catch (Exception e) {
- image = getMissingImage();
- m_imageMap.put(key, image);
- }
- }
- return image;
- }
- private static final int MISSING_IMAGE_SIZE = 10;
- /**
- * @return the small {@link Image} that can be used as placeholder for missing image.
- */
- private static Image getMissingImage() {
- Image image = new Image(Display.getCurrent(), MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
- //
- GC gc = new GC(image);
- gc.setBackground(getColor(SWT.COLOR_RED));
- gc.fillRectangle(0, 0, MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
- gc.dispose();
- //
- return image;
- }
- /**
- * Style constant for placing decorator image in top left corner of base image.
- */
- public static final int TOP_LEFT = 1;
- /**
- * Style constant for placing decorator image in top right corner of base image.
- */
- public static final int TOP_RIGHT = 2;
- /**
- * Style constant for placing decorator image in bottom left corner of base image.
- */
- public static final int BOTTOM_LEFT = 3;
- /**
- * Style constant for placing decorator image in bottom right corner of base image.
- */
- public static final int BOTTOM_RIGHT = 4;
- /**
- * Internal value.
- */
- protected static final int LAST_CORNER_KEY = 5;
- /**
- * Maps images to decorated images.
- */
- @SuppressWarnings("unchecked")
- private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY];
- /**
- * Returns an {@link Image} composed of a base image decorated by another image.
- *
- * @param baseImage
- * the base {@link Image} that should be decorated
- * @param decorator
- * the {@link Image} to decorate the base image
- * @return {@link Image} The resulting decorated image
- */
- public static Image decorateImage(Image baseImage, Image decorator) {
- return decorateImage(baseImage, decorator, BOTTOM_RIGHT);
- }
- /**
- * Returns an {@link Image} composed of a base image decorated by another image.
- *
- * @param baseImage
- * the base {@link Image} that should be decorated
- * @param decorator
- * the {@link Image} to decorate the base image
- * @param corner
- * the corner to place decorator image
- * @return the resulting decorated {@link Image}
- */
- public static Image decorateImage(final Image baseImage, final Image decorator, final int corner) {
- if (corner <= 0 || corner >= LAST_CORNER_KEY) {
- throw new IllegalArgumentException("Wrong decorate corner");
- }
- Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner];
- if (cornerDecoratedImageMap == null) {
- cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>();
- m_decoratedImageMap[corner] = cornerDecoratedImageMap;
- }
- Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage);
- if (decoratedMap == null) {
- decoratedMap = new HashMap<Image, Image>();
- cornerDecoratedImageMap.put(baseImage, decoratedMap);
- }
- //
- Image result = decoratedMap.get(decorator);
- if (result == null) {
- Rectangle bib = baseImage.getBounds();
- Rectangle dib = decorator.getBounds();
- //
- result = new Image(Display.getCurrent(), bib.width, bib.height);
- //
- GC gc = new GC(result);
- gc.drawImage(baseImage, 0, 0);
- if (corner == TOP_LEFT) {
- gc.drawImage(decorator, 0, 0);
- } else if (corner == TOP_RIGHT) {
- gc.drawImage(decorator, bib.width - dib.width, 0);
- } else if (corner == BOTTOM_LEFT) {
- gc.drawImage(decorator, 0, bib.height - dib.height);
- } else if (corner == BOTTOM_RIGHT) {
- gc.drawImage(decorator, bib.width - dib.width, bib.height - dib.height);
- }
- gc.dispose();
- //
- decoratedMap.put(decorator, result);
- }
- return result;
- }
- /**
- * Dispose all of the cached {@link Image}'s.
- */
- public static void disposeImages() {
- // dispose loaded images
- {
- for (Image image : m_imageMap.values()) {
- image.dispose();
- }
- m_imageMap.clear();
- }
- // dispose decorated images
- for (int i = 0; i < m_decoratedImageMap.length; i++) {
- Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i];
- if (cornerDecoratedImageMap != null) {
- for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values()) {
- for (Image image : decoratedMap.values()) {
- image.dispose();
- }
- decoratedMap.clear();
- }
- cornerDecoratedImageMap.clear();
- }
- }
- }
- ////////////////////////////////////////////////////////////////////////////
- //
- // Font
- //
- ////////////////////////////////////////////////////////////////////////////
- /**
- * Maps font names to fonts.
- */
- private static Map<String, Font> m_fontMap = new HashMap<String, Font>();
- /**
- * Maps fonts to their bold versions.
- */
- private static Map<Font, Font> m_fontToBoldFontMap = new HashMap<Font, Font>();
- /**
- * Returns a {@link Font} based on its name, height and style.
- *
- * @param name
- * the name of the font
- * @param height
- * the height of the font
- * @param style
- * the style of the font
- * @return {@link Font} The font matching the name, height and style
- */
- public static Font getFont(String name, int height, int style) {
- return getFont(name, height, style, false, false);
- }
- /**
- * Returns a {@link Font} based on its name, height and style. Windows-specific strikeout and underline
- * flags are also supported.
- *
- * @param name
- * the name of the font
- * @param size
- * the size of the font
- * @param style
- * the style of the font
- * @param strikeout
- * the strikeout flag (warning: Windows only)
- * @param underline
- * the underline flag (warning: Windows only)
- * @return {@link Font} The font matching the name, height, style, strikeout and underline
- */
- public static Font getFont(String name, int size, int style, boolean strikeout, boolean underline) {
- String fontName = name + '|' + size + '|' + style + '|' + strikeout + '|' + underline;
- Font font = m_fontMap.get(fontName);
- if (font == null) {
- FontData fontData = new FontData(name, size, style);
- if (strikeout || underline) {
- try {
- Class<?> logFontClass = Class.forName("org.eclipse.swt.internal.win32.LOGFONT"); //$NON-NLS-1$
- Object logFont = FontData.class.getField("data").get(fontData); //$NON-NLS-1$
- if (logFont != null && logFontClass != null) {
- if (strikeout) {
- logFontClass.getField("lfStrikeOut").set(logFont, Byte.valueOf((byte) 1)); //$NON-NLS-1$
- }
- if (underline) {
- logFontClass.getField("lfUnderline").set(logFont, Byte.valueOf((byte) 1)); //$NON-NLS-1$
- }
- }
- } catch (Throwable e) {
- System.err.println("Unable to set underline or strikeout" + " (probably on a non-Windows platform). " + e); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- font = new Font(Display.getCurrent(), fontData);
- m_fontMap.put(fontName, font);
- }
- return font;
- }
- /**
- * Returns a bold version of the given {@link Font}.
- *
- * @param baseFont
- * the {@link Font} for which a bold version is desired
- * @return the bold version of the given {@link Font}
- */
- public static Font getBoldFont(Font baseFont) {
- Font font = m_fontToBoldFontMap.get(baseFont);
- if (font == null) {
- FontData fontDatas[] = baseFont.getFontData();
- FontData data = fontDatas[0];
- font = new Font(Display.getCurrent(), data.getName(), data.getHeight(), SWT.BOLD);
- m_fontToBoldFontMap.put(baseFont, font);
- }
- return font;
- }
- /**
- * Dispose all of the cached {@link Font}'s.
- */
- public static void disposeFonts() {
- // clear fonts
- for (Font font : m_fontMap.values()) {
- font.dispose();
- }
- m_fontMap.clear();
- // clear bold fonts
- for (Font font : m_fontToBoldFontMap.values()) {
- font.dispose();
- }
- m_fontToBoldFontMap.clear();
- }
- ////////////////////////////////////////////////////////////////////////////
- //
- // Cursor
- //
- ////////////////////////////////////////////////////////////////////////////
- /**
- * Maps IDs to cursors.
- */
- private static Map<Integer, Cursor> m_idToCursorMap = new HashMap<Integer, Cursor>();
- /**
- * Returns the system cursor matching the specific ID.
- *
- * @param id
- * int The ID value for the cursor
- * @return Cursor The system cursor matching the specific ID
- */
- public static Cursor getCursor(int id) {
- Integer key = Integer.valueOf(id);
- Cursor cursor = m_idToCursorMap.get(key);
- if (cursor == null) {
- cursor = new Cursor(Display.getDefault(), id);
- m_idToCursorMap.put(key, cursor);
- }
- return cursor;
- }
- /**
- * Dispose all of the cached cursors.
- */
- public static void disposeCursors() {
- for (Cursor cursor : m_idToCursorMap.values()) {
- cursor.dispose();
- }
- m_idToCursorMap.clear();
- }
- ////////////////////////////////////////////////////////////////////////////
- //
- // General
- //
- ////////////////////////////////////////////////////////////////////////////
- /**
- * Dispose of cached objects and their underlying OS resources. This should only be called when the cached
- * objects are no longer needed (e.g. on application shutdown).
- */
- public static void dispose() {
- disposeColors();
- disposeImages();
- disposeFonts();
- disposeCursors();
- }
-} \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/.classpath b/plugins/org.eclipse.emf.cdo.releng.setup/.classpath
index 64c5e31b7a..791d4f10ba 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/.classpath
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/.classpath
@@ -1,7 +1,17 @@
<?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="con" path="org.eclipse.pde.core.requiredPlugins">
+ <accessrules>
+ <accessrule kind="accessible" pattern="org/eclipse/core/internal/resources/**"/>
+ <accessrule kind="accessible" pattern="org/eclipse/equinox/p2/publisher/**"/>
+ <accessrule kind="accessible" pattern="org/eclipse/equinox/internal/p2/**"/>
+ <accessrule kind="accessible" pattern="org/eclipse/pde/api/**"/>
+ <accessrule kind="accessible" pattern="org/eclipse/egit/core/**"/>
+ <accessrule kind="accessible" pattern="org/eclipse/jgit/**"/>
+ <accessrule kind="accessible" pattern="org/eclipse/ui/internal/progress/**"/>
+ </accessrules>
+ </classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/.refactorings/2013/8/33/refactorings.history b/plugins/org.eclipse.emf.cdo.releng.setup/.refactorings/2013/8/33/refactorings.history
new file mode 100644
index 0000000000..62b43ded3e
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/.refactorings/2013/8/33/refactorings.history
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<session version="1.0">&#x0A;<refactoring comment="Copy 2 elements to &apos;org.eclipse.emf.cdo.releng.workingsets.edit&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Destination element: &apos;org.eclipse.emf.cdo.releng.workingsets.edit&apos;&#x0D;&#x0A;- Original elements:&#x0D;&#x0A; about.html&#x0D;&#x0A; copyright.txt" description="Copy files" destination="=org.eclipse.emf.cdo.releng.workingsets.edit" element1="about.html" element2="copyright.txt" files="2" flags="589830" folders="0" id="org.eclipse.jdt.ui.copy" policy="org.eclipse.jdt.ui.copyResources" stamp="1376496727544" units="0" version="1.0"/>&#x0A;<refactoring comment="Copy 2 elements to &apos;org.eclipse.emf.cdo.releng.workingsets.editor&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Destination element: &apos;org.eclipse.emf.cdo.releng.workingsets.editor&apos;&#x0D;&#x0A;- Original elements:&#x0D;&#x0A; about.html&#x0D;&#x0A; copyright.txt" description="Copy files" destination="=org.eclipse.emf.cdo.releng.workingsets.editor" element1="about.html" element2="copyright.txt" files="2" flags="589830" folders="0" id="org.eclipse.jdt.ui.copy" policy="org.eclipse.jdt.ui.copyResources" stamp="1376496735447" units="0" version="1.0"/>&#x0A;<refactoring accessors="true" comment="Delete 6 elements from project &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original elements:&#x0D;&#x0A; org.eclipse.emf.cdo.releng.setup.ApiBaseline.java&#x0D;&#x0A; org.eclipse.emf.cdo.releng.setup.DirectorCall.java&#x0D;&#x0A; org.eclipse.emf.cdo.releng.setup.GitClone.java&#x0D;&#x0A; org.eclipse.emf.cdo.releng.setup.LinkLocation.java&#x0D;&#x0A; org.eclipse.emf.cdo.releng.setup.ToolInstallation.java&#x0D;&#x0A; org.eclipse.emf.cdo.releng.setup.ToolPreference.java" description="Delete elements" element1="/src&lt;org.eclipse.emf.cdo.releng.setup{LinkLocation.java" element2="/src&lt;org.eclipse.emf.cdo.releng.setup{ApiBaseline.java" element3="/src&lt;org.eclipse.emf.cdo.releng.setup{GitClone.java" element4="/src&lt;org.eclipse.emf.cdo.releng.setup{DirectorCall.java" element5="/src&lt;org.eclipse.emf.cdo.releng.setup{ToolPreference.java" element6="/src&lt;org.eclipse.emf.cdo.releng.setup{ToolInstallation.java" elements="6" flags="589830" id="org.eclipse.jdt.ui.delete" resources="0" stamp="1376557887953" subPackages="false" version="1.0"/>&#x0A;<refactoring comment="Move element &apos;PerformContext.java&apos; to &apos;org.eclipse.emf.cdo.releng.setup/src/org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Destination element: &apos;org.eclipse.emf.cdo.releng.setup/src/org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.emf.cdo.releng.setup.impl.PerformContext.java&apos;&#x0D;&#x0A;- Update references to refactored element" description="Move compilation unit" destination="/src&lt;org.eclipse.emf.cdo.releng.setup" element1="/src&lt;org.eclipse.emf.cdo.releng.setup.impl{PerformContext.java" files="0" flags="589830" folders="0" id="org.eclipse.jdt.ui.move" patterns="*" policy="org.eclipse.jdt.ui.moveResources" qualified="false" references="true" stamp="1376558106375" units="1" version="1.0"/>&#x0A;<refactoring accessors="true" comment="Delete element from project &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl.java&apos;" description="Delete element" element1="/src&lt;org.eclipse.emf.cdo.releng.setup.impl{ApiBaselineImpl.java" elements="1" flags="589830" id="org.eclipse.jdt.ui.delete" resources="0" stamp="1376558816163" subPackages="false" version="1.0"/>&#x0A;<refactoring accessors="true" comment="Delete element from project &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl.java&apos;" description="Delete element" element1="/src&lt;org.eclipse.emf.cdo.releng.setup.impl{DirectorCallImpl.java" elements="1" flags="589830" id="org.eclipse.jdt.ui.delete" resources="0" stamp="1376558819380" subPackages="false" version="1.0"/>&#x0A;<refactoring accessors="true" comment="Delete element from project &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl.java&apos;" description="Delete element" element1="/src&lt;org.eclipse.emf.cdo.releng.setup.impl{GitCloneImpl.java" elements="1" flags="589830" id="org.eclipse.jdt.ui.delete" resources="0" stamp="1376558822308" subPackages="false" version="1.0"/>&#x0A;<refactoring accessors="true" comment="Delete element from project &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl.java&apos;" description="Delete element" element1="/src&lt;org.eclipse.emf.cdo.releng.setup.impl{LinkLocationImpl.java" elements="1" flags="589830" id="org.eclipse.jdt.ui.delete" resources="0" stamp="1376558833716" subPackages="false" version="1.0"/>&#x0A;<refactoring accessors="true" comment="Delete element from project &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl.java&apos;" description="Delete element" element1="/src&lt;org.eclipse.emf.cdo.releng.setup.impl{ToolInstallationImpl.java" elements="1" flags="589830" id="org.eclipse.jdt.ui.delete" resources="0" stamp="1376558838623" subPackages="false" version="1.0"/>&#x0A;<refactoring accessors="true" comment="Delete element from project &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl.java&apos;" description="Delete element" element1="/src&lt;org.eclipse.emf.cdo.releng.setup.impl{ToolPreferenceImpl.java" elements="1" flags="589830" id="org.eclipse.jdt.ui.delete" resources="0" stamp="1376558841344" subPackages="false" version="1.0"/>&#x0A;<refactoring comment="Rename type &apos;org.eclipse.emf.cdo.releng.setup.SetWorkingTask&apos; to &apos;WorkingSetTask&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.emf.cdo.releng.setup.SetWorkingTask&apos;&#x0D;&#x0A;- Renamed element: &apos;org.eclipse.emf.cdo.releng.setup.WorkingSetTask&apos;&#x0D;&#x0A;- Update references to refactored element&#x0D;&#x0A;- Update textual occurrences in comments and strings" description="Rename type &apos;SetWorkingTask&apos;" flags="589830" id="org.eclipse.jdt.ui.rename.type" input="/src&lt;org.eclipse.emf.cdo.releng.setup{SetWorkingTask.java[SetWorkingTask" matchStrategy="1" name="WorkingSetTask" qualified="false" references="true" similarDeclarations="false" stamp="1376562248013" textual="false" version="1.0"/>&#x0A;<refactoring comment="Rename type &apos;org.eclipse.emf.cdo.releng.setup.impl.SetWorkingTaskImpl&apos; to &apos;WorkingSetTaskImpl&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.emf.cdo.releng.setup.impl.SetWorkingTaskImpl&apos;&#x0D;&#x0A;- Renamed element: &apos;org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl&apos;&#x0D;&#x0A;- Update references to refactored element&#x0D;&#x0A;- Update textual occurrences in comments and strings" description="Rename type &apos;SetWorkingTaskImpl&apos;" flags="589830" id="org.eclipse.jdt.ui.rename.type" input="/src&lt;org.eclipse.emf.cdo.releng.setup.impl{SetWorkingTaskImpl.java[SetWorkingTaskImpl" matchStrategy="1" name="WorkingSetTaskImpl" qualified="false" references="true" similarDeclarations="false" stamp="1376562258083" textual="false" version="1.0"/>&#x0A;<refactoring comment="Rename type &apos;org.eclipse.emf.cdo.releng.setup.impl.InstallTaskImpl&apos; to &apos;P2TaskImpl&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.emf.cdo.releng.setup.impl.InstallTaskImpl&apos;&#x0D;&#x0A;- Renamed element: &apos;org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl&apos;&#x0D;&#x0A;- Update references to refactored element&#x0D;&#x0A;- Update textual occurrences in comments and strings" description="Rename type &apos;InstallTaskImpl&apos;" flags="589830" id="org.eclipse.jdt.ui.rename.type" input="/src&lt;org.eclipse.emf.cdo.releng.setup.impl{InstallTaskImpl.java[InstallTaskImpl" matchStrategy="1" name="P2TaskImpl" qualified="false" references="true" similarDeclarations="false" stamp="1376563875710" textual="false" version="1.0"/>&#x0A;<refactoring comment="Rename type &apos;org.eclipse.emf.cdo.releng.setup.InstallTask&apos; to &apos;P2Task&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.emf.cdo.releng.setup.InstallTask&apos;&#x0D;&#x0A;- Renamed element: &apos;org.eclipse.emf.cdo.releng.setup.P2Task&apos;&#x0D;&#x0A;- Update references to refactored element&#x0D;&#x0A;- Update textual occurrences in comments and strings" description="Rename type &apos;InstallTask&apos;" flags="589830" id="org.eclipse.jdt.ui.rename.type" input="/src&lt;org.eclipse.emf.cdo.releng.setup{InstallTask.java[InstallTask" matchStrategy="1" name="P2Task" qualified="false" references="true" similarDeclarations="false" stamp="1376563884187" textual="false" version="1.0"/>&#x0A;<refactoring comment="Rename method &apos;org.eclipse.emf.cdo.releng.setup.PerformContext.log()&apos; to &apos;getLog&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.emf.cdo.releng.setup.PerformContext.log()&apos;&#x0D;&#x0A;- Renamed element: &apos;org.eclipse.emf.cdo.releng.setup.PerformContext.getLog()&apos;&#x0D;&#x0A;- Update references to refactored element" delegate="false" deprecate="false" description="Rename method &apos;log&apos;" flags="589830" id="org.eclipse.jdt.ui.rename.method" input="/src&lt;org.eclipse.emf.cdo.releng.setup{PerformContext.java[PerformContext~log" name="getLog" references="true" stamp="1376568622664" version="1.0"/>&#x0A;<refactoring comment="Rename type &apos;org.eclipse.emf.cdo.releng.setup.PerformContext&apos; to &apos;SetupTaskContext&apos;&#x0D;&#x0A;- Original project: &apos;org.eclipse.emf.cdo.releng.setup&apos;&#x0D;&#x0A;- Original element: &apos;org.eclipse.emf.cdo.releng.setup.PerformContext&apos;&#x0D;&#x0A;- Renamed element: &apos;org.eclipse.emf.cdo.releng.setup.SetupTaskContext&apos;&#x0D;&#x0A;- Update references to refactored element&#x0D;&#x0A;- Update textual occurrences in comments and strings" description="Rename type &apos;PerformContext&apos;" flags="589830" id="org.eclipse.jdt.ui.rename.type" input="/src&lt;org.eclipse.emf.cdo.releng.setup{PerformContext.java[PerformContext" matchStrategy="1" name="SetupTaskContext" qualified="false" references="true" similarDeclarations="false" stamp="1376568653538" textual="false" version="1.0"/>
+</session> \ No newline at end of file
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/.refactorings/2013/8/33/refactorings.index b/plugins/org.eclipse.emf.cdo.releng.setup/.refactorings/2013/8/33/refactorings.index
new file mode 100644
index 0000000000..b069431147
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/.refactorings/2013/8/33/refactorings.index
@@ -0,0 +1,16 @@
+1376496727544 Copy files
+1376496735447 Copy files
+1376557887953 Delete elements
+1376558106375 Move compilation unit
+1376558816163 Delete element
+1376558819380 Delete element
+1376558822308 Delete element
+1376558833716 Delete element
+1376558838623 Delete element
+1376558841344 Delete element
+1376562248013 Rename type 'SetWorkingTask'
+1376562258083 Rename type 'SetWorkingTaskImpl'
+1376563875710 Rename type 'InstallTaskImpl'
+1376563884187 Rename type 'InstallTask'
+1376568622664 Rename method 'log'
+1376568653538 Rename type 'PerformContext'
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.setup/.settings/org.eclipse.core.resources.prefs
index 45834dcf98..6fe08a4a46 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/.settings/org.eclipse.core.resources.prefs
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/.settings/org.eclipse.core.resources.prefs
@@ -1,5 +1,5 @@
eclipse.preferences.version=1
encoding/.project=UTF-8
-encoding//model/Configuration.xmi=ASCII
+encoding//model/Configuration.setup=UTF-8
encoding//model/setup.ecore=UTF-8
encoding//model/setup.ecorediag=UTF-8
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.setup/META-INF/MANIFEST.MF
index e0540563db..200fb3f7ec 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/META-INF/MANIFEST.MF
@@ -6,14 +6,51 @@ Bundle-ClassPath: .
Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Localization: plugin
-Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.cdo.releng.workingsets;bundle-version="[1.0.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)"
+Require-Bundle: org.eclipse.net4j.util;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.emf.cdo.releng.workingsets;visibility:=reexport;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.cdo.releng.predicates;visibility:=reexport;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.ecore;visibility:=reexport;bundle-version="[2.5.0,3.0.0)",
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)",
+ org.eclipse.core.resources;resolution:=optional;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.core.variables;resolution:=optional;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.pde.core;resolution:=optional;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.pde.api.tools;resolution:=optional;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.team.ui;resolution:=optional;bundle-version="[3.5.0,4.0.0)",
+ javaewah;resolution:=optional;bundle-version="[0.0.0,1.0.0)",
+ org.eclipse.jgit;resolution:=optional;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.egit;resolution:=optional;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.egit.core;resolution:=optional;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.egit.ui;resolution:=optional;bundle-version="[3.0.0,4.0.0)",
+ org.eclipse.emf.edit.ui;resolution:=optional;bundle-version="[2.5.0,3.0.0)",
+ org.eclipse.ecf.provider.filetransfer;resolution:=optional;bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.ecf.filetransfer;resolution:=optional;bundle-version="[5.0.0,6.0.0)",
+ org.eclipse.ecf.identity;resolution:=optional;bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.ecf;resolution:=optional;bundle-version="[3.2.0,4.0.0)",
+ org.eclipse.buckminster.sax;resolution:=optional;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.buckminster.cmdline;resolution:=optional;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.buckminster.download;resolution:=optional;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.buckminster.runtime;resolution:=optional;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.buckminster.core;resolution:=optional;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.buckminster.pde;resolution:=optional;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.equinox.p2.core;resolution:=optional;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.equinox.p2.ui;resolution:=optional;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.equinox.p2.metadata;resolution:=optional;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.equinox.p2.repository;resolution:=optional;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.equinox.p2.artifact.repository;resolution:=optional;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.equinox.p2.metadata.repository;resolution:=optional;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.equinox.p2.console;resolution:=optional;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.equinox.p2.publisher;resolution:=optional;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.equinox.p2.publisher.eclipse;resolution:=optional;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.equinox.p2.director.app;resolution:=optional;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.equinox.p2.operations;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.equinox.p2.engine;bundle-version="[2.0.0,3.0.0)"
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ActivationPolicy: lazy
-Export-Package: org.eclipse.emf.cdo.releng.setup;version="1.0.0",
- org.eclipse.emf.cdo.releng.setup.helper;x-friends:="org.eclipse.emf.cdo.releng.setup.ide,org.eclipse.emf.cdo.releng.setup.product,org.eclipse.emf.cdo.releng.setup.ui";version="1.0.0",
+Export-Package: org.eclipse.emf.cdo.releng.internal.setup;x-friends:="org.eclipse.emf.cdo.releng.setup.product,org.eclipse.emf.cdo.releng.setup.editor";version="1.0.0",
+ org.eclipse.emf.cdo.releng.internal.setup.ui;x-friends:="org.eclipse.emf.cdo.releng.setup.product,org.eclipse.emf.cdo.releng.setup.editor";version="1.0.0",
+ org.eclipse.emf.cdo.releng.setup;version="1.0.0",
org.eclipse.emf.cdo.releng.setup.impl;version="1.0.0",
- org.eclipse.emf.cdo.releng.setup.util;version="1.0.0"
-Bundle-Activator: org.eclipse.emf.cdo.releng.setup.helper.Activator
+ org.eclipse.emf.cdo.releng.setup.util;version="1.0.0",
+ org.eclipse.emf.cdo.releng.setup.util.log;version="1.0.0"
+Bundle-Activator: org.eclipse.emf.cdo.releng.internal.setup.Activator
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ide/Setup IDE.launch b/plugins/org.eclipse.emf.cdo.releng.setup/Setup IDE.launch
index 803e48a022..f7e9bfb353 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ide/Setup IDE.launch
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/Setup IDE.launch
@@ -11,8 +11,9 @@
<booleanAttribute key="clearwslog" value="false"/>
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/Setup IDE"/>
<booleanAttribute key="default" value="false"/>
+<booleanAttribute key="generateProfile" value="true"/>
<booleanAttribute key="includeOptional" value="true"/>
-<stringAttribute key="location" value="D:\sandbox\tmp4\emf\master\ws"/>
+<stringAttribute key="location" value="D:\sandbox\tmp7\cdo\master\ws"/>
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
@@ -21,11 +22,11 @@
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.p2.mirrors=false -Declipse.p2.unsignedPolicy=allow -Xms1024m -Xmx2500m -XX:MaxPermSize=512m&#13;&#10;-Dsetup.uri=file:/${project_loc:/org.eclipse.emf.cdo.releng.setup}/model/Configuration.xmi&#13;&#10;-Dorg.eclipse.emf.cdo.releng.setup.ide=true"/>
+<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Declipse.p2.mirrors=false -Declipse.p2.unsignedPolicy=allow -Xms1024m -Xmx2500m -XX:MaxPermSize=512m&#13;&#10;-Dorg.eclipse.emf.cdo.releng.setup.ide=true&#13;&#10;&quot;-Djgit.gitprefix=C:\Program Files (x86)\Git&quot;&#13;&#10;-Dorg.eclipse.buckminster.core.bundle.pool=D:/sandbox/tmp7/.p2pool-tp"/>
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="org.eclipse.platform.ide"/>
<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,com.jcraft.jsch@default:default,javaewah@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.ant@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.commons.codec@default:default,org.apache.commons.logging@default:default,org.apache.httpcomponents.httpclient@default:default,org.apache.httpcomponents.httpcore@default:default,org.apache.lucene.analysis@default:default,org.apache.lucene.core@default:default,org.eclipse.ant.core@default:default,org.eclipse.ant.launching@default:default,org.eclipse.ant.ui@default:default,org.eclipse.buckminster.ant@default:default,org.eclipse.buckminster.cmdline@default:default,org.eclipse.buckminster.core@default:default,org.eclipse.buckminster.download@default:default,org.eclipse.buckminster.executor@default:default,org.eclipse.buckminster.fetcher@default:default,org.eclipse.buckminster.generic.ui@default:default,org.eclipse.buckminster.generic@default:default,org.eclipse.buckminster.git@default:default,org.eclipse.buckminster.installer@default:default,org.eclipse.buckminster.jarprocessor@default:default,org.eclipse.buckminster.jdt@default:default,org.eclipse.buckminster.junit@default:default,org.eclipse.buckminster.model.common.edit@default:default,org.eclipse.buckminster.model.common@default:default,org.eclipse.buckminster.mspec.edit@default:default,org.eclipse.buckminster.mspec.editor@default:default,org.eclipse.buckminster.mspec@default:default,org.eclipse.buckminster.osgi.filter@default:default,org.eclipse.buckminster.pde.ui@default:default,org.eclipse.buckminster.pde@default:default,org.eclipse.buckminster.rmap.edit@default:default,org.eclipse.buckminster.rmap.editor@default:default,org.eclipse.buckminster.rmap.pde.edit@default:default,org.eclipse.buckminster.rmap.pde@default:default,org.eclipse.buckminster.rmap@default:default,org.eclipse.buckminster.runtime@default:default,org.eclipse.buckminster.sax@default:default,org.eclipse.buckminster.ui@default:default,org.eclipse.compare.core@default:default,org.eclipse.compare@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.externaltools@default:default,org.eclipse.core.filebuffers@default:default,org.eclipse.core.filesystem.win32.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.net.win32.x86_64@default:false,org.eclipse.core.net@default:default,org.eclipse.core.resources.win32.x86_64@default:false,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime.compatibility@default:default,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.debug.core@default:default,org.eclipse.debug.ui@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.ecf.filetransfer@default:default,org.eclipse.ecf.identity@default:default,org.eclipse.ecf.provider.filetransfer.httpclient4.ssl@default:false,org.eclipse.ecf.provider.filetransfer.httpclient4@default:default,org.eclipse.ecf.provider.filetransfer.ssl@default:false,org.eclipse.ecf.provider.filetransfer@default:default,org.eclipse.ecf.ssl@default:false,org.eclipse.ecf@default:default,org.eclipse.egit.core@default:default,org.eclipse.egit.fetchfactory@default:default,org.eclipse.egit.ui@default:default,org.eclipse.egit@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.bidi@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.frameworkadmin.equinox@default:default,org.eclipse.equinox.frameworkadmin@default:default,org.eclipse.equinox.http.jetty@default:default,org.eclipse.equinox.http.servlet@default:default,org.eclipse.equinox.p2.artifact.repository@default:default,org.eclipse.equinox.p2.console@default:default,org.eclipse.equinox.p2.core@default:default,org.eclipse.equinox.p2.director.app@default:default,org.eclipse.equinox.p2.director@default:default,org.eclipse.equinox.p2.directorywatcher@default:default,org.eclipse.equinox.p2.engine@default:default,org.eclipse.equinox.p2.extensionlocation@default:default,org.eclipse.equinox.p2.garbagecollector@default:default,org.eclipse.equinox.p2.jarprocessor@default:default,org.eclipse.equinox.p2.metadata.repository@default:default,org.eclipse.equinox.p2.metadata@default:default,org.eclipse.equinox.p2.operations@default:default,org.eclipse.equinox.p2.publisher.eclipse@default:default,org.eclipse.equinox.p2.publisher@default:default,org.eclipse.equinox.p2.ql@default:default,org.eclipse.equinox.p2.reconciler.dropins@default:default,org.eclipse.equinox.p2.repository.tools@default:default,org.eclipse.equinox.p2.repository@default:default,org.eclipse.equinox.p2.touchpoint.eclipse@default:default,org.eclipse.equinox.p2.touchpoint.natives@default:default,org.eclipse.equinox.p2.transport.ecf@default:default,org.eclipse.equinox.p2.ui.importexport@default:default,org.eclipse.equinox.p2.ui.sdk.scheduler@default:default,org.eclipse.equinox.p2.ui.sdk@default:default,org.eclipse.equinox.p2.ui@default:default,org.eclipse.equinox.p2.updatechecker@default:default,org.eclipse.equinox.p2.updatesite@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.security.ui@default:default,org.eclipse.equinox.security.win32.x86_64@default:false,org.eclipse.equinox.security@default:default,org.eclipse.equinox.simpleconfigurator.manipulator@default:default,org.eclipse.equinox.simpleconfigurator@1:true,org.eclipse.equinox.util@default:default,org.eclipse.help.base@default:default,org.eclipse.help.ui@default:default,org.eclipse.help@default:default,org.eclipse.jdt.compiler.apt@default:false,org.eclipse.jdt.compiler.tool@default:false,org.eclipse.jdt.core.manipulation@default:default,org.eclipse.jdt.core@default:default,org.eclipse.jdt.debug.ui@default:default,org.eclipse.jdt.debug@default:default,org.eclipse.jdt.junit.core@default:default,org.eclipse.jdt.junit.runtime@default:default,org.eclipse.jdt.junit@default:default,org.eclipse.jdt.launching@default:default,org.eclipse.jdt.ui@default:default,org.eclipse.jdt@default:default,org.eclipse.jetty.continuation@default:default,org.eclipse.jetty.http@default:default,org.eclipse.jetty.io@default:default,org.eclipse.jetty.security@default:default,org.eclipse.jetty.server@default:default,org.eclipse.jetty.servlet@default:default,org.eclipse.jetty.util@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.jgit@default:default,org.eclipse.jsch.core@default:default,org.eclipse.jsch.ui@default:default,org.eclipse.ltk.core.refactoring@default:default,org.eclipse.ltk.ui.refactoring@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi@-1:true,org.eclipse.pde.api.tools.ui@default:default,org.eclipse.pde.api.tools@default:default,org.eclipse.pde.build@default:default,org.eclipse.pde.core@default:default,org.eclipse.pde.ds.core@default:default,org.eclipse.pde.ds.ui@default:default,org.eclipse.pde.junit.runtime@default:default,org.eclipse.pde.launching@default:default,org.eclipse.pde.runtime@default:default,org.eclipse.pde.ua.core@default:default,org.eclipse.pde.ua.ui@default:default,org.eclipse.pde.ui@default:default,org.eclipse.pde@default:default,org.eclipse.platform@default:default,org.eclipse.search@default:default,org.eclipse.swt.win32.win32.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.team.core@default:default,org.eclipse.team.ui@default:default,org.eclipse.text@default:default,org.eclipse.ui.browser@default:default,org.eclipse.ui.cheatsheets@default:default,org.eclipse.ui.console@default:default,org.eclipse.ui.editors@default:default,org.eclipse.ui.externaltools@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.ide.application@default:default,org.eclipse.ui.ide@default:default,org.eclipse.ui.intro.universal@default:default,org.eclipse.ui.intro@default:default,org.eclipse.ui.navigator.resources@default:default,org.eclipse.ui.navigator@default:default,org.eclipse.ui.net@default:default,org.eclipse.ui.trace@default:default,org.eclipse.ui.views.log@default:default,org.eclipse.ui.views.properties.tabbed@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.win32@default:false,org.eclipse.ui.workbench.texteditor@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.eclipse.update.configurator@3:true,org.hamcrest.core*1.3.0.v201303031735@default:default,org.junit@default:default,org.objectweb.asm@default:default,org.sat4j.core@default:default,org.sat4j.pb@default:default,org.w3c.css.sac@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.cdo.releng.setup.edit@default:default,org.eclipse.emf.cdo.releng.setup.editor@default:default,org.eclipse.emf.cdo.releng.setup.ide@default:default,org.eclipse.emf.cdo.releng.setup.ui@default:default,org.eclipse.emf.cdo.releng.setup@default:default,org.eclipse.emf.cdo.releng.workingsets.edit@default:default,org.eclipse.emf.cdo.releng.workingsets.editor@default:default,org.eclipse.emf.cdo.releng.workingsets@default:default,org.eclipse.net4j.util@default:default"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.cdo.ecore.retrofit@default:false,org.eclipse.emf.cdo.releng.predicates.edit@default:default,org.eclipse.emf.cdo.releng.predicates@default:default,org.eclipse.emf.cdo.releng.preferences.edit@default:default,org.eclipse.emf.cdo.releng.preferences.editor@default:default,org.eclipse.emf.cdo.releng.preferences@default:default,org.eclipse.emf.cdo.releng.projectconfig.edit@default:default,org.eclipse.emf.cdo.releng.projectconfig.editor@default:default,org.eclipse.emf.cdo.releng.projectconfig@default:default,org.eclipse.emf.cdo.releng.setup.edit@default:default,org.eclipse.emf.cdo.releng.setup.editor@default:default,org.eclipse.emf.cdo.releng.setup@default:default,org.eclipse.emf.cdo.releng.ui@default:default,org.eclipse.emf.cdo.releng.workingsets.edit@default:default,org.eclipse.emf.cdo.releng.workingsets.editor@default:default,org.eclipse.emf.cdo.releng.workingsets@default:default,org.eclipse.net4j.util@default:default"/>
<booleanAttribute key="show_selected_only" value="false"/>
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
<booleanAttribute key="tracing" value="false"/>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/build.properties b/plugins/org.eclipse.emf.cdo.releng.setup/build.properties
index ad4a3fbaf3..3f903c92ec 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/build.properties
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/build.properties
@@ -17,7 +17,8 @@ bin.includes = plugin.xml,\
about.html,\
copyright.txt,\
plugin.properties,\
- model/
+ model/,\
+ icons/
src.includes = about.html,\
copyright.txt
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/icons/install_wiz.gif b/plugins/org.eclipse.emf.cdo.releng.setup/icons/install_wiz.gif
index 7eee7c3a70..7eee7c3a70 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/icons/install_wiz.gif
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/icons/install_wiz.gif
Binary files differ
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.setup b/plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.setup
new file mode 100644
index 0000000000..1a7449a5e7
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.setup
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<setup:Configuration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:setup="http://www.eclipse.org/CDO/releng/setup/1.0">
+ <projects href="../../org.eclipse.emf.cdo.releng/local.setup#/"/>
+ <projects href="http://git.eclipse.org/c/emf/org.eclipse.emf.git/plain/releng/org.eclipse.emf.releng.setup.core/core.setup#/"/>
+ <eclipseVersions version="3.8">
+ <setupTasks xsi:type="setup:P2Task">
+ <p2Repositories url="http://download.eclipse.org/eclipse/updates/3.8"/>
+ <p2Repositories url="${releng.url}"/>
+ <installableUnits id="org.eclipse.sdk.ide"/>
+ <installableUnits id="org.eclipse.emf.cdo.releng.setup.editor.feature.group"/>
+ </setupTasks>
+ <setupTasks xsi:type="setup:EclipseIniTask" requirements="//@eclipseVersions.0/@setupTasks.0" option="--launcher.XXMaxPermSize" value="512m"/>
+ <setupTasks xsi:type="setup:EclipseIniTask" requirements="//@eclipseVersions.0/@setupTasks.0" option="-Dorg.eclipse.emf.cdo.releng.setup.ide" value="=true" vm="true"/>
+ </eclipseVersions>
+ <eclipseVersions version="4.3">
+ <setupTasks xsi:type="setup:P2Task">
+ <p2Repositories url="http://download.eclipse.org/releases/kepler"/>
+ <p2Repositories url="${releng.url}"/>
+ <installableUnits id="org.eclipse.sdk.ide"/>
+ <installableUnits id="org.eclipse.emf.cdo.releng.setup.editor.feature.group"/>
+ </setupTasks>
+ <setupTasks xsi:type="setup:EclipseIniTask" requirements="//@eclipseVersions.1/@setupTasks.0" option="--launcher.XXMaxPermSize" value="512m"/>
+ <setupTasks xsi:type="setup:EclipseIniTask" requirements="//@eclipseVersions.1/@setupTasks.0" option="-Dorg.eclipse.emf.cdo.releng.setup.ide" value="=true" vm="true"/>
+ </eclipseVersions>
+</setup:Configuration>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.xmi b/plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.xmi
deleted file mode 100644
index ac1486eda3..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup/model/Configuration.xmi
+++ /dev/null
@@ -1,162 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<setup:Configuration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:setup="http://www.eclipse.org/CDO/releng/setup/1.0" xmlns:workingsets="http://www.eclipse.org/CDO/releng/workingsets/1.0">
- <projects name="EMF">
- <branches name="master" mspecFilePath="emf/releng/org.eclipse.emf.releng.setup.core/buckminster.mspec">
- <directorCalls>
- <installableUnits id="org.eclipse.emf.sdk.feature.group"/>
- <installableUnits id="org.eclipse.xsd.sdk.feature.group"/>
- <installableUnits id="org.eclipse.emf.cdo.releng.version.feature.group"/>
- <installableUnits id="org.eclipse.emf.ecoretools.sdk.feature.group"/>
- <p2Repositories url="http://download.eclipse.org/releases/kepler"/>
- <p2Repositories url="http://download.eclipse.org/modeling/emf/cdo/updates/integration"/>
- </directorCalls>
- <gitClones name="emf" remoteURI="ssh://git.eclipse.org:29418/emf/org.eclipse.emf" checkoutBranch="master"/>
- <gitClones name="xsd" remoteURI="ssh://git.eclipse.org/gitroot/xsd/org.eclipse.xsd.git" checkoutBranch="master"/>
- </branches>
- <workingSetGroup>
- <workingSets name="XSD Examples">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.xsd\.example[^-]*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.xsd\.cheatsheets"/>
- </workingSets>
- <workingSets name="XSD">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.xsd[^-]*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.mapping\.xsd2ecore[^-]*"/>
- </workingSets>
- <workingSets name="XSD Features">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.xsd.*-feature"/>
- </workingSets>
- <workingSets name="EMF ODA">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.oda[^-]*"/>
- </workingSets>
- <workingSets name="EMF ODA Features">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.oda.*-feature"/>
- </workingSets>
- <workingSets name="EMF Features">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf.*-feature"/>
- </workingSets>
- <workingSets name="EMF Releng">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.releng[^-]*"/>
- </workingSets>
- <workingSets name="EMF Examples">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.example[^-]*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.java[^-]*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.exporter\.html[^-]*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.activities[^-]*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cheatsheets[^-]*"/>
- </workingSets>
- <workingSets name="EMF Tests">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.test[^-]*"/>
- </workingSets>
- <workingSets name="EMF">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf[^-]*"/>
- </workingSets>
- </workingSetGroup>
- </projects>
- <projects name="CDO">
- <directorCalls>
- <installableUnits id="org.eclipse.pde.api.tools.ee.feature.feature.group"/>
- <installableUnits id="org.eclipse.emf.cdo.releng.launches.feature.group"/>
- <installableUnits id="org.eclipse.emf.cdo.releng.manifests.feature.group"/>
- <installableUnits id="org.eclipse.emf.cdo.releng.projectcopy.feature.group"/>
- <installableUnits id="org.eclipse.emf.cdo.releng.relativepaths.feature.group"/>
- <installableUnits id="org.eclipse.emf.cdo.releng.tasks.feature.group"/>
- <installableUnits id="org.eclipse.emf.cdo.releng.version.feature.group"/>
- <installableUnits id="org.eclipse.emf.cdo.releng.workingsets.feature.group"/>
- <installableUnits id="org.eclipse.emf.sdk.feature.group"/>
- <installableUnits id="org.eclipse.emf.ecoretools.sdk.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.github.feature.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.hudson.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.ide_feature.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.java_feature.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.pde_feature.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.team_feature.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.gerrit.feature.feature.group"/>
- <installableUnits id="org.eclipse.mylyn_feature.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.bugzilla_feature.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.git.feature.group"/>
- <installableUnits id="org.eclipse.egit.mylyn.feature.group"/>
- <installableUnits id="org.eclipse.net4j.util.ui.feature.group"/>
- <p2Repositories url="http://download.eclipse.org/releases/kepler"/>
- <p2Repositories url="http://download.eclipse.org/modeling/emf/cdo/updates/integration"/>
- <p2Repositories url="http://download.eclipse.org/mylyn/snapshots/weekly"/>
- </directorCalls>
- <toolPreferences key="instance/org.eclipse.ui.ide/EXIT_PROMPT_ON_CLOSE_LAST_WINDOW" value="false"/>
- <toolPreferences key="instance/org.eclipse.jdt.launching/org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE" value="ignore"/>
- <toolPreferences key="instance/org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.problem.unclosedCloseable" value="ignore"/>
- <toolPreferences key="instance/org.eclipse.pde/compilers.f.unresolved-features" value="2"/>
- <branches name="master" apiBaseline="//@projects.1/@apiBaselines.0" mspecFilePath="cdo/plugins/org.eclipse.emf.cdo.releng/local.mspec" cloneVariableName="git.clone">
- <directorCalls>
- <installableUnits id="org.eclipse.emf.sdk.feature.group"/>
- <installableUnits id="org.eclipse.gmf.runtime.notation.sdk.feature.group"/>
- <installableUnits id="org.eclipse.gmf.runtime.sdk.feature.group"/>
- <installableUnits id="org.eclipse.gmf.sdk.feature.group"/>
- <p2Repositories url="http://download.eclipse.org/releases/kepler"/>
- </directorCalls>
- <gitClones name="cdo" remoteURI="ssh://git.eclipse.org:29418/cdo/cdo" checkoutBranch="master"/>
- </branches>
- <branches name="4.2" apiBaseline="//@projects.1/@apiBaselines.0" mspecFilePath="cdo/plugins/org.eclipse.emf.cdo.releng/local.mspec" cloneVariableName="git.clone">
- <directorCalls>
- <installableUnits id="org.eclipse.emf.sdk.feature.group"/>
- <installableUnits id="org.eclipse.gmf.runtime.notation.sdk.feature.group"/>
- <installableUnits id="org.eclipse.gmf.runtime.sdk.feature.group"/>
- <installableUnits id="org.eclipse.gmf.sdk.feature.group"/>
- <p2Repositories url="http://download.eclipse.org/releases/kepler"/>
- </directorCalls>
- <gitClones name="cdo" remoteURI="ssh://git.eclipse.org:29418/cdo/cdo" checkoutBranch="streams/4.2-maintenance"/>
- </branches>
- <apiBaselines version="4.2" zipLocation="http://sourceforge.net/projects/net4j/files/Baselines/emf-cdo-4.2-baseline.zip/download"/>
- <workingSetGroup>
- <workingSets name="Features">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo.*-feature"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j.*-feature"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.gastro.*-feature"/>
- </workingSets>
- <workingSets name="Infrastructure">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng\.promotion.*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng\.doc\.supplemental.*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="cdo\.www.*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.simrel\.build.*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="com\.ibm\.db2\.jcc.*"/>
- </workingSets>
- <workingSets name="Releng">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng.*"/>
- </workingSets>
- <workingSets name="CDO Dawn">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.dawn.*"/>
- </workingSets>
- <workingSets name="CDO Tests">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf.cdo\.tests.*"/>
- </workingSets>
- <workingSets name="CDO Examples">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.examples.*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.gastro.*"/>
- </workingSets>
- <workingSets name="CDO">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo.*"/>
- </workingSets>
- <workingSets name="Net4j DB">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j\.db.*"/>
- </workingSets>
- <workingSets name="Net4j Examples">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j\.examples.*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j\.buddies.*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j\.jms.*"/>
- </workingSets>
- <workingSets name="Net4j">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j.*"/>
- </workingSets>
- </workingSetGroup>
- </projects>
- <eclipseVersions version="3.8">
- <directorCall>
- <installableUnits id="org.eclipse.sdk.ide"/>
- <p2Repositories url="http://download.eclipse.org/eclipse/updates/3.8"/>
- </directorCall>
- </eclipseVersions>
- <eclipseVersions version="4.3">
- <directorCall>
- <installableUnits id="org.eclipse.sdk.ide"/>
- <p2Repositories url="http://download.eclipse.org/releases/kepler"/>
- </directorCall>
- </eclipseVersions>
-</setup:Configuration>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/model/setup-rcp.genmodel b/plugins/org.eclipse.emf.cdo.releng.setup/model/setup-rcp.genmodel
new file mode 100644
index 0000000000..758303bdc1
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/model/setup-rcp.genmodel
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.cdo.releng.setup/src" creationIcons="false"
+ editorDirectory="/org.eclipse.emf.cdo.releng.setup.editor.rcp/src" modelPluginID="org.eclipse.emf.cdo.releng.setup"
+ modelName="Setup" editorPluginClass="org.eclipse.emf.cdo.releng.setup.rcp.presentation.SetupEditorPlugin"
+ rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" codeFormatting="true"
+ testsDirectory="" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0"
+ copyrightFields="false" editorPluginID="org.eclipse.emf.cdo.releng.setup.editor.rcp"
+ optimizedHasChildren="true" runtimeVersion="2.5" usedGenPackages="../../org.eclipse.emf.cdo.releng.workingsets/model/workingsets.genmodel#//workingsets"
+ runtimePlatform="RCP" importOrganizing="true">
+ <foreignModel>setup.ecore</foreignModel>
+ <genPackages prefix="Setup" basePackage="org.eclipse.emf.cdo.releng" disposableProviderFactory="true"
+ presentationPackageSuffix="rcp.presentation" multipleEditorPages="false" ecorePackage="setup.ecore#/">
+ <genDataTypes ecoreDataType="setup.ecore#//URI"/>
+ <genClasses ecoreClass="setup.ecore#//Preferences">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/userName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/installFolder"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/gitPrefix"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Preferences/linkLocations"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//LinkLocation" labelFeature="#//setup/LinkLocation/path">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//LinkLocation/path"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//LinkLocation/name"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//ToolInstallation">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//ToolInstallation/directorCalls"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//ToolInstallation/toolPreferences"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//ToolPreference">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ToolPreference/key"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ToolPreference/value"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//EclipseVersion">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//EclipseVersion/configuration"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//EclipseVersion/version"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//EclipseVersion/directorCall"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//DirectorCall">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//DirectorCall/installableUnits"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//DirectorCall/p2Repositories"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//InstallableUnit">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//InstallableUnit/directorCall"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//InstallableUnit/id"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//P2Repository">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//P2Repository/directorCall"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//P2Repository/url"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//Configuration">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Configuration/projects"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Configuration/eclipseVersions"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//Project">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//Project/configuration"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Project/branches"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Project/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Project/apiBaselines"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Project/workingSetGroup"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//Branch">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//Branch/project"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Branch/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Branch/gitClones"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference setup.ecore#//Branch/apiBaseline"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Branch/mspecFilePath"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Branch/cloneVariableName"/>
+ <genOperations ecoreOperation="setup.ecore#//Branch/isInstalled">
+ <genParameters ecoreParameter="setup.ecore#//Branch/isInstalled/installFolder"/>
+ </genOperations>
+ <genOperations ecoreOperation="setup.ecore#//Branch/getURI">
+ <genParameters ecoreParameter="setup.ecore#//Branch/getURI/installFolder"/>
+ </genOperations>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//ApiBaseline">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//ApiBaseline/project"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ApiBaseline/version"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ApiBaseline/zipLocation"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//GitClone" labelFeature="#//setup/GitClone/remoteURI">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//GitClone/branch"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitClone/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitClone/remoteURI"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitClone/checkoutBranch"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//Setup">
+ <genFeatures notify="false" children="true" createChild="false" propertySortChoices="true"
+ ecoreFeature="ecore:EReference setup.ecore#//Setup/branch"/>
+ <genFeatures notify="false" children="true" createChild="false" propertySortChoices="true"
+ ecoreFeature="ecore:EReference setup.ecore#//Setup/eclipseVersion"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Setup/preferences"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Setup/updateLocations"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecore b/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecore
index 2263c5de9e..7bbd146d6f 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecore
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecore
@@ -1,49 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="setup" nsURI="http://www.eclipse.org/CDO/releng/setup/1.0" nsPrefix="setup">
- <eClassifiers xsi:type="ecore:EClass" name="Preferences" eSuperTypes="#//ToolInstallation">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="userName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="installFolder" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="gitPrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="linkLocations" upperBound="-1"
- eType="#//LinkLocation" containment="true"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="LinkLocation">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ToolInstallation" abstract="true">
- <eStructuralFeatures xsi:type="ecore:EReference" name="directorCalls" upperBound="-1"
- eType="#//DirectorCall" containment="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="toolPreferences" upperBound="-1"
- eType="#//ToolPreference" containment="true"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ToolPreference">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="EclipseVersion">
+ <eClassifiers xsi:type="ecore:EClass" name="EclipseVersion" eSuperTypes="#//ConfigurableItem">
<eStructuralFeatures xsi:type="ecore:EReference" name="configuration" eType="#//Configuration"
eOpposite="#//Configuration/eclipseVersions"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="directorCall" lowerBound="1"
- eType="#//DirectorCall" containment="true"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="DirectorCall">
- <eStructuralFeatures xsi:type="ecore:EReference" name="installableUnits" lowerBound="1"
- upperBound="-1" eType="#//InstallableUnit" containment="true" eOpposite="#//InstallableUnit/directorCall"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="p2Repositories" lowerBound="1"
- upperBound="-1" eType="#//P2Repository" containment="true" eOpposite="#//P2Repository/directorCall"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="InstallableUnit">
- <eStructuralFeatures xsi:type="ecore:EReference" name="directorCall" eType="#//DirectorCall"
- eOpposite="#//DirectorCall/installableUnits"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="P2Repository">
- <eStructuralFeatures xsi:type="ecore:EReference" name="directorCall" eType="#//DirectorCall"
- eOpposite="#//DirectorCall/p2Repositories"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="url" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Configuration">
<eStructuralFeatures xsi:type="ecore:EReference" name="projects" lowerBound="1"
@@ -51,55 +12,143 @@
<eStructuralFeatures xsi:type="ecore:EReference" name="eclipseVersions" lowerBound="1"
upperBound="-1" eType="#//EclipseVersion" containment="true" eOpposite="#//EclipseVersion/configuration"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Project" eSuperTypes="#//ToolInstallation">
+ <eClassifiers xsi:type="ecore:EClass" name="ConfigurableItem" abstract="true" eSuperTypes="#//SetupTaskContainer"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Project" eSuperTypes="#//ConfigurableItem">
<eStructuralFeatures xsi:type="ecore:EReference" name="configuration" eType="#//Configuration"
- eOpposite="#//Configuration/projects"/>
+ transient="true" eOpposite="#//Configuration/projects"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="branches" lowerBound="1"
upperBound="-1" eType="#//Branch" containment="true" eOpposite="#//Branch/project"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="apiBaselines" upperBound="-1"
- eType="#//ApiBaseline" containment="true" eOpposite="#//ApiBaseline/project"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="workingSetGroup" eType="ecore:EClass ../../org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore#//WorkingSetGroup"
- containment="true"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Branch" eSuperTypes="#//ToolInstallation">
- <eOperations name="isInstalled" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eParameters name="installFolder" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eOperations>
- <eOperations name="getURI" eType="#//URI">
- <eParameters name="installFolder" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eOperations>
+ <eClassifiers xsi:type="ecore:EClass" name="Branch" eSuperTypes="#//ConfigurableItem">
<eStructuralFeatures xsi:type="ecore:EReference" name="project" eType="#//Project"
eOpposite="#//Project/branches"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="gitClones" lowerBound="1"
- upperBound="-1" eType="#//GitClone" containment="true" eOpposite="#//GitClone/branch"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="apiBaseline" eType="#//ApiBaseline"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="mspecFilePath" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="cloneVariableName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="ApiBaseline">
- <eStructuralFeatures xsi:type="ecore:EReference" name="project" eType="#//Project"
- eOpposite="#//Project/apiBaselines"/>
+ <eClassifiers xsi:type="ecore:EClass" name="Preferences" eSuperTypes="#//SetupTaskContainer">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="userName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="installFolder" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="gitPrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Setup">
+ <eOperations name="getSetupTasks" upperBound="-1" eType="#//SetupTask">
+ <eParameters name="filterRestrictions" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ <eParameters name="trigger" eType="#//Trigger"/>
+ </eOperations>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="branch" lowerBound="1"
+ eType="#//Branch"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="eclipseVersion" lowerBound="1"
+ eType="#//EclipseVersion"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="preferences" lowerBound="1"
+ eType="#//Preferences"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SetupTask" abstract="true">
+ <eOperations name="requires" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
+ <eParameters name="setupTask" eType="#//SetupTask"/>
+ </eOperations>
+ <eOperations name="getValidTriggers" lowerBound="1" eType="#//TriggerSet"/>
+ <eOperations name="getTriggers" lowerBound="1" eType="#//TriggerSet"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="requirements" upperBound="-1"
+ eType="#//SetupTask"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="restrictions" upperBound="-1"
+ eType="#//ConfigurableItem"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="scope" eType="#//SetupTaskScope"
+ changeable="false" volatile="true" transient="true" derived="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="excludedTriggers" lowerBound="1"
+ eType="#//TriggerSet" defaultValueLiteral=""/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="SetupTaskContainer" abstract="true">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="setupTasks" upperBound="-1"
+ eType="#//SetupTask" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="CompoundSetupTask" eSuperTypes="#//SetupTask #//SetupTaskContainer">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="OneTimeSetupTask" abstract="true" eSuperTypes="#//SetupTask">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EclipseIniTask" eSuperTypes="#//SetupTask">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="option" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="vm" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LinkLocationTask" eSuperTypes="#//SetupTask">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="path" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="P2Task" eSuperTypes="#//SetupTask">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="p2Repositories" lowerBound="1"
+ upperBound="-1" eType="#//P2Repository" containment="true" eOpposite="#//P2Repository/p2Task"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="installableUnits" lowerBound="1"
+ upperBound="-1" eType="#//InstallableUnit" containment="true" eOpposite="#//InstallableUnit/p2Task"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="InstallableUnit">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="p2Task" eType="#//P2Task"
+ eOpposite="#//P2Task/installableUnits"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="P2Repository">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="p2Task" eType="#//P2Task"
+ eOpposite="#//P2Task/p2Repositories"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="url" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="BuckminsterImportTask" eSuperTypes="#//SetupTask">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="mspec" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetPlatform" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="bundlePool" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ApiBaselineTask" eSuperTypes="#//SetupTask">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="zipLocation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="GitClone">
- <eStructuralFeatures xsi:type="ecore:EReference" name="branch" eType="#//Branch"
- eOpposite="#//Branch/gitClones"/>
+ <eClassifiers xsi:type="ecore:EClass" name="GitCloneTask" eSuperTypes="#//SetupTask">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="remoteName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
+ defaultValueLiteral="origin"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="remoteURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="checkoutBranch" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Setup">
- <eStructuralFeatures xsi:type="ecore:EReference" name="branch" lowerBound="1"
- eType="#//Branch"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="eclipseVersion" lowerBound="1"
- eType="#//EclipseVersion"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="preferences" eType="#//Preferences"
+ <eClassifiers xsi:type="ecore:EClass" name="EclipsePreferenceTask" eSuperTypes="#//SetupTask">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="StringVariableTask" eSuperTypes="#//SetupTask">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="WorkingSetTask" eSuperTypes="#//SetupTask">
+ <eStructuralFeatures xsi:type="ecore:EReference" name="workingSets" upperBound="-1"
+ eType="ecore:EClass ../../org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore#//WorkingSet"
containment="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="updateLocations" upperBound="-1"
- eType="#//P2Repository" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EEnum" name="SetupTaskScope">
+ <eLiterals name="None"/>
+ <eLiterals name="Configuration" value="1"/>
+ <eLiterals name="Project" value="2"/>
+ <eLiterals name="Branch" value="3"/>
+ <eLiterals name="User" value="4"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="URI" instanceClassName="org.eclipse.emf.common.util.URI"/>
+ <eClassifiers xsi:type="ecore:EDataType" name="Exception" instanceClassName="java.lang.Exception"/>
+ <eClassifiers xsi:type="ecore:EClass" name="ResourceCopyTask" eSuperTypes="#//SetupTask">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="sourceURL" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="targetURL" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TextModifyTask" eSuperTypes="#//SetupTask">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="url" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="modifications" upperBound="-1"
+ eType="#//TextModification" containment="true"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="TextModification">
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="pattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="substitutions" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EDataType" name="TriggerSet" instanceTypeName="java.util.Set&lt;org.eclipse.emf.cdo.releng.setup.Trigger>"/>
+ <eClassifiers xsi:type="ecore:EEnum" name="Trigger">
+ <eLiterals name="BOOTSTRAP"/>
+ <eLiterals name="STARTUP" value="1"/>
+ <eLiterals name="MANUAL" value="2"/>
+ </eClassifiers>
</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecorediag b/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecorediag
index e673ce5331..17b2af6281 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecorediag
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.ecorediag
@@ -12,9 +12,9 @@
<styles xmi:type="notation:SortingStyle" xmi:id="_zo6B4uoIEeKpRf481yfX-g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_zo6B4-oIEeKpRf481yfX-g"/>
</children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_zoytIeoIEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_zoytIeoIEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13420443" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="setup.ecore#//Configuration"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zoytIuoIEeKpRf481yfX-g" x="145" y="205" width="127"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zoytIuoIEeKpRf481yfX-g" x="190" y="348" width="127"/>
</children>
<children xmi:type="notation:Node" xmi:id="_2Y42MOoIEeKpRf481yfX-g" type="1001">
<children xmi:type="notation:Node" xmi:id="_2Y5dQOoIEeKpRf481yfX-g" type="4001"/>
@@ -32,9 +32,9 @@
<styles xmi:type="notation:SortingStyle" xmi:id="_2Y6EUuoIEeKpRf481yfX-g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_2Y6EU-oIEeKpRf481yfX-g"/>
</children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_2Y42MeoIEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_2Y42MeoIEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13420443" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="setup.ecore#//Project"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2Y42MuoIEeKpRf481yfX-g" x="355" y="201"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2Y42MuoIEeKpRf481yfX-g" x="458" y="344"/>
</children>
<children xmi:type="notation:Node" xmi:id="_3TdBAOoIEeKpRf481yfX-g" type="1001">
<children xmi:type="notation:Node" xmi:id="_3TdoEOoIEeKpRf481yfX-g" type="4001"/>
@@ -43,14 +43,6 @@
<element xmi:type="ecore:EAttribute" href="setup.ecore#//Branch/name"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_x9B5ceoJEeKpRf481yfX-g"/>
</children>
- <children xmi:type="notation:Node" xmi:id="_L1ERoOoOEeKpRf481yfX-g" type="2001">
- <element xmi:type="ecore:EAttribute" href="setup.ecore#//Branch/mspecFilePath"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_L1ERoeoOEeKpRf481yfX-g"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_8ekP8PUJEeK09qwveWBYrQ" type="2001">
- <element xmi:type="ecore:EAttribute" href="setup.ecore#//Branch/cloneVariableName"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_8ekP8fUJEeK09qwveWBYrQ"/>
- </children>
<styles xmi:type="notation:DrawerStyle" xmi:id="_3TdoEuoIEeKpRf481yfX-g"/>
<styles xmi:type="notation:SortingStyle" xmi:id="_3TdoE-oIEeKpRf481yfX-g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_3TdoFOoIEeKpRf481yfX-g"/>
@@ -60,9 +52,9 @@
<styles xmi:type="notation:SortingStyle" xmi:id="_3TePIuoIEeKpRf481yfX-g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_3TePI-oIEeKpRf481yfX-g"/>
</children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_3TdBAeoIEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_3TdBAeoIEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13420443" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="setup.ecore#//Branch"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3TdBAuoIEeKpRf481yfX-g" x="580" y="184"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3TdBAuoIEeKpRf481yfX-g" x="716" y="344"/>
</children>
<children xmi:type="notation:Node" xmi:id="_RhEkcOoJEeKpRf481yfX-g" type="1001">
<children xmi:type="notation:Node" xmi:id="_RhFLgeoJEeKpRf481yfX-g" type="4001"/>
@@ -76,9 +68,9 @@
<styles xmi:type="notation:SortingStyle" xmi:id="_RhFyluoJEeKpRf481yfX-g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_RhFyl-oJEeKpRf481yfX-g"/>
</children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_RhEkceoJEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EClass" href="setup.ecore#//ToolInstallation"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhFLgOoJEeKpRf481yfX-g" x="475" y="35" width="122"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_RhEkceoJEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="8047085" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//SetupTaskContainer"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_RhFLgOoJEeKpRf481yfX-g" x="675" y="15" width="158"/>
</children>
<children xmi:type="notation:Node" xmi:id="_678VMOoJEeKpRf481yfX-g" type="1001">
<children xmi:type="notation:Node" xmi:id="_6788QOoJEeKpRf481yfX-g" type="4001"/>
@@ -96,9 +88,9 @@
<styles xmi:type="notation:SortingStyle" xmi:id="_679jUuoJEeKpRf481yfX-g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_679jU-oJEeKpRf481yfX-g"/>
</children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_678VMeoJEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_678VMeoJEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13420443" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="setup.ecore#//EclipseVersion"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_678VMuoJEeKpRf481yfX-g" x="120" y="345" width="178" height="68"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_678VMuoJEeKpRf481yfX-g" x="165" y="477" width="178" height="68"/>
</children>
<children xmi:type="notation:Node" xmi:id="_PhLMcOoNEeKpRf481yfX-g" type="1001">
<children xmi:type="notation:Node" xmi:id="_PhLzgOoNEeKpRf481yfX-g" type="4001"/>
@@ -112,9 +104,9 @@
<styles xmi:type="notation:SortingStyle" xmi:id="_PhMakuoNEeKpRf481yfX-g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_PhMak-oNEeKpRf481yfX-g"/>
</children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_PhLMceoNEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EClass" href="setup.ecore#//DirectorCall"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PhLMcuoNEeKpRf481yfX-g" x="120" y="485" width="118" height="61"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_PhLMceoNEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//P2Task"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PhLMcuoNEeKpRf481yfX-g" x="194" y="783" width="118" height="43"/>
</children>
<children xmi:type="notation:Node" xmi:id="_mgNekOoOEeKpRf481yfX-g" type="1001">
<children xmi:type="notation:Node" xmi:id="_mgOFoOoOEeKpRf481yfX-g" type="4001"/>
@@ -132,9 +124,9 @@
<styles xmi:type="notation:SortingStyle" xmi:id="_mgOstuoOEeKpRf481yfX-g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_mgOst-oOEeKpRf481yfX-g"/>
</children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_mgNekeoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_mgNekeoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="8047085" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="setup.ecore#//InstallableUnit"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mgNekuoOEeKpRf481yfX-g" x="47" y="620" width="121"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mgNekuoOEeKpRf481yfX-g" x="60" y="895" width="121"/>
</children>
<children xmi:type="notation:Node" xmi:id="_q3yi0OoOEeKpRf481yfX-g" type="1001">
<children xmi:type="notation:Node" xmi:id="_q3zJ4OoOEeKpRf481yfX-g" type="4001"/>
@@ -152,19 +144,19 @@
<styles xmi:type="notation:SortingStyle" xmi:id="_q3zw8uoOEeKpRf481yfX-g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_q3zw8-oOEeKpRf481yfX-g"/>
</children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_q3yi0eoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_q3yi0eoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="8047085" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="setup.ecore#//P2Repository"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q3yi0uoOEeKpRf481yfX-g" x="190" y="620"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_q3yi0uoOEeKpRf481yfX-g" x="330" y="895"/>
</children>
<children xmi:type="notation:Node" xmi:id="_62v54OoOEeKpRf481yfX-g" type="1001">
<children xmi:type="notation:Node" xmi:id="_62wg8OoOEeKpRf481yfX-g" type="4001"/>
<children xmi:type="notation:Node" xmi:id="_62wg8eoOEeKpRf481yfX-g" type="5001">
<children xmi:type="notation:Node" xmi:id="_U2qjEOoQEeKpRf481yfX-g" type="2001">
- <element xmi:type="ecore:EAttribute" href="setup.ecore#//ApiBaseline/version"/>
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//ApiBaselineTask/version"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_U2qjEeoQEeKpRf481yfX-g"/>
</children>
<children xmi:type="notation:Node" xmi:id="_XnMJ8OoQEeKpRf481yfX-g" type="2001">
- <element xmi:type="ecore:EAttribute" href="setup.ecore#//ApiBaseline/zipLocation"/>
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//ApiBaselineTask/zipLocation"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_XnMJ8eoQEeKpRf481yfX-g"/>
</children>
<styles xmi:type="notation:DrawerStyle" xmi:id="_62wg8uoOEeKpRf481yfX-g"/>
@@ -176,37 +168,9 @@
<styles xmi:type="notation:SortingStyle" xmi:id="_62xIAuoOEeKpRf481yfX-g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_62xIA-oOEeKpRf481yfX-g"/>
</children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_62v54eoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EClass" href="setup.ecore#//ApiBaseline"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_62v54uoOEeKpRf481yfX-g" x="345" y="345"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_H-Oz4OoXEeKpRf481yfX-g" type="1001">
- <children xmi:type="notation:Node" xmi:id="_H-QCAOoXEeKpRf481yfX-g" type="4001"/>
- <children xmi:type="notation:Node" xmi:id="_H-QpEOoXEeKpRf481yfX-g" type="5001">
- <children xmi:type="notation:Node" xmi:id="_u68gIOoXEeKpRf481yfX-g" type="2001">
- <element xmi:type="ecore:EAttribute" href="setup.ecore#//GitClone/name"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_u68gIeoXEeKpRf481yfX-g"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_OYL_kOoXEeKpRf481yfX-g" type="2001">
- <element xmi:type="ecore:EAttribute" href="setup.ecore#//GitClone/remoteURI"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_OYMmoOoXEeKpRf481yfX-g"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_eH1IQOoXEeKpRf481yfX-g" type="2001">
- <element xmi:type="ecore:EAttribute" href="setup.ecore#//GitClone/checkoutBranch"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_eH1IQeoXEeKpRf481yfX-g"/>
- </children>
- <styles xmi:type="notation:DrawerStyle" xmi:id="_H-QpEeoXEeKpRf481yfX-g"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_H-QpEuoXEeKpRf481yfX-g"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_H-QpE-oXEeKpRf481yfX-g"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_H-QpFOoXEeKpRf481yfX-g" type="5002">
- <styles xmi:type="notation:DrawerStyle" xmi:id="_H-QpFeoXEeKpRf481yfX-g"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_H-QpFuoXEeKpRf481yfX-g"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_H-QpF-oXEeKpRf481yfX-g"/>
- </children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_H-Oz4eoXEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EClass" href="setup.ecore#//GitClone"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_H-Oz4uoXEeKpRf481yfX-g" x="650" y="375" width="190" height="93"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_62v54eoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//ApiBaselineTask"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_62v54uoOEeKpRf481yfX-g" x="975" y="915"/>
</children>
<children xmi:type="notation:Node" xmi:id="_bOTg8OoYEeKpRf481yfX-g" type="1001">
<children xmi:type="notation:Node" xmi:id="_bOUIAOoYEeKpRf481yfX-g" type="4001"/>
@@ -232,9 +196,9 @@
<styles xmi:type="notation:SortingStyle" xmi:id="_bOUIB-oYEeKpRf481yfX-g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_bOUICOoYEeKpRf481yfX-g"/>
</children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_bOTg8eoYEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_bOTg8eoYEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13420443" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="setup.ecore#//Preferences"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bOTg8uoYEeKpRf481yfX-g" x="1055" y="188"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bOTg8uoYEeKpRf481yfX-g" x="984" y="213"/>
</children>
<children xmi:type="notation:Node" xmi:id="_tV-Q8OoYEeKpRf481yfX-g" type="1001">
<children xmi:type="notation:Node" xmi:id="_tV_fEOoYEeKpRf481yfX-g" type="4001"/>
@@ -244,23 +208,27 @@
<styles xmi:type="notation:FilteringStyle" xmi:id="_tV_fFOoYEeKpRf481yfX-g"/>
</children>
<children xmi:type="notation:Node" xmi:id="_tWAGIOoYEeKpRf481yfX-g" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_T0QX4AW8EeOw6Pg8FrULkw" type="2002">
+ <element xmi:type="ecore:EOperation" href="setup.ecore#//Setup/getSetupTasks"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_T0QX4QW8EeOw6Pg8FrULkw"/>
+ </children>
<styles xmi:type="notation:DrawerStyle" xmi:id="_tWAGIeoYEeKpRf481yfX-g"/>
<styles xmi:type="notation:SortingStyle" xmi:id="_tWAGIuoYEeKpRf481yfX-g"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_tWAGI-oYEeKpRf481yfX-g"/>
</children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_tV-4AOoYEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_tV-4AOoYEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13420443" lineColor="8421504"/>
<element xmi:type="ecore:EClass" href="setup.ecore#//Setup"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tV-4AeoYEeKpRf481yfX-g" x="837" y="205"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_tV-4AeoYEeKpRf481yfX-g" x="621" y="485"/>
</children>
<children xmi:type="notation:Node" xmi:id="_LJQ64PTrEeKROP7mUifaFQ" type="1001">
<children xmi:type="notation:Node" xmi:id="_LJXBgPTrEeKROP7mUifaFQ" type="4001"/>
<children xmi:type="notation:Node" xmi:id="_LJXBgfTrEeKROP7mUifaFQ" type="5001">
<children xmi:type="notation:Node" xmi:id="_Ne7KsPTrEeKROP7mUifaFQ" type="2001">
- <element xmi:type="ecore:EAttribute" href="setup.ecore#//ToolPreference/key"/>
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//EclipsePreferenceTask/key"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_Ne7KsfTrEeKROP7mUifaFQ"/>
</children>
<children xmi:type="notation:Node" xmi:id="_QdmiUPTrEeKROP7mUifaFQ" type="2001">
- <element xmi:type="ecore:EAttribute" href="setup.ecore#//ToolPreference/value"/>
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//EclipsePreferenceTask/value"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_QdmiUfTrEeKROP7mUifaFQ"/>
</children>
<styles xmi:type="notation:DrawerStyle" xmi:id="_LJXBgvTrEeKROP7mUifaFQ"/>
@@ -272,19 +240,19 @@
<styles xmi:type="notation:SortingStyle" xmi:id="_LJXBh_TrEeKROP7mUifaFQ"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_LJXBiPTrEeKROP7mUifaFQ"/>
</children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_LJQ64fTrEeKROP7mUifaFQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EClass" href="setup.ecore#//ToolPreference"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LJQ64vTrEeKROP7mUifaFQ" x="735" y="23"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_LJQ64fTrEeKROP7mUifaFQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//EclipsePreferenceTask"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LJQ64vTrEeKROP7mUifaFQ" x="735" y="945" width="164"/>
</children>
<children xmi:type="notation:Node" xmi:id="_iK-h0PdCEeKAgoQldAmgzQ" type="1001">
<children xmi:type="notation:Node" xmi:id="_iK-h0_dCEeKAgoQldAmgzQ" type="4001"/>
<children xmi:type="notation:Node" xmi:id="_iK-h1PdCEeKAgoQldAmgzQ" type="5001">
<children xmi:type="notation:Node" xmi:id="_k60zQPdCEeKAgoQldAmgzQ" type="2001">
- <element xmi:type="ecore:EAttribute" href="setup.ecore#//LinkLocation/path"/>
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//LinkLocationTask/path"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_k60zQfdCEeKAgoQldAmgzQ"/>
</children>
<children xmi:type="notation:Node" xmi:id="_T7AxQPdEEeKAgoQldAmgzQ" type="2001">
- <element xmi:type="ecore:EAttribute" href="setup.ecore#//LinkLocation/name"/>
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//LinkLocationTask/name"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_T7AxQfdEEeKAgoQldAmgzQ"/>
</children>
<styles xmi:type="notation:DrawerStyle" xmi:id="_iK-h1fdCEeKAgoQldAmgzQ"/>
@@ -296,28 +264,361 @@
<styles xmi:type="notation:SortingStyle" xmi:id="_iLIS0vdCEeKAgoQldAmgzQ"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_iLIS0_dCEeKAgoQldAmgzQ"/>
</children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_iK-h0fdCEeKAgoQldAmgzQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EClass" href="setup.ecore#//LinkLocation"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iK-h0vdCEeKAgoQldAmgzQ" x="1077" y="370"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_iK-h0fdCEeKAgoQldAmgzQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//LinkLocationTask"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_iK-h0vdCEeKAgoQldAmgzQ" x="410" y="783" width="138"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7oaMoAVzEeORNPhE9cWxTA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_7oco4AVzEeORNPhE9cWxTA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_7odP8AVzEeORNPhE9cWxTA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_c5vIkAfTEeOppfhSm9mbUA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//SetupTask/scope"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_c5vIkQfTEeOppfhSm9mbUA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_x1pqMDYoEeO8Ub-p5y_fsQ" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//SetupTask/excludedTriggers"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_x1pqMTYoEeO8Ub-p5y_fsQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_7odP8QVzEeORNPhE9cWxTA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7odP8gVzEeORNPhE9cWxTA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7odP8wVzEeORNPhE9cWxTA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_7od3AAVzEeORNPhE9cWxTA" type="5002">
+ <children xmi:type="notation:Node" xmi:id="_wRjnQAZyEeOppfhSm9mbUA" type="2002">
+ <element xmi:type="ecore:EOperation" href="setup.ecore#//SetupTask/requires"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_wRjnQQZyEeOppfhSm9mbUA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_VUIm8DYnEeO8Ub-p5y_fsQ" type="2002">
+ <element xmi:type="ecore:EOperation" href="setup.ecore#//SetupTask/getValidTriggers"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_VUIm8TYnEeO8Ub-p5y_fsQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_IGz0kDYoEeO8Ub-p5y_fsQ" type="2002">
+ <element xmi:type="ecore:EOperation" href="setup.ecore#//SetupTask/getTriggers"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_IGz0kTYoEeO8Ub-p5y_fsQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_7od3AQVzEeORNPhE9cWxTA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_7od3AgVzEeORNPhE9cWxTA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_7od3AwVzEeORNPhE9cWxTA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_7oaMoQVzEeORNPhE9cWxTA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//SetupTask"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_7oaMogVzEeORNPhE9cWxTA" x="240" width="303" height="153"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JIhT8AV6EeORNPhE9cWxTA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_JIiiEAV6EeORNPhE9cWxTA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_JIjJIAV6EeORNPhE9cWxTA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_JIjJIQV6EeORNPhE9cWxTA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JIjJIgV6EeORNPhE9cWxTA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JIjJIwV6EeORNPhE9cWxTA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_JIjwMAV6EeORNPhE9cWxTA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_JIjwMQV6EeORNPhE9cWxTA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_JIjwMgV6EeORNPhE9cWxTA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_JIjwMwV6EeORNPhE9cWxTA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_JIhT8QV6EeORNPhE9cWxTA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//WorkingSetTask"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_JIhT8gV6EeORNPhE9cWxTA" x="925" y="701" width="127"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-8kV8AV8EeORNPhE9cWxTA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_-8nZQAV8EeORNPhE9cWxTA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_-8nZQQV8EeORNPhE9cWxTA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_cA3yoAV9EeORNPhE9cWxTA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//CompoundSetupTask/name"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_cA3yoQV9EeORNPhE9cWxTA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_-8nZQgV8EeORNPhE9cWxTA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-8nZQwV8EeORNPhE9cWxTA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-8nZRAV8EeORNPhE9cWxTA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-8oAUAV8EeORNPhE9cWxTA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_-8oAUQV8EeORNPhE9cWxTA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_-8oAUgV8EeORNPhE9cWxTA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_-8oAUwV8EeORNPhE9cWxTA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_-8k9AAV8EeORNPhE9cWxTA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//CompoundSetupTask"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-8k9AQV8EeORNPhE9cWxTA" x="390" y="180" width="171"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__XTX4AWBEeORNPhE9cWxTA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="__XdI4AWBEeORNPhE9cWxTA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="__XdI4QWBEeORNPhE9cWxTA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="__XdI4gWBEeORNPhE9cWxTA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__XdI4wWBEeORNPhE9cWxTA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__XdI5AWBEeORNPhE9cWxTA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="__XdI5QWBEeORNPhE9cWxTA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="__XdI5gWBEeORNPhE9cWxTA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="__XdI5wWBEeORNPhE9cWxTA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="__XdI6AWBEeORNPhE9cWxTA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="__XTX4QWBEeORNPhE9cWxTA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13420443" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//ConfigurableItem"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="__XTX4gWBEeORNPhE9cWxTA" x="615" y="240"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_V2XO0AWWEeOw6Pg8FrULkw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_V2aSIAWWEeOw6Pg8FrULkw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_V2bgQAWWEeOw6Pg8FrULkw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_L1ERoOoOEeKpRf481yfX-g" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//BuckminsterImportTask/mspec"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_L1ERoeoOEeKpRf481yfX-g"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_MVAjgAmrEeOuXPWwsMY9fA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//BuckminsterImportTask/targetPlatform"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MVAjgQmrEeOuXPWwsMY9fA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_One8cAmrEeOuXPWwsMY9fA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//BuckminsterImportTask/bundlePool"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_One8cQmrEeOuXPWwsMY9fA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_V2cHUAWWEeOw6Pg8FrULkw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_V2cHUQWWEeOw6Pg8FrULkw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_V2cHUgWWEeOw6Pg8FrULkw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_V2dVcAWWEeOw6Pg8FrULkw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_V2dVcQWWEeOw6Pg8FrULkw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_V2dVcgWWEeOw6Pg8FrULkw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_V2dVcwWWEeOw6Pg8FrULkw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_V2XO0QWWEeOw6Pg8FrULkw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//BuckminsterImportTask"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_V2XO0gWWEeOw6Pg8FrULkw" x="713" y="680" width="173"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QeGy0AZpEeO9d-kMVrgNew" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_QeJ2IAZpEeO9d-kMVrgNew" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_QeLrUAZpEeO9d-kMVrgNew" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QeLrUQZpEeO9d-kMVrgNew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QeLrUgZpEeO9d-kMVrgNew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QeLrUwZpEeO9d-kMVrgNew"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QeNggAZpEeO9d-kMVrgNew" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QeNggQZpEeO9d-kMVrgNew"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QeNgggZpEeO9d-kMVrgNew"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QeNggwZpEeO9d-kMVrgNew"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_QeHZ4AZpEeO9d-kMVrgNew" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//GitCloneTask"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QeHZ4QZpEeO9d-kMVrgNew" x="495" y="960"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_epPbkAcIEeOppfhSm9mbUA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_epPbkwcIEeOppfhSm9mbUA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_epPblAcIEeOppfhSm9mbUA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_hqN5QAcIEeOppfhSm9mbUA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//StringVariableTask/name"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hqN5QQcIEeOppfhSm9mbUA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_kGu_AAcIEeOppfhSm9mbUA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//StringVariableTask/value"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_kGu_AQcIEeOppfhSm9mbUA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_lR808AcIEeOppfhSm9mbUA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//StringVariableTask/description"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_lR808QcIEeOppfhSm9mbUA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_epPblQcIEeOppfhSm9mbUA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_epPblgcIEeOppfhSm9mbUA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_epPblwcIEeOppfhSm9mbUA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_epPbmAcIEeOppfhSm9mbUA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_epPbmQcIEeOppfhSm9mbUA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_epPbmgcIEeOppfhSm9mbUA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_epPbmwcIEeOppfhSm9mbUA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_epPbkQcIEeOppfhSm9mbUA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//StringVariableTask"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_epPbkgcIEeOppfhSm9mbUA" x="720" y="810" width="167"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_FOcX8AfTEeOppfhSm9mbUA" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_FOcX8wfTEeOppfhSm9mbUA" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_FOcX9AfTEeOppfhSm9mbUA" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_JAPOkAfTEeOppfhSm9mbUA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="setup.ecore#//SetupTaskScope/None"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_JAPOkQfTEeOppfhSm9mbUA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_LFfD0AfTEeOppfhSm9mbUA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="setup.ecore#//SetupTaskScope/Configuration"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_LFfD0QfTEeOppfhSm9mbUA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_ND4qMAfTEeOppfhSm9mbUA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="setup.ecore#//SetupTaskScope/Project"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ND4qMQfTEeOppfhSm9mbUA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_N6uLkAfTEeOppfhSm9mbUA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="setup.ecore#//SetupTaskScope/Branch"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_N6uLkQfTEeOppfhSm9mbUA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_YMO3oAfTEeOppfhSm9mbUA" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="setup.ecore#//SetupTaskScope/User"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_YMO3oQfTEeOppfhSm9mbUA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_FOcX9QfTEeOppfhSm9mbUA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_FOcX9gfTEeOppfhSm9mbUA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_FOcX9wfTEeOppfhSm9mbUA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_FOcX8QfTEeOppfhSm9mbUA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="8047085" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="setup.ecore#//SetupTaskScope"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FOcX8gfTEeOppfhSm9mbUA" x="20" y="20" width="163" height="193"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_s1eHUAflEeOppfhSm9mbUA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_s1eHUwflEeOppfhSm9mbUA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_s1eHVAflEeOppfhSm9mbUA" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_0MVKsAfmEeOppfhSm9mbUA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//EclipseIniTask/option"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0MVKsQfmEeOppfhSm9mbUA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1ccuwAfmEeOppfhSm9mbUA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//EclipseIniTask/value"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_1ccuwQfmEeOppfhSm9mbUA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_2SPuUAfmEeOppfhSm9mbUA" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//EclipseIniTask/vm"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_2SPuUQfmEeOppfhSm9mbUA"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_s1eHVQflEeOppfhSm9mbUA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_s1eHVgflEeOppfhSm9mbUA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_s1eHVwflEeOppfhSm9mbUA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_s1eHWAflEeOppfhSm9mbUA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_s1eHWQflEeOppfhSm9mbUA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_s1eHWgflEeOppfhSm9mbUA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_s1eHWwflEeOppfhSm9mbUA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_s1eHUQflEeOppfhSm9mbUA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//EclipseIniTask"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_s1eHUgflEeOppfhSm9mbUA" x="570" y="783" width="130"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_aSLB8AmrEeOuXPWwsMY9fA" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_aSMQEAmrEeOuXPWwsMY9fA" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_aSM3IAmrEeOuXPWwsMY9fA" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_aSM3IQmrEeOuXPWwsMY9fA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aSM3IgmrEeOuXPWwsMY9fA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aSM3IwmrEeOuXPWwsMY9fA"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_aSNeMAmrEeOuXPWwsMY9fA" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_aSNeMQmrEeOuXPWwsMY9fA"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_aSNeMgmrEeOuXPWwsMY9fA"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_aSNeMwmrEeOuXPWwsMY9fA"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_aSLB8QmrEeOuXPWwsMY9fA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="15053796" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//OneTimeSetupTask"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_aSLB8gmrEeOuXPWwsMY9fA" x="835" y="580"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QJaZUDWJEeO0we5dUm5hxw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_QJbncDWJEeO0we5dUm5hxw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_QJbncTWJEeO0we5dUm5hxw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="__jFuADWNEeO0we5dUm5hxw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//ResourceCopyTask/sourceURL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="__jFuATWNEeO0we5dUm5hxw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_DrwMgDWOEeO0we5dUm5hxw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//ResourceCopyTask/targetURL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_DrwMgTWOEeO0we5dUm5hxw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QJbncjWJEeO0we5dUm5hxw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QJbnczWJEeO0we5dUm5hxw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QJbndDWJEeO0we5dUm5hxw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_QJbndTWJEeO0we5dUm5hxw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_QJbndjWJEeO0we5dUm5hxw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_QJbndzWJEeO0we5dUm5hxw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_QJbneDWJEeO0we5dUm5hxw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_QJaZUTWJEeO0we5dUm5hxw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//ResourceCopyTask"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QJaZUjWJEeO0we5dUm5hxw" x="1170" y="525"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_am8vMDWJEeO0we5dUm5hxw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_am8vMzWJEeO0we5dUm5hxw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_am9WQDWJEeO0we5dUm5hxw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_Qw4PsDWOEeO0we5dUm5hxw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//TextModifyTask/url"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Qw4PsTWOEeO0we5dUm5hxw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_am9WQTWJEeO0we5dUm5hxw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_am9WQjWJEeO0we5dUm5hxw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_am9WQzWJEeO0we5dUm5hxw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_am9WRDWJEeO0we5dUm5hxw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_am9WRTWJEeO0we5dUm5hxw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_am9WRjWJEeO0we5dUm5hxw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_am9WRzWJEeO0we5dUm5hxw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_am8vMTWJEeO0we5dUm5hxw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//TextModifyTask"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_am8vMjWJEeO0we5dUm5hxw" x="1215" y="645"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_erZCwDWOEeO0we5dUm5hxw" type="1001">
+ <children xmi:type="notation:Node" xmi:id="_erZCwzWOEeO0we5dUm5hxw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_erZp0DWOEeO0we5dUm5hxw" type="5001">
+ <children xmi:type="notation:Node" xmi:id="_s_MfkDWOEeO0we5dUm5hxw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//TextModification/pattern"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s_MfkTWOEeO0we5dUm5hxw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_-xmxQDWOEeO0we5dUm5hxw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="setup.ecore#//TextModification/substitutions"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_-xmxQTWOEeO0we5dUm5hxw"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_erZp0TWOEeO0we5dUm5hxw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_erZp0jWOEeO0we5dUm5hxw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_erZp0zWOEeO0we5dUm5hxw"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_erZp1DWOEeO0we5dUm5hxw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_erZp1TWOEeO0we5dUm5hxw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_erZp1jWOEeO0we5dUm5hxw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_erZp1zWOEeO0we5dUm5hxw"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_erZCwTWOEeO0we5dUm5hxw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="setup.ecore#//TextModification"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_erZCwjWOEeO0we5dUm5hxw" x="1200" y="765"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_3NJlQDYmEeO8Ub-p5y_fsQ" type="1004">
+ <children xmi:type="notation:Node" xmi:id="_3NMokDYmEeO8Ub-p5y_fsQ" type="4008"/>
+ <children xmi:type="notation:Node" xmi:id="_3NN2sDYmEeO8Ub-p5y_fsQ" type="4009"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_3NKMUDYmEeO8Ub-p5y_fsQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EDataType" href="setup.ecore#//TriggerSet"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3NKMUTYmEeO8Ub-p5y_fsQ" x="1260" y="180"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_KMEtYDYnEeO8Ub-p5y_fsQ" type="1005">
+ <children xmi:type="notation:Node" xmi:id="_KMFUcDYnEeO8Ub-p5y_fsQ" type="4010"/>
+ <children xmi:type="notation:Node" xmi:id="_KMF7gDYnEeO8Ub-p5y_fsQ" type="5008">
+ <children xmi:type="notation:Node" xmi:id="_Lt998DYnEeO8Ub-p5y_fsQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="setup.ecore#//Trigger/BOOTSTRAP"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Lt998TYnEeO8Ub-p5y_fsQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_NeEpoDYnEeO8Ub-p5y_fsQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="setup.ecore#//Trigger/STARTUP"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_NeEpoTYnEeO8Ub-p5y_fsQ"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_OhJ3QDYnEeO8Ub-p5y_fsQ" type="2006">
+ <element xmi:type="ecore:EEnumLiteral" href="setup.ecore#//Trigger/MANUAL"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_OhJ3QTYnEeO8Ub-p5y_fsQ"/>
+ </children>
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_KMF7gTYnEeO8Ub-p5y_fsQ"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_KMF7gjYnEeO8Ub-p5y_fsQ"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_KMF7gzYnEeO8Ub-p5y_fsQ"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_KMEtYTYnEeO8Ub-p5y_fsQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EEnum" href="setup.ecore#//Trigger"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KMEtYjYnEeO8Ub-p5y_fsQ" x="1453" y="316"/>
</children>
- <children xmi:type="notation:Node" xmi:id="_BvKIgASwEeOeiM9WAQqlaA" type="1001">
- <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_BvanMASwEeOeiM9WAQqlaA" source="Shortcut">
- <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_BvanMQSwEeOeiM9WAQqlaA" key="modelID" value="EcoreTools"/>
+ <children xmi:type="notation:Node" xmi:id="_1NjhoDcOEeOvrbVwd-Y02g" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1OvNYDcOEeOvrbVwd-Y02g" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1OvNYTcOEeOvrbVwd-Y02g" key="modelID" value="EcoreTools"/>
</eAnnotations>
- <children xmi:type="notation:Node" xmi:id="_BvOZ8ASwEeOeiM9WAQqlaA" type="4001"/>
- <children xmi:type="notation:Node" xmi:id="_BvPBAASwEeOeiM9WAQqlaA" type="5001">
- <styles xmi:type="notation:DrawerStyle" xmi:id="_BvPBAQSwEeOeiM9WAQqlaA"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_BvPBAgSwEeOeiM9WAQqlaA"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_BvPBAwSwEeOeiM9WAQqlaA"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_BvPoEASwEeOeiM9WAQqlaA" type="5002">
- <styles xmi:type="notation:DrawerStyle" xmi:id="_BvPoEQSwEeOeiM9WAQqlaA"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_BvPoEgSwEeOeiM9WAQqlaA"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_BvPoEwSwEeOeiM9WAQqlaA"/>
- </children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_BvKIgQSwEeOeiM9WAQqlaA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EClass" href="platform:/resource/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore#//WorkingSetGroup"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BvKIggSwEeOeiM9WAQqlaA" x="135" y="90" width="202" height="78"/>
+ <children xmi:type="notation:Node" xmi:id="_1NrdcDcOEeOvrbVwd-Y02g" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_1NrdcTcOEeOvrbVwd-Y02g" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_1NrdcjcOEeOvrbVwd-Y02g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1NrdczcOEeOvrbVwd-Y02g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1NrddDcOEeOvrbVwd-Y02g"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_1NsEgDcOEeOvrbVwd-Y02g" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_1NsEgTcOEeOvrbVwd-Y02g"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_1NsEgjcOEeOvrbVwd-Y02g"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_1NsEgzcOEeOvrbVwd-Y02g"/>
+ </children>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_1NjhoTcOEeOvrbVwd-Y02g" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore#//WorkingSet"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1NjhojcOEeOvrbVwd-Y02g" x="975" y="795"/>
</children>
<styles xmi:type="notation:DiagramStyle" xmi:id="_u_e_seoIEeKpRf481yfX-g"/>
<element xmi:type="ecore:EPackage" href="setup.ecore#/"/>
@@ -337,144 +638,75 @@
</edges>
<edges xmi:type="notation:Edge" xmi:id="_6D5IUOoIEeKpRf481yfX-g" type="3002" source="_2Y42MOoIEeKpRf481yfX-g" target="_3TdBAOoIEeKpRf481yfX-g">
<children xmi:type="notation:Node" xmi:id="_6D5vYOoIEeKpRf481yfX-g" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_6D5vYeoIEeKpRf481yfX-g" x="-14" y="-12"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6D5vYeoIEeKpRf481yfX-g" x="-14" y="-16"/>
</children>
<children xmi:type="notation:Node" xmi:id="_6D5vYuoIEeKpRf481yfX-g" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_6D5vY-oIEeKpRf481yfX-g" x="-4" y="17"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_6D5vY-oIEeKpRf481yfX-g" x="-4" y="12"/>
</children>
<styles xmi:type="notation:ConnectorStyle" xmi:id="_6D5IUeoIEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_6D5IUuoIEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="setup.ecore#//Project/branches"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6D5IU-oIEeKpRf481yfX-g" points="[57, 0, -157, 8]$[169, 0, -45, 8]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_q-NiIvUKEeK09qwveWBYrQ" id="(0.5,0.5)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_q-NiI_UKEeK09qwveWBYrQ" id="(0.22660098522167488,0.3779527559055118)"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_6D5IU-oIEeKpRf481yfX-g" points="[57, 0, -170, 6]$[202, 0, -25, 6]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q5SlwgfkEeOppfhSm9mbUA" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Q5SlwwfkEeOppfhSm9mbUA" id="(0.22660098522167488,0.3779527559055118)"/>
</edges>
- <edges xmi:type="notation:Edge" xmi:id="_TwgQcOoJEeKpRf481yfX-g" type="3003" source="_2Y42MOoIEeKpRf481yfX-g" target="_RhEkcOoJEeKpRf481yfX-g">
+ <edges xmi:type="notation:Edge" xmi:id="_TwgQcOoJEeKpRf481yfX-g" type="3003" source="_2Y42MOoIEeKpRf481yfX-g" target="__XTX4AWBEeORNPhE9cWxTA">
<styles xmi:type="notation:ConnectorStyle" xmi:id="_TwgQceoJEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_TwgQcuoJEeKpRf481yfX-g" fontName="Segoe UI"/>
<element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TwgQc-oJEeKpRf481yfX-g" points="[5, -24, -126, 162]$[5, -90, -126, 96]$[123, -90, -8, 96]$[123, -149, -8, 37]"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TwlwAOoJEeKpRf481yfX-g" id="(0.5590551181102362,0.11627906976744186)"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TwgQc-oJEeKpRf481yfX-g" points="[6, -30, -155, 81]$[6, -59, -155, 52]$[159, -59, -2, 52]$[159, -87, -2, 24]"/>
</edges>
- <edges xmi:type="notation:Edge" xmi:id="_U3twIOoJEeKpRf481yfX-g" type="3003" source="_3TdBAOoIEeKpRf481yfX-g" target="_RhEkcOoJEeKpRf481yfX-g">
+ <edges xmi:type="notation:Edge" xmi:id="_U3twIOoJEeKpRf481yfX-g" type="3003" source="_3TdBAOoIEeKpRf481yfX-g" target="__XTX4AWBEeORNPhE9cWxTA">
<styles xmi:type="notation:ConnectorStyle" xmi:id="_U3twIeoJEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_U3twIuoJEeKpRf481yfX-g" fontName="Segoe UI"/>
<element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_U3twI-oJEeKpRf481yfX-g" points="[1, -62, 146, 115]$[1, -97, 146, 80]$[-146, -97, -1, 80]$[-146, -156, -1, 21]"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_h9QtQOoNEeKpRf481yfX-g" type="3002" source="_RhEkcOoJEeKpRf481yfX-g" target="_PhLMcOoNEeKpRf481yfX-g">
- <children xmi:type="notation:Node" xmi:id="_h9RUUOoNEeKpRf481yfX-g" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_h9RUUeoNEeKpRf481yfX-g" x="111" y="-21"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_h9RUUuoNEeKpRf481yfX-g" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_h9RUU-oNEeKpRf481yfX-g" x="79" y="-44"/>
- </children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_h9QtQeoNEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_h9QtQuoNEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="setup.ecore#//ToolInstallation/directorCalls"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_h9QtQ-oNEeKpRf481yfX-g" points="[-60, 1, 339, -547]$[-480, 1, -81, -547]$[-480, 556, -81, 8]$[-415, 556, -16, 8]"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_h9TwkOoNEeKpRf481yfX-g" id="(0.14285714285714285,0.38461538461538464)"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_U3twI-oJEeKpRf481yfX-g" points="[21, -30, 118, 81]$[21, -59, 118, 52]$[-99, -59, -2, 52]$[-99, -87, -2, 24]"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_s_VTkOoNEeKpRf481yfX-g" type="3002" source="_zoytIOoIEeKpRf481yfX-g" target="_678VMOoJEeKpRf481yfX-g">
<children xmi:type="notation:Node" xmi:id="_s_V6oOoNEeKpRf481yfX-g" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_s_V6oeoNEeKpRf481yfX-g" x="-38" y="-12"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s_V6oeoNEeKpRf481yfX-g" x="2" y="49"/>
</children>
<children xmi:type="notation:Node" xmi:id="_s_V6ouoNEeKpRf481yfX-g" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_s_V6o-oNEeKpRf481yfX-g" x="-2" y="12"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_s_V6o-oNEeKpRf481yfX-g" x="3" y="-21"/>
</children>
<styles xmi:type="notation:ConnectorStyle" xmi:id="_s_VTkeoNEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_s_VTkuoNEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="setup.ecore#//Configuration/eclipseVersions"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_s_VTk-oNEeKpRf481yfX-g" points="[-62, 0, 197, -1]$[-171, 0, 88, -1]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vBlxoPKREeK108x_FqyAbw" id="(0.5,0.5)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vBlxofKREeK108x_FqyAbw" id="(0.5,0.5)"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_0wNO4OoNEeKpRf481yfX-g" type="3002" source="_678VMOoJEeKpRf481yfX-g" target="_PhLMcOoNEeKpRf481yfX-g">
- <children xmi:type="notation:Node" xmi:id="_0wNO5OoNEeKpRf481yfX-g" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_0wNO5eoNEeKpRf481yfX-g" x="-6" y="46"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_0wN18OoNEeKpRf481yfX-g" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_0wN18eoNEeKpRf481yfX-g" x="-1" y="-18"/>
- </children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_0wNO4eoNEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_0wNO4uoNEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="setup.ecore#//EclipseVersion/directorCall"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0wNO4-oNEeKpRf481yfX-g" points="[-18, 56, 58, -101]$[-18, 130, 58, -27]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0wQSMOoNEeKpRf481yfX-g" id="(0.5056179775280899,0.16176470588235295)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0wQSMeoNEeKpRf481yfX-g" id="(0.10476190476190476,0.4725274725274725)"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_RIhIQOoOEeKpRf481yfX-g" type="3002" source="_3TdBAOoIEeKpRf481yfX-g" target="_H-Oz4OoXEeKpRf481yfX-g">
- <children xmi:type="notation:Node" xmi:id="_RIhvUOoOEeKpRf481yfX-g" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_RIhvUeoOEeKpRf481yfX-g" y="-32"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_RIiWYOoOEeKpRf481yfX-g" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_RIiWYeoOEeKpRf481yfX-g" x="4" y="9"/>
- </children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_RIhIQeoOEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_RIhIQuoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="setup.ecore#//Branch/gitClones"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RIhIQ-oOEeKpRf481yfX-g" points="[55, 54, 44, -127]$[55, 137, 44, -44]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4XAQkvT8EeKyR41VsO_Bpw" id="(0.5,0.5)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4XAQk_T8EeKyR41VsO_Bpw" id="(0.22105263157894736,0.4838709677419355)"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_s_VTk-oNEeKpRf481yfX-g" points="[7, 21, 6, -121]$[7, 109, 6, -33]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8U3-UAWlEeOw6Pg8FrULkw" id="(0.5,0.5)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8U3-UQWlEeOw6Pg8FrULkw" id="(0.5,0.5)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_xAgNgOoOEeKpRf481yfX-g" type="3002" source="_PhLMcOoNEeKpRf481yfX-g" target="_mgNekOoOEeKpRf481yfX-g">
<children xmi:type="notation:Node" xmi:id="_xAg0kOoOEeKpRf481yfX-g" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_xAg0keoOEeKpRf481yfX-g" x="4" y="52"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xAg0keoOEeKpRf481yfX-g" x="6" y="-47"/>
</children>
<children xmi:type="notation:Node" xmi:id="_xAg0kuoOEeKpRf481yfX-g" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_xAg0k-oOEeKpRf481yfX-g" x="4" y="-9"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_xAg0k-oOEeKpRf481yfX-g" x="6" y="17"/>
</children>
<styles xmi:type="notation:ConnectorStyle" xmi:id="_xAgNgeoOEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_xAgNguoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="setup.ecore#//DirectorCall/installableUnits"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xAgNg-oOEeKpRf481yfX-g" points="[-59, 30, 46, -101]$[-59, 107, 46, -24]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0Sj8AvKREeK108x_FqyAbw" id="(0.5,0.5)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0Sj8A_KREeK108x_FqyAbw" id="(0.5,0.5)"/>
+ <element xmi:type="ecore:EReference" href="setup.ecore#//P2Task/installableUnits"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_xAgNg-oOEeKpRf481yfX-g" points="[-18, 20, 95, -141]$[-93, 20, 20, -141]$[-93, 112, 20, -49]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KC51YgfnEeOppfhSm9mbUA" id="(0.16101694915254236,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_KC51YwfnEeOppfhSm9mbUA" id="(0.3305785123966942,1.0)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_zJWJUOoOEeKpRf481yfX-g" type="3002" source="_PhLMcOoNEeKpRf481yfX-g" target="_q3yi0OoOEeKpRf481yfX-g">
<children xmi:type="notation:Node" xmi:id="_zJWwYOoOEeKpRf481yfX-g" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_zJWwYeoOEeKpRf481yfX-g" x="4" y="-52"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zJWwYeoOEeKpRf481yfX-g" x="9" y="46"/>
</children>
<children xmi:type="notation:Node" xmi:id="_zJWwYuoOEeKpRf481yfX-g" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_zJWwY-oOEeKpRf481yfX-g" x="4" y="8"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_zJWwY-oOEeKpRf481yfX-g" x="9" y="-13"/>
</children>
<styles xmi:type="notation:ConnectorStyle" xmi:id="_zJWJUeoOEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_zJWJUuoOEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="setup.ecore#//DirectorCall/p2Repositories"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zJWJU-oOEeKpRf481yfX-g" points="[53, 30, -21, -101]$[53, 107, -21, -24]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xvDddPKREeK108x_FqyAbw" id="(0.5,0.5)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xvDddfKREeK108x_FqyAbw" id="(0.5,0.5)"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_dN8MgOoPEeKpRf481yfX-g" type="3002" source="_2Y42MOoIEeKpRf481yfX-g" target="_62v54OoOEeKpRf481yfX-g">
- <children xmi:type="notation:Node" xmi:id="_dN8MhOoPEeKpRf481yfX-g" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_dN8MheoPEeKpRf481yfX-g" x="-4" y="-47"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_dN8MhuoPEeKpRf481yfX-g" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_dN8Mh-oPEeKpRf481yfX-g" x="-4" y="14"/>
- </children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_dN8MgeoPEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_dN8MguoPEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="setup.ecore#//Project/apiBaselines"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dN8Mg-oPEeKpRf481yfX-g" points="[7, 25, 0, -136]$[7, 128, 0, -33]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wnpJcPKREeK108x_FqyAbw" id="(0.5,0.5)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wnpJcfKREeK108x_FqyAbw" id="(0.5,0.5)"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_ftwBYOoQEeKpRf481yfX-g" type="3002" source="_3TdBAOoIEeKpRf481yfX-g" target="_62v54OoOEeKpRf481yfX-g">
- <children xmi:type="notation:Node" xmi:id="_ftwocOoQEeKpRf481yfX-g" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_ftwoceoQEeKpRf481yfX-g" x="-22" y="-15"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_ftwocuoQEeKpRf481yfX-g" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_ftwoc-oQEeKpRf481yfX-g" y="9"/>
- </children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_ftwBYeoQEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_ftwBYuoQEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="setup.ecore#//Branch/apiBaseline"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ftwBY-oQEeKpRf481yfX-g" points="[23, 14, 202, -111]$[23, 124, 202, -1]$[-105, 124, 74, -1]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ftzrwOoQEeKpRf481yfX-g" id="(0.12195121951219512,0.8382352941176471)"/>
+ <element xmi:type="ecore:EReference" href="setup.ecore#//P2Task/p2Repositories"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zJWJU-oOEeKpRf481yfX-g" points="[58, 20, -38, -141]$[120, 20, 24, -141]$[120, 112, 24, -49]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FT36cgfnEeOppfhSm9mbUA" id="(0.5,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_FT36cwfnEeOppfhSm9mbUA" id="(0.5,1.0)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_0pBn0OoYEeKpRf481yfX-g" type="3002" source="_tV-Q8OoYEeKpRf481yfX-g" target="_3TdBAOoIEeKpRf481yfX-g">
<children xmi:type="notation:Node" xmi:id="_0pBn1OoYEeKpRf481yfX-g" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_0pBn1eoYEeKpRf481yfX-g" x="-21" y="12"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_0pBn1eoYEeKpRf481yfX-g" x="-8" y="31"/>
</children>
<children xmi:type="notation:Node" xmi:id="_0pCO4OoYEeKpRf481yfX-g" type="4012">
<layoutConstraint xmi:type="notation:Location" xmi:id="_0pCO4eoYEeKpRf481yfX-g" x="-11" y="-15"/>
@@ -482,85 +714,57 @@
<styles xmi:type="notation:ConnectorStyle" xmi:id="_0pBn0eoYEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_0pBn0uoYEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="setup.ecore#//Setup/branch"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0pBn0-oYEeKpRf481yfX-g" points="[-40, 12, 206, 42]$[-144, 12, 102, 42]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0pBn0-oYEeKpRf481yfX-g" points="[38, -10, 9, 134]$[38, -77, 9, 67]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0pEEEOoYEeKpRf481yfX-g" id="(0.4019607843137255,0.20930232558139536)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0pEEEeoYEeKpRf481yfX-g" id="(0.4931506849315068,0.10588235294117647)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_uVxboOrJEeKpRf481yfX-g" type="3002" source="_tV-Q8OoYEeKpRf481yfX-g" target="_678VMOoJEeKpRf481yfX-g">
<children xmi:type="notation:Node" xmi:id="_uVz34OrJEeKpRf481yfX-g" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_uVz34erJEeKpRf481yfX-g" x="71" y="71"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uVz34erJEeKpRf481yfX-g" x="-5" y="18"/>
</children>
<children xmi:type="notation:Node" xmi:id="_uVz34urJEeKpRf481yfX-g" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_uVz34-rJEeKpRf481yfX-g" x="163" y="-15"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_uVz34-rJEeKpRf481yfX-g" x="32" y="-13"/>
</children>
<styles xmi:type="notation:ConnectorStyle" xmi:id="_uVxboerJEeKpRf481yfX-g" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_uVxbourJEeKpRf481yfX-g" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="setup.ecore#//Setup/eclipseVersion"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uVxbo-rJEeKpRf481yfX-g" points="[-12, 21, 675, -109]$[-12, 275, 675, 145]$[-618, 275, 69, 145]$[-618, 186, 69, 56]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_uVxbo-rJEeKpRf481yfX-g" points="[-151, -6, 420, 16]$[-475, -6, 96, 16]"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_uV5-gOrJEeKpRf481yfX-g" id="(0.4550561797752809,0.16176470588235295)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_rDKrIO0pEeKeBJzrXkhCcg" type="3002" source="_tV-Q8OoYEeKpRf481yfX-g" target="_bOTg8OoYEeKpRf481yfX-g">
<children xmi:type="notation:Node" xmi:id="_rDNucO0pEeKeBJzrXkhCcg" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_rDNuce0pEeKeBJzrXkhCcg" x="-25" y="-19"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rDNuce0pEeKeBJzrXkhCcg" x="30" y="41"/>
</children>
<children xmi:type="notation:Node" xmi:id="_rDOVgO0pEeKeBJzrXkhCcg" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_rDOVge0pEeKeBJzrXkhCcg" x="1" y="16"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_rDOVge0pEeKeBJzrXkhCcg" x="30" y="-12"/>
</children>
<styles xmi:type="notation:ConnectorStyle" xmi:id="_rDKrIe0pEeKeBJzrXkhCcg" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_rDKrIu0pEeKeBJzrXkhCcg" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="setup.ecore#//Setup/preferences"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rDKrI-0pEeKeBJzrXkhCcg" points="[50, 0, -203, -1]$[178, 0, -75, -1]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_rDKrI-0pEeKeBJzrXkhCcg" points="[152, 3, -91, 258]$[243, 3, 0, 258]$[243, -213, 0, 42]"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_ETHrAPKREeK108x_FqyAbw" type="3002" source="_3TdBAOoIEeKpRf481yfX-g" target="_2Y42MOoIEeKpRf481yfX-g">
<children xmi:type="notation:Node" xmi:id="_ETRcAPKREeK108x_FqyAbw" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_ETRcAfKREeK108x_FqyAbw" x="-10" y="-10"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ETRcAfKREeK108x_FqyAbw" x="-12" y="-12"/>
</children>
<children xmi:type="notation:Node" xmi:id="_ETRcAvKREeK108x_FqyAbw" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_ETRcA_KREeK108x_FqyAbw" y="9"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_ETRcA_KREeK108x_FqyAbw" x="-1" y="16"/>
</children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_ETHrAfKREeK108x_FqyAbw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_ETHrAfKREeK108x_FqyAbw" routing="Rectilinear" closestDistance="true" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_ETHrAvKREeK108x_FqyAbw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="setup.ecore#//Branch/project"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ETHrA_KREeK108x_FqyAbw" points="[-45, 8, 169, 0]$[-157, 8, 57, 0]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vZXnMvT8EeKyR41VsO_Bpw" id="(0.22660098522167488,0.3779527559055118)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vZXnM_T8EeKyR41VsO_Bpw" id="(0.5,0.5)"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_JZ1GIPKREeK108x_FqyAbw" type="3002" source="_H-Oz4OoXEeKpRf481yfX-g" target="_3TdBAOoIEeKpRf481yfX-g">
- <children xmi:type="notation:Node" xmi:id="_JZ1GJPKREeK108x_FqyAbw" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_JZ1GJfKREeK108x_FqyAbw" x="-11" y="-25"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_JZ1GJvKREeK108x_FqyAbw" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_JZ1GJ_KREeK108x_FqyAbw" x="-11" y="15"/>
- </children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_JZ1GIfKREeK108x_FqyAbw" routing="Rectilinear" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_JZ1GIvKREeK108x_FqyAbw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="setup.ecore#//GitClone/branch"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_JZ1GI_KREeK108x_FqyAbw" points="[44, -44, 55, 137]$[44, -127, 55, 54]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vxl58vT8EeKyR41VsO_Bpw" id="(0.22105263157894736,0.4838709677419355)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vxl58_T8EeKyR41VsO_Bpw" id="(0.5,0.5)"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_LAx10PKREeK108x_FqyAbw" type="3002" source="_62v54OoOEeKpRf481yfX-g" target="_2Y42MOoIEeKpRf481yfX-g">
- <children xmi:type="notation:Node" xmi:id="_LAx11PKREeK108x_FqyAbw" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_LAx11fKREeK108x_FqyAbw" x="-10" y="-10"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_LAx11vKREeK108x_FqyAbw" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_LAx11_KREeK108x_FqyAbw" x="10" y="10"/>
- </children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_LAx10fKREeK108x_FqyAbw" routing="Rectilinear" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_LAx10vKREeK108x_FqyAbw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="setup.ecore#//ApiBaseline/project"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LAx10_KREeK108x_FqyAbw" points="[0, -33, 7, 128]$[0, -136, 7, 25]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w33WwvKREeK108x_FqyAbw" id="(0.5,0.5)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_w33Ww_KREeK108x_FqyAbw" id="(0.5,0.5)"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ETHrA_KREeK108x_FqyAbw" points="[-25, 6, 202, 0]$[-170, 6, 57, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tTtqEAWWEeOw6Pg8FrULkw" id="(0.22660098522167488,0.3779527559055118)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_tTtqEQWWEeOw6Pg8FrULkw" id="(0.5,0.5)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_MBMxAPKREeK108x_FqyAbw" type="3002" source="_2Y42MOoIEeKpRf481yfX-g" target="_zoytIOoIEeKpRf481yfX-g">
<children xmi:type="notation:Node" xmi:id="_MBMxBPKREeK108x_FqyAbw" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_MBMxBfKREeK108x_FqyAbw" x="-10" y="-10"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_MBMxBfKREeK108x_FqyAbw" x="-22" y="-12"/>
</children>
<children xmi:type="notation:Node" xmi:id="_MBMxBvKREeK108x_FqyAbw" type="4012">
<layoutConstraint xmi:type="notation:Location" xmi:id="_MBMxB_KREeK108x_FqyAbw" x="10" y="10"/>
</children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_MBMxAfKREeK108x_FqyAbw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_MBMxAfKREeK108x_FqyAbw" routing="Rectilinear" closestDistance="true" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_MBMxAvKREeK108x_FqyAbw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="setup.ecore#//Project/configuration"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_MBMxA_KREeK108x_FqyAbw" points="[-24, 2, 148, 0]$[-109, 2, 63, 0]"/>
@@ -569,102 +773,216 @@
</edges>
<edges xmi:type="notation:Edge" xmi:id="_Nhv9wPKREeK108x_FqyAbw" type="3002" source="_678VMOoJEeKpRf481yfX-g" target="_zoytIOoIEeKpRf481yfX-g">
<children xmi:type="notation:Node" xmi:id="_Nhv9xPKREeK108x_FqyAbw" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Nhv9xfKREeK108x_FqyAbw" x="-10" y="-10"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Nhv9xfKREeK108x_FqyAbw" x="-3" y="-44"/>
</children>
<children xmi:type="notation:Node" xmi:id="_Nhv9xvKREeK108x_FqyAbw" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_Nhv9x_KREeK108x_FqyAbw" x="10" y="10"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_Nhv9x_KREeK108x_FqyAbw" x="-3" y="17"/>
</children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_Nhv9wfKREeK108x_FqyAbw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_Nhv9wfKREeK108x_FqyAbw" routing="Rectilinear" closestDistance="true" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_Nhv9wvKREeK108x_FqyAbw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="setup.ecore#//EclipseVersion/configuration"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nhv9w_KREeK108x_FqyAbw" points="[88, -1, -171, 0]$[197, -1, -62, 0]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Nhv9w_KREeK108x_FqyAbw" points="[6, -33, 7, 109]$[6, -121, 7, 21]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vBlxpPKREeK108x_FqyAbw" id="(0.5,0.5)"/>
<targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_vBlxpfKREeK108x_FqyAbw" id="(0.5,0.5)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_QQajcPKREeK108x_FqyAbw" type="3002" source="_mgNekOoOEeKpRf481yfX-g" target="_PhLMcOoNEeKpRf481yfX-g">
<children xmi:type="notation:Node" xmi:id="_QQajdPKREeK108x_FqyAbw" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_QQajdfKREeK108x_FqyAbw" x="-12" y="-36"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QQajdfKREeK108x_FqyAbw" x="-10" y="-10"/>
</children>
<children xmi:type="notation:Node" xmi:id="_QQajdvKREeK108x_FqyAbw" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_QQajd_KREeK108x_FqyAbw" x="-12" y="15"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_QQajd_KREeK108x_FqyAbw" x="10" y="10"/>
</children>
<styles xmi:type="notation:ConnectorStyle" xmi:id="_QQajcfKREeK108x_FqyAbw" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_QQajcvKREeK108x_FqyAbw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="setup.ecore#//InstallableUnit/directorCall"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QQajc_KREeK108x_FqyAbw" points="[46, -24, -59, 107]$[46, -101, -59, 30]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yox6wPKREeK108x_FqyAbw" id="(0.5,0.5)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_yox6wfKREeK108x_FqyAbw" id="(0.5,0.5)"/>
+ <element xmi:type="ecore:EReference" href="setup.ecore#//InstallableUnit/p2Task"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QQajc_KREeK108x_FqyAbw" points="[20, -49, -93, 112]$[20, -141, -93, 20]$[95, -141, -18, 20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4OsUcAWXEeOw6Pg8FrULkw" id="(0.3305785123966942,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_4Os7gAWXEeOw6Pg8FrULkw" id="(0.16101694915254236,0.0)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_RisDoPKREeK108x_FqyAbw" type="3002" source="_q3yi0OoOEeKpRf481yfX-g" target="_PhLMcOoNEeKpRf481yfX-g">
<children xmi:type="notation:Node" xmi:id="_RisDpPKREeK108x_FqyAbw" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_RisDpfKREeK108x_FqyAbw" x="-12" y="47"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RisDpfKREeK108x_FqyAbw" x="-10" y="-10"/>
</children>
<children xmi:type="notation:Node" xmi:id="_RisDpvKREeK108x_FqyAbw" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_RisDp_KREeK108x_FqyAbw" x="-7" y="-19"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_RisDp_KREeK108x_FqyAbw" x="10" y="10"/>
</children>
<styles xmi:type="notation:ConnectorStyle" xmi:id="_RisDofKREeK108x_FqyAbw" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_RisDovKREeK108x_FqyAbw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="setup.ecore#//P2Repository/directorCall"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RisDo_KREeK108x_FqyAbw" points="[-21, -24, 53, 107]$[-21, -101, 53, 30]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xvDdcPKREeK108x_FqyAbw" id="(0.5,0.5)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_xvDdcfKREeK108x_FqyAbw" id="(0.5,0.5)"/>
+ <element xmi:type="ecore:EReference" href="setup.ecore#//P2Repository/p2Task"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RisDo_KREeK108x_FqyAbw" points="[24, -49, 120, 112]$[24, -141, 120, 20]$[-38, -141, 58, 20]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iSgJ8AWXEeOw6Pg8FrULkw" id="(0.5,1.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iSgJ8QWXEeOw6Pg8FrULkw" id="(0.5,0.0)"/>
</edges>
- <edges xmi:type="notation:Edge" xmi:id="_TTmfEPTrEeKROP7mUifaFQ" type="3002" source="_RhEkcOoJEeKpRf481yfX-g" target="_LJQ64PTrEeKROP7mUifaFQ">
+ <edges xmi:type="notation:Edge" xmi:id="_TTmfEPTrEeKROP7mUifaFQ" type="3002" source="_RhEkcOoJEeKpRf481yfX-g" target="_7oaMoAVzEeORNPhE9cWxTA">
<children xmi:type="notation:Node" xmi:id="_TTmfFPTrEeKROP7mUifaFQ" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_TTmfFfTrEeKROP7mUifaFQ" x="-39" y="-12"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TTmfFfTrEeKROP7mUifaFQ" x="-26" y="-13"/>
</children>
<children xmi:type="notation:Node" xmi:id="_TTmfFvTrEeKROP7mUifaFQ" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_TTmfF_TrEeKROP7mUifaFQ" x="-4" y="12"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_TTmfF_TrEeKROP7mUifaFQ" x="-24" y="26"/>
</children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_TTmfEfTrEeKROP7mUifaFQ" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_TTmfEfTrEeKROP7mUifaFQ" routing="Rectilinear" closestDistance="true" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_TTmfEvTrEeKROP7mUifaFQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="setup.ecore#//ToolInstallation/toolPreferences"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TTmfE_TrEeKROP7mUifaFQ" points="[60, 0, -216, 6]$[270, 0, -6, 6]"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TTslsPTrEeKROP7mUifaFQ" id="(0.061946902654867256,0.39705882352941174)"/>
+ <element xmi:type="ecore:EReference" href="setup.ecore#//SetupTaskContainer/setupTasks"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_TTmfE_TrEeKROP7mUifaFQ" points="[-78, 7, 258, 18]$[-227, 7, 109, 18]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_TTslsPTrEeKROP7mUifaFQ" id="(0.5987654320987654,0.11764705882352941)"/>
</edges>
<edges xmi:type="notation:Edge" xmi:id="_UYR_cPT8EeKyR41VsO_Bpw" type="3003" source="_bOTg8OoYEeKpRf481yfX-g" target="_RhEkcOoJEeKpRf481yfX-g">
<styles xmi:type="notation:ConnectorStyle" xmi:id="_UYR_cfT8EeKyR41VsO_Bpw" routing="Rectilinear" lineColor="4210752"/>
<styles xmi:type="notation:FontStyle" xmi:id="_UYR_cvT8EeKyR41VsO_Bpw" fontName="Segoe UI"/>
<element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UYR_c_T8EeKyR41VsO_Bpw" points="[-10, -11, 595, 133]$[-10, -64, 595, 80]$[-606, -64, -1, 80]$[-606, -123, -1, 21]"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UYR_c_T8EeKyR41VsO_Bpw" points="[-10, -9, 386, 163]$[-10, -94, 386, 78]$[-397, -94, -1, 78]$[-397, -151, -1, 21]"/>
<sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_UYYGEPT8EeKyR41VsO_Bpw" id="(0.5686274509803921,0.11764705882352941)"/>
</edges>
- <edges xmi:type="notation:Edge" xmi:id="_fi28QPXSEeKGErZDYCqYOg" type="3002" source="_tV-Q8OoYEeKpRf481yfX-g" target="_q3yi0OoOEeKpRf481yfX-g">
- <children xmi:type="notation:Node" xmi:id="_fjAGMPXSEeKGErZDYCqYOg" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_fjAGMfXSEeKGErZDYCqYOg" x="92" y="-20"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_fjAGMvXSEeKGErZDYCqYOg" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_fjAGM_XSEeKGErZDYCqYOg" x="125" y="12"/>
- </children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_fi28QfXSEeKGErZDYCqYOg" routing="Rectilinear" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_fi28QvXSEeKGErZDYCqYOg" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="setup.ecore#//Setup/updateLocations"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_fi28Q_XSEeKGErZDYCqYOg" points="[11, 21, 658, -398]$[11, 415, 658, -4]$[-597, 415, 50, -4]"/>
+ <edges xmi:type="notation:Edge" xmi:id="_UUhu0AV5EeORNPhE9cWxTA" visible="false" type="3003" source="_LJQ64PTrEeKROP7mUifaFQ" target="_7oaMoAVzEeORNPhE9cWxTA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_UUhu0QV5EeORNPhE9cWxTA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_UUhu0gV5EeORNPhE9cWxTA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UUhu0wV5EeORNPhE9cWxTA" points="[-7, -33, 198, 574]$[-44, -611, 161, -4]"/>
</edges>
- <edges xmi:type="notation:Edge" xmi:id="_q56n4PdCEeKAgoQldAmgzQ" type="3002" source="_bOTg8OoYEeKpRf481yfX-g" target="_iK-h0PdCEeKAgoQldAmgzQ">
- <children xmi:type="notation:Node" xmi:id="_q6EY4PdCEeKAgoQldAmgzQ" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_q6EY4fdCEeKAgoQldAmgzQ" x="-5" y="-47"/>
+ <edges xmi:type="notation:Edge" xmi:id="_PXmFUAV6EeORNPhE9cWxTA" type="3002" source="_JIhT8AV6EeORNPhE9cWxTA" target="_1NjhoDcOEeOvrbVwd-Y02g">
+ <children xmi:type="notation:Node" xmi:id="_PXnTcAV6EeORNPhE9cWxTA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PXnTcQV6EeORNPhE9cWxTA" x="-13" y="-61"/>
</children>
- <children xmi:type="notation:Node" xmi:id="_q6EY4vdCEeKAgoQldAmgzQ" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_q6EY4_dCEeKAgoQldAmgzQ" x="-5" y="15"/>
+ <children xmi:type="notation:Node" xmi:id="_PXnTcgV6EeORNPhE9cWxTA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_PXnTcwV6EeORNPhE9cWxTA" x="-13" y="15"/>
</children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_q56n4fdCEeKAgoQldAmgzQ" routing="Rectilinear" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_q56n4vdCEeKAgoQldAmgzQ" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="setup.ecore#//Preferences/linkLocations"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_q56n4_dCEeKAgoQldAmgzQ" points="[-5, 50, -5, -106]$[-5, 132, -5, -24]"/>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_PXmFUQV6EeORNPhE9cWxTA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_PXmFUgV6EeORNPhE9cWxTA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="setup.ecore#//WorkingSetTask/workingSets"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_PXmFUwV6EeORNPhE9cWxTA" points="[63, 1, 57, -71]$[123, 1, 117, -71]$[123, 94, 117, 22]$[81, 94, 75, 22]"/>
</edges>
- <edges xmi:type="notation:Edge" xmi:id="_LsR48ASwEeOeiM9WAQqlaA" type="3002" source="_2Y42MOoIEeKpRf481yfX-g" target="_BvKIgASwEeOeiM9WAQqlaA">
- <children xmi:type="notation:Node" xmi:id="_LsTHEASwEeOeiM9WAQqlaA" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_LsTHEQSwEeOeiM9WAQqlaA" x="41" y="-61"/>
+ <edges xmi:type="notation:Edge" xmi:id="_DwQHYAV9EeORNPhE9cWxTA" visible="false" type="3003" source="_-8kV8AV8EeORNPhE9cWxTA" target="_7oaMoAVzEeORNPhE9cWxTA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_DwQHYQV9EeORNPhE9cWxTA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_DwQHYgV9EeORNPhE9cWxTA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DwQHYwV9EeORNPhE9cWxTA" points="[-59, 0, 38, 72]$[-59, -72, 38, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_GhbOgAV9EeORNPhE9cWxTA" id="(0.49707602339181284,0.0)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Ghb1kAV9EeORNPhE9cWxTA" id="(0.5,1.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_NmcJYAV9EeORNPhE9cWxTA" type="3003" source="_-8kV8AV8EeORNPhE9cWxTA" target="_RhEkcOoJEeKpRf481yfX-g">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_NmcJYQV9EeORNPhE9cWxTA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_NmcJYgV9EeORNPhE9cWxTA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NmcJYwV9EeORNPhE9cWxTA" points="[53, -11, -243, 142]$[53, -26, -243, 127]$[270, -26, -26, 127]$[270, -129, -26, 24]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NmkFMAV9EeORNPhE9cWxTA" id="(0.39766081871345027,0.18604651162790697)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_qibXkAV9EeORNPhE9cWxTA" type="3002" source="_7oaMoAVzEeORNPhE9cWxTA" target="_7oaMoAVzEeORNPhE9cWxTA">
+ <children xmi:type="notation:Node" xmi:id="_qidMwAV9EeORNPhE9cWxTA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qidMwQV9EeORNPhE9cWxTA" x="-118" y="28"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_qidMwgV9EeORNPhE9cWxTA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_qidMwwV9EeORNPhE9cWxTA" x="32" y="-11"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_qibXkQV9EeORNPhE9cWxTA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_qibXkgV9EeORNPhE9cWxTA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="setup.ecore#//SetupTask/requirements"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qibXkwV9EeORNPhE9cWxTA" points="[-99, 53, -203, 8]$[-99, 127, -203, 82]$[-195, 127, -299, 82]$[-195, 22, -299, -23]$[-135, 22, -239, -23]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_qijTYAV9EeORNPhE9cWxTA" id="(0.8827160493827161,0.9264705882352942)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_NUY90AWCEeORNPhE9cWxTA" type="3003" source="__XTX4AWBEeORNPhE9cWxTA" target="_RhEkcOoJEeKpRf481yfX-g">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_NUY90QWCEeORNPhE9cWxTA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_NUY90gWCEeORNPhE9cWxTA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NUY90wWCEeORNPhE9cWxTA" points="[-1, -20, -1, 163]$[-1, -162, -1, 21]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_pnaukAWCEeORNPhE9cWxTA" type="3002" source="_7oaMoAVzEeORNPhE9cWxTA" target="__XTX4AWBEeORNPhE9cWxTA">
+ <children xmi:type="notation:Node" xmi:id="_pnj4gAWCEeORNPhE9cWxTA" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pnj4gQWCEeORNPhE9cWxTA" x="23" y="-12"/>
</children>
- <children xmi:type="notation:Node" xmi:id="_LsTuIASwEeOeiM9WAQqlaA" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_LsTuIQSwEeOeiM9WAQqlaA" x="10" y="10"/>
+ <children xmi:type="notation:Node" xmi:id="_pnj4ggWCEeORNPhE9cWxTA" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_pnj4gwWCEeORNPhE9cWxTA" x="45" y="17"/>
</children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_LsR48QSwEeOeiM9WAQqlaA" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_LsR48gSwEeOeiM9WAQqlaA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
- <element xmi:type="ecore:EReference" href="setup.ecore#//Project/workingSetGroup"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LsR48wSwEeOeiM9WAQqlaA" points="[-6, -6, 48, 57]$[-52, -32, 2, 31]"/>
- <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LsWKYASwEeOeiM9WAQqlaA" id="(0.11888111888111888,0.1111111111111111)"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LsWKYQSwEeOeiM9WAQqlaA" id="(0.7898089171974523,0.5694444444444444)"/>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_pnaukQWCEeORNPhE9cWxTA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_pnaukgWCEeORNPhE9cWxTA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="setup.ecore#//SetupTask/restrictions"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pnaukwWCEeORNPhE9cWxTA" points="[-41, 33, -374, -149]$[-41, 182, -374, 0]$[274, 182, -59, 0]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_iR67IAWXEeOw6Pg8FrULkw" visible="false" type="3003" source="_PhLMcOoNEeKpRf481yfX-g" target="_7oaMoAVzEeORNPhE9cWxTA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_iR67IQWXEeOw6Pg8FrULkw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_iR67IgWXEeOw6Pg8FrULkw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_iR67IwWXEeOw6Pg8FrULkw" points="[-28, 0, 0, 69]$[-28, -69, 0, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_iSSukAWXEeOw6Pg8FrULkw" id="(0.7457627118644068,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_sSoLEAWXEeOw6Pg8FrULkw" visible="false" type="3003" source="_iK-h0PdCEeKAgoQldAmgzQ" target="_7oaMoAVzEeORNPhE9cWxTA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_sSoyIAWXEeOw6Pg8FrULkw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_sSoyIQWXEeOw6Pg8FrULkw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sSoyIgWXEeOw6Pg8FrULkw" points="[-1, -33, 224, 90]$[-1, -51, 224, 72]$[-226, -51, -1, 72]$[-226, -102, -1, 21]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_QetPwAZpEeO9d-kMVrgNew" visible="false" type="3003" source="_QeGy0AZpEeO9d-kMVrgNew" target="_7oaMoAVzEeORNPhE9cWxTA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_QetPwQZpEeO9d-kMVrgNew" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_QetPwgZpEeO9d-kMVrgNew" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QetPwwZpEeO9d-kMVrgNew" points="[1, 0, -275, -72]$[106, 27, -170, -45]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_HZAu8AcLEeOppfhSm9mbUA" visible="false" type="3003" source="_epPbkAcIEeOppfhSm9mbUA" target="_7oaMoAVzEeORNPhE9cWxTA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_HZAu8QcLEeOppfhSm9mbUA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_HZAu8gcLEeOppfhSm9mbUA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HZAu8wcLEeOppfhSm9mbUA" points="[-12, -18, 508, 792]$[-518, -825, 2, -15]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HZG1kAcLEeOppfhSm9mbUA" id="(0.41916167664670656,0.2235294117647059)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HZG1kQcLEeOppfhSm9mbUA" id="(0.8185654008438819,0.25396825396825395)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_8qN9AAfmEeOppfhSm9mbUA" visible="false" type="3003" source="_s1eHUAflEeOppfhSm9mbUA" target="_7oaMoAVzEeORNPhE9cWxTA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_8qN9AQfmEeOppfhSm9mbUA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_8qN9AgfmEeOppfhSm9mbUA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8qN9AwfmEeOppfhSm9mbUA" points="[-25, -8, 391, 103]$[-25, -26, 391, 85]$[-413, -26, 3, 85]$[-413, -77, 3, 34]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8qUDoAfmEeOppfhSm9mbUA" id="(0.7461538461538462,0.10588235294117647)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_8qUDoQfmEeOppfhSm9mbUA" id="(0.768976897689769,0.5098039215686274)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_aSgZIAmrEeOuXPWwsMY9fA" visible="false" type="3003" source="_aSLB8AmrEeOuXPWwsMY9fA" target="_7oaMoAVzEeORNPhE9cWxTA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_aSgZIQmrEeOuXPWwsMY9fA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_aSgZIgmrEeOuXPWwsMY9fA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aSgZIwmrEeOuXPWwsMY9fA" points="[1, 0, -372, -51]$[256, 35, -117, -16]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_aSiOUAmrEeOuXPWwsMY9fA" visible="false" type="3003" source="_V2XO0AWWEeOw6Pg8FrULkw" target="_7oaMoAVzEeORNPhE9cWxTA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_aSiOUQmrEeOuXPWwsMY9fA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_aSiOUgmrEeOuXPWwsMY9fA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aSiOUwmrEeOuXPWwsMY9fA" points="[40, -53, -79, 70]$[40, -63, -79, 60]$[-33, -63, -152, 60]$[-33, -122, -152, 1]$[37, -122, -82, 1]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_aSkDgAmrEeOuXPWwsMY9fA" visible="false" type="3003" source="_JIhT8AV6EeORNPhE9cWxTA" target="_7oaMoAVzEeORNPhE9cWxTA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_aSkDgQmrEeOuXPWwsMY9fA" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_aSkDggmrEeOuXPWwsMY9fA" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_aSkDgwmrEeOuXPWwsMY9fA" points="[-1, -20, 87, 97]$[-1, -61, 87, 56]$[-89, -61, -1, 56]$[-89, -92, -1, 25]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_VNkPsDWJEeO0we5dUm5hxw" visible="false" type="3003" source="_QJaZUDWJEeO0we5dUm5hxw" target="_7oaMoAVzEeORNPhE9cWxTA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_VNkPsTWJEeO0we5dUm5hxw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_VNkPsjWJEeO0we5dUm5hxw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_VNkPszWJEeO0we5dUm5hxw" points="[-5, -4, 809, 539]$[-812, -543, 2, 0]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VNld0DWJEeO0we5dUm5hxw" id="(0.03680981595092025,0.1836734693877551)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_VNld0TWJEeO0we5dUm5hxw" id="(0.6455696202531646,0.0)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_hJ66sDWOEeO0we5dUm5hxw" type="3002" source="_am8vMDWJEeO0we5dUm5hxw" target="_erZCwDWOEeO0we5dUm5hxw">
+ <children xmi:type="notation:Node" xmi:id="_hJ7hwDWOEeO0we5dUm5hxw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hJ7hwTWOEeO0we5dUm5hxw" x="-34" y="-64"/>
+ </children>
+ <children xmi:type="notation:Node" xmi:id="_hJ8I0DWOEeO0we5dUm5hxw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_hJ8I0TWOEeO0we5dUm5hxw" x="-10" y="46"/>
+ </children>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_hJ66sTWOEeO0we5dUm5hxw" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_hJ66sjWOEeO0we5dUm5hxw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <element xmi:type="ecore:EReference" href="setup.ecore#//TextModifyTask/modifications"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_hJ66szWOEeO0we5dUm5hxw" points="[-3, 31, 8, -67]$[-10, 122, 1, 24]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_hJ9W8DWOEeO0we5dUm5hxw" id="(0.1891891891891892,0.5102040816326531)"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_P6PtMDWPEeO0we5dUm5hxw" visible="false" type="3003" source="_am8vMDWJEeO0we5dUm5hxw" target="_7oaMoAVzEeORNPhE9cWxTA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_P6PtMTWPEeO0we5dUm5hxw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_P6PtMjWPEeO0we5dUm5hxw" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_P6PtMzWPEeO0we5dUm5hxw" points="[-44, -30, 867, 595]$[-912, -655, -1, -30]"/>
+ </edges>
+ <edges xmi:type="notation:Edge" xmi:id="_dFqQQDYsEeO8Ub-p5y_fsQ" type="3003" source="_678VMOoJEeKpRf481yfX-g" target="__XTX4AWBEeORNPhE9cWxTA">
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_dFqQQTYsEeO8Ub-p5y_fsQ" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_dFqQQjYsEeO8Ub-p5y_fsQ" fontName="Segoe UI"/>
+ <element xsi:nil="true"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_dFqQQzYsEeO8Ub-p5y_fsQ" points="[11, -9, -513, 455]$[525, -471, 1, -7]"/>
+ <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dF2dgDYsEeO8Ub-p5y_fsQ" id="(0.3089887640449438,0.14705882352941177)"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_dF2dgTYsEeO8Ub-p5y_fsQ" id="(0.09933774834437085,0.6938775510204082)"/>
</edges>
</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.genmodel b/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.genmodel
index b5aaeda28a..d07ba3b4fc 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.genmodel
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/model/setup.genmodel
@@ -3,83 +3,50 @@
xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.emf.cdo.releng.setup/src" creationIcons="false"
modelPluginID="org.eclipse.emf.cdo.releng.setup" modelName="Setup" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
codeFormatting="true" testsDirectory="" importerID="org.eclipse.emf.importer.ecore"
- complianceLevel="5.0" copyrightFields="false" optimizedHasChildren="true" runtimeVersion="2.5"
- usedGenPackages="../../org.eclipse.emf.cdo.releng.workingsets/model/workingsets.genmodel#//workingsets"
+ containmentProxies="true" complianceLevel="5.0" copyrightFields="false" optimizedHasChildren="true"
+ runtimeVersion="2.5" usedGenPackages="../../org.eclipse.emf.cdo.releng.workingsets/model/workingsets.genmodel#//workingsets ../../org.eclipse.emf.cdo.releng.predicates/model/predicates.genmodel#//predicates"
importOrganizing="true">
<foreignModel>setup.ecore</foreignModel>
<genPackages prefix="Setup" basePackage="org.eclipse.emf.cdo.releng" disposableProviderFactory="true"
- multipleEditorPages="false" ecorePackage="setup.ecore#/">
+ multipleEditorPages="false" extensibleProviderFactory="true" childCreationExtenders="true"
+ ecorePackage="setup.ecore#/">
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="setup.ecore#//SetupTaskScope">
+ <genEnumLiterals ecoreEnumLiteral="setup.ecore#//SetupTaskScope/None"/>
+ <genEnumLiterals ecoreEnumLiteral="setup.ecore#//SetupTaskScope/Configuration"/>
+ <genEnumLiterals ecoreEnumLiteral="setup.ecore#//SetupTaskScope/Project"/>
+ <genEnumLiterals ecoreEnumLiteral="setup.ecore#//SetupTaskScope/Branch"/>
+ <genEnumLiterals ecoreEnumLiteral="setup.ecore#//SetupTaskScope/User"/>
+ </genEnums>
+ <genEnums typeSafeEnumCompatible="false" ecoreEnum="setup.ecore#//Trigger">
+ <genEnumLiterals ecoreEnumLiteral="setup.ecore#//Trigger/BOOTSTRAP"/>
+ <genEnumLiterals ecoreEnumLiteral="setup.ecore#//Trigger/STARTUP"/>
+ <genEnumLiterals ecoreEnumLiteral="setup.ecore#//Trigger/MANUAL"/>
+ </genEnums>
<genDataTypes ecoreDataType="setup.ecore#//URI"/>
- <genClasses ecoreClass="setup.ecore#//Preferences">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/userName"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/installFolder"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/gitPrefix"/>
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Preferences/linkLocations"/>
- </genClasses>
- <genClasses ecoreClass="setup.ecore#//LinkLocation" labelFeature="#//setup/LinkLocation/path">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//LinkLocation/path"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//LinkLocation/name"/>
- </genClasses>
- <genClasses ecoreClass="setup.ecore#//ToolInstallation">
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//ToolInstallation/directorCalls"/>
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//ToolInstallation/toolPreferences"/>
- </genClasses>
- <genClasses ecoreClass="setup.ecore#//ToolPreference">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ToolPreference/key"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ToolPreference/value"/>
- </genClasses>
+ <genDataTypes ecoreDataType="setup.ecore#//Exception"/>
+ <genDataTypes ecoreDataType="setup.ecore#//TriggerSet"/>
<genClasses ecoreClass="setup.ecore#//EclipseVersion">
<genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//EclipseVersion/configuration"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//EclipseVersion/version"/>
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//EclipseVersion/directorCall"/>
- </genClasses>
- <genClasses ecoreClass="setup.ecore#//DirectorCall">
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//DirectorCall/installableUnits"/>
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//DirectorCall/p2Repositories"/>
- </genClasses>
- <genClasses ecoreClass="setup.ecore#//InstallableUnit">
- <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//InstallableUnit/directorCall"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//InstallableUnit/id"/>
- </genClasses>
- <genClasses ecoreClass="setup.ecore#//P2Repository">
- <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//P2Repository/directorCall"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//P2Repository/url"/>
</genClasses>
<genClasses ecoreClass="setup.ecore#//Configuration">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Configuration/projects"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Configuration/eclipseVersions"/>
</genClasses>
+ <genClasses image="false" ecoreClass="setup.ecore#//ConfigurableItem"/>
<genClasses ecoreClass="setup.ecore#//Project">
<genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//Project/configuration"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Project/branches"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Project/name"/>
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Project/apiBaselines"/>
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Project/workingSetGroup"/>
</genClasses>
<genClasses ecoreClass="setup.ecore#//Branch">
<genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//Branch/project"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Branch/name"/>
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Branch/gitClones"/>
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference setup.ecore#//Branch/apiBaseline"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Branch/mspecFilePath"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Branch/cloneVariableName"/>
- <genOperations ecoreOperation="setup.ecore#//Branch/isInstalled">
- <genParameters ecoreParameter="setup.ecore#//Branch/isInstalled/installFolder"/>
- </genOperations>
- <genOperations ecoreOperation="setup.ecore#//Branch/getURI">
- <genParameters ecoreParameter="setup.ecore#//Branch/getURI/installFolder"/>
- </genOperations>
- </genClasses>
- <genClasses ecoreClass="setup.ecore#//ApiBaseline">
- <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//ApiBaseline/project"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ApiBaseline/version"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ApiBaseline/zipLocation"/>
</genClasses>
- <genClasses ecoreClass="setup.ecore#//GitClone" labelFeature="#//setup/GitClone/remoteURI">
- <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//GitClone/branch"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitClone/name"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitClone/remoteURI"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitClone/checkoutBranch"/>
+ <genClasses ecoreClass="setup.ecore#//Preferences">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/userName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/installFolder"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//Preferences/gitPrefix"/>
</genClasses>
<genClasses ecoreClass="setup.ecore#//Setup">
<genFeatures notify="false" children="true" createChild="false" propertySortChoices="true"
@@ -87,7 +54,90 @@
<genFeatures notify="false" children="true" createChild="false" propertySortChoices="true"
ecoreFeature="ecore:EReference setup.ecore#//Setup/eclipseVersion"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Setup/preferences"/>
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//Setup/updateLocations"/>
+ <genOperations ecoreOperation="setup.ecore#//Setup/getSetupTasks">
+ <genParameters ecoreParameter="setup.ecore#//Setup/getSetupTasks/filterRestrictions"/>
+ <genParameters ecoreParameter="setup.ecore#//Setup/getSetupTasks/trigger"/>
+ </genOperations>
+ </genClasses>
+ <genClasses image="false" ecoreClass="setup.ecore#//SetupTask">
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference setup.ecore#//SetupTask/requirements"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference setup.ecore#//SetupTask/restrictions"/>
+ <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//SetupTask/scope"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//SetupTask/excludedTriggers"/>
+ <genOperations ecoreOperation="setup.ecore#//SetupTask/requires">
+ <genParameters ecoreParameter="setup.ecore#//SetupTask/requires/setupTask"/>
+ </genOperations>
+ <genOperations ecoreOperation="setup.ecore#//SetupTask/getValidTriggers"/>
+ <genOperations ecoreOperation="setup.ecore#//SetupTask/getTriggers"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="setup.ecore#//SetupTaskContainer">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//SetupTaskContainer/setupTasks"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//CompoundSetupTask">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//CompoundSetupTask/name"/>
+ </genClasses>
+ <genClasses image="false" ecoreClass="setup.ecore#//OneTimeSetupTask">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//OneTimeSetupTask/id"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//EclipseIniTask" labelFeature="#//setup/EclipseIniTask/option">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//EclipseIniTask/option"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//EclipseIniTask/value"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//EclipseIniTask/vm"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//LinkLocationTask" labelFeature="#//setup/LinkLocationTask/path">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//LinkLocationTask/path"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//LinkLocationTask/name"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//P2Task">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//P2Task/p2Repositories"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//P2Task/installableUnits"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//InstallableUnit">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//InstallableUnit/p2Task"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//InstallableUnit/id"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//P2Repository">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference setup.ecore#//P2Repository/p2Task"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//P2Repository/url"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//BuckminsterImportTask" labelFeature="#//setup/BuckminsterImportTask/mspec">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//BuckminsterImportTask/mspec"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//BuckminsterImportTask/targetPlatform"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//BuckminsterImportTask/bundlePool"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//ApiBaselineTask" labelFeature="#//setup/ApiBaselineTask/version">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ApiBaselineTask/version"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ApiBaselineTask/zipLocation"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//GitCloneTask">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitCloneTask/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitCloneTask/remoteName"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitCloneTask/remoteURI"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//GitCloneTask/checkoutBranch"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//EclipsePreferenceTask" labelFeature="#//setup/EclipsePreferenceTask/key">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//EclipsePreferenceTask/key"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//EclipsePreferenceTask/value"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//StringVariableTask">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//StringVariableTask/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//StringVariableTask/value"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//StringVariableTask/description"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//WorkingSetTask">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//WorkingSetTask/workingSets"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//ResourceCopyTask">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ResourceCopyTask/sourceURL"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//ResourceCopyTask/targetURL"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//TextModifyTask">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//TextModifyTask/url"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference setup.ecore#//TextModifyTask/modifications"/>
+ </genClasses>
+ <genClasses ecoreClass="setup.ecore#//TextModification">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//TextModification/pattern"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute setup.ecore#//TextModification/substitutions"/>
</genClasses>
</genPackages>
</genmodel:GenModel>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.setup/plugin.xml
index 018bf574cb..632bc9a386 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/plugin.xml
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/plugin.xml
@@ -21,4 +21,12 @@
genModel="model/setup.genmodel"/>
</extension>
+ <extension
+ point="org.eclipse.ui.startup">
+ <startup
+ class="org.eclipse.emf.cdo.releng.internal.setup.Activator$EarlyStartup">
+ </startup>
+ </extension>
+
+
</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Activator.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/Activator.java
index 49daa4e6df..5bcf7a3b8b 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Activator.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/Activator.java
@@ -8,12 +8,13 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.helper;
+package org.eclipse.emf.cdo.releng.internal.setup;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Plugin;
import org.eclipse.core.runtime.Status;
+import org.eclipse.ui.IStartup;
import org.osgi.framework.BundleContext;
@@ -24,9 +25,14 @@ public class Activator extends Plugin
{
public static final String PLUGIN_ID = "org.eclipse.emf.cdo.releng.setup";
+ public static final boolean SETUP_IDE = "true".equalsIgnoreCase(System.getProperty(
+ "org.eclipse.emf.cdo.releng.setup.ide", "false"));
+
private static Activator plugin;
- static BundleContext bundleContext;
+ private static BundleContext bundleContext;
+
+ private SetupTaskPerformer setupTaskPerformer;
public Activator()
{
@@ -38,11 +44,37 @@ public class Activator extends Plugin
super.start(context);
bundleContext = context;
plugin = this;
+
+ try
+ {
+ if (SETUP_IDE)
+ {
+ setupTaskPerformer = new SetupTaskPerformer(false);
+ setupTaskPerformer.perform();
+ }
+ }
+ catch (Exception ex)
+ {
+ log(ex);
+ }
}
@Override
public void stop(BundleContext context) throws Exception
{
+ try
+ {
+ if (setupTaskPerformer != null)
+ {
+ setupTaskPerformer.dispose();
+ setupTaskPerformer = null;
+ }
+ }
+ catch (Exception ex)
+ {
+ log(ex);
+ }
+
plugin = null;
super.stop(context);
}
@@ -86,8 +118,23 @@ public class Activator extends Plugin
return new Status(IStatus.ERROR, PLUGIN_ID, msg, t);
}
+ public static BundleContext getBundleContext()
+ {
+ return bundleContext;
+ }
+
public static Activator getDefault()
{
return plugin;
}
+
+ /**
+ * @author Eike Stepper
+ */
+ public static final class EarlyStartup implements IStartup
+ {
+ public void earlyStartup()
+ {
+ }
+ }
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java
new file mode 100644
index 0000000000..a101cd47c5
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java
@@ -0,0 +1,540 @@
+/*
+ * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.internal.setup;
+
+import org.eclipse.emf.cdo.releng.internal.setup.ui.ProgressLogDialog;
+import org.eclipse.emf.cdo.releng.setup.Branch;
+import org.eclipse.emf.cdo.releng.setup.Project;
+import org.eclipse.emf.cdo.releng.setup.Setup;
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+import org.eclipse.emf.cdo.releng.setup.util.OS;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogRunnable;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Map;
+import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @author Eike Stepper
+ */
+public class SetupTaskPerformer extends HashMap<Object, Object> implements SetupTaskContext
+{
+ private static final String RELENG_URL = System.getProperty("releng.url",
+ "http://download.eclipse.org/modeling/emf/cdo/updates/integration").replace('\\', '/');
+
+ private static final long serialVersionUID = 1L;
+
+ private static ProgressLog progress;
+
+ private Trigger trigger;
+
+ private File branchDir;
+
+ private Setup setup;
+
+ private transient boolean restartNeeded;
+
+ private List<String> logMessageBuffer;
+
+ public SetupTaskPerformer(File branchDir)
+ {
+ trigger = Trigger.BOOTSTRAP;
+
+ this.branchDir = branchDir;
+
+ initialize();
+ }
+
+ public SetupTaskPerformer(boolean manual) throws Exception
+ {
+ trigger = manual ? Trigger.MANUAL : Trigger.STARTUP;
+
+ IPath branchDirPath = ResourcesPlugin.getWorkspace().getRoot().getLocation().removeLastSegments(1);
+ branchDir = new File(branchDirPath.toOSString()).getCanonicalFile();
+
+ initialize();
+ }
+
+ private void initialize()
+ {
+ ResourceSet resourceSet = new ResourceSetImpl();
+ resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("xmi", new XMIResourceFactoryImpl());
+
+ URI uri = URI.createFileURI(branchDir.toString() + "/setup.xmi");
+ Resource resource = resourceSet.getResource(uri, true);
+
+ setup = (Setup)resource.getContents().get(0);
+
+ Branch branch = setup.getBranch();
+ String branchName = branch.getName();
+
+ Project project = branch.getProject();
+ String projectName = project.getName();
+
+ put("setup.git.prefix", setup.getPreferences().getGitPrefix());
+ put("setup.install.dir", getInstallDir());
+ put("setup.project.dir", getProjectDir());
+ put("setup.branch.dir", getBranchDir());
+ put("setup.eclipse.dir", getEclipseDir());
+ put("setup.tp.dir", getTargetPlatformDir());
+ put("setup.ws.dir", getWorkspaceDir());
+ put("setup.project.name", projectName);
+ put("setup.branch.name", branchName);
+ put("releng.url", RELENG_URL);
+ }
+
+ public void dispose()
+ {
+ setup = null;
+ branchDir = null;
+ }
+
+ public void log(String line)
+ {
+ if (progress != null)
+ {
+ if (logMessageBuffer != null)
+ {
+ for (String value : logMessageBuffer)
+ {
+ progress.log(value);
+ }
+
+ logMessageBuffer = null;
+ }
+
+ progress.log(line);
+ }
+ else
+ {
+ if (logMessageBuffer == null)
+ {
+ logMessageBuffer = new ArrayList<String>();
+ }
+
+ logMessageBuffer.add(line);
+ }
+ }
+
+ public boolean isCancelled()
+ {
+ if (progress != null)
+ {
+ return progress.isCancelled();
+ }
+
+ return false;
+ }
+
+ public Trigger getTrigger()
+ {
+ return trigger;
+ }
+
+ public boolean isRestartNeeded()
+ {
+ return restartNeeded;
+ }
+
+ public void setRestartNeeded()
+ {
+ restartNeeded = true;
+ }
+
+ private static final Pattern PATTERN = Pattern.compile("\\$\\{([^${}|]+)(\\|([^}]+))?}");
+
+ protected String lookup(String key)
+ {
+ Object object = get(key);
+ if (object != null)
+ {
+ return object.toString();
+ }
+
+ return System.getProperty(key, key);
+ }
+
+ interface StringFilter
+ {
+ public String filter(String value);
+ }
+
+ private static final Map<String, StringFilter> FILTERS = new HashMap<String, StringFilter>();
+
+ static
+ {
+ FILTERS.put("uri", new StringFilter()
+ {
+ public String filter(String value)
+ {
+ return URI.createFileURI(value).toString();
+ }
+ });
+ FILTERS.put("upper", new StringFilter()
+ {
+ public String filter(String value)
+ {
+ return value.toUpperCase();
+ }
+ });
+ FILTERS.put("lower", new StringFilter()
+ {
+ public String filter(String value)
+ {
+ return value.toLowerCase();
+ }
+ });
+ }
+
+ protected String filter(String value, String filterName)
+ {
+ StringFilter filter = FILTERS.get(filterName);
+ if (filter != null)
+ {
+ return filter.filter(value);
+ }
+
+ return value;
+ }
+
+ public String expandString(String string)
+ {
+ StringBuilder result = new StringBuilder();
+ int previous = 0;
+ for (Matcher matcher = PATTERN.matcher(string); matcher.find();)
+ {
+ result.append(string.substring(previous, matcher.start()));
+ String key = matcher.group(1);
+ String value = lookup(key);
+ String filters = matcher.group(3);
+ if (filters != null)
+ {
+ for (String filterName : filters.split("\\|"))
+ {
+ value = filter(value, filterName);
+ }
+ }
+ result.append(value);
+ previous = matcher.end();
+ }
+ result.append(string.substring(previous));
+ return result.toString();
+ }
+
+ public OS getOS()
+ {
+ return OS.INSTANCE;
+ }
+
+ public String getP2ProfileName()
+ {
+ Branch branch = setup.getBranch();
+ Project project = branch.getProject();
+
+ String profileName = project.getName() + "_" + branch.getName();
+ profileName = profileName.replace('.', '_');
+ profileName = profileName.replace('-', '_');
+ profileName = profileName.replace('/', '_');
+ profileName = profileName.replace('\\', '_');
+ return profileName;
+ }
+
+ public File getP2ProfileDir()
+ {
+ return new File(getP2AgentDir(), "org.eclipse.equinox.p2.engine/profileRegistry/" + getP2ProfileName() + ".profile");
+ }
+
+ public File getP2AgentDir()
+ {
+ return new File(getP2PoolDir(), "p2");
+ }
+
+ public File getP2PoolDir()
+ {
+ return new File(getInstallDir(), ".p2pool-ide");
+ }
+
+ public File getInstallDir()
+ {
+ return getProjectDir().getParentFile();
+ }
+
+ public File getProjectDir()
+ {
+ return branchDir.getParentFile();
+ }
+
+ public File getBranchDir()
+ {
+ return branchDir;
+ }
+
+ public File getEclipseDir()
+ {
+ return new File(branchDir, "eclipse");
+ }
+
+ // TODO Is this Bucky-specific?
+ public File getTargetPlatformDir()
+ {
+ return new File(branchDir, "tp");
+ }
+
+ public File getWorkspaceDir()
+ {
+ return new File(branchDir, "ws");
+ }
+
+ public Setup getSetup()
+ {
+ return setup;
+ }
+
+ public void perform() throws Exception
+ {
+ EList<SetupTask> setupTasks = setup.getSetupTasks(true, trigger);
+ if (setupTasks.isEmpty())
+ {
+ return;
+ }
+
+ Map<SetupTask, SetupTask> substitutions = getSubstitutions(setupTasks);
+ setup = copySetup(setupTasks, substitutions);
+
+ perform(setupTasks);
+ }
+
+ private void perform(EList<SetupTask> setupTasks) throws Exception
+ {
+ final EList<SetupTask> neededTasks = getNeededTasks(setupTasks);
+ if (neededTasks.isEmpty())
+ {
+ return;
+ }
+
+ if (Activator.SETUP_IDE && trigger != Trigger.MANUAL)
+ {
+ File logFile = new File(getInstallDir(), "setup.log");
+ IWorkbenchWindow window = PlatformUI.getWorkbench().getWorkbenchWindows()[0];
+ final Shell shell = window.getShell();
+ ProgressLogDialog.run(shell, logFile, "Setting up IDE", new ProgressLogRunnable()
+ {
+ public boolean run(ProgressLog log) throws Exception
+ {
+ doPerform(neededTasks);
+ return isRestartNeeded();
+ }
+ });
+ }
+ else
+ {
+ doPerform(neededTasks);
+ }
+ }
+
+ private void doPerform(EList<SetupTask> neededTasks) throws Exception
+ {
+ Branch branch = setup.getBranch();
+ log("Setting up " + branch.getProject().getName() + " " + branch.getName());
+
+ for (SetupTask neededTask : neededTasks)
+ {
+ neededTask.perform(this);
+ neededTask.dispose();
+ }
+ }
+
+ private Map<SetupTask, SetupTask> getSubstitutions(EList<SetupTask> setupTasks)
+ {
+ SetupTaskComparator.sort(setupTasks);
+
+ Map<Object, SetupTask> overrides = new HashMap<Object, SetupTask>();
+ Map<SetupTask, SetupTask> substitutions = new HashMap<SetupTask, SetupTask>();
+
+ for (SetupTask setupTask : setupTasks)
+ {
+ Object overrideToken = setupTask.getOverrideToken();
+ SetupTask overriddenTask = overrides.put(overrideToken, setupTask);
+ if (overriddenTask != null)
+ {
+ substitutions.put(overriddenTask, setupTask);
+ }
+ }
+
+ // Shorten the paths through the substitutions map
+ for (Map.Entry<SetupTask, SetupTask> entry : substitutions.entrySet())
+ {
+ SetupTask task = entry.getValue();
+
+ for (;;)
+ {
+ SetupTask overridingTask = substitutions.get(task);
+ if (overridingTask == null)
+ {
+ break;
+ }
+
+ entry.setValue(overridingTask);
+ }
+ }
+
+ return substitutions;
+ }
+
+ private Setup copySetup(EList<SetupTask> setupTasks, Map<SetupTask, SetupTask> substitutions)
+ {
+ Set<EObject> roots = new LinkedHashSet<EObject>();
+ roots.add(setup);
+
+ for (EObject eObject : setup.eCrossReferences())
+ {
+ EObject rootContainer = EcoreUtil.getRootContainer(eObject);
+ roots.add(rootContainer);
+ }
+
+ EcoreUtil.Copier copier = new EcoreUtil.Copier();
+ Setup setup = (Setup)copier.copyAll(roots).iterator().next();
+
+ for (Map.Entry<SetupTask, SetupTask> entry : substitutions.entrySet())
+ {
+ SetupTask overriddenTask = entry.getKey();
+ SetupTask overridingTask = entry.getValue();
+
+ EObject copy = copier.get(overridingTask);
+ copier.put(overriddenTask, copy);
+ }
+
+ copier.copyReferences();
+
+ for (ListIterator<SetupTask> it = setupTasks.listIterator(); it.hasNext();)
+ {
+ SetupTask setupTask = it.next();
+ if (substitutions.containsKey(setupTask))
+ {
+ it.remove();
+ }
+ else
+ {
+ SetupTask copy = (SetupTask)copier.get(setupTask);
+ it.set(copy);
+ }
+ }
+
+ SetupTaskComparator.sort(setupTasks);
+ return setup;
+ }
+
+ private EList<SetupTask> getNeededTasks(EList<SetupTask> setupTasks) throws Exception
+ {
+ EList<SetupTask> result = new BasicEList<SetupTask>();
+
+ for (Iterator<SetupTask> it = setupTasks.iterator(); it.hasNext();)
+ {
+ SetupTask setupTask = it.next();
+ if (setupTask.isNeeded(this))
+ {
+ result.add(setupTask);
+ }
+ else
+ {
+ setupTask.dispose();
+ }
+ }
+
+ return result;
+ }
+
+ public static ProgressLog getProgress()
+ {
+ return progress;
+ }
+
+ public static void setProgress(ProgressLog progress)
+ {
+ SetupTaskPerformer.progress = progress;
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ public static class SetupTaskComparator implements Comparator<SetupTask>
+ {
+ public static void sort(EList<SetupTask> setupTasks)
+ {
+ Collections.sort(setupTasks, new SetupTaskComparator());
+ }
+
+ public int compare(SetupTask t1, SetupTask t2)
+ {
+ boolean t1RequiresT2 = t1.requires(t2);
+ boolean t2RequiresT1 = t2.requires(t1);
+ if (t1RequiresT2 && t2RequiresT1)
+ {
+ throw new IllegalStateException("Requirements cycle detected between " + t1 + " and " + t2);
+ }
+
+ if (t1RequiresT2 && !t2RequiresT1)
+ {
+ return 1;
+ }
+
+ if (!t1RequiresT2 && t2RequiresT1)
+ {
+ return -1;
+ }
+
+ int scope1 = t1.getScope().getValue();
+ int scope2 = t2.getScope().getValue();
+ if (scope1 < scope2)
+ {
+ return -1;
+ }
+
+ if (scope1 > scope2)
+ {
+ return 1;
+ }
+
+ String uri1 = EcoreUtil.getURI(t1).toString();
+ String uri2 = EcoreUtil.getURI(t2).toString();
+ return uri1.compareTo(uri2); // Arbitrary but symmetric within one ResourceSet
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/emf/cdo/releng/setup/ui/ProgressLogDialog.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java
index 5afc52299b..a157fba1e6 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/emf/cdo/releng/setup/ui/ProgressLogDialog.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ProgressLogDialog.java
@@ -8,11 +8,13 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.ui;
+package org.eclipse.emf.cdo.releng.internal.setup.ui;
-import org.eclipse.emf.cdo.releng.setup.helper.Progress;
-import org.eclipse.emf.cdo.releng.setup.helper.ProgressLog;
-import org.eclipse.emf.cdo.releng.setup.helper.ProgressLogRunnable;
+import org.eclipse.emf.cdo.releng.internal.setup.Activator;
+import org.eclipse.emf.cdo.releng.internal.setup.SetupTaskPerformer;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogProvider;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogRunnable;
import org.eclipse.net4j.util.io.IOUtil;
@@ -33,11 +35,11 @@ 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.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.PlatformUI;
-import org.eclipse.wb.swt.ResourceManager;
-import org.eclipse.wb.swt.SWTResourceManager;
+import org.eclipse.ui.internal.progress.ProgressManager;
import java.io.File;
import java.io.FileNotFoundException;
@@ -90,7 +92,7 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
protected Control createDialogArea(Composite parent)
{
setMessage("Please wait until the setup process is finished and the OK button is enabled...");
- setTitleImage(ResourceManager.getPluginImage("org.eclipse.emf.cdo.releng.setup.editor", "icons/install_wiz.gif"));
+ setTitleImage(ResourceManager.getPluginImage("org.eclipse.emf.cdo.releng.setup", "icons/install_wiz.gif"));
getShell().setText(TITLE);
setTitle(TITLE);
@@ -133,13 +135,16 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
public synchronized void create()
{
super.create();
- Progress.set(this);
+ SetupTaskPerformer.setProgress(this);
+ ProgressManager oldProgressProvider = ProgressManager.getInstance();
+ ProgressLogProvider newProgressLogProvider = new ProgressLogProvider(this, oldProgressProvider);
+ Job.getJobManager().setProgressProvider(newProgressLogProvider);
}
@Override
public boolean close()
{
- Progress.set(null);
+ SetupTaskPerformer.setProgress(null);
if (logStream != null)
{
@@ -167,7 +172,7 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
return cancelled;
}
- public void addLine(String line)
+ public void log(String line)
{
if (isCancelled())
{
@@ -182,7 +187,7 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
|| line.startsWith("Searching for associated repositories.") || line.startsWith("Preparing type ")
|| line.startsWith("Loading project description") || line.startsWith("Generating cspec from PDE artifacts")
|| line.startsWith("Reporting encoding changes") || line.startsWith("Saving")
- || line.startsWith("Downloading software"))
+ || line.startsWith("Downloading software") || line.startsWith("Java indexing..."))
{
return;
}
@@ -237,6 +242,8 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
public void setFinished()
{
+ Job.getJobManager().setProgressProvider(ProgressManager.getInstance());
+
asyncExec(new Runnable()
{
public void run()
@@ -281,7 +288,7 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
{
final boolean[] restart = { false };
final ProgressLogDialog dialog = new ProgressLogDialog(shell, logFile);
- shell.getDisplay().asyncExec(new Runnable()
+ Runnable jobRunnable = new Runnable()
{
public void run()
{
@@ -294,20 +301,20 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
try
{
- dialog.addLine(jobName);
+ dialog.log(jobName);
restart[0] = runnable.run(dialog);
}
catch (Exception ex)
{
Activator.log(ex);
- dialog.addLine("An error occured: " + ex.getMessage());
- dialog.addLine("The Error Log contains more infos...");
+ dialog.log("An error occured: " + ex.getMessage());
+ dialog.log("The Error Log contains more infos...");
}
finally
{
long seconds = (System.currentTimeMillis() - start) / 1000;
- dialog.addLine("Took " + seconds + " seconds.");
- dialog.addLine("Press OK to close the dialog" + (restart[0] ? " and restart Eclipse" : "") + "...");
+ dialog.log("Took " + seconds + " seconds.");
+ dialog.log("Press OK to close the dialog" + (restart[0] ? " and restart Eclipse" : "") + "...");
dialog.setFinished();
}
@@ -316,12 +323,21 @@ public class ProgressLogDialog extends TitleAreaDialog implements ProgressLog
};
job.schedule();
+
+ if (dialog.open() == ProgressLogDialog.OK && restart[0])
+ {
+ PlatformUI.getWorkbench().restart();
+ }
}
- });
+ };
- if (dialog.open() == ProgressLogDialog.OK && restart[0])
+ if (Display.getCurrent() == shell.getDisplay())
+ {
+ jobRunnable.run();
+ }
+ else
{
- PlatformUI.getWorkbench().restart();
+ shell.getDisplay().asyncExec(jobRunnable);
}
}
catch (Exception ex)
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ResourceManager.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ResourceManager.java
new file mode 100644
index 0000000000..889bda0117
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/ResourceManager.java
@@ -0,0 +1,511 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Google, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Google, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.cdo.releng.internal.setup.ui;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.resource.CompositeImageDescriptor;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+
+import org.osgi.framework.Bundle;
+
+import java.io.File;
+import java.io.InputStream;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * Utility class for managing OS resources associated with SWT/JFace controls such as colors, fonts, images,
+ * etc.
+ *
+ * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the
+ * operating system resources managed by cached objects when those objects and OS resources are no longer
+ * needed (e.g. on application shutdown)
+ *
+ * This class may be freely distributed as part of any application or plugin.
+ * <p>
+ *
+ * @author scheglov_ke
+ * @author Dan Rubel
+ */
+public class ResourceManager extends SWTResourceManager
+{
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // Image
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ private static Map<ImageDescriptor, Image> m_descriptorImageMap = new HashMap<ImageDescriptor, Image>();
+
+ /**
+ * Returns an {@link ImageDescriptor} stored in the file at the specified path relative to the specified
+ * class.
+ *
+ * @param clazz
+ * the {@link Class} relative to which to find the image descriptor.
+ * @param path
+ * the path to the image file.
+ * @return the {@link ImageDescriptor} stored in the file at the specified path.
+ */
+ public static ImageDescriptor getImageDescriptor(Class<?> clazz, String path)
+ {
+ return ImageDescriptor.createFromFile(clazz, path);
+ }
+
+ /**
+ * Returns an {@link ImageDescriptor} stored in the file at the specified path.
+ *
+ * @param path
+ * the path to the image file.
+ * @return the {@link ImageDescriptor} stored in the file at the specified path.
+ */
+ public static ImageDescriptor getImageDescriptor(String path)
+ {
+ try
+ {
+ return ImageDescriptor.createFromURL(new File(path).toURI().toURL());
+ }
+ catch (MalformedURLException e)
+ {
+ return null;
+ }
+ }
+
+ /**
+ * Returns an {@link Image} based on the specified {@link ImageDescriptor}.
+ *
+ * @param descriptor
+ * the {@link ImageDescriptor} for the {@link Image}.
+ * @return the {@link Image} based on the specified {@link ImageDescriptor}.
+ */
+ public static Image getImage(ImageDescriptor descriptor)
+ {
+ if (descriptor == null)
+ {
+ return null;
+ }
+ Image image = m_descriptorImageMap.get(descriptor);
+ if (image == null)
+ {
+ image = descriptor.createImage();
+ m_descriptorImageMap.put(descriptor, image);
+ }
+ return image;
+ }
+
+ /**
+ * Maps images to decorated images.
+ */
+ @SuppressWarnings("unchecked")
+ private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY];
+
+ /**
+ * Returns an {@link Image} composed of a base image decorated by another image.
+ *
+ * @param baseImage
+ * the base {@link Image} that should be decorated.
+ * @param decorator
+ * the {@link Image} to decorate the base image.
+ * @return {@link Image} The resulting decorated image.
+ */
+ public static Image decorateImage(Image baseImage, Image decorator)
+ {
+ return decorateImage(baseImage, decorator, BOTTOM_RIGHT);
+ }
+
+ /**
+ * Returns an {@link Image} composed of a base image decorated by another image.
+ *
+ * @param baseImage
+ * the base {@link Image} that should be decorated.
+ * @param decorator
+ * the {@link Image} to decorate the base image.
+ * @param corner
+ * the corner to place decorator image.
+ * @return the resulting decorated {@link Image}.
+ */
+ public static Image decorateImage(final Image baseImage, final Image decorator, final int corner)
+ {
+ if (corner <= 0 || corner >= LAST_CORNER_KEY)
+ {
+ throw new IllegalArgumentException("Wrong decorate corner");
+ }
+ Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner];
+ if (cornerDecoratedImageMap == null)
+ {
+ cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>();
+ m_decoratedImageMap[corner] = cornerDecoratedImageMap;
+ }
+ Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage);
+ if (decoratedMap == null)
+ {
+ decoratedMap = new HashMap<Image, Image>();
+ cornerDecoratedImageMap.put(baseImage, decoratedMap);
+ }
+ //
+ Image result = decoratedMap.get(decorator);
+ if (result == null)
+ {
+ final Rectangle bib = baseImage.getBounds();
+ final Rectangle dib = decorator.getBounds();
+ final Point baseImageSize = new Point(bib.width, bib.height);
+ CompositeImageDescriptor compositImageDesc = new CompositeImageDescriptor()
+ {
+ @Override
+ protected void drawCompositeImage(int width, int height)
+ {
+ drawImage(baseImage.getImageData(), 0, 0);
+ if (corner == TOP_LEFT)
+ {
+ drawImage(decorator.getImageData(), 0, 0);
+ }
+ else if (corner == TOP_RIGHT)
+ {
+ drawImage(decorator.getImageData(), bib.width - dib.width, 0);
+ }
+ else if (corner == BOTTOM_LEFT)
+ {
+ drawImage(decorator.getImageData(), 0, bib.height - dib.height);
+ }
+ else if (corner == BOTTOM_RIGHT)
+ {
+ drawImage(decorator.getImageData(), bib.width - dib.width, bib.height - dib.height);
+ }
+ }
+
+ @Override
+ protected Point getSize()
+ {
+ return baseImageSize;
+ }
+ };
+ //
+ result = compositImageDesc.createImage();
+ decoratedMap.put(decorator, result);
+ }
+ return result;
+ }
+
+ /**
+ * Dispose all of the cached images.
+ */
+ public static void disposeImages()
+ {
+ SWTResourceManager.disposeImages();
+ // dispose ImageDescriptor images
+ {
+ for (Iterator<Image> I = m_descriptorImageMap.values().iterator(); I.hasNext();)
+ {
+ I.next().dispose();
+ }
+ m_descriptorImageMap.clear();
+ }
+ // dispose decorated images
+ for (int i = 0; i < m_decoratedImageMap.length; i++)
+ {
+ Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i];
+ if (cornerDecoratedImageMap != null)
+ {
+ for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values())
+ {
+ for (Image image : decoratedMap.values())
+ {
+ image.dispose();
+ }
+ decoratedMap.clear();
+ }
+ cornerDecoratedImageMap.clear();
+ }
+ }
+ // dispose plugin images
+ {
+ for (Iterator<Image> I = m_URLImageMap.values().iterator(); I.hasNext();)
+ {
+ I.next().dispose();
+ }
+ m_URLImageMap.clear();
+ }
+ }
+
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // Plugin images support
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps URL to images.
+ */
+ private static Map<String, Image> m_URLImageMap = new HashMap<String, Image>();
+
+ /**
+ * Provider for plugin resources, used by WindowBuilder at design time.
+ */
+ public interface PluginResourceProvider
+ {
+ URL getEntry(String symbolicName, String path);
+ }
+
+ /**
+ * Instance of {@link PluginResourceProvider}, used by WindowBuilder at design time.
+ */
+ private static PluginResourceProvider m_designTimePluginResourceProvider = null;
+
+ /**
+ * Returns an {@link Image} based on a plugin and file path.
+ *
+ * @param plugin
+ * the plugin {@link Object} containing the image
+ * @param name
+ * the path to the image within the plugin
+ * @return the {@link Image} stored in the file at the specified path
+ *
+ * @deprecated Use {@link #getPluginImage(String, String)} instead.
+ */
+ @Deprecated
+ public static Image getPluginImage(Object plugin, String name)
+ {
+ try
+ {
+ URL url = getPluginImageURL(plugin, name);
+ if (url != null)
+ {
+ return getPluginImageFromUrl(url);
+ }
+ }
+ catch (Throwable e)
+ {
+ // Ignore any exceptions
+ }
+ return null;
+ }
+
+ /**
+ * Returns an {@link Image} based on a {@link Bundle} and resource entry path.
+ *
+ * @param symbolicName
+ * the symbolic name of the {@link Bundle}.
+ * @param path
+ * the path of the resource entry.
+ * @return the {@link Image} stored in the file at the specified path.
+ */
+ public static Image getPluginImage(String symbolicName, String path)
+ {
+ try
+ {
+ URL url = getPluginImageURL(symbolicName, path);
+ if (url != null)
+ {
+ return getPluginImageFromUrl(url);
+ }
+ }
+ catch (Throwable e)
+ {
+ // Ignore any exceptions
+ }
+ return null;
+ }
+
+ /**
+ * Returns an {@link Image} based on given {@link URL}.
+ */
+ private static Image getPluginImageFromUrl(URL url)
+ {
+ try
+ {
+ try
+ {
+ String key = url.toExternalForm();
+ Image image = m_URLImageMap.get(key);
+ if (image == null)
+ {
+ InputStream stream = url.openStream();
+ try
+ {
+ image = getImage(stream);
+ m_URLImageMap.put(key, image);
+ }
+ finally
+ {
+ stream.close();
+ }
+ }
+ return image;
+ }
+ catch (Throwable e)
+ {
+ // Ignore any exceptions
+ }
+ }
+ catch (Throwable e)
+ {
+ // Ignore any exceptions
+ }
+ return null;
+ }
+
+ /**
+ * Returns an {@link ImageDescriptor} based on a plugin and file path.
+ *
+ * @param plugin
+ * the plugin {@link Object} containing the image.
+ * @param name
+ * the path to th eimage within the plugin.
+ * @return the {@link ImageDescriptor} stored in the file at the specified path.
+ *
+ * @deprecated Use {@link #getPluginImageDescriptor(String, String)} instead.
+ */
+ @Deprecated
+ public static ImageDescriptor getPluginImageDescriptor(Object plugin, String name)
+ {
+ try
+ {
+ try
+ {
+ URL url = getPluginImageURL(plugin, name);
+ return ImageDescriptor.createFromURL(url);
+ }
+ catch (Throwable e)
+ {
+ // Ignore any exceptions
+ }
+ }
+ catch (Throwable e)
+ {
+ // Ignore any exceptions
+ }
+ return null;
+ }
+
+ /**
+ * Returns an {@link ImageDescriptor} based on a {@link Bundle} and resource entry path.
+ *
+ * @param symbolicName
+ * the symbolic name of the {@link Bundle}.
+ * @param path
+ * the path of the resource entry.
+ * @return the {@link ImageDescriptor} based on a {@link Bundle} and resource entry path.
+ */
+ public static ImageDescriptor getPluginImageDescriptor(String symbolicName, String path)
+ {
+ try
+ {
+ URL url = getPluginImageURL(symbolicName, path);
+ if (url != null)
+ {
+ return ImageDescriptor.createFromURL(url);
+ }
+ }
+ catch (Throwable e)
+ {
+ // Ignore any exceptions
+ }
+ return null;
+ }
+
+ /**
+ * Returns an {@link URL} based on a {@link Bundle} and resource entry path.
+ */
+ private static URL getPluginImageURL(String symbolicName, String path)
+ {
+ // try runtime plugins
+ {
+ Bundle bundle = Platform.getBundle(symbolicName);
+ if (bundle != null)
+ {
+ return bundle.getEntry(path);
+ }
+ }
+ // try design time provider
+ if (m_designTimePluginResourceProvider != null)
+ {
+ return m_designTimePluginResourceProvider.getEntry(symbolicName, path);
+ }
+ // no such resource
+ return null;
+ }
+
+ /**
+ * Returns an {@link URL} based on a plugin and file path.
+ *
+ * @param plugin
+ * the plugin {@link Object} containing the file path.
+ * @param name
+ * the file path.
+ * @return the {@link URL} representing the file at the specified path.
+ * @throws Exception
+ */
+ private static URL getPluginImageURL(Object plugin, String name) throws Exception
+ {
+ // try to work with 'plugin' as with OSGI BundleContext
+ try
+ {
+ Class<?> BundleClass = Class.forName("org.osgi.framework.Bundle"); //$NON-NLS-1$
+ Class<?> BundleContextClass = Class.forName("org.osgi.framework.BundleContext"); //$NON-NLS-1$
+ if (BundleContextClass.isAssignableFrom(plugin.getClass()))
+ {
+ Method getBundleMethod = BundleContextClass.getMethod("getBundle", new Class[0]); //$NON-NLS-1$
+ Object bundle = getBundleMethod.invoke(plugin, new Object[0]);
+ //
+ Class<?> PathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$
+ Constructor<?> pathConstructor = PathClass.getConstructor(new Class[] { String.class });
+ Object path = pathConstructor.newInstance(new Object[] { name });
+ //
+ Class<?> IPathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$
+ Class<?> PlatformClass = Class.forName("org.eclipse.core.runtime.Platform"); //$NON-NLS-1$
+ Method findMethod = PlatformClass.getMethod("find", new Class[] { BundleClass, IPathClass }); //$NON-NLS-1$
+ return (URL)findMethod.invoke(null, new Object[] { bundle, path });
+ }
+ }
+ catch (Throwable e)
+ {
+ // Ignore any exceptions
+ }
+ // else work with 'plugin' as with usual Eclipse plugin
+ {
+ Class<?> PluginClass = Class.forName("org.eclipse.core.runtime.Plugin"); //$NON-NLS-1$
+ if (PluginClass.isAssignableFrom(plugin.getClass()))
+ {
+ //
+ Class<?> PathClass = Class.forName("org.eclipse.core.runtime.Path"); //$NON-NLS-1$
+ Constructor<?> pathConstructor = PathClass.getConstructor(new Class[] { String.class });
+ Object path = pathConstructor.newInstance(new Object[] { name });
+ //
+ Class<?> IPathClass = Class.forName("org.eclipse.core.runtime.IPath"); //$NON-NLS-1$
+ Method findMethod = PluginClass.getMethod("find", new Class[] { IPathClass }); //$NON-NLS-1$
+ return (URL)findMethod.invoke(plugin, new Object[] { path });
+ }
+ }
+ return null;
+ }
+
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // General
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ /**
+ * Dispose of cached objects and their underlying OS resources. This should only be called when the cached
+ * objects are no longer needed (e.g. on application shutdown).
+ */
+ public static void dispose()
+ {
+ disposeColors();
+ disposeFonts();
+ disposeImages();
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/SWTResourceManager.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/SWTResourceManager.java
new file mode 100644
index 0000000000..38dab08e60
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/ui/SWTResourceManager.java
@@ -0,0 +1,538 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Google, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Google, Inc. - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.emf.cdo.releng.internal.setup.ui;
+
+import org.eclipse.swt.SWT;
+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.ImageData;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Display;
+
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Utility class for managing OS resources associated with SWT controls such as colors, fonts, images, etc.
+ * <p>
+ * !!! IMPORTANT !!! Application code must explicitly invoke the <code>dispose()</code> method to release the
+ * operating system resources managed by cached objects when those objects and OS resources are no longer
+ * needed (e.g. on application shutdown)
+ * <p>
+ * This class may be freely distributed as part of any application or plugin.
+ * <p>
+ * @author scheglov_ke
+ * @author Dan Rubel
+ */
+public class SWTResourceManager
+{
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // Color
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ private static Map<RGB, Color> m_colorMap = new HashMap<RGB, Color>();
+
+ /**
+ * Returns the system {@link Color} matching the specific ID.
+ *
+ * @param systemColorID
+ * the ID value for the color
+ * @return the system {@link Color} matching the specific ID
+ */
+ public static Color getColor(int systemColorID)
+ {
+ Display display = Display.getCurrent();
+ return display.getSystemColor(systemColorID);
+ }
+
+ /**
+ * Returns a {@link Color} given its red, green and blue component values.
+ *
+ * @param r
+ * the red component of the color
+ * @param g
+ * the green component of the color
+ * @param b
+ * the blue component of the color
+ * @return the {@link Color} matching the given red, green and blue component values
+ */
+ public static Color getColor(int r, int g, int b)
+ {
+ return getColor(new RGB(r, g, b));
+ }
+
+ /**
+ * Returns a {@link Color} given its RGB value.
+ *
+ * @param rgb
+ * the {@link RGB} value of the color
+ * @return the {@link Color} matching the RGB value
+ */
+ public static Color getColor(RGB rgb)
+ {
+ Color color = m_colorMap.get(rgb);
+ if (color == null)
+ {
+ Display display = Display.getCurrent();
+ color = new Color(display, rgb);
+ m_colorMap.put(rgb, color);
+ }
+ return color;
+ }
+
+ /**
+ * Dispose of all the cached {@link Color}'s.
+ */
+ public static void disposeColors()
+ {
+ for (Color color : m_colorMap.values())
+ {
+ color.dispose();
+ }
+ m_colorMap.clear();
+ }
+
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // Image
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps image paths to images.
+ */
+ private static Map<String, Image> m_imageMap = new HashMap<String, Image>();
+
+ /**
+ * Returns an {@link Image} encoded by the specified {@link InputStream}.
+ *
+ * @param stream
+ * the {@link InputStream} encoding the image data
+ * @return the {@link Image} encoded by the specified input stream
+ */
+ protected static Image getImage(InputStream stream) throws IOException
+ {
+ try
+ {
+ Display display = Display.getCurrent();
+ ImageData data = new ImageData(stream);
+ if (data.transparentPixel > 0)
+ {
+ return new Image(display, data, data.getTransparencyMask());
+ }
+ return new Image(display, data);
+ }
+ finally
+ {
+ stream.close();
+ }
+ }
+
+ /**
+ * Returns an {@link Image} stored in the file at the specified path.
+ *
+ * @param path
+ * the path to the image file
+ * @return the {@link Image} stored in the file at the specified path
+ */
+ public static Image getImage(String path)
+ {
+ Image image = m_imageMap.get(path);
+ if (image == null)
+ {
+ try
+ {
+ image = getImage(new FileInputStream(path));
+ m_imageMap.put(path, image);
+ }
+ catch (Exception e)
+ {
+ image = getMissingImage();
+ m_imageMap.put(path, image);
+ }
+ }
+ return image;
+ }
+
+ /**
+ * Returns an {@link Image} stored in the file at the specified path relative to the specified class.
+ *
+ * @param clazz
+ * the {@link Class} relative to which to find the image
+ * @param path
+ * the path to the image file, if starts with <code>'/'</code>
+ * @return the {@link Image} stored in the file at the specified path
+ */
+ public static Image getImage(Class<?> clazz, String path)
+ {
+ String key = clazz.getName() + '|' + path;
+ Image image = m_imageMap.get(key);
+ if (image == null)
+ {
+ try
+ {
+ image = getImage(clazz.getResourceAsStream(path));
+ m_imageMap.put(key, image);
+ }
+ catch (Exception e)
+ {
+ image = getMissingImage();
+ m_imageMap.put(key, image);
+ }
+ }
+ return image;
+ }
+
+ private static final int MISSING_IMAGE_SIZE = 10;
+
+ /**
+ * @return the small {@link Image} that can be used as placeholder for missing image.
+ */
+ private static Image getMissingImage()
+ {
+ Image image = new Image(Display.getCurrent(), MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
+ //
+ GC gc = new GC(image);
+ gc.setBackground(getColor(SWT.COLOR_RED));
+ gc.fillRectangle(0, 0, MISSING_IMAGE_SIZE, MISSING_IMAGE_SIZE);
+ gc.dispose();
+ //
+ return image;
+ }
+
+ /**
+ * Style constant for placing decorator image in top left corner of base image.
+ */
+ public static final int TOP_LEFT = 1;
+
+ /**
+ * Style constant for placing decorator image in top right corner of base image.
+ */
+ public static final int TOP_RIGHT = 2;
+
+ /**
+ * Style constant for placing decorator image in bottom left corner of base image.
+ */
+ public static final int BOTTOM_LEFT = 3;
+
+ /**
+ * Style constant for placing decorator image in bottom right corner of base image.
+ */
+ public static final int BOTTOM_RIGHT = 4;
+
+ /**
+ * Internal value.
+ */
+ protected static final int LAST_CORNER_KEY = 5;
+
+ /**
+ * Maps images to decorated images.
+ */
+ @SuppressWarnings("unchecked")
+ private static Map<Image, Map<Image, Image>>[] m_decoratedImageMap = new Map[LAST_CORNER_KEY];
+
+ /**
+ * Returns an {@link Image} composed of a base image decorated by another image.
+ *
+ * @param baseImage
+ * the base {@link Image} that should be decorated
+ * @param decorator
+ * the {@link Image} to decorate the base image
+ * @return {@link Image} The resulting decorated image
+ */
+ public static Image decorateImage(Image baseImage, Image decorator)
+ {
+ return decorateImage(baseImage, decorator, BOTTOM_RIGHT);
+ }
+
+ /**
+ * Returns an {@link Image} composed of a base image decorated by another image.
+ *
+ * @param baseImage
+ * the base {@link Image} that should be decorated
+ * @param decorator
+ * the {@link Image} to decorate the base image
+ * @param corner
+ * the corner to place decorator image
+ * @return the resulting decorated {@link Image}
+ */
+ public static Image decorateImage(final Image baseImage, final Image decorator, final int corner)
+ {
+ if (corner <= 0 || corner >= LAST_CORNER_KEY)
+ {
+ throw new IllegalArgumentException("Wrong decorate corner");
+ }
+ Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[corner];
+ if (cornerDecoratedImageMap == null)
+ {
+ cornerDecoratedImageMap = new HashMap<Image, Map<Image, Image>>();
+ m_decoratedImageMap[corner] = cornerDecoratedImageMap;
+ }
+ Map<Image, Image> decoratedMap = cornerDecoratedImageMap.get(baseImage);
+ if (decoratedMap == null)
+ {
+ decoratedMap = new HashMap<Image, Image>();
+ cornerDecoratedImageMap.put(baseImage, decoratedMap);
+ }
+ //
+ Image result = decoratedMap.get(decorator);
+ if (result == null)
+ {
+ Rectangle bib = baseImage.getBounds();
+ Rectangle dib = decorator.getBounds();
+ //
+ result = new Image(Display.getCurrent(), bib.width, bib.height);
+ //
+ GC gc = new GC(result);
+ gc.drawImage(baseImage, 0, 0);
+ if (corner == TOP_LEFT)
+ {
+ gc.drawImage(decorator, 0, 0);
+ }
+ else if (corner == TOP_RIGHT)
+ {
+ gc.drawImage(decorator, bib.width - dib.width, 0);
+ }
+ else if (corner == BOTTOM_LEFT)
+ {
+ gc.drawImage(decorator, 0, bib.height - dib.height);
+ }
+ else if (corner == BOTTOM_RIGHT)
+ {
+ gc.drawImage(decorator, bib.width - dib.width, bib.height - dib.height);
+ }
+ gc.dispose();
+ //
+ decoratedMap.put(decorator, result);
+ }
+ return result;
+ }
+
+ /**
+ * Dispose all of the cached {@link Image}'s.
+ */
+ public static void disposeImages()
+ {
+ // dispose loaded images
+ {
+ for (Image image : m_imageMap.values())
+ {
+ image.dispose();
+ }
+ m_imageMap.clear();
+ }
+ // dispose decorated images
+ for (int i = 0; i < m_decoratedImageMap.length; i++)
+ {
+ Map<Image, Map<Image, Image>> cornerDecoratedImageMap = m_decoratedImageMap[i];
+ if (cornerDecoratedImageMap != null)
+ {
+ for (Map<Image, Image> decoratedMap : cornerDecoratedImageMap.values())
+ {
+ for (Image image : decoratedMap.values())
+ {
+ image.dispose();
+ }
+ decoratedMap.clear();
+ }
+ cornerDecoratedImageMap.clear();
+ }
+ }
+ }
+
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // Font
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps font names to fonts.
+ */
+ private static Map<String, Font> m_fontMap = new HashMap<String, Font>();
+
+ /**
+ * Maps fonts to their bold versions.
+ */
+ private static Map<Font, Font> m_fontToBoldFontMap = new HashMap<Font, Font>();
+
+ /**
+ * Returns a {@link Font} based on its name, height and style.
+ *
+ * @param name
+ * the name of the font
+ * @param height
+ * the height of the font
+ * @param style
+ * the style of the font
+ * @return {@link Font} The font matching the name, height and style
+ */
+ public static Font getFont(String name, int height, int style)
+ {
+ return getFont(name, height, style, false, false);
+ }
+
+ /**
+ * Returns a {@link Font} based on its name, height and style. Windows-specific strikeout and underline
+ * flags are also supported.
+ *
+ * @param name
+ * the name of the font
+ * @param size
+ * the size of the font
+ * @param style
+ * the style of the font
+ * @param strikeout
+ * the strikeout flag (warning: Windows only)
+ * @param underline
+ * the underline flag (warning: Windows only)
+ * @return {@link Font} The font matching the name, height, style, strikeout and underline
+ */
+ public static Font getFont(String name, int size, int style, boolean strikeout, boolean underline)
+ {
+ String fontName = name + '|' + size + '|' + style + '|' + strikeout + '|' + underline;
+ Font font = m_fontMap.get(fontName);
+ if (font == null)
+ {
+ FontData fontData = new FontData(name, size, style);
+ if (strikeout || underline)
+ {
+ try
+ {
+ Class<?> logFontClass = Class.forName("org.eclipse.swt.internal.win32.LOGFONT"); //$NON-NLS-1$
+ Object logFont = FontData.class.getField("data").get(fontData); //$NON-NLS-1$
+ if (logFont != null && logFontClass != null)
+ {
+ if (strikeout)
+ {
+ logFontClass.getField("lfStrikeOut").set(logFont, Byte.valueOf((byte)1)); //$NON-NLS-1$
+ }
+ if (underline)
+ {
+ logFontClass.getField("lfUnderline").set(logFont, Byte.valueOf((byte)1)); //$NON-NLS-1$
+ }
+ }
+ }
+ catch (Throwable e)
+ {
+ System.err.println("Unable to set underline or strikeout" + " (probably on a non-Windows platform). " + e); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ }
+ font = new Font(Display.getCurrent(), fontData);
+ m_fontMap.put(fontName, font);
+ }
+ return font;
+ }
+
+ /**
+ * Returns a bold version of the given {@link Font}.
+ *
+ * @param baseFont
+ * the {@link Font} for which a bold version is desired
+ * @return the bold version of the given {@link Font}
+ */
+ public static Font getBoldFont(Font baseFont)
+ {
+ Font font = m_fontToBoldFontMap.get(baseFont);
+ if (font == null)
+ {
+ FontData fontDatas[] = baseFont.getFontData();
+ FontData data = fontDatas[0];
+ font = new Font(Display.getCurrent(), data.getName(), data.getHeight(), SWT.BOLD);
+ m_fontToBoldFontMap.put(baseFont, font);
+ }
+ return font;
+ }
+
+ /**
+ * Dispose all of the cached {@link Font}'s.
+ */
+ public static void disposeFonts()
+ {
+ // clear fonts
+ for (Font font : m_fontMap.values())
+ {
+ font.dispose();
+ }
+ m_fontMap.clear();
+ // clear bold fonts
+ for (Font font : m_fontToBoldFontMap.values())
+ {
+ font.dispose();
+ }
+ m_fontToBoldFontMap.clear();
+ }
+
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // Cursor
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ /**
+ * Maps IDs to cursors.
+ */
+ private static Map<Integer, Cursor> m_idToCursorMap = new HashMap<Integer, Cursor>();
+
+ /**
+ * Returns the system cursor matching the specific ID.
+ *
+ * @param id
+ * int The ID value for the cursor
+ * @return Cursor The system cursor matching the specific ID
+ */
+ public static Cursor getCursor(int id)
+ {
+ Integer key = Integer.valueOf(id);
+ Cursor cursor = m_idToCursorMap.get(key);
+ if (cursor == null)
+ {
+ cursor = new Cursor(Display.getDefault(), id);
+ m_idToCursorMap.put(key, cursor);
+ }
+ return cursor;
+ }
+
+ /**
+ * Dispose all of the cached cursors.
+ */
+ public static void disposeCursors()
+ {
+ for (Cursor cursor : m_idToCursorMap.values())
+ {
+ cursor.dispose();
+ }
+ m_idToCursorMap.clear();
+ }
+
+ // //////////////////////////////////////////////////////////////////////////
+ //
+ // General
+ //
+ // //////////////////////////////////////////////////////////////////////////
+ /**
+ * Dispose of cached objects and their underlying OS resources. This should only be called when the cached
+ * objects are no longer needed (e.g. on application shutdown).
+ */
+ public static void dispose()
+ {
+ disposeColors();
+ disposeImages();
+ disposeFonts();
+ disposeCursors();
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaseline.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaseline.java
deleted file mode 100644
index 8ea7f52da8..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaseline.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Api Baseline</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject <em>Project</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getVersion <em>Version</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getZipLocation <em>Zip Location</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaseline()
- * @model
- * @generated
- */
-public interface ApiBaseline extends EObject
-{
- /**
- * Returns the value of the '<em><b>Project</b></em>' container reference.
- * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines <em>Api Baselines</em>}'.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Project</em>' container reference isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Project</em>' container reference.
- * @see #setProject(Project)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaseline_Project()
- * @see org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines
- * @model opposite="apiBaselines" transient="false"
- * @generated
- */
- Project getProject();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject <em>Project</em>}' container reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Project</em>' container reference.
- * @see #getProject()
- * @generated
- */
- void setProject(Project value);
-
- /**
- * Returns the value of the '<em><b>Version</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Version</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Version</em>' attribute.
- * @see #setVersion(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaseline_Version()
- * @model
- * @generated
- */
- String getVersion();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getVersion <em>Version</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Version</em>' attribute.
- * @see #getVersion()
- * @generated
- */
- void setVersion(String value);
-
- /**
- * Returns the value of the '<em><b>Zip Location</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Zip Location</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Zip Location</em>' attribute.
- * @see #setZipLocation(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaseline_ZipLocation()
- * @model
- * @generated
- */
- String getZipLocation();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getZipLocation <em>Zip Location</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Zip Location</em>' attribute.
- * @see #getZipLocation()
- * @generated
- */
- void setZipLocation(String value);
-
-} // ApiBaseline
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaselineTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaselineTask.java
new file mode 100644
index 0000000000..7cd3160743
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ApiBaselineTask.java
@@ -0,0 +1,76 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Api Baseline Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getZipLocation <em>Zip Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaselineTask()
+ * @model
+ * @generated
+ */
+public interface ApiBaselineTask extends SetupTask
+{
+ /**
+ * Returns the value of the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Version</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Version</em>' attribute.
+ * @see #setVersion(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaselineTask_Version()
+ * @model
+ * @generated
+ */
+ String getVersion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getVersion <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Version</em>' attribute.
+ * @see #getVersion()
+ * @generated
+ */
+ void setVersion(String value);
+
+ /**
+ * Returns the value of the '<em><b>Zip Location</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Zip Location</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Zip Location</em>' attribute.
+ * @see #setZipLocation(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getApiBaselineTask_ZipLocation()
+ * @model
+ * @generated
+ */
+ String getZipLocation();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getZipLocation <em>Zip Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Zip Location</em>' attribute.
+ * @see #getZipLocation()
+ * @generated
+ */
+ void setZipLocation(String value);
+
+} // ApiBaselineTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java
index 70ef7de2d7..e7d5d60d6d 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Branch.java
@@ -10,9 +10,6 @@
*/
package org.eclipse.emf.cdo.releng.setup;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.URI;
-
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Branch</b></em>'.
@@ -23,10 +20,6 @@ import org.eclipse.emf.common.util.URI;
* <ul>
* <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getProject <em>Project</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getGitClones <em>Git Clones</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getApiBaseline <em>Api Baseline</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getMspecFilePath <em>Mspec File Path</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.Branch#getCloneVariableName <em>Clone Variable Name</em>}</li>
* </ul>
* </p>
*
@@ -34,7 +27,7 @@ import org.eclipse.emf.common.util.URI;
* @model
* @generated
*/
-public interface Branch extends ToolInstallation
+public interface Branch extends ConfigurableItem
{
/**
* Returns the value of the '<em><b>Project</b></em>' container reference.
@@ -90,116 +83,4 @@ public interface Branch extends ToolInstallation
*/
void setName(String value);
- /**
- * Returns the value of the '<em><b>Git Clones</b></em>' containment reference list.
- * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.GitClone}.
- * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getBranch <em>Branch</em>}'.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Git Clones</em>' containment reference list isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Git Clones</em>' containment reference list.
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBranch_GitClones()
- * @see org.eclipse.emf.cdo.releng.setup.GitClone#getBranch
- * @model opposite="branch" containment="true" required="true"
- * @generated
- */
- EList<GitClone> getGitClones();
-
- /**
- * Returns the value of the '<em><b>Api Baseline</b></em>' reference.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Api Baseline</em>' reference isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Api Baseline</em>' reference.
- * @see #setApiBaseline(ApiBaseline)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBranch_ApiBaseline()
- * @model
- * @generated
- */
- ApiBaseline getApiBaseline();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Branch#getApiBaseline <em>Api Baseline</em>}' reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Api Baseline</em>' reference.
- * @see #getApiBaseline()
- * @generated
- */
- void setApiBaseline(ApiBaseline value);
-
- /**
- * Returns the value of the '<em><b>Mspec File Path</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Mspec File Path</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Mspec File Path</em>' attribute.
- * @see #setMspecFilePath(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBranch_MspecFilePath()
- * @model
- * @generated
- */
- String getMspecFilePath();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Branch#getMspecFilePath <em>Mspec File Path</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Mspec File Path</em>' attribute.
- * @see #getMspecFilePath()
- * @generated
- */
- void setMspecFilePath(String value);
-
- /**
- * Returns the value of the '<em><b>Clone Variable Name</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Clone Variable Name</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Clone Variable Name</em>' attribute.
- * @see #setCloneVariableName(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBranch_CloneVariableName()
- * @model
- * @generated
- */
- String getCloneVariableName();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Branch#getCloneVariableName <em>Clone Variable Name</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Clone Variable Name</em>' attribute.
- * @see #getCloneVariableName()
- * @generated
- */
- void setCloneVariableName(String value);
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @model
- * @generated
- */
- boolean isInstalled(String installFolder);
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @model dataType="org.eclipse.emf.cdo.releng.setup.URI"
- * @generated
- */
- URI getURI(String installFolder);
-
} // Branch
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/BuckminsterImportTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/BuckminsterImportTask.java
new file mode 100644
index 0000000000..61d0267a23
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/BuckminsterImportTask.java
@@ -0,0 +1,103 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Buckminster Import Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getMspec <em>Mspec</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getTargetPlatform <em>Target Platform</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getBundlePool <em>Bundle Pool</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBuckminsterImportTask()
+ * @model
+ * @generated
+ */
+public interface BuckminsterImportTask extends SetupTask
+{
+ /**
+ * Returns the value of the '<em><b>Mspec</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Mspec</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Mspec</em>' attribute.
+ * @see #setMspec(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBuckminsterImportTask_Mspec()
+ * @model
+ * @generated
+ */
+ String getMspec();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getMspec <em>Mspec</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Mspec</em>' attribute.
+ * @see #getMspec()
+ * @generated
+ */
+ void setMspec(String value);
+
+ /**
+ * Returns the value of the '<em><b>Target Platform</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target Platform</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Target Platform</em>' attribute.
+ * @see #setTargetPlatform(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBuckminsterImportTask_TargetPlatform()
+ * @model
+ * @generated
+ */
+ String getTargetPlatform();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getTargetPlatform <em>Target Platform</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Target Platform</em>' attribute.
+ * @see #getTargetPlatform()
+ * @generated
+ */
+ void setTargetPlatform(String value);
+
+ /**
+ * Returns the value of the '<em><b>Bundle Pool</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Bundle Pool</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Bundle Pool</em>' attribute.
+ * @see #setBundlePool(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getBuckminsterImportTask_BundlePool()
+ * @model
+ * @generated
+ */
+ String getBundlePool();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getBundlePool <em>Bundle Pool</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Bundle Pool</em>' attribute.
+ * @see #getBundlePool()
+ * @generated
+ */
+ void setBundlePool(String value);
+
+} // BuckminsterImportTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/CompoundSetupTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/CompoundSetupTask.java
new file mode 100644
index 0000000000..afca697901
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/CompoundSetupTask.java
@@ -0,0 +1,49 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Compound Setup Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getCompoundSetupTask()
+ * @model
+ * @generated
+ */
+public interface CompoundSetupTask extends SetupTask, SetupTaskContainer
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getCompoundSetupTask_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+} // CompoundSetupTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ConfigurableItem.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ConfigurableItem.java
new file mode 100644
index 0000000000..d14e7d124e
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ConfigurableItem.java
@@ -0,0 +1,17 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Configurable Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getConfigurableItem()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ConfigurableItem extends SetupTaskContainer
+{
+} // ConfigurableItem
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java
index a144553bee..57ab104bca 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Configuration.java
@@ -45,7 +45,7 @@ public interface Configuration extends EObject
* @return the value of the '<em>Projects</em>' containment reference list.
* @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getConfiguration_Projects()
* @see org.eclipse.emf.cdo.releng.setup.Project#getConfiguration
- * @model opposite="configuration" containment="true" required="true"
+ * @model opposite="configuration" containment="true" resolveProxies="true" required="true"
* @generated
*/
EList<Project> getProjects();
@@ -63,7 +63,7 @@ public interface Configuration extends EObject
* @return the value of the '<em>Eclipse Versions</em>' containment reference list.
* @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getConfiguration_EclipseVersions()
* @see org.eclipse.emf.cdo.releng.setup.EclipseVersion#getConfiguration
- * @model opposite="configuration" containment="true" required="true"
+ * @model opposite="configuration" containment="true" resolveProxies="true" required="true"
* @generated
*/
EList<EclipseVersion> getEclipseVersions();
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseIniTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseIniTask.java
new file mode 100644
index 0000000000..766d59af65
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseIniTask.java
@@ -0,0 +1,103 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Eclipse Ini Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getOption <em>Option</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#isVm <em>Vm</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseIniTask()
+ * @model
+ * @generated
+ */
+public interface EclipseIniTask extends SetupTask
+{
+ /**
+ * Returns the value of the '<em><b>Option</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Option</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Option</em>' attribute.
+ * @see #setOption(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseIniTask_Option()
+ * @model
+ * @generated
+ */
+ String getOption();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getOption <em>Option</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Option</em>' attribute.
+ * @see #getOption()
+ * @generated
+ */
+ void setOption(String value);
+
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseIniTask_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+ /**
+ * Returns the value of the '<em><b>Vm</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Vm</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Vm</em>' attribute.
+ * @see #setVm(boolean)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseIniTask_Vm()
+ * @model
+ * @generated
+ */
+ boolean isVm();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#isVm <em>Vm</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Vm</em>' attribute.
+ * @see #isVm()
+ * @generated
+ */
+ void setVm(boolean value);
+
+} // EclipseIniTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolPreference.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipsePreferenceTask.java
index 7466c69ace..077b3bad4b 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolPreference.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipsePreferenceTask.java
@@ -1,35 +1,25 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup;
-import org.eclipse.emf.ecore.EObject;
-
/**
* <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Tool Preference</b></em>'.
+ * A representation of the model object '<em><b>Eclipse Preference Task</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getKey <em>Key</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getKey <em>Key</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getValue <em>Value</em>}</li>
* </ul>
* </p>
*
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolPreference()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipsePreferenceTask()
* @model
* @generated
*/
-public interface ToolPreference extends EObject
+public interface EclipsePreferenceTask extends SetupTask
{
/**
* Returns the value of the '<em><b>Key</b></em>' attribute.
@@ -41,14 +31,14 @@ public interface ToolPreference extends EObject
* <!-- end-user-doc -->
* @return the value of the '<em>Key</em>' attribute.
* @see #setKey(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolPreference_Key()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipsePreferenceTask_Key()
* @model
* @generated
*/
String getKey();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getKey <em>Key</em>}' attribute.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getKey <em>Key</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Key</em>' attribute.
@@ -67,14 +57,14 @@ public interface ToolPreference extends EObject
* <!-- end-user-doc -->
* @return the value of the '<em>Value</em>' attribute.
* @see #setValue(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolPreference_Value()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipsePreferenceTask_Value()
* @model
* @generated
*/
String getValue();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getValue <em>Value</em>}' attribute.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getValue <em>Value</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Value</em>' attribute.
@@ -83,4 +73,4 @@ public interface ToolPreference extends EObject
*/
void setValue(String value);
-} // ToolPreference
+} // EclipsePreferenceTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java
index 07e2f11cca..75d52f9cbd 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/EclipseVersion.java
@@ -10,8 +10,6 @@
*/
package org.eclipse.emf.cdo.releng.setup;
-import org.eclipse.emf.ecore.EObject;
-
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Eclipse Version</b></em>'.
@@ -22,7 +20,6 @@ import org.eclipse.emf.ecore.EObject;
* <ul>
* <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getConfiguration <em>Configuration</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getVersion <em>Version</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getDirectorCall <em>Director Call</em>}</li>
* </ul>
* </p>
*
@@ -30,7 +27,7 @@ import org.eclipse.emf.ecore.EObject;
* @model
* @generated
*/
-public interface EclipseVersion extends EObject
+public interface EclipseVersion extends ConfigurableItem
{
/**
* Returns the value of the '<em><b>Configuration</b></em>' container reference.
@@ -86,30 +83,4 @@ public interface EclipseVersion extends EObject
*/
void setVersion(String value);
- /**
- * Returns the value of the '<em><b>Director Call</b></em>' containment reference.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Director Call</em>' containment reference isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Director Call</em>' containment reference.
- * @see #setDirectorCall(DirectorCall)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getEclipseVersion_DirectorCall()
- * @model containment="true" required="true"
- * @generated
- */
- DirectorCall getDirectorCall();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getDirectorCall <em>Director Call</em>}' containment reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Director Call</em>' containment reference.
- * @see #getDirectorCall()
- * @generated
- */
- void setDirectorCall(DirectorCall value);
-
} // EclipseVersion
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitClone.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitCloneTask.java
index a134a7b787..7b1d812093 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitClone.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/GitCloneTask.java
@@ -1,91 +1,80 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup;
-import org.eclipse.emf.ecore.EObject;
-
/**
* <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Git Clone</b></em>'.
+ * A representation of the model object '<em><b>Git Clone Task</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.GitClone#getBranch <em>Branch</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.GitClone#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.GitClone#getRemoteURI <em>Remote URI</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.GitClone#getCheckoutBranch <em>Checkout Branch</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteName <em>Remote Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteURI <em>Remote URI</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getCheckoutBranch <em>Checkout Branch</em>}</li>
* </ul>
* </p>
*
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask()
* @model
* @generated
*/
-public interface GitClone extends EObject
+public interface GitCloneTask extends SetupTask
{
/**
- * Returns the value of the '<em><b>Branch</b></em>' container reference.
- * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.Branch#getGitClones <em>Git Clones</em>}'.
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
- * If the meaning of the '<em>Branch</em>' container reference isn't clear,
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
- * @return the value of the '<em>Branch</em>' container reference.
- * @see #setBranch(Branch)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone_Branch()
- * @see org.eclipse.emf.cdo.releng.setup.Branch#getGitClones
- * @model opposite="gitClones" transient="false"
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask_Name()
+ * @model
* @generated
*/
- Branch getBranch();
+ String getName();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getBranch <em>Branch</em>}' container reference.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getName <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @param value the new value of the '<em>Branch</em>' container reference.
- * @see #getBranch()
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
* @generated
*/
- void setBranch(Branch value);
+ void setName(String value);
/**
- * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * Returns the value of the '<em><b>Remote Name</b></em>' attribute.
+ * The default value is <code>"origin"</code>.
* <!-- begin-user-doc -->
* <p>
- * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * If the meaning of the '<em>Remote Name</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
- * @return the value of the '<em>Name</em>' attribute.
- * @see #setName(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone_Name()
- * @model
+ * @return the value of the '<em>Remote Name</em>' attribute.
+ * @see #setRemoteName(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask_RemoteName()
+ * @model default="origin"
* @generated
*/
- String getName();
+ String getRemoteName();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getName <em>Name</em>}' attribute.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteName <em>Remote Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @param value the new value of the '<em>Name</em>' attribute.
- * @see #getName()
+ * @param value the new value of the '<em>Remote Name</em>' attribute.
+ * @see #getRemoteName()
* @generated
*/
- void setName(String value);
+ void setRemoteName(String value);
/**
* Returns the value of the '<em><b>Remote URI</b></em>' attribute.
@@ -97,14 +86,14 @@ public interface GitClone extends EObject
* <!-- end-user-doc -->
* @return the value of the '<em>Remote URI</em>' attribute.
* @see #setRemoteURI(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone_RemoteURI()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask_RemoteURI()
* @model
* @generated
*/
String getRemoteURI();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getRemoteURI <em>Remote URI</em>}' attribute.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteURI <em>Remote URI</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Remote URI</em>' attribute.
@@ -123,14 +112,14 @@ public interface GitClone extends EObject
* <!-- end-user-doc -->
* @return the value of the '<em>Checkout Branch</em>' attribute.
* @see #setCheckoutBranch(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitClone_CheckoutBranch()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getGitCloneTask_CheckoutBranch()
* @model
* @generated
*/
String getCheckoutBranch();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getCheckoutBranch <em>Checkout Branch</em>}' attribute.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getCheckoutBranch <em>Checkout Branch</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Checkout Branch</em>' attribute.
@@ -139,4 +128,4 @@ public interface GitClone extends EObject
*/
void setCheckoutBranch(String value);
-} // GitClone
+} // GitCloneTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java
index 6326d1085e..3b327dde15 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/InstallableUnit.java
@@ -20,7 +20,7 @@ import org.eclipse.emf.ecore.EObject;
* <p>
* The following features are supported:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall <em>Director Call</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task <em>P2 Task</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getId <em>Id</em>}</li>
* </ul>
* </p>
@@ -32,32 +32,32 @@ import org.eclipse.emf.ecore.EObject;
public interface InstallableUnit extends EObject
{
/**
- * Returns the value of the '<em><b>Director Call</b></em>' container reference.
- * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits <em>Installable Units</em>}'.
+ * Returns the value of the '<em><b>P2 Task</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits <em>Installable Units</em>}'.
* <!-- begin-user-doc -->
* <p>
- * If the meaning of the '<em>Director Call</em>' container reference isn't clear,
+ * If the meaning of the '<em>P2 Task</em>' container reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
- * @return the value of the '<em>Director Call</em>' container reference.
- * @see #setDirectorCall(DirectorCall)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getInstallableUnit_DirectorCall()
- * @see org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits
+ * @return the value of the '<em>P2 Task</em>' container reference.
+ * @see #setP2Task(P2Task)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getInstallableUnit_P2Task()
+ * @see org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits
* @model opposite="installableUnits" transient="false"
* @generated
*/
- DirectorCall getDirectorCall();
+ P2Task getP2Task();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall <em>Director Call</em>}' container reference.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task <em>P2 Task</em>}' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @param value the new value of the '<em>Director Call</em>' container reference.
- * @see #getDirectorCall()
+ * @param value the new value of the '<em>P2 Task</em>' container reference.
+ * @see #getP2Task()
* @generated
*/
- void setDirectorCall(DirectorCall value);
+ void setP2Task(P2Task value);
/**
* Returns the value of the '<em><b>Id</b></em>' attribute.
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocation.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocationTask.java
index b3809063eb..6a29e22e30 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocation.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/LinkLocationTask.java
@@ -1,35 +1,25 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup;
-import org.eclipse.emf.ecore.EObject;
-
/**
* <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Link Location</b></em>'.
+ * A representation of the model object '<em><b>Link Location Task</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getPath <em>Path</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getName <em>Name</em>}</li>
* </ul>
* </p>
*
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocation()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocationTask()
* @model
* @generated
*/
-public interface LinkLocation extends EObject
+public interface LinkLocationTask extends SetupTask
{
/**
* Returns the value of the '<em><b>Path</b></em>' attribute.
@@ -41,14 +31,14 @@ public interface LinkLocation extends EObject
* <!-- end-user-doc -->
* @return the value of the '<em>Path</em>' attribute.
* @see #setPath(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocation_Path()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocationTask_Path()
* @model
* @generated
*/
String getPath();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getPath <em>Path</em>}' attribute.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getPath <em>Path</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Path</em>' attribute.
@@ -67,14 +57,14 @@ public interface LinkLocation extends EObject
* <!-- end-user-doc -->
* @return the value of the '<em>Name</em>' attribute.
* @see #setName(String)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocation_Name()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getLinkLocationTask_Name()
* @model
* @generated
*/
String getName();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getName <em>Name</em>}' attribute.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getName <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Name</em>' attribute.
@@ -83,4 +73,4 @@ public interface LinkLocation extends EObject
*/
void setName(String value);
-} // LinkLocation
+} // LinkLocationTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/OneTimeSetupTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/OneTimeSetupTask.java
new file mode 100644
index 0000000000..325fd72b50
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/OneTimeSetupTask.java
@@ -0,0 +1,49 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>One Time Setup Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask#getId <em>Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getOneTimeSetupTask()
+ * @model abstract="true"
+ * @generated
+ */
+public interface OneTimeSetupTask extends SetupTask
+{
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getOneTimeSetupTask_Id()
+ * @model required="true"
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+} // OneTimeSetupTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java
index 86f3c59534..7c7b5cd47e 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Repository.java
@@ -20,7 +20,7 @@ import org.eclipse.emf.ecore.EObject;
* <p>
* The following features are supported:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall <em>Director Call</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task <em>P2 Task</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getUrl <em>Url</em>}</li>
* </ul>
* </p>
@@ -32,32 +32,32 @@ import org.eclipse.emf.ecore.EObject;
public interface P2Repository extends EObject
{
/**
- * Returns the value of the '<em><b>Director Call</b></em>' container reference.
- * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories <em>P2 Repositories</em>}'.
+ * Returns the value of the '<em><b>P2 Task</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories <em>P2 Repositories</em>}'.
* <!-- begin-user-doc -->
* <p>
- * If the meaning of the '<em>Director Call</em>' container reference isn't clear,
+ * If the meaning of the '<em>P2 Task</em>' container reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
- * @return the value of the '<em>Director Call</em>' container reference.
- * @see #setDirectorCall(DirectorCall)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Repository_DirectorCall()
- * @see org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories
+ * @return the value of the '<em>P2 Task</em>' container reference.
+ * @see #setP2Task(P2Task)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Repository_P2Task()
+ * @see org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories
* @model opposite="p2Repositories" transient="false"
* @generated
*/
- DirectorCall getDirectorCall();
+ P2Task getP2Task();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall <em>Director Call</em>}' container reference.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task <em>P2 Task</em>}' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @param value the new value of the '<em>Director Call</em>' container reference.
- * @see #getDirectorCall()
+ * @param value the new value of the '<em>P2 Task</em>' container reference.
+ * @see #getP2Task()
* @generated
*/
- void setDirectorCall(DirectorCall value);
+ void setP2Task(P2Task value);
/**
* Returns the value of the '<em><b>Url</b></em>' attribute.
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/DirectorCall.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Task.java
index bb9ff02fa1..3292d5b9a8 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/DirectorCall.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/P2Task.java
@@ -1,41 +1,32 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup;
import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
/**
* <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Director Call</b></em>'.
+ * A representation of the model object '<em><b>Install Task</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits <em>Installable Units</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories <em>P2 Repositories</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories <em>P2 Repositories</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits <em>Installable Units</em>}</li>
* </ul>
* </p>
*
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getDirectorCall()
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Task()
* @model
* @generated
*/
-public interface DirectorCall extends EObject
+public interface P2Task extends SetupTask
{
/**
* Returns the value of the '<em><b>Installable Units</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.InstallableUnit}.
- * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall <em>Director Call</em>}'.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task <em>P2 Task</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Installable Units</em>' containment reference list isn't clear,
@@ -43,9 +34,9 @@ public interface DirectorCall extends EObject
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Installable Units</em>' containment reference list.
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getDirectorCall_InstallableUnits()
- * @see org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall
- * @model opposite="directorCall" containment="true" required="true"
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Task_InstallableUnits()
+ * @see org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task
+ * @model opposite="p2Task" containment="true" resolveProxies="true" required="true"
* @generated
*/
EList<InstallableUnit> getInstallableUnits();
@@ -53,7 +44,7 @@ public interface DirectorCall extends EObject
/**
* Returns the value of the '<em><b>P2 Repositories</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.P2Repository}.
- * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall <em>Director Call</em>}'.
+ * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task <em>P2 Task</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>P2 Repositories</em>' containment reference list isn't clear,
@@ -61,11 +52,11 @@ public interface DirectorCall extends EObject
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>P2 Repositories</em>' containment reference list.
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getDirectorCall_P2Repositories()
- * @see org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall
- * @model opposite="directorCall" containment="true" required="true"
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getP2Task_P2Repositories()
+ * @see org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task
+ * @model opposite="p2Task" containment="true" resolveProxies="true" required="true"
* @generated
*/
EList<P2Repository> getP2Repositories();
-} // DirectorCall
+} // InstallTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java
index be482948d7..47b700e5c8 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Preferences.java
@@ -13,7 +13,6 @@ package org.eclipse.emf.cdo.releng.setup;
import org.eclipse.emf.common.util.URI;
import java.io.File;
-import org.eclipse.emf.common.util.EList;
/**
* <!-- begin-user-doc -->
@@ -26,7 +25,6 @@ import org.eclipse.emf.common.util.EList;
* <li>{@link org.eclipse.emf.cdo.releng.setup.Preferences#getUserName <em>User Name</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.Preferences#getInstallFolder <em>Install Folder</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.Preferences#getGitPrefix <em>Git Prefix</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.Preferences#getLinkLocations <em>Link Locations</em>}</li>
* </ul>
* </p>
*
@@ -34,7 +32,7 @@ import org.eclipse.emf.common.util.EList;
* @model
* @generated
*/
-public interface Preferences extends ToolInstallation
+public interface Preferences extends SetupTaskContainer
{
public static final String PREFERENCES_NAME = "setup-eclipse.xmi";
@@ -119,20 +117,4 @@ public interface Preferences extends ToolInstallation
*/
void setGitPrefix(String value);
- /**
- * Returns the value of the '<em><b>Link Locations</b></em>' containment reference list.
- * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.LinkLocation}.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Link Locations</em>' containment reference list isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Link Locations</em>' containment reference list.
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getPreferences_LinkLocations()
- * @model containment="true"
- * @generated
- */
- EList<LinkLocation> getLinkLocations();
-
} // Preferences
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java
index 284a66bfc3..4721c395bd 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Project.java
@@ -10,7 +10,6 @@
*/
package org.eclipse.emf.cdo.releng.setup;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup;
import org.eclipse.emf.common.util.EList;
/**
@@ -24,8 +23,6 @@ import org.eclipse.emf.common.util.EList;
* <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getConfiguration <em>Configuration</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getBranches <em>Branches</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines <em>Api Baselines</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.Project#getWorkingSetGroup <em>Working Set Group</em>}</li>
* </ul>
* </p>
*
@@ -33,7 +30,7 @@ import org.eclipse.emf.common.util.EList;
* @model
* @generated
*/
-public interface Project extends ToolInstallation
+public interface Project extends ConfigurableItem
{
/**
* Returns the value of the '<em><b>Configuration</b></em>' container reference.
@@ -48,7 +45,7 @@ public interface Project extends ToolInstallation
* @see #setConfiguration(Configuration)
* @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getProject_Configuration()
* @see org.eclipse.emf.cdo.releng.setup.Configuration#getProjects
- * @model opposite="projects" transient="false"
+ * @model opposite="projects"
* @generated
*/
Configuration getConfiguration();
@@ -76,7 +73,7 @@ public interface Project extends ToolInstallation
* @return the value of the '<em>Branches</em>' containment reference list.
* @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getProject_Branches()
* @see org.eclipse.emf.cdo.releng.setup.Branch#getProject
- * @model opposite="project" containment="true" required="true"
+ * @model opposite="project" containment="true" resolveProxies="true" required="true"
* @generated
*/
EList<Branch> getBranches();
@@ -107,48 +104,4 @@ public interface Project extends ToolInstallation
*/
void setName(String value);
- /**
- * Returns the value of the '<em><b>Api Baselines</b></em>' containment reference list.
- * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.ApiBaseline}.
- * It is bidirectional and its opposite is '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject <em>Project</em>}'.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Api Baselines</em>' containment reference list isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Api Baselines</em>' containment reference list.
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getProject_ApiBaselines()
- * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject
- * @model opposite="project" containment="true"
- * @generated
- */
- EList<ApiBaseline> getApiBaselines();
-
- /**
- * Returns the value of the '<em><b>Working Set Group</b></em>' containment reference.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Working Set Group</em>' containment reference isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Working Set Group</em>' containment reference.
- * @see #setWorkingSetGroup(WorkingSetGroup)
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getProject_WorkingSetGroup()
- * @model containment="true"
- * @generated
- */
- WorkingSetGroup getWorkingSetGroup();
-
- /**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Project#getWorkingSetGroup <em>Working Set Group</em>}' containment reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Working Set Group</em>' containment reference.
- * @see #getWorkingSetGroup()
- * @generated
- */
- void setWorkingSetGroup(WorkingSetGroup value);
-
} // Project
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ResourceCopyTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ResourceCopyTask.java
new file mode 100644
index 0000000000..2a6e470ef7
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ResourceCopyTask.java
@@ -0,0 +1,76 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Resource Copy Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getSourceURL <em>Source URL</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getTargetURL <em>Target URL</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getResourceCopyTask()
+ * @model
+ * @generated
+ */
+public interface ResourceCopyTask extends SetupTask
+{
+ /**
+ * Returns the value of the '<em><b>Source URL</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Source URL</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Source URL</em>' attribute.
+ * @see #setSourceURL(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getResourceCopyTask_SourceURL()
+ * @model
+ * @generated
+ */
+ String getSourceURL();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getSourceURL <em>Source URL</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Source URL</em>' attribute.
+ * @see #getSourceURL()
+ * @generated
+ */
+ void setSourceURL(String value);
+
+ /**
+ * Returns the value of the '<em><b>Target URL</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Target URL</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Target URL</em>' attribute.
+ * @see #setTargetURL(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getResourceCopyTask_TargetURL()
+ * @model
+ * @generated
+ */
+ String getTargetURL();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getTargetURL <em>Target URL</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Target URL</em>' attribute.
+ * @see #getTargetURL()
+ * @generated
+ */
+ void setTargetURL(String value);
+
+} // ResourceCopyTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java
index 62f299693f..1897e0b1f9 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Setup.java
@@ -24,7 +24,6 @@ import org.eclipse.emf.ecore.EObject;
* <li>{@link org.eclipse.emf.cdo.releng.setup.Setup#getBranch <em>Branch</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion <em>Eclipse Version</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.Setup#getUpdateLocations <em>Update Locations</em>}</li>
* </ul>
* </p>
*
@@ -87,45 +86,37 @@ public interface Setup extends EObject
void setEclipseVersion(EclipseVersion value);
/**
- * Returns the value of the '<em><b>Preferences</b></em>' containment reference.
+ * Returns the value of the '<em><b>Preferences</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Preferences</em>' containment reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
- * @return the value of the '<em>Preferences</em>' containment reference.
+ * @return the value of the '<em>Preferences</em>' reference.
* @see #setPreferences(Preferences)
* @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetup_Preferences()
- * @model containment="true"
+ * @model required="true"
* @generated
*/
Preferences getPreferences();
/**
- * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}' containment reference.
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @param value the new value of the '<em>Preferences</em>' containment reference.
+ * @param value the new value of the '<em>Preferences</em>' reference.
* @see #getPreferences()
* @generated
*/
void setPreferences(Preferences value);
/**
- * Returns the value of the '<em><b>Update Locations</b></em>' containment reference list.
- * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.P2Repository}.
* <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Update Locations</em>' containment reference list isn't clear,
- * there really should be more of a description here...
- * </p>
* <!-- end-user-doc -->
- * @return the value of the '<em>Update Locations</em>' containment reference list.
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetup_UpdateLocations()
- * @model containment="true"
+ * @model
* @generated
*/
- EList<P2Repository> getUpdateLocations();
+ EList<SetupTask> getSetupTasks(boolean filterRestrictions, Trigger trigger);
} // Workspace
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java
index c072236719..f0eb8f7a9a 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupFactory.java
@@ -58,6 +58,24 @@ public interface SetupFactory extends EFactory
Branch createBranch();
/**
+ * Returns a new object of class '<em>Api Baseline Task</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Api Baseline Task</em>'.
+ * @generated
+ */
+ ApiBaselineTask createApiBaselineTask();
+
+ /**
+ * Returns a new object of class '<em>Git Clone Task</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Git Clone Task</em>'.
+ * @generated
+ */
+ GitCloneTask createGitCloneTask();
+
+ /**
* Returns a new object of class '<em>Eclipse Version</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -67,13 +85,13 @@ public interface SetupFactory extends EFactory
EclipseVersion createEclipseVersion();
/**
- * Returns a new object of class '<em>Director Call</em>'.
+ * Returns a new object of class '<em>P2 Task</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Director Call</em>'.
+ * @return a new object of class '<em>P2 Task</em>'.
* @generated
*/
- DirectorCall createDirectorCall();
+ P2Task createP2Task();
/**
* Returns a new object of class '<em>Installable Unit</em>'.
@@ -94,49 +112,85 @@ public interface SetupFactory extends EFactory
P2Repository createP2Repository();
/**
- * Returns a new object of class '<em>Api Baseline</em>'.
+ * Returns a new object of class '<em>Setup</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Api Baseline</em>'.
+ * @return a new object of class '<em>Setup</em>'.
* @generated
*/
- ApiBaseline createApiBaseline();
+ Setup createSetup();
/**
- * Returns a new object of class '<em>Git Clone</em>'.
+ * Returns a new object of class '<em>Working Set Task</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Git Clone</em>'.
+ * @return a new object of class '<em>Working Set Task</em>'.
* @generated
*/
- GitClone createGitClone();
+ WorkingSetTask createWorkingSetTask();
/**
- * Returns a new object of class '<em>Setup</em>'.
+ * Returns a new object of class '<em>Resource Copy Task</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Setup</em>'.
+ * @return a new object of class '<em>Resource Copy Task</em>'.
* @generated
*/
- Setup createSetup();
+ ResourceCopyTask createResourceCopyTask();
/**
- * Returns a new object of class '<em>Tool Preference</em>'.
+ * Returns a new object of class '<em>Text Modify Task</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Text Modify Task</em>'.
+ * @generated
+ */
+ TextModifyTask createTextModifyTask();
+
+ /**
+ * Returns a new object of class '<em>Text Modification</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Text Modification</em>'.
+ * @generated
+ */
+ TextModification createTextModification();
+
+ /**
+ * Returns a new object of class '<em>Eclipse Ini Task</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Eclipse Ini Task</em>'.
+ * @generated
+ */
+ EclipseIniTask createEclipseIniTask();
+
+ /**
+ * Returns a new object of class '<em>Compound Setup Task</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Compound Setup Task</em>'.
+ * @generated
+ */
+ CompoundSetupTask createCompoundSetupTask();
+
+ /**
+ * Returns a new object of class '<em>Buckminster Import Task</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Tool Preference</em>'.
+ * @return a new object of class '<em>Buckminster Import Task</em>'.
* @generated
*/
- ToolPreference createToolPreference();
+ BuckminsterImportTask createBuckminsterImportTask();
/**
- * Returns a new object of class '<em>Link Location</em>'.
+ * Returns a new object of class '<em>String Variable Task</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return a new object of class '<em>Link Location</em>'.
+ * @return a new object of class '<em>String Variable Task</em>'.
* @generated
*/
- LinkLocation createLinkLocation();
+ StringVariableTask createStringVariableTask();
/**
* Returns a new object of class '<em>Preferences</em>'.
@@ -148,6 +202,24 @@ public interface SetupFactory extends EFactory
Preferences createPreferences();
/**
+ * Returns a new object of class '<em>Link Location Task</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Link Location Task</em>'.
+ * @generated
+ */
+ LinkLocationTask createLinkLocationTask();
+
+ /**
+ * Returns a new object of class '<em>Eclipse Preference Task</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Eclipse Preference Task</em>'.
+ * @generated
+ */
+ EclipsePreferenceTask createEclipsePreferenceTask();
+
+ /**
* Returns the package supported by this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java
index eece03b9e8..8040621c5c 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupPackage.java
@@ -13,6 +13,7 @@ package org.eclipse.emf.cdo.releng.setup;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
@@ -67,24 +68,24 @@ public interface SetupPackage extends EPackage
SetupPackage eINSTANCE = org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl.init();
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ConfigurationImpl <em>Configuration</em>}' class.
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl <em>Task Container</em>}' class.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.ConfigurationImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getConfiguration()
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTaskContainer()
* @generated
*/
- int CONFIGURATION = 8;
+ int SETUP_TASK_CONTAINER = 8;
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl <em>Tool Installation</em>}' class.
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ConfigurationImpl <em>Configuration</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getToolInstallation()
+ * @see org.eclipse.emf.cdo.releng.setup.impl.ConfigurationImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getConfiguration()
* @generated
*/
- int TOOL_INSTALLATION = 2;
+ int CONFIGURATION = 1;
/**
* The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl <em>Project</em>}' class.
@@ -94,7 +95,7 @@ public interface SetupPackage extends EPackage
* @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getProject()
* @generated
*/
- int PROJECT = 9;
+ int PROJECT = 3;
/**
* The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl <em>Branch</em>}' class.
@@ -104,7 +105,7 @@ public interface SetupPackage extends EPackage
* @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBranch()
* @generated
*/
- int BRANCH = 10;
+ int BRANCH = 4;
/**
* The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl <em>Eclipse Version</em>}' class.
@@ -114,17 +115,7 @@ public interface SetupPackage extends EPackage
* @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipseVersion()
* @generated
*/
- int ECLIPSE_VERSION = 4;
-
- /**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl <em>Director Call</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getDirectorCall()
- * @generated
- */
- int DIRECTOR_CALL = 5;
+ int ECLIPSE_VERSION = 0;
/**
* The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl <em>Installable Unit</em>}' class.
@@ -134,7 +125,7 @@ public interface SetupPackage extends EPackage
* @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getInstallableUnit()
* @generated
*/
- int INSTALLABLE_UNIT = 6;
+ int INSTALLABLE_UNIT = 14;
/**
* The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.P2RepositoryImpl <em>P2 Repository</em>}' class.
@@ -144,82 +135,266 @@ public interface SetupPackage extends EPackage
* @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getP2Repository()
* @generated
*/
- int P2_REPOSITORY = 7;
+ int P2_REPOSITORY = 15;
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl <em>Api Baseline</em>}' class.
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl <em>Preferences</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getApiBaseline()
+ * @see org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getPreferences()
* @generated
*/
- int API_BASELINE = 11;
+ int PREFERENCES = 5;
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl <em>Git Clone</em>}' class.
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl <em>Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getGitClone()
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTask()
* @generated
*/
- int GIT_CLONE = 12;
+ int SETUP_TASK = 7;
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl <em>Preferences</em>}' class.
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl <em>Link Location Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getPreferences()
+ * @see org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getLinkLocationTask()
+ * @generated
+ */
+ int LINK_LOCATION_TASK = 12;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl <em>Eclipse Preference Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipsePreferenceTask()
+ * @generated
+ */
+ int ECLIPSE_PREFERENCE_TASK = 19;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl <em>Setup</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetup()
+ * @generated
+ */
+ int SETUP = 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl <em>P2 Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getP2Task()
+ * @generated
+ */
+ int P2_TASK = 13;
+
+ /**
+ * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SETUP_TASK_CONTAINER__SETUP_TASKS = 0;
+
+ /**
+ * The number of structural features of the '<em>Task Container</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SETUP_TASK_CONTAINER_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ConfigurableItemImpl <em>Configurable Item</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.ConfigurableItemImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getConfigurableItem()
+ * @generated
+ */
+ int CONFIGURABLE_ITEM = 2;
+
+ /**
+ * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURABLE_ITEM__SETUP_TASKS = SETUP_TASK_CONTAINER__SETUP_TASKS;
+
+ /**
+ * The number of structural features of the '<em>Configurable Item</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURABLE_ITEM_FEATURE_COUNT = SETUP_TASK_CONTAINER_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
* @generated
+ * @ordered
*/
- int PREFERENCES = 0;
+ int ECLIPSE_VERSION__SETUP_TASKS = CONFIGURABLE_ITEM__SETUP_TASKS;
/**
- * The feature id for the '<em><b>Director Calls</b></em>' containment reference list.
+ * The feature id for the '<em><b>Configuration</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_VERSION__CONFIGURATION = CONFIGURABLE_ITEM_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_VERSION__VERSION = CONFIGURABLE_ITEM_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Eclipse Version</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_VERSION_FEATURE_COUNT = CONFIGURABLE_ITEM_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Projects</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION__PROJECTS = 0;
+
+ /**
+ * The feature id for the '<em><b>Eclipse Versions</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION__ECLIPSE_VERSIONS = 1;
+
+ /**
+ * The number of structural features of the '<em>Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CONFIGURATION_FEATURE_COUNT = 2;
+
+ /**
+ * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int TOOL_INSTALLATION__DIRECTOR_CALLS = 0;
+ int PROJECT__SETUP_TASKS = CONFIGURABLE_ITEM__SETUP_TASKS;
/**
- * The feature id for the '<em><b>Tool Preferences</b></em>' containment reference list.
+ * The feature id for the '<em><b>Configuration</b></em>' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int TOOL_INSTALLATION__TOOL_PREFERENCES = 1;
+ int PROJECT__CONFIGURATION = CONFIGURABLE_ITEM_FEATURE_COUNT + 0;
/**
- * The number of structural features of the '<em>Tool Installation</em>' class.
+ * The feature id for the '<em><b>Branches</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int TOOL_INSTALLATION_FEATURE_COUNT = 2;
+ int PROJECT__BRANCHES = CONFIGURABLE_ITEM_FEATURE_COUNT + 1;
/**
- * The feature id for the '<em><b>Director Calls</b></em>' containment reference list.
+ * The feature id for the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PREFERENCES__DIRECTOR_CALLS = TOOL_INSTALLATION__DIRECTOR_CALLS;
+ int PROJECT__NAME = CONFIGURABLE_ITEM_FEATURE_COUNT + 2;
+
+ /**
+ * The number of structural features of the '<em>Project</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT_FEATURE_COUNT = CONFIGURABLE_ITEM_FEATURE_COUNT + 3;
/**
- * The feature id for the '<em><b>Tool Preferences</b></em>' containment reference list.
+ * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PREFERENCES__TOOL_PREFERENCES = TOOL_INSTALLATION__TOOL_PREFERENCES;
+ int BRANCH__SETUP_TASKS = CONFIGURABLE_ITEM__SETUP_TASKS;
+
+ /**
+ * The feature id for the '<em><b>Project</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BRANCH__PROJECT = CONFIGURABLE_ITEM_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BRANCH__NAME = CONFIGURABLE_ITEM_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Branch</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BRANCH_FEATURE_COUNT = CONFIGURABLE_ITEM_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PREFERENCES__SETUP_TASKS = SETUP_TASK_CONTAINER__SETUP_TASKS;
/**
* The feature id for the '<em><b>User Name</b></em>' attribute.
@@ -228,7 +403,7 @@ public interface SetupPackage extends EPackage
* @generated
* @ordered
*/
- int PREFERENCES__USER_NAME = TOOL_INSTALLATION_FEATURE_COUNT + 0;
+ int PREFERENCES__USER_NAME = SETUP_TASK_CONTAINER_FEATURE_COUNT + 0;
/**
* The feature id for the '<em><b>Install Folder</b></em>' attribute.
@@ -237,7 +412,7 @@ public interface SetupPackage extends EPackage
* @generated
* @ordered
*/
- int PREFERENCES__INSTALL_FOLDER = TOOL_INSTALLATION_FEATURE_COUNT + 1;
+ int PREFERENCES__INSTALL_FOLDER = SETUP_TASK_CONTAINER_FEATURE_COUNT + 1;
/**
* The feature id for the '<em><b>Git Prefix</b></em>' attribute.
@@ -246,64 +421,182 @@ public interface SetupPackage extends EPackage
* @generated
* @ordered
*/
- int PREFERENCES__GIT_PREFIX = TOOL_INSTALLATION_FEATURE_COUNT + 2;
+ int PREFERENCES__GIT_PREFIX = SETUP_TASK_CONTAINER_FEATURE_COUNT + 2;
/**
- * The feature id for the '<em><b>Link Locations</b></em>' containment reference list.
+ * The number of structural features of the '<em>Preferences</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PREFERENCES__LINK_LOCATIONS = TOOL_INSTALLATION_FEATURE_COUNT + 3;
+ int PREFERENCES_FEATURE_COUNT = SETUP_TASK_CONTAINER_FEATURE_COUNT + 3;
/**
- * The number of structural features of the '<em>Preferences</em>' class.
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl <em>Api Baseline Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getApiBaselineTask()
+ * @generated
+ */
+ int API_BASELINE_TASK = 17;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl <em>Git Clone Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getGitCloneTask()
+ * @generated
+ */
+ int GIT_CLONE_TASK = 18;
+
+ /**
+ * The feature id for the '<em><b>Branch</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PREFERENCES_FEATURE_COUNT = TOOL_INSTALLATION_FEATURE_COUNT + 4;
+ int SETUP__BRANCH = 0;
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl <em>Setup</em>}' class.
+ * The feature id for the '<em><b>Eclipse Version</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetup()
* @generated
+ * @ordered
*/
- int SETUP = 13;
+ int SETUP__ECLIPSE_VERSION = 1;
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl <em>Tool Preference</em>}' class.
+ * The feature id for the '<em><b>Preferences</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getToolPreference()
* @generated
+ * @ordered
*/
- int TOOL_PREFERENCE = 3;
+ int SETUP__PREFERENCES = 2;
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl <em>Link Location</em>}' class.
+ * The number of structural features of the '<em>Setup</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getLinkLocation()
* @generated
+ * @ordered
*/
- int LINK_LOCATION = 1;
+ int SETUP_FEATURE_COUNT = 3;
/**
- * The feature id for the '<em><b>Path</b></em>' attribute.
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SETUP_TASK__REQUIREMENTS = 0;
+
+ /**
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SETUP_TASK__RESTRICTIONS = 1;
+
+ /**
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int LINK_LOCATION__PATH = 0;
+ int SETUP_TASK__SCOPE = 2;
+
+ /**
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SETUP_TASK__EXCLUDED_TRIGGERS = 3;
+
+ /**
+ * The number of structural features of the '<em>Task</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SETUP_TASK_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl <em>Working Set Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getWorkingSetTask()
+ * @generated
+ */
+ int WORKING_SET_TASK = 21;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl <em>Compound Setup Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getCompoundSetupTask()
+ * @generated
+ */
+ int COMPOUND_SETUP_TASK = 9;
+
+ /**
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_SETUP_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
+
+ /**
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_SETUP_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
+
+ /**
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_SETUP_TASK__SCOPE = SETUP_TASK__SCOPE;
+
+ /**
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_SETUP_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Setup Tasks</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int COMPOUND_SETUP_TASK__SETUP_TASKS = SETUP_TASK_FEATURE_COUNT + 0;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
@@ -312,25 +605,155 @@ public interface SetupPackage extends EPackage
* @generated
* @ordered
*/
- int LINK_LOCATION__NAME = 1;
+ int COMPOUND_SETUP_TASK__NAME = SETUP_TASK_FEATURE_COUNT + 1;
/**
- * The number of structural features of the '<em>Link Location</em>' class.
+ * The number of structural features of the '<em>Compound Setup Task</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int LINK_LOCATION_FEATURE_COUNT = 2;
+ int COMPOUND_SETUP_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2;
/**
- * The feature id for the '<em><b>Key</b></em>' attribute.
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl <em>One Time Setup Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getOneTimeSetupTask()
+ * @generated
+ */
+ int ONE_TIME_SETUP_TASK = 10;
+
+ /**
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int TOOL_PREFERENCE__KEY = 0;
+ int ONE_TIME_SETUP_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
+
+ /**
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ONE_TIME_SETUP_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
+
+ /**
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ONE_TIME_SETUP_TASK__SCOPE = SETUP_TASK__SCOPE;
+
+ /**
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ONE_TIME_SETUP_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ONE_TIME_SETUP_TASK__ID = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the '<em>One Time Setup Task</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ONE_TIME_SETUP_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl <em>Buckminster Import Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBuckminsterImportTask()
+ * @generated
+ */
+ int BUCKMINSTER_IMPORT_TASK = 16;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl <em>String Variable Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getStringVariableTask()
+ * @generated
+ */
+ int STRING_VARIABLE_TASK = 20;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl <em>Eclipse Ini Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipseIniTask()
+ * @generated
+ */
+ int ECLIPSE_INI_TASK = 11;
+
+ /**
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_INI_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
+
+ /**
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_INI_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
+
+ /**
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_INI_TASK__SCOPE = SETUP_TASK__SCOPE;
+
+ /**
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_INI_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Option</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_INI_TASK__OPTION = SETUP_TASK_FEATURE_COUNT + 0;
/**
* The feature id for the '<em><b>Value</b></em>' attribute.
@@ -339,88 +762,160 @@ public interface SetupPackage extends EPackage
* @generated
* @ordered
*/
- int TOOL_PREFERENCE__VALUE = 1;
+ int ECLIPSE_INI_TASK__VALUE = SETUP_TASK_FEATURE_COUNT + 1;
/**
- * The number of structural features of the '<em>Tool Preference</em>' class.
+ * The feature id for the '<em><b>Vm</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int TOOL_PREFERENCE_FEATURE_COUNT = 2;
+ int ECLIPSE_INI_TASK__VM = SETUP_TASK_FEATURE_COUNT + 2;
/**
- * The feature id for the '<em><b>Configuration</b></em>' container reference.
+ * The number of structural features of the '<em>Eclipse Ini Task</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int ECLIPSE_VERSION__CONFIGURATION = 0;
+ int ECLIPSE_INI_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 3;
/**
- * The feature id for the '<em><b>Version</b></em>' attribute.
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int ECLIPSE_VERSION__VERSION = 1;
+ int LINK_LOCATION_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
/**
- * The feature id for the '<em><b>Director Call</b></em>' containment reference.
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int ECLIPSE_VERSION__DIRECTOR_CALL = 2;
+ int LINK_LOCATION_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
/**
- * The number of structural features of the '<em>Eclipse Version</em>' class.
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int ECLIPSE_VERSION_FEATURE_COUNT = 3;
+ int LINK_LOCATION_TASK__SCOPE = SETUP_TASK__SCOPE;
/**
- * The feature id for the '<em><b>Installable Units</b></em>' containment reference list.
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_LOCATION_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_LOCATION_TASK__PATH = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_LOCATION_TASK__NAME = SETUP_TASK_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Link Location Task</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LINK_LOCATION_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int P2_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
+
+ /**
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int P2_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
+
+ /**
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int DIRECTOR_CALL__INSTALLABLE_UNITS = 0;
+ int P2_TASK__SCOPE = SETUP_TASK__SCOPE;
+
+ /**
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int P2_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
/**
* The feature id for the '<em><b>P2 Repositories</b></em>' containment reference list.
* <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int P2_TASK__P2_REPOSITORIES = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Installable Units</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int DIRECTOR_CALL__P2_REPOSITORIES = 1;
+ int P2_TASK__INSTALLABLE_UNITS = SETUP_TASK_FEATURE_COUNT + 1;
/**
- * The number of structural features of the '<em>Director Call</em>' class.
+ * The number of structural features of the '<em>P2 Task</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int DIRECTOR_CALL_FEATURE_COUNT = 2;
+ int P2_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2;
/**
- * The feature id for the '<em><b>Director Call</b></em>' container reference.
+ * The feature id for the '<em><b>P2 Task</b></em>' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int INSTALLABLE_UNIT__DIRECTOR_CALL = 0;
+ int INSTALLABLE_UNIT__P2_TASK = 0;
/**
* The feature id for the '<em><b>Id</b></em>' attribute.
@@ -441,13 +936,13 @@ public interface SetupPackage extends EPackage
int INSTALLABLE_UNIT_FEATURE_COUNT = 2;
/**
- * The feature id for the '<em><b>Director Call</b></em>' container reference.
+ * The feature id for the '<em><b>P2 Task</b></em>' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int P2_REPOSITORY__DIRECTOR_CALL = 0;
+ int P2_REPOSITORY__P2_TASK = 0;
/**
* The feature id for the '<em><b>Url</b></em>' attribute.
@@ -468,325 +963,647 @@ public interface SetupPackage extends EPackage
int P2_REPOSITORY_FEATURE_COUNT = 2;
/**
- * The feature id for the '<em><b>Projects</b></em>' containment reference list.
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int CONFIGURATION__PROJECTS = 0;
+ int BUCKMINSTER_IMPORT_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
/**
- * The feature id for the '<em><b>Eclipse Versions</b></em>' containment reference list.
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int CONFIGURATION__ECLIPSE_VERSIONS = 1;
+ int BUCKMINSTER_IMPORT_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
/**
- * The number of structural features of the '<em>Configuration</em>' class.
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int CONFIGURATION_FEATURE_COUNT = 2;
+ int BUCKMINSTER_IMPORT_TASK__SCOPE = SETUP_TASK__SCOPE;
/**
- * The feature id for the '<em><b>Director Calls</b></em>' containment reference list.
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PROJECT__DIRECTOR_CALLS = TOOL_INSTALLATION__DIRECTOR_CALLS;
+ int BUCKMINSTER_IMPORT_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
/**
- * The feature id for the '<em><b>Tool Preferences</b></em>' containment reference list.
+ * The feature id for the '<em><b>Mspec</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int BUCKMINSTER_IMPORT_TASK__MSPEC = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Target Platform</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PROJECT__TOOL_PREFERENCES = TOOL_INSTALLATION__TOOL_PREFERENCES;
+ int BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM = SETUP_TASK_FEATURE_COUNT + 1;
/**
- * The feature id for the '<em><b>Configuration</b></em>' container reference.
+ * The feature id for the '<em><b>Bundle Pool</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PROJECT__CONFIGURATION = TOOL_INSTALLATION_FEATURE_COUNT + 0;
+ int BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL = SETUP_TASK_FEATURE_COUNT + 2;
/**
- * The feature id for the '<em><b>Branches</b></em>' containment reference list.
+ * The number of structural features of the '<em>Buckminster Import Task</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PROJECT__BRANCHES = TOOL_INSTALLATION_FEATURE_COUNT + 1;
+ int BUCKMINSTER_IMPORT_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 3;
/**
- * The feature id for the '<em><b>Name</b></em>' attribute.
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PROJECT__NAME = TOOL_INSTALLATION_FEATURE_COUNT + 2;
+ int API_BASELINE_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
/**
- * The feature id for the '<em><b>Api Baselines</b></em>' containment reference list.
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PROJECT__API_BASELINES = TOOL_INSTALLATION_FEATURE_COUNT + 3;
+ int API_BASELINE_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
/**
- * The feature id for the '<em><b>Working Set Group</b></em>' containment reference.
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int PROJECT__WORKING_SET_GROUP = TOOL_INSTALLATION_FEATURE_COUNT + 4;
+ int API_BASELINE_TASK__SCOPE = SETUP_TASK__SCOPE;
/**
- * The number of structural features of the '<em>Project</em>' class.
- * <!-- begin-user-doc -->
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int API_BASELINE_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int PROJECT_FEATURE_COUNT = TOOL_INSTALLATION_FEATURE_COUNT + 5;
+ * @generated
+ * @ordered
+ */
+ int API_BASELINE_TASK__VERSION = SETUP_TASK_FEATURE_COUNT + 0;
/**
- * The feature id for the '<em><b>Director Calls</b></em>' containment reference list.
+ * The feature id for the '<em><b>Zip Location</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH__DIRECTOR_CALLS = TOOL_INSTALLATION__DIRECTOR_CALLS;
+ int API_BASELINE_TASK__ZIP_LOCATION = SETUP_TASK_FEATURE_COUNT + 1;
/**
- * The feature id for the '<em><b>Tool Preferences</b></em>' containment reference list.
+ * The number of structural features of the '<em>Api Baseline Task</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH__TOOL_PREFERENCES = TOOL_INSTALLATION__TOOL_PREFERENCES;
+ int API_BASELINE_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2;
/**
- * The feature id for the '<em><b>Project</b></em>' container reference.
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH__PROJECT = TOOL_INSTALLATION_FEATURE_COUNT + 0;
+ int GIT_CLONE_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
+
+ /**
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GIT_CLONE_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
+
+ /**
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GIT_CLONE_TASK__SCOPE = SETUP_TASK__SCOPE;
+
+ /**
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GIT_CLONE_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int GIT_CLONE_TASK__NAME = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Remote Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH__NAME = TOOL_INSTALLATION_FEATURE_COUNT + 1;
+ int GIT_CLONE_TASK__REMOTE_NAME = SETUP_TASK_FEATURE_COUNT + 1;
/**
- * The feature id for the '<em><b>Git Clones</b></em>' containment reference list.
+ * The feature id for the '<em><b>Remote URI</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH__GIT_CLONES = TOOL_INSTALLATION_FEATURE_COUNT + 2;
+ int GIT_CLONE_TASK__REMOTE_URI = SETUP_TASK_FEATURE_COUNT + 2;
/**
- * The feature id for the '<em><b>Api Baseline</b></em>' reference.
+ * The feature id for the '<em><b>Checkout Branch</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH__API_BASELINE = TOOL_INSTALLATION_FEATURE_COUNT + 3;
+ int GIT_CLONE_TASK__CHECKOUT_BRANCH = SETUP_TASK_FEATURE_COUNT + 3;
/**
- * The feature id for the '<em><b>Mspec File Path</b></em>' attribute.
+ * The number of structural features of the '<em>Git Clone Task</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH__MSPEC_FILE_PATH = TOOL_INSTALLATION_FEATURE_COUNT + 4;
+ int GIT_CLONE_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 4;
/**
- * The feature id for the '<em><b>Clone Variable Name</b></em>' attribute.
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH__CLONE_VARIABLE_NAME = TOOL_INSTALLATION_FEATURE_COUNT + 5;
+ int ECLIPSE_PREFERENCE_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
/**
- * The number of structural features of the '<em>Branch</em>' class.
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int BRANCH_FEATURE_COUNT = TOOL_INSTALLATION_FEATURE_COUNT + 6;
+ int ECLIPSE_PREFERENCE_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
/**
- * The feature id for the '<em><b>Project</b></em>' container reference.
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int API_BASELINE__PROJECT = 0;
+ int ECLIPSE_PREFERENCE_TASK__SCOPE = SETUP_TASK__SCOPE;
/**
- * The feature id for the '<em><b>Version</b></em>' attribute.
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int API_BASELINE__VERSION = 1;
+ int ECLIPSE_PREFERENCE_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
/**
- * The feature id for the '<em><b>Zip Location</b></em>' attribute.
+ * The feature id for the '<em><b>Key</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_PREFERENCE_TASK__KEY = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_PREFERENCE_TASK__VALUE = SETUP_TASK_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Eclipse Preference Task</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ECLIPSE_PREFERENCE_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STRING_VARIABLE_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
+
+ /**
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int API_BASELINE__ZIP_LOCATION = 2;
+ int STRING_VARIABLE_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
/**
- * The number of structural features of the '<em>Api Baseline</em>' class.
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int API_BASELINE_FEATURE_COUNT = 3;
+ int STRING_VARIABLE_TASK__SCOPE = SETUP_TASK__SCOPE;
/**
- * The feature id for the '<em><b>Branch</b></em>' container reference.
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int GIT_CLONE__BRANCH = 0;
+ int STRING_VARIABLE_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
/**
* The feature id for the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int STRING_VARIABLE_TASK__NAME = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int GIT_CLONE__NAME = 1;
+ int STRING_VARIABLE_TASK__VALUE = SETUP_TASK_FEATURE_COUNT + 1;
/**
- * The feature id for the '<em><b>Remote URI</b></em>' attribute.
+ * The feature id for the '<em><b>Description</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int GIT_CLONE__REMOTE_URI = 2;
+ int STRING_VARIABLE_TASK__DESCRIPTION = SETUP_TASK_FEATURE_COUNT + 2;
/**
- * The feature id for the '<em><b>Checkout Branch</b></em>' attribute.
+ * The number of structural features of the '<em>String Variable Task</em>' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int GIT_CLONE__CHECKOUT_BRANCH = 3;
+ int STRING_VARIABLE_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 3;
/**
- * The number of structural features of the '<em>Git Clone</em>' class.
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int GIT_CLONE_FEATURE_COUNT = 4;
+ int WORKING_SET_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
/**
- * The feature id for the '<em><b>Branch</b></em>' reference.
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int SETUP__BRANCH = 0;
+ int WORKING_SET_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
/**
- * The feature id for the '<em><b>Eclipse Version</b></em>' reference.
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int SETUP__ECLIPSE_VERSION = 1;
+ int WORKING_SET_TASK__SCOPE = SETUP_TASK__SCOPE;
/**
- * The feature id for the '<em><b>Preferences</b></em>' containment reference.
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int SETUP__PREFERENCES = 2;
+ int WORKING_SET_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
/**
- * The feature id for the '<em><b>Update Locations</b></em>' containment reference list.
+ * The feature id for the '<em><b>Working Sets</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int SETUP__UPDATE_LOCATIONS = 3;
+ int WORKING_SET_TASK__WORKING_SETS = SETUP_TASK_FEATURE_COUNT + 0;
/**
- * The number of structural features of the '<em>Setup</em>' class.
+ * The number of structural features of the '<em>Working Set Task</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WORKING_SET_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl <em>Resource Copy Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getResourceCopyTask()
+ * @generated
+ */
+ int RESOURCE_COPY_TASK = 22;
+
+ /**
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
* @generated
* @ordered
*/
- int SETUP_FEATURE_COUNT = 4;
+ int RESOURCE_COPY_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
/**
- * The meta object id for the '<em>URI</em>' data type.
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_COPY_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
+
+ /**
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_COPY_TASK__SCOPE = SETUP_TASK__SCOPE;
+
+ /**
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_COPY_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Source URL</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_COPY_TASK__SOURCE_URL = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Target URL</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_COPY_TASK__TARGET_URL = SETUP_TASK_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Resource Copy Task</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_COPY_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl <em>Text Modify Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTextModifyTask()
+ * @generated
+ */
+ int TEXT_MODIFY_TASK = 23;
+
+ /**
+ * The feature id for the '<em><b>Requirements</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFY_TASK__REQUIREMENTS = SETUP_TASK__REQUIREMENTS;
+
+ /**
+ * The feature id for the '<em><b>Restrictions</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFY_TASK__RESTRICTIONS = SETUP_TASK__RESTRICTIONS;
+
+ /**
+ * The feature id for the '<em><b>Scope</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFY_TASK__SCOPE = SETUP_TASK__SCOPE;
+
+ /**
+ * The feature id for the '<em><b>Excluded Triggers</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFY_TASK__EXCLUDED_TRIGGERS = SETUP_TASK__EXCLUDED_TRIGGERS;
+
+ /**
+ * The feature id for the '<em><b>Url</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFY_TASK__URL = SETUP_TASK_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Modifications</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFY_TASK__MODIFICATIONS = SETUP_TASK_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the '<em>Text Modify Task</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFY_TASK_FEATURE_COUNT = SETUP_TASK_FEATURE_COUNT + 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl <em>Text Modification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTextModification()
+ * @generated
+ */
+ int TEXT_MODIFICATION = 24;
+
+ /**
+ * The feature id for the '<em><b>Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFICATION__PATTERN = 0;
+
+ /**
+ * The feature id for the '<em><b>Substitutions</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFICATION__SUBSTITUTIONS = 1;
+
+ /**
+ * The number of structural features of the '<em>Text Modification</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TEXT_MODIFICATION_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskScope <em>Task Scope</em>}' enum.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTaskScope
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTaskScope()
+ * @generated
+ */
+ int SETUP_TASK_SCOPE = 25;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.emf.cdo.releng.setup.Trigger <em>Trigger</em>}' enum.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.Trigger
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTrigger()
+ * @generated
+ */
+ int TRIGGER = 26;
+
+ /**
+ * The meta object id for the '<em>URI</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
* @see org.eclipse.emf.common.util.URI
* @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getURI()
* @generated
*/
- int URI = 14;
+ int URI = 27;
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Configuration <em>Configuration</em>}'.
+ * The meta object id for the '<em>Exception</em>' data type.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see java.lang.Exception
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getException()
+ * @generated
+ */
+ int EXCEPTION = 28;
+
+ /**
+ * The meta object id for the '<em>Trigger Set</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.util.Set
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTriggerSet()
+ * @generated
+ */
+ int TRIGGER_SET = 29;
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Configuration <em>Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
* @return the meta object for class '<em>Configuration</em>'.
* @see org.eclipse.emf.cdo.releng.setup.Configuration
* @generated
@@ -859,35 +1676,13 @@ public interface SetupPackage extends EPackage
EAttribute getProject_Name();
/**
- * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines <em>Api Baselines</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Api Baselines</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Project#getApiBaselines()
- * @see #getProject()
- * @generated
- */
- EReference getProject_ApiBaselines();
-
- /**
- * Returns the meta object for the containment reference '{@link org.eclipse.emf.cdo.releng.setup.Project#getWorkingSetGroup <em>Working Set Group</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Branch <em>Branch</em>}'.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the containment reference '<em>Working Set Group</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Project#getWorkingSetGroup()
- * @see #getProject()
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Branch</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.Branch
* @generated
*/
- EReference getProject_WorkingSetGroup();
-
- /**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Branch <em>Branch</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for class '<em>Branch</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Branch
- * @generated
- */
EClass getBranch();
/**
@@ -913,80 +1708,90 @@ public interface SetupPackage extends EPackage
EAttribute getBranch_Name();
/**
- * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.Branch#getGitClones <em>Git Clones</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask <em>Api Baseline Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Git Clones</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Branch#getGitClones()
- * @see #getBranch()
+ * @return the meta object for class '<em>Api Baseline Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.ApiBaselineTask
* @generated
*/
- EReference getBranch_GitClones();
+ EClass getApiBaselineTask();
/**
- * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Branch#getApiBaseline <em>Api Baseline</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getVersion <em>Version</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the reference '<em>Api Baseline</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Branch#getApiBaseline()
- * @see #getBranch()
+ * @return the meta object for the attribute '<em>Version</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getVersion()
+ * @see #getApiBaselineTask()
* @generated
*/
- EReference getBranch_ApiBaseline();
+ EAttribute getApiBaselineTask_Version();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.Branch#getMspecFilePath <em>Mspec File Path</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getZipLocation <em>Zip Location</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Mspec File Path</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Branch#getMspecFilePath()
- * @see #getBranch()
+ * @return the meta object for the attribute '<em>Zip Location</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.ApiBaselineTask#getZipLocation()
+ * @see #getApiBaselineTask()
* @generated
*/
- EAttribute getBranch_MspecFilePath();
+ EAttribute getApiBaselineTask_ZipLocation();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.Branch#getCloneVariableName <em>Clone Variable Name</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask <em>Git Clone Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Clone Variable Name</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Branch#getCloneVariableName()
- * @see #getBranch()
+ * @return the meta object for class '<em>Git Clone Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask
* @generated
*/
- EAttribute getBranch_CloneVariableName();
+ EClass getGitCloneTask();
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation <em>Tool Installation</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getName <em>Name</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Tool Installation</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ToolInstallation
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask#getName()
+ * @see #getGitCloneTask()
* @generated
*/
- EClass getToolInstallation();
+ EAttribute getGitCloneTask_Name();
/**
- * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation#getDirectorCalls <em>Director Calls</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteName <em>Remote Name</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Director Calls</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ToolInstallation#getDirectorCalls()
- * @see #getToolInstallation()
+ * @return the meta object for the attribute '<em>Remote Name</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteName()
+ * @see #getGitCloneTask()
* @generated
*/
- EReference getToolInstallation_DirectorCalls();
+ EAttribute getGitCloneTask_RemoteName();
/**
- * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation#getToolPreferences <em>Tool Preferences</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteURI <em>Remote URI</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Tool Preferences</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ToolInstallation#getToolPreferences()
- * @see #getToolInstallation()
+ * @return the meta object for the attribute '<em>Remote URI</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask#getRemoteURI()
+ * @see #getGitCloneTask()
* @generated
*/
- EReference getToolInstallation_ToolPreferences();
+ EAttribute getGitCloneTask_RemoteURI();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask#getCheckoutBranch <em>Checkout Branch</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Checkout Branch</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask#getCheckoutBranch()
+ * @see #getGitCloneTask()
+ * @generated
+ */
+ EAttribute getGitCloneTask_CheckoutBranch();
/**
* Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion <em>Eclipse Version</em>}'.
@@ -1021,47 +1826,79 @@ public interface SetupPackage extends EPackage
EAttribute getEclipseVersion_Version();
/**
- * Returns the meta object for the containment reference '{@link org.eclipse.emf.cdo.releng.setup.EclipseVersion#getDirectorCall <em>Director Call</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.P2Task <em>P2 Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference '<em>Director Call</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.EclipseVersion#getDirectorCall()
- * @see #getEclipseVersion()
+ * @return the meta object for class '<em>P2 Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.P2Task
* @generated
*/
- EReference getEclipseVersion_DirectorCall();
+ EClass getP2Task();
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall <em>Director Call</em>}'.
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits <em>Installable Units</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Director Call</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.DirectorCall
+ * @return the meta object for the containment reference list '<em>Installable Units</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.P2Task#getInstallableUnits()
+ * @see #getP2Task()
* @generated
*/
- EClass getDirectorCall();
+ EReference getP2Task_InstallableUnits();
/**
- * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits <em>Installable Units</em>}'.
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories <em>P2 Repositories</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Installable Units</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.DirectorCall#getInstallableUnits()
- * @see #getDirectorCall()
+ * @return the meta object for the containment reference list '<em>P2 Repositories</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.P2Task#getP2Repositories()
+ * @see #getP2Task()
* @generated
*/
- EReference getDirectorCall_InstallableUnits();
+ EReference getP2Task_P2Repositories();
/**
- * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories <em>P2 Repositories</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask <em>String Variable Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>P2 Repositories</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.DirectorCall#getP2Repositories()
- * @see #getDirectorCall()
+ * @return the meta object for class '<em>String Variable Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask
* @generated
*/
- EReference getDirectorCall_P2Repositories();
+ EClass getStringVariableTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask#getName()
+ * @see #getStringVariableTask()
+ * @generated
+ */
+ EAttribute getStringVariableTask_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask#getValue()
+ * @see #getStringVariableTask()
+ * @generated
+ */
+ EAttribute getStringVariableTask_Value();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getDescription <em>Description</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Description</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask#getDescription()
+ * @see #getStringVariableTask()
+ * @generated
+ */
+ EAttribute getStringVariableTask_Description();
/**
* Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit <em>Installable Unit</em>}'.
@@ -1074,15 +1911,15 @@ public interface SetupPackage extends EPackage
EClass getInstallableUnit();
/**
- * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall <em>Director Call</em>}'.
+ * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task <em>P2 Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the container reference '<em>Director Call</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.InstallableUnit#getDirectorCall()
+ * @return the meta object for the container reference '<em>P2 Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.InstallableUnit#getP2Task()
* @see #getInstallableUnit()
* @generated
*/
- EReference getInstallableUnit_DirectorCall();
+ EReference getInstallableUnit_P2Task();
/**
* Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.InstallableUnit#getId <em>Id</em>}'.
@@ -1106,15 +1943,15 @@ public interface SetupPackage extends EPackage
EClass getP2Repository();
/**
- * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall <em>Director Call</em>}'.
+ * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task <em>P2 Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the container reference '<em>Director Call</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.P2Repository#getDirectorCall()
+ * @return the meta object for the container reference '<em>P2 Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.P2Repository#getP2Task()
* @see #getP2Repository()
* @generated
*/
- EReference getP2Repository_DirectorCall();
+ EReference getP2Repository_P2Task();
/**
* Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.P2Repository#getUrl <em>Url</em>}'.
@@ -1128,219 +1965,376 @@ public interface SetupPackage extends EPackage
EAttribute getP2Repository_Url();
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline <em>Api Baseline</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Setup <em>Setup</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Api Baseline</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline
+ * @return the meta object for class '<em>Setup</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.Setup
* @generated
*/
- EClass getApiBaseline();
+ EClass getSetup();
/**
- * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject <em>Project</em>}'.
+ * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getBranch <em>Branch</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the container reference '<em>Project</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline#getProject()
- * @see #getApiBaseline()
+ * @return the meta object for the reference '<em>Branch</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.Setup#getBranch()
+ * @see #getSetup()
* @generated
*/
- EReference getApiBaseline_Project();
+ EReference getSetup_Branch();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getVersion <em>Version</em>}'.
+ * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion <em>Eclipse Version</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Version</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline#getVersion()
- * @see #getApiBaseline()
+ * @return the meta object for the reference '<em>Eclipse Version</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion()
+ * @see #getSetup()
* @generated
*/
- EAttribute getApiBaseline_Version();
+ EReference getSetup_EclipseVersion();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline#getZipLocation <em>Zip Location</em>}'.
+ * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Zip Location</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline#getZipLocation()
- * @see #getApiBaseline()
+ * @return the meta object for the reference '<em>Preferences</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.Setup#getPreferences()
+ * @see #getSetup()
* @generated
*/
- EAttribute getApiBaseline_ZipLocation();
+ EReference getSetup_Preferences();
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.GitClone <em>Git Clone</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.SetupTask <em>Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Git Clone</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.GitClone
+ * @return the meta object for class '<em>Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTask
* @generated
*/
- EClass getGitClone();
+ EClass getSetupTask();
/**
- * Returns the meta object for the container reference '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getBranch <em>Branch</em>}'.
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getRequirements <em>Requirements</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the container reference '<em>Branch</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.GitClone#getBranch()
- * @see #getGitClone()
+ * @return the meta object for the reference list '<em>Requirements</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTask#getRequirements()
+ * @see #getSetupTask()
* @generated
*/
- EReference getGitClone_Branch();
+ EReference getSetupTask_Requirements();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getName <em>Name</em>}'.
+ * Returns the meta object for the reference list '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getRestrictions <em>Restrictions</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Name</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.GitClone#getName()
- * @see #getGitClone()
+ * @return the meta object for the reference list '<em>Restrictions</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTask#getRestrictions()
+ * @see #getSetupTask()
* @generated
*/
- EAttribute getGitClone_Name();
+ EReference getSetupTask_Restrictions();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getRemoteURI <em>Remote URI</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getScope <em>Scope</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Remote URI</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.GitClone#getRemoteURI()
- * @see #getGitClone()
+ * @return the meta object for the attribute '<em>Scope</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTask#getScope()
+ * @see #getSetupTask()
* @generated
*/
- EAttribute getGitClone_RemoteURI();
+ EAttribute getSetupTask_Scope();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.GitClone#getCheckoutBranch <em>Checkout Branch</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getExcludedTriggers <em>Excluded Triggers</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Checkout Branch</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.GitClone#getCheckoutBranch()
- * @see #getGitClone()
+ * @return the meta object for the attribute '<em>Excluded Triggers</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTask#getExcludedTriggers()
+ * @see #getSetupTask()
* @generated
*/
- EAttribute getGitClone_CheckoutBranch();
+ EAttribute getSetupTask_ExcludedTriggers();
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Setup <em>Setup</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask <em>Working Set Task</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Working Set Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.WorkingSetTask
+ * @generated
+ */
+ EClass getWorkingSetTask();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask#getWorkingSets <em>Working Sets</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Setup</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Setup
+ * @return the meta object for the containment reference list '<em>Working Sets</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.WorkingSetTask#getWorkingSets()
+ * @see #getWorkingSetTask()
* @generated
*/
- EClass getSetup();
+ EReference getWorkingSetTask_WorkingSets();
/**
- * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getBranch <em>Branch</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask <em>Resource Copy Task</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Resource Copy Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.ResourceCopyTask
+ * @generated
+ */
+ EClass getResourceCopyTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getSourceURL <em>Source URL</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Source URL</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getSourceURL()
+ * @see #getResourceCopyTask()
+ * @generated
+ */
+ EAttribute getResourceCopyTask_SourceURL();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getTargetURL <em>Target URL</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Target URL</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.ResourceCopyTask#getTargetURL()
+ * @see #getResourceCopyTask()
+ * @generated
+ */
+ EAttribute getResourceCopyTask_TargetURL();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask <em>Text Modify Task</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Text Modify Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.TextModifyTask
+ * @generated
+ */
+ EClass getTextModifyTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getUrl <em>Url</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Url</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.TextModifyTask#getUrl()
+ * @see #getTextModifyTask()
+ * @generated
+ */
+ EAttribute getTextModifyTask_Url();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getModifications <em>Modifications</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Modifications</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.TextModifyTask#getModifications()
+ * @see #getTextModifyTask()
+ * @generated
+ */
+ EReference getTextModifyTask_Modifications();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.TextModification <em>Text Modification</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Text Modification</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.TextModification
+ * @generated
+ */
+ EClass getTextModification();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.TextModification#getPattern <em>Pattern</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Pattern</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.TextModification#getPattern()
+ * @see #getTextModification()
+ * @generated
+ */
+ EAttribute getTextModification_Pattern();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.emf.cdo.releng.setup.TextModification#getSubstitutions <em>Substitutions</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Substitutions</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.TextModification#getSubstitutions()
+ * @see #getTextModification()
+ * @generated
+ */
+ EAttribute getTextModification_Substitutions();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask <em>Eclipse Ini Task</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Eclipse Ini Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask
+ * @generated
+ */
+ EClass getEclipseIniTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getOption <em>Option</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the reference '<em>Branch</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Setup#getBranch()
- * @see #getSetup()
+ * @return the meta object for the attribute '<em>Option</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getOption()
+ * @see #getEclipseIniTask()
* @generated
*/
- EReference getSetup_Branch();
+ EAttribute getEclipseIniTask_Option();
/**
- * Returns the meta object for the reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion <em>Eclipse Version</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getValue <em>Value</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the reference '<em>Eclipse Version</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Setup#getEclipseVersion()
- * @see #getSetup()
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask#getValue()
+ * @see #getEclipseIniTask()
* @generated
*/
- EReference getSetup_EclipseVersion();
+ EAttribute getEclipseIniTask_Value();
/**
- * Returns the meta object for the containment reference '{@link org.eclipse.emf.cdo.releng.setup.Setup#getPreferences <em>Preferences</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask#isVm <em>Vm</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference '<em>Preferences</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Setup#getPreferences()
- * @see #getSetup()
+ * @return the meta object for the attribute '<em>Vm</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask#isVm()
+ * @see #getEclipseIniTask()
* @generated
*/
- EReference getSetup_Preferences();
+ EAttribute getEclipseIniTask_Vm();
/**
- * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.Setup#getUpdateLocations <em>Update Locations</em>}'.
+ * Returns the meta object for enum '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskScope <em>Task Scope</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Update Locations</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Setup#getUpdateLocations()
- * @see #getSetup()
+ * @return the meta object for enum '<em>Task Scope</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTaskScope
* @generated
*/
- EReference getSetup_UpdateLocations();
+ EEnum getSetupTaskScope();
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference <em>Tool Preference</em>}'.
+ * Returns the meta object for enum '{@link org.eclipse.emf.cdo.releng.setup.Trigger <em>Trigger</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Tool Preference</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ToolPreference
+ * @return the meta object for enum '<em>Trigger</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.Trigger
* @generated
*/
- EClass getToolPreference();
+ EEnum getTrigger();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getKey <em>Key</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask <em>Compound Setup Task</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Compound Setup Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.CompoundSetupTask
+ * @generated
+ */
+ EClass getCompoundSetupTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask#getName <em>Name</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Key</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ToolPreference#getKey()
- * @see #getToolPreference()
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.CompoundSetupTask#getName()
+ * @see #getCompoundSetupTask()
* @generated
*/
- EAttribute getToolPreference_Key();
+ EAttribute getCompoundSetupTask_Name();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference#getValue <em>Value</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask <em>One Time Setup Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Value</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.ToolPreference#getValue()
- * @see #getToolPreference()
+ * @return the meta object for class '<em>One Time Setup Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask
* @generated
*/
- EAttribute getToolPreference_Value();
+ EClass getOneTimeSetupTask();
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation <em>Link Location</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask#getId <em>Id</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Link Location</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.LinkLocation
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask#getId()
+ * @see #getOneTimeSetupTask()
* @generated
*/
- EClass getLinkLocation();
+ EAttribute getOneTimeSetupTask_Id();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getPath <em>Path</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.ConfigurableItem <em>Configurable Item</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Path</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.LinkLocation#getPath()
- * @see #getLinkLocation()
+ * @return the meta object for class '<em>Configurable Item</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.ConfigurableItem
* @generated
*/
- EAttribute getLinkLocation_Path();
+ EClass getConfigurableItem();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation#getName <em>Name</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask <em>Buckminster Import Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Name</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.LinkLocation#getName()
- * @see #getLinkLocation()
+ * @return the meta object for class '<em>Buckminster Import Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask
+ * @generated
+ */
+ EClass getBuckminsterImportTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getMspec <em>Mspec</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Mspec</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getMspec()
+ * @see #getBuckminsterImportTask()
* @generated
*/
- EAttribute getLinkLocation_Name();
+ EAttribute getBuckminsterImportTask_Mspec();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getTargetPlatform <em>Target Platform</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Target Platform</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getTargetPlatform()
+ * @see #getBuckminsterImportTask()
+ * @generated
+ */
+ EAttribute getBuckminsterImportTask_TargetPlatform();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getBundlePool <em>Bundle Pool</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Bundle Pool</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask#getBundlePool()
+ * @see #getBuckminsterImportTask()
+ * @generated
+ */
+ EAttribute getBuckminsterImportTask_BundlePool();
/**
* Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.Preferences <em>Preferences</em>}'.
@@ -1386,15 +2380,89 @@ public interface SetupPackage extends EPackage
EAttribute getPreferences_GitPrefix();
/**
- * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.Preferences#getLinkLocations <em>Link Locations</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask <em>Link Location Task</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the containment reference list '<em>Link Locations</em>'.
- * @see org.eclipse.emf.cdo.releng.setup.Preferences#getLinkLocations()
- * @see #getPreferences()
+ * @return the meta object for class '<em>Link Location Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.LinkLocationTask
* @generated
*/
- EReference getPreferences_LinkLocations();
+ EClass getLinkLocationTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getPath <em>Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Path</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getPath()
+ * @see #getLinkLocationTask()
+ * @generated
+ */
+ EAttribute getLinkLocationTask_Path();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.LinkLocationTask#getName()
+ * @see #getLinkLocationTask()
+ * @generated
+ */
+ EAttribute getLinkLocationTask_Name();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer <em>Task Container</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Task Container</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTaskContainer
+ * @generated
+ */
+ EClass getSetupTaskContainer();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer#getSetupTasks <em>Setup Tasks</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Setup Tasks</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTaskContainer#getSetupTasks()
+ * @see #getSetupTaskContainer()
+ * @generated
+ */
+ EReference getSetupTaskContainer_SetupTasks();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask <em>Eclipse Preference Task</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Eclipse Preference Task</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask
+ * @generated
+ */
+ EClass getEclipsePreferenceTask();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getKey <em>Key</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Key</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getKey()
+ * @see #getEclipsePreferenceTask()
+ * @generated
+ */
+ EAttribute getEclipsePreferenceTask_Key();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getValue <em>Value</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Value</em>'.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask#getValue()
+ * @see #getEclipsePreferenceTask()
+ * @generated
+ */
+ EAttribute getEclipsePreferenceTask_Value();
/**
* Returns the meta object for data type '{@link org.eclipse.emf.common.util.URI <em>URI</em>}'.
@@ -1408,9 +2476,31 @@ public interface SetupPackage extends EPackage
EDataType getURI();
/**
- * Returns the factory that creates the instances of the model.
+ * Returns the meta object for data type '{@link java.lang.Exception <em>Exception</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Exception</em>'.
+ * @see java.lang.Exception
+ * @model instanceClass="java.lang.Exception"
+ * @generated
+ */
+ EDataType getException();
+
+ /**
+ * Returns the meta object for data type '{@link java.util.Set <em>Trigger Set</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @return the meta object for data type '<em>Trigger Set</em>'.
+ * @see java.util.Set
+ * @model instanceClass="java.util.Set<org.eclipse.emf.cdo.releng.setup.Trigger>"
+ * @generated
+ */
+ EDataType getTriggerSet();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
* @return the factory that creates the instances of the model.
* @generated
*/
@@ -1492,104 +2582,98 @@ public interface SetupPackage extends EPackage
EAttribute PROJECT__NAME = eINSTANCE.getProject_Name();
/**
- * The meta object literal for the '<em><b>Api Baselines</b></em>' containment reference list feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl <em>Branch</em>}' class.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.BranchImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBranch()
* @generated
*/
- EReference PROJECT__API_BASELINES = eINSTANCE.getProject_ApiBaselines();
+ EClass BRANCH = eINSTANCE.getBranch();
/**
- * The meta object literal for the '<em><b>Working Set Group</b></em>' containment reference feature.
+ * The meta object literal for the '<em><b>Project</b></em>' container reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference PROJECT__WORKING_SET_GROUP = eINSTANCE.getProject_WorkingSetGroup();
-
- /**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl <em>Branch</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.BranchImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBranch()
- * @generated
- */
- EClass BRANCH = eINSTANCE.getBranch();
+ EReference BRANCH__PROJECT = eINSTANCE.getBranch_Project();
/**
- * The meta object literal for the '<em><b>Project</b></em>' container reference feature.
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference BRANCH__PROJECT = eINSTANCE.getBranch_Project();
+ EAttribute BRANCH__NAME = eINSTANCE.getBranch_Name();
/**
- * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl <em>Api Baseline Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getApiBaselineTask()
* @generated
*/
- EAttribute BRANCH__NAME = eINSTANCE.getBranch_Name();
+ EClass API_BASELINE_TASK = eINSTANCE.getApiBaselineTask();
/**
- * The meta object literal for the '<em><b>Git Clones</b></em>' containment reference list feature.
+ * The meta object literal for the '<em><b>Version</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference BRANCH__GIT_CLONES = eINSTANCE.getBranch_GitClones();
+ EAttribute API_BASELINE_TASK__VERSION = eINSTANCE.getApiBaselineTask_Version();
/**
- * The meta object literal for the '<em><b>Api Baseline</b></em>' reference feature.
+ * The meta object literal for the '<em><b>Zip Location</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference BRANCH__API_BASELINE = eINSTANCE.getBranch_ApiBaseline();
+ EAttribute API_BASELINE_TASK__ZIP_LOCATION = eINSTANCE.getApiBaselineTask_ZipLocation();
/**
- * The meta object literal for the '<em><b>Mspec File Path</b></em>' attribute feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl <em>Git Clone Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getGitCloneTask()
* @generated
*/
- EAttribute BRANCH__MSPEC_FILE_PATH = eINSTANCE.getBranch_MspecFilePath();
+ EClass GIT_CLONE_TASK = eINSTANCE.getGitCloneTask();
/**
- * The meta object literal for the '<em><b>Clone Variable Name</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute BRANCH__CLONE_VARIABLE_NAME = eINSTANCE.getBranch_CloneVariableName();
+ EAttribute GIT_CLONE_TASK__NAME = eINSTANCE.getGitCloneTask_Name();
/**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl <em>Tool Installation</em>}' class.
+ * The meta object literal for the '<em><b>Remote Name</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getToolInstallation()
* @generated
*/
- EClass TOOL_INSTALLATION = eINSTANCE.getToolInstallation();
+ EAttribute GIT_CLONE_TASK__REMOTE_NAME = eINSTANCE.getGitCloneTask_RemoteName();
/**
- * The meta object literal for the '<em><b>Director Calls</b></em>' containment reference list feature.
+ * The meta object literal for the '<em><b>Remote URI</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference TOOL_INSTALLATION__DIRECTOR_CALLS = eINSTANCE.getToolInstallation_DirectorCalls();
+ EAttribute GIT_CLONE_TASK__REMOTE_URI = eINSTANCE.getGitCloneTask_RemoteURI();
/**
- * The meta object literal for the '<em><b>Tool Preferences</b></em>' containment reference list feature.
+ * The meta object literal for the '<em><b>Checkout Branch</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference TOOL_INSTALLATION__TOOL_PREFERENCES = eINSTANCE.getToolInstallation_ToolPreferences();
+ EAttribute GIT_CLONE_TASK__CHECKOUT_BRANCH = eINSTANCE.getGitCloneTask_CheckoutBranch();
/**
* The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl <em>Eclipse Version</em>}' class.
@@ -1618,38 +2702,64 @@ public interface SetupPackage extends EPackage
EAttribute ECLIPSE_VERSION__VERSION = eINSTANCE.getEclipseVersion_Version();
/**
- * The meta object literal for the '<em><b>Director Call</b></em>' containment reference feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl <em>P2 Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getP2Task()
* @generated
*/
- EReference ECLIPSE_VERSION__DIRECTOR_CALL = eINSTANCE.getEclipseVersion_DirectorCall();
+ EClass P2_TASK = eINSTANCE.getP2Task();
/**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl <em>Director Call</em>}' class.
+ * The meta object literal for the '<em><b>Installable Units</b></em>' containment reference list feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getDirectorCall()
* @generated
*/
- EClass DIRECTOR_CALL = eINSTANCE.getDirectorCall();
+ EReference P2_TASK__INSTALLABLE_UNITS = eINSTANCE.getP2Task_InstallableUnits();
/**
- * The meta object literal for the '<em><b>Installable Units</b></em>' containment reference list feature.
+ * The meta object literal for the '<em><b>P2 Repositories</b></em>' containment reference list feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference DIRECTOR_CALL__INSTALLABLE_UNITS = eINSTANCE.getDirectorCall_InstallableUnits();
+ EReference P2_TASK__P2_REPOSITORIES = eINSTANCE.getP2Task_P2Repositories();
/**
- * The meta object literal for the '<em><b>P2 Repositories</b></em>' containment reference list feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl <em>String Variable Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getStringVariableTask()
+ * @generated
+ */
+ EClass STRING_VARIABLE_TASK = eINSTANCE.getStringVariableTask();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STRING_VARIABLE_TASK__NAME = eINSTANCE.getStringVariableTask_Name();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute STRING_VARIABLE_TASK__VALUE = eINSTANCE.getStringVariableTask_Value();
+
+ /**
+ * The meta object literal for the '<em><b>Description</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference DIRECTOR_CALL__P2_REPOSITORIES = eINSTANCE.getDirectorCall_P2Repositories();
+ EAttribute STRING_VARIABLE_TASK__DESCRIPTION = eINSTANCE.getStringVariableTask_Description();
/**
* The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl <em>Installable Unit</em>}' class.
@@ -1662,12 +2772,12 @@ public interface SetupPackage extends EPackage
EClass INSTALLABLE_UNIT = eINSTANCE.getInstallableUnit();
/**
- * The meta object literal for the '<em><b>Director Call</b></em>' container reference feature.
+ * The meta object literal for the '<em><b>P2 Task</b></em>' container reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference INSTALLABLE_UNIT__DIRECTOR_CALL = eINSTANCE.getInstallableUnit_DirectorCall();
+ EReference INSTALLABLE_UNIT__P2_TASK = eINSTANCE.getInstallableUnit_P2Task();
/**
* The meta object literal for the '<em><b>Id</b></em>' attribute feature.
@@ -1688,12 +2798,12 @@ public interface SetupPackage extends EPackage
EClass P2_REPOSITORY = eINSTANCE.getP2Repository();
/**
- * The meta object literal for the '<em><b>Director Call</b></em>' container reference feature.
+ * The meta object literal for the '<em><b>P2 Task</b></em>' container reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference P2_REPOSITORY__DIRECTOR_CALL = eINSTANCE.getP2Repository_DirectorCall();
+ EReference P2_REPOSITORY__P2_TASK = eINSTANCE.getP2Repository_P2Task();
/**
* The meta object literal for the '<em><b>Url</b></em>' attribute feature.
@@ -1704,174 +2814,310 @@ public interface SetupPackage extends EPackage
EAttribute P2_REPOSITORY__URL = eINSTANCE.getP2Repository_Url();
/**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl <em>Api Baseline</em>}' class.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl <em>Setup</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getApiBaseline()
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetup()
* @generated
*/
- EClass API_BASELINE = eINSTANCE.getApiBaseline();
+ EClass SETUP = eINSTANCE.getSetup();
/**
- * The meta object literal for the '<em><b>Project</b></em>' container reference feature.
+ * The meta object literal for the '<em><b>Branch</b></em>' reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference API_BASELINE__PROJECT = eINSTANCE.getApiBaseline_Project();
+ EReference SETUP__BRANCH = eINSTANCE.getSetup_Branch();
/**
- * The meta object literal for the '<em><b>Version</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Eclipse Version</b></em>' reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute API_BASELINE__VERSION = eINSTANCE.getApiBaseline_Version();
+ EReference SETUP__ECLIPSE_VERSION = eINSTANCE.getSetup_EclipseVersion();
/**
- * The meta object literal for the '<em><b>Zip Location</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Preferences</b></em>' reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute API_BASELINE__ZIP_LOCATION = eINSTANCE.getApiBaseline_ZipLocation();
+ EReference SETUP__PREFERENCES = eINSTANCE.getSetup_Preferences();
/**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl <em>Git Clone</em>}' class.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl <em>Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getGitClone()
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTask()
* @generated
*/
- EClass GIT_CLONE = eINSTANCE.getGitClone();
+ EClass SETUP_TASK = eINSTANCE.getSetupTask();
/**
- * The meta object literal for the '<em><b>Branch</b></em>' container reference feature.
+ * The meta object literal for the '<em><b>Requirements</b></em>' reference list feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference GIT_CLONE__BRANCH = eINSTANCE.getGitClone_Branch();
+ EReference SETUP_TASK__REQUIREMENTS = eINSTANCE.getSetupTask_Requirements();
/**
- * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Restrictions</b></em>' reference list feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute GIT_CLONE__NAME = eINSTANCE.getGitClone_Name();
+ EReference SETUP_TASK__RESTRICTIONS = eINSTANCE.getSetupTask_Restrictions();
/**
- * The meta object literal for the '<em><b>Remote URI</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Scope</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute GIT_CLONE__REMOTE_URI = eINSTANCE.getGitClone_RemoteURI();
+ EAttribute SETUP_TASK__SCOPE = eINSTANCE.getSetupTask_Scope();
/**
- * The meta object literal for the '<em><b>Checkout Branch</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Excluded Triggers</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute GIT_CLONE__CHECKOUT_BRANCH = eINSTANCE.getGitClone_CheckoutBranch();
+ EAttribute SETUP_TASK__EXCLUDED_TRIGGERS = eINSTANCE.getSetupTask_ExcludedTriggers();
/**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl <em>Setup</em>}' class.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl <em>Working Set Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getWorkingSetTask()
+ * @generated
+ */
+ EClass WORKING_SET_TASK = eINSTANCE.getWorkingSetTask();
+
+ /**
+ * The meta object literal for the '<em><b>Working Sets</b></em>' containment reference list feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetup()
* @generated
*/
- EClass SETUP = eINSTANCE.getSetup();
+ EReference WORKING_SET_TASK__WORKING_SETS = eINSTANCE.getWorkingSetTask_WorkingSets();
/**
- * The meta object literal for the '<em><b>Branch</b></em>' reference feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl <em>Resource Copy Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getResourceCopyTask()
+ * @generated
+ */
+ EClass RESOURCE_COPY_TASK = eINSTANCE.getResourceCopyTask();
+
+ /**
+ * The meta object literal for the '<em><b>Source URL</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RESOURCE_COPY_TASK__SOURCE_URL = eINSTANCE.getResourceCopyTask_SourceURL();
+
+ /**
+ * The meta object literal for the '<em><b>Target URL</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute RESOURCE_COPY_TASK__TARGET_URL = eINSTANCE.getResourceCopyTask_TargetURL();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl <em>Text Modify Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTextModifyTask()
+ * @generated
+ */
+ EClass TEXT_MODIFY_TASK = eINSTANCE.getTextModifyTask();
+
+ /**
+ * The meta object literal for the '<em><b>Url</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEXT_MODIFY_TASK__URL = eINSTANCE.getTextModifyTask_Url();
+
+ /**
+ * The meta object literal for the '<em><b>Modifications</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TEXT_MODIFY_TASK__MODIFICATIONS = eINSTANCE.getTextModifyTask_Modifications();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl <em>Text Modification</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTextModification()
+ * @generated
+ */
+ EClass TEXT_MODIFICATION = eINSTANCE.getTextModification();
+
+ /**
+ * The meta object literal for the '<em><b>Pattern</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEXT_MODIFICATION__PATTERN = eINSTANCE.getTextModification_Pattern();
+
+ /**
+ * The meta object literal for the '<em><b>Substitutions</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TEXT_MODIFICATION__SUBSTITUTIONS = eINSTANCE.getTextModification_Substitutions();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl <em>Eclipse Ini Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipseIniTask()
+ * @generated
+ */
+ EClass ECLIPSE_INI_TASK = eINSTANCE.getEclipseIniTask();
+
+ /**
+ * The meta object literal for the '<em><b>Option</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference SETUP__BRANCH = eINSTANCE.getSetup_Branch();
+ EAttribute ECLIPSE_INI_TASK__OPTION = eINSTANCE.getEclipseIniTask_Option();
/**
- * The meta object literal for the '<em><b>Eclipse Version</b></em>' reference feature.
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference SETUP__ECLIPSE_VERSION = eINSTANCE.getSetup_EclipseVersion();
+ EAttribute ECLIPSE_INI_TASK__VALUE = eINSTANCE.getEclipseIniTask_Value();
/**
- * The meta object literal for the '<em><b>Preferences</b></em>' containment reference feature.
+ * The meta object literal for the '<em><b>Vm</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference SETUP__PREFERENCES = eINSTANCE.getSetup_Preferences();
+ EAttribute ECLIPSE_INI_TASK__VM = eINSTANCE.getEclipseIniTask_Vm();
/**
- * The meta object literal for the '<em><b>Update Locations</b></em>' containment reference list feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskScope <em>Task Scope</em>}' enum.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTaskScope
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTaskScope()
* @generated
*/
- EReference SETUP__UPDATE_LOCATIONS = eINSTANCE.getSetup_UpdateLocations();
+ EEnum SETUP_TASK_SCOPE = eINSTANCE.getSetupTaskScope();
/**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl <em>Tool Preference</em>}' class.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.Trigger <em>Trigger</em>}' enum.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getToolPreference()
+ * @see org.eclipse.emf.cdo.releng.setup.Trigger
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTrigger()
* @generated
*/
- EClass TOOL_PREFERENCE = eINSTANCE.getToolPreference();
+ EEnum TRIGGER = eINSTANCE.getTrigger();
/**
- * The meta object literal for the '<em><b>Key</b></em>' attribute feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl <em>Compound Setup Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getCompoundSetupTask()
+ * @generated
+ */
+ EClass COMPOUND_SETUP_TASK = eINSTANCE.getCompoundSetupTask();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute TOOL_PREFERENCE__KEY = eINSTANCE.getToolPreference_Key();
+ EAttribute COMPOUND_SETUP_TASK__NAME = eINSTANCE.getCompoundSetupTask_Name();
/**
- * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl <em>One Time Setup Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getOneTimeSetupTask()
* @generated
*/
- EAttribute TOOL_PREFERENCE__VALUE = eINSTANCE.getToolPreference_Value();
+ EClass ONE_TIME_SETUP_TASK = eINSTANCE.getOneTimeSetupTask();
/**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl <em>Link Location</em>}' class.
+ * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl
- * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getLinkLocation()
* @generated
*/
- EClass LINK_LOCATION = eINSTANCE.getLinkLocation();
+ EAttribute ONE_TIME_SETUP_TASK__ID = eINSTANCE.getOneTimeSetupTask_Id();
/**
- * The meta object literal for the '<em><b>Path</b></em>' attribute feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.ConfigurableItemImpl <em>Configurable Item</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.ConfigurableItemImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getConfigurableItem()
* @generated
*/
- EAttribute LINK_LOCATION__PATH = eINSTANCE.getLinkLocation_Path();
+ EClass CONFIGURABLE_ITEM = eINSTANCE.getConfigurableItem();
/**
- * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl <em>Buckminster Import Task</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getBuckminsterImportTask()
* @generated
*/
- EAttribute LINK_LOCATION__NAME = eINSTANCE.getLinkLocation_Name();
+ EClass BUCKMINSTER_IMPORT_TASK = eINSTANCE.getBuckminsterImportTask();
+
+ /**
+ * The meta object literal for the '<em><b>Mspec</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BUCKMINSTER_IMPORT_TASK__MSPEC = eINSTANCE.getBuckminsterImportTask_Mspec();
+
+ /**
+ * The meta object literal for the '<em><b>Target Platform</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM = eINSTANCE.getBuckminsterImportTask_TargetPlatform();
+
+ /**
+ * The meta object literal for the '<em><b>Bundle Pool</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL = eINSTANCE.getBuckminsterImportTask_BundlePool();
/**
* The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl <em>Preferences</em>}' class.
@@ -1908,12 +3154,74 @@ public interface SetupPackage extends EPackage
EAttribute PREFERENCES__GIT_PREFIX = eINSTANCE.getPreferences_GitPrefix();
/**
- * The meta object literal for the '<em><b>Link Locations</b></em>' containment reference list feature.
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl <em>Link Location Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getLinkLocationTask()
+ * @generated
+ */
+ EClass LINK_LOCATION_TASK = eINSTANCE.getLinkLocationTask();
+
+ /**
+ * The meta object literal for the '<em><b>Path</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINK_LOCATION_TASK__PATH = eINSTANCE.getLinkLocationTask_Path();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute LINK_LOCATION_TASK__NAME = eINSTANCE.getLinkLocationTask_Name();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl <em>Task Container</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getSetupTaskContainer()
+ * @generated
+ */
+ EClass SETUP_TASK_CONTAINER = eINSTANCE.getSetupTaskContainer();
+
+ /**
+ * The meta object literal for the '<em><b>Setup Tasks</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference SETUP_TASK_CONTAINER__SETUP_TASKS = eINSTANCE.getSetupTaskContainer_SetupTasks();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl <em>Eclipse Preference Task</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getEclipsePreferenceTask()
+ * @generated
+ */
+ EClass ECLIPSE_PREFERENCE_TASK = eINSTANCE.getEclipsePreferenceTask();
+
+ /**
+ * The meta object literal for the '<em><b>Key</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute ECLIPSE_PREFERENCE_TASK__KEY = eINSTANCE.getEclipsePreferenceTask_Key();
+
+ /**
+ * The meta object literal for the '<em><b>Value</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference PREFERENCES__LINK_LOCATIONS = eINSTANCE.getPreferences_LinkLocations();
+ EAttribute ECLIPSE_PREFERENCE_TASK__VALUE = eINSTANCE.getEclipsePreferenceTask_Value();
/**
* The meta object literal for the '<em>URI</em>' data type.
@@ -1925,6 +3233,26 @@ public interface SetupPackage extends EPackage
*/
EDataType URI = eINSTANCE.getURI();
+ /**
+ * The meta object literal for the '<em>Exception</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.lang.Exception
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getException()
+ * @generated
+ */
+ EDataType EXCEPTION = eINSTANCE.getException();
+
+ /**
+ * The meta object literal for the '<em>Trigger Set</em>' data type.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see java.util.Set
+ * @see org.eclipse.emf.cdo.releng.setup.impl.SetupPackageImpl#getTriggerSet()
+ * @generated
+ */
+ EDataType TRIGGER_SET = eINSTANCE.getTriggerSet();
+
}
} // SetupPackage
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTask.java
new file mode 100644
index 0000000000..67280a0d2f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTask.java
@@ -0,0 +1,139 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getRequirements <em>Requirements</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getRestrictions <em>Restrictions</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getScope <em>Scope</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getExcludedTriggers <em>Excluded Triggers</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SetupTask extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Requirements</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.SetupTask}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Requirements</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Requirements</em>' reference list.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask_Requirements()
+ * @model
+ * @generated
+ */
+ EList<SetupTask> getRequirements();
+
+ /**
+ * Returns the value of the '<em><b>Restrictions</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.ConfigurableItem}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Restrictions</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Restrictions</em>' reference list.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask_Restrictions()
+ * @model
+ * @generated
+ */
+ EList<ConfigurableItem> getRestrictions();
+
+ /**
+ * Returns the value of the '<em><b>Scope</b></em>' attribute.
+ * The literals are from the enumeration {@link org.eclipse.emf.cdo.releng.setup.SetupTaskScope}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Scope</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Scope</em>' attribute.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTaskScope
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask_Scope()
+ * @model transient="true" changeable="false" volatile="true" derived="true"
+ * @generated
+ */
+ SetupTaskScope getScope();
+
+ /**
+ * Returns the value of the '<em><b>Excluded Triggers</b></em>' attribute.
+ * The default value is <code>""</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Excluded Triggers</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Excluded Triggers</em>' attribute.
+ * @see #setExcludedTriggers(Set)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTask_ExcludedTriggers()
+ * @model default="" dataType="org.eclipse.emf.cdo.releng.setup.TriggerSet" required="true"
+ * @generated
+ */
+ Set<Trigger> getExcludedTriggers();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.SetupTask#getExcludedTriggers <em>Excluded Triggers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Excluded Triggers</em>' attribute.
+ * @see #getExcludedTriggers()
+ * @generated
+ */
+ void setExcludedTriggers(Set<Trigger> value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model
+ * @generated
+ */
+ boolean requires(SetupTask setupTask);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" dataType="org.eclipse.emf.cdo.releng.setup.TriggerSet" required="true"
+ * @generated
+ */
+ Set<Trigger> getValidTriggers();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @model kind="operation" dataType="org.eclipse.emf.cdo.releng.setup.TriggerSet" required="true"
+ * @generated
+ */
+ Set<Trigger> getTriggers();
+
+ Object getOverrideToken();
+
+ boolean isNeeded(SetupTaskContext context) throws Exception;
+
+ void perform(SetupTaskContext context) throws Exception;
+
+ void dispose();
+
+} // SetupTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContainer.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContainer.java
new file mode 100644
index 0000000000..ff3f5a7e87
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContainer.java
@@ -0,0 +1,42 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Task Container</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer#getSetupTasks <em>Setup Tasks</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTaskContainer()
+ * @model abstract="true"
+ * @generated
+ */
+public interface SetupTaskContainer extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Setup Tasks</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.SetupTask}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Setup Tasks</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Setup Tasks</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTaskContainer_SetupTasks()
+ * @model containment="true" resolveProxies="true"
+ * @generated
+ */
+ EList<SetupTask> getSetupTasks();
+
+} // SetupTaskContainer
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContext.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContext.java
new file mode 100644
index 0000000000..4eaf92ecb2
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskContext.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+import org.eclipse.emf.cdo.releng.setup.util.OS;
+import org.eclipse.emf.cdo.releng.setup.util.StringExpander;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog;
+
+import java.io.File;
+import java.util.Map;
+
+/**
+ * @author Eike Stepper
+ */
+public interface SetupTaskContext extends Map<Object, Object>, ProgressLog, StringExpander
+{
+ public Trigger getTrigger();
+
+ public boolean isRestartNeeded();
+
+ public void setRestartNeeded();
+
+ public OS getOS();
+
+ public String getP2ProfileName();
+
+ public File getP2ProfileDir();
+
+ public File getP2AgentDir();
+
+ public File getP2PoolDir();
+
+ public File getInstallDir();
+
+ public File getProjectDir();
+
+ public File getBranchDir();
+
+ public File getEclipseDir();
+
+ public File getTargetPlatformDir();
+
+ public File getWorkspaceDir();
+
+ public Setup getSetup();
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskScope.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskScope.java
new file mode 100644
index 0000000000..b31b3ad090
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/SetupTaskScope.java
@@ -0,0 +1,302 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Task Scope</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getSetupTaskScope()
+ * @model
+ * @generated
+ */
+public enum SetupTaskScope implements Enumerator
+{
+ /**
+ * The '<em><b>None</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #NONE_VALUE
+ * @generated
+ * @ordered
+ */
+ NONE(0, "None", "None"),
+
+ /**
+ * The '<em><b>Configuration</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #CONFIGURATION_VALUE
+ * @generated
+ * @ordered
+ */
+ CONFIGURATION(1, "Configuration", "Configuration"),
+
+ /**
+ * The '<em><b>Project</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #PROJECT_VALUE
+ * @generated
+ * @ordered
+ */
+ PROJECT(2, "Project", "Project"),
+
+ /**
+ * The '<em><b>Branch</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BRANCH_VALUE
+ * @generated
+ * @ordered
+ */
+ BRANCH(3, "Branch", "Branch"),
+
+ /**
+ * The '<em><b>User</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #USER_VALUE
+ * @generated
+ * @ordered
+ */
+ USER(4, "User", "User");
+
+ /**
+ * The '<em><b>None</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>None</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #NONE
+ * @model name="None"
+ * @generated
+ * @ordered
+ */
+ public static final int NONE_VALUE = 0;
+
+ /**
+ * The '<em><b>Configuration</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Configuration</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #CONFIGURATION
+ * @model name="Configuration"
+ * @generated
+ * @ordered
+ */
+ public static final int CONFIGURATION_VALUE = 1;
+
+ /**
+ * The '<em><b>Project</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Project</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #PROJECT
+ * @model name="Project"
+ * @generated
+ * @ordered
+ */
+ public static final int PROJECT_VALUE = 2;
+
+ /**
+ * The '<em><b>Branch</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>Branch</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BRANCH
+ * @model name="Branch"
+ * @generated
+ * @ordered
+ */
+ public static final int BRANCH_VALUE = 3;
+
+ /**
+ * The '<em><b>User</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>User</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #USER
+ * @model name="User"
+ * @generated
+ * @ordered
+ */
+ public static final int USER_VALUE = 4;
+
+ /**
+ * An array of all the '<em><b>Task Scope</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final SetupTaskScope[] VALUES_ARRAY = new SetupTaskScope[] { NONE, CONFIGURATION, PROJECT, BRANCH,
+ USER, };
+
+ /**
+ * A public read-only list of all the '<em><b>Task Scope</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<SetupTaskScope> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Task Scope</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SetupTaskScope get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ SetupTaskScope result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Task Scope</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SetupTaskScope getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ SetupTaskScope result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Task Scope</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static SetupTaskScope get(int value)
+ {
+ switch (value)
+ {
+ case NONE_VALUE:
+ return NONE;
+ case CONFIGURATION_VALUE:
+ return CONFIGURATION;
+ case PROJECT_VALUE:
+ return PROJECT;
+ case BRANCH_VALUE:
+ return BRANCH;
+ case USER_VALUE:
+ return USER;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private SetupTaskScope(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+} // SetupTaskScope
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/StringVariableTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/StringVariableTask.java
new file mode 100644
index 0000000000..4dbaf7cfec
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/StringVariableTask.java
@@ -0,0 +1,103 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>String Variable Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getDescription <em>Description</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getStringVariableTask()
+ * @model
+ * @generated
+ */
+public interface StringVariableTask extends SetupTask
+{
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getStringVariableTask_Name()
+ * @model
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Value</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Value</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Value</em>' attribute.
+ * @see #setValue(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getStringVariableTask_Value()
+ * @model
+ * @generated
+ */
+ String getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getValue <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Value</em>' attribute.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(String value);
+
+ /**
+ * Returns the value of the '<em><b>Description</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Description</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Description</em>' attribute.
+ * @see #setDescription(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getStringVariableTask_Description()
+ * @model
+ * @generated
+ */
+ String getDescription();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask#getDescription <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Description</em>' attribute.
+ * @see #getDescription()
+ * @generated
+ */
+ void setDescription(String value);
+
+} // StringVariableTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModification.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModification.java
new file mode 100644
index 0000000000..e16971d568
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModification.java
@@ -0,0 +1,69 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Text Modification</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.TextModification#getPattern <em>Pattern</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.TextModification#getSubstitutions <em>Substitutions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModification()
+ * @model
+ * @generated
+ */
+public interface TextModification extends EObject
+{
+ /**
+ * Returns the value of the '<em><b>Pattern</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Pattern</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Pattern</em>' attribute.
+ * @see #setPattern(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModification_Pattern()
+ * @model
+ * @generated
+ */
+ String getPattern();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.TextModification#getPattern <em>Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Pattern</em>' attribute.
+ * @see #getPattern()
+ * @generated
+ */
+ void setPattern(String value);
+
+ /**
+ * Returns the value of the '<em><b>Substitutions</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Substitutions</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Substitutions</em>' attribute list.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModification_Substitutions()
+ * @model
+ * @generated
+ */
+ EList<String> getSubstitutions();
+
+} // TextModification
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModifyTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModifyTask.java
new file mode 100644
index 0000000000..e4036362c6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/TextModifyTask.java
@@ -0,0 +1,68 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Text Modify Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getUrl <em>Url</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getModifications <em>Modifications</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModifyTask()
+ * @model
+ * @generated
+ */
+public interface TextModifyTask extends SetupTask
+{
+ /**
+ * Returns the value of the '<em><b>Url</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Url</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Url</em>' attribute.
+ * @see #setUrl(String)
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModifyTask_Url()
+ * @model
+ * @generated
+ */
+ String getUrl();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask#getUrl <em>Url</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Url</em>' attribute.
+ * @see #getUrl()
+ * @generated
+ */
+ void setUrl(String value);
+
+ /**
+ * Returns the value of the '<em><b>Modifications</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.TextModification}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Modifications</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Modifications</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTextModifyTask_Modifications()
+ * @model containment="true" resolveProxies="true"
+ * @generated
+ */
+ EList<TextModification> getModifications();
+
+} // TextModifyTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolInstallation.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolInstallation.java
deleted file mode 100644
index 40ddaea307..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/ToolInstallation.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Tool Installation</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation#getDirectorCalls <em>Director Calls</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation#getToolPreferences <em>Tool Preferences</em>}</li>
- * </ul>
- * </p>
- *
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolInstallation()
- * @model abstract="true"
- * @generated
- */
-public interface ToolInstallation extends EObject
-{
- /**
- * Returns the value of the '<em><b>Director Calls</b></em>' containment reference list.
- * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.DirectorCall}.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Director Calls</em>' containment reference list isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Director Calls</em>' containment reference list.
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolInstallation_DirectorCalls()
- * @model containment="true"
- * @generated
- */
- EList<DirectorCall> getDirectorCalls();
-
- /**
- * Returns the value of the '<em><b>Tool Preferences</b></em>' containment reference list.
- * The list contents are of type {@link org.eclipse.emf.cdo.releng.setup.ToolPreference}.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Tool Preferences</em>' containment reference list isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Tool Preferences</em>' containment reference list.
- * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getToolInstallation_ToolPreferences()
- * @model containment="true"
- * @generated
- */
- EList<ToolPreference> getToolPreferences();
-
-} // ToolInstallation
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Trigger.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Trigger.java
new file mode 100644
index 0000000000..2247926e92
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/Trigger.java
@@ -0,0 +1,327 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+import org.eclipse.emf.common.util.Enumerator;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the literals of the enumeration '<em><b>Trigger</b></em>',
+ * and utility methods for working with them.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getTrigger()
+ * @model
+ * @generated
+ */
+public enum Trigger implements Enumerator
+{
+ /**
+ * The '<em><b>BOOTSTRAP</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #BOOTSTRAP_VALUE
+ * @generated
+ * @ordered
+ */
+ BOOTSTRAP(0, "BOOTSTRAP", "BOOTSTRAP"),
+
+ /**
+ * The '<em><b>STARTUP</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #STARTUP_VALUE
+ * @generated
+ * @ordered
+ */
+ STARTUP(1, "STARTUP", "STARTUP"),
+
+ /**
+ * The '<em><b>MANUAL</b></em>' literal object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #MANUAL_VALUE
+ * @generated
+ * @ordered
+ */
+ MANUAL(2, "MANUAL", "MANUAL");
+
+ /**
+ * The '<em><b>BOOTSTRAP</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>BOOTSTRAP</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #BOOTSTRAP
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int BOOTSTRAP_VALUE = 0;
+
+ /**
+ * The '<em><b>STARTUP</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>STARTUP</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #STARTUP
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int STARTUP_VALUE = 1;
+
+ /**
+ * The '<em><b>MANUAL</b></em>' literal value.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of '<em><b>MANUAL</b></em>' literal object isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @see #MANUAL
+ * @model
+ * @generated
+ * @ordered
+ */
+ public static final int MANUAL_VALUE = 2;
+
+ /**
+ * An array of all the '<em><b>Trigger</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static final Trigger[] VALUES_ARRAY = new Trigger[] { BOOTSTRAP, STARTUP, MANUAL, };
+
+ /**
+ * A public read-only list of all the '<em><b>Trigger</b></em>' enumerators.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final List<Trigger> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
+
+ /**
+ * Returns the '<em><b>Trigger</b></em>' literal with the specified literal value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Trigger get(String literal)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Trigger result = VALUES_ARRAY[i];
+ if (result.toString().equals(literal))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Trigger</b></em>' literal with the specified name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Trigger getByName(String name)
+ {
+ for (int i = 0; i < VALUES_ARRAY.length; ++i)
+ {
+ Trigger result = VALUES_ARRAY[i];
+ if (result.getName().equals(name))
+ {
+ return result;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Returns the '<em><b>Trigger</b></em>' literal with the specified integer value.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static Trigger get(int value)
+ {
+ switch (value)
+ {
+ case BOOTSTRAP_VALUE:
+ return BOOTSTRAP;
+ case STARTUP_VALUE:
+ return STARTUP;
+ case MANUAL_VALUE:
+ return MANUAL;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final int value;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String name;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private final String literal;
+
+ /**
+ * Only this class can construct instances.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private Trigger(int value, String name, String literal)
+ {
+ this.value = value;
+ this.name = name;
+ this.literal = literal;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public int getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLiteral()
+ {
+ return literal;
+ }
+
+ /**
+ * Returns the literal value of the enumerator, which is its string representation.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ return literal;
+ }
+
+ public static Set<Trigger> toSet(Trigger... triggers)
+ {
+ return intern(new HashSet<Trigger>(Arrays.asList(triggers)));
+ }
+
+ public static Set<Trigger> intern(Set<Trigger> triggerSet)
+ {
+ return CANONICAL_TRIGGER_SETS.get(triggerSet);
+ }
+
+ private static final Map<Set<Trigger>, Set<Trigger>> CANONICAL_TRIGGER_SETS = new HashMap<Set<Trigger>, Set<Trigger>>();
+
+ public static final Map<Set<Trigger>, String> LITERALS;
+
+ static
+ {
+ Map<Set<Trigger>, String> literals = new LinkedHashMap<Set<Trigger>, String>();
+ for (int i = 0; i < 2; ++i)
+ {
+ for (int j = 0; j < 2; ++j)
+ {
+ for (int k = 0; k < 2; ++k)
+ {
+ Set<Trigger> value = new LinkedHashSet<Trigger>()
+ {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public String toString()
+ {
+ StringBuilder result = new StringBuilder();
+ for (Trigger trigger : this)
+ {
+ if (result.length() != 0)
+ {
+ result.append(' ');
+ }
+
+ result.append(trigger);
+ }
+
+ return result.toString();
+ }
+ };
+
+ if (i == 1)
+ {
+ value.add(Trigger.BOOTSTRAP);
+ }
+
+ if (j == 1)
+ {
+ value.add(Trigger.STARTUP);
+ }
+
+ if (k == 1)
+ {
+ value.add(Trigger.MANUAL);
+ }
+
+ value = Collections.unmodifiableSet(value);
+ literals.put(value, value.toString());
+ CANONICAL_TRIGGER_SETS.put(value, value);
+ }
+ }
+ }
+
+ LITERALS = Collections.unmodifiableMap(literals);
+ }
+
+ public static final Set<Trigger> ALL_TRIGGERS = toSet(values());
+
+ public static final Set<Trigger> IDE_TRIGGERS = toSet(Trigger.STARTUP, Trigger.MANUAL);
+
+} // Trigger
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/WorkingSetTask.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/WorkingSetTask.java
new file mode 100644
index 0000000000..1d9ea1eb9e
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/WorkingSetTask.java
@@ -0,0 +1,42 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup;
+
+import org.eclipse.emf.cdo.releng.workingsets.WorkingSet;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Set Working Task</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask#getWorkingSets <em>Working Sets</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getWorkingSetTask()
+ * @model
+ * @generated
+ */
+public interface WorkingSetTask extends SetupTask
+{
+ /**
+ * Returns the value of the '<em><b>Working Sets</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Working Sets</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Working Sets</em>' containment reference list.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupPackage#getWorkingSetTask_WorkingSets()
+ * @model containment="true" resolveProxies="true"
+ * @generated
+ */
+ EList<WorkingSet> getWorkingSets();
+
+} // SetWorkingTask
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Progress.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Progress.java
deleted file mode 100644
index 4bfe77cae3..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Progress.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.helper;
-
-/**
- * @author Eike Stepper
- */
-public final class Progress
-{
- private static final ProgressLog DEFAULT = new ProgressLog()
- {
- public boolean isCancelled()
- {
- return false;
- }
-
- public void addLine(String line)
- {
- System.out.println(line);
- }
- };
-
- private static ProgressLog log;
-
- public static ProgressLog log()
- {
- if (log == null)
- {
- return DEFAULT;
- }
-
- return log;
- }
-
- public static void set(ProgressLog log)
- {
- Progress.log = log;
- }
-}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineImpl.java
deleted file mode 100644
index 567947cb97..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineImpl.java
+++ /dev/null
@@ -1,355 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.impl;
-
-import org.eclipse.emf.cdo.releng.setup.ApiBaseline;
-import org.eclipse.emf.cdo.releng.setup.Project;
-import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Api Baseline</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl#getProject <em>Project</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl#getVersion <em>Version</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineImpl#getZipLocation <em>Zip Location</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class ApiBaselineImpl extends MinimalEObjectImpl.Container implements ApiBaseline
-{
- /**
- * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getVersion()
- * @generated
- * @ordered
- */
- protected static final String VERSION_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getVersion()
- * @generated
- * @ordered
- */
- protected String version = VERSION_EDEFAULT;
-
- /**
- * The default value of the '{@link #getZipLocation() <em>Zip Location</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getZipLocation()
- * @generated
- * @ordered
- */
- protected static final String ZIP_LOCATION_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getZipLocation() <em>Zip Location</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getZipLocation()
- * @generated
- * @ordered
- */
- protected String zipLocation = ZIP_LOCATION_EDEFAULT;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected ApiBaselineImpl()
- {
- super();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EClass eStaticClass()
- {
- return SetupPackage.Literals.API_BASELINE;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public Project getProject()
- {
- if (eContainerFeatureID() != SetupPackage.API_BASELINE__PROJECT)
- return null;
- return (Project)eInternalContainer();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public NotificationChain basicSetProject(Project newProject, NotificationChain msgs)
- {
- msgs = eBasicSetContainer((InternalEObject)newProject, SetupPackage.API_BASELINE__PROJECT, msgs);
- return msgs;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setProject(Project newProject)
- {
- if (newProject != eInternalContainer()
- || (eContainerFeatureID() != SetupPackage.API_BASELINE__PROJECT && newProject != null))
- {
- if (EcoreUtil.isAncestor(this, newProject))
- throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
- NotificationChain msgs = null;
- if (eInternalContainer() != null)
- msgs = eBasicRemoveFromContainer(msgs);
- if (newProject != null)
- msgs = ((InternalEObject)newProject)
- .eInverseAdd(this, SetupPackage.PROJECT__API_BASELINES, Project.class, msgs);
- msgs = basicSetProject(newProject, msgs);
- if (msgs != null)
- msgs.dispatch();
- }
- else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE__PROJECT, newProject, newProject));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getVersion()
- {
- return version;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setVersion(String newVersion)
- {
- String oldVersion = version;
- version = newVersion;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE__VERSION, oldVersion, version));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getZipLocation()
- {
- return zipLocation;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setZipLocation(String newZipLocation)
- {
- String oldZipLocation = zipLocation;
- zipLocation = newZipLocation;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE__ZIP_LOCATION, oldZipLocation,
- zipLocation));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
- {
- switch (featureID)
- {
- case SetupPackage.API_BASELINE__PROJECT:
- if (eInternalContainer() != null)
- msgs = eBasicRemoveFromContainer(msgs);
- return basicSetProject((Project)otherEnd, msgs);
- }
- return super.eInverseAdd(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
- {
- switch (featureID)
- {
- case SetupPackage.API_BASELINE__PROJECT:
- return basicSetProject(null, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
- {
- switch (eContainerFeatureID())
- {
- case SetupPackage.API_BASELINE__PROJECT:
- return eInternalContainer().eInverseRemove(this, SetupPackage.PROJECT__API_BASELINES, Project.class, msgs);
- }
- return super.eBasicRemoveFromContainerFeature(msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object eGet(int featureID, boolean resolve, boolean coreType)
- {
- switch (featureID)
- {
- case SetupPackage.API_BASELINE__PROJECT:
- return getProject();
- case SetupPackage.API_BASELINE__VERSION:
- return getVersion();
- case SetupPackage.API_BASELINE__ZIP_LOCATION:
- return getZipLocation();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eSet(int featureID, Object newValue)
- {
- switch (featureID)
- {
- case SetupPackage.API_BASELINE__PROJECT:
- setProject((Project)newValue);
- return;
- case SetupPackage.API_BASELINE__VERSION:
- setVersion((String)newValue);
- return;
- case SetupPackage.API_BASELINE__ZIP_LOCATION:
- setZipLocation((String)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eUnset(int featureID)
- {
- switch (featureID)
- {
- case SetupPackage.API_BASELINE__PROJECT:
- setProject((Project)null);
- return;
- case SetupPackage.API_BASELINE__VERSION:
- setVersion(VERSION_EDEFAULT);
- return;
- case SetupPackage.API_BASELINE__ZIP_LOCATION:
- setZipLocation(ZIP_LOCATION_EDEFAULT);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean eIsSet(int featureID)
- {
- switch (featureID)
- {
- case SetupPackage.API_BASELINE__PROJECT:
- return getProject() != null;
- case SetupPackage.API_BASELINE__VERSION:
- return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
- case SetupPackage.API_BASELINE__ZIP_LOCATION:
- return ZIP_LOCATION_EDEFAULT == null ? zipLocation != null : !ZIP_LOCATION_EDEFAULT.equals(zipLocation);
- }
- return super.eIsSet(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public String toString()
- {
- if (eIsProxy())
- return super.toString();
-
- StringBuffer result = new StringBuffer(super.toString());
- result.append(" (version: ");
- result.append(version);
- result.append(", zipLocation: ");
- result.append(zipLocation);
- result.append(')');
- return result.toString();
- }
-
-} // ApiBaselineImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineTaskImpl.java
new file mode 100644
index 0000000000..019df2d065
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ApiBaselineTaskImpl.java
@@ -0,0 +1,340 @@
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+import org.eclipse.emf.cdo.releng.setup.util.DownloadUtil;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogMonitor;
+
+import org.eclipse.net4j.util.io.ZIPUtil;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.pde.api.tools.internal.ApiBaselineManager;
+import org.eclipse.pde.api.tools.internal.model.ApiModelFactory;
+import org.eclipse.pde.api.tools.internal.provisional.ApiPlugin;
+import org.eclipse.pde.api.tools.internal.provisional.IApiBaselineManager;
+import org.eclipse.pde.api.tools.internal.provisional.model.IApiBaseline;
+
+import java.io.File;
+import java.io.InputStream;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Api Baseline Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl#getVersion <em>Version</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ApiBaselineTaskImpl#getZipLocation <em>Zip Location</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ApiBaselineTaskImpl extends SetupTaskImpl implements ApiBaselineTask
+{
+ /**
+ * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected static final String VERSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected String version = VERSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getZipLocation() <em>Zip Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getZipLocation()
+ * @generated
+ * @ordered
+ */
+ protected static final String ZIP_LOCATION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getZipLocation() <em>Zip Location</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getZipLocation()
+ * @generated
+ * @ordered
+ */
+ protected String zipLocation = ZIP_LOCATION_EDEFAULT;
+
+ private transient String baselineName;
+
+ private transient File baselineDir;
+
+ private transient Object cachedBaseline;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ApiBaselineTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.API_BASELINE_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getVersion()
+ {
+ return version;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVersion(String newVersion)
+ {
+ String oldVersion = version;
+ version = newVersion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE_TASK__VERSION, oldVersion,
+ version));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getZipLocation()
+ {
+ return zipLocation;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setZipLocation(String newZipLocation)
+ {
+ String oldZipLocation = zipLocation;
+ zipLocation = newZipLocation;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.API_BASELINE_TASK__ZIP_LOCATION,
+ oldZipLocation, zipLocation));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.API_BASELINE_TASK__VERSION:
+ return getVersion();
+ case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION:
+ return getZipLocation();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.API_BASELINE_TASK__VERSION:
+ setVersion((String)newValue);
+ return;
+ case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION:
+ setZipLocation((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.API_BASELINE_TASK__VERSION:
+ setVersion(VERSION_EDEFAULT);
+ return;
+ case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION:
+ setZipLocation(ZIP_LOCATION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.API_BASELINE_TASK__VERSION:
+ return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
+ case SetupPackage.API_BASELINE_TASK__ZIP_LOCATION:
+ return ZIP_LOCATION_EDEFAULT == null ? zipLocation != null : !ZIP_LOCATION_EDEFAULT.equals(zipLocation);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (version: ");
+ result.append(version);
+ result.append(", zipLocation: ");
+ result.append(zipLocation);
+ result.append(')');
+ return result.toString();
+ }
+
+ @Override
+ public Set<Trigger> getValidTriggers()
+ {
+ return Trigger.IDE_TRIGGERS;
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ baselineName = context.getSetup().getBranch().getProject().getName() + " Baseline";
+ baselineDir = new File(new File(context.getProjectDir(), ".baselines"), getVersion());
+
+ IApiBaselineManager baselineManager = ApiPlugin.getDefault().getApiBaselineManager();
+ IApiBaseline baseline = baselineManager.getApiBaseline(baselineName);
+ if (baseline == null)
+ {
+ return true;
+ }
+
+ ((ApiBaselineManager)baselineManager).loadBaselineInfos(baseline);
+
+ if (!new File(baseline.getLocation()).equals(baselineDir))
+ {
+ baselineManager.removeApiBaseline(baselineName);
+ baseline.setName(baselineName + " " + System.currentTimeMillis());
+ baselineManager.addApiBaseline(baseline);
+ return true;
+ }
+
+ if (baselineManager.getDefaultApiBaseline() != baseline)
+ {
+ cachedBaseline = baseline;
+ return true;
+ }
+
+ return false;
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ IApiBaselineManager baselineManager = ApiPlugin.getDefault().getApiBaselineManager();
+ IApiBaseline baseline = (IApiBaseline)cachedBaseline;
+ if (baseline == null)
+ {
+ if (!baselineDir.exists())
+ {
+ downloadAndUnzip(context);
+ }
+
+ String location = baselineDir.toString();
+ context.log("Creating API baseline from " + location);
+
+ baseline = ApiModelFactory.newApiBaseline(baselineName, location);
+ ApiModelFactory.addComponents(baseline, location, new ProgressLogMonitor(context));
+ baselineManager.addApiBaseline(baseline);
+ }
+
+ context.log("Activating API baseline: " + baselineName);
+ baselineManager.setDefaultApiBaseline(baselineName);
+ }
+
+ private void downloadAndUnzip(final SetupTaskContext context)
+ {
+ final File baselinesDir = baselineDir.getParentFile();
+ baselinesDir.mkdirs();
+
+ File zipFile = DownloadUtil.downloadURL(getZipLocation(), context);
+
+ final File[] rootDir = { null };
+ ZIPUtil.unzip(zipFile, new ZIPUtil.FileSystemUnzipHandler(baselinesDir, ZIPUtil.DEFAULT_BUFFER_SIZE)
+ {
+ @Override
+ public void unzipFile(String name, InputStream zipStream)
+ {
+ if (rootDir[0] == null)
+ {
+ rootDir[0] = new File(baselinesDir, new Path(name).segment(0));
+ }
+
+ context.log("Unzipping " + name);
+ super.unzipFile(name, zipStream);
+ }
+ });
+
+ rootDir[0].renameTo(baselineDir);
+ }
+
+} // ApiBaselineTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java
index 26044a7b20..2c688c0421 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BranchImpl.java
@@ -10,25 +10,16 @@
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import org.eclipse.emf.cdo.releng.setup.ApiBaseline;
import org.eclipse.emf.cdo.releng.setup.Branch;
-import org.eclipse.emf.cdo.releng.setup.GitClone;
import org.eclipse.emf.cdo.releng.setup.Project;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecore.util.InternalEList;
-import java.io.File;
-import java.util.Collection;
/**
* <!-- begin-user-doc -->
@@ -39,16 +30,12 @@ import java.util.Collection;
* <ul>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getProject <em>Project</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getGitClones <em>Git Clones</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getApiBaseline <em>Api Baseline</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getMspecFilePath <em>Mspec File Path</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BranchImpl#getCloneVariableName <em>Clone Variable Name</em>}</li>
* </ul>
* </p>
*
* @generated
*/
-public class BranchImpl extends ToolInstallationImpl implements Branch
+public class BranchImpl extends ConfigurableItemImpl implements Branch
{
/**
* The default value of the '{@link #getName() <em>Name</em>}' attribute.
@@ -71,66 +58,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
protected String name = NAME_EDEFAULT;
/**
- * The cached value of the '{@link #getGitClones() <em>Git Clones</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getGitClones()
- * @generated
- * @ordered
- */
- protected EList<GitClone> gitClones;
-
- /**
- * The cached value of the '{@link #getApiBaseline() <em>Api Baseline</em>}' reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getApiBaseline()
- * @generated
- * @ordered
- */
- protected ApiBaseline apiBaseline;
-
- /**
- * The default value of the '{@link #getMspecFilePath() <em>Mspec File Path</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getMspecFilePath()
- * @generated
- * @ordered
- */
- protected static final String MSPEC_FILE_PATH_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getMspecFilePath() <em>Mspec File Path</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getMspecFilePath()
- * @generated
- * @ordered
- */
- protected String mspecFilePath = MSPEC_FILE_PATH_EDEFAULT;
-
- /**
- * The default value of the '{@link #getCloneVariableName() <em>Clone Variable Name</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getCloneVariableName()
- * @generated
- * @ordered
- */
- protected static final String CLONE_VARIABLE_NAME_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getCloneVariableName() <em>Clone Variable Name</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getCloneVariableName()
- * @generated
- * @ordered
- */
- protected String cloneVariableName = CLONE_VARIABLE_NAME_EDEFAULT;
-
- /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -160,6 +87,18 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
{
if (eContainerFeatureID() != SetupPackage.BRANCH__PROJECT)
return null;
+ return (Project)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Project basicGetProject()
+ {
+ if (eContainerFeatureID() != SetupPackage.BRANCH__PROJECT)
+ return null;
return (Project)eInternalContainer();
}
@@ -227,150 +166,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
* <!-- end-user-doc -->
* @generated
*/
- public EList<GitClone> getGitClones()
- {
- if (gitClones == null)
- {
- gitClones = new EObjectContainmentWithInverseEList<GitClone>(GitClone.class, this,
- SetupPackage.BRANCH__GIT_CLONES, SetupPackage.GIT_CLONE__BRANCH);
- }
- return gitClones;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public ApiBaseline getApiBaseline()
- {
- if (apiBaseline != null && apiBaseline.eIsProxy())
- {
- InternalEObject oldApiBaseline = (InternalEObject)apiBaseline;
- apiBaseline = (ApiBaseline)eResolveProxy(oldApiBaseline);
- if (apiBaseline != oldApiBaseline)
- {
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.RESOLVE, SetupPackage.BRANCH__API_BASELINE, oldApiBaseline,
- apiBaseline));
- }
- }
- return apiBaseline;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public ApiBaseline basicGetApiBaseline()
- {
- return apiBaseline;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setApiBaseline(ApiBaseline newApiBaseline)
- {
- ApiBaseline oldApiBaseline = apiBaseline;
- apiBaseline = newApiBaseline;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BRANCH__API_BASELINE, oldApiBaseline,
- apiBaseline));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getMspecFilePath()
- {
- return mspecFilePath;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setMspecFilePath(String newMspecFilePath)
- {
- String oldMspecFilePath = mspecFilePath;
- mspecFilePath = newMspecFilePath;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BRANCH__MSPEC_FILE_PATH, oldMspecFilePath,
- mspecFilePath));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getCloneVariableName()
- {
- return cloneVariableName;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setCloneVariableName(String newCloneVariableName)
- {
- String oldCloneVariableName = cloneVariableName;
- cloneVariableName = newCloneVariableName;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BRANCH__CLONE_VARIABLE_NAME,
- oldCloneVariableName, cloneVariableName));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated NOT
- */
- public boolean isInstalled(String installFolder)
- {
- Resource resource = eResource();
- if (resource != null)
- {
- ResourceSet resourceSet = resource.getResourceSet();
- if (resourceSet != null)
- {
- URI uri = getURI(installFolder);
- return resourceSet.getURIConverter().exists(uri, null);
- }
- }
-
- return false;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated NOT
- */
- public URI getURI(String installFolder)
- {
- File folder = new File(installFolder);
- File projectFolder = new File(folder, getProject().getName().toLowerCase());
- File branchFolder = new File(projectFolder, getName().toLowerCase());
- File setupFile = new File(branchFolder, "setup.xmi");
- return URI.createFileURI(setupFile.getAbsolutePath());
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @SuppressWarnings("unchecked")
@Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
{
@@ -380,8 +175,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
if (eInternalContainer() != null)
msgs = eBasicRemoveFromContainer(msgs);
return basicSetProject((Project)otherEnd, msgs);
- case SetupPackage.BRANCH__GIT_CLONES:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getGitClones()).basicAdd(otherEnd, msgs);
}
return super.eInverseAdd(otherEnd, featureID, msgs);
}
@@ -398,8 +191,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
{
case SetupPackage.BRANCH__PROJECT:
return basicSetProject(null, msgs);
- case SetupPackage.BRANCH__GIT_CLONES:
- return ((InternalEList<?>)getGitClones()).basicRemove(otherEnd, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -431,19 +222,11 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
switch (featureID)
{
case SetupPackage.BRANCH__PROJECT:
- return getProject();
+ if (resolve)
+ return getProject();
+ return basicGetProject();
case SetupPackage.BRANCH__NAME:
return getName();
- case SetupPackage.BRANCH__GIT_CLONES:
- return getGitClones();
- case SetupPackage.BRANCH__API_BASELINE:
- if (resolve)
- return getApiBaseline();
- return basicGetApiBaseline();
- case SetupPackage.BRANCH__MSPEC_FILE_PATH:
- return getMspecFilePath();
- case SetupPackage.BRANCH__CLONE_VARIABLE_NAME:
- return getCloneVariableName();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -453,7 +236,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
* <!-- end-user-doc -->
* @generated
*/
- @SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue)
{
@@ -465,19 +247,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
case SetupPackage.BRANCH__NAME:
setName((String)newValue);
return;
- case SetupPackage.BRANCH__GIT_CLONES:
- getGitClones().clear();
- getGitClones().addAll((Collection<? extends GitClone>)newValue);
- return;
- case SetupPackage.BRANCH__API_BASELINE:
- setApiBaseline((ApiBaseline)newValue);
- return;
- case SetupPackage.BRANCH__MSPEC_FILE_PATH:
- setMspecFilePath((String)newValue);
- return;
- case SetupPackage.BRANCH__CLONE_VARIABLE_NAME:
- setCloneVariableName((String)newValue);
- return;
}
super.eSet(featureID, newValue);
}
@@ -498,18 +267,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
case SetupPackage.BRANCH__NAME:
setName(NAME_EDEFAULT);
return;
- case SetupPackage.BRANCH__GIT_CLONES:
- getGitClones().clear();
- return;
- case SetupPackage.BRANCH__API_BASELINE:
- setApiBaseline((ApiBaseline)null);
- return;
- case SetupPackage.BRANCH__MSPEC_FILE_PATH:
- setMspecFilePath(MSPEC_FILE_PATH_EDEFAULT);
- return;
- case SetupPackage.BRANCH__CLONE_VARIABLE_NAME:
- setCloneVariableName(CLONE_VARIABLE_NAME_EDEFAULT);
- return;
}
super.eUnset(featureID);
}
@@ -525,18 +282,9 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
switch (featureID)
{
case SetupPackage.BRANCH__PROJECT:
- return getProject() != null;
+ return basicGetProject() != null;
case SetupPackage.BRANCH__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
- case SetupPackage.BRANCH__GIT_CLONES:
- return gitClones != null && !gitClones.isEmpty();
- case SetupPackage.BRANCH__API_BASELINE:
- return apiBaseline != null;
- case SetupPackage.BRANCH__MSPEC_FILE_PATH:
- return MSPEC_FILE_PATH_EDEFAULT == null ? mspecFilePath != null : !MSPEC_FILE_PATH_EDEFAULT.equals(mspecFilePath);
- case SetupPackage.BRANCH__CLONE_VARIABLE_NAME:
- return CLONE_VARIABLE_NAME_EDEFAULT == null ? cloneVariableName != null : !CLONE_VARIABLE_NAME_EDEFAULT
- .equals(cloneVariableName);
}
return super.eIsSet(featureID);
}
@@ -555,10 +303,6 @@ public class BranchImpl extends ToolInstallationImpl implements Branch
StringBuffer result = new StringBuffer(super.toString());
result.append(" (name: ");
result.append(name);
- result.append(", mspecFilePath: ");
- result.append(mspecFilePath);
- result.append(", cloneVariableName: ");
- result.append(cloneVariableName);
result.append(')');
return result.toString();
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BuckminsterImportTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BuckminsterImportTaskImpl.java
new file mode 100644
index 0000000000..4755b8a631
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/BuckminsterImportTaskImpl.java
@@ -0,0 +1,515 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+import org.eclipse.emf.cdo.releng.setup.util.FileUtil;
+import org.eclipse.emf.cdo.releng.setup.util.TargetPlatformUtil;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogMonitor;
+
+import org.eclipse.net4j.util.io.FileLock;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.buckminster.core.CorePlugin;
+import org.eclipse.buckminster.core.materializer.MaterializationContext;
+import org.eclipse.buckminster.core.materializer.MaterializationJob;
+import org.eclipse.buckminster.core.metadata.model.BillOfMaterials;
+import org.eclipse.buckminster.core.mspec.builder.MaterializationSpecBuilder;
+import org.eclipse.buckminster.core.mspec.model.MaterializationSpec;
+import org.eclipse.buckminster.core.parser.IParser;
+import org.eclipse.buckminster.core.query.model.ComponentQuery;
+import org.eclipse.buckminster.core.resolver.IResolver;
+import org.eclipse.buckminster.core.resolver.MainResolver;
+import org.eclipse.buckminster.core.resolver.ResolutionContext;
+import org.eclipse.buckminster.download.DownloadManager;
+import org.eclipse.buckminster.runtime.MonitorUtils;
+import org.eclipse.core.resources.IWorkspaceDescription;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.equinox.p2.publisher.AbstractPublisherApplication;
+import org.eclipse.equinox.p2.publisher.eclipse.FeaturesAndBundlesPublisherApplication;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.net.URL;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Buckminster Import Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl#getMspec <em>Mspec</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl#getTargetPlatform <em>Target Platform</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.BuckminsterImportTaskImpl#getBundlePool <em>Bundle Pool</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class BuckminsterImportTaskImpl extends SetupTaskImpl implements BuckminsterImportTask
+{
+ /**
+ * The default value of the '{@link #getMspec() <em>Mspec</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMspec()
+ * @generated
+ * @ordered
+ */
+ protected static final String MSPEC_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getMspec() <em>Mspec</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getMspec()
+ * @generated
+ * @ordered
+ */
+ protected String mspec = MSPEC_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getTargetPlatform() <em>Target Platform</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetPlatform()
+ * @generated
+ * @ordered
+ */
+ protected static final String TARGET_PLATFORM_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTargetPlatform() <em>Target Platform</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetPlatform()
+ * @generated
+ * @ordered
+ */
+ protected String targetPlatform = TARGET_PLATFORM_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getBundlePool() <em>Bundle Pool</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBundlePool()
+ * @generated
+ * @ordered
+ */
+ protected static final String BUNDLE_POOL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getBundlePool() <em>Bundle Pool</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getBundlePool()
+ * @generated
+ * @ordered
+ */
+ protected String bundlePool = BUNDLE_POOL_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected BuckminsterImportTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.BUCKMINSTER_IMPORT_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getMspec()
+ {
+ return mspec;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setMspec(String newMspec)
+ {
+ String oldMspec = mspec;
+ mspec = newMspec;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC, oldMspec,
+ mspec));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTargetPlatform()
+ {
+ return targetPlatform;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTargetPlatform(String newTargetPlatform)
+ {
+ String oldTargetPlatform = targetPlatform;
+ targetPlatform = newTargetPlatform;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM,
+ oldTargetPlatform, targetPlatform));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getBundlePool()
+ {
+ return bundlePool;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setBundlePool(String newBundlePool)
+ {
+ String oldBundlePool = bundlePool;
+ bundlePool = newBundlePool;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL,
+ oldBundlePool, bundlePool));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC:
+ return getMspec();
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM:
+ return getTargetPlatform();
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL:
+ return getBundlePool();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC:
+ setMspec((String)newValue);
+ return;
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM:
+ setTargetPlatform((String)newValue);
+ return;
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL:
+ setBundlePool((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC:
+ setMspec(MSPEC_EDEFAULT);
+ return;
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM:
+ setTargetPlatform(TARGET_PLATFORM_EDEFAULT);
+ return;
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL:
+ setBundlePool(BUNDLE_POOL_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__MSPEC:
+ return MSPEC_EDEFAULT == null ? mspec != null : !MSPEC_EDEFAULT.equals(mspec);
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM:
+ return TARGET_PLATFORM_EDEFAULT == null ? targetPlatform != null : !TARGET_PLATFORM_EDEFAULT
+ .equals(targetPlatform);
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL:
+ return BUNDLE_POOL_EDEFAULT == null ? bundlePool != null : !BUNDLE_POOL_EDEFAULT.equals(bundlePool);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (mspec: ");
+ result.append(mspec);
+ result.append(", targetPlatform: ");
+ result.append(targetPlatform);
+ result.append(", bundlePool: ");
+ result.append(bundlePool);
+ result.append(')');
+ return result.toString();
+ }
+
+ @Override
+ public Set<Trigger> getValidTriggers()
+ {
+ return Trigger.IDE_TRIGGERS;
+ }
+
+ public boolean isNeeded(SetupTaskContext context)
+ {
+ return context.getTrigger() == Trigger.MANUAL
+ || !TargetPlatformUtil.hasTargetPlatform(context.getTargetPlatformDir().toString(), context);
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ IProgressMonitor monitor = new ProgressLogMonitor(context);
+ monitor.beginTask("Starting Buckminster import", 160);
+
+ try
+ {
+ File tpOld = null;
+ File tp = context.getTargetPlatformDir();
+ if (tp.exists())
+ {
+ tpOld = new File(tp.getParentFile(), tp.getName() + "." + System.currentTimeMillis());
+ FileUtil.rename(tp, tpOld);
+ }
+
+ FileLock tpPoolLock = null;
+ boolean isAutoBuilding = disableAutoBuilding();
+
+ try
+ {
+ File tpPool = updateTargetPlatformPool(context);
+ tpPoolLock = FileLock.forWrite(tpPool);
+
+ File targetPlatformLocation = context.getTargetPlatformDir();
+ targetPlatformLocation.mkdirs();
+ TargetPlatformUtil.setTargetPlatform(targetPlatformLocation.toString(), context.getSetup().getBranch()
+ .getProject().getName()
+ + " Target", true, context);
+
+ URL mSpecURL = new URL(context.expandString(getMspec()));
+ MaterializationSpec mspec = getMSpec(mSpecURL, monitor); // 20 ticks
+ ComponentQuery cquery = getCQuery(mspec.getResolvedURL(), monitor); // 20 ticks
+
+ IResolver resolver = new MainResolver(new ResolutionContext(mspec, cquery));
+ resolver.getContext().setContinueOnError(true);
+
+ monitor.subTask("Resolving components");
+ BillOfMaterials bom = resolver.resolve(MonitorUtils.subMonitor(monitor, 40));
+
+ MaterializationSpecBuilder mspecBuilder = new MaterializationSpecBuilder();
+ mspecBuilder.initFrom(mspec);
+ mspecBuilder.setName(bom.getViewName());
+
+ bom.addMaterializationNodes(mspecBuilder);
+
+ ResolutionContext resolutionContext = new ResolutionContext(bom.getQuery());
+ MaterializationContext materializationContext = new MaterializationContext(bom, mspec, resolutionContext);
+
+ monitor.subTask("Materializing components");
+ MaterializationJob job = new MaterializationJob(materializationContext);
+ job.run(MonitorUtils.subMonitor(monitor, 80));
+
+ if (tpPoolLock != null)
+ {
+ updateBundlePool(context, tp.getAbsolutePath(), tpPool.getAbsolutePath());
+ }
+
+ if (context.isCancelled())
+ {
+ throw new InterruptedException();
+ }
+ }
+ catch (Exception ex)
+ {
+ File tpBroken = new File(tp.getParentFile(), tp.getName() + "." + System.currentTimeMillis());
+ FileUtil.rename(tp, tpBroken);
+ if (tpOld != null)
+ {
+ FileUtil.rename(tpOld, tp);
+ }
+
+ FileUtil.deleteAsync(tpBroken);
+ throw ex;
+ }
+ finally
+ {
+ try
+ {
+ if (tpPoolLock != null)
+ {
+ tpPoolLock.release();
+ }
+ }
+ finally
+ {
+ restoreAutoBuilding(isAutoBuilding);
+ }
+ }
+
+ if (tpOld != null)
+ {
+ FileUtil.deleteAsync(tpOld);
+ }
+ }
+ finally
+ {
+ monitor.done();
+ }
+ }
+
+ public static boolean disableAutoBuilding() throws CoreException
+ {
+ boolean autoBuilding = ResourcesPlugin.getWorkspace().isAutoBuilding();
+ if (autoBuilding)
+ {
+ restoreAutoBuilding(false);
+ }
+
+ return autoBuilding;
+ }
+
+ public static void restoreAutoBuilding(boolean autoBuilding) throws CoreException
+ {
+ if (autoBuilding != ResourcesPlugin.getWorkspace().isAutoBuilding())
+ {
+ IWorkspaceDescription description = ResourcesPlugin.getWorkspace().getDescription();
+ description.setAutoBuilding(autoBuilding);
+
+ ResourcesPlugin.getWorkspace().setDescription(description);
+ }
+ }
+
+ private static File updateTargetPlatformPool(SetupTaskContext context) throws Exception
+ {
+ File installFolder = new File(context.getSetup().getPreferences().getInstallFolder());
+
+ File idePool = new File(installFolder, ".p2pool-ide");
+ idePool.mkdirs();
+
+ File tpPool = new File(installFolder, ".p2pool-tp");
+ tpPool.mkdirs();
+
+ FileLock idePoolLock = FileLock.forWrite(idePool);
+
+ try
+ {
+ updateBundlePool(context, idePool.getAbsolutePath(), tpPool.getAbsolutePath());
+ }
+ finally
+ {
+ idePoolLock.release();
+ }
+
+ return tpPool;
+ }
+
+ private static void updateBundlePool(SetupTaskContext context, String source, String bundlePool) throws Exception
+ {
+ context.log("Updating bundle pool: " + bundlePool);
+
+ String bundlePoolURL = "file:/" + bundlePool.replace('\\', '/');
+ String[] args = { "-source", source, "-metadataRepository", bundlePoolURL, "-artifactRepository", bundlePoolURL,
+ "-append", "-publishArtifacts" };
+
+ AbstractPublisherApplication publisher = new FeaturesAndBundlesPublisherApplication();
+ publisher.run(args);
+ }
+
+ private MaterializationSpec getMSpec(URL mspecURL, IProgressMonitor monitor) throws Exception
+ {
+ monitor.subTask("Downloading MSpec");
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ DownloadManager.readInto(mspecURL, null, baos, MonitorUtils.subMonitor(monitor, 20));
+
+ monitor.subTask("Parsing MSpec");
+ IParser<MaterializationSpec> parser = CorePlugin.getDefault().getParserFactory().getMaterializationSpecParser(true);
+ return parser.parse(mspecURL.toString(), new ByteArrayInputStream(baos.toByteArray()));
+ }
+
+ private ComponentQuery getCQuery(URL cqueryURL, IProgressMonitor monitor) throws Exception
+ {
+ monitor.subTask("Downloading CQuery");
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ DownloadManager.readInto(cqueryURL, null, baos, MonitorUtils.subMonitor(monitor, 20));
+
+ monitor.subTask("Parsing CQuery");
+ return ComponentQuery.fromStream(cqueryURL, null, new ByteArrayInputStream(baos.toByteArray()), true);
+ }
+
+} // BuckminsterImportTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/CompoundSetupTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/CompoundSetupTaskImpl.java
new file mode 100644
index 0000000000..20256976ce
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/CompoundSetupTaskImpl.java
@@ -0,0 +1,306 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Compound Setup Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl#getSetupTasks <em>Setup Tasks</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.CompoundSetupTaskImpl#getName <em>Name</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class CompoundSetupTaskImpl extends SetupTaskImpl implements CompoundSetupTask
+{
+ /**
+ * The cached value of the '{@link #getSetupTasks() <em>Setup Tasks</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSetupTasks()
+ * @generated
+ * @ordered
+ */
+ protected EList<SetupTask> setupTasks;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected CompoundSetupTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.COMPOUND_SETUP_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SetupTask> getSetupTasks()
+ {
+ if (setupTasks == null)
+ {
+ setupTasks = new EObjectContainmentEList.Resolving<SetupTask>(SetupTask.class, this,
+ SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS);
+ }
+ return setupTasks;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.COMPOUND_SETUP_TASK__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS:
+ return ((InternalEList<?>)getSetupTasks()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS:
+ return getSetupTasks();
+ case SetupPackage.COMPOUND_SETUP_TASK__NAME:
+ return getName();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS:
+ getSetupTasks().clear();
+ getSetupTasks().addAll((Collection<? extends SetupTask>)newValue);
+ return;
+ case SetupPackage.COMPOUND_SETUP_TASK__NAME:
+ setName((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS:
+ getSetupTasks().clear();
+ return;
+ case SetupPackage.COMPOUND_SETUP_TASK__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS:
+ return setupTasks != null && !setupTasks.isEmpty();
+ case SetupPackage.COMPOUND_SETUP_TASK__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass)
+ {
+ if (baseClass == SetupTaskContainer.class)
+ {
+ switch (derivedFeatureID)
+ {
+ case SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS:
+ return SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS;
+ default:
+ return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass)
+ {
+ if (baseClass == SetupTaskContainer.class)
+ {
+ switch (baseFeatureID)
+ {
+ case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS:
+ return SetupPackage.COMPOUND_SETUP_TASK__SETUP_TASKS;
+ default:
+ return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(')');
+ return result.toString();
+ }
+
+ @Override
+ public Object getOverrideToken()
+ {
+ return createToken(getName());
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ boolean needed = false;
+ for (SetupTask setupTask : getSetupTasks())
+ {
+ needed |= setupTask.isNeeded(context);
+ }
+
+ return needed;
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ for (SetupTask setupTask : getSetupTasks())
+ {
+ setupTask.perform(context);
+ }
+ }
+
+} // CompoundSetupTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurableItemImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurableItemImpl.java
new file mode 100644
index 0000000000..00e17e3e6b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurableItemImpl.java
@@ -0,0 +1,42 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.ConfigurableItem;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Configurable Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class ConfigurableItemImpl extends SetupTaskContainerImpl implements ConfigurableItem
+{
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ConfigurableItemImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.CONFIGURABLE_ITEM;
+ }
+
+} // ConfigurableItemImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java
index bc5b37f887..41d4512821 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ConfigurationImpl.java
@@ -91,7 +91,7 @@ public class ConfigurationImpl extends MinimalEObjectImpl.Container implements C
{
if (projects == null)
{
- projects = new EObjectContainmentWithInverseEList<Project>(Project.class, this,
+ projects = new EObjectContainmentWithInverseEList.Resolving<Project>(Project.class, this,
SetupPackage.CONFIGURATION__PROJECTS, SetupPackage.PROJECT__CONFIGURATION);
}
return projects;
@@ -106,7 +106,7 @@ public class ConfigurationImpl extends MinimalEObjectImpl.Container implements C
{
if (eclipseVersions == null)
{
- eclipseVersions = new EObjectContainmentWithInverseEList<EclipseVersion>(EclipseVersion.class, this,
+ eclipseVersions = new EObjectContainmentWithInverseEList.Resolving<EclipseVersion>(EclipseVersion.class, this,
SetupPackage.CONFIGURATION__ECLIPSE_VERSIONS, SetupPackage.ECLIPSE_VERSION__CONFIGURATION);
}
return eclipseVersions;
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/DirectorCallImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/DirectorCallImpl.java
deleted file mode 100644
index 0c2fed673a..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/DirectorCallImpl.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.impl;
-
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
-import org.eclipse.emf.cdo.releng.setup.InstallableUnit;
-import org.eclipse.emf.cdo.releng.setup.P2Repository;
-import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import java.util.Collection;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Director Call</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl#getInstallableUnits <em>Installable Units</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.DirectorCallImpl#getP2Repositories <em>P2 Repositories</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class DirectorCallImpl extends MinimalEObjectImpl.Container implements DirectorCall
-{
- /**
- * The cached value of the '{@link #getInstallableUnits() <em>Installable Units</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getInstallableUnits()
- * @generated
- * @ordered
- */
- protected EList<InstallableUnit> installableUnits;
-
- /**
- * The cached value of the '{@link #getP2Repositories() <em>P2 Repositories</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getP2Repositories()
- * @generated
- * @ordered
- */
- protected EList<P2Repository> p2Repositories;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected DirectorCallImpl()
- {
- super();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EClass eStaticClass()
- {
- return SetupPackage.Literals.DIRECTOR_CALL;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList<InstallableUnit> getInstallableUnits()
- {
- if (installableUnits == null)
- {
- installableUnits = new EObjectContainmentWithInverseEList<InstallableUnit>(InstallableUnit.class, this,
- SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS, SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL);
- }
- return installableUnits;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList<P2Repository> getP2Repositories()
- {
- if (p2Repositories == null)
- {
- p2Repositories = new EObjectContainmentWithInverseEList<P2Repository>(P2Repository.class, this,
- SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES, SetupPackage.P2_REPOSITORY__DIRECTOR_CALL);
- }
- return p2Repositories;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @SuppressWarnings("unchecked")
- @Override
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
- {
- switch (featureID)
- {
- case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getInstallableUnits()).basicAdd(otherEnd, msgs);
- case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getP2Repositories()).basicAdd(otherEnd, msgs);
- }
- return super.eInverseAdd(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
- {
- switch (featureID)
- {
- case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS:
- return ((InternalEList<?>)getInstallableUnits()).basicRemove(otherEnd, msgs);
- case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES:
- return ((InternalEList<?>)getP2Repositories()).basicRemove(otherEnd, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object eGet(int featureID, boolean resolve, boolean coreType)
- {
- switch (featureID)
- {
- case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS:
- return getInstallableUnits();
- case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES:
- return getP2Repositories();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @SuppressWarnings("unchecked")
- @Override
- public void eSet(int featureID, Object newValue)
- {
- switch (featureID)
- {
- case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS:
- getInstallableUnits().clear();
- getInstallableUnits().addAll((Collection<? extends InstallableUnit>)newValue);
- return;
- case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES:
- getP2Repositories().clear();
- getP2Repositories().addAll((Collection<? extends P2Repository>)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eUnset(int featureID)
- {
- switch (featureID)
- {
- case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS:
- getInstallableUnits().clear();
- return;
- case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES:
- getP2Repositories().clear();
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean eIsSet(int featureID)
- {
- switch (featureID)
- {
- case SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS:
- return installableUnits != null && !installableUnits.isEmpty();
- case SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES:
- return p2Repositories != null && !p2Repositories.isEmpty();
- }
- return super.eIsSet(featureID);
- }
-
-} // DirectorCallImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseIniTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseIniTaskImpl.java
new file mode 100644
index 0000000000..4d36f17566
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseIniTaskImpl.java
@@ -0,0 +1,374 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.EclipseIniTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Eclipse Ini Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl#getOption <em>Option</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseIniTaskImpl#isVm <em>Vm</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EclipseIniTaskImpl extends SetupTaskImpl implements EclipseIniTask
+{
+ /**
+ * The default value of the '{@link #getOption() <em>Option</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOption()
+ * @generated
+ * @ordered
+ */
+ protected static final String OPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOption() <em>Option</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOption()
+ * @generated
+ * @ordered
+ */
+ protected String option = OPTION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isVm() <em>Vm</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isVm()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean VM_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isVm() <em>Vm</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isVm()
+ * @generated
+ * @ordered
+ */
+ protected boolean vm = VM_EDEFAULT;
+
+ private transient File file;
+
+ private transient List<String> contents;
+
+ private transient String expandedValue;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EclipseIniTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.ECLIPSE_INI_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getOption()
+ {
+ return option;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setOption(String newOption)
+ {
+ String oldOption = option;
+ option = newOption;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_INI_TASK__OPTION, oldOption, option));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(String newValue)
+ {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_INI_TASK__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isVm()
+ {
+ return vm;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVm(boolean newVm)
+ {
+ boolean oldVm = vm;
+ vm = newVm;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_INI_TASK__VM, oldVm, vm));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.ECLIPSE_INI_TASK__OPTION:
+ return getOption();
+ case SetupPackage.ECLIPSE_INI_TASK__VALUE:
+ return getValue();
+ case SetupPackage.ECLIPSE_INI_TASK__VM:
+ return isVm();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.ECLIPSE_INI_TASK__OPTION:
+ setOption((String)newValue);
+ return;
+ case SetupPackage.ECLIPSE_INI_TASK__VALUE:
+ setValue((String)newValue);
+ return;
+ case SetupPackage.ECLIPSE_INI_TASK__VM:
+ setVm((Boolean)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.ECLIPSE_INI_TASK__OPTION:
+ setOption(OPTION_EDEFAULT);
+ return;
+ case SetupPackage.ECLIPSE_INI_TASK__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case SetupPackage.ECLIPSE_INI_TASK__VM:
+ setVm(VM_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.ECLIPSE_INI_TASK__OPTION:
+ return OPTION_EDEFAULT == null ? option != null : !OPTION_EDEFAULT.equals(option);
+ case SetupPackage.ECLIPSE_INI_TASK__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ case SetupPackage.ECLIPSE_INI_TASK__VM:
+ return vm != VM_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (option: ");
+ result.append(option);
+ result.append(", value: ");
+ result.append(value);
+ result.append(", vm: ");
+ result.append(vm);
+ result.append(')');
+ return result.toString();
+ }
+
+ public String getLabel(String value)
+ {
+ return getOption() + (value == null ? "" : (isVm() ? "" : " ") + value);
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ file = new File(context.getEclipseDir(), context.getOS().getEclipseIni());
+ boolean result = !file.exists() || createNewContent(context);
+ // Ensure that the perform recomputes the contents because they could be modified by other tasks between now and
+ // when doPeform is called.
+ contents = null;
+ return result;
+ }
+
+ private boolean createNewContent(SetupTaskContext context)
+ {
+ List<String> oldContents = context.getOS().readText(file);
+ contents = new ArrayList<String>(oldContents);
+ int vmargsIndex = contents.indexOf("-vmargs");
+
+ String option = getOption();
+ expandedValue = context.expandString(getValue());
+
+ if (isVm())
+ {
+ String line = option + expandedValue;
+ if (vmargsIndex != -1)
+ {
+ for (int i = vmargsIndex + 1; i < contents.size(); i++)
+ {
+ String oldLine = contents.get(i);
+ if (oldLine.startsWith(option))
+ {
+ contents.set(i, line);
+ line = null;
+ break;
+ }
+ }
+ }
+ else
+ {
+ contents.add("-vmargs");
+ }
+
+ if (line != null)
+ {
+ contents.add(line);
+ }
+ }
+ else
+ {
+ int optionIndex = contents.indexOf(option);
+ if (optionIndex != -1)
+ {
+ contents.set(optionIndex + 1, expandedValue);
+ }
+ else
+ {
+ optionIndex = vmargsIndex != -1 ? vmargsIndex : contents.size();
+ contents.add(optionIndex, option);
+ contents.add(optionIndex + 1, expandedValue);
+ }
+ }
+
+ return !contents.equals(oldContents);
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ if (contents != null || createNewContent(context))
+ {
+ context.log("Changing " + file + " (" + getLabel(expandedValue) + ")");
+ context.getOS().writeText(file, contents);
+ }
+ }
+} // EclipseIniTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolPreferenceImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipsePreferenceTaskImpl.java
index 1ba24f3678..3beed3cb54 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolPreferenceImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipsePreferenceTaskImpl.java
@@ -1,38 +1,36 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup.impl;
+import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.setup.ToolPreference;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.ui.PlatformUI;
+
+import java.util.Set;
/**
* <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Tool Preference</b></em>'.
+ * An implementation of the model object '<em><b>Eclipse Preference Task</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl#getKey <em>Key</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ToolPreferenceImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl#getKey <em>Key</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipsePreferenceTaskImpl#getValue <em>Value</em>}</li>
* </ul>
* </p>
*
* @generated
*/
-public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements ToolPreference
+public class EclipsePreferenceTaskImpl extends SetupTaskImpl implements EclipsePreferenceTask
{
/**
* The default value of the '{@link #getKey() <em>Key</em>}' attribute.
@@ -74,12 +72,18 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
*/
protected String value = VALUE_EDEFAULT;
+ private transient Object cachedNode;
+
+ private transient String property;
+
+ private transient String expandedValue;
+
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- protected ToolPreferenceImpl()
+ protected EclipsePreferenceTaskImpl()
{
super();
}
@@ -92,7 +96,7 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
@Override
protected EClass eStaticClass()
{
- return SetupPackage.Literals.TOOL_PREFERENCE;
+ return SetupPackage.Literals.ECLIPSE_PREFERENCE_TASK;
}
/**
@@ -115,9 +119,7 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
String oldKey = key;
key = newKey;
if (eNotificationRequired())
- {
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.TOOL_PREFERENCE__KEY, oldKey, key));
- }
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY, oldKey, key));
}
/**
@@ -140,9 +142,8 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
String oldValue = value;
value = newValue;
if (eNotificationRequired())
- {
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.TOOL_PREFERENCE__VALUE, oldValue, value));
- }
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE, oldValue,
+ value));
}
/**
@@ -155,9 +156,9 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.TOOL_PREFERENCE__KEY:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY:
return getKey();
- case SetupPackage.TOOL_PREFERENCE__VALUE:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE:
return getValue();
}
return super.eGet(featureID, resolve, coreType);
@@ -173,10 +174,10 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.TOOL_PREFERENCE__KEY:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY:
setKey((String)newValue);
return;
- case SetupPackage.TOOL_PREFERENCE__VALUE:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE:
setValue((String)newValue);
return;
}
@@ -193,10 +194,10 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.TOOL_PREFERENCE__KEY:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY:
setKey(KEY_EDEFAULT);
return;
- case SetupPackage.TOOL_PREFERENCE__VALUE:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE:
setValue(VALUE_EDEFAULT);
return;
}
@@ -213,9 +214,9 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.TOOL_PREFERENCE__KEY:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY:
return KEY_EDEFAULT == null ? key != null : !KEY_EDEFAULT.equals(key);
- case SetupPackage.TOOL_PREFERENCE__VALUE:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE:
return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
}
return super.eIsSet(featureID);
@@ -230,9 +231,7 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
public String toString()
{
if (eIsProxy())
- {
return super.toString();
- }
StringBuffer result = new StringBuffer(super.toString());
result.append(" (key: ");
@@ -243,4 +242,68 @@ public class ToolPreferenceImpl extends MinimalEObjectImpl.Container implements
return result.toString();
}
-} // ToolPreferenceImpl
+ @Override
+ public Object getOverrideToken()
+ {
+ return createToken(getKey());
+ }
+
+ @Override
+ public Set<Trigger> getValidTriggers()
+ {
+ return Trigger.IDE_TRIGGERS;
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ org.osgi.service.prefs.Preferences node = Platform.getPreferencesService().getRootNode();
+
+ String[] segments = key.split("/");
+ for (int i = 0; i < segments.length - 1; i++)
+ {
+ String segment = segments[i];
+ node = node.node(segment);
+ }
+
+ property = segments[segments.length - 1];
+ expandedValue = context.expandString(getValue());
+
+ String oldValue = node.get(property, null);
+ if (expandedValue.equals(oldValue))
+ {
+ return false;
+ }
+
+ cachedNode = node;
+ return true;
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ context.log("Setting preference " + getKey() + " = " + expandedValue);
+
+ final Exception[] exception = { null };
+ PlatformUI.getWorkbench().getWorkbenchWindows()[0].getShell().getDisplay().syncExec(new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+ org.osgi.service.prefs.Preferences node = (org.osgi.service.prefs.Preferences)cachedNode;
+ node.put(property, expandedValue);
+ node.flush();
+ }
+ catch (Exception ex)
+ {
+ exception[0] = ex;
+ }
+ }
+ });
+
+ if (exception[0] != null)
+ {
+ throw exception[0];
+ }
+ }
+
+} // EclipsePreferenceTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java
index 41195b31e5..955f010086 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipseVersionImpl.java
@@ -11,7 +11,6 @@
package org.eclipse.emf.cdo.releng.setup.impl;
import org.eclipse.emf.cdo.releng.setup.Configuration;
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
import org.eclipse.emf.cdo.releng.setup.EclipseVersion;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
@@ -20,7 +19,6 @@ import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
import org.eclipse.emf.ecore.util.EcoreUtil;
/**
@@ -32,13 +30,12 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
* <ul>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl#getConfiguration <em>Configuration</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl#getVersion <em>Version</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.EclipseVersionImpl#getDirectorCall <em>Director Call</em>}</li>
* </ul>
* </p>
*
* @generated
*/
-public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements EclipseVersion
+public class EclipseVersionImpl extends ConfigurableItemImpl implements EclipseVersion
{
/**
* The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
@@ -61,16 +58,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
protected String version = VERSION_EDEFAULT;
/**
- * The cached value of the '{@link #getDirectorCall() <em>Director Call</em>}' containment reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getDirectorCall()
- * @generated
- * @ordered
- */
- protected DirectorCall directorCall;
-
- /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -100,6 +87,18 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
{
if (eContainerFeatureID() != SetupPackage.ECLIPSE_VERSION__CONFIGURATION)
return null;
+ return (Configuration)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Configuration basicGetConfiguration()
+ {
+ if (eContainerFeatureID() != SetupPackage.ECLIPSE_VERSION__CONFIGURATION)
+ return null;
return (Configuration)eInternalContainer();
}
@@ -169,62 +168,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
* <!-- end-user-doc -->
* @generated
*/
- public DirectorCall getDirectorCall()
- {
- return directorCall;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public NotificationChain basicSetDirectorCall(DirectorCall newDirectorCall, NotificationChain msgs)
- {
- DirectorCall oldDirectorCall = directorCall;
- directorCall = newDirectorCall;
- if (eNotificationRequired())
- {
- ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
- SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL, oldDirectorCall, newDirectorCall);
- if (msgs == null)
- msgs = notification;
- else
- msgs.add(notification);
- }
- return msgs;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setDirectorCall(DirectorCall newDirectorCall)
- {
- if (newDirectorCall != directorCall)
- {
- NotificationChain msgs = null;
- if (directorCall != null)
- msgs = ((InternalEObject)directorCall).eInverseRemove(this, EOPPOSITE_FEATURE_BASE
- - SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL, null, msgs);
- if (newDirectorCall != null)
- msgs = ((InternalEObject)newDirectorCall).eInverseAdd(this, EOPPOSITE_FEATURE_BASE
- - SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL, null, msgs);
- msgs = basicSetDirectorCall(newDirectorCall, msgs);
- if (msgs != null)
- msgs.dispatch();
- }
- else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL,
- newDirectorCall, newDirectorCall));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
@Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
{
@@ -250,8 +193,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
{
case SetupPackage.ECLIPSE_VERSION__CONFIGURATION:
return basicSetConfiguration(null, msgs);
- case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL:
- return basicSetDirectorCall(null, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -284,11 +225,11 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
switch (featureID)
{
case SetupPackage.ECLIPSE_VERSION__CONFIGURATION:
- return getConfiguration();
+ if (resolve)
+ return getConfiguration();
+ return basicGetConfiguration();
case SetupPackage.ECLIPSE_VERSION__VERSION:
return getVersion();
- case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL:
- return getDirectorCall();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -309,9 +250,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
case SetupPackage.ECLIPSE_VERSION__VERSION:
setVersion((String)newValue);
return;
- case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL:
- setDirectorCall((DirectorCall)newValue);
- return;
}
super.eSet(featureID, newValue);
}
@@ -332,9 +270,6 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
case SetupPackage.ECLIPSE_VERSION__VERSION:
setVersion(VERSION_EDEFAULT);
return;
- case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL:
- setDirectorCall((DirectorCall)null);
- return;
}
super.eUnset(featureID);
}
@@ -350,11 +285,9 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
switch (featureID)
{
case SetupPackage.ECLIPSE_VERSION__CONFIGURATION:
- return getConfiguration() != null;
+ return basicGetConfiguration() != null;
case SetupPackage.ECLIPSE_VERSION__VERSION:
return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
- case SetupPackage.ECLIPSE_VERSION__DIRECTOR_CALL:
- return directorCall != null;
}
return super.eIsSet(featureID);
}
@@ -376,5 +309,4 @@ public class EclipseVersionImpl extends MinimalEObjectImpl.Container implements
result.append(')');
return result.toString();
}
-
} // EclipseVersionImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneImpl.java
deleted file mode 100644
index dae9b0c1db..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneImpl.java
+++ /dev/null
@@ -1,411 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.impl;
-
-import org.eclipse.emf.cdo.releng.setup.Branch;
-import org.eclipse.emf.cdo.releng.setup.GitClone;
-import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecore.util.EcoreUtil;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Git Clone</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl#getBranch <em>Branch</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl#getRemoteURI <em>Remote URI</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneImpl#getCheckoutBranch <em>Checkout Branch</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public class GitCloneImpl extends MinimalEObjectImpl.Container implements GitClone
-{
- /**
- * The default value of the '{@link #getName() <em>Name</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getName()
- * @generated
- * @ordered
- */
- protected static final String NAME_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getName()
- * @generated
- * @ordered
- */
- protected String name = NAME_EDEFAULT;
-
- /**
- * The default value of the '{@link #getRemoteURI() <em>Remote URI</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getRemoteURI()
- * @generated
- * @ordered
- */
- protected static final String REMOTE_URI_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getRemoteURI() <em>Remote URI</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getRemoteURI()
- * @generated
- * @ordered
- */
- protected String remoteURI = REMOTE_URI_EDEFAULT;
-
- /**
- * The default value of the '{@link #getCheckoutBranch() <em>Checkout Branch</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getCheckoutBranch()
- * @generated
- * @ordered
- */
- protected static final String CHECKOUT_BRANCH_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getCheckoutBranch() <em>Checkout Branch</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getCheckoutBranch()
- * @generated
- * @ordered
- */
- protected String checkoutBranch = CHECKOUT_BRANCH_EDEFAULT;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected GitCloneImpl()
- {
- super();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EClass eStaticClass()
- {
- return SetupPackage.Literals.GIT_CLONE;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public Branch getBranch()
- {
- if (eContainerFeatureID() != SetupPackage.GIT_CLONE__BRANCH)
- return null;
- return (Branch)eInternalContainer();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public NotificationChain basicSetBranch(Branch newBranch, NotificationChain msgs)
- {
- msgs = eBasicSetContainer((InternalEObject)newBranch, SetupPackage.GIT_CLONE__BRANCH, msgs);
- return msgs;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setBranch(Branch newBranch)
- {
- if (newBranch != eInternalContainer()
- || (eContainerFeatureID() != SetupPackage.GIT_CLONE__BRANCH && newBranch != null))
- {
- if (EcoreUtil.isAncestor(this, newBranch))
- throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
- NotificationChain msgs = null;
- if (eInternalContainer() != null)
- msgs = eBasicRemoveFromContainer(msgs);
- if (newBranch != null)
- msgs = ((InternalEObject)newBranch).eInverseAdd(this, SetupPackage.BRANCH__GIT_CLONES, Branch.class, msgs);
- msgs = basicSetBranch(newBranch, msgs);
- if (msgs != null)
- msgs.dispatch();
- }
- else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE__BRANCH, newBranch, newBranch));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getName()
- {
- return name;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setName(String newName)
- {
- String oldName = name;
- name = newName;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE__NAME, oldName, name));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getRemoteURI()
- {
- return remoteURI;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setRemoteURI(String newRemoteURI)
- {
- String oldRemoteURI = remoteURI;
- remoteURI = newRemoteURI;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE__REMOTE_URI, oldRemoteURI, remoteURI));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public String getCheckoutBranch()
- {
- return checkoutBranch;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setCheckoutBranch(String newCheckoutBranch)
- {
- String oldCheckoutBranch = checkoutBranch;
- checkoutBranch = newCheckoutBranch;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE__CHECKOUT_BRANCH, oldCheckoutBranch,
- checkoutBranch));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
- {
- switch (featureID)
- {
- case SetupPackage.GIT_CLONE__BRANCH:
- if (eInternalContainer() != null)
- msgs = eBasicRemoveFromContainer(msgs);
- return basicSetBranch((Branch)otherEnd, msgs);
- }
- return super.eInverseAdd(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
- {
- switch (featureID)
- {
- case SetupPackage.GIT_CLONE__BRANCH:
- return basicSetBranch(null, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs)
- {
- switch (eContainerFeatureID())
- {
- case SetupPackage.GIT_CLONE__BRANCH:
- return eInternalContainer().eInverseRemove(this, SetupPackage.BRANCH__GIT_CLONES, Branch.class, msgs);
- }
- return super.eBasicRemoveFromContainerFeature(msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object eGet(int featureID, boolean resolve, boolean coreType)
- {
- switch (featureID)
- {
- case SetupPackage.GIT_CLONE__BRANCH:
- return getBranch();
- case SetupPackage.GIT_CLONE__NAME:
- return getName();
- case SetupPackage.GIT_CLONE__REMOTE_URI:
- return getRemoteURI();
- case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH:
- return getCheckoutBranch();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eSet(int featureID, Object newValue)
- {
- switch (featureID)
- {
- case SetupPackage.GIT_CLONE__BRANCH:
- setBranch((Branch)newValue);
- return;
- case SetupPackage.GIT_CLONE__NAME:
- setName((String)newValue);
- return;
- case SetupPackage.GIT_CLONE__REMOTE_URI:
- setRemoteURI((String)newValue);
- return;
- case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH:
- setCheckoutBranch((String)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eUnset(int featureID)
- {
- switch (featureID)
- {
- case SetupPackage.GIT_CLONE__BRANCH:
- setBranch((Branch)null);
- return;
- case SetupPackage.GIT_CLONE__NAME:
- setName(NAME_EDEFAULT);
- return;
- case SetupPackage.GIT_CLONE__REMOTE_URI:
- setRemoteURI(REMOTE_URI_EDEFAULT);
- return;
- case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH:
- setCheckoutBranch(CHECKOUT_BRANCH_EDEFAULT);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean eIsSet(int featureID)
- {
- switch (featureID)
- {
- case SetupPackage.GIT_CLONE__BRANCH:
- return getBranch() != null;
- case SetupPackage.GIT_CLONE__NAME:
- return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
- case SetupPackage.GIT_CLONE__REMOTE_URI:
- return REMOTE_URI_EDEFAULT == null ? remoteURI != null : !REMOTE_URI_EDEFAULT.equals(remoteURI);
- case SetupPackage.GIT_CLONE__CHECKOUT_BRANCH:
- return CHECKOUT_BRANCH_EDEFAULT == null ? checkoutBranch != null : !CHECKOUT_BRANCH_EDEFAULT
- .equals(checkoutBranch);
- }
- return super.eIsSet(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public String toString()
- {
- if (eIsProxy())
- return super.toString();
-
- StringBuffer result = new StringBuffer(super.toString());
- result.append(" (name: ");
- result.append(name);
- result.append(", remoteURI: ");
- result.append(remoteURI);
- result.append(", checkoutBranch: ");
- result.append(checkoutBranch);
- result.append(')');
- return result.toString();
- }
-
-} // GitCloneImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneTaskImpl.java
new file mode 100644
index 0000000000..1dfbf1aa87
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/GitCloneTaskImpl.java
@@ -0,0 +1,615 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.GitCloneTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+import org.eclipse.emf.cdo.releng.setup.util.FileUtil;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.jgit.api.CheckoutCommand;
+import org.eclipse.jgit.api.CloneCommand;
+import org.eclipse.jgit.api.CreateBranchCommand;
+import org.eclipse.jgit.api.CreateBranchCommand.SetupUpstreamMode;
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.ResetCommand;
+import org.eclipse.jgit.api.ResetCommand.ResetType;
+import org.eclipse.jgit.api.StatusCommand;
+import org.eclipse.jgit.errors.NoWorkTreeException;
+import org.eclipse.jgit.lib.ConfigConstants;
+import org.eclipse.jgit.lib.CoreConfig.AutoCRLF;
+import org.eclipse.jgit.lib.ProgressMonitor;
+import org.eclipse.jgit.lib.Repository;
+import org.eclipse.jgit.lib.StoredConfig;
+import org.eclipse.jgit.transport.RefSpec;
+import org.eclipse.jgit.transport.RemoteConfig;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Git Clone Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl#getRemoteName <em>Remote Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl#getRemoteURI <em>Remote URI</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.GitCloneTaskImpl#getCheckoutBranch <em>Checkout Branch</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class GitCloneTaskImpl extends SetupTaskImpl implements GitCloneTask
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRemoteName() <em>Remote Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteName()
+ * @generated
+ * @ordered
+ */
+ protected static final String REMOTE_NAME_EDEFAULT = "origin";
+
+ /**
+ * The cached value of the '{@link #getRemoteName() <em>Remote Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteName()
+ * @generated
+ * @ordered
+ */
+ protected String remoteName = REMOTE_NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRemoteURI() <em>Remote URI</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteURI()
+ * @generated
+ * @ordered
+ */
+ protected static final String REMOTE_URI_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getRemoteURI() <em>Remote URI</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRemoteURI()
+ * @generated
+ * @ordered
+ */
+ protected String remoteURI = REMOTE_URI_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCheckoutBranch() <em>Checkout Branch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCheckoutBranch()
+ * @generated
+ * @ordered
+ */
+ protected static final String CHECKOUT_BRANCH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCheckoutBranch() <em>Checkout Branch</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getCheckoutBranch()
+ * @generated
+ * @ordered
+ */
+ protected String checkoutBranch = CHECKOUT_BRANCH_EDEFAULT;
+
+ private transient Object cachedGit;
+
+ private transient Object cachedRepository;
+
+ private transient File workDir;
+
+ private transient boolean hasCheckout;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected GitCloneTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.GIT_CLONE_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE_TASK__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRemoteName()
+ {
+ return remoteName;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemoteName(String newRemoteName)
+ {
+ String oldRemoteName = remoteName;
+ remoteName = newRemoteName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE_TASK__REMOTE_NAME, oldRemoteName,
+ remoteName));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getRemoteURI()
+ {
+ return remoteURI;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setRemoteURI(String newRemoteURI)
+ {
+ String oldRemoteURI = remoteURI;
+ remoteURI = newRemoteURI;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE_TASK__REMOTE_URI, oldRemoteURI,
+ remoteURI));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getCheckoutBranch()
+ {
+ return checkoutBranch;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setCheckoutBranch(String newCheckoutBranch)
+ {
+ String oldCheckoutBranch = checkoutBranch;
+ checkoutBranch = newCheckoutBranch;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH,
+ oldCheckoutBranch, checkoutBranch));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.GIT_CLONE_TASK__NAME:
+ return getName();
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME:
+ return getRemoteName();
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_URI:
+ return getRemoteURI();
+ case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH:
+ return getCheckoutBranch();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.GIT_CLONE_TASK__NAME:
+ setName((String)newValue);
+ return;
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME:
+ setRemoteName((String)newValue);
+ return;
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_URI:
+ setRemoteURI((String)newValue);
+ return;
+ case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH:
+ setCheckoutBranch((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.GIT_CLONE_TASK__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME:
+ setRemoteName(REMOTE_NAME_EDEFAULT);
+ return;
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_URI:
+ setRemoteURI(REMOTE_URI_EDEFAULT);
+ return;
+ case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH:
+ setCheckoutBranch(CHECKOUT_BRANCH_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.GIT_CLONE_TASK__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_NAME:
+ return REMOTE_NAME_EDEFAULT == null ? remoteName != null : !REMOTE_NAME_EDEFAULT.equals(remoteName);
+ case SetupPackage.GIT_CLONE_TASK__REMOTE_URI:
+ return REMOTE_URI_EDEFAULT == null ? remoteURI != null : !REMOTE_URI_EDEFAULT.equals(remoteURI);
+ case SetupPackage.GIT_CLONE_TASK__CHECKOUT_BRANCH:
+ return CHECKOUT_BRANCH_EDEFAULT == null ? checkoutBranch != null : !CHECKOUT_BRANCH_EDEFAULT
+ .equals(checkoutBranch);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", remoteName: ");
+ result.append(remoteName);
+ result.append(", remoteURI: ");
+ result.append(remoteURI);
+ result.append(", checkoutBranch: ");
+ result.append(checkoutBranch);
+ result.append(')');
+ return result.toString();
+ }
+
+ @Override
+ public Set<Trigger> getValidTriggers()
+ {
+ return Trigger.IDE_TRIGGERS;
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ workDir = getWorkDir(context);
+ if (!workDir.isDirectory())
+ {
+ return true;
+ }
+
+ context.log("Opening Git clone " + workDir);
+
+ Git git = Git.open(workDir);
+ if (!hasWorkTree(git))
+ {
+ FileUtil.rename(workDir);
+ return true;
+ }
+
+ Repository repository = git.getRepository();
+ configureRepository(context, repository);
+
+ hasCheckout = repository.getAllRefs().containsKey("refs/heads/" + getCheckoutBranch());
+ if (!hasCheckout)
+ {
+ cachedGit = git;
+ cachedRepository = repository;
+ return true;
+ }
+
+ return false;
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ Git git = (Git)cachedGit;
+ Repository repository = (Repository)cachedRepository;
+
+ if (git == null)
+ {
+ git = cloneRepository(context, workDir, getCheckoutBranch());
+ repository = git.getRepository();
+ configureRepository(context, repository);
+ }
+
+ if (!hasCheckout)
+ {
+ createBranch(context, git, getCheckoutBranch());
+ checkout(context, git, getCheckoutBranch());
+ resetHard(context, git);
+ }
+ }
+
+ @Override
+ public void dispose()
+ {
+ if (cachedRepository != null)
+ {
+ ((Repository)cachedRepository).close();
+ }
+ }
+
+ private File getWorkDir(SetupTaskContext context)
+ {
+ File gitDir = new File(context.getBranchDir(), "git");
+ return new File(gitDir, getName());
+ }
+
+ private boolean hasWorkTree(Git git) throws Exception
+ {
+ try
+ {
+ StatusCommand statusCommand = git.status();
+ statusCommand.call();
+ return true;
+ }
+ catch (NoWorkTreeException ex)
+ {
+ return false;
+ }
+ }
+
+ private Git cloneRepository(SetupTaskContext context, File workDir, String checkoutBranch) throws Exception
+ {
+ URI baseURI = URI.createURI(getRemoteURI());
+ String remote = URI.createHierarchicalURI(baseURI.scheme(),
+ context.getSetup().getPreferences().getUserName() + "@" + baseURI.authority(), baseURI.device(),
+ baseURI.segments(), baseURI.query(), baseURI.fragment()).toString();
+
+ context.log("Cloning Git repo " + remote + " to " + workDir);
+
+ CloneCommand command = Git.cloneRepository();
+ command.setNoCheckout(true);
+ command.setURI(remote);
+ command.setRemote(getRemoteName());
+ command.setBranchesToClone(Collections.singleton(checkoutBranch));
+ command.setDirectory(workDir);
+ command.setTimeout(10);
+ command.setProgressMonitor(new ProgressLogWrapper(context));
+ return command.call();
+ }
+
+ private void configureRepository(SetupTaskContext context, Repository repository) throws Exception, IOException
+ {
+ StoredConfig config = repository.getConfig();
+
+ boolean changed = false;
+ changed |= configureLineEndingConversion(context, config);
+ changed |= addPushRefSpec(context, config);
+ if (changed)
+ {
+ config.save();
+ }
+ }
+
+ private boolean configureLineEndingConversion(SetupTaskContext context, StoredConfig config) throws Exception
+ {
+ if (context.getOS().isLineEndingConversionNeeded())
+ {
+ context.log("Setting " + ConfigConstants.CONFIG_KEY_AUTOCRLF + " = true");
+ config.setEnum(ConfigConstants.CONFIG_CORE_SECTION, null, ConfigConstants.CONFIG_KEY_AUTOCRLF, AutoCRLF.TRUE);
+ return true;
+ }
+
+ return false;
+ }
+
+ private boolean addPushRefSpec(SetupTaskContext context, StoredConfig config) throws Exception
+ {
+ String gerritQueue = "refs/for/" + getCheckoutBranch();
+ for (RemoteConfig remoteConfig : RemoteConfig.getAllRemoteConfigs(config))
+ {
+ if (getRemoteName().equals(remoteConfig.getName()))
+ {
+ List<RefSpec> pushRefSpecs = remoteConfig.getPushRefSpecs();
+ if (hasGerritPushRefSpec(pushRefSpecs, gerritQueue))
+ {
+ return false;
+ }
+
+ RefSpec refSpec = new RefSpec("HEAD:" + gerritQueue);
+ context.log("Adding push ref spec: " + refSpec);
+
+ remoteConfig.addPushRefSpec(refSpec);
+ remoteConfig.update(config);
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ private boolean hasGerritPushRefSpec(List<RefSpec> pushRefSpecs, String gerritQueue)
+ {
+ for (RefSpec refSpec : pushRefSpecs)
+ {
+ if (refSpec.getDestination().equals(gerritQueue))
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ private void createBranch(SetupTaskContext context, Git git, String checkoutBranch) throws Exception
+ {
+ context.log("Creating local branch " + checkoutBranch);
+
+ CreateBranchCommand command = git.branchCreate();
+ command.setUpstreamMode(SetupUpstreamMode.SET_UPSTREAM);
+ command.setName(checkoutBranch);
+ command.setStartPoint("refs/remotes/origin/" + checkoutBranch);
+ command.call();
+ }
+
+ private void checkout(SetupTaskContext context, Git git, String checkoutBranch) throws Exception
+ {
+ context.log("Checking out local branch " + checkoutBranch);
+
+ CheckoutCommand command = git.checkout();
+ command.setName(checkoutBranch);
+ command.call();
+ }
+
+ private void resetHard(SetupTaskContext context, Git git) throws Exception
+ {
+ context.log("Resetting hard");
+
+ ResetCommand command = git.reset();
+ command.setMode(ResetType.HARD);
+ command.call();
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ private static final class ProgressLogWrapper implements ProgressMonitor
+ {
+ private SetupTaskContext context;
+
+ public ProgressLogWrapper(SetupTaskContext context)
+ {
+ this.context = context;
+ }
+
+ public void update(int completed)
+ {
+ }
+
+ public void start(int totalTasks)
+ {
+ }
+
+ public boolean isCancelled()
+ {
+ return context.isCancelled();
+ }
+
+ public void endTask()
+ {
+ }
+
+ public void beginTask(String title, int totalWork)
+ {
+ context.log(title);
+ }
+ }
+
+} // GitCloneTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java
index 23faaea6ce..0e95540e13 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/InstallableUnitImpl.java
@@ -10,8 +10,8 @@
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
import org.eclipse.emf.cdo.releng.setup.InstallableUnit;
+import org.eclipse.emf.cdo.releng.setup.P2Task;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
import org.eclipse.emf.common.notify.Notification;
@@ -29,7 +29,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
* <p>
* The following features are implemented:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl#getDirectorCall <em>Director Call</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl#getP2Task <em>P2 Task</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.InstallableUnitImpl#getId <em>Id</em>}</li>
* </ul>
* </p>
@@ -84,11 +84,11 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
* <!-- end-user-doc -->
* @generated
*/
- public DirectorCall getDirectorCall()
+ public P2Task getP2Task()
{
- if (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL)
+ if (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__P2_TASK)
return null;
- return (DirectorCall)eInternalContainer();
+ return (P2Task)eContainer();
}
/**
@@ -96,9 +96,21 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
* <!-- end-user-doc -->
* @generated
*/
- public NotificationChain basicSetDirectorCall(DirectorCall newDirectorCall, NotificationChain msgs)
+ public P2Task basicGetP2Task()
{
- msgs = eBasicSetContainer((InternalEObject)newDirectorCall, SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL, msgs);
+ if (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__P2_TASK)
+ return null;
+ return (P2Task)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetP2Task(P2Task newP2Task, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newP2Task, SetupPackage.INSTALLABLE_UNIT__P2_TASK, msgs);
return msgs;
}
@@ -107,26 +119,26 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
* <!-- end-user-doc -->
* @generated
*/
- public void setDirectorCall(DirectorCall newDirectorCall)
+ public void setP2Task(P2Task newP2Task)
{
- if (newDirectorCall != eInternalContainer()
- || (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL && newDirectorCall != null))
+ if (newP2Task != eInternalContainer()
+ || (eContainerFeatureID() != SetupPackage.INSTALLABLE_UNIT__P2_TASK && newP2Task != null))
{
- if (EcoreUtil.isAncestor(this, newDirectorCall))
+ if (EcoreUtil.isAncestor(this, newP2Task))
throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
NotificationChain msgs = null;
if (eInternalContainer() != null)
msgs = eBasicRemoveFromContainer(msgs);
- if (newDirectorCall != null)
- msgs = ((InternalEObject)newDirectorCall).eInverseAdd(this, SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS,
- DirectorCall.class, msgs);
- msgs = basicSetDirectorCall(newDirectorCall, msgs);
+ if (newP2Task != null)
+ msgs = ((InternalEObject)newP2Task).eInverseAdd(this, SetupPackage.P2_TASK__INSTALLABLE_UNITS, P2Task.class,
+ msgs);
+ msgs = basicSetP2Task(newP2Task, msgs);
if (msgs != null)
msgs.dispatch();
}
else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL,
- newDirectorCall, newDirectorCall));
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.INSTALLABLE_UNIT__P2_TASK, newP2Task,
+ newP2Task));
}
/**
@@ -162,10 +174,10 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL:
+ case SetupPackage.INSTALLABLE_UNIT__P2_TASK:
if (eInternalContainer() != null)
msgs = eBasicRemoveFromContainer(msgs);
- return basicSetDirectorCall((DirectorCall)otherEnd, msgs);
+ return basicSetP2Task((P2Task)otherEnd, msgs);
}
return super.eInverseAdd(otherEnd, featureID, msgs);
}
@@ -180,8 +192,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL:
- return basicSetDirectorCall(null, msgs);
+ case SetupPackage.INSTALLABLE_UNIT__P2_TASK:
+ return basicSetP2Task(null, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -196,9 +208,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
{
switch (eContainerFeatureID())
{
- case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL:
- return eInternalContainer().eInverseRemove(this, SetupPackage.DIRECTOR_CALL__INSTALLABLE_UNITS,
- DirectorCall.class, msgs);
+ case SetupPackage.INSTALLABLE_UNIT__P2_TASK:
+ return eInternalContainer().eInverseRemove(this, SetupPackage.P2_TASK__INSTALLABLE_UNITS, P2Task.class, msgs);
}
return super.eBasicRemoveFromContainerFeature(msgs);
}
@@ -213,8 +224,10 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL:
- return getDirectorCall();
+ case SetupPackage.INSTALLABLE_UNIT__P2_TASK:
+ if (resolve)
+ return getP2Task();
+ return basicGetP2Task();
case SetupPackage.INSTALLABLE_UNIT__ID:
return getId();
}
@@ -231,8 +244,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL:
- setDirectorCall((DirectorCall)newValue);
+ case SetupPackage.INSTALLABLE_UNIT__P2_TASK:
+ setP2Task((P2Task)newValue);
return;
case SetupPackage.INSTALLABLE_UNIT__ID:
setId((String)newValue);
@@ -251,8 +264,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL:
- setDirectorCall((DirectorCall)null);
+ case SetupPackage.INSTALLABLE_UNIT__P2_TASK:
+ setP2Task((P2Task)null);
return;
case SetupPackage.INSTALLABLE_UNIT__ID:
setId(ID_EDEFAULT);
@@ -271,8 +284,8 @@ public class InstallableUnitImpl extends MinimalEObjectImpl.Container implements
{
switch (featureID)
{
- case SetupPackage.INSTALLABLE_UNIT__DIRECTOR_CALL:
- return getDirectorCall() != null;
+ case SetupPackage.INSTALLABLE_UNIT__P2_TASK:
+ return basicGetP2Task() != null;
case SetupPackage.INSTALLABLE_UNIT__ID:
return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationTaskImpl.java
index c8c4b97d2e..ac4727ba96 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/LinkLocationTaskImpl.java
@@ -1,38 +1,34 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import org.eclipse.emf.cdo.releng.setup.LinkLocation;
+import org.eclipse.emf.cdo.releng.setup.LinkLocationTask;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.List;
/**
* <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Link Location</b></em>'.
+ * An implementation of the model object '<em><b>Link Location Task</b></em>'.
* <!-- end-user-doc -->
* <p>
* The following features are implemented:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl#getPath <em>Path</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl#getPath <em>Path</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.LinkLocationTaskImpl#getName <em>Name</em>}</li>
* </ul>
* </p>
*
* @generated
*/
-public class LinkLocationImpl extends MinimalEObjectImpl.Container implements LinkLocation
+public class LinkLocationTaskImpl extends SetupTaskImpl implements LinkLocationTask
{
/**
* The default value of the '{@link #getPath() <em>Path</em>}' attribute.
@@ -74,12 +70,16 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
*/
protected String name = NAME_EDEFAULT;
+ private transient File link;
+
+ private transient File canonicalPath;
+
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- protected LinkLocationImpl()
+ protected LinkLocationTaskImpl()
{
super();
}
@@ -92,7 +92,7 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
@Override
protected EClass eStaticClass()
{
- return SetupPackage.Literals.LINK_LOCATION;
+ return SetupPackage.Literals.LINK_LOCATION_TASK;
}
/**
@@ -115,9 +115,7 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
String oldPath = path;
path = newPath;
if (eNotificationRequired())
- {
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.LINK_LOCATION__PATH, oldPath, path));
- }
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.LINK_LOCATION_TASK__PATH, oldPath, path));
}
/**
@@ -140,9 +138,7 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
String oldName = name;
name = newName;
if (eNotificationRequired())
- {
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.LINK_LOCATION__NAME, oldName, name));
- }
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.LINK_LOCATION_TASK__NAME, oldName, name));
}
/**
@@ -155,9 +151,9 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
{
switch (featureID)
{
- case SetupPackage.LINK_LOCATION__PATH:
+ case SetupPackage.LINK_LOCATION_TASK__PATH:
return getPath();
- case SetupPackage.LINK_LOCATION__NAME:
+ case SetupPackage.LINK_LOCATION_TASK__NAME:
return getName();
}
return super.eGet(featureID, resolve, coreType);
@@ -173,10 +169,10 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
{
switch (featureID)
{
- case SetupPackage.LINK_LOCATION__PATH:
+ case SetupPackage.LINK_LOCATION_TASK__PATH:
setPath((String)newValue);
return;
- case SetupPackage.LINK_LOCATION__NAME:
+ case SetupPackage.LINK_LOCATION_TASK__NAME:
setName((String)newValue);
return;
}
@@ -193,10 +189,10 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
{
switch (featureID)
{
- case SetupPackage.LINK_LOCATION__PATH:
+ case SetupPackage.LINK_LOCATION_TASK__PATH:
setPath(PATH_EDEFAULT);
return;
- case SetupPackage.LINK_LOCATION__NAME:
+ case SetupPackage.LINK_LOCATION_TASK__NAME:
setName(NAME_EDEFAULT);
return;
}
@@ -213,9 +209,9 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
{
switch (featureID)
{
- case SetupPackage.LINK_LOCATION__PATH:
+ case SetupPackage.LINK_LOCATION_TASK__PATH:
return PATH_EDEFAULT == null ? path != null : !PATH_EDEFAULT.equals(path);
- case SetupPackage.LINK_LOCATION__NAME:
+ case SetupPackage.LINK_LOCATION_TASK__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
}
return super.eIsSet(featureID);
@@ -230,9 +226,7 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
public String toString()
{
if (eIsProxy())
- {
return super.toString();
- }
StringBuffer result = new StringBuffer(super.toString());
result.append(" (path: ");
@@ -243,4 +237,26 @@ public class LinkLocationImpl extends MinimalEObjectImpl.Container implements Li
return result.toString();
}
-} // LinkLocationImpl
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ File links = new File(context.getEclipseDir(), "links");
+ canonicalPath = new File(context.expandString(getPath())).getCanonicalFile();
+
+ String name = getName();
+ if (name == null || name.length() == 0)
+ {
+ name = canonicalPath.getName();
+ }
+
+ link = new File(links, name + ".link");
+ return link.isFile();
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ List<String> lines = Collections.singletonList("path=" + canonicalPath.toString().replace("\\", "\\\\"));
+ context.getOS().writeText(link, lines);
+ context.setRestartNeeded();
+ }
+
+} // LinkLocationTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/OneTimeSetupTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/OneTimeSetupTaskImpl.java
new file mode 100644
index 0000000000..1b6f14c9fc
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/OneTimeSetupTaskImpl.java
@@ -0,0 +1,215 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>One Time Setup Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.OneTimeSetupTaskImpl#getId <em>Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class OneTimeSetupTaskImpl extends SetupTaskImpl implements OneTimeSetupTask
+{
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final String ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected String id = ID_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected OneTimeSetupTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.ONE_TIME_SETUP_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getId()
+ {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setId(String newId)
+ {
+ String oldId = id;
+ id = newId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ONE_TIME_SETUP_TASK__ID, oldId, id));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.ONE_TIME_SETUP_TASK__ID:
+ return getId();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.ONE_TIME_SETUP_TASK__ID:
+ setId((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.ONE_TIME_SETUP_TASK__ID:
+ setId(ID_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.ONE_TIME_SETUP_TASK__ID:
+ return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (id: ");
+ result.append(id);
+ result.append(')');
+ return result.toString();
+ }
+
+ public final boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ return !isPerformed();
+ }
+
+ public final void perform(SetupTaskContext context) throws Exception
+ {
+ doPerform(context);
+ setPerformed(true);
+ }
+
+ protected abstract void doPerform(SetupTaskContext context) throws Exception;
+
+ private int xxx;
+
+ private static final Set<String> PERFORMED = new HashSet<String>();
+
+ protected boolean isPerformed()
+ {
+ String id = getId();
+ return PERFORMED.contains(id);
+ }
+
+ protected void setPerformed(boolean performed)
+ {
+ String id = getId();
+ if (performed)
+ {
+ PERFORMED.add(id);
+ }
+ else
+ {
+ PERFORMED.remove(id);
+ }
+ }
+
+} // OneTimeSetupTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java
index ae64c0864f..ea56defc23 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2RepositoryImpl.java
@@ -10,8 +10,8 @@
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
import org.eclipse.emf.cdo.releng.setup.P2Repository;
+import org.eclipse.emf.cdo.releng.setup.P2Task;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
import org.eclipse.emf.common.notify.Notification;
@@ -29,7 +29,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil;
* <p>
* The following features are implemented:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2RepositoryImpl#getDirectorCall <em>Director Call</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2RepositoryImpl#getP2Task <em>P2 Task</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2RepositoryImpl#getUrl <em>Url</em>}</li>
* </ul>
* </p>
@@ -84,11 +84,11 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
* <!-- end-user-doc -->
* @generated
*/
- public DirectorCall getDirectorCall()
+ public P2Task getP2Task()
{
- if (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__DIRECTOR_CALL)
+ if (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__P2_TASK)
return null;
- return (DirectorCall)eInternalContainer();
+ return (P2Task)eContainer();
}
/**
@@ -96,9 +96,21 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
* <!-- end-user-doc -->
* @generated
*/
- public NotificationChain basicSetDirectorCall(DirectorCall newDirectorCall, NotificationChain msgs)
+ public P2Task basicGetP2Task()
{
- msgs = eBasicSetContainer((InternalEObject)newDirectorCall, SetupPackage.P2_REPOSITORY__DIRECTOR_CALL, msgs);
+ if (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__P2_TASK)
+ return null;
+ return (P2Task)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetP2Task(P2Task newP2Task, NotificationChain msgs)
+ {
+ msgs = eBasicSetContainer((InternalEObject)newP2Task, SetupPackage.P2_REPOSITORY__P2_TASK, msgs);
return msgs;
}
@@ -107,26 +119,25 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
* <!-- end-user-doc -->
* @generated
*/
- public void setDirectorCall(DirectorCall newDirectorCall)
+ public void setP2Task(P2Task newP2Task)
{
- if (newDirectorCall != eInternalContainer()
- || (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__DIRECTOR_CALL && newDirectorCall != null))
+ if (newP2Task != eInternalContainer()
+ || (eContainerFeatureID() != SetupPackage.P2_REPOSITORY__P2_TASK && newP2Task != null))
{
- if (EcoreUtil.isAncestor(this, newDirectorCall))
+ if (EcoreUtil.isAncestor(this, newP2Task))
throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
NotificationChain msgs = null;
if (eInternalContainer() != null)
msgs = eBasicRemoveFromContainer(msgs);
- if (newDirectorCall != null)
- msgs = ((InternalEObject)newDirectorCall).eInverseAdd(this, SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES,
- DirectorCall.class, msgs);
- msgs = basicSetDirectorCall(newDirectorCall, msgs);
+ if (newP2Task != null)
+ msgs = ((InternalEObject)newP2Task)
+ .eInverseAdd(this, SetupPackage.P2_TASK__P2_REPOSITORIES, P2Task.class, msgs);
+ msgs = basicSetP2Task(newP2Task, msgs);
if (msgs != null)
msgs.dispatch();
}
else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.P2_REPOSITORY__DIRECTOR_CALL, newDirectorCall,
- newDirectorCall));
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.P2_REPOSITORY__P2_TASK, newP2Task, newP2Task));
}
/**
@@ -162,10 +173,10 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
{
switch (featureID)
{
- case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL:
+ case SetupPackage.P2_REPOSITORY__P2_TASK:
if (eInternalContainer() != null)
msgs = eBasicRemoveFromContainer(msgs);
- return basicSetDirectorCall((DirectorCall)otherEnd, msgs);
+ return basicSetP2Task((P2Task)otherEnd, msgs);
}
return super.eInverseAdd(otherEnd, featureID, msgs);
}
@@ -180,8 +191,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
{
switch (featureID)
{
- case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL:
- return basicSetDirectorCall(null, msgs);
+ case SetupPackage.P2_REPOSITORY__P2_TASK:
+ return basicSetP2Task(null, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -196,9 +207,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
{
switch (eContainerFeatureID())
{
- case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL:
- return eInternalContainer().eInverseRemove(this, SetupPackage.DIRECTOR_CALL__P2_REPOSITORIES, DirectorCall.class,
- msgs);
+ case SetupPackage.P2_REPOSITORY__P2_TASK:
+ return eInternalContainer().eInverseRemove(this, SetupPackage.P2_TASK__P2_REPOSITORIES, P2Task.class, msgs);
}
return super.eBasicRemoveFromContainerFeature(msgs);
}
@@ -213,8 +223,10 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
{
switch (featureID)
{
- case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL:
- return getDirectorCall();
+ case SetupPackage.P2_REPOSITORY__P2_TASK:
+ if (resolve)
+ return getP2Task();
+ return basicGetP2Task();
case SetupPackage.P2_REPOSITORY__URL:
return getUrl();
}
@@ -231,8 +243,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
{
switch (featureID)
{
- case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL:
- setDirectorCall((DirectorCall)newValue);
+ case SetupPackage.P2_REPOSITORY__P2_TASK:
+ setP2Task((P2Task)newValue);
return;
case SetupPackage.P2_REPOSITORY__URL:
setUrl((String)newValue);
@@ -251,8 +263,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
{
switch (featureID)
{
- case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL:
- setDirectorCall((DirectorCall)null);
+ case SetupPackage.P2_REPOSITORY__P2_TASK:
+ setP2Task((P2Task)null);
return;
case SetupPackage.P2_REPOSITORY__URL:
setUrl(URL_EDEFAULT);
@@ -271,8 +283,8 @@ public class P2RepositoryImpl extends MinimalEObjectImpl.Container implements P2
{
switch (featureID)
{
- case SetupPackage.P2_REPOSITORY__DIRECTOR_CALL:
- return getDirectorCall() != null;
+ case SetupPackage.P2_REPOSITORY__P2_TASK:
+ return basicGetP2Task() != null;
case SetupPackage.P2_REPOSITORY__URL:
return URL_EDEFAULT == null ? url != null : !URL_EDEFAULT.equals(url);
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2TaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2TaskImpl.java
new file mode 100644
index 0000000000..b948f95368
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/P2TaskImpl.java
@@ -0,0 +1,516 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.internal.setup.Activator;
+import org.eclipse.emf.cdo.releng.setup.InstallableUnit;
+import org.eclipse.emf.cdo.releng.setup.P2Repository;
+import org.eclipse.emf.cdo.releng.setup.P2Task;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskScope;
+import org.eclipse.emf.cdo.releng.setup.util.FileUtil;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogMonitor;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.OperationCanceledException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.equinox.internal.p2.director.app.DirectorApplication;
+import org.eclipse.equinox.internal.p2.director.app.ILog;
+import org.eclipse.equinox.internal.p2.ui.ProvUI;
+import org.eclipse.equinox.p2.engine.IProfile;
+import org.eclipse.equinox.p2.engine.ProvisioningContext;
+import org.eclipse.equinox.p2.metadata.IInstallableUnit;
+import org.eclipse.equinox.p2.metadata.MetadataFactory;
+import org.eclipse.equinox.p2.metadata.MetadataFactory.InstallableUnitDescription;
+import org.eclipse.equinox.p2.operations.InstallOperation;
+import org.eclipse.equinox.p2.operations.ProvisioningJob;
+import org.eclipse.equinox.p2.operations.ProvisioningSession;
+import org.eclipse.equinox.p2.operations.RepositoryTracker;
+import org.eclipse.equinox.p2.query.IQuery;
+import org.eclipse.equinox.p2.query.IQueryResult;
+import org.eclipse.equinox.p2.query.QueryUtil;
+import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository;
+import org.eclipse.equinox.p2.repository.metadata.IMetadataRepositoryManager;
+import org.eclipse.equinox.p2.ui.ProvisioningUI;
+
+import java.io.File;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Install Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl#getP2Repositories <em>P2 Repositories</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.P2TaskImpl#getInstallableUnits <em>Installable Units</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class P2TaskImpl extends SetupTaskImpl implements P2Task
+{
+ /**
+ * The cached value of the '{@link #getP2Repositories() <em>P2 Repositories</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getP2Repositories()
+ * @generated
+ * @ordered
+ */
+ protected EList<P2Repository> p2Repositories;
+
+ /**
+ * The cached value of the '{@link #getInstallableUnits() <em>Installable Units</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInstallableUnits()
+ * @generated
+ * @ordered
+ */
+ protected EList<InstallableUnit> installableUnits;
+
+ private transient Set<String> neededInstallableUnits;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected P2TaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.P2_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<InstallableUnit> getInstallableUnits()
+ {
+ if (installableUnits == null)
+ {
+ installableUnits = new EObjectContainmentWithInverseEList.Resolving<InstallableUnit>(InstallableUnit.class, this,
+ SetupPackage.P2_TASK__INSTALLABLE_UNITS, SetupPackage.INSTALLABLE_UNIT__P2_TASK);
+ }
+ return installableUnits;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<P2Repository> getP2Repositories()
+ {
+ if (p2Repositories == null)
+ {
+ p2Repositories = new EObjectContainmentWithInverseEList.Resolving<P2Repository>(P2Repository.class, this,
+ SetupPackage.P2_TASK__P2_REPOSITORIES, SetupPackage.P2_REPOSITORY__P2_TASK);
+ }
+ return p2Repositories;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.P2_TASK__P2_REPOSITORIES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getP2Repositories()).basicAdd(otherEnd, msgs);
+ case SetupPackage.P2_TASK__INSTALLABLE_UNITS:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getInstallableUnits()).basicAdd(otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.P2_TASK__P2_REPOSITORIES:
+ return ((InternalEList<?>)getP2Repositories()).basicRemove(otherEnd, msgs);
+ case SetupPackage.P2_TASK__INSTALLABLE_UNITS:
+ return ((InternalEList<?>)getInstallableUnits()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.P2_TASK__P2_REPOSITORIES:
+ return getP2Repositories();
+ case SetupPackage.P2_TASK__INSTALLABLE_UNITS:
+ return getInstallableUnits();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.P2_TASK__P2_REPOSITORIES:
+ getP2Repositories().clear();
+ getP2Repositories().addAll((Collection<? extends P2Repository>)newValue);
+ return;
+ case SetupPackage.P2_TASK__INSTALLABLE_UNITS:
+ getInstallableUnits().clear();
+ getInstallableUnits().addAll((Collection<? extends InstallableUnit>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.P2_TASK__P2_REPOSITORIES:
+ getP2Repositories().clear();
+ return;
+ case SetupPackage.P2_TASK__INSTALLABLE_UNITS:
+ getInstallableUnits().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.P2_TASK__P2_REPOSITORIES:
+ return p2Repositories != null && !p2Repositories.isEmpty();
+ case SetupPackage.P2_TASK__INSTALLABLE_UNITS:
+ return installableUnits != null && !installableUnits.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ private static Set<String> getInstalledUnits()
+ {
+ Set<String> result = new HashSet<String>();
+ ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI();
+ ProvisioningSession session = provisioningUI.getSession();
+ String profileId = provisioningUI.getProfileId();
+ IProfile profile = ProvUI.getProfileRegistry(session).getProfile(profileId);
+ IQueryResult<IInstallableUnit> queryResult = profile.query(QueryUtil.createIUAnyQuery(), null);
+
+ for (IInstallableUnit installableUnit : queryResult)
+ {
+ result.add(installableUnit.getId());
+ }
+
+ return result;
+ }
+
+ private static Set<String> getKnownRepositories()
+ {
+ Set<String> result = new HashSet<String>();
+ ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI();
+ ProvisioningSession session = provisioningUI.getSession();
+ for (URI knowRepository : provisioningUI.getRepositoryTracker().getKnownRepositories(session))
+ {
+ result.add(knowRepository.toString());
+ }
+ return result;
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ if (!Activator.SETUP_IDE)
+ {
+ return true;
+ }
+
+ Set<String> installedUnits = getInstalledUnits();
+ for (InstallableUnit installableUnit : getInstallableUnits())
+ {
+ String id = context.expandString(installableUnit.getId());
+ if (!installedUnits.contains(id))
+ {
+ if (neededInstallableUnits == null)
+ {
+ neededInstallableUnits = new HashSet<String>();
+ }
+ neededInstallableUnits.add(id);
+ }
+ }
+
+ Set<String> knownRepositories = getKnownRepositories();
+ for (P2Repository p2Repository : getP2Repositories())
+ {
+ String url = context.expandString(p2Repository.getUrl());
+ if (!knownRepositories.contains(url))
+ {
+ return true;
+ }
+ }
+
+ return neededInstallableUnits != null;
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ if (Activator.SETUP_IDE)
+ {
+ ProgressLogMonitor monitor = new ProgressLogMonitor(context);
+
+ ProvisioningUI provisioningUI = ProvisioningUI.getDefaultUI();
+ ProvisioningSession session = provisioningUI.getSession();
+ IMetadataRepositoryManager manager = (IMetadataRepositoryManager)session.getProvisioningAgent().getService(
+ IMetadataRepositoryManager.SERVICE_NAME);
+ RepositoryTracker repositoryTracker = provisioningUI.getRepositoryTracker();
+
+ Set<String> knownRepositories = getKnownRepositories();
+ Set<IMetadataRepository> repositories = new HashSet<IMetadataRepository>();
+ List<URI> repos = new ArrayList<URI>();
+ for (P2Repository p2Repository : getP2Repositories())
+ {
+ String url = context.expandString(p2Repository.getUrl());
+ URI uri = new URI(url);
+ if (neededInstallableUnits == null)
+ {
+ if (!knownRepositories.contains(url))
+ {
+ IMetadataRepository repository = manager.loadRepository(uri, monitor);
+ repositoryTracker.addRepository(uri, repository.getName(), session);
+ }
+ }
+ else
+ {
+ repos.add(uri);
+
+ IMetadataRepository repository = manager.loadRepository(uri, monitor);
+ repositories.add(repository);
+
+ if (!knownRepositories.contains(url))
+ {
+ repositoryTracker.addRepository(uri, repository.getName(), session);
+ }
+ }
+ }
+
+ if (neededInstallableUnits != null)
+ {
+ List<IInstallableUnit> toInstall = new ArrayList<IInstallableUnit>();
+ for (String installableUnit : neededInstallableUnits)
+ {
+ IQuery<IInstallableUnit> iuQuery = QueryUtil.createIUQuery(installableUnit);
+ IInstallableUnit candidate = null;
+ for (IMetadataRepository repository : repositories)
+ {
+ IQueryResult<IInstallableUnit> queryResult = repository.query(iuQuery, monitor);
+ for (IInstallableUnit installableUnitMatch : queryResult)
+ {
+ if (candidate == null || candidate.getVersion().compareTo(installableUnitMatch.getVersion()) < 0)
+ {
+ candidate = installableUnitMatch;
+ }
+ break;
+ }
+ }
+ if (candidate != null)
+ {
+ toInstall.add(candidate);
+ }
+ else
+ {
+ // This will fail.
+ // TODO
+ InstallableUnitDescription installableUnitDescription = new InstallableUnitDescription();
+ installableUnitDescription.setId(installableUnit);
+ toInstall.add(MetadataFactory.createInstallableUnit(installableUnitDescription));
+ }
+ }
+
+ InstallOperation installOperation = new InstallOperation(session, toInstall);
+ String profileId = provisioningUI.getProfileId();
+ installOperation.setProfileId(profileId);
+
+ ProvisioningContext provisioningContext = makeProvisioningContext(session, repos);
+ installOperation.setProvisioningContext(provisioningContext);
+
+ IStatus status = installOperation.resolveModal(monitor);
+ if (status.isOK())
+ {
+ ProvisioningJob provisioningJob = installOperation.getProvisioningJob(null);
+ provisioningJob.run(monitor);
+ }
+ else
+ {
+ context.log(status.toString());
+ }
+ }
+ }
+ else
+ {
+ callDirectorApp(context);
+ }
+ context.setRestartNeeded();
+ }
+
+ private ProvisioningContext makeProvisioningContext(ProvisioningSession session, Collection<URI> repositories)
+ {
+ URI[] repos = repositories.toArray(new URI[repositories.size()]);
+ ProvisioningContext context = new ProvisioningContext(session.getProvisioningAgent());
+ context.setMetadataRepositories(repos);
+ context.setArtifactRepositories(repos);
+ return context;
+ }
+
+ // public void computeRemediationOperation(ProfileChangeOperation op, ProvisioningUI ui, IProgressMonitor monitor) {
+ // SubMonitor sub = SubMonitor.convert(monitor, ProvUIMessages.ProvisioningOperationWizard_Remediation_Operation,
+ // RemedyConfig.getAllRemedyConfigs().length);
+ // monitor.setTaskName(ProvUIMessages.ProvisioningOperationWizard_Remediation_Operation);
+ // remediationOperation = new RemediationOperation(ui.getSession(), op.getProfileChangeRequest());
+ // remediationOperation.resolveModal(monitor);
+ // sub.done();
+ // }
+
+ private void callDirectorApp(final SetupTaskContext context) throws Exception
+ {
+ if (getScope() == SetupTaskScope.CONFIGURATION)
+
+ {
+ FileUtil.delete(context.getP2ProfileDir(), new ProgressLogMonitor(context));
+ }
+
+ String destination = context.getEclipseDir().toString();
+ String bundlePool = context.getP2PoolDir().toString();
+ String bundleAgent = context.getP2AgentDir().toString();
+
+ String os = Platform.getOS();
+ String ws = Platform.getWS();
+ String arch = Platform.getOSArch();
+
+ EList<P2Repository> p2Repositories = getP2Repositories();
+ EList<InstallableUnit> installableUnits = getInstallableUnits();
+
+ context.log("Calling director to install " + installableUnits.size()
+ + (installableUnits.size() == 1 ? " unit" : " units") + " from " + p2Repositories.size()
+ + (p2Repositories.size() == 1 ? " repository" : " repositories") + " to " + destination);
+
+ new File(destination).mkdirs();
+
+ String repositories = makeList(context, p2Repositories, SetupPackage.Literals.P2_REPOSITORY__URL);
+ String ius = makeList(context, installableUnits, SetupPackage.Literals.INSTALLABLE_UNIT__ID);
+
+ String[] args = { "-destination", destination, "-repository", repositories, "-installIU", ius, "-profile",
+ context.getP2ProfileName(), "-profileProperties", "org.eclipse.update.install.features=true", "-bundlepool",
+ bundlePool, "-shared", bundleAgent, "-p2.os", os, "-p2.ws", ws, "-p2.arch", arch };
+
+ DirectorApplication app = new DirectorApplication();
+ app.setLog(new ILog()
+ {
+ public void log(String message)
+ {
+ if (context.isCancelled())
+ {
+ throw new OperationCanceledException();
+ }
+
+ context.log(message);
+ }
+
+ public void log(IStatus status)
+ {
+ log(status.getMessage());
+ }
+
+ public void close()
+ {
+ }
+ });
+
+ app.run(args);
+ }
+
+ private String makeList(SetupTaskContext context, EList<? extends EObject> objects, EAttribute attribute)
+ {
+ StringBuilder builder = new StringBuilder();
+ for (EObject object : objects)
+ {
+ if (builder.length() > 0)
+ {
+ builder.append(',');
+ }
+
+ String value = (String)object.eGet(attribute);
+ value = context.expandString(value);
+ builder.append(value);
+ }
+
+ return builder.toString();
+ }
+
+} // InstallTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java
index f54be8534e..10866085b9 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/PreferencesImpl.java
@@ -10,18 +10,12 @@
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import java.util.Collection;
-import org.eclipse.emf.cdo.releng.setup.LinkLocation;
import org.eclipse.emf.cdo.releng.setup.Preferences;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
/**
* <!-- begin-user-doc -->
@@ -33,13 +27,12 @@ import org.eclipse.emf.ecore.util.InternalEList;
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl#getUserName <em>User Name</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl#getInstallFolder <em>Install Folder</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl#getGitPrefix <em>Git Prefix</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.PreferencesImpl#getLinkLocations <em>Link Locations</em>}</li>
* </ul>
* </p>
*
* @generated
*/
-public class PreferencesImpl extends ToolInstallationImpl implements Preferences
+public class PreferencesImpl extends SetupTaskContainerImpl implements Preferences
{
/**
* The default value of the '{@link #getUserName() <em>User Name</em>}' attribute.
@@ -102,16 +95,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences
protected String gitPrefix = GIT_PREFIX_EDEFAULT;
/**
- * The cached value of the '{@link #getLinkLocations() <em>Link Locations</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getLinkLocations()
- * @generated
- * @ordered
- */
- protected EList<LinkLocation> linkLocations;
-
- /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -208,37 +191,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences
* <!-- end-user-doc -->
* @generated
*/
- public EList<LinkLocation> getLinkLocations()
- {
- if (linkLocations == null)
- {
- linkLocations = new EObjectContainmentEList<LinkLocation>(LinkLocation.class, this,
- SetupPackage.PREFERENCES__LINK_LOCATIONS);
- }
- return linkLocations;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
- {
- switch (featureID)
- {
- case SetupPackage.PREFERENCES__LINK_LOCATIONS:
- return ((InternalEList<?>)getLinkLocations()).basicRemove(otherEnd, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType)
{
@@ -250,8 +202,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences
return getInstallFolder();
case SetupPackage.PREFERENCES__GIT_PREFIX:
return getGitPrefix();
- case SetupPackage.PREFERENCES__LINK_LOCATIONS:
- return getLinkLocations();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -261,7 +211,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences
* <!-- end-user-doc -->
* @generated
*/
- @SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue)
{
@@ -276,10 +225,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences
case SetupPackage.PREFERENCES__GIT_PREFIX:
setGitPrefix((String)newValue);
return;
- case SetupPackage.PREFERENCES__LINK_LOCATIONS:
- getLinkLocations().clear();
- getLinkLocations().addAll((Collection<? extends LinkLocation>)newValue);
- return;
}
super.eSet(featureID, newValue);
}
@@ -303,9 +248,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences
case SetupPackage.PREFERENCES__GIT_PREFIX:
setGitPrefix(GIT_PREFIX_EDEFAULT);
return;
- case SetupPackage.PREFERENCES__LINK_LOCATIONS:
- getLinkLocations().clear();
- return;
}
super.eUnset(featureID);
}
@@ -326,8 +268,6 @@ public class PreferencesImpl extends ToolInstallationImpl implements Preferences
return INSTALL_FOLDER_EDEFAULT == null ? installFolder != null : !INSTALL_FOLDER_EDEFAULT.equals(installFolder);
case SetupPackage.PREFERENCES__GIT_PREFIX:
return GIT_PREFIX_EDEFAULT == null ? gitPrefix != null : !GIT_PREFIX_EDEFAULT.equals(gitPrefix);
- case SetupPackage.PREFERENCES__LINK_LOCATIONS:
- return linkLocations != null && !linkLocations.isEmpty();
}
return super.eIsSet(featureID);
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java
index 3c0a1fe2af..51902935e0 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ProjectImpl.java
@@ -10,13 +10,11 @@
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import org.eclipse.emf.cdo.releng.setup.ApiBaseline;
import org.eclipse.emf.cdo.releng.setup.Branch;
import org.eclipse.emf.cdo.releng.setup.Configuration;
import org.eclipse.emf.cdo.releng.setup.Project;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
@@ -39,14 +37,12 @@ import java.util.Collection;
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getConfiguration <em>Configuration</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getBranches <em>Branches</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getApiBaselines <em>Api Baselines</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ProjectImpl#getWorkingSetGroup <em>Working Set Group</em>}</li>
* </ul>
* </p>
*
* @generated
*/
-public class ProjectImpl extends ToolInstallationImpl implements Project
+public class ProjectImpl extends ConfigurableItemImpl implements Project
{
/**
* The cached value of the '{@link #getBranches() <em>Branches</em>}' containment reference list.
@@ -79,30 +75,10 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
protected String name = NAME_EDEFAULT;
/**
- * The cached value of the '{@link #getApiBaselines() <em>Api Baselines</em>}' containment reference list.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getApiBaselines()
- * @generated
- * @ordered
- */
- protected EList<ApiBaseline> apiBaselines;
-
- /**
- * The cached value of the '{@link #getWorkingSetGroup() <em>Working Set Group</em>}' containment reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getWorkingSetGroup()
+ * <!-- end-user-doc -->
* @generated
- * @ordered
*/
- protected WorkingSetGroup workingSetGroup;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
protected ProjectImpl()
{
super();
@@ -128,6 +104,18 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
{
if (eContainerFeatureID() != SetupPackage.PROJECT__CONFIGURATION)
return null;
+ return (Configuration)eContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Configuration basicGetConfiguration()
+ {
+ if (eContainerFeatureID() != SetupPackage.PROJECT__CONFIGURATION)
+ return null;
return (Configuration)eInternalContainer();
}
@@ -178,8 +166,8 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
{
if (branches == null)
{
- branches = new EObjectContainmentWithInverseEList<Branch>(Branch.class, this, SetupPackage.PROJECT__BRANCHES,
- SetupPackage.BRANCH__PROJECT);
+ branches = new EObjectContainmentWithInverseEList.Resolving<Branch>(Branch.class, this,
+ SetupPackage.PROJECT__BRANCHES, SetupPackage.BRANCH__PROJECT);
}
return branches;
}
@@ -209,80 +197,9 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
/**
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList<ApiBaseline> getApiBaselines()
- {
- if (apiBaselines == null)
- {
- apiBaselines = new EObjectContainmentWithInverseEList<ApiBaseline>(ApiBaseline.class, this,
- SetupPackage.PROJECT__API_BASELINES, SetupPackage.API_BASELINE__PROJECT);
- }
- return apiBaselines;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
+ * <!-- end-user-doc -->
* @generated
*/
- public WorkingSetGroup getWorkingSetGroup()
- {
- return workingSetGroup;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public NotificationChain basicSetWorkingSetGroup(WorkingSetGroup newWorkingSetGroup, NotificationChain msgs)
- {
- WorkingSetGroup oldWorkingSetGroup = workingSetGroup;
- workingSetGroup = newWorkingSetGroup;
- if (eNotificationRequired())
- {
- ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
- SetupPackage.PROJECT__WORKING_SET_GROUP, oldWorkingSetGroup, newWorkingSetGroup);
- if (msgs == null)
- msgs = notification;
- else
- msgs.add(notification);
- }
- return msgs;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public void setWorkingSetGroup(WorkingSetGroup newWorkingSetGroup)
- {
- if (newWorkingSetGroup != workingSetGroup)
- {
- NotificationChain msgs = null;
- if (workingSetGroup != null)
- msgs = ((InternalEObject)workingSetGroup).eInverseRemove(this, EOPPOSITE_FEATURE_BASE
- - SetupPackage.PROJECT__WORKING_SET_GROUP, null, msgs);
- if (newWorkingSetGroup != null)
- msgs = ((InternalEObject)newWorkingSetGroup).eInverseAdd(this, EOPPOSITE_FEATURE_BASE
- - SetupPackage.PROJECT__WORKING_SET_GROUP, null, msgs);
- msgs = basicSetWorkingSetGroup(newWorkingSetGroup, msgs);
- if (msgs != null)
- msgs.dispatch();
- }
- else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.PROJECT__WORKING_SET_GROUP,
- newWorkingSetGroup, newWorkingSetGroup));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
@SuppressWarnings("unchecked")
@Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs)
@@ -295,8 +212,6 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
return basicSetConfiguration((Configuration)otherEnd, msgs);
case SetupPackage.PROJECT__BRANCHES:
return ((InternalEList<InternalEObject>)(InternalEList<?>)getBranches()).basicAdd(otherEnd, msgs);
- case SetupPackage.PROJECT__API_BASELINES:
- return ((InternalEList<InternalEObject>)(InternalEList<?>)getApiBaselines()).basicAdd(otherEnd, msgs);
}
return super.eInverseAdd(otherEnd, featureID, msgs);
}
@@ -315,10 +230,6 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
return basicSetConfiguration(null, msgs);
case SetupPackage.PROJECT__BRANCHES:
return ((InternalEList<?>)getBranches()).basicRemove(otherEnd, msgs);
- case SetupPackage.PROJECT__API_BASELINES:
- return ((InternalEList<?>)getApiBaselines()).basicRemove(otherEnd, msgs);
- case SetupPackage.PROJECT__WORKING_SET_GROUP:
- return basicSetWorkingSetGroup(null, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -350,15 +261,13 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
switch (featureID)
{
case SetupPackage.PROJECT__CONFIGURATION:
- return getConfiguration();
+ if (resolve)
+ return getConfiguration();
+ return basicGetConfiguration();
case SetupPackage.PROJECT__BRANCHES:
return getBranches();
case SetupPackage.PROJECT__NAME:
return getName();
- case SetupPackage.PROJECT__API_BASELINES:
- return getApiBaselines();
- case SetupPackage.PROJECT__WORKING_SET_GROUP:
- return getWorkingSetGroup();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -384,13 +293,6 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
case SetupPackage.PROJECT__NAME:
setName((String)newValue);
return;
- case SetupPackage.PROJECT__API_BASELINES:
- getApiBaselines().clear();
- getApiBaselines().addAll((Collection<? extends ApiBaseline>)newValue);
- return;
- case SetupPackage.PROJECT__WORKING_SET_GROUP:
- setWorkingSetGroup((WorkingSetGroup)newValue);
- return;
}
super.eSet(featureID, newValue);
}
@@ -414,12 +316,6 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
case SetupPackage.PROJECT__NAME:
setName(NAME_EDEFAULT);
return;
- case SetupPackage.PROJECT__API_BASELINES:
- getApiBaselines().clear();
- return;
- case SetupPackage.PROJECT__WORKING_SET_GROUP:
- setWorkingSetGroup((WorkingSetGroup)null);
- return;
}
super.eUnset(featureID);
}
@@ -435,15 +331,11 @@ public class ProjectImpl extends ToolInstallationImpl implements Project
switch (featureID)
{
case SetupPackage.PROJECT__CONFIGURATION:
- return getConfiguration() != null;
+ return basicGetConfiguration() != null;
case SetupPackage.PROJECT__BRANCHES:
return branches != null && !branches.isEmpty();
case SetupPackage.PROJECT__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
- case SetupPackage.PROJECT__API_BASELINES:
- return apiBaselines != null && !apiBaselines.isEmpty();
- case SetupPackage.PROJECT__WORKING_SET_GROUP:
- return workingSetGroup != null;
}
return super.eIsSet(featureID);
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ResourceCopyTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ResourceCopyTaskImpl.java
new file mode 100644
index 0000000000..c033ee8969
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ResourceCopyTaskImpl.java
@@ -0,0 +1,298 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+
+import org.eclipse.net4j.util.io.IOUtil;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.resource.URIConverter;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Resource Copy Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl#getSourceURL <em>Source URL</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ResourceCopyTaskImpl#getTargetURL <em>Target URL</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ResourceCopyTaskImpl extends SetupTaskImpl implements ResourceCopyTask
+{
+ /**
+ * The default value of the '{@link #getSourceURL() <em>Source URL</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSourceURL()
+ * @generated
+ * @ordered
+ */
+ protected static final String SOURCE_URL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSourceURL() <em>Source URL</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSourceURL()
+ * @generated
+ * @ordered
+ */
+ protected String sourceURL = SOURCE_URL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getTargetURL() <em>Target URL</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetURL()
+ * @generated
+ * @ordered
+ */
+ protected static final String TARGET_URL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTargetURL() <em>Target URL</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTargetURL()
+ * @generated
+ * @ordered
+ */
+ protected String targetURL = TARGET_URL_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ResourceCopyTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.RESOURCE_COPY_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getSourceURL()
+ {
+ return sourceURL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setSourceURL(String newSourceURL)
+ {
+ String oldSourceURL = sourceURL;
+ sourceURL = newSourceURL;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL, oldSourceURL,
+ sourceURL));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTargetURL()
+ {
+ return targetURL;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTargetURL(String newTargetURL)
+ {
+ String oldTargetURL = targetURL;
+ targetURL = newTargetURL;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.RESOURCE_COPY_TASK__TARGET_URL, oldTargetURL,
+ targetURL));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL:
+ return getSourceURL();
+ case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL:
+ return getTargetURL();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL:
+ setSourceURL((String)newValue);
+ return;
+ case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL:
+ setTargetURL((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL:
+ setSourceURL(SOURCE_URL_EDEFAULT);
+ return;
+ case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL:
+ setTargetURL(TARGET_URL_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.RESOURCE_COPY_TASK__SOURCE_URL:
+ return SOURCE_URL_EDEFAULT == null ? sourceURL != null : !SOURCE_URL_EDEFAULT.equals(sourceURL);
+ case SetupPackage.RESOURCE_COPY_TASK__TARGET_URL:
+ return TARGET_URL_EDEFAULT == null ? targetURL != null : !TARGET_URL_EDEFAULT.equals(targetURL);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (sourceURL: ");
+ result.append(sourceURL);
+ result.append(", targetURL: ");
+ result.append(targetURL);
+ result.append(')');
+ return result.toString();
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ URI sourceURI = URI.createURI(context.expandString(getSourceURL()));
+ URI targetURI = URI.createURI(context.expandString(getTargetURL()));
+ if (targetURI.hasTrailingPathSeparator())
+ {
+ if (sourceURI.hasTrailingPathSeparator())
+ {
+ // TODO
+ }
+ else if (URIConverter.INSTANCE.exists(sourceURI, null))
+ {
+ return !URIConverter.INSTANCE.exists(targetURI.appendSegment(sourceURI.lastSegment()), null);
+ }
+ }
+ else
+ {
+ // TODO
+ }
+
+ return false;
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ URI sourceURI = URI.createURI(context.expandString(getSourceURL()));
+ URI targetURI = URI.createURI(context.expandString(getTargetURL()));
+ if (targetURI.hasTrailingPathSeparator())
+ {
+ if (sourceURI.hasTrailingPathSeparator())
+ {
+ // TODO
+ }
+ else if (URIConverter.INSTANCE.exists(sourceURI, null))
+ {
+ InputStream input = null;
+ OutputStream output = null;
+
+ try
+ {
+ input = URIConverter.INSTANCE.createInputStream(sourceURI);
+ output = URIConverter.INSTANCE.createOutputStream(targetURI.appendSegment(sourceURI.lastSegment()), null);
+ IOUtil.copy(input, output);
+ }
+ finally
+ {
+ IOUtil.closeSilent(input);
+ IOUtil.closeSilent(output);
+ }
+ }
+ }
+ else
+ {
+ // TODO
+ }
+ }
+
+} // ResourceCopyTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java
index efcd362915..c2baca746b 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupFactoryImpl.java
@@ -10,7 +10,31 @@
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import org.eclipse.emf.cdo.releng.setup.*;
+import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask;
+import org.eclipse.emf.cdo.releng.setup.Branch;
+import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask;
+import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask;
+import org.eclipse.emf.cdo.releng.setup.Configuration;
+import org.eclipse.emf.cdo.releng.setup.EclipseIniTask;
+import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask;
+import org.eclipse.emf.cdo.releng.setup.EclipseVersion;
+import org.eclipse.emf.cdo.releng.setup.GitCloneTask;
+import org.eclipse.emf.cdo.releng.setup.InstallableUnit;
+import org.eclipse.emf.cdo.releng.setup.LinkLocationTask;
+import org.eclipse.emf.cdo.releng.setup.P2Repository;
+import org.eclipse.emf.cdo.releng.setup.P2Task;
+import org.eclipse.emf.cdo.releng.setup.Preferences;
+import org.eclipse.emf.cdo.releng.setup.Project;
+import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask;
+import org.eclipse.emf.cdo.releng.setup.Setup;
+import org.eclipse.emf.cdo.releng.setup.SetupFactory;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskScope;
+import org.eclipse.emf.cdo.releng.setup.StringVariableTask;
+import org.eclipse.emf.cdo.releng.setup.TextModification;
+import org.eclipse.emf.cdo.releng.setup.TextModifyTask;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+import org.eclipse.emf.cdo.releng.setup.WorkingSetTask;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
@@ -18,6 +42,8 @@ import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.impl.EFactoryImpl;
import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import java.util.HashSet;
+import java.util.Set;
/**
* <!-- begin-user-doc -->
@@ -71,32 +97,48 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
{
switch (eClass.getClassifierID())
{
- case SetupPackage.PREFERENCES:
- return createPreferences();
- case SetupPackage.LINK_LOCATION:
- return createLinkLocation();
- case SetupPackage.TOOL_PREFERENCE:
- return createToolPreference();
case SetupPackage.ECLIPSE_VERSION:
return createEclipseVersion();
- case SetupPackage.DIRECTOR_CALL:
- return createDirectorCall();
- case SetupPackage.INSTALLABLE_UNIT:
- return createInstallableUnit();
- case SetupPackage.P2_REPOSITORY:
- return createP2Repository();
case SetupPackage.CONFIGURATION:
return createConfiguration();
case SetupPackage.PROJECT:
return createProject();
case SetupPackage.BRANCH:
return createBranch();
- case SetupPackage.API_BASELINE:
- return createApiBaseline();
- case SetupPackage.GIT_CLONE:
- return createGitClone();
+ case SetupPackage.PREFERENCES:
+ return createPreferences();
case SetupPackage.SETUP:
return createSetup();
+ case SetupPackage.COMPOUND_SETUP_TASK:
+ return createCompoundSetupTask();
+ case SetupPackage.ECLIPSE_INI_TASK:
+ return createEclipseIniTask();
+ case SetupPackage.LINK_LOCATION_TASK:
+ return createLinkLocationTask();
+ case SetupPackage.P2_TASK:
+ return createP2Task();
+ case SetupPackage.INSTALLABLE_UNIT:
+ return createInstallableUnit();
+ case SetupPackage.P2_REPOSITORY:
+ return createP2Repository();
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK:
+ return createBuckminsterImportTask();
+ case SetupPackage.API_BASELINE_TASK:
+ return createApiBaselineTask();
+ case SetupPackage.GIT_CLONE_TASK:
+ return createGitCloneTask();
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK:
+ return createEclipsePreferenceTask();
+ case SetupPackage.STRING_VARIABLE_TASK:
+ return createStringVariableTask();
+ case SetupPackage.WORKING_SET_TASK:
+ return createWorkingSetTask();
+ case SetupPackage.RESOURCE_COPY_TASK:
+ return createResourceCopyTask();
+ case SetupPackage.TEXT_MODIFY_TASK:
+ return createTextModifyTask();
+ case SetupPackage.TEXT_MODIFICATION:
+ return createTextModification();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
}
@@ -112,8 +154,16 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
{
switch (eDataType.getClassifierID())
{
+ case SetupPackage.SETUP_TASK_SCOPE:
+ return createSetupTaskScopeFromString(eDataType, initialValue);
+ case SetupPackage.TRIGGER:
+ return createTriggerFromString(eDataType, initialValue);
case SetupPackage.URI:
return createURIFromString(eDataType, initialValue);
+ case SetupPackage.EXCEPTION:
+ return createExceptionFromString(eDataType, initialValue);
+ case SetupPackage.TRIGGER_SET:
+ return createTriggerSetFromString(eDataType, initialValue);
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
}
@@ -129,8 +179,16 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
{
switch (eDataType.getClassifierID())
{
+ case SetupPackage.SETUP_TASK_SCOPE:
+ return convertSetupTaskScopeToString(eDataType, instanceValue);
+ case SetupPackage.TRIGGER:
+ return convertTriggerToString(eDataType, instanceValue);
case SetupPackage.URI:
return convertURIToString(eDataType, instanceValue);
+ case SetupPackage.EXCEPTION:
+ return convertExceptionToString(eDataType, instanceValue);
+ case SetupPackage.TRIGGER_SET:
+ return convertTriggerSetToString(eDataType, instanceValue);
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
}
@@ -174,6 +232,28 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
+ public ApiBaselineTask createApiBaselineTask()
+ {
+ ApiBaselineTaskImpl apiBaselineTask = new ApiBaselineTaskImpl();
+ return apiBaselineTask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public GitCloneTask createGitCloneTask()
+ {
+ GitCloneTaskImpl gitCloneTask = new GitCloneTaskImpl();
+ return gitCloneTask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public EclipseVersion createEclipseVersion()
{
EclipseVersionImpl eclipseVersion = new EclipseVersionImpl();
@@ -185,10 +265,10 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
- public DirectorCall createDirectorCall()
+ public P2Task createP2Task()
{
- DirectorCallImpl directorCall = new DirectorCallImpl();
- return directorCall;
+ P2TaskImpl p2Task = new P2TaskImpl();
+ return p2Task;
}
/**
@@ -218,10 +298,10 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
- public ApiBaseline createApiBaseline()
+ public Setup createSetup()
{
- ApiBaselineImpl apiBaseline = new ApiBaselineImpl();
- return apiBaseline;
+ SetupImpl setup = new SetupImpl();
+ return setup;
}
/**
@@ -229,10 +309,10 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
- public GitClone createGitClone()
+ public WorkingSetTask createWorkingSetTask()
{
- GitCloneImpl gitClone = new GitCloneImpl();
- return gitClone;
+ WorkingSetTaskImpl workingSetTask = new WorkingSetTaskImpl();
+ return workingSetTask;
}
/**
@@ -240,10 +320,43 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
- public Setup createSetup()
+ public ResourceCopyTask createResourceCopyTask()
{
- SetupImpl setup = new SetupImpl();
- return setup;
+ ResourceCopyTaskImpl resourceCopyTask = new ResourceCopyTaskImpl();
+ return resourceCopyTask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TextModifyTask createTextModifyTask()
+ {
+ TextModifyTaskImpl textModifyTask = new TextModifyTaskImpl();
+ return textModifyTask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public TextModification createTextModification()
+ {
+ TextModificationImpl textModification = new TextModificationImpl();
+ return textModification;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EclipseIniTask createEclipseIniTask()
+ {
+ EclipseIniTaskImpl eclipseIniTask = new EclipseIniTaskImpl();
+ return eclipseIniTask;
}
/**
@@ -251,10 +364,13 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
- public ToolPreference createToolPreference()
+ public SetupTaskScope createSetupTaskScopeFromString(EDataType eDataType, String initialValue)
{
- ToolPreferenceImpl toolPreference = new ToolPreferenceImpl();
- return toolPreference;
+ SetupTaskScope result = SetupTaskScope.get(initialValue);
+ if (result == null)
+ throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '"
+ + eDataType.getName() + "'");
+ return result;
}
/**
@@ -262,10 +378,66 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
- public LinkLocation createLinkLocation()
+ public String convertSetupTaskScopeToString(EDataType eDataType, Object instanceValue)
{
- LinkLocationImpl linkLocation = new LinkLocationImpl();
- return linkLocation;
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Trigger createTriggerFromString(EDataType eDataType, String initialValue)
+ {
+ Trigger result = Trigger.get(initialValue);
+ if (result == null)
+ throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '"
+ + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertTriggerToString(EDataType eDataType, Object instanceValue)
+ {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public CompoundSetupTask createCompoundSetupTask()
+ {
+ CompoundSetupTaskImpl compoundSetupTask = new CompoundSetupTaskImpl();
+ return compoundSetupTask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public BuckminsterImportTask createBuckminsterImportTask()
+ {
+ BuckminsterImportTaskImpl buckminsterImportTask = new BuckminsterImportTaskImpl();
+ return buckminsterImportTask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public StringVariableTask createStringVariableTask()
+ {
+ StringVariableTaskImpl stringVariableTask = new StringVariableTaskImpl();
+ return stringVariableTask;
}
/**
@@ -284,6 +456,28 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
+ public LinkLocationTask createLinkLocationTask()
+ {
+ LinkLocationTaskImpl linkLocationTask = new LinkLocationTaskImpl();
+ return linkLocationTask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EclipsePreferenceTask createEclipsePreferenceTask()
+ {
+ EclipsePreferenceTaskImpl eclipsePreferenceTask = new EclipsePreferenceTaskImpl();
+ return eclipsePreferenceTask;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public URI createURIFromString(EDataType eDataType, String initialValue)
{
return (URI)super.createFromString(eDataType, initialValue);
@@ -304,6 +498,64 @@ public class SetupFactoryImpl extends EFactoryImpl implements SetupFactory
* <!-- end-user-doc -->
* @generated
*/
+ public Exception createExceptionFromString(EDataType eDataType, String initialValue)
+ {
+ return (Exception)super.createFromString(eDataType, initialValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String convertExceptionToString(EDataType eDataType, Object instanceValue)
+ {
+ return super.convertToString(eDataType, instanceValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Set<Trigger> createTriggerSetFromString(EDataType eDataType, String initialValue)
+ {
+ if (initialValue == null)
+ {
+ return null;
+ }
+
+ Set<Trigger> result = new HashSet<Trigger>();
+ for (String value : split(initialValue))
+ {
+ result.add(Trigger.get(value));
+ }
+
+ return Trigger.intern(result);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String convertTriggerSetToString(EDataType eDataType, Object instanceValue)
+ {
+ if (instanceValue == null)
+ {
+ return null;
+ }
+
+ @SuppressWarnings("unchecked")
+ Set<Trigger> triggerSet = (Set<Trigger>)instanceValue;
+ return Trigger.LITERALS.get(triggerSet);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public SetupPackage getSetupPackage()
{
return (SetupPackage)getEPackage();
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java
index c61306de5d..b4bb261357 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupImpl.java
@@ -10,23 +10,24 @@
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import java.util.Collection;
import org.eclipse.emf.cdo.releng.setup.Branch;
+import org.eclipse.emf.cdo.releng.setup.ConfigurableItem;
import org.eclipse.emf.cdo.releng.setup.EclipseVersion;
-import org.eclipse.emf.cdo.releng.setup.P2Repository;
import org.eclipse.emf.cdo.releng.setup.Preferences;
+import org.eclipse.emf.cdo.releng.setup.Project;
import org.eclipse.emf.cdo.releng.setup.Setup;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.BasicEList;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
/**
* <!-- begin-user-doc -->
@@ -38,7 +39,6 @@ import org.eclipse.emf.ecore.util.InternalEList;
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl#getBranch <em>Branch</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl#getEclipseVersion <em>Eclipse Version</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl#getPreferences <em>Preferences</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupImpl#getUpdateLocations <em>Update Locations</em>}</li>
* </ul>
* </p>
*
@@ -67,7 +67,7 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
protected EclipseVersion eclipseVersion;
/**
- * The cached value of the '{@link #getPreferences() <em>Preferences</em>}' containment reference.
+ * The cached value of the '{@link #getPreferences() <em>Preferences</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getPreferences()
@@ -77,16 +77,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
protected Preferences preferences;
/**
- * The cached value of the '{@link #getUpdateLocations() <em>Update Locations</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getUpdateLocations()
- * @generated
- * @ordered
- */
- protected EList<P2Repository> updateLocations;
-
- /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -202,6 +192,17 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
*/
public Preferences getPreferences()
{
+ if (preferences != null && preferences.eIsProxy())
+ {
+ InternalEObject oldPreferences = (InternalEObject)preferences;
+ preferences = (Preferences)eResolveProxy(oldPreferences);
+ if (preferences != oldPreferences)
+ {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, SetupPackage.SETUP__PREFERENCES, oldPreferences,
+ preferences));
+ }
+ }
return preferences;
}
@@ -210,20 +211,9 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
* <!-- end-user-doc -->
* @generated
*/
- public NotificationChain basicSetPreferences(Preferences newPreferences, NotificationChain msgs)
+ public Preferences basicGetPreferences()
{
- Preferences oldPreferences = preferences;
- preferences = newPreferences;
- if (eNotificationRequired())
- {
- ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SetupPackage.SETUP__PREFERENCES,
- oldPreferences, newPreferences);
- if (msgs == null)
- msgs = notification;
- else
- msgs.add(notification);
- }
- return msgs;
+ return preferences;
}
/**
@@ -233,55 +223,59 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
*/
public void setPreferences(Preferences newPreferences)
{
- if (newPreferences != preferences)
- {
- NotificationChain msgs = null;
- if (preferences != null)
- msgs = ((InternalEObject)preferences).eInverseRemove(this, EOPPOSITE_FEATURE_BASE
- - SetupPackage.SETUP__PREFERENCES, null, msgs);
- if (newPreferences != null)
- msgs = ((InternalEObject)newPreferences).eInverseAdd(this, EOPPOSITE_FEATURE_BASE
- - SetupPackage.SETUP__PREFERENCES, null, msgs);
- msgs = basicSetPreferences(newPreferences, msgs);
- if (msgs != null)
- msgs.dispatch();
- }
- else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.SETUP__PREFERENCES, newPreferences,
- newPreferences));
+ Preferences oldPreferences = preferences;
+ preferences = newPreferences;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.SETUP__PREFERENCES, oldPreferences,
+ preferences));
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @generated
+ * @generated NOT
*/
- public EList<P2Repository> getUpdateLocations()
+ public EList<SetupTask> getSetupTasks(boolean filterRestrictions, Trigger trigger)
{
- if (updateLocations == null)
- {
- updateLocations = new EObjectContainmentEList<P2Repository>(P2Repository.class, this,
- SetupPackage.SETUP__UPDATE_LOCATIONS);
- }
- return updateLocations;
+ EList<SetupTask> setupTasks = new BasicEList<SetupTask>();
+
+ Preferences preferences = getPreferences();
+ getSetupTasks(filterRestrictions, trigger, setupTasks, preferences);
+
+ Branch branch = getBranch();
+ getSetupTasks(filterRestrictions, trigger, setupTasks, branch);
+
+ Project project = branch.getProject();
+ getSetupTasks(filterRestrictions, trigger, setupTasks, project);
+
+ EclipseVersion eclipseVersion = getEclipseVersion();
+ getSetupTasks(filterRestrictions, trigger, setupTasks, eclipseVersion);
+
+ return setupTasks;
}
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ private void getSetupTasks(boolean filterRestrictions, Trigger trigger, EList<SetupTask> setupTasks,
+ SetupTaskContainer setupTaskContainer)
{
- switch (featureID)
+ Branch branch = getBranch();
+ Project project = branch.getProject();
+
+ for (SetupTask setupTask : setupTaskContainer.getSetupTasks())
{
- case SetupPackage.SETUP__PREFERENCES:
- return basicSetPreferences(null, msgs);
- case SetupPackage.SETUP__UPDATE_LOCATIONS:
- return ((InternalEList<?>)getUpdateLocations()).basicRemove(otherEnd, msgs);
+ if (setupTask.getTriggers().contains(trigger))
+ {
+ EList<ConfigurableItem> restrictions = setupTask.getRestrictions();
+ if (!restrictions.isEmpty())
+ {
+ if (!restrictions.contains(branch) && !restrictions.contains(project))
+ {
+ continue;
+ }
+ }
+
+ setupTasks.add(setupTask);
+ }
}
- return super.eInverseRemove(otherEnd, featureID, msgs);
}
/**
@@ -303,9 +297,9 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
return getEclipseVersion();
return basicGetEclipseVersion();
case SetupPackage.SETUP__PREFERENCES:
- return getPreferences();
- case SetupPackage.SETUP__UPDATE_LOCATIONS:
- return getUpdateLocations();
+ if (resolve)
+ return getPreferences();
+ return basicGetPreferences();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -315,7 +309,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
* <!-- end-user-doc -->
* @generated
*/
- @SuppressWarnings("unchecked")
@Override
public void eSet(int featureID, Object newValue)
{
@@ -330,10 +323,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
case SetupPackage.SETUP__PREFERENCES:
setPreferences((Preferences)newValue);
return;
- case SetupPackage.SETUP__UPDATE_LOCATIONS:
- getUpdateLocations().clear();
- getUpdateLocations().addAll((Collection<? extends P2Repository>)newValue);
- return;
}
super.eSet(featureID, newValue);
}
@@ -357,9 +346,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
case SetupPackage.SETUP__PREFERENCES:
setPreferences((Preferences)null);
return;
- case SetupPackage.SETUP__UPDATE_LOCATIONS:
- getUpdateLocations().clear();
- return;
}
super.eUnset(featureID);
}
@@ -380,8 +366,6 @@ public class SetupImpl extends MinimalEObjectImpl.Container implements Setup
return eclipseVersion != null;
case SetupPackage.SETUP__PREFERENCES:
return preferences != null;
- case SetupPackage.SETUP__UPDATE_LOCATIONS:
- return updateLocations != null && !updateLocations.isEmpty();
}
return super.eIsSet(featureID);
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java
index d08b90ff97..4305ebc213 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupPackageImpl.java
@@ -10,31 +10,48 @@
*/
package org.eclipse.emf.cdo.releng.setup.impl;
-import org.eclipse.emf.cdo.releng.setup.ApiBaseline;
+import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask;
import org.eclipse.emf.cdo.releng.setup.Branch;
+import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask;
+import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask;
+import org.eclipse.emf.cdo.releng.setup.ConfigurableItem;
import org.eclipse.emf.cdo.releng.setup.Configuration;
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
+import org.eclipse.emf.cdo.releng.setup.EclipseIniTask;
+import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask;
import org.eclipse.emf.cdo.releng.setup.EclipseVersion;
-import org.eclipse.emf.cdo.releng.setup.GitClone;
+import org.eclipse.emf.cdo.releng.setup.GitCloneTask;
import org.eclipse.emf.cdo.releng.setup.InstallableUnit;
-import org.eclipse.emf.cdo.releng.setup.LinkLocation;
+import org.eclipse.emf.cdo.releng.setup.LinkLocationTask;
+import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask;
import org.eclipse.emf.cdo.releng.setup.P2Repository;
+import org.eclipse.emf.cdo.releng.setup.P2Task;
import org.eclipse.emf.cdo.releng.setup.Preferences;
import org.eclipse.emf.cdo.releng.setup.Project;
+import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask;
import org.eclipse.emf.cdo.releng.setup.Setup;
import org.eclipse.emf.cdo.releng.setup.SetupFactory;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.setup.ToolInstallation;
-import org.eclipse.emf.cdo.releng.setup.ToolPreference;
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskScope;
+import org.eclipse.emf.cdo.releng.setup.StringVariableTask;
+import org.eclipse.emf.cdo.releng.setup.TextModification;
+import org.eclipse.emf.cdo.releng.setup.TextModifyTask;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+import org.eclipse.emf.cdo.releng.setup.WorkingSetTask;
import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage;
+
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.impl.EPackageImpl;
+import java.util.Set;
+
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Package</b>.
@@ -69,7 +86,14 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- private EClass toolInstallationEClass = null;
+ private EClass apiBaselineTaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass gitCloneTaskEClass = null;
/**
* <!-- begin-user-doc -->
@@ -83,7 +107,14 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- private EClass directorCallEClass = null;
+ private EClass p2TaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass stringVariableTaskEClass = null;
/**
* <!-- begin-user-doc -->
@@ -104,35 +135,91 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- private EClass apiBaselineEClass = null;
+ private EClass setupEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- private EClass gitCloneEClass = null;
+ private EClass setupTaskEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- private EClass setupEClass = null;
+ private EClass workingSetTaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass resourceCopyTaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass textModifyTaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass textModificationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eclipseIniTaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum setupTaskScopeEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EEnum triggerEEnum = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass compoundSetupTaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass oneTimeSetupTaskEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- private EClass toolPreferenceEClass = null;
+ private EClass configurableItemEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- private EClass linkLocationEClass = null;
+ private EClass buckminsterImportTaskEClass = null;
/**
* <!-- begin-user-doc -->
@@ -146,9 +233,44 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
+ private EClass linkLocationTaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass setupTaskContainerEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass eclipsePreferenceTaskEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
private EDataType uriEDataType = null;
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType exceptionEDataType = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EDataType triggerSetEDataType = null;
+
+ /**
* Creates an instance of the model <b>Package</b>, registered with
* {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
* package URI value.
@@ -157,7 +279,7 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* initialization of the package, or returns the registered package,
* if one already exists.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
+ * <!-- end-user-doc -->
* @see org.eclipse.emf.ecore.EPackage.Registry
* @see org.eclipse.emf.cdo.releng.setup.SetupPackage#eNS_URI
* @see #init()
@@ -287,12 +409,12 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
/**
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
+ * <!-- end-user-doc -->
* @generated
*/
- public EReference getProject_ApiBaselines()
+ public EClass getBranch()
{
- return (EReference)projectEClass.getEStructuralFeatures().get(3);
+ return branchEClass;
}
/**
@@ -300,19 +422,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getProject_WorkingSetGroup()
- {
- return (EReference)projectEClass.getEStructuralFeatures().get(4);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EClass getBranch()
+ public EReference getBranch_Project()
{
- return branchEClass;
+ return (EReference)branchEClass.getEStructuralFeatures().get(0);
}
/**
@@ -320,9 +432,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getBranch_Project()
+ public EAttribute getBranch_Name()
{
- return (EReference)branchEClass.getEStructuralFeatures().get(0);
+ return (EAttribute)branchEClass.getEStructuralFeatures().get(1);
}
/**
@@ -330,9 +442,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getBranch_Name()
+ public EClass getApiBaselineTask()
{
- return (EAttribute)branchEClass.getEStructuralFeatures().get(1);
+ return apiBaselineTaskEClass;
}
/**
@@ -340,9 +452,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getBranch_GitClones()
+ public EAttribute getApiBaselineTask_Version()
{
- return (EReference)branchEClass.getEStructuralFeatures().get(2);
+ return (EAttribute)apiBaselineTaskEClass.getEStructuralFeatures().get(0);
}
/**
@@ -350,9 +462,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getBranch_ApiBaseline()
+ public EAttribute getApiBaselineTask_ZipLocation()
{
- return (EReference)branchEClass.getEStructuralFeatures().get(3);
+ return (EAttribute)apiBaselineTaskEClass.getEStructuralFeatures().get(1);
}
/**
@@ -360,9 +472,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getBranch_MspecFilePath()
+ public EClass getGitCloneTask()
{
- return (EAttribute)branchEClass.getEStructuralFeatures().get(4);
+ return gitCloneTaskEClass;
}
/**
@@ -370,9 +482,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getBranch_CloneVariableName()
+ public EAttribute getGitCloneTask_Name()
{
- return (EAttribute)branchEClass.getEStructuralFeatures().get(5);
+ return (EAttribute)gitCloneTaskEClass.getEStructuralFeatures().get(0);
}
/**
@@ -380,9 +492,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EClass getToolInstallation()
+ public EAttribute getGitCloneTask_RemoteName()
{
- return toolInstallationEClass;
+ return (EAttribute)gitCloneTaskEClass.getEStructuralFeatures().get(1);
}
/**
@@ -390,9 +502,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getToolInstallation_DirectorCalls()
+ public EAttribute getGitCloneTask_RemoteURI()
{
- return (EReference)toolInstallationEClass.getEStructuralFeatures().get(0);
+ return (EAttribute)gitCloneTaskEClass.getEStructuralFeatures().get(2);
}
/**
@@ -400,9 +512,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getToolInstallation_ToolPreferences()
+ public EAttribute getGitCloneTask_CheckoutBranch()
{
- return (EReference)toolInstallationEClass.getEStructuralFeatures().get(1);
+ return (EAttribute)gitCloneTaskEClass.getEStructuralFeatures().get(3);
}
/**
@@ -440,9 +552,19 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getEclipseVersion_DirectorCall()
+ public EClass getP2Task()
+ {
+ return p2TaskEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getP2Task_InstallableUnits()
{
- return (EReference)eclipseVersionEClass.getEStructuralFeatures().get(2);
+ return (EReference)p2TaskEClass.getEStructuralFeatures().get(1);
}
/**
@@ -450,9 +572,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EClass getDirectorCall()
+ public EReference getP2Task_P2Repositories()
{
- return directorCallEClass;
+ return (EReference)p2TaskEClass.getEStructuralFeatures().get(0);
}
/**
@@ -460,9 +582,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getDirectorCall_InstallableUnits()
+ public EClass getStringVariableTask()
{
- return (EReference)directorCallEClass.getEStructuralFeatures().get(0);
+ return stringVariableTaskEClass;
}
/**
@@ -470,9 +592,29 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getDirectorCall_P2Repositories()
+ public EAttribute getStringVariableTask_Name()
{
- return (EReference)directorCallEClass.getEStructuralFeatures().get(1);
+ return (EAttribute)stringVariableTaskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStringVariableTask_Value()
+ {
+ return (EAttribute)stringVariableTaskEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getStringVariableTask_Description()
+ {
+ return (EAttribute)stringVariableTaskEClass.getEStructuralFeatures().get(2);
}
/**
@@ -490,7 +632,7 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getInstallableUnit_DirectorCall()
+ public EReference getInstallableUnit_P2Task()
{
return (EReference)installableUnitEClass.getEStructuralFeatures().get(0);
}
@@ -520,7 +662,7 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getP2Repository_DirectorCall()
+ public EReference getP2Repository_P2Task()
{
return (EReference)p2RepositoryEClass.getEStructuralFeatures().get(0);
}
@@ -540,9 +682,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EClass getApiBaseline()
+ public EClass getSetup()
{
- return apiBaselineEClass;
+ return setupEClass;
}
/**
@@ -550,9 +692,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getApiBaseline_Project()
+ public EReference getSetup_Branch()
{
- return (EReference)apiBaselineEClass.getEStructuralFeatures().get(0);
+ return (EReference)setupEClass.getEStructuralFeatures().get(0);
}
/**
@@ -560,9 +702,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getApiBaseline_Version()
+ public EReference getSetup_EclipseVersion()
{
- return (EAttribute)apiBaselineEClass.getEStructuralFeatures().get(1);
+ return (EReference)setupEClass.getEStructuralFeatures().get(1);
}
/**
@@ -570,9 +712,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getApiBaseline_ZipLocation()
+ public EReference getSetup_Preferences()
{
- return (EAttribute)apiBaselineEClass.getEStructuralFeatures().get(2);
+ return (EReference)setupEClass.getEStructuralFeatures().get(2);
}
/**
@@ -580,9 +722,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EClass getGitClone()
+ public EClass getSetupTask()
{
- return gitCloneEClass;
+ return setupTaskEClass;
}
/**
@@ -590,9 +732,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getGitClone_Branch()
+ public EReference getSetupTask_Requirements()
{
- return (EReference)gitCloneEClass.getEStructuralFeatures().get(0);
+ return (EReference)setupTaskEClass.getEStructuralFeatures().get(0);
}
/**
@@ -600,9 +742,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getGitClone_Name()
+ public EReference getSetupTask_Restrictions()
{
- return (EAttribute)gitCloneEClass.getEStructuralFeatures().get(1);
+ return (EReference)setupTaskEClass.getEStructuralFeatures().get(1);
}
/**
@@ -610,9 +752,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getGitClone_RemoteURI()
+ public EAttribute getSetupTask_Scope()
{
- return (EAttribute)gitCloneEClass.getEStructuralFeatures().get(2);
+ return (EAttribute)setupTaskEClass.getEStructuralFeatures().get(2);
}
/**
@@ -620,9 +762,19 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getGitClone_CheckoutBranch()
+ public EAttribute getSetupTask_ExcludedTriggers()
+ {
+ return (EAttribute)setupTaskEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getWorkingSetTask()
{
- return (EAttribute)gitCloneEClass.getEStructuralFeatures().get(3);
+ return workingSetTaskEClass;
}
/**
@@ -630,9 +782,109 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EClass getSetup()
+ public EReference getWorkingSetTask_WorkingSets()
{
- return setupEClass;
+ return (EReference)workingSetTaskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getResourceCopyTask()
+ {
+ return resourceCopyTaskEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getResourceCopyTask_SourceURL()
+ {
+ return (EAttribute)resourceCopyTaskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getResourceCopyTask_TargetURL()
+ {
+ return (EAttribute)resourceCopyTaskEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTextModifyTask()
+ {
+ return textModifyTaskEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTextModifyTask_Url()
+ {
+ return (EAttribute)textModifyTaskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getTextModifyTask_Modifications()
+ {
+ return (EReference)textModifyTaskEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getTextModification()
+ {
+ return textModificationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTextModification_Pattern()
+ {
+ return (EAttribute)textModificationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getTextModification_Substitutions()
+ {
+ return (EAttribute)textModificationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEclipseIniTask()
+ {
+ return eclipseIniTaskEClass;
}
/**
@@ -640,9 +892,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getSetup_Branch()
+ public EAttribute getEclipseIniTask_Option()
{
- return (EReference)setupEClass.getEStructuralFeatures().get(0);
+ return (EAttribute)eclipseIniTaskEClass.getEStructuralFeatures().get(0);
}
/**
@@ -650,9 +902,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getSetup_EclipseVersion()
+ public EAttribute getEclipseIniTask_Value()
{
- return (EReference)setupEClass.getEStructuralFeatures().get(1);
+ return (EAttribute)eclipseIniTaskEClass.getEStructuralFeatures().get(1);
}
/**
@@ -660,9 +912,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getSetup_Preferences()
+ public EAttribute getEclipseIniTask_Vm()
{
- return (EReference)setupEClass.getEStructuralFeatures().get(2);
+ return (EAttribute)eclipseIniTaskEClass.getEStructuralFeatures().get(2);
}
/**
@@ -670,9 +922,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getSetup_UpdateLocations()
+ public EEnum getSetupTaskScope()
{
- return (EReference)setupEClass.getEStructuralFeatures().get(3);
+ return setupTaskScopeEEnum;
}
/**
@@ -680,9 +932,19 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EClass getToolPreference()
+ public EEnum getTrigger()
{
- return toolPreferenceEClass;
+ return triggerEEnum;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getCompoundSetupTask()
+ {
+ return compoundSetupTaskEClass;
}
/**
@@ -690,9 +952,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getToolPreference_Key()
+ public EAttribute getCompoundSetupTask_Name()
{
- return (EAttribute)toolPreferenceEClass.getEStructuralFeatures().get(0);
+ return (EAttribute)compoundSetupTaskEClass.getEStructuralFeatures().get(0);
}
/**
@@ -700,9 +962,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getToolPreference_Value()
+ public EClass getOneTimeSetupTask()
{
- return (EAttribute)toolPreferenceEClass.getEStructuralFeatures().get(1);
+ return oneTimeSetupTaskEClass;
}
/**
@@ -710,9 +972,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EClass getLinkLocation()
+ public EAttribute getOneTimeSetupTask_Id()
{
- return linkLocationEClass;
+ return (EAttribute)oneTimeSetupTaskEClass.getEStructuralFeatures().get(0);
}
/**
@@ -720,9 +982,9 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getLinkLocation_Path()
+ public EClass getConfigurableItem()
{
- return (EAttribute)linkLocationEClass.getEStructuralFeatures().get(0);
+ return configurableItemEClass;
}
/**
@@ -730,9 +992,39 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getLinkLocation_Name()
+ public EClass getBuckminsterImportTask()
{
- return (EAttribute)linkLocationEClass.getEStructuralFeatures().get(1);
+ return buckminsterImportTaskEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBuckminsterImportTask_Mspec()
+ {
+ return (EAttribute)buckminsterImportTaskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBuckminsterImportTask_TargetPlatform()
+ {
+ return (EAttribute)buckminsterImportTaskEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getBuckminsterImportTask_BundlePool()
+ {
+ return (EAttribute)buckminsterImportTaskEClass.getEStructuralFeatures().get(2);
}
/**
@@ -780,9 +1072,79 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
- public EReference getPreferences_LinkLocations()
+ public EClass getLinkLocationTask()
+ {
+ return linkLocationTaskEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinkLocationTask_Path()
+ {
+ return (EAttribute)linkLocationTaskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLinkLocationTask_Name()
+ {
+ return (EAttribute)linkLocationTaskEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getSetupTaskContainer()
+ {
+ return setupTaskContainerEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getSetupTaskContainer_SetupTasks()
+ {
+ return (EReference)setupTaskContainerEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getEclipsePreferenceTask()
+ {
+ return eclipsePreferenceTaskEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEclipsePreferenceTask_Key()
{
- return (EReference)preferencesEClass.getEStructuralFeatures().get(3);
+ return (EAttribute)eclipsePreferenceTaskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getEclipsePreferenceTask_Value()
+ {
+ return (EAttribute)eclipsePreferenceTaskEClass.getEStructuralFeatures().get(1);
}
/**
@@ -800,6 +1162,26 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
* <!-- end-user-doc -->
* @generated
*/
+ public EDataType getException()
+ {
+ return exceptionEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EDataType getTriggerSet()
+ {
+ return triggerSetEDataType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public SetupFactory getSetupFactory()
{
return (SetupFactory)getEFactoryInstance();
@@ -826,79 +1208,118 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
isCreated = true;
// Create classes and their features
- preferencesEClass = createEClass(PREFERENCES);
- createEAttribute(preferencesEClass, PREFERENCES__USER_NAME);
- createEAttribute(preferencesEClass, PREFERENCES__INSTALL_FOLDER);
- createEAttribute(preferencesEClass, PREFERENCES__GIT_PREFIX);
- createEReference(preferencesEClass, PREFERENCES__LINK_LOCATIONS);
-
- linkLocationEClass = createEClass(LINK_LOCATION);
- createEAttribute(linkLocationEClass, LINK_LOCATION__PATH);
- createEAttribute(linkLocationEClass, LINK_LOCATION__NAME);
-
- toolInstallationEClass = createEClass(TOOL_INSTALLATION);
- createEReference(toolInstallationEClass, TOOL_INSTALLATION__DIRECTOR_CALLS);
- createEReference(toolInstallationEClass, TOOL_INSTALLATION__TOOL_PREFERENCES);
-
- toolPreferenceEClass = createEClass(TOOL_PREFERENCE);
- createEAttribute(toolPreferenceEClass, TOOL_PREFERENCE__KEY);
- createEAttribute(toolPreferenceEClass, TOOL_PREFERENCE__VALUE);
-
eclipseVersionEClass = createEClass(ECLIPSE_VERSION);
createEReference(eclipseVersionEClass, ECLIPSE_VERSION__CONFIGURATION);
createEAttribute(eclipseVersionEClass, ECLIPSE_VERSION__VERSION);
- createEReference(eclipseVersionEClass, ECLIPSE_VERSION__DIRECTOR_CALL);
-
- directorCallEClass = createEClass(DIRECTOR_CALL);
- createEReference(directorCallEClass, DIRECTOR_CALL__INSTALLABLE_UNITS);
- createEReference(directorCallEClass, DIRECTOR_CALL__P2_REPOSITORIES);
-
- installableUnitEClass = createEClass(INSTALLABLE_UNIT);
- createEReference(installableUnitEClass, INSTALLABLE_UNIT__DIRECTOR_CALL);
- createEAttribute(installableUnitEClass, INSTALLABLE_UNIT__ID);
-
- p2RepositoryEClass = createEClass(P2_REPOSITORY);
- createEReference(p2RepositoryEClass, P2_REPOSITORY__DIRECTOR_CALL);
- createEAttribute(p2RepositoryEClass, P2_REPOSITORY__URL);
configurationEClass = createEClass(CONFIGURATION);
createEReference(configurationEClass, CONFIGURATION__PROJECTS);
createEReference(configurationEClass, CONFIGURATION__ECLIPSE_VERSIONS);
+ configurableItemEClass = createEClass(CONFIGURABLE_ITEM);
+
projectEClass = createEClass(PROJECT);
createEReference(projectEClass, PROJECT__CONFIGURATION);
createEReference(projectEClass, PROJECT__BRANCHES);
createEAttribute(projectEClass, PROJECT__NAME);
- createEReference(projectEClass, PROJECT__API_BASELINES);
- createEReference(projectEClass, PROJECT__WORKING_SET_GROUP);
branchEClass = createEClass(BRANCH);
createEReference(branchEClass, BRANCH__PROJECT);
createEAttribute(branchEClass, BRANCH__NAME);
- createEReference(branchEClass, BRANCH__GIT_CLONES);
- createEReference(branchEClass, BRANCH__API_BASELINE);
- createEAttribute(branchEClass, BRANCH__MSPEC_FILE_PATH);
- createEAttribute(branchEClass, BRANCH__CLONE_VARIABLE_NAME);
-
- apiBaselineEClass = createEClass(API_BASELINE);
- createEReference(apiBaselineEClass, API_BASELINE__PROJECT);
- createEAttribute(apiBaselineEClass, API_BASELINE__VERSION);
- createEAttribute(apiBaselineEClass, API_BASELINE__ZIP_LOCATION);
-
- gitCloneEClass = createEClass(GIT_CLONE);
- createEReference(gitCloneEClass, GIT_CLONE__BRANCH);
- createEAttribute(gitCloneEClass, GIT_CLONE__NAME);
- createEAttribute(gitCloneEClass, GIT_CLONE__REMOTE_URI);
- createEAttribute(gitCloneEClass, GIT_CLONE__CHECKOUT_BRANCH);
+
+ preferencesEClass = createEClass(PREFERENCES);
+ createEAttribute(preferencesEClass, PREFERENCES__USER_NAME);
+ createEAttribute(preferencesEClass, PREFERENCES__INSTALL_FOLDER);
+ createEAttribute(preferencesEClass, PREFERENCES__GIT_PREFIX);
setupEClass = createEClass(SETUP);
createEReference(setupEClass, SETUP__BRANCH);
createEReference(setupEClass, SETUP__ECLIPSE_VERSION);
createEReference(setupEClass, SETUP__PREFERENCES);
- createEReference(setupEClass, SETUP__UPDATE_LOCATIONS);
+
+ setupTaskEClass = createEClass(SETUP_TASK);
+ createEReference(setupTaskEClass, SETUP_TASK__REQUIREMENTS);
+ createEReference(setupTaskEClass, SETUP_TASK__RESTRICTIONS);
+ createEAttribute(setupTaskEClass, SETUP_TASK__SCOPE);
+ createEAttribute(setupTaskEClass, SETUP_TASK__EXCLUDED_TRIGGERS);
+
+ setupTaskContainerEClass = createEClass(SETUP_TASK_CONTAINER);
+ createEReference(setupTaskContainerEClass, SETUP_TASK_CONTAINER__SETUP_TASKS);
+
+ compoundSetupTaskEClass = createEClass(COMPOUND_SETUP_TASK);
+ createEAttribute(compoundSetupTaskEClass, COMPOUND_SETUP_TASK__NAME);
+
+ oneTimeSetupTaskEClass = createEClass(ONE_TIME_SETUP_TASK);
+ createEAttribute(oneTimeSetupTaskEClass, ONE_TIME_SETUP_TASK__ID);
+
+ eclipseIniTaskEClass = createEClass(ECLIPSE_INI_TASK);
+ createEAttribute(eclipseIniTaskEClass, ECLIPSE_INI_TASK__OPTION);
+ createEAttribute(eclipseIniTaskEClass, ECLIPSE_INI_TASK__VALUE);
+ createEAttribute(eclipseIniTaskEClass, ECLIPSE_INI_TASK__VM);
+
+ linkLocationTaskEClass = createEClass(LINK_LOCATION_TASK);
+ createEAttribute(linkLocationTaskEClass, LINK_LOCATION_TASK__PATH);
+ createEAttribute(linkLocationTaskEClass, LINK_LOCATION_TASK__NAME);
+
+ p2TaskEClass = createEClass(P2_TASK);
+ createEReference(p2TaskEClass, P2_TASK__P2_REPOSITORIES);
+ createEReference(p2TaskEClass, P2_TASK__INSTALLABLE_UNITS);
+
+ installableUnitEClass = createEClass(INSTALLABLE_UNIT);
+ createEReference(installableUnitEClass, INSTALLABLE_UNIT__P2_TASK);
+ createEAttribute(installableUnitEClass, INSTALLABLE_UNIT__ID);
+
+ p2RepositoryEClass = createEClass(P2_REPOSITORY);
+ createEReference(p2RepositoryEClass, P2_REPOSITORY__P2_TASK);
+ createEAttribute(p2RepositoryEClass, P2_REPOSITORY__URL);
+
+ buckminsterImportTaskEClass = createEClass(BUCKMINSTER_IMPORT_TASK);
+ createEAttribute(buckminsterImportTaskEClass, BUCKMINSTER_IMPORT_TASK__MSPEC);
+ createEAttribute(buckminsterImportTaskEClass, BUCKMINSTER_IMPORT_TASK__TARGET_PLATFORM);
+ createEAttribute(buckminsterImportTaskEClass, BUCKMINSTER_IMPORT_TASK__BUNDLE_POOL);
+
+ apiBaselineTaskEClass = createEClass(API_BASELINE_TASK);
+ createEAttribute(apiBaselineTaskEClass, API_BASELINE_TASK__VERSION);
+ createEAttribute(apiBaselineTaskEClass, API_BASELINE_TASK__ZIP_LOCATION);
+
+ gitCloneTaskEClass = createEClass(GIT_CLONE_TASK);
+ createEAttribute(gitCloneTaskEClass, GIT_CLONE_TASK__NAME);
+ createEAttribute(gitCloneTaskEClass, GIT_CLONE_TASK__REMOTE_NAME);
+ createEAttribute(gitCloneTaskEClass, GIT_CLONE_TASK__REMOTE_URI);
+ createEAttribute(gitCloneTaskEClass, GIT_CLONE_TASK__CHECKOUT_BRANCH);
+
+ eclipsePreferenceTaskEClass = createEClass(ECLIPSE_PREFERENCE_TASK);
+ createEAttribute(eclipsePreferenceTaskEClass, ECLIPSE_PREFERENCE_TASK__KEY);
+ createEAttribute(eclipsePreferenceTaskEClass, ECLIPSE_PREFERENCE_TASK__VALUE);
+
+ stringVariableTaskEClass = createEClass(STRING_VARIABLE_TASK);
+ createEAttribute(stringVariableTaskEClass, STRING_VARIABLE_TASK__NAME);
+ createEAttribute(stringVariableTaskEClass, STRING_VARIABLE_TASK__VALUE);
+ createEAttribute(stringVariableTaskEClass, STRING_VARIABLE_TASK__DESCRIPTION);
+
+ workingSetTaskEClass = createEClass(WORKING_SET_TASK);
+ createEReference(workingSetTaskEClass, WORKING_SET_TASK__WORKING_SETS);
+
+ resourceCopyTaskEClass = createEClass(RESOURCE_COPY_TASK);
+ createEAttribute(resourceCopyTaskEClass, RESOURCE_COPY_TASK__SOURCE_URL);
+ createEAttribute(resourceCopyTaskEClass, RESOURCE_COPY_TASK__TARGET_URL);
+
+ textModifyTaskEClass = createEClass(TEXT_MODIFY_TASK);
+ createEAttribute(textModifyTaskEClass, TEXT_MODIFY_TASK__URL);
+ createEReference(textModifyTaskEClass, TEXT_MODIFY_TASK__MODIFICATIONS);
+
+ textModificationEClass = createEClass(TEXT_MODIFICATION);
+ createEAttribute(textModificationEClass, TEXT_MODIFICATION__PATTERN);
+ createEAttribute(textModificationEClass, TEXT_MODIFICATION__SUBSTITUTIONS);
+
+ // Create enums
+ setupTaskScopeEEnum = createEEnum(SETUP_TASK_SCOPE);
+ triggerEEnum = createEEnum(TRIGGER);
// Create data types
uriEDataType = createEDataType(URI);
+ exceptionEDataType = createEDataType(EXCEPTION);
+ triggerSetEDataType = createEDataType(TRIGGER_SET);
}
/**
@@ -935,11 +1356,65 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
// Set bounds for type parameters
// Add supertypes to classes
- preferencesEClass.getESuperTypes().add(this.getToolInstallation());
- projectEClass.getESuperTypes().add(this.getToolInstallation());
- branchEClass.getESuperTypes().add(this.getToolInstallation());
+ eclipseVersionEClass.getESuperTypes().add(this.getConfigurableItem());
+ configurableItemEClass.getESuperTypes().add(this.getSetupTaskContainer());
+ projectEClass.getESuperTypes().add(this.getConfigurableItem());
+ branchEClass.getESuperTypes().add(this.getConfigurableItem());
+ preferencesEClass.getESuperTypes().add(this.getSetupTaskContainer());
+ compoundSetupTaskEClass.getESuperTypes().add(this.getSetupTask());
+ compoundSetupTaskEClass.getESuperTypes().add(this.getSetupTaskContainer());
+ oneTimeSetupTaskEClass.getESuperTypes().add(this.getSetupTask());
+ eclipseIniTaskEClass.getESuperTypes().add(this.getSetupTask());
+ linkLocationTaskEClass.getESuperTypes().add(this.getSetupTask());
+ p2TaskEClass.getESuperTypes().add(this.getSetupTask());
+ buckminsterImportTaskEClass.getESuperTypes().add(this.getSetupTask());
+ apiBaselineTaskEClass.getESuperTypes().add(this.getSetupTask());
+ gitCloneTaskEClass.getESuperTypes().add(this.getSetupTask());
+ eclipsePreferenceTaskEClass.getESuperTypes().add(this.getSetupTask());
+ stringVariableTaskEClass.getESuperTypes().add(this.getSetupTask());
+ workingSetTaskEClass.getESuperTypes().add(this.getSetupTask());
+ resourceCopyTaskEClass.getESuperTypes().add(this.getSetupTask());
+ textModifyTaskEClass.getESuperTypes().add(this.getSetupTask());
// Initialize classes and features; add operations and parameters
+ initEClass(eclipseVersionEClass, EclipseVersion.class, "EclipseVersion", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getEclipseVersion_Configuration(), this.getConfiguration(), this.getConfiguration_EclipseVersions(),
+ "configuration", null, 0, 1, EclipseVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEclipseVersion_Version(), ecorePackage.getEString(), "version", null, 0, 1, EclipseVersion.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(configurationEClass, Configuration.class, "Configuration", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getConfiguration_Projects(), this.getProject(), this.getProject_Configuration(), "projects", null,
+ 1, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getConfiguration_EclipseVersions(), this.getEclipseVersion(),
+ this.getEclipseVersion_Configuration(), "eclipseVersions", null, 1, -1, Configuration.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+
+ initEClass(configurableItemEClass, ConfigurableItem.class, "ConfigurableItem", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(projectEClass, Project.class, "Project", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getProject_Configuration(), this.getConfiguration(), this.getConfiguration_Projects(),
+ "configuration", null, 0, 1, Project.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getProject_Branches(), this.getBranch(), this.getBranch_Project(), "branches", null, 1, -1,
+ Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProject_Name(), ecorePackage.getEString(), "name", null, 0, 1, Project.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(branchEClass, Branch.class, "Branch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getBranch_Project(), this.getProject(), this.getProject_Branches(), "project", null, 0, 1,
+ Branch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getBranch_Name(), ecorePackage.getEString(), "name", null, 0, 1, Branch.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
initEClass(preferencesEClass, Preferences.class, "Preferences", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getPreferences_UserName(), ecorePackage.getEString(), "userName", null, 0, 1, Preferences.class,
@@ -949,160 +1424,204 @@ public class SetupPackageImpl extends EPackageImpl implements SetupPackage
IS_ORDERED);
initEAttribute(getPreferences_GitPrefix(), ecorePackage.getEString(), "gitPrefix", null, 0, 1, Preferences.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getPreferences_LinkLocations(), this.getLinkLocation(), null, "linkLocations", null, 0, -1,
- Preferences.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+
+ initEClass(setupEClass, Setup.class, "Setup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSetup_Branch(), this.getBranch(), null, "branch", null, 1, 1, Setup.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+ initEReference(getSetup_EclipseVersion(), this.getEclipseVersion(), null, "eclipseVersion", null, 1, 1,
+ Setup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSetup_Preferences(), this.getPreferences(), null, "preferences", null, 1, 1, Setup.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+
+ EOperation op = addEOperation(setupEClass, this.getSetupTask(), "getSetupTasks", 0, -1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEBoolean(), "filterRestrictions", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getTrigger(), "trigger", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(setupTaskEClass, SetupTask.class, "SetupTask", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSetupTask_Requirements(), this.getSetupTask(), null, "requirements", null, 0, -1,
+ SetupTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getSetupTask_Restrictions(), this.getConfigurableItem(), null, "restrictions", null, 0, -1,
+ SetupTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSetupTask_Scope(), this.getSetupTaskScope(), "scope", null, 0, 1, SetupTask.class, IS_TRANSIENT,
+ IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEAttribute(getSetupTask_ExcludedTriggers(), this.getTriggerSet(), "excludedTriggers", "", 1, 1,
+ SetupTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+
+ op = addEOperation(setupTaskEClass, ecorePackage.getEBoolean(), "requires", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, this.getSetupTask(), "setupTask", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(setupTaskEClass, this.getTriggerSet(), "getValidTriggers", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+ addEOperation(setupTaskEClass, this.getTriggerSet(), "getTriggers", 1, 1, IS_UNIQUE, IS_ORDERED);
+
+ initEClass(setupTaskContainerEClass, SetupTaskContainer.class, "SetupTaskContainer", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getSetupTaskContainer_SetupTasks(), this.getSetupTask(), null, "setupTasks", null, 0, -1,
+ SetupTaskContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEClass(linkLocationEClass, LinkLocation.class, "LinkLocation", !IS_ABSTRACT, !IS_INTERFACE,
+ initEClass(compoundSetupTaskEClass, CompoundSetupTask.class, "CompoundSetupTask", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getLinkLocation_Path(), ecorePackage.getEString(), "path", null, 0, 1, LinkLocation.class,
- !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getLinkLocation_Name(), ecorePackage.getEString(), "name", null, 0, 1, LinkLocation.class,
+ initEAttribute(getCompoundSetupTask_Name(), ecorePackage.getEString(), "name", null, 0, 1, CompoundSetupTask.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEClass(toolInstallationEClass, ToolInstallation.class, "ToolInstallation", IS_ABSTRACT, !IS_INTERFACE,
+ initEClass(oneTimeSetupTaskEClass, OneTimeSetupTask.class, "OneTimeSetupTask", IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
- initEReference(getToolInstallation_DirectorCalls(), this.getDirectorCall(), null, "directorCalls", null, 0, -1,
- ToolInstallation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
- !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getToolInstallation_ToolPreferences(), this.getToolPreference(), null, "toolPreferences", null, 0,
- -1, ToolInstallation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
- !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getOneTimeSetupTask_Id(), ecorePackage.getEString(), "id", null, 1, 1, OneTimeSetupTask.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEClass(toolPreferenceEClass, ToolPreference.class, "ToolPreference", !IS_ABSTRACT, !IS_INTERFACE,
+ initEClass(eclipseIniTaskEClass, EclipseIniTask.class, "EclipseIniTask", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getToolPreference_Key(), ecorePackage.getEString(), "key", null, 0, 1, ToolPreference.class,
+ initEAttribute(getEclipseIniTask_Option(), ecorePackage.getEString(), "option", null, 0, 1, EclipseIniTask.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getToolPreference_Value(), ecorePackage.getEString(), "value", null, 0, 1, ToolPreference.class,
+ initEAttribute(getEclipseIniTask_Value(), ecorePackage.getEString(), "value", null, 0, 1, EclipseIniTask.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEclipseIniTask_Vm(), ecorePackage.getEBoolean(), "vm", null, 0, 1, EclipseIniTask.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEClass(eclipseVersionEClass, EclipseVersion.class, "EclipseVersion", !IS_ABSTRACT, !IS_INTERFACE,
+ initEClass(linkLocationTaskEClass, LinkLocationTask.class, "LinkLocationTask", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
- initEReference(getEclipseVersion_Configuration(), this.getConfiguration(), this.getConfiguration_EclipseVersions(),
- "configuration", null, 0, 1, EclipseVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
- !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getEclipseVersion_Version(), ecorePackage.getEString(), "version", null, 0, 1, EclipseVersion.class,
+ initEAttribute(getLinkLocationTask_Path(), ecorePackage.getEString(), "path", null, 0, 1, LinkLocationTask.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLinkLocationTask_Name(), ecorePackage.getEString(), "name", null, 0, 1, LinkLocationTask.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getEclipseVersion_DirectorCall(), this.getDirectorCall(), null, "directorCall", null, 1, 1,
- EclipseVersion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
- !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEClass(directorCallEClass, DirectorCall.class, "DirectorCall", !IS_ABSTRACT, !IS_INTERFACE,
- IS_GENERATED_INSTANCE_CLASS);
- initEReference(getDirectorCall_InstallableUnits(), this.getInstallableUnit(),
- this.getInstallableUnit_DirectorCall(), "installableUnits", null, 1, -1, DirectorCall.class, !IS_TRANSIENT,
- !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
- IS_ORDERED);
- initEReference(getDirectorCall_P2Repositories(), this.getP2Repository(), this.getP2Repository_DirectorCall(),
- "p2Repositories", null, 1, -1, DirectorCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
- !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEClass(p2TaskEClass, P2Task.class, "P2Task", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getP2Task_P2Repositories(), this.getP2Repository(), this.getP2Repository_P2Task(), "p2Repositories",
+ null, 1, -1, P2Task.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getP2Task_InstallableUnits(), this.getInstallableUnit(), this.getInstallableUnit_P2Task(),
+ "installableUnits", null, 1, -1, P2Task.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(installableUnitEClass, InstallableUnit.class, "InstallableUnit", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
- initEReference(getInstallableUnit_DirectorCall(), this.getDirectorCall(), this.getDirectorCall_InstallableUnits(),
- "directorCall", null, 0, 1, InstallableUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
- !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getInstallableUnit_P2Task(), this.getP2Task(), this.getP2Task_InstallableUnits(), "p2Task", null, 0,
+ 1, InstallableUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getInstallableUnit_Id(), ecorePackage.getEString(), "id", null, 0, 1, InstallableUnit.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(p2RepositoryEClass, P2Repository.class, "P2Repository", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
- initEReference(getP2Repository_DirectorCall(), this.getDirectorCall(), this.getDirectorCall_P2Repositories(),
- "directorCall", null, 0, 1, P2Repository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
- !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getP2Repository_P2Task(), this.getP2Task(), this.getP2Task_P2Repositories(), "p2Task", null, 0, 1,
+ P2Repository.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getP2Repository_Url(), ecorePackage.getEString(), "url", null, 0, 1, P2Repository.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEClass(configurationEClass, Configuration.class, "Configuration", !IS_ABSTRACT, !IS_INTERFACE,
- IS_GENERATED_INSTANCE_CLASS);
- initEReference(getConfiguration_Projects(), this.getProject(), this.getProject_Configuration(), "projects", null,
- 1, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
- !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getConfiguration_EclipseVersions(), this.getEclipseVersion(),
- this.getEclipseVersion_Configuration(), "eclipseVersions", null, 1, -1, Configuration.class, !IS_TRANSIENT,
- !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
- IS_ORDERED);
-
- initEClass(projectEClass, Project.class, "Project", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getProject_Configuration(), this.getConfiguration(), this.getConfiguration_Projects(),
- "configuration", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
- !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getProject_Branches(), this.getBranch(), this.getBranch_Project(), "branches", null, 1, -1,
- Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
- IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getProject_Name(), ecorePackage.getEString(), "name", null, 0, 1, Project.class, !IS_TRANSIENT,
- !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getProject_ApiBaselines(), this.getApiBaseline(), this.getApiBaseline_Project(), "apiBaselines",
- null, 0, -1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
- !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getProject_WorkingSetGroup(), theWorkingSetsPackage.getWorkingSetGroup(), null, "workingSetGroup",
- null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
- !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEClass(buckminsterImportTaskEClass, BuckminsterImportTask.class, "BuckminsterImportTask", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getBuckminsterImportTask_Mspec(), ecorePackage.getEString(), "mspec", null, 0, 1,
+ BuckminsterImportTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getBuckminsterImportTask_TargetPlatform(), ecorePackage.getEString(), "targetPlatform", null, 0, 1,
+ BuckminsterImportTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getBuckminsterImportTask_BundlePool(), ecorePackage.getEString(), "bundlePool", null, 0, 1,
+ BuckminsterImportTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
- initEClass(branchEClass, Branch.class, "Branch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getBranch_Project(), this.getProject(), this.getProject_Branches(), "project", null, 0, 1,
- Branch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
- IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getBranch_Name(), ecorePackage.getEString(), "name", null, 0, 1, Branch.class, !IS_TRANSIENT,
- !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getBranch_GitClones(), this.getGitClone(), this.getGitClone_Branch(), "gitClones", null, 1, -1,
- Branch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
- IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getBranch_ApiBaseline(), this.getApiBaseline(), null, "apiBaseline", null, 0, 1, Branch.class,
- !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+ initEClass(apiBaselineTaskEClass, ApiBaselineTask.class, "ApiBaselineTask", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getApiBaselineTask_Version(), ecorePackage.getEString(), "version", null, 0, 1,
+ ApiBaselineTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getApiBaselineTask_ZipLocation(), ecorePackage.getEString(), "zipLocation", null, 0, 1,
+ ApiBaselineTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
- initEAttribute(getBranch_MspecFilePath(), ecorePackage.getEString(), "mspecFilePath", null, 0, 1, Branch.class,
+
+ initEClass(gitCloneTaskEClass, GitCloneTask.class, "GitCloneTask", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getGitCloneTask_Name(), ecorePackage.getEString(), "name", null, 0, 1, GitCloneTask.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getBranch_CloneVariableName(), ecorePackage.getEString(), "cloneVariableName", null, 0, 1,
- Branch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+ initEAttribute(getGitCloneTask_RemoteName(), ecorePackage.getEString(), "remoteName", "origin", 0, 1,
+ GitCloneTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+ initEAttribute(getGitCloneTask_RemoteURI(), ecorePackage.getEString(), "remoteURI", null, 0, 1, GitCloneTask.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getGitCloneTask_CheckoutBranch(), ecorePackage.getEString(), "checkoutBranch", null, 0, 1,
+ GitCloneTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
- EOperation op = addEOperation(branchEClass, ecorePackage.getEBoolean(), "isInstalled", 0, 1, IS_UNIQUE, IS_ORDERED);
- addEParameter(op, ecorePackage.getEString(), "installFolder", 0, 1, IS_UNIQUE, IS_ORDERED);
+ initEClass(eclipsePreferenceTaskEClass, EclipsePreferenceTask.class, "EclipsePreferenceTask", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getEclipsePreferenceTask_Key(), ecorePackage.getEString(), "key", null, 0, 1,
+ EclipsePreferenceTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getEclipsePreferenceTask_Value(), ecorePackage.getEString(), "value", null, 0, 1,
+ EclipsePreferenceTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
- op = addEOperation(branchEClass, this.getURI(), "getURI", 0, 1, IS_UNIQUE, IS_ORDERED);
- addEParameter(op, ecorePackage.getEString(), "installFolder", 0, 1, IS_UNIQUE, IS_ORDERED);
+ initEClass(stringVariableTaskEClass, StringVariableTask.class, "StringVariableTask", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getStringVariableTask_Name(), ecorePackage.getEString(), "name", null, 0, 1,
+ StringVariableTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStringVariableTask_Value(), ecorePackage.getEString(), "value", null, 0, 1,
+ StringVariableTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getStringVariableTask_Description(), ecorePackage.getEString(), "description", null, 0, 1,
+ StringVariableTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
- initEClass(apiBaselineEClass, ApiBaseline.class, "ApiBaseline", !IS_ABSTRACT, !IS_INTERFACE,
+ initEClass(workingSetTaskEClass, WorkingSetTask.class, "WorkingSetTask", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
- initEReference(getApiBaseline_Project(), this.getProject(), this.getProject_ApiBaselines(), "project", null, 0, 1,
- ApiBaseline.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ initEReference(getWorkingSetTask_WorkingSets(), theWorkingSetsPackage.getWorkingSet(), null, "workingSets", null,
+ 0, -1, WorkingSetTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getApiBaseline_Version(), ecorePackage.getEString(), "version", null, 0, 1, ApiBaseline.class,
- !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getApiBaseline_ZipLocation(), ecorePackage.getEString(), "zipLocation", null, 0, 1,
- ApiBaseline.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
- IS_ORDERED);
- initEClass(gitCloneEClass, GitClone.class, "GitClone", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getGitClone_Branch(), this.getBranch(), this.getBranch_GitClones(), "branch", null, 0, 1,
- GitClone.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
- IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getGitClone_Name(), ecorePackage.getEString(), "name", null, 0, 1, GitClone.class, !IS_TRANSIENT,
- !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getGitClone_RemoteURI(), ecorePackage.getEString(), "remoteURI", null, 0, 1, GitClone.class,
+ initEClass(resourceCopyTaskEClass, ResourceCopyTask.class, "ResourceCopyTask", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getResourceCopyTask_SourceURL(), ecorePackage.getEString(), "sourceURL", null, 0, 1,
+ ResourceCopyTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getResourceCopyTask_TargetURL(), ecorePackage.getEString(), "targetURL", null, 0, 1,
+ ResourceCopyTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+
+ initEClass(textModifyTaskEClass, TextModifyTask.class, "TextModifyTask", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTextModifyTask_Url(), ecorePackage.getEString(), "url", null, 0, 1, TextModifyTask.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getGitClone_CheckoutBranch(), ecorePackage.getEString(), "checkoutBranch", null, 0, 1,
- GitClone.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
- IS_ORDERED);
+ initEReference(getTextModifyTask_Modifications(), this.getTextModification(), null, "modifications", null, 0, -1,
+ TextModifyTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEClass(setupEClass, Setup.class, "Setup", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getSetup_Branch(), this.getBranch(), null, "branch", null, 1, 1, Setup.class, !IS_TRANSIENT,
- !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
- IS_ORDERED);
- initEReference(getSetup_EclipseVersion(), this.getEclipseVersion(), null, "eclipseVersion", null, 1, 1,
- Setup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
- IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getSetup_Preferences(), this.getPreferences(), null, "preferences", null, 0, 1, Setup.class,
- !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
+ initEClass(textModificationEClass, TextModification.class, "TextModification", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTextModification_Pattern(), ecorePackage.getEString(), "pattern", null, 0, 1,
+ TextModification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
- initEReference(getSetup_UpdateLocations(), this.getP2Repository(), null, "updateLocations", null, 0, -1,
- Setup.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
- IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getTextModification_Substitutions(), ecorePackage.getEString(), "substitutions", null, 0, -1,
+ TextModification.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ initEEnum(setupTaskScopeEEnum, SetupTaskScope.class, "SetupTaskScope");
+ addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.NONE);
+ addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.CONFIGURATION);
+ addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.PROJECT);
+ addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.BRANCH);
+ addEEnumLiteral(setupTaskScopeEEnum, SetupTaskScope.USER);
+
+ initEEnum(triggerEEnum, Trigger.class, "Trigger");
+ addEEnumLiteral(triggerEEnum, Trigger.BOOTSTRAP);
+ addEEnumLiteral(triggerEEnum, Trigger.STARTUP);
+ addEEnumLiteral(triggerEEnum, Trigger.MANUAL);
// Initialize data types
initEDataType(uriEDataType, org.eclipse.emf.common.util.URI.class, "URI", IS_SERIALIZABLE,
!IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(exceptionEDataType, Exception.class, "Exception", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ initEDataType(triggerSetEDataType, Set.class, "TriggerSet", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS,
+ "java.util.Set<org.eclipse.emf.cdo.releng.setup.Trigger>");
// Create resource
createResource(eNS_URI);
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskContainerImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskContainerImpl.java
new file mode 100644
index 0000000000..3a5df4b135
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskContainerImpl.java
@@ -0,0 +1,164 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Task Container</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskContainerImpl#getSetupTasks <em>Setup Tasks</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class SetupTaskContainerImpl extends MinimalEObjectImpl.Container implements SetupTaskContainer
+{
+ /**
+ * The cached value of the '{@link #getSetupTasks() <em>Setup Tasks</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSetupTasks()
+ * @generated
+ * @ordered
+ */
+ protected EList<SetupTask> setupTasks;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SetupTaskContainerImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.SETUP_TASK_CONTAINER;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SetupTask> getSetupTasks()
+ {
+ if (setupTasks == null)
+ {
+ setupTasks = new EObjectContainmentEList.Resolving<SetupTask>(SetupTask.class, this,
+ SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS);
+ }
+ return setupTasks;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS:
+ return ((InternalEList<?>)getSetupTasks()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS:
+ return getSetupTasks();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS:
+ getSetupTasks().clear();
+ getSetupTasks().addAll((Collection<? extends SetupTask>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS:
+ getSetupTasks().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK_CONTAINER__SETUP_TASKS:
+ return setupTasks != null && !setupTasks.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} // SetupTaskContainerImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskImpl.java
new file mode 100644
index 0000000000..c33d040385
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/SetupTaskImpl.java
@@ -0,0 +1,471 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.Branch;
+import org.eclipse.emf.cdo.releng.setup.ConfigurableItem;
+import org.eclipse.emf.cdo.releng.setup.Configuration;
+import org.eclipse.emf.cdo.releng.setup.Preferences;
+import org.eclipse.emf.cdo.releng.setup.Project;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskScope;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl#getRequirements <em>Requirements</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl#getRestrictions <em>Restrictions</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl#getScope <em>Scope</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.SetupTaskImpl#getExcludedTriggers <em>Excluded Triggers</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public abstract class SetupTaskImpl extends MinimalEObjectImpl.Container implements SetupTask
+{
+ /**
+ * The cached value of the '{@link #getRequirements() <em>Requirements</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRequirements()
+ * @generated
+ * @ordered
+ */
+ protected EList<SetupTask> requirements;
+
+ /**
+ * The cached value of the '{@link #getRestrictions() <em>Restrictions</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getRestrictions()
+ * @generated
+ * @ordered
+ */
+ protected EList<ConfigurableItem> restrictions;
+
+ /**
+ * The default value of the '{@link #getScope() <em>Scope</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getScope()
+ * @generated
+ * @ordered
+ */
+ protected static final SetupTaskScope SCOPE_EDEFAULT = SetupTaskScope.NONE;
+
+ /**
+ * The cached value of the '{@link #getExcludedTriggers() <em>Excluded Triggers</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getExcludedTriggers()
+ * @generated
+ * @ordered
+ */
+ protected Set<Trigger> excludedTriggers;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected SetupTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.SETUP_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<SetupTask> getRequirements()
+ {
+ if (requirements == null)
+ {
+ requirements = new EObjectResolvingEList<SetupTask>(SetupTask.class, this, SetupPackage.SETUP_TASK__REQUIREMENTS);
+ }
+ return requirements;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<ConfigurableItem> getRestrictions()
+ {
+ if (restrictions == null)
+ {
+ restrictions = new EObjectResolvingEList<ConfigurableItem>(ConfigurableItem.class, this,
+ SetupPackage.SETUP_TASK__RESTRICTIONS);
+ }
+ return restrictions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public SetupTaskScope getScope()
+ {
+ return getScope(this);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Set<Trigger> getExcludedTriggers()
+ {
+ return excludedTriggers == null ? Collections.<Trigger> emptySet() : excludedTriggers;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setExcludedTriggersGen(Set<Trigger> newExcludedTriggers)
+ {
+ Set<Trigger> oldExcludedTriggers = excludedTriggers;
+ excludedTriggers = newExcludedTriggers;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS,
+ oldExcludedTriggers, excludedTriggers));
+ }
+
+ public void setExcludedTriggers(Set<Trigger> newExcludedTriggers)
+ {
+ setExcludedTriggersGen(newExcludedTriggers == null || newExcludedTriggers.isEmpty() ? null : newExcludedTriggers);
+ }
+
+ private SetupTaskScope getScope(EObject object)
+ {
+ if (object instanceof Configuration)
+ {
+ return SetupTaskScope.CONFIGURATION;
+ }
+
+ if (object instanceof Project)
+ {
+ return SetupTaskScope.PROJECT;
+ }
+
+ if (object instanceof Branch)
+ {
+ return SetupTaskScope.BRANCH;
+ }
+
+ if (object instanceof Preferences)
+ {
+ return SetupTaskScope.USER;
+ }
+
+ EObject container = object.eContainer();
+ if (container == null)
+ {
+ return SetupTaskScope.NONE;
+ }
+
+ return getScope(container);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public boolean requires(SetupTask setupTask)
+ {
+ Set<SetupTask> visited = new HashSet<SetupTask>();
+ return requires(setupTask, visited);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Set<Trigger> getValidTriggers()
+ {
+ return Trigger.ALL_TRIGGERS;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public final Set<Trigger> getTriggers()
+ {
+ Set<Trigger> excludedTriggers = getExcludedTriggers();
+ if (excludedTriggers == null || excludedTriggers.isEmpty())
+ {
+ return getValidTriggers();
+ }
+
+ Set<Trigger> result = new HashSet<Trigger>(getValidTriggers());
+ result.removeAll(excludedTriggers);
+ return Trigger.intern(result);
+ }
+
+ private boolean requires(SetupTask setupTask, Set<SetupTask> visited)
+ {
+ if (visited.add(setupTask))
+ {
+ if (setupTask == this)
+ {
+ return true;
+ }
+
+ for (SetupTask requirement : getRequirements())
+ {
+ if (((SetupTaskImpl)requirement).requires(setupTask, visited))
+ {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ protected final Object createToken(String value)
+ {
+ return new TypedStringToken(eClass(), value);
+ }
+
+ /**
+ * Subclasses may override to indicate that this task overrides another task with the same token.
+ *
+ * @see #createToken(String)
+ */
+ public Object getOverrideToken()
+ {
+ return this;
+ }
+
+ /**
+ * Subclasses may override to reset this task to its initial state.
+ */
+ public void dispose()
+ {
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK__REQUIREMENTS:
+ return getRequirements();
+ case SetupPackage.SETUP_TASK__RESTRICTIONS:
+ return getRestrictions();
+ case SetupPackage.SETUP_TASK__SCOPE:
+ return getScope();
+ case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS:
+ return getExcludedTriggers();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK__REQUIREMENTS:
+ getRequirements().clear();
+ getRequirements().addAll((Collection<? extends SetupTask>)newValue);
+ return;
+ case SetupPackage.SETUP_TASK__RESTRICTIONS:
+ getRestrictions().clear();
+ getRestrictions().addAll((Collection<? extends ConfigurableItem>)newValue);
+ return;
+ case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS:
+ setExcludedTriggers((Set<Trigger>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK__REQUIREMENTS:
+ getRequirements().clear();
+ return;
+ case SetupPackage.SETUP_TASK__RESTRICTIONS:
+ getRestrictions().clear();
+ return;
+ case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS:
+ setExcludedTriggers((Set<Trigger>)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.SETUP_TASK__REQUIREMENTS:
+ return requirements != null && !requirements.isEmpty();
+ case SetupPackage.SETUP_TASK__RESTRICTIONS:
+ return restrictions != null && !restrictions.isEmpty();
+ case SetupPackage.SETUP_TASK__SCOPE:
+ return getScope() != SCOPE_EDEFAULT;
+ case SetupPackage.SETUP_TASK__EXCLUDED_TRIGGERS:
+ return excludedTriggers != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (excludedTriggers: ");
+ result.append(excludedTriggers);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ * @author Eike Stepper
+ */
+ protected static final class TypedStringToken
+ {
+ private final Object type;
+
+ private final String value;
+
+ public TypedStringToken(Object type, String value)
+ {
+ this.type = type;
+ this.value = value;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + (type == null ? 0 : type.hashCode());
+ result = prime * result + (value == null ? 0 : value.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ {
+ return true;
+ }
+
+ if (obj == null)
+ {
+ return false;
+ }
+
+ if (getClass() != obj.getClass())
+ {
+ return false;
+ }
+
+ TypedStringToken other = (TypedStringToken)obj;
+ if (type == null)
+ {
+ if (other.type != null)
+ {
+ return false;
+ }
+ }
+ else if (!type.equals(other.type))
+ {
+ return false;
+ }
+
+ if (value == null)
+ {
+ if (other.value != null)
+ {
+ return false;
+ }
+ }
+ else if (!value.equals(other.value))
+ {
+ return false;
+ }
+
+ return true;
+ }
+ }
+
+} // SetupTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/StringVariableTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/StringVariableTaskImpl.java
new file mode 100644
index 0000000000..f3c5461fc6
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/StringVariableTaskImpl.java
@@ -0,0 +1,355 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.StringVariableTask;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+
+import org.eclipse.net4j.util.StringUtil;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.core.variables.IStringVariableManager;
+import org.eclipse.core.variables.IValueVariable;
+import org.eclipse.core.variables.VariablesPlugin;
+
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>String Variable Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl#getValue <em>Value</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.StringVariableTaskImpl#getDescription <em>Description</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class StringVariableTaskImpl extends SetupTaskImpl implements StringVariableTask
+{
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected String value = VALUE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ private transient Object cachedVariable;
+
+ private transient String expandedValue;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected StringVariableTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.STRING_VARIABLE_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName)
+ {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.STRING_VARIABLE_TASK__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getValue()
+ {
+ return value;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setValue(String newValue)
+ {
+ String oldValue = value;
+ value = newValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.STRING_VARIABLE_TASK__VALUE, oldValue, value));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDescription()
+ {
+ return description;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDescription(String newDescription)
+ {
+ String oldDescription = description;
+ description = newDescription;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION,
+ oldDescription, description));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.STRING_VARIABLE_TASK__NAME:
+ return getName();
+ case SetupPackage.STRING_VARIABLE_TASK__VALUE:
+ return getValue();
+ case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION:
+ return getDescription();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.STRING_VARIABLE_TASK__NAME:
+ setName((String)newValue);
+ return;
+ case SetupPackage.STRING_VARIABLE_TASK__VALUE:
+ setValue((String)newValue);
+ return;
+ case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION:
+ setDescription((String)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.STRING_VARIABLE_TASK__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case SetupPackage.STRING_VARIABLE_TASK__VALUE:
+ setValue(VALUE_EDEFAULT);
+ return;
+ case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION:
+ setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.STRING_VARIABLE_TASK__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case SetupPackage.STRING_VARIABLE_TASK__VALUE:
+ return VALUE_EDEFAULT == null ? value != null : !VALUE_EDEFAULT.equals(value);
+ case SetupPackage.STRING_VARIABLE_TASK__DESCRIPTION:
+ return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (name: ");
+ result.append(name);
+ result.append(", value: ");
+ result.append(value);
+ result.append(", description: ");
+ result.append(description);
+ result.append(')');
+ return result.toString();
+ }
+
+ @Override
+ public Object getOverrideToken()
+ {
+ return createToken(getName());
+ }
+
+ @Override
+ public Set<Trigger> getValidTriggers()
+ {
+ return Trigger.IDE_TRIGGERS;
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
+ IValueVariable variable = manager.getValueVariable(getName());
+
+ cachedVariable = variable;
+ expandedValue = context.expandString(getValue());
+
+ if (variable == null)
+ {
+ return true;
+ }
+
+ if (!expandedValue.equals(variable.getValue()))
+ {
+ return true;
+ }
+
+ if (!StringUtil.safe(getDescription()).equals(StringUtil.safe(variable.getDescription())))
+ {
+ return true;
+ }
+
+ return false;
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ context.log("Setting string substitution variable " + getName() + " = " + expandedValue);
+
+ IValueVariable variable = (IValueVariable)cachedVariable;
+ if (variable == null)
+ {
+ IStringVariableManager manager = VariablesPlugin.getDefault().getStringVariableManager();
+ variable = manager.newValueVariable(getName(), null);
+ manager.addVariables(new IValueVariable[] { variable });
+ }
+
+ variable.setDescription(getDescription());
+ variable.setValue(expandedValue);
+ }
+} // StringVariableTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModificationImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModificationImpl.java
new file mode 100644
index 0000000000..15125bc0b7
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModificationImpl.java
@@ -0,0 +1,221 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.TextModification;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Text Modification</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl#getPattern <em>Pattern</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.TextModificationImpl#getSubstitutions <em>Substitutions</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TextModificationImpl extends MinimalEObjectImpl.Container implements TextModification
+{
+ /**
+ * The default value of the '{@link #getPattern() <em>Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPattern()
+ * @generated
+ * @ordered
+ */
+ protected static final String PATTERN_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPattern() <em>Pattern</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPattern()
+ * @generated
+ * @ordered
+ */
+ protected String pattern = PATTERN_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getSubstitutions() <em>Substitutions</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getSubstitutions()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> substitutions;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TextModificationImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.TEXT_MODIFICATION;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPattern()
+ {
+ return pattern;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPattern(String newPattern)
+ {
+ String oldPattern = pattern;
+ pattern = newPattern;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.TEXT_MODIFICATION__PATTERN, oldPattern,
+ pattern));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<String> getSubstitutions()
+ {
+ if (substitutions == null)
+ {
+ substitutions = new EDataTypeUniqueEList<String>(String.class, this,
+ SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS);
+ }
+ return substitutions;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFICATION__PATTERN:
+ return getPattern();
+ case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS:
+ return getSubstitutions();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFICATION__PATTERN:
+ setPattern((String)newValue);
+ return;
+ case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS:
+ getSubstitutions().clear();
+ getSubstitutions().addAll((Collection<? extends String>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFICATION__PATTERN:
+ setPattern(PATTERN_EDEFAULT);
+ return;
+ case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS:
+ getSubstitutions().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFICATION__PATTERN:
+ return PATTERN_EDEFAULT == null ? pattern != null : !PATTERN_EDEFAULT.equals(pattern);
+ case SetupPackage.TEXT_MODIFICATION__SUBSTITUTIONS:
+ return substitutions != null && !substitutions.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (pattern: ");
+ result.append(pattern);
+ result.append(", substitutions: ");
+ result.append(substitutions);
+ result.append(')');
+ return result.toString();
+ }
+
+} //TextModificationImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModifyTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModifyTaskImpl.java
new file mode 100644
index 0000000000..6ede46e41e
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/TextModifyTaskImpl.java
@@ -0,0 +1,250 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.TextModification;
+import org.eclipse.emf.cdo.releng.setup.TextModifyTask;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import java.util.Collection;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Text Modify Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl#getUrl <em>Url</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.TextModifyTaskImpl#getModifications <em>Modifications</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class TextModifyTaskImpl extends SetupTaskImpl implements TextModifyTask
+{
+ /**
+ * The default value of the '{@link #getUrl() <em>Url</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUrl()
+ * @generated
+ * @ordered
+ */
+ protected static final String URL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getUrl() <em>Url</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getUrl()
+ * @generated
+ * @ordered
+ */
+ protected String url = URL_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getModifications() <em>Modifications</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getModifications()
+ * @generated
+ * @ordered
+ */
+ protected EList<TextModification> modifications;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TextModifyTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.TEXT_MODIFY_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getUrl()
+ {
+ return url;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setUrl(String newUrl)
+ {
+ String oldUrl = url;
+ url = newUrl;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.TEXT_MODIFY_TASK__URL, oldUrl, url));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<TextModification> getModifications()
+ {
+ if (modifications == null)
+ {
+ modifications = new EObjectContainmentEList.Resolving<TextModification>(TextModification.class, this,
+ SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS);
+ }
+ return modifications;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS:
+ return ((InternalEList<?>)getModifications()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFY_TASK__URL:
+ return getUrl();
+ case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS:
+ return getModifications();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFY_TASK__URL:
+ setUrl((String)newValue);
+ return;
+ case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS:
+ getModifications().clear();
+ getModifications().addAll((Collection<? extends TextModification>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFY_TASK__URL:
+ setUrl(URL_EDEFAULT);
+ return;
+ case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS:
+ getModifications().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.TEXT_MODIFY_TASK__URL:
+ return URL_EDEFAULT == null ? url != null : !URL_EDEFAULT.equals(url);
+ case SetupPackage.TEXT_MODIFY_TASK__MODIFICATIONS:
+ return modifications != null && !modifications.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString()
+ {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (url: ");
+ result.append(url);
+ result.append(')');
+ return result.toString();
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ // TODO
+ throw new UnsupportedOperationException();
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ // TODO
+ throw new UnsupportedOperationException();
+ }
+
+} // TextModifyTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolInstallationImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolInstallationImpl.java
deleted file mode 100644
index eac9bd8e7d..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/ToolInstallationImpl.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.setup.impl;
-
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
-import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.setup.ToolInstallation;
-
-import org.eclipse.emf.cdo.releng.setup.ToolPreference;
-import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import java.util.Collection;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Tool Installation</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl#getDirectorCalls <em>Director Calls</em>}</li>
- * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.ToolInstallationImpl#getToolPreferences <em>Tool Preferences</em>}</li>
- * </ul>
- * </p>
- *
- * @generated
- */
-public abstract class ToolInstallationImpl extends MinimalEObjectImpl.Container implements ToolInstallation
-{
- /**
- * The cached value of the '{@link #getDirectorCalls() <em>Director Calls</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getDirectorCalls()
- * @generated
- * @ordered
- */
- protected EList<DirectorCall> directorCalls;
-
- /**
- * The cached value of the '{@link #getToolPreferences() <em>Tool Preferences</em>}' containment reference list.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getToolPreferences()
- * @generated
- * @ordered
- */
- protected EList<ToolPreference> toolPreferences;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected ToolInstallationImpl()
- {
- super();
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- protected EClass eStaticClass()
- {
- return SetupPackage.Literals.TOOL_INSTALLATION;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList<DirectorCall> getDirectorCalls()
- {
- if (directorCalls == null)
- {
- directorCalls = new EObjectContainmentEList<DirectorCall>(DirectorCall.class, this,
- SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS);
- }
- return directorCalls;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EList<ToolPreference> getToolPreferences()
- {
- if (toolPreferences == null)
- {
- toolPreferences = new EObjectContainmentEList<ToolPreference>(ToolPreference.class, this,
- SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES);
- }
- return toolPreferences;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
- {
- switch (featureID)
- {
- case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS:
- return ((InternalEList<?>)getDirectorCalls()).basicRemove(otherEnd, msgs);
- case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES:
- return ((InternalEList<?>)getToolPreferences()).basicRemove(otherEnd, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object eGet(int featureID, boolean resolve, boolean coreType)
- {
- switch (featureID)
- {
- case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS:
- return getDirectorCalls();
- case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES:
- return getToolPreferences();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @SuppressWarnings("unchecked")
- @Override
- public void eSet(int featureID, Object newValue)
- {
- switch (featureID)
- {
- case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS:
- getDirectorCalls().clear();
- getDirectorCalls().addAll((Collection<? extends DirectorCall>)newValue);
- return;
- case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES:
- getToolPreferences().clear();
- getToolPreferences().addAll((Collection<? extends ToolPreference>)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eUnset(int featureID)
- {
- switch (featureID)
- {
- case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS:
- getDirectorCalls().clear();
- return;
- case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES:
- getToolPreferences().clear();
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean eIsSet(int featureID)
- {
- switch (featureID)
- {
- case SetupPackage.TOOL_INSTALLATION__DIRECTOR_CALLS:
- return directorCalls != null && !directorCalls.isEmpty();
- case SetupPackage.TOOL_INSTALLATION__TOOL_PREFERENCES:
- return toolPreferences != null && !toolPreferences.isEmpty();
- }
- return super.eIsSet(featureID);
- }
-
-} // ToolInstallationImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/WorkingSetTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/WorkingSetTaskImpl.java
new file mode 100644
index 0000000000..c45a4b1f7b
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/WorkingSetTaskImpl.java
@@ -0,0 +1,289 @@
+/**
+ */
+package org.eclipse.emf.cdo.releng.setup.impl;
+
+import org.eclipse.emf.cdo.releng.internal.setup.Activator;
+import org.eclipse.emf.cdo.releng.setup.Branch;
+import org.eclipse.emf.cdo.releng.setup.Preferences;
+import org.eclipse.emf.cdo.releng.setup.Project;
+import org.eclipse.emf.cdo.releng.setup.SetupPackage;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContext;
+import org.eclipse.emf.cdo.releng.setup.Trigger;
+import org.eclipse.emf.cdo.releng.setup.WorkingSetTask;
+import org.eclipse.emf.cdo.releng.workingsets.WorkingSet;
+import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup;
+import org.eclipse.emf.cdo.releng.workingsets.util.WorkingSetsUtil;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Set Working Task</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.emf.cdo.releng.setup.impl.WorkingSetTaskImpl#getWorkingSets <em>Working Sets</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class WorkingSetTaskImpl extends SetupTaskImpl implements WorkingSetTask
+{
+ /**
+ * The cached value of the '{@link #getWorkingSets() <em>Working Sets</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWorkingSets()
+ * @generated
+ * @ordered
+ */
+ protected EList<WorkingSet> workingSets;
+
+ private static final String PACKAGE_EXPLORER_ID = "org.eclipse.jdt.ui.PackageExplorer";
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected WorkingSetTaskImpl()
+ {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass()
+ {
+ return SetupPackage.Literals.WORKING_SET_TASK;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList<WorkingSet> getWorkingSets()
+ {
+ if (workingSets == null)
+ {
+ workingSets = new EObjectContainmentEList.Resolving<WorkingSet>(WorkingSet.class, this,
+ SetupPackage.WORKING_SET_TASK__WORKING_SETS);
+ }
+ return workingSets;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.WORKING_SET_TASK__WORKING_SETS:
+ return ((InternalEList<?>)getWorkingSets()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.WORKING_SET_TASK__WORKING_SETS:
+ return getWorkingSets();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.WORKING_SET_TASK__WORKING_SETS:
+ getWorkingSets().clear();
+ getWorkingSets().addAll((Collection<? extends WorkingSet>)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.WORKING_SET_TASK__WORKING_SETS:
+ getWorkingSets().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID)
+ {
+ switch (featureID)
+ {
+ case SetupPackage.WORKING_SET_TASK__WORKING_SETS:
+ return workingSets != null && !workingSets.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+ @Override
+ public Set<Trigger> getValidTriggers()
+ {
+ return Trigger.IDE_TRIGGERS;
+ }
+
+ public boolean isNeeded(SetupTaskContext context) throws Exception
+ {
+ WorkingSetGroup defaultWorkingSetGroup = WorkingSetsUtil.getWorkingSetGroup();
+ Set<String> existingIds = new HashSet<String>();
+ for (WorkingSet workingSet : defaultWorkingSetGroup.getWorkingSets())
+ {
+ existingIds.add(workingSet.getId());
+ }
+
+ String prefix = "";
+ for (EObject eContainer = eContainer(); eContainer != null; eContainer = eContainer.eContainer())
+ {
+ if (eContainer instanceof Project)
+ {
+ prefix += ((Project)eContainer).getName() + " ";
+ }
+ else if (eContainer instanceof Branch)
+ {
+ prefix += ((Branch)eContainer).getName() + " ";
+ }
+ else if (eContainer instanceof Preferences)
+ {
+ prefix += ((Preferences)eContainer).getUserName() + " ";
+ }
+ }
+
+ Set<String> newIds = new HashSet<String>();
+ for (WorkingSet workingSet : getWorkingSets())
+ {
+ String id = prefix + workingSet.getName();
+ workingSet.setId(id);
+ newIds.add(id);
+ }
+
+ return !existingIds.containsAll(newIds);
+ }
+
+ public void perform(SetupTaskContext context) throws Exception
+ {
+ initPackageExplorer();
+
+ WorkingSetGroup defaultWorkingSetGroup = WorkingSetsUtil.getWorkingSetGroup();
+ Set<String> existingIds = new HashSet<String>();
+ EList<WorkingSet> workingSets = defaultWorkingSetGroup.getWorkingSets();
+ for (WorkingSet workingSet : workingSets)
+ {
+ existingIds.add(workingSet.getId());
+ }
+
+ EList<WorkingSet> newWorkingSetGroups = getWorkingSets();
+ int index = 0;
+ for (WorkingSet workingSet : new ArrayList<WorkingSet>(newWorkingSetGroups))
+ {
+ String id = workingSet.getId();
+ if (!existingIds.contains(id))
+ {
+ workingSets.add(index++, workingSet);
+ }
+ else
+ {
+ for (int i = 0, size = workingSets.size(); i < size; ++i)
+ {
+ if (id.equals(workingSets.get(i).getId()))
+ {
+ index = i + 1;
+ break;
+ }
+ }
+ }
+ }
+
+ Resource resource = defaultWorkingSetGroup.eResource();
+ resource.save(null);
+ }
+
+ private static void initPackageExplorer()
+ {
+ final IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getWorkbenchWindows()[0];
+ workbenchWindow.getShell().getDisplay().asyncExec(new Runnable()
+ {
+ public void run()
+ {
+ try
+ {
+ IViewPart view = workbenchWindow.getActivePage().showView(PACKAGE_EXPLORER_ID, null,
+ IWorkbenchPage.VIEW_CREATE);
+ if (view != null)
+ {
+ Method method = view.getClass().getMethod("rootModeChanged", int.class);
+ method.invoke(view, 2);
+ }
+ }
+ catch (Exception ex)
+ {
+ Activator.log(ex);
+ }
+ }
+ });
+ }
+} // SetWorkingTaskImpl
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Downloads.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/DownloadUtil.java
index a5d15fda65..9c19526c1c 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Downloads.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/DownloadUtil.java
@@ -8,7 +8,9 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.helper;
+package org.eclipse.emf.cdo.releng.setup.util;
+
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog;
import java.io.BufferedInputStream;
import java.io.File;
@@ -21,11 +23,11 @@ import java.net.URLConnection;
/**
* @author Eike Stepper
*/
-public final class Downloads
+public final class DownloadUtil
{
private static final int BUFFER_SIZE = 4096;
- public static File downloadURL(String url)
+ public static File downloadURL(String url, ProgressLog progress)
{
if (url.endsWith("/"))
{
@@ -39,7 +41,7 @@ public final class Downloads
File file = new File(tmp.getParentFile(), name + ".zip");
if (!file.exists())
{
- downloadURL(url, tmp);
+ downloadURL(url, tmp, progress);
tmp.renameTo(file);
}
@@ -51,7 +53,7 @@ public final class Downloads
}
}
- private static void downloadURL(String url, File file)
+ private static void downloadURL(String url, File file, ProgressLog progress)
{
final byte data[] = new byte[BUFFER_SIZE];
BufferedInputStream in = null;
@@ -89,7 +91,7 @@ public final class Downloads
int percent = Math.round(factor * read);
if (percent != lastPercent)
{
- Progress.log().addLine("Downloading " + fileName + " (" + percent + "%)");
+ progress.log("Downloading " + fileName + " (" + percent + "%)");
}
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Files.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/FileUtil.java
index ca4bc423c0..1e584cca9e 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/Files.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/FileUtil.java
@@ -8,7 +8,9 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.helper;
+package org.eclipse.emf.cdo.releng.setup.util;
+
+import org.eclipse.emf.cdo.releng.internal.setup.Activator;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
@@ -25,22 +27,12 @@ import java.util.List;
/**
* @author Eike Stepper
*/
-public final class Files
+public final class FileUtil
{
public static void rename(File from) throws IOException, InterruptedException
{
File to = new File(from.getParentFile(), from.getName() + "." + System.currentTimeMillis());
- for (int i = 0; i < 1000; i++)
- {
- if (from.renameTo(to))
- {
- return;
- }
-
- Thread.sleep(5);
- }
-
- throw new IOException("Could not rename '" + from.getAbsolutePath() + "' to '" + to.getAbsolutePath() + "'");
+ rename(from, to);
}
public static void rename(File from, File to) throws IOException, InterruptedException
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/OS.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/OS.java
index 3b5032793d..158e84f017 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/OS.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/OS.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.helper;
+package org.eclipse.emf.cdo.releng.setup.util;
import org.eclipse.core.runtime.Platform;
@@ -74,6 +74,8 @@ public abstract class OS
try
{
+ file.getParentFile().mkdirs();
+
out = new FileOutputStream(file);
Writer writer = new OutputStreamWriter(out);
@SuppressWarnings("resource")
@@ -99,6 +101,8 @@ public abstract class OS
public abstract String getEclipseExecutable();
+ public abstract String getEclipseIni();
+
public abstract String getGitPrefix();
public abstract String getJREsRoot();
@@ -158,6 +162,12 @@ public abstract class OS
}
@Override
+ public String getEclipseIni()
+ {
+ return "eclipse.ini";
+ }
+
+ @Override
public String getGitPrefix()
{
return "C:\\Program Files (x86)\\Git";
@@ -182,6 +192,12 @@ public abstract class OS
}
@Override
+ public String getEclipseIni()
+ {
+ return "Contents/MacOS/eclipse.ini";
+ }
+
+ @Override
public String getGitPrefix()
{
return "/";
@@ -206,6 +222,12 @@ public abstract class OS
}
@Override
+ public String getEclipseIni()
+ {
+ return "eclipse.ini";
+ }
+
+ @Override
public String getGitPrefix()
{
return "";
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/ServiceUtil.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/ServiceUtil.java
new file mode 100644
index 0000000000..c4fa29fd7f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/ServiceUtil.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.setup.util;
+
+import org.eclipse.emf.cdo.releng.internal.setup.Activator;
+
+import org.eclipse.core.runtime.Plugin;
+
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+
+import java.util.IdentityHashMap;
+import java.util.Map;
+
+/**
+ * @author Eike Stepper
+ */
+public final class ServiceUtil extends Plugin
+{
+ private static BundleContext bundleContext = Activator.getBundleContext();
+
+ private static Map<Object, ServiceReference<?>> services = new IdentityHashMap<Object, ServiceReference<?>>();
+
+ public static <T> T getService(Class<T> serviceClass)
+ {
+ String serviceName = serviceClass.getName();
+ ServiceReference<?> serviceRef = bundleContext.getServiceReference(serviceName);
+ if (serviceRef == null)
+ {
+ throw new IllegalStateException("Missing OSGi service " + serviceName);
+ }
+
+ @SuppressWarnings("unchecked")
+ T service = (T)bundleContext.getService(serviceRef);
+ services.put(service, serviceRef);
+ return service;
+ }
+
+ public static void ungetService(Object service)
+ {
+ if (service != null)
+ {
+ ServiceReference<?> serviceRef = services.remove(service);
+ if (serviceRef != null)
+ {
+ bundleContext.ungetService(serviceRef);
+ }
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java
index ecd94719cb..8867ca7292 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupAdapterFactory.java
@@ -10,21 +10,32 @@
*/
package org.eclipse.emf.cdo.releng.setup.util;
-import org.eclipse.emf.cdo.releng.setup.*;
-import org.eclipse.emf.cdo.releng.setup.ApiBaseline;
+import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask;
import org.eclipse.emf.cdo.releng.setup.Branch;
+import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask;
+import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask;
+import org.eclipse.emf.cdo.releng.setup.ConfigurableItem;
import org.eclipse.emf.cdo.releng.setup.Configuration;
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
+import org.eclipse.emf.cdo.releng.setup.EclipseIniTask;
+import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask;
import org.eclipse.emf.cdo.releng.setup.EclipseVersion;
-import org.eclipse.emf.cdo.releng.setup.GitClone;
+import org.eclipse.emf.cdo.releng.setup.GitCloneTask;
import org.eclipse.emf.cdo.releng.setup.InstallableUnit;
+import org.eclipse.emf.cdo.releng.setup.LinkLocationTask;
+import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask;
import org.eclipse.emf.cdo.releng.setup.P2Repository;
+import org.eclipse.emf.cdo.releng.setup.P2Task;
import org.eclipse.emf.cdo.releng.setup.Preferences;
import org.eclipse.emf.cdo.releng.setup.Project;
+import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask;
import org.eclipse.emf.cdo.releng.setup.Setup;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.setup.ToolInstallation;
-
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer;
+import org.eclipse.emf.cdo.releng.setup.StringVariableTask;
+import org.eclipse.emf.cdo.releng.setup.TextModification;
+import org.eclipse.emf.cdo.releng.setup.TextModifyTask;
+import org.eclipse.emf.cdo.releng.setup.WorkingSetTask;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
@@ -93,39 +104,87 @@ public class SetupAdapterFactory extends AdapterFactoryImpl
protected SetupSwitch<Adapter> modelSwitch = new SetupSwitch<Adapter>()
{
@Override
+ public Adapter caseEclipseVersion(EclipseVersion object)
+ {
+ return createEclipseVersionAdapter();
+ }
+
+ @Override
+ public Adapter caseConfiguration(Configuration object)
+ {
+ return createConfigurationAdapter();
+ }
+
+ @Override
+ public Adapter caseConfigurableItem(ConfigurableItem object)
+ {
+ return createConfigurableItemAdapter();
+ }
+
+ @Override
+ public Adapter caseProject(Project object)
+ {
+ return createProjectAdapter();
+ }
+
+ @Override
+ public Adapter caseBranch(Branch object)
+ {
+ return createBranchAdapter();
+ }
+
+ @Override
public Adapter casePreferences(Preferences object)
{
return createPreferencesAdapter();
}
@Override
- public Adapter caseLinkLocation(LinkLocation object)
+ public Adapter caseSetup(Setup object)
+ {
+ return createSetupAdapter();
+ }
+
+ @Override
+ public Adapter caseSetupTask(SetupTask object)
{
- return createLinkLocationAdapter();
+ return createSetupTaskAdapter();
}
@Override
- public Adapter caseToolInstallation(ToolInstallation object)
+ public Adapter caseSetupTaskContainer(SetupTaskContainer object)
{
- return createToolInstallationAdapter();
+ return createSetupTaskContainerAdapter();
}
@Override
- public Adapter caseToolPreference(ToolPreference object)
+ public Adapter caseCompoundSetupTask(CompoundSetupTask object)
{
- return createToolPreferenceAdapter();
+ return createCompoundSetupTaskAdapter();
}
@Override
- public Adapter caseEclipseVersion(EclipseVersion object)
+ public Adapter caseOneTimeSetupTask(OneTimeSetupTask object)
{
- return createEclipseVersionAdapter();
+ return createOneTimeSetupTaskAdapter();
}
@Override
- public Adapter caseDirectorCall(DirectorCall object)
+ public Adapter caseEclipseIniTask(EclipseIniTask object)
{
- return createDirectorCallAdapter();
+ return createEclipseIniTaskAdapter();
+ }
+
+ @Override
+ public Adapter caseLinkLocationTask(LinkLocationTask object)
+ {
+ return createLinkLocationTaskAdapter();
+ }
+
+ @Override
+ public Adapter caseP2Task(P2Task object)
+ {
+ return createP2TaskAdapter();
}
@Override
@@ -141,39 +200,57 @@ public class SetupAdapterFactory extends AdapterFactoryImpl
}
@Override
- public Adapter caseConfiguration(Configuration object)
+ public Adapter caseBuckminsterImportTask(BuckminsterImportTask object)
{
- return createConfigurationAdapter();
+ return createBuckminsterImportTaskAdapter();
}
@Override
- public Adapter caseProject(Project object)
+ public Adapter caseApiBaselineTask(ApiBaselineTask object)
{
- return createProjectAdapter();
+ return createApiBaselineTaskAdapter();
}
@Override
- public Adapter caseBranch(Branch object)
+ public Adapter caseGitCloneTask(GitCloneTask object)
{
- return createBranchAdapter();
+ return createGitCloneTaskAdapter();
}
@Override
- public Adapter caseApiBaseline(ApiBaseline object)
+ public Adapter caseEclipsePreferenceTask(EclipsePreferenceTask object)
{
- return createApiBaselineAdapter();
+ return createEclipsePreferenceTaskAdapter();
}
@Override
- public Adapter caseGitClone(GitClone object)
+ public Adapter caseStringVariableTask(StringVariableTask object)
{
- return createGitCloneAdapter();
+ return createStringVariableTaskAdapter();
}
@Override
- public Adapter caseSetup(Setup object)
+ public Adapter caseWorkingSetTask(WorkingSetTask object)
{
- return createSetupAdapter();
+ return createWorkingSetTaskAdapter();
+ }
+
+ @Override
+ public Adapter caseResourceCopyTask(ResourceCopyTask object)
+ {
+ return createResourceCopyTaskAdapter();
+ }
+
+ @Override
+ public Adapter caseTextModifyTask(TextModifyTask object)
+ {
+ return createTextModifyTaskAdapter();
+ }
+
+ @Override
+ public Adapter caseTextModification(TextModification object)
+ {
+ return createTextModificationAdapter();
}
@Override
@@ -243,16 +320,31 @@ public class SetupAdapterFactory extends AdapterFactoryImpl
}
/**
- * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ToolInstallation <em>Tool Installation</em>}'.
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ApiBaselineTask <em>Api Baseline Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.ApiBaselineTask
+ * @generated
+ */
+ public Adapter createApiBaselineTaskAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.GitCloneTask <em>Git Clone Task</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
* it's useful to ignore a case when inheritance will catch all the cases anyway.
* <!-- end-user-doc -->
* @return the new adapter.
- * @see org.eclipse.emf.cdo.releng.setup.ToolInstallation
+ * @see org.eclipse.emf.cdo.releng.setup.GitCloneTask
* @generated
*/
- public Adapter createToolInstallationAdapter()
+ public Adapter createGitCloneTaskAdapter()
{
return null;
}
@@ -273,16 +365,31 @@ public class SetupAdapterFactory extends AdapterFactoryImpl
}
/**
- * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.DirectorCall <em>Director Call</em>}'.
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.P2Task <em>P2 Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.P2Task
+ * @generated
+ */
+ public Adapter createP2TaskAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.StringVariableTask <em>String Variable Task</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
* it's useful to ignore a case when inheritance will catch all the cases anyway.
* <!-- end-user-doc -->
* @return the new adapter.
- * @see org.eclipse.emf.cdo.releng.setup.DirectorCall
+ * @see org.eclipse.emf.cdo.releng.setup.StringVariableTask
* @generated
*/
- public Adapter createDirectorCallAdapter()
+ public Adapter createStringVariableTaskAdapter()
{
return null;
}
@@ -318,76 +425,166 @@ public class SetupAdapterFactory extends AdapterFactoryImpl
}
/**
- * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ApiBaseline <em>Api Baseline</em>}'.
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.Setup <em>Setup</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
* it's useful to ignore a case when inheritance will catch all the cases anyway.
* <!-- end-user-doc -->
* @return the new adapter.
- * @see org.eclipse.emf.cdo.releng.setup.ApiBaseline
+ * @see org.eclipse.emf.cdo.releng.setup.Setup
* @generated
*/
- public Adapter createApiBaselineAdapter()
+ public Adapter createSetupAdapter()
{
return null;
}
/**
- * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.GitClone <em>Git Clone</em>}'.
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.SetupTask <em>Task</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
* it's useful to ignore a case when inheritance will catch all the cases anyway.
* <!-- end-user-doc -->
* @return the new adapter.
- * @see org.eclipse.emf.cdo.releng.setup.GitClone
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTask
* @generated
*/
- public Adapter createGitCloneAdapter()
+ public Adapter createSetupTaskAdapter()
{
return null;
}
/**
- * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.Setup <em>Setup</em>}'.
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.WorkingSetTask <em>Working Set Task</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
* it's useful to ignore a case when inheritance will catch all the cases anyway.
* <!-- end-user-doc -->
* @return the new adapter.
- * @see org.eclipse.emf.cdo.releng.setup.Setup
+ * @see org.eclipse.emf.cdo.releng.setup.WorkingSetTask
* @generated
*/
- public Adapter createSetupAdapter()
+ public Adapter createWorkingSetTaskAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ResourceCopyTask <em>Resource Copy Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.ResourceCopyTask
+ * @generated
+ */
+ public Adapter createResourceCopyTaskAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.TextModifyTask <em>Text Modify Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.TextModifyTask
+ * @generated
+ */
+ public Adapter createTextModifyTaskAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.TextModification <em>Text Modification</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.TextModification
+ * @generated
+ */
+ public Adapter createTextModificationAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.EclipseIniTask <em>Eclipse Ini Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipseIniTask
+ * @generated
+ */
+ public Adapter createEclipseIniTaskAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.CompoundSetupTask <em>Compound Setup Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.CompoundSetupTask
+ * @generated
+ */
+ public Adapter createCompoundSetupTaskAdapter()
{
return null;
}
/**
- * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ToolPreference <em>Tool Preference</em>}'.
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask <em>One Time Setup Task</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
* it's useful to ignore a case when inheritance will catch all the cases anyway.
* <!-- end-user-doc -->
* @return the new adapter.
- * @see org.eclipse.emf.cdo.releng.setup.ToolPreference
+ * @see org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask
* @generated
*/
- public Adapter createToolPreferenceAdapter()
+ public Adapter createOneTimeSetupTaskAdapter()
{
return null;
}
/**
- * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.LinkLocation <em>Link Location</em>}'.
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.ConfigurableItem <em>Configurable Item</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
* it's useful to ignore a case when inheritance will catch all the cases anyway.
* <!-- end-user-doc -->
* @return the new adapter.
- * @see org.eclipse.emf.cdo.releng.setup.LinkLocation
+ * @see org.eclipse.emf.cdo.releng.setup.ConfigurableItem
* @generated
*/
- public Adapter createLinkLocationAdapter()
+ public Adapter createConfigurableItemAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask <em>Buckminster Import Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask
+ * @generated
+ */
+ public Adapter createBuckminsterImportTaskAdapter()
{
return null;
}
@@ -408,6 +605,51 @@ public class SetupAdapterFactory extends AdapterFactoryImpl
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.LinkLocationTask <em>Link Location Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.LinkLocationTask
+ * @generated
+ */
+ public Adapter createLinkLocationTaskAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.SetupTaskContainer <em>Task Container</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.SetupTaskContainer
+ * @generated
+ */
+ public Adapter createSetupTaskContainerAdapter()
+ {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask <em>Eclipse Preference Task</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask
+ * @generated
+ */
+ public Adapter createEclipsePreferenceTaskAdapter()
+ {
+ return null;
+ }
+
+ /**
* Creates a new adapter for the default case.
* <!-- begin-user-doc -->
* This default implementation returns null.
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java
index 1ab1628d62..44af8cb514 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/SetupSwitch.java
@@ -1,34 +1,35 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
+/**
*/
package org.eclipse.emf.cdo.releng.setup.util;
-import org.eclipse.emf.cdo.releng.setup.ApiBaseline;
+import org.eclipse.emf.cdo.releng.setup.ApiBaselineTask;
import org.eclipse.emf.cdo.releng.setup.Branch;
+import org.eclipse.emf.cdo.releng.setup.BuckminsterImportTask;
+import org.eclipse.emf.cdo.releng.setup.CompoundSetupTask;
+import org.eclipse.emf.cdo.releng.setup.ConfigurableItem;
import org.eclipse.emf.cdo.releng.setup.Configuration;
-import org.eclipse.emf.cdo.releng.setup.DirectorCall;
+import org.eclipse.emf.cdo.releng.setup.EclipseIniTask;
+import org.eclipse.emf.cdo.releng.setup.EclipsePreferenceTask;
import org.eclipse.emf.cdo.releng.setup.EclipseVersion;
-import org.eclipse.emf.cdo.releng.setup.GitClone;
+import org.eclipse.emf.cdo.releng.setup.GitCloneTask;
import org.eclipse.emf.cdo.releng.setup.InstallableUnit;
-import org.eclipse.emf.cdo.releng.setup.LinkLocation;
+import org.eclipse.emf.cdo.releng.setup.LinkLocationTask;
+import org.eclipse.emf.cdo.releng.setup.OneTimeSetupTask;
import org.eclipse.emf.cdo.releng.setup.P2Repository;
+import org.eclipse.emf.cdo.releng.setup.P2Task;
import org.eclipse.emf.cdo.releng.setup.Preferences;
import org.eclipse.emf.cdo.releng.setup.Project;
+import org.eclipse.emf.cdo.releng.setup.ResourceCopyTask;
import org.eclipse.emf.cdo.releng.setup.Setup;
import org.eclipse.emf.cdo.releng.setup.SetupPackage;
-import org.eclipse.emf.cdo.releng.setup.ToolInstallation;
-import org.eclipse.emf.cdo.releng.setup.ToolPreference;
-
+import org.eclipse.emf.cdo.releng.setup.SetupTask;
+import org.eclipse.emf.cdo.releng.setup.SetupTaskContainer;
+import org.eclipse.emf.cdo.releng.setup.StringVariableTask;
+import org.eclipse.emf.cdo.releng.setup.TextModification;
+import org.eclipse.emf.cdo.releng.setup.TextModifyTask;
+import org.eclipse.emf.cdo.releng.setup.WorkingSetTask;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
-
import java.util.List;
/**
@@ -108,68 +109,144 @@ public class SetupSwitch<T>
{
switch (classifierID)
{
+ case SetupPackage.ECLIPSE_VERSION:
+ {
+ EclipseVersion eclipseVersion = (EclipseVersion)theEObject;
+ T result = caseEclipseVersion(eclipseVersion);
+ if (result == null)
+ result = caseConfigurableItem(eclipseVersion);
+ if (result == null)
+ result = caseSetupTaskContainer(eclipseVersion);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.CONFIGURATION:
+ {
+ Configuration configuration = (Configuration)theEObject;
+ T result = caseConfiguration(configuration);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.CONFIGURABLE_ITEM:
+ {
+ ConfigurableItem configurableItem = (ConfigurableItem)theEObject;
+ T result = caseConfigurableItem(configurableItem);
+ if (result == null)
+ result = caseSetupTaskContainer(configurableItem);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.PROJECT:
+ {
+ Project project = (Project)theEObject;
+ T result = caseProject(project);
+ if (result == null)
+ result = caseConfigurableItem(project);
+ if (result == null)
+ result = caseSetupTaskContainer(project);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.BRANCH:
+ {
+ Branch branch = (Branch)theEObject;
+ T result = caseBranch(branch);
+ if (result == null)
+ result = caseConfigurableItem(branch);
+ if (result == null)
+ result = caseSetupTaskContainer(branch);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
case SetupPackage.PREFERENCES:
{
Preferences preferences = (Preferences)theEObject;
T result = casePreferences(preferences);
if (result == null)
- {
- result = caseToolInstallation(preferences);
- }
+ result = caseSetupTaskContainer(preferences);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.SETUP:
+ {
+ Setup setup = (Setup)theEObject;
+ T result = caseSetup(setup);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.LINK_LOCATION:
+ case SetupPackage.SETUP_TASK:
{
- LinkLocation linkLocation = (LinkLocation)theEObject;
- T result = caseLinkLocation(linkLocation);
+ SetupTask setupTask = (SetupTask)theEObject;
+ T result = caseSetupTask(setupTask);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.TOOL_INSTALLATION:
+ case SetupPackage.SETUP_TASK_CONTAINER:
{
- ToolInstallation toolInstallation = (ToolInstallation)theEObject;
- T result = caseToolInstallation(toolInstallation);
+ SetupTaskContainer setupTaskContainer = (SetupTaskContainer)theEObject;
+ T result = caseSetupTaskContainer(setupTaskContainer);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.TOOL_PREFERENCE:
+ case SetupPackage.COMPOUND_SETUP_TASK:
{
- ToolPreference toolPreference = (ToolPreference)theEObject;
- T result = caseToolPreference(toolPreference);
+ CompoundSetupTask compoundSetupTask = (CompoundSetupTask)theEObject;
+ T result = caseCompoundSetupTask(compoundSetupTask);
+ if (result == null)
+ result = caseSetupTask(compoundSetupTask);
+ if (result == null)
+ result = caseSetupTaskContainer(compoundSetupTask);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.ECLIPSE_VERSION:
+ case SetupPackage.ONE_TIME_SETUP_TASK:
{
- EclipseVersion eclipseVersion = (EclipseVersion)theEObject;
- T result = caseEclipseVersion(eclipseVersion);
+ OneTimeSetupTask oneTimeSetupTask = (OneTimeSetupTask)theEObject;
+ T result = caseOneTimeSetupTask(oneTimeSetupTask);
+ if (result == null)
+ result = caseSetupTask(oneTimeSetupTask);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.ECLIPSE_INI_TASK:
+ {
+ EclipseIniTask eclipseIniTask = (EclipseIniTask)theEObject;
+ T result = caseEclipseIniTask(eclipseIniTask);
+ if (result == null)
+ result = caseSetupTask(eclipseIniTask);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.DIRECTOR_CALL:
+ case SetupPackage.LINK_LOCATION_TASK:
{
- DirectorCall directorCall = (DirectorCall)theEObject;
- T result = caseDirectorCall(directorCall);
+ LinkLocationTask linkLocationTask = (LinkLocationTask)theEObject;
+ T result = caseLinkLocationTask(linkLocationTask);
+ if (result == null)
+ result = caseSetupTask(linkLocationTask);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.P2_TASK:
+ {
+ P2Task p2Task = (P2Task)theEObject;
+ T result = caseP2Task(p2Task);
+ if (result == null)
+ result = caseSetupTask(p2Task);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
case SetupPackage.INSTALLABLE_UNIT:
@@ -177,9 +254,7 @@ public class SetupSwitch<T>
InstallableUnit installableUnit = (InstallableUnit)theEObject;
T result = caseInstallableUnit(installableUnit);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
case SetupPackage.P2_REPOSITORY:
@@ -187,77 +262,95 @@ public class SetupSwitch<T>
P2Repository p2Repository = (P2Repository)theEObject;
T result = caseP2Repository(p2Repository);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.CONFIGURATION:
+ case SetupPackage.BUCKMINSTER_IMPORT_TASK:
{
- Configuration configuration = (Configuration)theEObject;
- T result = caseConfiguration(configuration);
+ BuckminsterImportTask buckminsterImportTask = (BuckminsterImportTask)theEObject;
+ T result = caseBuckminsterImportTask(buckminsterImportTask);
+ if (result == null)
+ result = caseSetupTask(buckminsterImportTask);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.PROJECT:
+ case SetupPackage.API_BASELINE_TASK:
{
- Project project = (Project)theEObject;
- T result = caseProject(project);
+ ApiBaselineTask apiBaselineTask = (ApiBaselineTask)theEObject;
+ T result = caseApiBaselineTask(apiBaselineTask);
if (result == null)
- {
- result = caseToolInstallation(project);
- }
+ result = caseSetupTask(apiBaselineTask);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.BRANCH:
+ case SetupPackage.GIT_CLONE_TASK:
{
- Branch branch = (Branch)theEObject;
- T result = caseBranch(branch);
+ GitCloneTask gitCloneTask = (GitCloneTask)theEObject;
+ T result = caseGitCloneTask(gitCloneTask);
if (result == null)
- {
- result = caseToolInstallation(branch);
- }
+ result = caseSetupTask(gitCloneTask);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.API_BASELINE:
+ case SetupPackage.ECLIPSE_PREFERENCE_TASK:
{
- ApiBaseline apiBaseline = (ApiBaseline)theEObject;
- T result = caseApiBaseline(apiBaseline);
+ EclipsePreferenceTask eclipsePreferenceTask = (EclipsePreferenceTask)theEObject;
+ T result = caseEclipsePreferenceTask(eclipsePreferenceTask);
+ if (result == null)
+ result = caseSetupTask(eclipsePreferenceTask);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.GIT_CLONE:
+ case SetupPackage.STRING_VARIABLE_TASK:
{
- GitClone gitClone = (GitClone)theEObject;
- T result = caseGitClone(gitClone);
+ StringVariableTask stringVariableTask = (StringVariableTask)theEObject;
+ T result = caseStringVariableTask(stringVariableTask);
+ if (result == null)
+ result = caseSetupTask(stringVariableTask);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
- case SetupPackage.SETUP:
+ case SetupPackage.WORKING_SET_TASK:
{
- Setup setup = (Setup)theEObject;
- T result = caseSetup(setup);
+ WorkingSetTask workingSetTask = (WorkingSetTask)theEObject;
+ T result = caseWorkingSetTask(workingSetTask);
+ if (result == null)
+ result = caseSetupTask(workingSetTask);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.RESOURCE_COPY_TASK:
+ {
+ ResourceCopyTask resourceCopyTask = (ResourceCopyTask)theEObject;
+ T result = caseResourceCopyTask(resourceCopyTask);
+ if (result == null)
+ result = caseSetupTask(resourceCopyTask);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.TEXT_MODIFY_TASK:
+ {
+ TextModifyTask textModifyTask = (TextModifyTask)theEObject;
+ T result = caseTextModifyTask(textModifyTask);
+ if (result == null)
+ result = caseSetupTask(textModifyTask);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case SetupPackage.TEXT_MODIFICATION:
+ {
+ TextModification textModification = (TextModification)theEObject;
+ T result = caseTextModification(textModification);
if (result == null)
- {
result = defaultCase(theEObject);
- }
return result;
}
default:
@@ -282,6 +375,54 @@ public class SetupSwitch<T>
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Link Location Task</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Link Location Task</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseLinkLocationTask(LinkLocationTask object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Task Container</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Task Container</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseSetupTaskContainer(SetupTaskContainer object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Eclipse Preference Task</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Eclipse Preference Task</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEclipsePreferenceTask(EclipsePreferenceTask object)
+ {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>Eclipse Version</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
@@ -298,17 +439,17 @@ public class SetupSwitch<T>
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Director Call</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>P2 Task</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Director Call</em>'.
+ * @return the result of interpreting the object as an instance of '<em>P2 Task</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseDirectorCall(DirectorCall object)
+ public T caseP2Task(P2Task object)
{
return null;
}
@@ -362,129 +503,257 @@ public class SetupSwitch<T>
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Tool Installation</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>Project</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Tool Installation</em>'.
+ * @return the result of interpreting the object as an instance of '<em>Project</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseToolInstallation(ToolInstallation object)
+ public T caseProject(Project object)
{
return null;
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Project</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>Branch</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Project</em>'.
+ * @return the result of interpreting the object as an instance of '<em>Branch</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseProject(Project object)
+ public T caseBranch(Branch object)
{
return null;
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Branch</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>Api Baseline Task</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Branch</em>'.
+ * @return the result of interpreting the object as an instance of '<em>Api Baseline Task</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseBranch(Branch object)
+ public T caseApiBaselineTask(ApiBaselineTask object)
{
return null;
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Api Baseline</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>Git Clone Task</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Api Baseline</em>'.
+ * @return the result of interpreting the object as an instance of '<em>Git Clone Task</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseApiBaseline(ApiBaseline object)
+ public T caseGitCloneTask(GitCloneTask object)
{
return null;
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Git Clone</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>Setup</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Git Clone</em>'.
+ * @return the result of interpreting the object as an instance of '<em>Setup</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseGitClone(GitClone object)
+ public T caseSetup(Setup object)
{
return null;
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Setup</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>Task</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Setup</em>'.
+ * @return the result of interpreting the object as an instance of '<em>Task</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseSetup(Setup object)
+ public T caseSetupTask(SetupTask object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Working Set Task</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Working Set Task</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseWorkingSetTask(WorkingSetTask object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Resource Copy Task</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Resource Copy Task</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseResourceCopyTask(ResourceCopyTask object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Text Modify Task</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Text Modify Task</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTextModifyTask(TextModifyTask object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Text Modification</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Text Modification</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTextModification(TextModification object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Eclipse Ini Task</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Eclipse Ini Task</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEclipseIniTask(EclipseIniTask object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Compound Setup Task</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Compound Setup Task</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCompoundSetupTask(CompoundSetupTask object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>One Time Setup Task</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>One Time Setup Task</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOneTimeSetupTask(OneTimeSetupTask object)
+ {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>Configurable Item</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Configurable Item</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConfigurableItem(ConfigurableItem object)
{
return null;
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Tool Preference</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>Buckminster Import Task</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Tool Preference</em>'.
+ * @return the result of interpreting the object as an instance of '<em>Buckminster Import Task</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseToolPreference(ToolPreference object)
+ public T caseBuckminsterImportTask(BuckminsterImportTask object)
{
return null;
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Link Location</em>'.
+ * Returns the result of interpreting the object as an instance of '<em>String Variable Task</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
* returning a non-null result will terminate the switch.
* <!-- end-user-doc -->
* @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Link Location</em>'.
+ * @return the result of interpreting the object as an instance of '<em>String Variable Task</em>'.
* @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
* @generated
*/
- public T caseLinkLocation(LinkLocation object)
+ public T caseStringVariableTask(StringVariableTask object)
{
return null;
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/StringExpander.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/StringExpander.java
new file mode 100644
index 0000000000..9213edf21f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/StringExpander.java
@@ -0,0 +1,19 @@
+/*
+ * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.setup.util;
+
+/**
+ * @author Eike Stepper
+ */
+public interface StringExpander
+{
+ public String expandString(String string);
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/TargetPlatformUtil.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/TargetPlatformUtil.java
new file mode 100644
index 0000000000..2ac501ded0
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/TargetPlatformUtil.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.setup.util;
+
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLog;
+import org.eclipse.emf.cdo.releng.setup.util.log.ProgressLogMonitor;
+
+import org.eclipse.buckminster.runtime.MonitorUtils;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.pde.core.target.ITargetDefinition;
+import org.eclipse.pde.core.target.ITargetHandle;
+import org.eclipse.pde.core.target.ITargetLocation;
+import org.eclipse.pde.core.target.ITargetPlatformService;
+import org.eclipse.pde.core.target.LoadTargetDefinitionJob;
+
+import java.io.File;
+import java.io.IOException;
+
+/**
+ * @author Eike Stepper
+ */
+public final class TargetPlatformUtil
+{
+ public static boolean hasTargetPlatform(String targetPlatformPath, ProgressLog progress)
+ {
+ ITargetPlatformService service = null;
+
+ try
+ {
+ service = ServiceUtil.getService(ITargetPlatformService.class);
+ for (ITargetHandle targetHandle : service.getTargets(new ProgressLogMonitor(progress)))
+ {
+ try
+ {
+ ITargetDefinition candidate = targetHandle.getTargetDefinition();
+ ITargetLocation[] containers = candidate.getTargetLocations();
+ if (containers == null || containers.length != 1)
+ {
+ continue;
+ }
+
+ String location = containers[0].getLocation(true);
+ if (targetPlatformPath.equals(location))
+ {
+ File file = new File(location);
+ // Check that it's a directory that contains not only "." and ".."
+ return file.isDirectory() && file.listFiles().length > 2;
+ }
+ }
+ catch (CoreException ex)
+ {
+ // Ignore
+ }
+ }
+ }
+ finally
+ {
+ ServiceUtil.ungetService(service);
+ }
+
+ return false;
+ }
+
+ public static void setTargetPlatform(String targetPlatformPath, String name, boolean active, ProgressLog progress)
+ throws Exception
+ {
+ ITargetPlatformService service = null;
+
+ try
+ {
+ service = ServiceUtil.getService(ITargetPlatformService.class);
+ ITargetDefinition target = null;
+ for (ITargetHandle targetHandle : service.getTargets(new ProgressLogMonitor(progress)))
+ {
+ ITargetDefinition candidate = targetHandle.getTargetDefinition();
+ ITargetLocation[] containers = candidate.getTargetLocations();
+ if (containers == null || containers.length != 1)
+ {
+ continue;
+ }
+
+ if (targetPlatformPath.equals(containers[0].getLocation(true)))
+ {
+ ITargetHandle activeHandle = service.getWorkspaceTargetHandle();
+ if (activeHandle != null && activeHandle.equals(targetHandle))
+ {
+ // This target is already active. Nothing left to do here
+ return;
+ }
+
+ target = candidate;
+ break;
+ }
+ }
+
+ if (target == null)
+ {
+ target = service.newTarget();
+ ITargetLocation container = service.newDirectoryLocation(targetPlatformPath);
+ target.setTargetLocations(new ITargetLocation[] { container });
+ target.setName(name);
+ File tpDir = new File(targetPlatformPath);
+ if (!tpDir.isDirectory())
+ {
+ tpDir.mkdirs();
+ if (!tpDir.isDirectory())
+ {
+ throw new IOException("Unable to create target platform directory: " + tpDir);
+ }
+ }
+ }
+
+ service.saveTargetDefinition(target);
+ if (active)
+ {
+ setTargetActive(target, new ProgressLogMonitor(progress));
+ }
+ }
+ finally
+ {
+ ServiceUtil.ungetService(service);
+ }
+ }
+
+ public static void setTargetActive(ITargetDefinition target, IProgressMonitor monitor) throws Exception
+ {
+ MonitorUtils.begin(monitor, 100);
+
+ try
+ {
+ target.resolve(MonitorUtils.subMonitor(monitor, 50));
+
+ LoadTargetDefinitionJob job = new LoadTargetDefinitionJob(target);
+ IStatus status = job.run(MonitorUtils.subMonitor(monitor, 50));
+ if (status.getSeverity() == IStatus.ERROR)
+ {
+ throw new CoreException(status);
+ }
+ }
+ finally
+ {
+ MonitorUtils.done(monitor);
+ }
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLog.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLog.java
index 98fd11f850..3123c0f59f 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLog.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLog.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.helper;
+package org.eclipse.emf.cdo.releng.setup.util.log;
import java.util.concurrent.atomic.AtomicReference;
@@ -21,5 +21,5 @@ public interface ProgressLog
public boolean isCancelled();
- public void addLine(String line);
+ public void log(String line);
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogMonitor.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogMonitor.java
index 2632d50b79..0999d3e609 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogMonitor.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogMonitor.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.helper;
+package org.eclipse.emf.cdo.releng.setup.util.log;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
@@ -42,20 +42,20 @@ public class ProgressLogMonitor extends ProgressMonitorWrapper
public void beginTask(String name, int totalWork)
{
super.beginTask(name, totalWork);
- log.addLine(name);
+ log.log(name);
}
@Override
public void setTaskName(String name)
{
super.setTaskName(name);
- log.addLine(name);
+ log.log(name);
}
@Override
public void subTask(String name)
{
super.subTask(name);
- log.addLine(name);
+ log.log(name);
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogProvider.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogProvider.java
index 40622966b3..02d15d6c34 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogProvider.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.helper;
+package org.eclipse.emf.cdo.releng.setup.util.log;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.jobs.Job;
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogRunnable.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogRunnable.java
index 84283cec9f..99dd18c9a3 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/helper/ProgressLogRunnable.java
+++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/util/log/ProgressLogRunnable.java
@@ -8,7 +8,7 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.helper;
+package org.eclipse.emf.cdo.releng.setup.util.log;
/**
* @author Eike Stepper
diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.classpath b/plugins/org.eclipse.emf.cdo.releng.ui/.classpath
new file mode 100644
index 0000000000..64c5e31b7a
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/.classpath
@@ -0,0 +1,7 @@
+<?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/plugins/org.eclipse.emf.cdo.releng.setup.ui/.project b/plugins/org.eclipse.emf.cdo.releng.ui/.project
index 92b1eab6e4..f7222c5cc8 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/.project
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/.project
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
- <name>org.eclipse.emf.cdo.releng.setup.ui</name>
+ <name>org.eclipse.emf.cdo.releng.ui</name>
<comment></comment>
<projects>
</projects>
@@ -26,8 +26,8 @@
</buildCommand>
</buildSpec>
<natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.emf.cdo.releng.version.VersionNature</nature>
</natures>
</projectDescription>
diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000000..703ca4a310
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+#Mon Jul 11 16:02:45 CEST 2011
+eclipse.preferences.version=1
+
diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000000..48aafaf7ea
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,381 @@
+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.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+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.doc.comment.support=enabled
+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.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+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=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+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.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+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=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.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.unusedObjectAllocation=ignore
+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,HIGH,LOW,LOW,LOW,LOW,LOW
+org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED
+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_annotation=0
+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_method_declaration=0
+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_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+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.alignment_for_union_type_in_multicatch=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=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.format_block_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=false
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+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.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+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.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+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=2
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=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_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=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_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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_try=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_semicolon_in_try_resources=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_try=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_try=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_semicolon_in_try_resources=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=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+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=space
+org.eclipse.jdt.core.formatter.tabulation.size=2
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000000..3fc140fcdc
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,119 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=true
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=true
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=false
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=true
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_EMFT
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_EMFT
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=ex
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" 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 * Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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 * Eike Stepper - initial API and implementation\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 Eike Stepper\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><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\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.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.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">${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">${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}</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></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_missing_override_annotations_interface_methods=false
+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=false
+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_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+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=false
+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=true
+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=true
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000000..864e30fe5d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs
new file mode 100644
index 0000000000..b050639a54
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs
@@ -0,0 +1,4 @@
+#Thu Feb 04 09:44:24 CET 2010
+eclipse.preferences.version=1
+project.repository.kind=bugzilla
+project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.mylyn.team.ui.prefs
new file mode 100644
index 0000000000..2f50f36c0c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.mylyn.team.ui.prefs
@@ -0,0 +1,3 @@
+#Thu Feb 04 09:44:24 CET 2010
+commit.comment.template=[${task.id}] ${task.description} \r\n${task.url}
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000000..0c17d59e45
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,95 @@
+#Thu Feb 04 09:44:24 CET 2010
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Error
+MISSING_EE_DESCRIPTIONS=Warning
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Ignore
+automatically_removed_unused_problem_filters=Disabled
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000000..fe01bb701d
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,31 @@
+#Thu Feb 04 09:44:24 CET 2010
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=2
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=1
+compilers.p.missing-version-import-package=1
+compilers.p.missing-version-require-bundle=1
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+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
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.ui/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000..4e46724dbb
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.emf.cdo.releng.ui;singleton:=true
+Bundle-Version: 1.0.0.qualifier
+Bundle-Name: %pluginName
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-ActivationPolicy: lazy
+Bundle-Activator: org.eclipse.emf.cdo.releng.ui.Activator
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ClassPath: .
+Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.core.filebuffers;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.jface.text;bundle-version="[3.8.0,4.0.0)",
+ org.eclipse.ui;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.ui.ide;bundle-version="[3.5.0,4.0.0)",
+ org.eclipse.pde.core;bundle-version="[3.5.0,4.0.0)"
+Export-Package: org.eclipse.emf.cdo.releng.ui;version="1.0.0";x-internal:=true,
+ org.eclipse.emf.cdo.releng.ui.preferences;version="1.0.0";x-internal:=true
+Eclipse-BuddyPolicy: dependent
diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/about.html b/plugins/org.eclipse.emf.cdo.releng.ui/about.html
new file mode 100644
index 0000000000..d35d5aed64
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>June 5, 2007</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/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/build.properties b/plugins/org.eclipse.emf.cdo.releng.ui/build.properties
index 090c97473b..fd1bda38c4 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/build.properties
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/build.properties
@@ -1,4 +1,4 @@
-# Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
+# Copyright (c) 2012 Eike Stepper (Berlin, Germany) 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
@@ -7,14 +7,19 @@
# Contributors:
# Eike Stepper - initial API and implementation
-bin.includes = .,\
- icons/,\
- META-INF/,\
- plugin.properties,\
- about.html,\
- copyright.txt
-jars.compile.order = .
+# NLS_MESSAGEFORMAT_VAR
+
source.. = src/
-output.. = bin
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ copyright.txt,\
+ plugin.properties,\
+ plugin.xml
src.includes = about.html,\
copyright.txt
+
+doc.project = org.eclipse.emf.cdo.releng.version.doc
+
+generateSourceReferences = true
diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/copyright.txt b/plugins/org.eclipse.emf.cdo.releng.ui/copyright.txt
new file mode 100644
index 0000000000..1c77978050
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/copyright.txt
@@ -0,0 +1,8 @@
+Copyright (c) 2004-2013 Eike Stepper (Berlin, Germany) 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:
+ Eike Stepper - initial API and implementation
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.ui/plugin.properties
index 409b0427e7..3aab2f8dbb 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/plugin.properties
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/plugin.properties
@@ -1,4 +1,4 @@
-# Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
+# Copyright (c) 2012 Eike Stepper (Berlin, Germany) 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
@@ -7,5 +7,5 @@
# Contributors:
# Eike Stepper - initial API and implementation
-pluginName = Setup Development Environment UI
+pluginName = Version Management Tool UI
providerName = Eclipse Modeling Project
diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.ui/plugin.xml
new file mode 100644
index 0000000000..47177ad11c
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/plugin.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<!--
+ Copyright (c) 2012 Eike Stepper (Berlin, Germany) 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:
+ Eike Stepper - initial API and implementation
+-->
+
+<plugin>
+
+ <extension
+ point="org.eclipse.ui.preferencePages">
+ <page
+ class="org.eclipse.emf.cdo.releng.ui.preferences.RelengPreferencePage"
+ id="org.eclipse.emf.cdo.releng.ui.preferences.RelengPreferencePage"
+ name="Release Engineering">
+ </page>
+ </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/emf/cdo/releng/setup/ui/Activator.java b/plugins/org.eclipse.emf.cdo.releng.ui/src/org/eclipse/emf/cdo/releng/ui/Activator.java
index 1af47fd974..30323d4555 100644
--- a/plugins/org.eclipse.emf.cdo.releng.setup.ui/src/org/eclipse/emf/cdo/releng/setup/ui/Activator.java
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/src/org/eclipse/emf/cdo/releng/ui/Activator.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) and others.
+ * Copyright (c) 2012 Eike Stepper (Berlin, Germany) 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
@@ -8,12 +8,12 @@
* Contributors:
* Eike Stepper - initial API and implementation
*/
-package org.eclipse.emf.cdo.releng.setup.ui;
+package org.eclipse.emf.cdo.releng.ui;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
@@ -23,7 +23,13 @@ import org.osgi.framework.BundleContext;
*/
public class Activator extends AbstractUIPlugin
{
- public static final String PLUGIN_ID = "org.eclipse.emf.cdo.releng.setup.ui";
+ public static final String CORRECTION_DELETE_GIF = "icons/correction_delete.gif";
+
+ public static final String CORRECTION_CHANGE_GIF = "icons/correction_change.gif";
+
+ public static final String CORRECTION_CONFIGURE_GIF = "icons/correction_configure.gif";
+
+ public static final String PLUGIN_ID = "org.eclipse.emf.cdo.releng.ui";
private static Activator plugin;
@@ -31,11 +37,26 @@ public class Activator extends AbstractUIPlugin
{
}
+ public static Activator getPlugin()
+ {
+ return plugin;
+ }
+
@Override
public void start(BundleContext context) throws Exception
{
super.start(context);
plugin = this;
+
+ registerImage(CORRECTION_CHANGE_GIF);
+ registerImage(CORRECTION_DELETE_GIF);
+ registerImage(CORRECTION_CONFIGURE_GIF);
+ }
+
+ private void registerImage(String key)
+ {
+ Image image = imageDescriptorFromPlugin(PLUGIN_ID, key).createImage();
+ getImageRegistry().put(key, image);
}
@Override
@@ -47,12 +68,7 @@ public class Activator extends AbstractUIPlugin
public static void log(String message)
{
- log(message, IStatus.INFO);
- }
-
- protected static void log(String message, int severity)
- {
- plugin.getLog().log(new Status(severity, PLUGIN_ID, message));
+ plugin.getLog().log(new Status(IStatus.INFO, PLUGIN_ID, message));
}
public static void log(IStatus status)
@@ -83,14 +99,4 @@ public class Activator extends AbstractUIPlugin
return new Status(IStatus.ERROR, PLUGIN_ID, msg, t);
}
-
- public static Activator getDefault()
- {
- return plugin;
- }
-
- public static ImageDescriptor getImageDescriptor(String path)
- {
- return imageDescriptorFromPlugin(PLUGIN_ID, path);
- }
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.ui/src/org/eclipse/emf/cdo/releng/ui/preferences/RelengPreferencePage.java b/plugins/org.eclipse.emf.cdo.releng.ui/src/org/eclipse/emf/cdo/releng/ui/preferences/RelengPreferencePage.java
new file mode 100644
index 0000000000..03f26c665f
--- /dev/null
+++ b/plugins/org.eclipse.emf.cdo.releng.ui/src/org/eclipse/emf/cdo/releng/ui/preferences/RelengPreferencePage.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2012 Eike Stepper (Berlin, Germany) 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:
+ * Eike Stepper - initial API and implementation
+ */
+package org.eclipse.emf.cdo.releng.ui.preferences;
+
+import org.eclipse.jface.preference.PreferencePage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPreferencePage;
+
+/**
+ * @author Eike Stepper
+ */
+public class RelengPreferencePage extends PreferencePage implements IWorkbenchPreferencePage
+{
+ public RelengPreferencePage()
+ {
+ super("<taken from plugin.xml>");
+ setDescription("General Release Engineering Preferences");
+ }
+
+ public void init(IWorkbench workbench)
+ {
+ // Do nothing
+ }
+
+ @Override
+ protected Control createContents(Composite parent)
+ {
+ return new Composite(parent, SWT.NULL);
+ }
+}
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/META-INF/MANIFEST.MF
index c0bbc659c0..c3089720a6 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/META-INF/MANIFEST.MF
@@ -10,6 +10,8 @@ Bundle-Localization: plugin
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Export-Package: org.eclipse.emf.cdo.releng.workingsets.provider;version="1.0.0"
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.cdo.releng.workingsets;bundle-version="[1.0.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.edit;bundle-version="[2.5.0,3.0.0)";visibility:=reexport
+ org.eclipse.emf.cdo.releng.workingsets;visibility:=reexport;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.edit;visibility:=reexport;bundle-version="[2.5.0,3.0.0)",
+ org.eclipse.emf.cdo.releng.predicates;visibility:=reexport;bundle-version="[1.0.0,2.0.0)",
+ org.eclipse.emf.cdo.releng.predicates.edit;visibility:=reexport;bundle-version="[1.0.0,2.0.0)"
Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/plugin.properties
index 7ea4dddd2b..eea0d15e75 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/plugin.properties
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/plugin.properties
@@ -33,3 +33,4 @@ _UI_WorkingSetGroup_workingSets_feature = Working Sets
_UI_NamePredicate_pattern_feature = Pattern
_UI_Unknown_feature = Unspecified
+_UI_WorkingSet_id_feature = Id
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetItemProvider.java b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetItemProvider.java
index a1caec5df8..cd709b243d 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetItemProvider.java
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetItemProvider.java
@@ -11,9 +11,7 @@
package org.eclipse.emf.cdo.releng.workingsets.provider;
import org.eclipse.emf.cdo.releng.workingsets.WorkingSet;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsFactory;
import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage;
-
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.util.ResourceLocator;
@@ -28,9 +26,9 @@ import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
import org.eclipse.emf.edit.provider.ItemProviderAdapter;
import org.eclipse.emf.edit.provider.ViewerNotification;
-
import java.util.Collection;
import java.util.List;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesFactory;
/**
* This is the item provider adapter for a {@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet} object.
@@ -170,6 +168,7 @@ public class WorkingSetItemProvider extends ItemProviderAdapter implements IEdit
switch (notification.getFeatureID(WorkingSet.class))
{
case WorkingSetsPackage.WORKING_SET__NAME:
+ case WorkingSetsPackage.WORKING_SET__ID:
fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
return;
case WorkingSetsPackage.WORKING_SET__PREDICATES:
@@ -192,7 +191,28 @@ public class WorkingSetItemProvider extends ItemProviderAdapter implements IEdit
super.collectNewChildDescriptors(newChildDescriptors, object);
newChildDescriptors.add(createChildParameter(WorkingSetsPackage.Literals.WORKING_SET__PREDICATES,
- WorkingSetsFactory.eINSTANCE.createNamePredicate()));
+ PredicatesFactory.eINSTANCE.createNamePredicate()));
+
+ newChildDescriptors.add(createChildParameter(WorkingSetsPackage.Literals.WORKING_SET__PREDICATES,
+ PredicatesFactory.eINSTANCE.createRepositoryPredicate()));
+
+ newChildDescriptors.add(createChildParameter(WorkingSetsPackage.Literals.WORKING_SET__PREDICATES,
+ PredicatesFactory.eINSTANCE.createAndPredicate()));
+
+ newChildDescriptors.add(createChildParameter(WorkingSetsPackage.Literals.WORKING_SET__PREDICATES,
+ PredicatesFactory.eINSTANCE.createOrPredicate()));
+
+ newChildDescriptors.add(createChildParameter(WorkingSetsPackage.Literals.WORKING_SET__PREDICATES,
+ PredicatesFactory.eINSTANCE.createNotPredicate()));
+
+ newChildDescriptors.add(createChildParameter(WorkingSetsPackage.Literals.WORKING_SET__PREDICATES,
+ PredicatesFactory.eINSTANCE.createNaturePredicate()));
+
+ newChildDescriptors.add(createChildParameter(WorkingSetsPackage.Literals.WORKING_SET__PREDICATES,
+ PredicatesFactory.eINSTANCE.createBuilderPredicate()));
+
+ newChildDescriptors.add(createChildParameter(WorkingSetsPackage.Literals.WORKING_SET__PREDICATES,
+ PredicatesFactory.eINSTANCE.createFilePredicate()));
}
/**
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsEditPlugin.java b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsEditPlugin.java
index ee8029d114..2f963e7e4d 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsEditPlugin.java
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsEditPlugin.java
@@ -10,6 +10,7 @@
*/
package org.eclipse.emf.cdo.releng.workingsets.provider;
+import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesEditPlugin;
import org.eclipse.emf.common.EMFPlugin;
import org.eclipse.emf.common.util.ResourceLocator;
@@ -45,7 +46,7 @@ public final class WorkingSetsEditPlugin extends EMFPlugin
*/
public WorkingSetsEditPlugin()
{
- super(new ResourceLocator[] {});
+ super(new ResourceLocator[] { PredicatesEditPlugin.INSTANCE, });
}
/**
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsItemProviderAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsItemProviderAdapterFactory.java
index 63fc58cd4d..0766222522 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsItemProviderAdapterFactory.java
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.edit/src/org/eclipse/emf/cdo/releng/workingsets/provider/WorkingSetsItemProviderAdapterFactory.java
@@ -132,31 +132,6 @@ public class WorkingSetsItemProviderAdapterFactory extends WorkingSetsAdapterFac
}
/**
- * This keeps track of the one adapter used for all {@link org.eclipse.emf.cdo.releng.workingsets.NamePredicate} instances.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- protected NamePredicateItemProvider namePredicateItemProvider;
-
- /**
- * This creates an adapter for a {@link org.eclipse.emf.cdo.releng.workingsets.NamePredicate}.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Adapter createNamePredicateAdapter()
- {
- if (namePredicateItemProvider == null)
- {
- namePredicateItemProvider = new NamePredicateItemProvider(this);
- }
-
- return namePredicateItemProvider;
- }
-
- /**
* This returns the root adapter factory that contains this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -212,7 +187,7 @@ public class WorkingSetsItemProviderAdapterFactory extends WorkingSetsAdapterFac
if (isFactoryForType(type))
{
Object adapter = super.adapt(object, type);
- if (!(type instanceof Class<?>) || ((Class<?>)type).isInstance(adapter))
+ if (!(type instanceof Class<?>) || (((Class<?>)type).isInstance(adapter)))
{
return adapter;
}
@@ -268,17 +243,9 @@ public class WorkingSetsItemProviderAdapterFactory extends WorkingSetsAdapterFac
public void dispose()
{
if (workingSetItemProvider != null)
- {
workingSetItemProvider.dispose();
- }
if (workingSetGroupItemProvider != null)
- {
workingSetGroupItemProvider.dispose();
- }
- if (namePredicateItemProvider != null)
- {
- namePredicateItemProvider.dispose();
- }
}
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/META-INF/MANIFEST.MF
index fb1f1f6f77..bd1f928cae 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/META-INF/MANIFEST.MF
@@ -12,7 +12,8 @@ Export-Package: org.eclipse.emf.cdo.releng.workingsets.presentation;version="1.0
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)";visibility:=reexport,
org.eclipse.emf.cdo.releng.workingsets.edit;bundle-version="[1.0.0,2.0.0)";visibility:=reexport,
- org.eclipse.emf.ecore.xmi;visibility:=reexport;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.emf.edit.ui;visibility:=reexport;bundle-version="[2.5.0,3.0.0)",
- org.eclipse.ui.ide;visibility:=reexport;bundle-version="[3.5.0,4.0.0)"
+ org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.edit.ui;bundle-version="[2.5.0,3.0.0)";visibility:=reexport,
+ org.eclipse.ui.ide;bundle-version="[3.5.0,4.0.0)";visibility:=reexport,
+ org.eclipse.emf.cdo.releng.predicates.edit;bundle-version="[1.0.0,2.0.0)";visibility:=reexport
Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.properties b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.properties
index ef1729083d..97efd99ae3 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.properties
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.properties
@@ -33,7 +33,7 @@ _UI_MultiObjectSelected = Selected {0} Objects
_UI_OpenEditorError_label = Open Editor
-_UI_Wizard_category = Example EMF Model Creation Wizards
+_UI_Wizard_category = Release Engineering
_UI_CreateModelError_message = Problems encountered in file "{0}"
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.xml b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.xml
index 828474b25a..41f9b292d5 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.xml
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/plugin.xml
@@ -23,6 +23,7 @@
<extension
point="org.eclipse.ui.preferencePages">
<page
+ category="org.eclipse.emf.cdo.releng.ui.preferences.RelengPreferencePage"
class="org.eclipse.emf.cdo.releng.workingsets.presentation.WorkingSetsPreferencePage"
id="org.eclipse.emf.cdo.releng.workingsets.presentation.VersionBuilderPreferencePage"
name="Dynamic Working Sets">
@@ -34,11 +35,14 @@
<category
id="org.eclipse.emf.ecore.Wizard.category.ID"
name="%_UI_Wizard_category"/>
+ <category
+ id="org.eclipse.emf.cdo.releng"
+ name="%_UI_Wizard_category"/>
<wizard
id="org.eclipse.emf.cdo.releng.workingsets.presentation.WorkingSetsModelWizardID"
name="%_UI_WorkingSetsModelWizard_label"
class="org.eclipse.emf.cdo.releng.workingsets.presentation.WorkingSetsModelWizard"
- category="org.eclipse.emf.ecore.Wizard.category.ID"
+ category="org.eclipse.emf.cdo.releng"
icon="icons/full/obj16/WorkingSetsModelFile.gif">
<description>%_UI_WorkingSetsModelWizard_description</description>
<selection class="org.eclipse.core.resources.IResource"/>
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetManager.java b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetManager.java
index 4aec8b85f6..dbaaa5c6a5 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetManager.java
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetManager.java
@@ -10,7 +10,7 @@
*/
package org.eclipse.emf.cdo.releng.workingsets.presentation;
-import org.eclipse.emf.cdo.releng.workingsets.Predicate;
+import org.eclipse.emf.cdo.releng.predicates.Predicate;
import org.eclipse.emf.cdo.releng.workingsets.WorkingSet;
import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup;
import org.eclipse.emf.cdo.releng.workingsets.util.WorkingSetsUtil;
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditor.java b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditor.java
index db28ea16b6..db7d61c916 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditor.java
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditor.java
@@ -13,6 +13,7 @@ package org.eclipse.emf.cdo.releng.workingsets.presentation;
import org.eclipse.emf.cdo.releng.workingsets.impl.PreferencesURIHandlerImpl;
import org.eclipse.emf.cdo.releng.workingsets.provider.WorkingSetsItemProviderAdapterFactory;
+import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesItemProviderAdapterFactory;
import org.eclipse.emf.common.command.BasicCommandStack;
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.common.command.CommandStack;
@@ -697,6 +698,7 @@ public class WorkingSetsEditor extends MultiPageEditorPart implements IEditingDo
adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new WorkingSetsItemProviderAdapterFactory());
+ adapterFactory.addAdapterFactory(new PredicatesItemProviderAdapterFactory());
adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
// Create the command stack that will notify this editor as commands are executed.
@@ -1480,7 +1482,7 @@ public class WorkingSetsEditor extends MultiPageEditorPart implements IEditingDo
*/
protected void doSaveAs(URI uri, IEditorInput editorInput)
{
- editingDomain.getResourceSet().getResources().get(0).setURI(uri);
+ (editingDomain.getResourceSet().getResources().get(0)).setURI(uri);
setInputWithNotify(editorInput);
setPartName(editorInput.getName());
IProgressMonitor progressMonitor = getActionBars().getStatusLineManager() != null ? getActionBars()
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditorPlugin.java b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditorPlugin.java
index b84f5a8165..e37dbc5e9a 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditorPlugin.java
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsEditorPlugin.java
@@ -10,6 +10,7 @@
*/
package org.eclipse.emf.cdo.releng.workingsets.presentation;
+import org.eclipse.emf.cdo.releng.predicates.provider.PredicatesEditPlugin;
import org.eclipse.emf.common.EMFPlugin;
import org.eclipse.emf.common.ui.EclipseUIPlugin;
import org.eclipse.emf.common.util.ResourceLocator;
@@ -48,7 +49,7 @@ public final class WorkingSetsEditorPlugin extends EMFPlugin
*/
public WorkingSetsEditorPlugin()
{
- super(new ResourceLocator[] {});
+ super(new ResourceLocator[] { PredicatesEditPlugin.INSTANCE, });
}
/**
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsPreferencePage.java b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsPreferencePage.java
index 767cfc3824..539edfa558 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsPreferencePage.java
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets.editor/src/org/eclipse/emf/cdo/releng/workingsets/presentation/WorkingSetsPreferencePage.java
@@ -10,11 +10,11 @@
*/
package org.eclipse.emf.cdo.releng.workingsets.presentation;
-import org.eclipse.emf.cdo.releng.workingsets.provider.WorkingSetsItemProviderAdapterFactory;
-import org.eclipse.emf.cdo.releng.workingsets.util.WorkingSetsAdapterFactory;
import org.eclipse.emf.cdo.releng.workingsets.util.WorkingSetsUtil;
+import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.common.ui.URIEditorInput;
+import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider;
import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider;
@@ -73,7 +73,7 @@ public class WorkingSetsPreferencePage extends PreferencePage implements IWorkbe
composite.setLayout(layout);
TreeViewer treeViewer = new TreeViewer(composite);
- WorkingSetsAdapterFactory adapterFactory = new WorkingSetsItemProviderAdapterFactory();
+ AdapterFactory adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
treeViewer.setLabelProvider(new AdapterFactoryLabelProvider(adapterFactory));
treeViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));
treeViewer.setInput(WorkingSetsUtil.getWorkingSetGroup());
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.releng.workingsets/META-INF/MANIFEST.MF
index b67d6138b0..d6efd9b362 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/META-INF/MANIFEST.MF
@@ -7,7 +7,8 @@ Bundle-Name: %pluginName
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.emf.ecore;bundle-version="[2.9.0,3.0.0)";visibility:=reexport,
+ org.eclipse.emf.ecore;visibility:=reexport;bundle-version="[2.9.0,3.0.0)",
+ org.eclipse.emf.cdo.releng.predicates;visibility:=reexport;bundle-version="[1.0.0,2.0.0)",
org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore b/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore
index 92e795e6ce..1b411afac1 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecore
@@ -3,23 +3,16 @@
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="workingsets" nsURI="http://www.eclipse.org/CDO/releng/workingsets/1.0"
nsPrefix="workingsets">
<eClassifiers xsi:type="ecore:EClass" name="WorkingSet">
- <eStructuralFeatures xsi:type="ecore:EReference" name="predicates" upperBound="-1"
- eType="#//Predicate" containment="true"/>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="predicates" upperBound="-1"
+ eType="ecore:EClass ../../org.eclipse.emf.cdo.releng.predicates/model/predicates.ecore#//Predicate"
+ containment="true"/>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="WorkingSetGroup">
<eStructuralFeatures xsi:type="ecore:EReference" name="workingSets" upperBound="-1"
eType="#//WorkingSet" containment="true" eKeys="#//WorkingSet/name"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="Predicate" abstract="true" interface="true">
- <eOperations name="matches" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
- <eParameters name="project" eType="#//Project"/>
- </eOperations>
- </eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="Project" instanceClassName="org.eclipse.core.resources.IProject"
serializable="false"/>
- <eClassifiers xsi:type="ecore:EClass" name="NamePredicate" eSuperTypes="#//Predicate">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="pattern" lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
</ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecorediag b/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecorediag
index 1fadaeec92..e82095abde 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecorediag
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.ecorediag
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_7Ik9wANJEeOzDrIpOa7NnA" type="EcoreTools" measurementUnit="Pixel">
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmi:id="_7Ik9wANJEeOzDrIpOa7NnA" type="EcoreTools" measurementUnit="Pixel">
<children xmi:type="notation:Node" xmi:id="_7JI-cANJEeOzDrIpOa7NnA" type="1001">
<children xmi:type="notation:Node" xmi:id="_7JdukANJEeOzDrIpOa7NnA" type="4001"/>
<children xmi:type="notation:Node" xmi:id="_7Je8sANJEeOzDrIpOa7NnA" type="5001">
@@ -7,6 +7,10 @@
<element xmi:type="ecore:EAttribute" href="workingsets.ecore#//WorkingSet/name"/>
<layoutConstraint xmi:type="notation:Location" xmi:id="_lY9kwQNLEeOzDrIpOa7NnA"/>
</children>
+ <children xmi:type="notation:Node" xmi:id="_fvvEMDVYEeO0we5dUm5hxw" type="2001">
+ <element xmi:type="ecore:EAttribute" href="workingsets.ecore#//WorkingSet/id"/>
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_fvvEMTVYEeO0we5dUm5hxw"/>
+ </children>
<styles xmi:type="notation:DrawerStyle" xmi:id="_7Je8sQNJEeOzDrIpOa7NnA"/>
<styles xmi:type="notation:SortingStyle" xmi:id="_7Je8sgNJEeOzDrIpOa7NnA"/>
<styles xmi:type="notation:FilteringStyle" xmi:id="_7Je8swNJEeOzDrIpOa7NnA"/>
@@ -36,26 +40,6 @@
<element xmi:type="ecore:EClass" href="workingsets.ecore#//WorkingSetGroup"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_8tuWogNJEeOzDrIpOa7NnA" x="105" y="35"/>
</children>
- <children xmi:type="notation:Node" xmi:id="_WOD9UANKEeOzDrIpOa7NnA" type="1001">
- <children xmi:type="notation:Node" xmi:id="_WOFygANKEeOzDrIpOa7NnA" type="4001"/>
- <children xmi:type="notation:Node" xmi:id="_WOFygQNKEeOzDrIpOa7NnA" type="5001">
- <styles xmi:type="notation:DrawerStyle" xmi:id="_WOFyggNKEeOzDrIpOa7NnA"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_WOFygwNKEeOzDrIpOa7NnA"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_WOFyhANKEeOzDrIpOa7NnA"/>
- </children>
- <children xmi:type="notation:Node" xmi:id="_WOGZkANKEeOzDrIpOa7NnA" type="5002">
- <children xmi:type="notation:Node" xmi:id="_X4DZ8ANKEeOzDrIpOa7NnA" type="2002">
- <element xmi:type="ecore:EOperation" href="workingsets.ecore#//Predicate/matches"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_X4DZ8QNKEeOzDrIpOa7NnA"/>
- </children>
- <styles xmi:type="notation:DrawerStyle" xmi:id="_WOGZkQNKEeOzDrIpOa7NnA"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_WOHAoANKEeOzDrIpOa7NnA"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_WOHAoQNKEeOzDrIpOa7NnA"/>
- </children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_WOD9UQNKEeOzDrIpOa7NnA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EClass" href="workingsets.ecore#//Predicate"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_WOD9UgNKEeOzDrIpOa7NnA" x="71" y="260"/>
- </children>
<children xmi:type="notation:Node" xmi:id="_bidPIANKEeOzDrIpOa7NnA" type="1004">
<children xmi:type="notation:Node" xmi:id="_bifrYANKEeOzDrIpOa7NnA" type="4008"/>
<children xmi:type="notation:Node" xmi:id="_big5gANKEeOzDrIpOa7NnA" type="4009"/>
@@ -63,25 +47,24 @@
<element xmi:type="ecore:EDataType" href="workingsets.ecore#//Project"/>
<layoutConstraint xmi:type="notation:Bounds" xmi:id="_bidPIgNKEeOzDrIpOa7NnA" x="386" y="260"/>
</children>
- <children xmi:type="notation:Node" xmi:id="_weXoYANKEeOzDrIpOa7NnA" type="1001">
- <children xmi:type="notation:Node" xmi:id="_weY2gANKEeOzDrIpOa7NnA" type="4001"/>
- <children xmi:type="notation:Node" xmi:id="_weZdkANKEeOzDrIpOa7NnA" type="5001">
- <children xmi:type="notation:Node" xmi:id="_2DFOIANKEeOzDrIpOa7NnA" type="2001">
- <element xmi:type="ecore:EAttribute" href="workingsets.ecore#//NamePredicate/pattern"/>
- <layoutConstraint xmi:type="notation:Location" xmi:id="_2DFOIQNKEeOzDrIpOa7NnA"/>
- </children>
- <styles xmi:type="notation:DrawerStyle" xmi:id="_weZdkQNKEeOzDrIpOa7NnA"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_weZdkgNKEeOzDrIpOa7NnA"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_weZdkwNKEeOzDrIpOa7NnA"/>
+ <children xmi:type="notation:Node" xmi:id="_PXT3gAvHEeOoPqB4RyWmHw" type="1001">
+ <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_PXe2oAvHEeOoPqB4RyWmHw" source="Shortcut">
+ <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_PXe2oQvHEeOoPqB4RyWmHw" key="modelID" value="EcoreTools"/>
+ </eAnnotations>
+ <children xmi:type="notation:Node" xmi:id="_PXWTwAvHEeOoPqB4RyWmHw" type="4001"/>
+ <children xmi:type="notation:Node" xmi:id="_PXW60AvHEeOoPqB4RyWmHw" type="5001">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_PXW60QvHEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PXW60gvHEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PXW60wvHEeOoPqB4RyWmHw"/>
</children>
- <children xmi:type="notation:Node" xmi:id="_weaEoANKEeOzDrIpOa7NnA" type="5002">
- <styles xmi:type="notation:DrawerStyle" xmi:id="_weaEoQNKEeOzDrIpOa7NnA"/>
- <styles xmi:type="notation:SortingStyle" xmi:id="_weaEogNKEeOzDrIpOa7NnA"/>
- <styles xmi:type="notation:FilteringStyle" xmi:id="_weaEowNKEeOzDrIpOa7NnA"/>
+ <children xmi:type="notation:Node" xmi:id="_PXW61AvHEeOoPqB4RyWmHw" type="5002">
+ <styles xmi:type="notation:DrawerStyle" xmi:id="_PXW61QvHEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:SortingStyle" xmi:id="_PXW61gvHEeOoPqB4RyWmHw"/>
+ <styles xmi:type="notation:FilteringStyle" xmi:id="_PXW61wvHEeOoPqB4RyWmHw"/>
</children>
- <styles xmi:type="notation:ShapeStyle" xmi:id="_weXoYQNKEeOzDrIpOa7NnA" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
- <element xmi:type="ecore:EClass" href="workingsets.ecore#//NamePredicate"/>
- <layoutConstraint xmi:type="notation:Bounds" xmi:id="_weXoYgNKEeOzDrIpOa7NnA" x="105" y="380"/>
+ <styles xmi:type="notation:ShapeStyle" xmi:id="_PXT3gQvHEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10" fillColor="13761016" lineColor="8421504"/>
+ <element xmi:type="ecore:EClass" href="platform:/resource/org.eclipse.emf.cdo.releng.predicates/model/predicates.ecore#//Predicate"/>
+ <layoutConstraint xmi:type="notation:Bounds" xmi:id="_PXT3ggvHEeOoPqB4RyWmHw" x="105" y="330"/>
</children>
<styles xmi:type="notation:DiagramStyle" xmi:id="_7Ik9wQNJEeOzDrIpOa7NnA"/>
<element xmi:type="ecore:EPackage" href="workingsets.ecore#/"/>
@@ -97,24 +80,17 @@
<element xmi:type="ecore:EReference" href="workingsets.ecore#//WorkingSetGroup/workingSets"/>
<bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_RTJigwNKEeOzDrIpOa7NnA" points="[-5, 24, 7, -96]$[-5, 97, 7, -23]"/>
</edges>
- <edges xmi:type="notation:Edge" xmi:id="_ogBRwANKEeOzDrIpOa7NnA" type="3002" source="_7JI-cANJEeOzDrIpOa7NnA" target="_WOD9UANKEeOzDrIpOa7NnA">
- <children xmi:type="notation:Node" xmi:id="_ogBRxANKEeOzDrIpOa7NnA" type="4011">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_ogBRxQNKEeOzDrIpOa7NnA" x="-10" y="-54"/>
+ <edges xmi:type="notation:Edge" xmi:id="_R8WAEAvHEeOoPqB4RyWmHw" type="3002" source="_7JI-cANJEeOzDrIpOa7NnA" target="_PXT3gAvHEeOoPqB4RyWmHw">
+ <children xmi:type="notation:Node" xmi:id="_R8XOMAvHEeOoPqB4RyWmHw" type="4011">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R8XOMQvHEeOoPqB4RyWmHw" x="-20" y="-69"/>
</children>
- <children xmi:type="notation:Node" xmi:id="_ogBRxgNKEeOzDrIpOa7NnA" type="4012">
- <layoutConstraint xmi:type="notation:Location" xmi:id="_ogBRxwNKEeOzDrIpOa7NnA" x="-10" y="32"/>
+ <children xmi:type="notation:Node" xmi:id="_R8XOMgvHEeOoPqB4RyWmHw" type="4012">
+ <layoutConstraint xmi:type="notation:Location" xmi:id="_R8XOMwvHEeOoPqB4RyWmHw" x="-20" y="48"/>
</children>
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_ogBRwQNKEeOzDrIpOa7NnA" routing="Rectilinear" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_ogBRwgNKEeOzDrIpOa7NnA" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
+ <styles xmi:type="notation:ConnectorStyle" xmi:id="_R8WAEQvHEeOoPqB4RyWmHw" routing="Rectilinear" lineColor="4210752"/>
+ <styles xmi:type="notation:FontStyle" xmi:id="_R8WAEgvHEeOoPqB4RyWmHw" fontColor="4210752" fontName="Segoe UI" fontHeight="10"/>
<element xmi:type="ecore:EReference" href="workingsets.ecore#//WorkingSet/predicates"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ogBRwwNKEeOzDrIpOa7NnA" points="[0, 25, 48, -64]$[0, 81, 48, -8]"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_ogDG8ANKEeOzDrIpOa7NnA" id="(0.25102880658436216,0.1746031746031746)"/>
- </edges>
- <edges xmi:type="notation:Edge" xmi:id="_0QkHoANKEeOzDrIpOa7NnA" type="3003" source="_weXoYANKEeOzDrIpOa7NnA" target="_WOD9UANKEeOzDrIpOa7NnA">
- <styles xmi:type="notation:ConnectorStyle" xmi:id="_0QkHoQNKEeOzDrIpOa7NnA" routing="Rectilinear" lineColor="4210752"/>
- <styles xmi:type="notation:FontStyle" xmi:id="_0QkHogNKEeOzDrIpOa7NnA" fontName="Segoe UI"/>
- <element xsi:nil="true"/>
- <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_0QkHowNKEeOzDrIpOa7NnA" points="[0, -24, 39, 82]$[0, -95, 39, 11]"/>
- <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_0QvGwANKEeOzDrIpOa7NnA" id="(0.2962962962962963,0.7936507936507936)"/>
+ <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_R8WAEwvHEeOoPqB4RyWmHw" points="[0, 42, 30, -91]$[0, 133, 30, 0]"/>
+ <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_R8ctwAvHEeOoPqB4RyWmHw" id="(0.3497942386831276,0.011627906976744186)"/>
</edges>
</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.genmodel b/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.genmodel
index 4a3e012652..dbfd1f8d63 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.genmodel
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/model/workingsets.genmodel
@@ -6,25 +6,19 @@
editorPluginClass="org.eclipse.emf.cdo.releng.workingsets.presentation.WorkingSetsEditorPlugin"
rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" codeFormatting="true"
testsDirectory="" importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0"
- copyrightFields="false" operationReflection="true" importOrganizing="true" decoration="Live">
+ copyrightFields="false" usedGenPackages="../../org.eclipse.emf.cdo.releng.predicates/model/predicates.genmodel#//predicates"
+ operationReflection="true" importOrganizing="true" decoration="Live">
<foreignModel>workingsets.ecore</foreignModel>
<genPackages prefix="WorkingSets" basePackage="org.eclipse.emf.cdo.releng" disposableProviderFactory="true"
multipleEditorPages="false" ecorePackage="workingsets.ecore#/">
<genDataTypes ecoreDataType="workingsets.ecore#//Project"/>
<genClasses ecoreClass="workingsets.ecore#//WorkingSet">
- <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference workingsets.ecore#//WorkingSet/predicates"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute workingsets.ecore#//WorkingSet/name"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference workingsets.ecore#//WorkingSet/predicates"/>
+ <genFeatures property="None" createChild="false" ecoreFeature="ecore:EAttribute workingsets.ecore#//WorkingSet/id"/>
</genClasses>
<genClasses ecoreClass="workingsets.ecore#//WorkingSetGroup">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference workingsets.ecore#//WorkingSetGroup/workingSets"/>
</genClasses>
- <genClasses ecoreClass="workingsets.ecore#//Predicate">
- <genOperations ecoreOperation="workingsets.ecore#//Predicate/matches">
- <genParameters ecoreParameter="workingsets.ecore#//Predicate/matches/project"/>
- </genOperations>
- </genClasses>
- <genClasses ecoreClass="workingsets.ecore#//NamePredicate">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute workingsets.ecore#//NamePredicate/pattern"/>
- </genClasses>
</genPackages>
</genmodel:GenModel>
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/Predicate.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/Predicate.java
deleted file mode 100644
index a81f910094..0000000000
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/Predicate.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2013 Eike Stepper (Berlin, Germany) 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:
- * Eike Stepper - initial API and implementation
- */
-package org.eclipse.emf.cdo.releng.workingsets;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.eclipse.core.resources.IProject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Predicate</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage#getPredicate()
- * @model interface="true" abstract="true"
- * @generated
- */
-public interface Predicate extends EObject
-{
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @model projectDataType="org.eclipse.emf.cdo.releng.workingsets.Project"
- * @generated
- */
- boolean matches(IProject project);
-
-} // Predicate
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSet.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSet.java
index 615044bc6e..7ebf110ab6 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSet.java
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSet.java
@@ -10,6 +10,7 @@
*/
package org.eclipse.emf.cdo.releng.workingsets;
+import org.eclipse.emf.cdo.releng.predicates.Predicate;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EObject;
@@ -21,8 +22,9 @@ import org.eclipse.emf.ecore.EObject;
* <p>
* The following features are supported:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getPredicates <em>Predicates</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getPredicates <em>Predicates</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getId <em>Id</em>}</li>
* </ul>
* </p>
*
@@ -34,7 +36,7 @@ public interface WorkingSet extends EObject
{
/**
* Returns the value of the '<em><b>Predicates</b></em>' containment reference list.
- * The list contents are of type {@link org.eclipse.emf.cdo.releng.workingsets.Predicate}.
+ * The list contents are of type {@link org.eclipse.emf.cdo.releng.predicates.Predicate}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Predicates</em>' containment reference list isn't clear,
@@ -49,19 +51,45 @@ public interface WorkingSet extends EObject
EList<Predicate> getPredicates();
/**
- * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
* <!-- begin-user-doc -->
* <p>
- * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
- * @return the value of the '<em>Name</em>' attribute.
- * @see #setName(String)
- * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage#getWorkingSet_Name()
- * @model required="true"
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage#getWorkingSet_Id()
+ * @model
* @generated
*/
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage#getWorkingSet_Name()
+ * @model required="true"
+ * @generated
+ */
String getName();
/**
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsFactory.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsFactory.java
index 8bf4547757..7956d18d5f 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsFactory.java
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsFactory.java
@@ -49,15 +49,6 @@ public interface WorkingSetsFactory extends EFactory
WorkingSetGroup createWorkingSetGroup();
/**
- * Returns a new object of class '<em>Name Predicate</em>'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return a new object of class '<em>Name Predicate</em>'.
- * @generated
- */
- NamePredicate createNamePredicate();
-
- /**
* Returns the package supported by this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsPackage.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsPackage.java
index 4450bdf9d2..59d098ee3a 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsPackage.java
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/WorkingSetsPackage.java
@@ -13,7 +13,6 @@ package org.eclipse.emf.cdo.releng.workingsets;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
@@ -78,31 +77,40 @@ public interface WorkingSetsPackage extends EPackage
int WORKING_SET = 0;
/**
- * The feature id for the '<em><b>Predicates</b></em>' containment reference list.
+ * The feature id for the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int WORKING_SET__PREDICATES = 0;
+ int WORKING_SET__NAME = 0;
/**
- * The feature id for the '<em><b>Name</b></em>' attribute.
+ * The feature id for the '<em><b>Predicates</b></em>' containment reference list.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
+ * <!-- end-user-doc -->
* @generated
* @ordered
*/
- int WORKING_SET__NAME = 1;
+ int WORKING_SET__PREDICATES = 1;
/**
- * The number of structural features of the '<em>Working Set</em>' class.
+ * The feature id for the '<em><b>Id</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int WORKING_SET_FEATURE_COUNT = 2;
+ int WORKING_SET__ID = 2;
+
+ /**
+ * The number of structural features of the '<em>Working Set</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int WORKING_SET_FEATURE_COUNT = 3;
/**
* The number of operations of the '<em>Working Set</em>' class.
@@ -151,89 +159,6 @@ public interface WorkingSetsPackage extends EPackage
int WORKING_SET_GROUP_OPERATION_COUNT = 0;
/**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.workingsets.Predicate <em>Predicate</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.workingsets.Predicate
- * @see org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetsPackageImpl#getPredicate()
- * @generated
- */
- int PREDICATE = 2;
-
- /**
- * The number of structural features of the '<em>Predicate</em>' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int PREDICATE_FEATURE_COUNT = 0;
-
- /**
- * The operation id for the '<em>Matches</em>' operation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int PREDICATE___MATCHES__IPROJECT = 0;
-
- /**
- * The number of operations of the '<em>Predicate</em>' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int PREDICATE_OPERATION_COUNT = 1;
-
- /**
- * The meta object id for the '{@link org.eclipse.emf.cdo.releng.workingsets.impl.NamePredicateImpl <em>Name Predicate</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.workingsets.impl.NamePredicateImpl
- * @see org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetsPackageImpl#getNamePredicate()
- * @generated
- */
- int NAME_PREDICATE = 3;
-
- /**
- * The feature id for the '<em><b>Pattern</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int NAME_PREDICATE__PATTERN = PREDICATE_FEATURE_COUNT + 0;
-
- /**
- * The number of structural features of the '<em>Name Predicate</em>' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int NAME_PREDICATE_FEATURE_COUNT = PREDICATE_FEATURE_COUNT + 1;
-
- /**
- * The operation id for the '<em>Matches</em>' operation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int NAME_PREDICATE___MATCHES__IPROJECT = PREDICATE___MATCHES__IPROJECT;
-
- /**
- * The number of operations of the '<em>Name Predicate</em>' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- * @ordered
- */
- int NAME_PREDICATE_OPERATION_COUNT = PREDICATE_OPERATION_COUNT + 0;
-
- /**
* The meta object id for the '<em>Project</em>' data type.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -241,7 +166,7 @@ public interface WorkingSetsPackage extends EPackage
* @see org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetsPackageImpl#getProject()
* @generated
*/
- int PROJECT = 4;
+ int PROJECT = 2;
/**
* Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet <em>Working Set</em>}'.
@@ -265,14 +190,25 @@ public interface WorkingSetsPackage extends EPackage
EReference getWorkingSet_Predicates();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getName <em>Name</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getId <em>Id</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Name</em>'.
- * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getName()
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getId()
* @see #getWorkingSet()
* @generated
*/
+ EAttribute getWorkingSet_Id();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.emf.cdo.releng.workingsets.WorkingSet#getName()
+ * @see #getWorkingSet()
+ * @generated
+ */
EAttribute getWorkingSet_Name();
/**
@@ -297,47 +233,6 @@ public interface WorkingSetsPackage extends EPackage
EReference getWorkingSetGroup_WorkingSets();
/**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.workingsets.Predicate <em>Predicate</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for class '<em>Predicate</em>'.
- * @see org.eclipse.emf.cdo.releng.workingsets.Predicate
- * @generated
- */
- EClass getPredicate();
-
- /**
- * Returns the meta object for the '{@link org.eclipse.emf.cdo.releng.workingsets.Predicate#matches(org.eclipse.core.resources.IProject) <em>Matches</em>}' operation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the '<em>Matches</em>' operation.
- * @see org.eclipse.emf.cdo.releng.workingsets.Predicate#matches(org.eclipse.core.resources.IProject)
- * @generated
- */
- EOperation getPredicate__Matches__IProject();
-
- /**
- * Returns the meta object for class '{@link org.eclipse.emf.cdo.releng.workingsets.NamePredicate <em>Name Predicate</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for class '<em>Name Predicate</em>'.
- * @see org.eclipse.emf.cdo.releng.workingsets.NamePredicate
- * @generated
- */
- EClass getNamePredicate();
-
- /**
- * Returns the meta object for the attribute '{@link org.eclipse.emf.cdo.releng.workingsets.NamePredicate#getPattern <em>Pattern</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Pattern</em>'.
- * @see org.eclipse.emf.cdo.releng.workingsets.NamePredicate#getPattern()
- * @see #getNamePredicate()
- * @generated
- */
- EAttribute getNamePredicate_Pattern();
-
- /**
* Returns the meta object for data type '{@link org.eclipse.core.resources.IProject <em>Project</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -391,11 +286,19 @@ public interface WorkingSetsPackage extends EPackage
EReference WORKING_SET__PREDICATES = eINSTANCE.getWorkingSet_Predicates();
/**
- * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Id</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
+ EAttribute WORKING_SET__ID = eINSTANCE.getWorkingSet_Id();
+
+ /**
+ * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
EAttribute WORKING_SET__NAME = eINSTANCE.getWorkingSet_Name();
/**
@@ -417,42 +320,6 @@ public interface WorkingSetsPackage extends EPackage
EReference WORKING_SET_GROUP__WORKING_SETS = eINSTANCE.getWorkingSetGroup_WorkingSets();
/**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.workingsets.Predicate <em>Predicate</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.workingsets.Predicate
- * @see org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetsPackageImpl#getPredicate()
- * @generated
- */
- EClass PREDICATE = eINSTANCE.getPredicate();
-
- /**
- * The meta object literal for the '<em><b>Matches</b></em>' operation.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EOperation PREDICATE___MATCHES__IPROJECT = eINSTANCE.getPredicate__Matches__IProject();
-
- /**
- * The meta object literal for the '{@link org.eclipse.emf.cdo.releng.workingsets.impl.NamePredicateImpl <em>Name Predicate</em>}' class.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see org.eclipse.emf.cdo.releng.workingsets.impl.NamePredicateImpl
- * @see org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetsPackageImpl#getNamePredicate()
- * @generated
- */
- EClass NAME_PREDICATE = eINSTANCE.getNamePredicate();
-
- /**
- * The meta object literal for the '<em><b>Pattern</b></em>' attribute feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EAttribute NAME_PREDICATE__PATTERN = eINSTANCE.getNamePredicate_Pattern();
-
- /**
* The meta object literal for the '<em>Project</em>' data type.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetImpl.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetImpl.java
index 2a489abc72..4f4648b555 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetImpl.java
@@ -10,10 +10,8 @@
*/
package org.eclipse.emf.cdo.releng.workingsets.impl;
-import org.eclipse.emf.cdo.releng.workingsets.Predicate;
import org.eclipse.emf.cdo.releng.workingsets.WorkingSet;
import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage;
-
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
@@ -23,8 +21,8 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
import org.eclipse.emf.ecore.util.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.InternalEList;
-
import java.util.Collection;
+import org.eclipse.emf.cdo.releng.predicates.Predicate;
/**
* <!-- begin-user-doc -->
@@ -33,8 +31,9 @@ import java.util.Collection;
* <p>
* The following features are implemented:
* <ul>
- * <li>{@link org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetImpl#getPredicates <em>Predicates</em>}</li>
* <li>{@link org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetImpl#getPredicates <em>Predicates</em>}</li>
+ * <li>{@link org.eclipse.emf.cdo.releng.workingsets.impl.WorkingSetImpl#getId <em>Id</em>}</li>
* </ul>
* </p>
*
@@ -43,40 +42,60 @@ import java.util.Collection;
public class WorkingSetImpl extends MinimalEObjectImpl.Container implements WorkingSet
{
/**
- * The cached value of the '{@link #getPredicates() <em>Predicates</em>}' containment reference list.
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see #getPredicates()
+ * @see #getName()
* @generated
* @ordered
*/
- protected EList<Predicate> predicates;
+ protected static final String NAME_EDEFAULT = null;
/**
- * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #getName()
* @generated
* @ordered
*/
- protected static final String NAME_EDEFAULT = null;
+ protected String name = NAME_EDEFAULT;
/**
- * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * The cached value of the '{@link #getPredicates() <em>Predicates</em>}' containment reference list.
* <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getName()
+ * <!-- end-user-doc -->
+ * @see #getPredicates()
* @generated
* @ordered
*/
- protected String name = NAME_EDEFAULT;
+ protected EList<Predicate> predicates;
/**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see #getId()
* @generated
+ * @ordered
*/
+ protected static final String ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected String id = ID_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
protected WorkingSetImpl()
{
super();
@@ -113,6 +132,29 @@ public class WorkingSetImpl extends MinimalEObjectImpl.Container implements Work
* <!-- end-user-doc -->
* @generated
*/
+ public String getId()
+ {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setId(String newId)
+ {
+ String oldId = id;
+ id = newId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, WorkingSetsPackage.WORKING_SET__ID, oldId, id));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public String getName()
{
return name;
@@ -157,10 +199,12 @@ public class WorkingSetImpl extends MinimalEObjectImpl.Container implements Work
{
switch (featureID)
{
- case WorkingSetsPackage.WORKING_SET__PREDICATES:
- return getPredicates();
case WorkingSetsPackage.WORKING_SET__NAME:
return getName();
+ case WorkingSetsPackage.WORKING_SET__PREDICATES:
+ return getPredicates();
+ case WorkingSetsPackage.WORKING_SET__ID:
+ return getId();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -176,12 +220,15 @@ public class WorkingSetImpl extends MinimalEObjectImpl.Container implements Work
{
switch (featureID)
{
+ case WorkingSetsPackage.WORKING_SET__NAME:
+ setName((String)newValue);
+ return;
case WorkingSetsPackage.WORKING_SET__PREDICATES:
getPredicates().clear();
getPredicates().addAll((Collection<? extends Predicate>)newValue);
return;
- case WorkingSetsPackage.WORKING_SET__NAME:
- setName((String)newValue);
+ case WorkingSetsPackage.WORKING_SET__ID:
+ setId((String)newValue);
return;
}
super.eSet(featureID, newValue);
@@ -197,11 +244,14 @@ public class WorkingSetImpl extends MinimalEObjectImpl.Container implements Work
{
switch (featureID)
{
+ case WorkingSetsPackage.WORKING_SET__NAME:
+ setName(NAME_EDEFAULT);
+ return;
case WorkingSetsPackage.WORKING_SET__PREDICATES:
getPredicates().clear();
return;
- case WorkingSetsPackage.WORKING_SET__NAME:
- setName(NAME_EDEFAULT);
+ case WorkingSetsPackage.WORKING_SET__ID:
+ setId(ID_EDEFAULT);
return;
}
super.eUnset(featureID);
@@ -217,10 +267,12 @@ public class WorkingSetImpl extends MinimalEObjectImpl.Container implements Work
{
switch (featureID)
{
- case WorkingSetsPackage.WORKING_SET__PREDICATES:
- return predicates != null && !predicates.isEmpty();
case WorkingSetsPackage.WORKING_SET__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case WorkingSetsPackage.WORKING_SET__PREDICATES:
+ return predicates != null && !predicates.isEmpty();
+ case WorkingSetsPackage.WORKING_SET__ID:
+ return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
}
return super.eIsSet(featureID);
}
@@ -239,6 +291,8 @@ public class WorkingSetImpl extends MinimalEObjectImpl.Container implements Work
StringBuffer result = new StringBuffer(super.toString());
result.append(" (name: ");
result.append(name);
+ result.append(", id: ");
+ result.append(id);
result.append(')');
return result.toString();
}
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsFactoryImpl.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsFactoryImpl.java
index eaa1411f84..bed7e75bbd 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsFactoryImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsFactoryImpl.java
@@ -10,11 +10,7 @@
*/
package org.eclipse.emf.cdo.releng.workingsets.impl;
-import org.eclipse.emf.cdo.releng.workingsets.NamePredicate;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSet;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsFactory;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage;
+import org.eclipse.emf.cdo.releng.workingsets.*;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EObject;
@@ -79,8 +75,6 @@ public class WorkingSetsFactoryImpl extends EFactoryImpl implements WorkingSetsF
return createWorkingSet();
case WorkingSetsPackage.WORKING_SET_GROUP:
return createWorkingSetGroup();
- case WorkingSetsPackage.NAME_PREDICATE:
- return createNamePredicate();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
}
@@ -143,17 +137,6 @@ public class WorkingSetsFactoryImpl extends EFactoryImpl implements WorkingSetsF
* <!-- end-user-doc -->
* @generated
*/
- public NamePredicate createNamePredicate()
- {
- NamePredicateImpl namePredicate = new NamePredicateImpl();
- return namePredicate;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
public WorkingSetsPackage getWorkingSetsPackage()
{
return (WorkingSetsPackage)getEPackage();
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsPackageImpl.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsPackageImpl.java
index 1fbf3786bf..b1241d98a6 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsPackageImpl.java
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/impl/WorkingSetsPackageImpl.java
@@ -10,22 +10,18 @@
*/
package org.eclipse.emf.cdo.releng.workingsets.impl;
-import org.eclipse.emf.cdo.releng.workingsets.NamePredicate;
-import org.eclipse.emf.cdo.releng.workingsets.Predicate;
import org.eclipse.emf.cdo.releng.workingsets.WorkingSet;
import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup;
import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsFactory;
import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage;
-
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.impl.EPackageImpl;
-
import org.eclipse.core.resources.IProject;
+import org.eclipse.emf.cdo.releng.predicates.PredicatesPackage;
/**
* <!-- begin-user-doc -->
@@ -54,20 +50,6 @@ public class WorkingSetsPackageImpl extends EPackageImpl implements WorkingSetsP
* <!-- end-user-doc -->
* @generated
*/
- private EClass predicateEClass = null;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- private EClass namePredicateEClass = null;
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
private EDataType projectEDataType = null;
/**
@@ -120,6 +102,9 @@ public class WorkingSetsPackageImpl extends EPackageImpl implements WorkingSetsP
isInited = true;
+ // Initialize simple dependencies
+ PredicatesPackage.eINSTANCE.eClass();
+
// Create package meta-data objects
theWorkingSetsPackage.createPackageContents();
@@ -151,7 +136,7 @@ public class WorkingSetsPackageImpl extends EPackageImpl implements WorkingSetsP
*/
public EReference getWorkingSet_Predicates()
{
- return (EReference)workingSetEClass.getEStructuralFeatures().get(0);
+ return (EReference)workingSetEClass.getEStructuralFeatures().get(1);
}
/**
@@ -159,9 +144,19 @@ public class WorkingSetsPackageImpl extends EPackageImpl implements WorkingSetsP
* <!-- end-user-doc -->
* @generated
*/
+ public EAttribute getWorkingSet_Id()
+ {
+ return (EAttribute)workingSetEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public EAttribute getWorkingSet_Name()
{
- return (EAttribute)workingSetEClass.getEStructuralFeatures().get(1);
+ return (EAttribute)workingSetEClass.getEStructuralFeatures().get(0);
}
/**
@@ -189,46 +184,6 @@ public class WorkingSetsPackageImpl extends EPackageImpl implements WorkingSetsP
* <!-- end-user-doc -->
* @generated
*/
- public EClass getPredicate()
- {
- return predicateEClass;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EOperation getPredicate__Matches__IProject()
- {
- return predicateEClass.getEOperations().get(0);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EClass getNamePredicate()
- {
- return namePredicateEClass;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- public EAttribute getNamePredicate_Pattern()
- {
- return (EAttribute)namePredicateEClass.getEStructuralFeatures().get(0);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
public EDataType getProject()
{
return projectEDataType;
@@ -266,18 +221,13 @@ public class WorkingSetsPackageImpl extends EPackageImpl implements WorkingSetsP
// Create classes and their features
workingSetEClass = createEClass(WORKING_SET);
- createEReference(workingSetEClass, WORKING_SET__PREDICATES);
createEAttribute(workingSetEClass, WORKING_SET__NAME);
+ createEReference(workingSetEClass, WORKING_SET__PREDICATES);
+ createEAttribute(workingSetEClass, WORKING_SET__ID);
workingSetGroupEClass = createEClass(WORKING_SET_GROUP);
createEReference(workingSetGroupEClass, WORKING_SET_GROUP__WORKING_SETS);
- predicateEClass = createEClass(PREDICATE);
- createEOperation(predicateEClass, PREDICATE___MATCHES__IPROJECT);
-
- namePredicateEClass = createEClass(NAME_PREDICATE);
- createEAttribute(namePredicateEClass, NAME_PREDICATE__PATTERN);
-
// Create data types
projectEDataType = createEDataType(PROJECT);
}
@@ -307,21 +257,26 @@ public class WorkingSetsPackageImpl extends EPackageImpl implements WorkingSetsP
setNsPrefix(eNS_PREFIX);
setNsURI(eNS_URI);
+ // Obtain other dependent packages
+ PredicatesPackage thePredicatesPackage = (PredicatesPackage)EPackage.Registry.INSTANCE
+ .getEPackage(PredicatesPackage.eNS_URI);
+
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
- namePredicateEClass.getESuperTypes().add(this.getPredicate());
// Initialize classes, features, and operations; add parameters
initEClass(workingSetEClass, WorkingSet.class, "WorkingSet", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
- initEReference(getWorkingSet_Predicates(), this.getPredicate(), null, "predicates", null, 0, -1, WorkingSet.class,
- !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE,
- !IS_DERIVED, IS_ORDERED);
initEAttribute(getWorkingSet_Name(), ecorePackage.getEString(), "name", null, 1, 1, WorkingSet.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getWorkingSet_Predicates(), thePredicatesPackage.getPredicate(), null, "predicates", null, 0, -1,
+ WorkingSet.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getWorkingSet_Id(), ecorePackage.getEString(), "id", null, 0, 1, WorkingSet.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(workingSetGroupEClass, WorkingSetGroup.class, "WorkingSetGroup", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
@@ -330,17 +285,6 @@ public class WorkingSetsPackageImpl extends EPackageImpl implements WorkingSetsP
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
getWorkingSetGroup_WorkingSets().getEKeys().add(this.getWorkingSet_Name());
- initEClass(predicateEClass, Predicate.class, "Predicate", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
- EOperation op = initEOperation(getPredicate__Matches__IProject(), ecorePackage.getEBoolean(), "matches", 0, 1,
- IS_UNIQUE, IS_ORDERED);
- addEParameter(op, this.getProject(), "project", 0, 1, IS_UNIQUE, IS_ORDERED);
-
- initEClass(namePredicateEClass, NamePredicate.class, "NamePredicate", !IS_ABSTRACT, !IS_INTERFACE,
- IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getNamePredicate_Pattern(), ecorePackage.getEString(), "pattern", null, 1, 1, NamePredicate.class,
- !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
// Initialize data types
initEDataType(projectEDataType, IProject.class, "Project", !IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsAdapterFactory.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsAdapterFactory.java
index 3a82879a1c..4ffaac018a 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsAdapterFactory.java
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsAdapterFactory.java
@@ -10,11 +10,7 @@
*/
package org.eclipse.emf.cdo.releng.workingsets.util;
-import org.eclipse.emf.cdo.releng.workingsets.NamePredicate;
-import org.eclipse.emf.cdo.releng.workingsets.Predicate;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSet;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage;
+import org.eclipse.emf.cdo.releng.workingsets.*;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
@@ -95,18 +91,6 @@ public class WorkingSetsAdapterFactory extends AdapterFactoryImpl
}
@Override
- public Adapter casePredicate(Predicate object)
- {
- return createPredicateAdapter();
- }
-
- @Override
- public Adapter caseNamePredicate(NamePredicate object)
- {
- return createNamePredicateAdapter();
- }
-
- @Override
public Adapter defaultCase(EObject object)
{
return createEObjectAdapter();
@@ -158,36 +142,6 @@ public class WorkingSetsAdapterFactory extends AdapterFactoryImpl
}
/**
- * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.workingsets.Predicate <em>Predicate</em>}'.
- * <!-- begin-user-doc -->
- * This default implementation returns null so that we can easily ignore cases;
- * it's useful to ignore a case when inheritance will catch all the cases anyway.
- * <!-- end-user-doc -->
- * @return the new adapter.
- * @see org.eclipse.emf.cdo.releng.workingsets.Predicate
- * @generated
- */
- public Adapter createPredicateAdapter()
- {
- return null;
- }
-
- /**
- * Creates a new adapter for an object of class '{@link org.eclipse.emf.cdo.releng.workingsets.NamePredicate <em>Name Predicate</em>}'.
- * <!-- begin-user-doc -->
- * This default implementation returns null so that we can easily ignore cases;
- * it's useful to ignore a case when inheritance will catch all the cases anyway.
- * <!-- end-user-doc -->
- * @return the new adapter.
- * @see org.eclipse.emf.cdo.releng.workingsets.NamePredicate
- * @generated
- */
- public Adapter createNamePredicateAdapter()
- {
- return null;
- }
-
- /**
* Creates a new adapter for the default case.
* <!-- begin-user-doc -->
* This default implementation returns null.
diff --git a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsSwitch.java b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsSwitch.java
index 0001938b45..0269b870ad 100644
--- a/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsSwitch.java
+++ b/plugins/org.eclipse.emf.cdo.releng.workingsets/src/org/eclipse/emf/cdo/releng/workingsets/util/WorkingSetsSwitch.java
@@ -10,11 +10,7 @@
*/
package org.eclipse.emf.cdo.releng.workingsets.util;
-import org.eclipse.emf.cdo.releng.workingsets.NamePredicate;
-import org.eclipse.emf.cdo.releng.workingsets.Predicate;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSet;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSetGroup;
-import org.eclipse.emf.cdo.releng.workingsets.WorkingSetsPackage;
+import org.eclipse.emf.cdo.releng.workingsets.*;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.util.Switch;
@@ -98,24 +94,6 @@ public class WorkingSetsSwitch<T> extends Switch<T>
result = defaultCase(theEObject);
return result;
}
- case WorkingSetsPackage.PREDICATE:
- {
- Predicate predicate = (Predicate)theEObject;
- T result = casePredicate(predicate);
- if (result == null)
- result = defaultCase(theEObject);
- return result;
- }
- case WorkingSetsPackage.NAME_PREDICATE:
- {
- NamePredicate namePredicate = (NamePredicate)theEObject;
- T result = caseNamePredicate(namePredicate);
- if (result == null)
- result = casePredicate(namePredicate);
- if (result == null)
- result = defaultCase(theEObject);
- return result;
- }
default:
return defaultCase(theEObject);
}
@@ -154,38 +132,6 @@ public class WorkingSetsSwitch<T> extends Switch<T>
}
/**
- * Returns the result of interpreting the object as an instance of '<em>Predicate</em>'.
- * <!-- begin-user-doc -->
- * This implementation returns null;
- * returning a non-null result will terminate the switch.
- * <!-- end-user-doc -->
- * @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Predicate</em>'.
- * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
- * @generated
- */
- public T casePredicate(Predicate object)
- {
- return null;
- }
-
- /**
- * Returns the result of interpreting the object as an instance of '<em>Name Predicate</em>'.
- * <!-- begin-user-doc -->
- * This implementation returns null;
- * returning a non-null result will terminate the switch.
- * <!-- end-user-doc -->
- * @param object the target of the switch.
- * @return the result of interpreting the object as an instance of '<em>Name Predicate</em>'.
- * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
- * @generated
- */
- public T caseNamePredicate(NamePredicate object)
- {
- return null;
- }
-
- /**
* Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
diff --git a/plugins/org.eclipse.emf.cdo.releng/local.setup b/plugins/org.eclipse.emf.cdo.releng/local.setup
index fc8d0d4695..d732153c6f 100644
--- a/plugins/org.eclipse.emf.cdo.releng/local.setup
+++ b/plugins/org.eclipse.emf.cdo.releng/local.setup
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="ASCII"?>
-<setup:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:setup="http://www.eclipse.org/CDO/releng/setup/1.0" xmlns:workingsets="http://www.eclipse.org/CDO/releng/workingsets/1.0" name="CDO">
- <configuration href="../org.eclipse.emf.cdo.releng.setup/model/My.setup#/"/>
+<setup:Project xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:predicates="http://www.eclipse.org/CDO/releng/predicates/1.0" xmlns:setup="http://www.eclipse.org/CDO/releng/setup/1.0" name="CDO">
<setupTasks xsi:type="setup:P2Task">
<p2Repositories url="http://download.eclipse.org/releases/kepler"/>
<p2Repositories url="http://download.eclipse.org/modeling/emf/cdo/updates/integration"/>
@@ -16,16 +15,6 @@
<installableUnits id="org.eclipse.emf.cdo.releng.tasks.feature.group"/>
<installableUnits id="org.eclipse.emf.cdo.releng.version.feature.group"/>
<installableUnits id="org.eclipse.emf.cdo.releng.workingsets.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.github.feature.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.hudson.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.ide_feature.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.java_feature.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.pde_feature.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.team_feature.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.gerrit.feature.feature.group"/>
- <installableUnits id="org.eclipse.mylyn_feature.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.bugzilla_feature.feature.group"/>
- <installableUnits id="org.eclipse.mylyn.git.feature.group"/>
<installableUnits id="org.eclipse.egit.feature.group"/>
<installableUnits id="org.eclipse.egit.mylyn.feature.group"/>
<installableUnits id="org.eclipse.buckminster.core.feature.feature.group"/>
@@ -36,64 +25,65 @@
<setupTasks xsi:type="setup:EclipseIniTask" option="-data" value="${setup.branch.dir}/ws"/>
<setupTasks xsi:type="setup:EclipseIniTask" option="-Djgit.gitprefix" value="=${setup.git.prefix}" vm="true"/>
<setupTasks xsi:type="setup:EclipseIniTask" option="-Dorg.eclipse.buckminster.core.bundle.pool" value="=${setup.install.dir}/.p2pool-tp" vm="true"/>
+ <setupTasks xsi:type="setup:EclipseIniTask" option="-Xmx" value="2048m" vm="true"/>
<setupTasks xsi:type="setup:EclipsePreferenceTask" key="instance/org.eclipse.jdt.launching/org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE" value="ignore"/>
<setupTasks xsi:type="setup:EclipsePreferenceTask" key="instance/org.eclipse.jdt.core/org.eclipse.jdt.core.compiler.problem.unclosedCloseable" value="ignore"/>
<setupTasks xsi:type="setup:EclipsePreferenceTask" key="instance/org.eclipse.pde/compilers.f.unresolved-features" value="2"/>
- <setupTasks xsi:type="setup:WorkingSetTask" id="CDO">
- <workingSetGroup>
+ <setupTasks xsi:type="setup:WorkingSetTask">
+
<workingSets name="Features">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo.*-feature"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j.*-feature"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.gastro.*-feature"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.emf\.cdo.*-feature"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.net4j.*-feature"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.gastro.*-feature"/>
</workingSets>
<workingSets name="Infrastructure">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng\.promotion.*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng\.doc\.supplemental.*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="cdo\.www.*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.simrel\.build.*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="com\.ibm\.db2\.jcc.*"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng\.promotion.*"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng\.doc\.supplemental.*"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="cdo\.www.*"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.simrel\.build.*"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="com\.ibm\.db2\.jcc.*"/>
</workingSets>
<workingSets name="Releng">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng.*"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.releng.*"/>
</workingSets>
<workingSets name="CDO Dawn">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.dawn.*"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.dawn.*"/>
</workingSets>
<workingSets name="CDO Tests">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf.cdo\.tests.*"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.emf.cdo\.tests.*"/>
</workingSets>
<workingSets name="CDO Examples">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.examples.*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.gastro.*"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.emf\.cdo\.examples.*"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.gastro.*"/>
</workingSets>
<workingSets name="CDO">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.emf\.cdo.*"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.emf\.cdo.*"/>
</workingSets>
<workingSets name="Net4j DB">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j\.db.*"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.net4j\.db.*"/>
</workingSets>
<workingSets name="Net4j Examples">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j\.examples.*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j\.buddies.*"/>
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j\.jms.*"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.net4j\.examples.*"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.net4j\.buddies.*"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.net4j\.jms.*"/>
</workingSets>
<workingSets name="Net4j">
- <predicates xsi:type="workingsets:NamePredicate" pattern="org\.eclipse\.net4j.*"/>
+ <predicates xsi:type="predicates:NamePredicate" pattern="org\.eclipse\.net4j.*"/>
</workingSets>
- </workingSetGroup>
+
</setupTasks>
<branches name="master">
<setupTasks xsi:type="setup:P2Task">
<p2Repositories url="http://download.eclipse.org/releases/kepler"/>
<installableUnits id="org.eclipse.emf.sdk.feature.group"/>
- <installableUnits id="org.eclipse.emf.ecoretools.sdk.feature.group"/>
+ <installableUnits id="org.eclipse.emf.ecoretools.sdk.feature.group"/>
<installableUnits id="org.eclipse.gmf.runtime.notation.sdk.feature.group"/>
<installableUnits id="org.eclipse.gmf.runtime.sdk.feature.group"/>
<installableUnits id="org.eclipse.gmf.sdk.feature.group"/>
</setupTasks>
<setupTasks xsi:type="setup:GitCloneTask" name="cdo" remoteURI="ssh://git.eclipse.org:29418/cdo/cdo" checkoutBranch="master"/>
- <setupTasks xsi:type="setup:StringVariableTask" requirements="//@branches.0/@setupTasks.1" name="git.clone" value="${setup.branch.dir}/git/cdo" description="Location of CDO's Git clone."/>
- <setupTasks xsi:type="setup:BuckminsterImportTask" requirements="//@branches.0/@setupTasks.2" id="CDO" mspec="${setup.branch.dir}/git/cdo/plugins/org.eclipse.emf.cdo.releng/local.mspec" targetPlatform="${setup.branch.dir}/tp" bundlePool="${setup.install.dir}/.p2pool-tp"/>
+ <setupTasks xsi:type="setup:StringVariableTask" requirements="//@branches.0/@setupTasks.1" name="git.clone" value="${setup.branch.dir|uri}/git/cdo" description="Location of CDO's Git clone."/>
+ <setupTasks xsi:type="setup:BuckminsterImportTask" requirements="//@branches.0/@setupTasks.2" mspec="${setup.branch.dir|uri}/git/cdo/plugins/org.eclipse.emf.cdo.releng/local.mspec" targetPlatform="${setup.branch.dir}/tp" bundlePool="${setup.install.dir}/.p2pool-tp"/>
<setupTasks xsi:type="setup:ApiBaselineTask" requirements="//@branches.0/@setupTasks.3" version="4.2" zipLocation="http://sourceforge.net/projects/net4j/files/Baselines/emf-cdo-4.2-baseline.zip/download"/>
</branches>
<branches name="4.2">
@@ -105,8 +95,8 @@
<installableUnits id="org.eclipse.gmf.sdk.feature.group"/>
</setupTasks>
<setupTasks xsi:type="setup:GitCloneTask" name="cdo" remoteURI="ssh://git.eclipse.org:29418/cdo/cdo" checkoutBranch="streams/4.2-maintenance"/>
- <setupTasks xsi:type="setup:StringVariableTask" requirements="//@branches.1/@setupTasks.1" name="git.clone" value="${setup.branch.dir}/git/cdo" description="Location of CDO's Git clone."/>
- <setupTasks xsi:type="setup:BuckminsterImportTask" requirements="//@branches.1/@setupTasks.2" id="CDO" mspec="${setup.branch.dir}/git/cdo/plugins/org.eclipse.emf.cdo.releng/local.mspec" targetPlatform="${setup.branch.dir}/tp" bundlePool="${setup.install.dir}/.p2pool-tp"/>
+ <setupTasks xsi:type="setup:StringVariableTask" requirements="//@branches.1/@setupTasks.1" name="git.clone" value="${setup.branch.dir|uri}/git/cdo" description="Location of CDO's Git clone."/>
+ <setupTasks xsi:type="setup:BuckminsterImportTask" requirements="//@branches.1/@setupTasks.2" mspec="${setup.branch.dir|uri}/git/cdo/plugins/org.eclipse.emf.cdo.releng/local.mspec" targetPlatform="${setup.branch.dir}/tp" bundlePool="${setup.install.dir}/.p2pool-tp"/>
<setupTasks xsi:type="setup:ApiBaselineTask" requirements="//@branches.1/@setupTasks.3" version="4.2" zipLocation="http://sourceforge.net/projects/net4j/files/Baselines/emf-cdo-4.2-baseline.zip/download"/>
</branches>
</setup:Project>

Back to the top