SlideShare a Scribd company logo
Eclipse 4.0
   and e4


Chris Aniszczyk
Principal Software Engineer
zx@redhat.com
http://aniszczyk.org
http://twitter.com/caniszczyk
Howdy!
โ€ข Hack Eclipse/OSGi/Git
โ€ข Evangelist at Red Hat
โ€ข Involved heavily at Eclipse
  โ€“ Eclipse Foundation Board of Directors
  โ€“ Co-lead PDE and EGit
โ€ข Hacking on open source for a decade
  โ€“ Gentoo Linux, Eclipse, Fedora...
โ€ข I like running (5K @ ~18min)
Agenda

Why e4?

Eclipse 3.X and e4
                  l
e4 workbench mode

Styling and Services

Compatibility Layer

 Conclusion and Q&A
Lexicon
e4 is an Eclipse.org project for
platform-related incubation, itโ€™s not a
product!

Eclipse 4.0 is a release that contains
some technology from the e4 project
Why e4?
โ€ข Innovate or become irrelevant
โ€ข Use e4 technologies as a
  basis for Eclipse 4.X (some
  will show up in the 3.x
  stream)
โ€ข Engage the open source
  community
โ€ข Build a better Eclipse
   โ€“ Make it more ๏ฌ‚exible
   โ€“ Prepare for the web
   โ€“ Dynamic languages
   โ€“ Fix our mistakes
Eclipse Competition...
Why change?



โ€œWeโ€™ve already built all our plug-ins.

The most important thing is
                     donโ€™t break us.โ€



                           (Yes, there is a compatibility layer.)
Eclipse is mature and huge...




                            8
Foundations need to evolve...
   Eclipse Competition...




           Francois Schnell, http://www.flickr.com/photos/frenchy/30217773/
Eclipse 4.0 SDK
Early Adopter Release
       July 2010
11
12
e4 Example
Applications
Eclipse e4
Eclipse e4
So, whatโ€™s wrong with
Eclipse 3.X?
Problems with Eclipse 3.x

โ€ข Complex
โ€ข Lots of API
โ€ข Platform functionality
  via singletons
โ€ข Not easy to test
โ€ข Not a consistent way to
  de๏ฌne the UI
โ€ข UI makes assumptions,
  e.g. Editors / Views
โ€ข Easy Skinning

โ€ข The browser is more
  powerful now... RIAs...
If only Eclipse application
development would be
easier...




                              8
Eclipse e4 โ€“ Building blocks
        Declarative Styling



          Rendering Engine


             Modeled Workbench


                    Dependency Injection


                IEclipseContext


             Core Services
The Modeled Workbench
The e4 Workbench Model
Each application has its live model... think of the browser DOM...



                                                โ€ข Built using EMF
                                                โ€ข Workbench window
                                                    โ€“ Menu with menu items
                                                    โ€“ Window Trim, e.g.
                                                      toolbar with toolbar
                                                      items
                                                    โ€“ Parts Sash Container
                                                         โ€ข Parts
                                                    โ€“ Part Stack (CTabFolder)
                                                         โ€ข Parts
                                                    โ€“ Handlers
                                                    โ€“ Key Bindings
                                                    โ€“ Commands
The Model is Flexible
No distinction between View/ Editor

Perspectives are optional

Stack / Sash are optional

Several windows easily possible

Flexible Toolbars
Parts in e4


Plain Old Java Objects
(POJOโ€˜s)
Before e4... inheritance ruled...




OBJECT



    EVENTMANAGER



         WORKBENCHPART

                   VIEWPART

                              VIEW
How is this model
translated into UI
components?
Model and UI Renderers
Model

              I donโ€™t care
             who draws me




            โ€ข The Workbench model
              is independent of a
              speci๏ฌc UI toolkit
Renderers
Renderer Factory

Eclipse default is the
SWT Renderer

Can be selected at
Startup via parameter
Renderers
Renderer Factory                          Widget Renderer




                      Returns for every
                      model element
Widget Renderer
โ€ข Each UI elements gets a renderer
โ€ข Renderer manage Lifecycle of the UI-
  Element
  โ€“ Creation
  โ€“ Model to widget binding
  โ€“ Rendering
  โ€“ Disposal
e4 and Styling
Styling in Eclipse 3.x

โ€ข UI styling via
  โ€“ The Presentation API
  โ€“ Custom Widgets
