SlideShare uma empresa Scribd logo
1 de 18
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

Mais conteúdo relacionado

Mais procurados

iOS Media APIs (MobiDevDay Detroit, May 2013)
iOS Media APIs (MobiDevDay Detroit, May 2013)iOS Media APIs (MobiDevDay Detroit, May 2013)
iOS Media APIs (MobiDevDay Detroit, May 2013)
Chris Adamson
 
Web development automatisation for fun and profit (Artem Daniliants)
Web development automatisation for fun and profit (Artem Daniliants)Web development automatisation for fun and profit (Artem Daniliants)
Web development automatisation for fun and profit (Artem Daniliants)
LumoSpark
 

Mais procurados (20)

Get On The Audiobus (CocoaConf Atlanta, November 2013)
Get On The Audiobus (CocoaConf Atlanta, November 2013)Get On The Audiobus (CocoaConf Atlanta, November 2013)
Get On The Audiobus (CocoaConf Atlanta, November 2013)
 
Automated Backporting of Linux Drivers
Automated Backporting of Linux DriversAutomated Backporting of Linux Drivers
Automated Backporting of Linux Drivers
 
Stupid Video Tricks, CocoaConf Las Vegas
Stupid Video Tricks, CocoaConf Las VegasStupid Video Tricks, CocoaConf Las Vegas
Stupid Video Tricks, CocoaConf Las Vegas
 
Stupid Video Tricks
Stupid Video TricksStupid Video Tricks
Stupid Video Tricks
 
Composing and Editing Media with AV Foundation
Composing and Editing Media with AV FoundationComposing and Editing Media with AV Foundation
Composing and Editing Media with AV Foundation
 
Creating Perl modules with Dist::Zilla
Creating Perl modules with Dist::ZillaCreating Perl modules with Dist::Zilla
Creating Perl modules with Dist::Zilla
 
KKBOX WWDC17 Airplay 2 - Dolphin
KKBOX WWDC17 Airplay 2 - DolphinKKBOX WWDC17 Airplay 2 - Dolphin
KKBOX WWDC17 Airplay 2 - Dolphin
 
Cobbler Summit - Automated Xen VM Deployment
Cobbler Summit - Automated Xen VM DeploymentCobbler Summit - Automated Xen VM Deployment
Cobbler Summit - Automated Xen VM Deployment
 
Introduction to the Roku SDK
Introduction to the Roku SDKIntroduction to the Roku SDK
Introduction to the Roku SDK
 
Terraform
TerraformTerraform
Terraform
 
Get On The Audiobus (CocoaConf Boston, October 2013)
Get On The Audiobus (CocoaConf Boston, October 2013)Get On The Audiobus (CocoaConf Boston, October 2013)
Get On The Audiobus (CocoaConf Boston, October 2013)
 
iOS Media APIs (MobiDevDay Detroit, May 2013)
iOS Media APIs (MobiDevDay Detroit, May 2013)iOS Media APIs (MobiDevDay Detroit, May 2013)
iOS Media APIs (MobiDevDay Detroit, May 2013)
 
Building Modern Audio Apps with AVAudioEngine
Building Modern Audio Apps with AVAudioEngineBuilding Modern Audio Apps with AVAudioEngine
Building Modern Audio Apps with AVAudioEngine
 
Master Video with AV Foundation
Master Video with AV FoundationMaster Video with AV Foundation
Master Video with AV Foundation
 
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Cloud meets Fog & Puppet A Story of Version Controlled InfrastructureCloud meets Fog & Puppet A Story of Version Controlled Infrastructure
Cloud meets Fog & Puppet A Story of Version Controlled Infrastructure
 
Web development automatisation for fun and profit (Artem Daniliants)
Web development automatisation for fun and profit (Artem Daniliants)Web development automatisation for fun and profit (Artem Daniliants)
Web development automatisation for fun and profit (Artem Daniliants)
 
Introduction to AV Foundation
Introduction to AV FoundationIntroduction to AV Foundation
Introduction to AV Foundation
 
OpenSource Hardware -Debian Way
OpenSource Hardware -Debian WayOpenSource Hardware -Debian Way
OpenSource Hardware -Debian Way
 
Mastering Media with AV Foundation
Mastering Media with AV FoundationMastering Media with AV Foundation
Mastering Media with AV Foundation
 
