SlideShare a Scribd company logo
Getting Eclipse
Preferences Under
 Control In Teams




        Michael Pellaton
  michael.pellaton@netcetera.ch
 EclipseCon 2011 - Santa Clara, CA
README
Whoami
Michael Pellaton <michael.pellaton@netcetera.ch>
Senior Software Engineer at Netcetera Zürich, CH

Files
https://contrails.ch/econ2011

Disclaimer
The speaker is the maintainer of the Eclipse Team
Etceteras project and might therefore be biased.

Legal
Eclipse Public License v1.0.
Preferences in Teams
                    compiler option A
                     green code font
                         cvs -ko

                         show whitespace
                       compiler options A+B
                           ISO-8859-1

       cvs -kkv
        UTF-8
      folding off
Preferences in Teams
                    compiler option A
                     green code font
                         cvs -ko

                         show whitespace
                       compiler options A+B
                           ISO-8859-1

       cvs -kkv
        UTF-8
      folding off
Eclipse Configuration Everywhere
Eclipse distribution    Equinox Secure Storage
eclipse                 $home/.eclipse
 |- eclipse.ini
                        Preferences
 |- configuration
    |- config.ini       $workspace
    |- …                 |- ./metadata/…
                         |- $project/.settings/…

Runtime options
eclipse -data … -vm … -vmargs …
Eclipse Configuration Everywhere
Eclipse distribution    Equinox Secure Storage
eclipse                 $home/.eclipse
 |- eclipse.ini
                        Preferences
 |- configuration
    |- config.ini       $workspace
    |- …                 |- ./metadata/…
                         |- $project/.settings/…

Runtime options
eclipse -data … -vm … -vmargs …


  This talk is about preferences only!
Basic Configuration Approach


Configure as much as possible on
project level and ‘somehow’ manage
the configurations that can’t be put
into the project.

Let’s have a look at how ‘somehow’
could be...
The Wiki Way
  Your Favourite Web Browser

Project Foo: Dev Env Set-up Howto
[ ] Preferences: Hit [cmd]+[,]
  [   ] Set ‘General > Workspace > Encoding:’ to ‘UTF-8’
  [   ] Enable ‘Java > JUnit > Add ‘-ea’ to VM…’
  [   ] Set ‘Java > FindBugs > effort’ to ‘maximum’
  [   ] Set ‘Team > CVS > Default Text Mode’ to ‘-kkvl’
[ ] Add the following CVS repositories:
  [ ] :pserver:username@cvs.foo.org:/path/to/repo
  [ ] :pserver:username@cvs.company.com:/cvs/repo
[ ] Select all projects. Then “Project > Clean…”
[ ] Lucky guy - you’re done :-)
The EPF Way
Shared Eclipse Preference File (EPF)
Let users import the EPF manually
using the import wizard
Eclipse Team Etceteras

Automatic and manual EPF import
over HTTP
Preference transfer between
workspaces
Workspace Mechanic

Task oriented configuration engine
A task can be
• a Java class
• a Groovy script
• an EPF file
• a Plug-in (extension point)
Frequent checks
File system based
Bug 334016

Automatic EPF import over HTTP
Preference lock-down and
enforcement capability
Feature Comparison

                     ETE   Ws Mech   334016

EPF imp. over HTTP   ✔       (✔)       ✔
More than EPF                ✔
Change Detection             ✔         ✔
Pref. Enforcement                      ✔
Pref. Lock-down                        ✔
Admin Tool Support   (✔)     ✔         ✔
On Marketplace        ✔
When to Use Which?

If EPF import over HTTP is all you
need: Use ETE
Iy you need more complex stuff than
EPF imports: Use Workspace
Mechanic
If you need preference lock-down and
enforcement: Use Bug 334016
ETE Demo
            Eclipse File Edit Navigate Search Project Run Window Help
Pleas to Plug-in Developers
Use Eclipse Preferences.
If you invent an own configuration
storage, please
• provide import/export functions and API
• and a preference transfer.
Make as much configuration as
possible available on project level.
Questions

            ?
Links and Resources
Presentation and other Resources
 https://contrails.ch/econ2011