โ€ข Very limited
In reality all
RCP apps look
like the an IDE
Eclipse 3.X - IDE                             Eclipse e4 โ€“ CSS Styling
feeling




 Example from Kai Toedter

 Some elements cannot currently not be styled:

 โ€ข Menu bar background
 โ€ข Table headers

 e4 supports theme switching during runtime
How to enable CSS Styling
Property "applicationCSSโ€ in extension point
  org.eclipse.core.runtime.products

<extension
   id="product"
   point="org.eclipse.core.runtime.products">
   <product
     application="org.eclipse.e4.ui.workbench.swt.application"
     name="E4 Contacs Demo">
     <property
        name="applicationCSS"
        value="platform:/plugin/contacts/css/dark.css">
     </property>
   </product>
</extension>
Example CSS
Label {
   font: Verdana 8px;
   color: rgb(240, 240, 240);
}

Table {
   background-color: gradient radial #575757 #101010 100%;
   color: rgb(240, 240, 240);
   font: Verdana 8px;
}

ToolBar {
   background-color: #777777 #373737 #202020 50% 50%;
   color: white;
   font: Verdana 8px;
}
Assign custom attributes
โ€ข Java

  Label label =
     new Label(parent, SWT.NONE);
  label.setData("org.eclipse.e4.ui.css.id",
                   "SeparatorLabel");

โ€ข CSS
  #SeparatorLabel {
      color: #f08d00;
  }
The e4 Programming
       Model
Dependency Injection
โ€ข Inversion of control: The necessary
  functionality is injected into the class



                                              s
                                       va Clas
                                  Ja
Dependency Injection in e4

โ€ข JSR 330 compatible injection
  implementation (think Google Guice)
  โ€“ @javax.inject.Inject โ€“ Field,
    Constructor and Method injection
  โ€“ @javax.inject.Named โ€“ Specify a custom
    quali๏ฌer to context object (default is fully
    quali๏ฌed classname of the injected type)
โ€ข e4 speci๏ฌc annotations... @Optional
s
                va Clas
           Ja
                                        
 Services are injected
                                          via the the e4
                                          framework

public class ListView {

  @Inject
  private IEclipseContext context;
  @Inject
   private Logger logger;