Ottawa unity user_group_feb13_2015
Ottawa unity user_group_feb13_2015Ottawa unity user_group_feb13_2015
Ottawa unity user_group_feb13_2015
 

Semelhante a Managing Eclipse Preferences for Teams (EclipseCon 2011)

Kubernetes @ meetic
Kubernetes @ meeticKubernetes @ meetic
Kubernetes @ meetic
Sébastien Le Gall
 
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
A tale of Disaster Recovery (Cfengine everyday, practices and tools)A tale of Disaster Recovery (Cfengine everyday, practices and tools)
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
Jonathan Clarke
 

Semelhante a Managing Eclipse Preferences for Teams (EclipseCon 2011) (20)

Getting Started With CFEngine - Updated Version
Getting Started With CFEngine - Updated VersionGetting Started With CFEngine - Updated Version
Getting Started With CFEngine - Updated Version
 
Erlang on OSv
Erlang on OSvErlang on OSv
Erlang on OSv
 
Devoxx UK 2018 - A cloud application journey with helm and kubernetes
Devoxx UK 2018 - A cloud application journey with helm and kubernetesDevoxx UK 2018 - A cloud application journey with helm and kubernetes
Devoxx UK 2018 - A cloud application journey with helm and kubernetes
 
AWS re:Invent 2016: Service Integration Delivery and Automation Using Amazon ...
AWS re:Invent 2016: Service Integration Delivery and Automation Using Amazon ...AWS re:Invent 2016: Service Integration Delivery and Automation Using Amazon ...
AWS re:Invent 2016: Service Integration Delivery and Automation Using Amazon ...
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
 
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
 
Learn you some Ansible for great good!
Learn you some Ansible for great good!Learn you some Ansible for great good!
Learn you some Ansible for great good!
 
Antons Kranga Building Agile Infrastructures
Antons Kranga   Building Agile InfrastructuresAntons Kranga   Building Agile Infrastructures
Antons Kranga Building Agile Infrastructures
 
Kubernetes @ meetic
Kubernetes @ meeticKubernetes @ meetic
Kubernetes @ meetic
 
Integrating Apple Macs Using Novell Technologies
Integrating Apple Macs Using Novell TechnologiesIntegrating Apple Macs Using Novell Technologies
Integrating Apple Macs Using Novell Technologies
 
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
A tale of Disaster Recovery (Cfengine everyday, practices and tools)A tale of Disaster Recovery (Cfengine everyday, practices and tools)
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
 
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
A tale of Disaster Recovery (Cfengine everyday, practices and tools)A tale of Disaster Recovery (Cfengine everyday, practices and tools)
A tale of Disaster Recovery (Cfengine everyday, practices and tools)
 
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
Adopt DevOps philosophy on your Symfony projects (Symfony Live 2011)
 
Going All-In With Go For CLI Apps
Going All-In With Go For CLI AppsGoing All-In With Go For CLI Apps
Going All-In With Go For CLI Apps
 
Getting started with CFEngine - Webinar
Getting started with CFEngine - WebinarGetting started with CFEngine - Webinar
Getting started with CFEngine - Webinar
 
Introduction to PowerShell
Introduction to PowerShellIntroduction to PowerShell
Introduction to PowerShell
 
Ansible is the simplest way to automate. MoldCamp, 2015
Ansible is the simplest way to automate. MoldCamp, 2015Ansible is the simplest way to automate. MoldCamp, 2015
Ansible is the simplest way to automate. MoldCamp, 2015
 
Ansible is the simplest way to automate. SymfonyCafe, 2015
Ansible is the simplest way to automate. SymfonyCafe, 2015Ansible is the simplest way to automate. SymfonyCafe, 2015
Ansible is the simplest way to automate. SymfonyCafe, 2015
 
Eclipse
EclipseEclipse
Eclipse
 

Mais de Netcetera

Mais de Netcetera (20)

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

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Managing Eclipse Preferences for Teams (EclipseCon 2011)

  • 1. Getting Eclipse Preferences Under Control In Teams Michael Pellaton michael.pellaton@netcetera.ch EclipseCon 2011 - Santa Clara, CA
  • 2. 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.
  • 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: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 :-)
  • 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

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. 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
  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. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. \n
  14. \n
  15. 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
  16. 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
  17. \n
  18. \n