Discussed Projects
 Eclipse Team Etceteras
 Workspace Mechanic
 Bug 334016

Eclipse Configuration and Preferences Resources
 User Settings: FAQ
 Eclipse Wiki: Eclipse.ini
 Eclipse Help: Provisioning Actions and Touchpoints
 Eclipse Help: The Eclipse runtime options
 Eclipse Preferences - Tutorial (by Lars Vogel)
 Eclipse Help: Equinox Secure Storage
 Extension Point Description: Preference Transfer

More Related Content

What's hot (20)

PDF
Get On The Audiobus (CocoaConf Atlanta, November 2013)
Chris Adamson
 
PDF
Automated Backporting of Linux Drivers
Vijay Kumar Bagavath Singh
 
PDF
Stupid Video Tricks, CocoaConf Las Vegas
Chris Adamson
 
PDF
Stupid Video Tricks
Chris Adamson
 
PDF
Composing and Editing Media with AV Foundation
Bob McCune
 
PPTX
Creating Perl modules with Dist::Zilla
Mark Gardner
 
PDF
KKBOX WWDC17 Airplay 2 - Dolphin
Liyao Chen
 
ODP
Cobbler Summit - Automated Xen VM Deployment
Abhishek Singh
 
PDF
Introduction to the Roku SDK
Chris Adamson
 
PPTX
Terraform
Harish Kumar
 
PDF
Get On The Audiobus (CocoaConf Boston, October 2013)
Chris Adamson
 
PDF
iOS Media APIs (MobiDevDay Detroit, May 2013)
Chris Adamson
 
PDF
Building Modern Audio Apps with AVAudioEngine
Bob McCune
 
PDF
Master Video with AV Foundation
Bob McCune
 
PDF
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Habeeb Rahman
 
PDF
Web development automatisation for fun and profit (Artem Daniliants)
LumoSpark
 
PDF
Introduction to AV Foundation
Chris Adamson
 
PDF
OpenSource Hardware -Debian Way
Siji Sunny
 
PDF
Mastering Media with AV Foundation
Chris Adamson
 
PPTX
Ottawa unity user_group_feb13_2015
Karman Interactive
 
Get On The Audiobus (CocoaConf Atlanta, November 2013)
Chris Adamson
 
Automated Backporting of Linux Drivers
Vijay Kumar Bagavath Singh
 
Stupid Video Tricks, CocoaConf Las Vegas
Chris Adamson
 
Stupid Video Tricks
Chris Adamson
 
Composing and Editing Media with AV Foundation
Bob McCune
 
Creating Perl modules with Dist::Zilla
Mark Gardner
 
KKBOX WWDC17 Airplay 2 - Dolphin
Liyao Chen
 
Cobbler Summit - Automated Xen VM Deployment
Abhishek Singh
 
Introduction to the Roku SDK
Chris Adamson
 
Terraform
Harish Kumar
 
Get On The Audiobus (CocoaConf Boston, October 2013)
Chris Adamson
 
iOS Media APIs (MobiDevDay Detroit, May 2013)
Chris Adamson
 
Building Modern Audio Apps with AVAudioEngine
Bob McCune
 
Master Video with AV Foundation
Bob McCune
 
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Habeeb Rahman
 
Web development automatisation for fun and profit (Artem Daniliants)
LumoSpark
 
Introduction to AV Foundation
Chris Adamson
 
OpenSource Hardware -Debian Way
Siji Sunny
 
Mastering Media with AV Foundation
Chris Adamson
 
Ottawa unity user_group_feb13_2015
Karman Interactive
 

Similar to Managing Eclipse Preferences for Teams (EclipseCon 2011) (20)

PPTX
Getting Started With CFEngine - Updated Version
CFEngine
 
PDF
Erlang on OSv
Zvi Avraham
 
PDF
Devoxx UK 2018 - A cloud application journey with helm and kubernetes
Ana-Maria Mihalceanu
 
PDF
Docker presentasjon java bin
Olve Hansen
 
PDF
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Bastian Feder
 
PPTX
Docker - Demo on PHP Application deployment
Arun prasath
 