  @Inject
  public ListView(Composite parent) {
      // ...
CODE EXAMPLES
  rs-photo, http://www.flickr.com/photos/rs-foto/2129343084/sizes/l/
Access preference values
IPreferenceStore store =
   IDEWorkbenchPlugin.getDefault()
     .getPreferenceStore();

boolean saveBeforeBuild = store
                                      3.x
    .getBoolean(SAVE_BEFORE_BUILD);



@Inject
 @Preference(SAVE_BEFORE_BUILD)
 boolean saveBeforeBuild;
                                      4.x
Associate help context with control
getSite()
  .getWorkbenchWindow()
   .getWorkbench()
      .getHelpSystem().setHelp(
                                         3.x
        viewer.getControl(), some_id);

@Inject

IWorkbenchHelpSystem helpSystem;

...                                      4.x
helpSystem.setHelp(
        viewer.getControl(), some_id);
Services
Eclipse Application Services (โ€œTwenty
                  Thingsโ€)

๏‚ก   Editor lifecycle             ๏‚ก   Long-running
๏‚ก   Receiving input                  operations
๏‚ก   Producing selection          ๏‚ก   Progress reporting
๏‚ก   Standard dialogs             ๏‚ก   Error handling
๏‚ก   Persisting UI state          ๏‚ก   Navigation model
๏‚ก   Logging                      ๏‚ก   Resource management
๏‚ก   Interface to help            ๏‚ก   Status line
    system                       ๏‚ก   Drag and drop
๏‚ก   Menu contributions           ๏‚ก   Undo/Redo
๏‚ก   Authentication               ๏‚ก   Accessing preferences
๏‚ก   Authorization

                     ๏‚ก    Donโ€˜t forget: OSGi services are also
                          available via dependency injection
Compatibility Layer
Compatibility Layer

โ€ข Compatibility layer centers around
  org.eclipse.ui.workbench
  โ€“ Contains code to host 3.x API on e4
โ€ข Note: The 3.x workbench API with
  some exceptions...
  โ€“ org.eclipse.ui.presentations
  โ€“ org.eclipse.ui.themes
  โ€“ Activities and Capabilities
โ€ข API clean plug-ins will run ๏ฌne
Eclipse 4.0 SDK
Thanks for listening!
For further questions:
caniszczyk@gmail.com
http://aniszczyk.org
http://twitter.com/caniszczyk
Where to go from here
Eclipse e4 Website
  http://www.eclipse.org/e4
Eclipse e4 Wiki
  http://wiki.eclipse.org/E4
Eclipse e4 Whitepaper
  http://www.eclipse.org/e4/resources/e4-whitepaper.php


Eclipse 4.1 will most likely ship
as part of the Indigo release...
License & Acknowledgements
โ€ข This work is licensed under:

  โ€“   http://creativecommons.org/licenses/by-nc-nd/3.0/de/deed.en_US




โ€ข Thank you...
  โ€“   Boris Bokowski, IBM
  โ€“   Tom Schindl, BestSolution
  โ€“   Kai Tรถdter, Siemens AG
  โ€“   Lars Vogel, SAP AG
Ad

More Related Content

What's hot (11)

WordPress Under Control
WordPress Under ControlWordPress Under Control
WordPress Under Control
Matt Bernhardt
ย 
How to Contribute to Pinax
How to Contribute to PinaxHow to Contribute to Pinax
How to Contribute to Pinax
jtauber
ย 
What every successful open source project needs
What every successful open source project needsWhat every successful open source project needs
What every successful open source project needs
Steven Francia
ย 
Intro to open source - 101 presentation
Intro to open source - 101 presentationIntro to open source - 101 presentation
Intro to open source - 101 presentation
Javier Perez
ย 
Collaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source DocumentationCollaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source Documentation
Anne Gentle
ย 
Osgeo incubation-2014
Osgeo incubation-2014Osgeo incubation-2014
Osgeo incubation-2014
Jody Garnett
ย 
DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"
DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"
DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"
Daniel Bryant
ย 
Django Package Thunderdome by Audrey Roy & Daniel Greenfeld
Django Package Thunderdome by Audrey Roy & Daniel GreenfeldDjango Package Thunderdome by Audrey Roy & Daniel Greenfeld
Django Package Thunderdome by Audrey Roy & Daniel Greenfeld
Audrey Roy
ย 
Collaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source DocumentationCollaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source Documentation
Anne Gentle
ย 
OpenStack Documentation in the Open
OpenStack Documentation in the OpenOpenStack Documentation in the Open
OpenStack Documentation in the Open
Anne Gentle
ย 
Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)
dmgerman
ย 
WordPress Under Control
WordPress Under ControlWordPress Under Control
WordPress Under Control
Matt Bernhardt
ย 
How to Contribute to Pinax
How to Contribute to PinaxHow to Contribute to Pinax
How to Contribute to Pinax
jtauber
ย 
What every successful open source project needs
What every successful open source project needsWhat every successful open source project needs
What every successful open source project needs
Steven Francia
ย 
Intro to open source - 101 presentation
Intro to open source - 101 presentationIntro to open source - 101 presentation
Intro to open source - 101 presentation
Javier Perez
ย 
Collaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source DocumentationCollaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source Documentation
Anne Gentle
ย 
Osgeo incubation-2014
Osgeo incubation-2014Osgeo incubation-2014
Osgeo incubation-2014
Jody Garnett
ย 
DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"
DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"
DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"
Daniel Bryant
ย 
Django Package Thunderdome by Audrey Roy & Daniel Greenfeld
Django Package Thunderdome by Audrey Roy & Daniel GreenfeldDjango Package Thunderdome by Audrey Roy & Daniel Greenfeld
Django Package Thunderdome by Audrey Roy & Daniel Greenfeld
Audrey Roy
ย 
Collaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source DocumentationCollaborating on GitHub for Open Source Documentation
Collaborating on GitHub for Open Source Documentation
Anne Gentle
ย 
OpenStack Documentation in the Open
OpenStack Documentation in the OpenOpenStack Documentation in the Open
OpenStack Documentation in the Open
Anne Gentle
ย 
Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)Introduction to License Compliance and My research (D. German)
Introduction to License Compliance and My research (D. German)
dmgerman
ย 

Similar to Eclipse e4 (20)

