• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Eclipse Overview
 

Eclipse Overview

on

  • 6,429 views

Overview about the Eclipse foundation, Plugin and RCP development and Eclipse e4.

Overview about the Eclipse foundation, Plugin and RCP development and Eclipse e4.

Statistics

Views

Total Views
6,429
Views on SlideShare
6,384
Embed Views
45

Actions

Likes
7
Downloads
189
Comments
0

6 Embeds 45

http://www.slideshare.net 25
http://neeraj-learn.blogspot.in 16
http://neeraj-learn.blogspot.com 1
http://neeraj-learn.blogspot.fi 1
http://bba7205.1bestarinet.net 1
http://neeraj-learn.blogspot.ca 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Eclipse Overview Eclipse Overview Presentation Transcript

    • Eclipse – State of the union- with a little, little focus on Linux
      Lars Vogel
      http://www.vogella.de
      http://www.twitter.com/vogella
    • Lars Vogel
      Working for SAP AG as a product manager
      Privately contributing to in the Java and Eclipse ecosystem
      Publish programming tutorials on http://www.vogella.de
      Who am I ?
    • I used to use Linux / Unix quite a bit but this a while ago
      Emacs and KDE rules!
      My server for http://www.vogella.de runs on Ubuntu
      I still think that the command line is cool
      Me and Linux
    • Todays talk will be about Java and programming for and based on Eclipse
    • Eclipse is written in Javain little pieces (plugins)
    • Mini-Agenda
      The Eclipse Ecosystem
      Eclipse and modularity
      Eclipse Plugin and RCP development
      Eclipse 4.0 / Eclipse e4
    • The Eclipse Ecosystem
    • Successful Open Source Projects
    • Unlike other (successful) OpenSource Projects Eclipse has no mascot
      This is NOT the animal representing Eclipse
    • Impact
      Eclipse – History Book
      Very disruptive for the pay IDE
      Eclipse is a vendor independent Open Source Project
      Nov. 2001 – Code released as
      Open Source, still lead by companies
      Febr. 2004 – Eclipse Foundation created
    • Impact
      Eclipse – History Book
      Start of Eclipse as a platform, e.g. NASA starts using Eclipse for it‘s Mars mission
      Market leader with a strong ecosystem
      Re-gain innovation speed
      Juni 2004 – Eclipse 3.0 based
      on OSGi and enables Eclipse
      RCP
      2010 - Current Eclipse 3.5.2
      (aka Ganymede)
      06.2010 Release of Eclipse 3.6
      07.2010 Planned first release of Eclipse 4.0
    • Eclipse Foundation
      The Eclipse Foundation is a not-for-profit, member supported corporation that hosts the Eclipse projects and helps cultivate both an open source community and an ecosystem of complementary products and services.
    • Eclipse Foundation does not pay developers
      Member companies and private persons develop the code
    • STRATEGIC MEMBERS
    • ALL MEMBERS
    • Members, there are 160 as of today.
      14 Strategic
      3 Enterprise
      74 Solutions
      69 Associate
    • Eclipse Projects
      Over 100 Eclipse projects
      Originally very IDE focused but start getting divers
      http://www.eclipse.org/projects/listofprojects.php
    • CDT
      C and C++ development
      JDT
      Java Development Tools
      and much, much more…
      Egit
      Git with Java
      PHP
      Runtime
      Equinox (OSGi)
      RAP

      WebtoolsPlatform
      JSF
      JPA
      Webservices
      HTML
      JavaScript
      PDE
      Plugin Development Tools
    • Eclipse Download Statistics
      Downloads bundle several projects
    • All Eclipse.org source code is released under the Eclipse Public License (EPL)
    • EPL is business friendly
      Do what you want with the code
      Modification of the original code must be contributed back
      NOT viral like the GPL which companies like
    • 22
      Eclipse & third parties
      Google
      GWT
      Google App Engine
      Android Dev tools
      ZEND
      PHP Studio
      IBM
      Webspere
      Jazz
      And many more
    • The Eclipse community
      Very welcoming
      Eclipse forums
      PlanetEclipse.org
      #eclipse at IRC
      Seems to be individual driven rather then company driven
    • I use Eclipse for Kernel Development
      * Quote complete made up by Lars
    • The modular architecture of Eclipse
    • Extensible Application - Firefox
      Plugins
      The Browser
    • In Eclipse everything is a plugin (except the core runtime)
      Plugin
      Plugin
      Plugin
      Plugin
      Plugin
      Runtime
    • Platformvrs. Extensible Application
      Platform
      Extensible Application
      Application
      Runtime
    • Eclipse IDE
      Help
      P2 Update
      Text
      Compare
      Debug
      Search
      Team/ cvs
      IDE personality
      Workbench
      Resources
      JFace
      Runtime / Equinox (OSGi)
      SWT
    • Each Plugin defines its available API
    • Each Plugin defines also its dependencies
    • Runtime (OSGi) makes sure the API contacts are fulfilled
    • Plugin and RCP Development
    • Your plugins
      Eclipse IDE
    • MANIFEST.MF – Defines OSGi bundle
      plugin.xml – Defines Eclipse extensions and extension points
      PDE (Plug-in Development Environement) provides editors for these files.
      Configuration files
    • Extensions
      Extension Points
      Provide functionality to predefined slots (== extension points)
      Define places where others (== extensions) can provide functionality
    • Eclipse extensibility is a little bit like Emacs, you can add easily functionality
      But not in LISP
    • Thin layer upon the native GUI libraries
      JNI calls
      Not a lot of convenient functionality
      SWT - Standard Widget Toolkit
      Example Gnome GTK+ for Linux
      *Screenshot from the Internet
    • Eclipse RCP
      Help
      P2 Update






      Workbench

      JFace
      Runtime / Equinox (OSGi)
      SWT
    • JFace
      UI toolkit that provides helper classes for developing UI features
      Tables / TreeViewer / Dialogs /
      Can be based on models
      Databinding
      Workbench
      multi-window environment
      manages views, editors, perspectives 
      JFace & Workbench
    • Viewer: Table / Treeviewer: Responsible for the UI
      LabelProvider: How is the domain model represented
      ModelProvider: Delivery the domain model
      ViewerSorter: Sorts values in the viewer
      ViewerFilter: Filters values
      Example: JFace Viewer
      ContentProvider –
      „Dao“ for viewer
      LabelProvider –
      Which data is represented how
      Viewer –
      UI, shows data
    • The future of Eclipse – Problems & Solutions
    • All Eclipse code must be free of IP problems
      IP Due Dilligence take a lot of time
    • Eclipse.org moving to git (jgit)
      Does Eclipse need a fork?
      Hope to enrich the ecosystem by making forking easy
    • Eclipse.org moving towards git
      Hope to enrich the ecosystem by making forking easy
    • Eclipse development got more and more complex over the years
      • Eclipse 4.0 (aka e4)
      Developer Productivity
    • Eclipse 4.0
    • Eclipse e4 Scope
      Targets developmentfor Eclipse (plugins) or based on Eclipse (Eclipse RCP).
    • Eclipse e4 Targets
      Make Eclipse development more effective and the result more visual appealing.
    • Eclipse e4 – Building blocks
      Declarative Styling
      Rendering Engine
      Modeled Workbench
      Dependecy Injection
      IEclipseContext
      Core Services
    • The Modeled Workbench
    • Eclipse 4.0 Application model
      Models the Application (UI) and the behavior (commands)
      EMF based
      Modeled Workbench
      Content of the view not part of the e4 model
    • The e4 Workbench Model
      Each application has it‘s live model
      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
    • Model is Flexible
      No distinction between View and Editor
      Perspectives are optional
      Stack / Sash are optional
      Several windows easily possible
      Flexible Toolbars
    • Parts in Eclipse 4.0
      Plain Old Java Objects (POJO‘s)
    • InherianceHierachy of Views Parts before Eclipse 4.0
      Object
      EventManager
      WorkbenchPart
      ViewPart
      View
    • Model available at runtime
    • How is this model translated into UI components?
      © Lars Vogel and others, Licensed under Creative Commons by-nc-nd-3.0 (de)
    • Widget Renderer
      Each UI elements gets a renderer
      Renderer manage Lifecycle of the UI-Element
      Creation
      Model to widget binding
      Rendering
      Disposal
    • Renderer: flexible but complex
    • e4 CSS Styling
    • Eclipse3.X - IDE feeling
      Eclipse e4 – CSS Styling
      Example from Kai Toedter
      Some elements cannot currently not be styled:
      • Menu bar background
      • Table headers
      e4 supports theme switching during runtime
    • New Look & Feel for Eclipse e4 – SDK
      https://bugs.eclipse.org/bugs/show_bug.cgi?id=293481
    • The e4 Programming Model
    • Dependency Injection
      Inversion of control: The necessary functionality is injected into the class
      Java Class
    • Dependency Injection in e4
      JSR 330 compatible injection implementation
      @javax.inject.Inject – Field, Constructor and Method injection
      @javax.inject.Named – Specify a custom qualifier to context object (default is fully qualified classname of the injected type)
      e4 specific annotations, e.g. @Optional
    • Java Class
      Services are injected via the the e4 framework
      publicclassListView {
      @Inject
      privateIEclipseContextcontext;
      @Inject
      private Loggerlogger;
      @Inject
      publicListView(Composite parent) {
      // ...
    • Eclipse and the web
      Eclipse e4 targets to bring the Eclipse IDE closer to the web
      One way would be to run Eclipse in the web, e.g. via Eclipse RAP
      Another way would be to run the web inside Eclipse
    • OpenSocial Gadgets
    • OpenSocial Gadgets in Eclipse
    • Photo credits
      Not the Eclipse mascot http://www.sxc.hu/photo/666565
      Blue Sky with corn: http://www.sxc.hu/photo/570500
      Headless business man http://www.sxc.hu/photo/713927
      Money http://www.sxc.hu/photo/767230
      Old Book http://www.sxc.hu/photo/1273173
      Plug 1 http://www.sxc.hu/photo/603920
      Plug 2 http://www.sxc.hu/photo/182575
      USB Plug http://www.sxc.hu/photo/951745
      Lots of Plugs http://www.sxc.hu/photo/721092
      Police 1 http://www.sxc.hu/photo/860421
      Police 2 http://www.sxc.hu/photo/596144
      Boy in the water http://www.sxc.hu/photo/1022035
      Eye with the world in them http://www.sxc.hu/photo/928425
      Electronic parts http://www.sxc.hu/photo/643720
      Snail 1 http://www.sxc.hu/photo/1181451
      Snail 2 http://www.sxc.hu/photo/1181452
      Fork http://www.sxc.hu/photo/1186818
      Hammer http://www.sxc.hu/photo/604247
      Corn http://www.sxc.hu/photo/939151
      • Thinking man http://www.sxc.hu/photo/324541
      • Chess http://www.sxc.hu/photo/958410
      • Pill box http://www.sxc.hu/photo/510413
      • Under construction http://www.sxc.hu/photo/ 1268302
      • Singleton: http://www.sxc.hu/photo/ 988381
      • Thank you picture http://www.sxc.hu/photo/ 986313
      • Runtime model http://www.sxc.hu/photo/ 765733
      • Screws http://www.sxc.hu/photo/1148064
      • House with compartments http://www.sxc.hu/photo/494103
      • Stacked stones http://www.sxc.hu/photo/998524
      • Thinking Guy http://www.sxc.hu/photo/130484
      • Drawing Hand http://www.sxc.hu/photo/264208
      • Waiter http://www.sxc.hu/photo/157966
      • Syringe / Injection: http://www.sxc.hu/photo/ 468493
      • Smiley http://www.sxc.hu/photo/ 1211480
      • Lock http://www.sxc.hu/photo/ 352344
      • Life Cycle http://www.sxc.hu/photo/ 1265027
    • Eclipse: Where to go from here:
      Eclipse Wiki
      http://wiki.eclipse.org/
      Eclipse Plugin Development
      http://www.vogella.de/articles/EclipsePlugIn/article.html
      Eclipse RCP Tutorial
      http://www.vogella.de/articles/RichClientPlatform/article.html
      Eclipse e4 Tutorial
      http://www.vogella.de/articles/EclipseE4/article.html
      Eclipse e4 Whitepaper
      http://www.eclipse.org/e4/resources/e4-whitepaper.php
    • Thank you
      For further questions:
      Lars.Vogel@gmail.com
      http://www.vogella.de
      http://www.twitter.com/vogella
    • License & Acknowledgements
      This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Germany License
      See http://creativecommons.org/licenses/by-nc-nd/3.0/de/deed.en_US