PPTX
Learn you some Ansible for great good!
David Lapsley
 
PDF
Antons Kranga Building Agile Infrastructures
Antons Kranga
 
PPTX
Kubernetes @ meetic
Sébastien Le Gall
 
PDF
Integrating Apple Macs Using Novell Technologies
Novell
 
PDF
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
RUDDER
 
PDF
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
Jonathan Clarke
 
PDF
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Fabrice Bernhard
 
PDF
Going All-In With Go For CLI Apps
Tom Elliott
 
PPTX
Getting started with CFEngine - Webinar
CFEngine
 
PDF
Introduction to PowerShell
Boulos Dib
 
PDF
Ansible is the simplest way to automate. MoldCamp, 2015
Alex S
 
PDF
Ansible is the simplest way to automate. SymfonyCafe, 2015
Alex S
 
ODP
Eclipse
Nicola Pedot
 
PPTX
Ordina Accelerator program 2019 - Maven
Bert Koorengevel
 
Getting Started With CFEngine - Updated Version
CFEngine
 
Erlang on OSv
Zvi Avraham
 
Devoxx UK 2018 - A cloud application journey with helm and kubernetes
Ana-Maria Mihalceanu
 
Docker presentasjon java bin
Olve Hansen
 
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Bastian Feder
 
Docker - Demo on PHP Application deployment
Arun prasath
 
Learn you some Ansible for great good!
David Lapsley
 
Antons Kranga Building Agile Infrastructures
Antons Kranga
 
Kubernetes @ meetic
Sébastien Le Gall
 
Integrating Apple Macs Using Novell Technologies
Novell
 
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
RUDDER
 
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
Jonathan Clarke
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Fabrice Bernhard
 
Going All-In With Go For CLI Apps
Tom Elliott
 
Getting started with CFEngine - Webinar
CFEngine
 
Introduction to PowerShell
Boulos Dib
 
Ansible is the simplest way to automate. MoldCamp, 2015
Alex S
 
Ansible is the simplest way to automate. SymfonyCafe, 2015
Alex S
 
Eclipse
Nicola Pedot
 
Ordina Accelerator program 2019 - Maven
Bert Koorengevel
 
Ad

More from Netcetera (20)

PDF
Payment trend scouting - Kurt Schmid, Netcetera
Netcetera
 
PDF
Boost your approved transaction volume - Ana Vuksanovikj Vaneska, Netcetera
Netcetera
 
PDF
Increase conversion, convenience and security in e-commerce checkouts - Silke...
Netcetera
 
PDF
3-D Secure 2.0 - Stephan Rüdisüli, Netcetera & Patrick Juffern, INFORM
Netcetera
 
PDF
Digital Payment in 2020 - Kurt Schmid, Netcetera
Netcetera
 
PDF
AI First. Erfolgsfaktoren für künstliche Intelligenz im Unternehmen
Netcetera
 
PPTX
Augmenting Maintenance
Netcetera
 
PDF
Front-end up front
Netcetera
 
PDF
The future of Prototpying
Netcetera
 
PDF
EMV Secure Remote Commerce (SRC)
Netcetera
 
PPTX
Online shopping technology in the fast lane?
Netcetera
 
PDF
Merchant tokenization and EMV® Secure Remote Commerce
Netcetera
 
PDF
Seamless 3-D Secure e-commerce experience
Netcetera
 
PPTX
Augmenting Health Care
Netcetera
 
PDF
Driving transactional growth with 3-D Secure
Netcetera
 
PDF
Digital Payment Quo Vadis
Netcetera
 
PDF
EMV® Secure Remote Commerce
Netcetera
 
PDF
Context: The missing ingredient in multilingual software translation
Netcetera
 
PDF
Digital Payments - Netcetera Innovation Summit 2018
Netcetera
 
PDF
"Whats up and new at Netcetera?" - Netcetera Innovation Summit 2018
Netcetera
 
Payment trend scouting - Kurt Schmid, Netcetera
Netcetera
 
Boost your approved transaction volume - Ana Vuksanovikj Vaneska, Netcetera
Netcetera
 