Learn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUGLearn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Marakana Inc.
ย 
Eclipse e4 - Google Eclipse Day
Eclipse e4 - Google Eclipse DayEclipse e4 - Google Eclipse Day
Eclipse e4 - Google Eclipse Day
Lars Vogel
ย 
Eclipse 40 - Eclipse Summit Europe 2010
Eclipse 40 - Eclipse Summit Europe 2010Eclipse 40 - Eclipse Summit Europe 2010
Eclipse 40 - Eclipse Summit Europe 2010
Lars Vogel
ย 
Eclipse 40 and Eclipse e4
Eclipse 40 and Eclipse e4 Eclipse 40 and Eclipse e4
Eclipse 40 and Eclipse e4
Lars Vogel
ย 
Eclipse e4 on Java Forum Stuttgart 2010
Eclipse e4 on Java Forum Stuttgart 2010Eclipse e4 on Java Forum Stuttgart 2010
Eclipse e4 on Java Forum Stuttgart 2010
Lars Vogel
ย 
Eclipse e4 Overview
Eclipse e4 OverviewEclipse e4 Overview
Eclipse e4 Overview
Lars Vogel
ย 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
Lars Vogel
ย 
Eclipse 2011 Hot Topics
Eclipse 2011 Hot TopicsEclipse 2011 Hot Topics
Eclipse 2011 Hot Topics
Lars Vogel
ย 
Spring - a framework written by developers
Spring - a framework written by developersSpring - a framework written by developers
Spring - a framework written by developers
MarcioSoaresPereira1
ย 
Java 8 selected updates
Java 8 selected updatesJava 8 selected updates
Java 8 selected updates
Vinay H G
ย 
Creation&imitation
Creation&imitationCreation&imitation
Creation&imitation
Tae Young Lee
ย 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator
Kevin Webber
ย 
Build Java Web Application Using Apache Struts
Build Java Web Application Using Apache Struts Build Java Web Application Using Apache Struts
Build Java Web Application Using Apache Struts
weili_at_slideshare
ย 
Eclipse plug in development
Eclipse plug in developmentEclipse plug in development
Eclipse plug in development
Martin Toshev
ย 
Protractor survival guide
Protractor survival guideProtractor survival guide
Protractor survival guide
Lรกszlรณ Andrรกsi
ย 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
Ulrich Krause
ย 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
Antonio Garcรญa-Domรญnguez
ย 
Typesafe stack - Scala, Akka and Play
Typesafe stack - Scala, Akka and PlayTypesafe stack - Scala, Akka and Play
Typesafe stack - Scala, Akka and Play
Luka Zakrajลกek
ย 
ZZ BC#7 asp.net mvc practice and guideline by NineMvp
ZZ BC#7 asp.net mvc practice and guideline by NineMvpZZ BC#7 asp.net mvc practice and guideline by NineMvp
ZZ BC#7 asp.net mvc practice and guideline by NineMvp
Chalermpon Areepong
ย 
Alfresco Business Reporting - Tech Talk Live 20130501
Alfresco Business Reporting - Tech Talk Live 20130501Alfresco Business Reporting - Tech Talk Live 20130501
Alfresco Business Reporting - Tech Talk Live 20130501
Tjarda Peelen
ย 
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUGLearn about Eclipse e4 from Lars Vogel at SF-JUG
Learn about Eclipse e4 from Lars Vogel at SF-JUG
Marakana Inc.
ย 
Eclipse e4 - Google Eclipse Day
Eclipse e4 - Google Eclipse DayEclipse e4 - Google Eclipse Day
Eclipse e4 - Google Eclipse Day
Lars Vogel
ย 
Eclipse 40 - Eclipse Summit Europe 2010
Eclipse 40 - Eclipse Summit Europe 2010Eclipse 40 - Eclipse Summit Europe 2010
Eclipse 40 - Eclipse Summit Europe 2010
Lars Vogel
ย 
Eclipse 40 and Eclipse e4
Eclipse 40 and Eclipse e4 Eclipse 40 and Eclipse e4
Eclipse 40 and Eclipse e4
Lars Vogel
ย 
Eclipse e4 on Java Forum Stuttgart 2010
Eclipse e4 on Java Forum Stuttgart 2010Eclipse e4 on Java Forum Stuttgart 2010
Eclipse e4 on Java Forum Stuttgart 2010
Lars Vogel
ย 
Eclipse e4 Overview
Eclipse e4 OverviewEclipse e4 Overview
Eclipse e4 Overview
Lars Vogel
ย 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
Lars Vogel
ย 
Eclipse 2011 Hot Topics
Eclipse 2011 Hot TopicsEclipse 2011 Hot Topics
Eclipse 2011 Hot Topics
Lars Vogel
ย 
Spring - a framework written by developers
Spring - a framework written by developersSpring - a framework written by developers
Spring - a framework written by developers
MarcioSoaresPereira1
ย 
Java 8 selected updates
Java 8 selected updatesJava 8 selected updates
Java 8 selected updates
Vinay H G
ย 
Creation&imitation
Creation&imitationCreation&imitation
Creation&imitation
Tae Young Lee
ย 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator
Kevin Webber
ย 
Build Java Web Application Using Apache Struts
Build Java Web Application Using Apache Struts Build Java Web Application Using Apache Struts
Build Java Web Application Using Apache Struts
weili_at_slideshare
ย 
Eclipse plug in development
Eclipse plug in developmentEclipse plug in development
Eclipse plug in development
Martin Toshev
ย 
UKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basicsUKLUG 2012 - XPages, Beyond the basics
UKLUG 2012 - XPages, Beyond the basics
Ulrich Krause
ย 
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a serviceCOMMitMDE'18: Eclipse Hawk: model repository querying as a service
COMMitMDE'18: Eclipse Hawk: model repository querying as a service
Antonio Garcรญa-Domรญnguez
ย 
Typesafe stack - Scala, Akka and Play
Typesafe stack - Scala, Akka and PlayTypesafe stack - Scala, Akka and Play
Typesafe stack - Scala, Akka and Play
Luka Zakrajลกek
ย 
ZZ BC#7 asp.net mvc practice and guideline by NineMvp
ZZ BC#7 asp.net mvc practice and guideline by NineMvpZZ BC#7 asp.net mvc practice and guideline by NineMvp
ZZ BC#7 asp.net mvc practice and guideline by NineMvp
Chalermpon Areepong
ย 
Alfresco Business Reporting - Tech Talk Live 20130501
Alfresco Business Reporting - Tech Talk Live 20130501Alfresco Business Reporting - Tech Talk Live 20130501
Alfresco Business Reporting - Tech Talk Live 20130501
Tjarda Peelen
ย 
Ad