Increase conversion, convenience and security in e-commerce checkouts - Silke...
Netcetera
 
3-D Secure 2.0 - Stephan Rüdisüli, Netcetera & Patrick Juffern, INFORM
Netcetera
 
Digital Payment in 2020 - Kurt Schmid, Netcetera
Netcetera
 
AI First. Erfolgsfaktoren für künstliche Intelligenz im Unternehmen
Netcetera
 
Augmenting Maintenance
Netcetera
 
Front-end up front
Netcetera
 
The future of Prototpying
Netcetera
 
EMV Secure Remote Commerce (SRC)
Netcetera
 
Online shopping technology in the fast lane?
Netcetera
 
Merchant tokenization and EMV® Secure Remote Commerce
Netcetera
 
Seamless 3-D Secure e-commerce experience
Netcetera
 
Augmenting Health Care
Netcetera
 
Driving transactional growth with 3-D Secure
Netcetera
 
Digital Payment Quo Vadis
Netcetera
 
EMV® Secure Remote Commerce
Netcetera
 
Context: The missing ingredient in multilingual software translation
Netcetera
 
Digital Payments - Netcetera Innovation Summit 2018
Netcetera
 
"Whats up and new at Netcetera?" - Netcetera Innovation Summit 2018
Netcetera
 
Ad

Recently uploaded (20)

PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Python basic programing language for automation
DanialHabibi2
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 

Managing Eclipse Preferences for Teams (EclipseCon 2011)

  • 1. Getting Eclipse Preferences Under Control In Teams Michael Pellaton [email protected] EclipseCon 2011 - Santa Clara, CA
  • 2. README Whoami Michael Pellaton <[email protected]> Senior Software Engineer at Netcetera Zürich, CH Files https://contrails.ch/econ2011 Disclaimer The speaker is the maintainer of the Eclipse Team Etceteras project and might therefore be biased. Legal Eclipse Public License v1.0.
  • 3. Preferences in Teams compiler option A green code font cvs -ko show whitespace compiler options A+B ISO-8859-1 cvs -kkv UTF-8 folding off
  • 4. Preferences in Teams compiler option A green code font cvs -ko show whitespace compiler options A+B ISO-8859-1 cvs -kkv UTF-8 folding off
  • 5. Eclipse Configuration Everywhere Eclipse distribution Equinox Secure Storage eclipse $home/.eclipse |- eclipse.ini Preferences |- configuration |- config.ini $workspace |- … |- ./metadata/… |- $project/.settings/… Runtime options eclipse -data … -vm … -vmargs …
  • 6. Eclipse Configuration Everywhere Eclipse distribution Equinox Secure Storage eclipse $home/.eclipse |- eclipse.ini Preferences |- configuration |- config.ini $workspace |- … |- ./metadata/… |- $project/.settings/… Runtime options eclipse -data … -vm … -vmargs … This talk is about preferences only!
  • 7. Basic Configuration Approach Configure as much as possible on project level and ‘somehow’ manage the configurations that can’t be put into the project. Let’s have a look at how ‘somehow’ could be...
  • 8. The Wiki Way Your Favourite Web Browser Project Foo: Dev Env Set-up Howto [ ] Preferences: Hit [cmd]+[,] [ ] Set ‘General > Workspace > Encoding:’ to ‘UTF-8’ [ ] Enable ‘Java > JUnit > Add ‘-ea’ to VM…’ [ ] Set ‘Java > FindBugs > effort’ to ‘maximum’ [ ] Set ‘Team > CVS > Default Text Mode’ to ‘-kkvl’ [ ] Add the following CVS repositories: [ ] :pserver:[email protected]:/path/to/repo [ ] :pserver:[email protected]:/cvs/repo [ ] Select all projects. Then “Project > Clean…” [ ] Lucky guy - you’re done :-)
  • 9. The EPF Way Shared Eclipse Preference File (EPF) Let users import the EPF manually using the import wizard
  • 10. Eclipse Team Etceteras Automatic and manual EPF import over HTTP Preference transfer between workspaces
  • 11. Workspace Mechanic Task oriented configuration engine A task can be • a Java class • a Groovy script • an EPF file • a Plug-in (extension point) Frequent checks File system based
  • 12. Bug 334016 Automatic EPF import over HTTP Preference lock-down and enforcement capability
  • 13. Feature Comparison ETE Ws Mech 334016 EPF imp. over HTTP ✔ (✔) ✔ More than EPF ✔ Change Detection ✔ ✔ Pref. Enforcement ✔ Pref. Lock-down ✔ Admin Tool Support (✔) ✔ ✔ On Marketplace ✔
  • 14. When to Use Which? If EPF import over HTTP is all you need: Use ETE Iy you need more complex stuff than EPF imports: Use Workspace Mechanic If you need preference lock-down and enforcement: Use Bug 334016
  • 15. ETE Demo  Eclipse File Edit Navigate Search Project Run Window Help
  • 16. Pleas to Plug-in Developers Use Eclipse Preferences. If you invent an own configuration storage, please • provide import/export functions and API • and a preference transfer. Make as much configuration as possible available on project level.
  • 18. Links and Resources Presentation and other Resources https://contrails.ch/econ2011 Discussed Projects Eclipse Team Etceteras Workspace Mechanic Bug 334016 Eclipse Configuration and Preferences Resources User Settings: FAQ Eclipse Wiki: Eclipse.ini Eclipse Help: Provisioning Actions and Touchpoints Eclipse Help: The Eclipse runtime options Eclipse Preferences - Tutorial (by Lars Vogel) Eclipse Help: Equinox Secure Storage Extension Point Description: Preference Transfer