More from Chris Aniszczyk (20)

Bringing an open source project to the Linux Foundation
Bringing an open source project to the Linux FoundationBringing an open source project to the Linux Foundation
Bringing an open source project to the Linux Foundation
Chris Aniszczyk
ย 
Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)
Chris Aniszczyk
ย 
Open Container Initiative Update
Open Container Initiative UpdateOpen Container Initiative Update
Open Container Initiative Update
Chris Aniszczyk
ย 
Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)
Chris Aniszczyk
ย 
Rise of Open Source Programs
Rise of Open Source ProgramsRise of Open Source Programs
Rise of Open Source Programs
Chris Aniszczyk
ย 
The Open Container Initiative (OCI) at 12 months
The Open Container Initiative (OCI) at 12 monthsThe Open Container Initiative (OCI) at 12 months
The Open Container Initiative (OCI) at 12 months
Chris Aniszczyk
ย 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO Group
Chris Aniszczyk
ย 
Getting Students Involved in Open Source
Getting Students Involved in Open SourceGetting Students Involved in Open Source
Getting Students Involved in Open Source
Chris Aniszczyk
ย 
Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)
Chris Aniszczyk
ย 
Evolution of The Twitter Stack
Evolution of The Twitter StackEvolution of The Twitter Stack
Evolution of The Twitter Stack
Chris Aniszczyk
ย 
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and HudsonEffective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Chris Aniszczyk
ย 
Effective Git with Eclipse
Effective Git with EclipseEffective Git with Eclipse
Effective Git with Eclipse
Chris Aniszczyk
ย 
Evolution of Version Control In Open Source
Evolution of Version Control In Open SourceEvolution of Version Control In Open Source
Evolution of Version Control In Open Source
Chris Aniszczyk
ย 
ESE 2010: Using Git in Eclipse
ESE 2010: Using Git in EclipseESE 2010: Using Git in Eclipse
ESE 2010: Using Git in Eclipse
Chris Aniszczyk
ย 
SWTBot Tutorial
SWTBot TutorialSWTBot Tutorial
SWTBot Tutorial
Chris Aniszczyk
ย 
Helios in Action: Git at Eclipse
Helios in Action: Git at EclipseHelios in Action: Git at Eclipse
Helios in Action: Git at Eclipse
Chris Aniszczyk
ย 
Introduction to EclipseRT (JAX 2010)
Introduction to EclipseRT (JAX 2010)Introduction to EclipseRT (JAX 2010)
Introduction to EclipseRT (JAX 2010)
Chris Aniszczyk
ย 
EclipseRT, Equinox and OSGi
EclipseRT, Equinox and OSGiEclipseRT, Equinox and OSGi
EclipseRT, Equinox and OSGi
Chris Aniszczyk
ย 
Open Source From The Trenches: How to Get Involved with Open Source and be Su...
Open Source From The Trenches: How to Get Involved with Open Source and be Su...Open Source From The Trenches: How to Get Involved with Open Source and be Su...
Open Source From The Trenches: How to Get Involved with Open Source and be Su...
Chris Aniszczyk
ย 
Understanding and Using Git at Eclipse
Understanding and Using Git at EclipseUnderstanding and Using Git at Eclipse
Understanding and Using Git at Eclipse
Chris Aniszczyk
ย 
Bringing an open source project to the Linux Foundation
Bringing an open source project to the Linux FoundationBringing an open source project to the Linux Foundation
Bringing an open source project to the Linux Foundation
Chris Aniszczyk
ย 
Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)Starting an Open Source Program Office (OSPO)
Starting an Open Source Program Office (OSPO)
Chris Aniszczyk
ย 
Open Container Initiative Update
Open Container Initiative UpdateOpen Container Initiative Update
Open Container Initiative Update
Chris Aniszczyk
ย 
Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)Cloud Native Landscape (CNCF and OCI)
Cloud Native Landscape (CNCF and OCI)
Chris Aniszczyk
ย 
Rise of Open Source Programs
Rise of Open Source ProgramsRise of Open Source Programs
Rise of Open Source Programs
Chris Aniszczyk
ย 
The Open Container Initiative (OCI) at 12 months
The Open Container Initiative (OCI) at 12 monthsThe Open Container Initiative (OCI) at 12 months
The Open Container Initiative (OCI) at 12 months
Chris Aniszczyk
ย 
Open Source Lessons from the TODO Group
Open Source Lessons from the TODO GroupOpen Source Lessons from the TODO Group
Open Source Lessons from the TODO Group
Chris Aniszczyk
ย 
Getting Students Involved in Open Source
Getting Students Involved in Open SourceGetting Students Involved in Open Source
Getting Students Involved in Open Source
Chris Aniszczyk
ย 
Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)Apache Mesos at Twitter (Texas LinuxFest 2014)
Apache Mesos at Twitter (Texas LinuxFest 2014)
Chris Aniszczyk
ย 
Evolution of The Twitter Stack
Evolution of The Twitter StackEvolution of The Twitter Stack
Evolution of The Twitter Stack
Chris Aniszczyk
ย 
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and HudsonEffective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Effective Development With Eclipse Mylyn, Git, Gerrit and Hudson
Chris Aniszczyk
ย 
Effective Git with Eclipse
Effective Git with EclipseEffective Git with Eclipse
Effective Git with Eclipse
Chris Aniszczyk
ย 
Evolution of Version Control In Open Source
Evolution of Version Control In Open SourceEvolution of Version Control In Open Source
Evolution of Version Control In Open Source
Chris Aniszczyk
ย 
ESE 2010: Using Git in Eclipse
ESE 2010: Using Git in EclipseESE 2010: Using Git in Eclipse
ESE 2010: Using Git in Eclipse
Chris Aniszczyk
ย 
SWTBot Tutorial
SWTBot TutorialSWTBot Tutorial
SWTBot Tutorial
Chris Aniszczyk
ย 
Helios in Action: Git at Eclipse
Helios in Action: Git at EclipseHelios in Action: Git at Eclipse
Helios in Action: Git at Eclipse
Chris Aniszczyk
ย 
Introduction to EclipseRT (JAX 2010)
Introduction to EclipseRT (JAX 2010)Introduction to EclipseRT (JAX 2010)
Introduction to EclipseRT (JAX 2010)
Chris Aniszczyk
ย 
EclipseRT, Equinox and OSGi
EclipseRT, Equinox and OSGiEclipseRT, Equinox and OSGi
EclipseRT, Equinox and OSGi
Chris Aniszczyk
ย 
Open Source From The Trenches: How to Get Involved with Open Source and be Su...
Open Source From The Trenches: How to Get Involved with Open Source and be Su...Open Source From The Trenches: How to Get Involved with Open Source and be Su...
Open Source From The Trenches: How to Get Involved with Open Source and be Su...
Chris Aniszczyk
ย 
Understanding and Using Git at Eclipse
Understanding and Using Git at EclipseUnderstanding and Using Git at Eclipse
Understanding and Using Git at Eclipse
Chris Aniszczyk
ย 
Ad

Recently uploaded (20)

Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
ย 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
ย 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
ย 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
ย 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
ย 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
ย 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
ย 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
ย 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
ย 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
ย 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
ย 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
ย 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
ย 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
ย 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
ย 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
ย 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
ย 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
ย 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
ย 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
ย 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
ย 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
ย 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
ย 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
ย 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
ย 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
ย 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
ย 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
ย 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
ย 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
ย 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
ย 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
ย 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
ย 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
ย 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
ย 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
ย 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
ย 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
ย 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
ย 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
ย 

Eclipse e4

  • 1. Eclipse 4.0 and e4 Chris Aniszczyk Principal Software Engineer [email protected] http://aniszczyk.org http://twitter.com/caniszczyk
  • 2. Howdy! โ€ข Hack Eclipse/OSGi/Git โ€ข Evangelist at Red Hat โ€ข Involved heavily at Eclipse โ€“ Eclipse Foundation Board of Directors โ€“ Co-lead PDE and EGit โ€ข Hacking on open source for a decade โ€“ Gentoo Linux, Eclipse, Fedora... โ€ข I like running (5K @ ~18min)
  • 3. Agenda Why e4? Eclipse 3.X and e4 l e4 workbench mode Styling and Services Compatibility Layer Conclusion and Q&A
  • 4. Lexicon e4 is an Eclipse.org project for platform-related incubation, itโ€™s not a product! Eclipse 4.0 is a release that contains some technology from the e4 project
  • 5. Why e4? โ€ข Innovate or become irrelevant โ€ข Use e4 technologies as a basis for Eclipse 4.X (some will show up in the 3.x stream) โ€ข Engage the open source community โ€ข Build a better Eclipse โ€“ Make it more ๏ฌ‚exible โ€“ Prepare for the web โ€“ Dynamic languages โ€“ Fix our mistakes
  • 7. Why change? โ€œWeโ€™ve already built all our plug-ins. The most important thing is donโ€™t break us.โ€ (Yes, there is a compatibility layer.)
  • 8. Eclipse is mature and huge... 8
  • 9. Foundations need to evolve... Eclipse Competition... Francois Schnell, http://www.flickr.com/photos/frenchy/30217773/
  • 10. Eclipse 4.0 SDK Early Adopter Release July 2010
  • 11. 11
  • 12. 12
  • 16. So, whatโ€™s wrong with Eclipse 3.X?
  • 17. Problems with Eclipse 3.x โ€ข Complex โ€ข Lots of API โ€ข Platform functionality via singletons โ€ข Not easy to test โ€ข Not a consistent way to de๏ฌne the UI โ€ข UI makes assumptions, e.g. Editors / Views โ€ข Easy Skinning โ€ข The browser is more powerful now... RIAs...
  • 18. If only Eclipse application development would be easier... 8
  • 19. Eclipse e4 โ€“ Building blocks Declarative Styling Rendering Engine Modeled Workbench Dependency Injection IEclipseContext Core Services
  • 21. The e4 Workbench Model Each application has its live model... think of the browser DOM... โ€ข Built using EMF โ€ข Workbench window โ€“ Menu with menu items โ€“ Window Trim, e.g. toolbar with toolbar items โ€“ Parts Sash Container โ€ข Parts โ€“ Part Stack (CTabFolder) โ€ข Parts โ€“ Handlers โ€“ Key Bindings โ€“ Commands
  • 22. The Model is Flexible No distinction between View/ Editor Perspectives are optional Stack / Sash are optional Several windows easily possible Flexible Toolbars
  • 23. Parts in e4 Plain Old Java Objects (POJOโ€˜s)
  • 24. Before e4... inheritance ruled... OBJECT EVENTMANAGER WORKBENCHPART VIEWPART VIEW
  • 25. How is this model translated into UI components?
  • 26. Model and UI Renderers Model I donโ€™t care who draws me โ€ข The Workbench model is independent of a speci๏ฌc UI toolkit
  • 27. Renderers Renderer Factory Eclipse default is the SWT Renderer Can be selected at Startup via parameter
  • 28. Renderers Renderer Factory Widget Renderer Returns for every model element
  • 29. Widget Renderer โ€ข Each UI elements gets a renderer โ€ข Renderer manage Lifecycle of the UI- Element โ€“ Creation โ€“ Model to widget binding โ€“ Rendering โ€“ Disposal
  • 31. Styling in Eclipse 3.x โ€ข UI styling via โ€“ The Presentation API โ€“ Custom Widgets โ€ข Very limited
  • 32. In reality all RCP apps look like the an IDE
  • 33. Eclipse 3.X - IDE Eclipse e4 โ€“ CSS Styling feeling Example from Kai Toedter Some elements cannot currently not be styled: โ€ข Menu bar background โ€ข Table headers e4 supports theme switching during runtime
  • 34. How to enable CSS Styling Property "applicationCSSโ€ in extension point org.eclipse.core.runtime.products <extension id="product" point="org.eclipse.core.runtime.products"> <product application="org.eclipse.e4.ui.workbench.swt.application" name="E4 Contacs Demo"> <property name="applicationCSS" value="platform:/plugin/contacts/css/dark.css"> </property> </product> </extension>
  • 35. Example CSS Label { font: Verdana 8px; color: rgb(240, 240, 240); } Table { background-color: gradient radial #575757 #101010 100%; color: rgb(240, 240, 240); font: Verdana 8px; } ToolBar { background-color: #777777 #373737 #202020 50% 50%; color: white; font: Verdana 8px; }
  • 36. Assign custom attributes โ€ข Java Label label = new Label(parent, SWT.NONE); label.setData("org.eclipse.e4.ui.css.id", "SeparatorLabel"); โ€ข CSS #SeparatorLabel { color: #f08d00; }
  • 38. Dependency Injection โ€ข Inversion of control: The necessary functionality is injected into the class s va Clas Ja
  • 39. Dependency Injection in e4 โ€ข JSR 330 compatible injection implementation (think Google Guice) โ€“ @javax.inject.Inject โ€“ Field, Constructor and Method injection โ€“ @javax.inject.Named โ€“ Specify a custom quali๏ฌer to context object (default is fully quali๏ฌed classname of the injected type) โ€ข e4 speci๏ฌc annotations... @Optional
  • 40. s va Clas Ja Services are injected via the the e4 framework public class ListView { @Inject private IEclipseContext context; @Inject private Logger logger; @Inject public ListView(Composite parent) { // ...
  • 41. CODE EXAMPLES rs-photo, http://www.flickr.com/photos/rs-foto/2129343084/sizes/l/
  • 42. Access preference values IPreferenceStore store = IDEWorkbenchPlugin.getDefault() .getPreferenceStore(); boolean saveBeforeBuild = store 3.x .getBoolean(SAVE_BEFORE_BUILD); @Inject @Preference(SAVE_BEFORE_BUILD) boolean saveBeforeBuild; 4.x
  • 43. Associate help context with control getSite() .getWorkbenchWindow() .getWorkbench() .getHelpSystem().setHelp( 3.x viewer.getControl(), some_id); @Inject IWorkbenchHelpSystem helpSystem; ... 4.x helpSystem.setHelp( viewer.getControl(), some_id);
  • 45. Eclipse Application Services (โ€œTwenty Thingsโ€) ๏‚ก Editor lifecycle ๏‚ก Long-running ๏‚ก Receiving input operations ๏‚ก Producing selection ๏‚ก Progress reporting ๏‚ก Standard dialogs ๏‚ก Error handling ๏‚ก Persisting UI state ๏‚ก Navigation model ๏‚ก Logging ๏‚ก Resource management ๏‚ก Interface to help ๏‚ก Status line system ๏‚ก Drag and drop ๏‚ก Menu contributions ๏‚ก Undo/Redo ๏‚ก Authentication ๏‚ก Accessing preferences ๏‚ก Authorization ๏‚ก Donโ€˜t forget: OSGi services are also available via dependency injection
  • 47. Compatibility Layer โ€ข Compatibility layer centers around org.eclipse.ui.workbench โ€“ Contains code to host 3.x API on e4 โ€ข Note: The 3.x workbench API with some exceptions... โ€“ org.eclipse.ui.presentations โ€“ org.eclipse.ui.themes โ€“ Activities and Capabilities โ€ข API clean plug-ins will run ๏ฌne
  • 49. Thanks for listening! For further questions: [email protected] http://aniszczyk.org http://twitter.com/caniszczyk
  • 50. Where to go from here Eclipse e4 Website http://www.eclipse.org/e4 Eclipse e4 Wiki http://wiki.eclipse.org/E4 Eclipse e4 Whitepaper http://www.eclipse.org/e4/resources/e4-whitepaper.php Eclipse 4.1 will most likely ship as part of the Indigo release...
  • 51. License & Acknowledgements โ€ข This work is licensed under: โ€“ http://creativecommons.org/licenses/by-nc-nd/3.0/de/deed.en_US โ€ข Thank you... โ€“ Boris Bokowski, IBM โ€“ Tom Schindl, BestSolution โ€“ Kai Tรถdter, Siemens AG โ€“ Lars Vogel, SAP AG