Editor's Notes

  • #2: \n
  • #3: \n
  • #4: \n
  • #5: In a team and even among multiple workspaces, one tends to have very different preferences. Basically, that&apos;s perfectly fine and in most cases the users may configure Eclipse to their liking. However, there are a number of settings that need to be coordinated to make sure the project doesn&apos;t run into technical troubles and inconsistencies. Examples for that type of preferences are:\n - file encoding\n - SCM settings like (content types, auto properties, ...)\n - compiler options (same code might behave differently on different machines)\n - &amp;#x2026;\n\nSettings that adapt/hook up Eclipse to the local development environment are best coordinated for efficiency. Examples for that group of preferences are:\n - SCM repositories\n - Mylyn task repositories\n - file templates\n - update sites\n - &amp;#x2026;\n
  • #6: In a team and even among multiple workspaces, one tends to have very different preferences. Basically, that&apos;s perfectly fine and in most cases the users may configure Eclipse to their liking. However, there are a number of settings that need to be coordinated to make sure the project doesn&apos;t run into technical troubles and inconsistencies. Examples for that type of preferences are:\n - file encoding\n - SCM settings like (content types, auto properties, ...)\n - compiler options (same code might behave differently on different machines)\n - &amp;#x2026;\n\nSettings that adapt/hook up Eclipse to the local development environment are best coordinated for efficiency. Examples for that group of preferences are:\n - SCM repositories\n - Mylyn task repositories\n - file templates\n - update sites\n - &amp;#x2026;\n
  • #7: There is not a single configuration file for Eclipse and the configuration is spread over several files and scopes. There are even several different mechanisms and APIs for different types of configuration and in some cases configuration on one place overrides the same configuration in another place (e.g. workspace vs project level; command line arguments vc eclipse.ini). The most common places where Eclipse can be configured in some way are:\n- eclipse.ini: system properties, JVM options and program arguments\n- preference store: the majority of preferences is stored here. This is a workspace level store.\n- secure store: store for passwords and other sensitive information. If install directory is writable, it is stored in the eclipse directory\n- some extensions have their own mechanisms\n\n
  • #8: Put as much as possible on the project level:\n- configuration is managed in the SCM\n- updates are distributed to developers as normal SCM updates\n- different projects may have different configurations (java version, different license headers, different coding styles for different customers) and still be checked out in the same workspace\n- different project types may have different configurations\n- tools run during the continuous/release build can be configured to use the same config (e.g. FindBugs, Checkstyle, PMD)\n\nDisadvantages of putting preferences into the project:\n- Changes in multi module projects must be replicated to the projects (If you use Maven, the Maven eclipse plugin can help here)\n- Some developers complain about the number of .-files in the projects\n\n
  • #9: I am sure you know at least one project having one of these famous &quot;How to set up the devenv&quot; wiki pages or readme files.\n\nOne one hand, they solve the problem of preference synchronization. On the other hand they are broken for some reasons:\n- People don&apos;t know where the document is\n- Going though an endless checklist is a mundane task and people tend to do errors in boring tasks\n- Keeping this document up-to-date is a pain\n- Delta-checklists are needed if there are changes\n
  • #10: Eclipse offers a preference import / export mechanism that stored all preferences from the preference store in a so called Eclipse Preference File (EPF).\n\nProviding a common EPF file on a shared file system simplifies the configuration for the users compared to the checklist. The problems about this solution are:\n- people don&apos;t know where the file is\n- the import must be done manually\n- after changes, the developers need to re-import the file\n- on each import, the user needs to know the location of the file\n
  • #11: Eclipse Team Etceteras is a set of small enhancements to existing Eclipse preference functionality that ease the use:\n- import EPF files over HTTP\n- preconfigure the EPF URLs so that the users don&apos;t need to find the file\n- remind developers when they create a new workspace to apply the default configuration\n- Ad-hoc EPF import over HTTP (paste URL into import wizard)\n- transfer preferences from one workspace to another\n\n\nCredo: Help the user but don&apos;t get into the way.\n\nDisadvantages:\n- limited to what EPFs can do\n- no enforcement capabilities\n- pre-configuration is done using a fragment bundle: need to deploy an own configuration plug-in along with Eclipse\n
  • #12: Workspace Mechanic is a very powerful task oriented tool to administer Eclipse configurations. A task can be a Java class, a Groovy script, a Plug-in or an EPF file. Importing EPF files is just one of many possible tasks. You can extend Workspace Mechanic by providing new task and new task types using extension points. Tasks are picked up from shared file system locations by Workspace Mechanic in a configurable frequency. If anything needs to be done, the user is prompted to apply a so called &apos;Fix&apos; in a notification. \n\nWorkspace Mechanic offers some nice tools that make the lives of the administrators easier: creating a EPF file for a task is very simple thanks to the preference recorder.\n\nDisadvantages:\n- no enforcements\n- a shared file system is required (as of now), HTTP capability is committed but not yet released\n- pre-configuration is done in plugin_customization.ini or an EPF file: need to deploy that file along with Eclipse or being imported\n
  • #13: In Bug 334016 Ericsson donated a preference management tool. As there seems to be no official name, it is referred to under it&apos;s Bugzilla ID. At the time of the writing of these slides it was unclear whether, when and how the contribution will be included into Eclipse (according to C. Aniszczyk). There is no update site to install this functionality from - interested users need to get the source out of the attachments of this bug and build/release the plug-in themselves.\n\nThe features offered:\n- import EPFs over HTTP\n- lock-down of preferences\n- automatic imports upon workspace startup (enforcement)\n\nDisadvantages:\n- not easily available from an update site or Eclipse Market Place\n- limited to what EPFs can do\n
  • #14: \n
  • #15: \n
  • #16: Demo of Eclipse Team Etceteras:\n\n1. Start Eclipse with new workspace\n--&gt; ETE new workspace detection and preference import\n\n2. Change workspace name (General &gt; Workspace &gt; Name)\n\n3. File &gt; Switch Workspace&amp;#x2026; (to a new workspace including preferences transfer)\n--&gt; in new workspace: show transferred preference (workspace name)\n
  • #17: Some plug in do not make use of the preference store to keep their configuration. Examples are the XML catalog and Mylyn. The &amp;#x201C;self made&amp;#x201D; storage is rather problematic for people in charge of providing a consistent configuration among a team. If you are a plug-in developer, please make use of the preference store whenever possible. In case you can&amp;#x2019;t, please provide: \n- stable import/export API\n- a configuration possibility using extension points, fragments, &amp;#x2026;\n- a transfer implementation to transfer the configuration between workspaces.\n
  • #18: \n
  • #19: \n