Your SlideShare is downloading. ×
Eclipse Overview
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Eclipse Overview

5,716

Published on

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

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

0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,716
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
200
Comments
0
Likes
8
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Eclipse – State of the union- with a little, little focus on Linux
    Lars Vogel
    http://www.vogella.de
    http://www.twitter.com/vogella
  • 2. 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 ?
  • 3. 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
  • 4. Todays talk will be about Java and programming for and based on Eclipse
  • 5. Eclipse is written in Javain little pieces (plugins)
  • 6. Mini-Agenda
    The Eclipse Ecosystem
    Eclipse and modularity
    Eclipse Plugin and RCP development
    Eclipse 4.0 / Eclipse e4
  • 7. The Eclipse Ecosystem
  • 8. Successful Open Source Projects
  • 9. Unlike other (successful) OpenSource Projects Eclipse has no mascot
    This is NOT the animal representing Eclipse
  • 10. 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
  • 11. 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
  • 12. 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.
  • 13. Eclipse Foundation does not pay developers
    Member companies and private persons develop the code
  • 14. STRATEGIC MEMBERS
  • 15. ALL MEMBERS
  • 16. Members, there are 160 as of today.
    14 Strategic
    3 Enterprise
    74 Solutions
    69 Associate
  • 17. Eclipse Projects
    Over 100 Eclipse projects
    Originally very IDE focused but start getting divers
    http://www.eclipse.org/projects/listofprojects.php
  • 18. 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
  • 19. Eclipse Download Statistics
    Downloads bundle several projects
  • 20. All Eclipse.org source code is released under the Eclipse Public License (EPL)
  • 21. 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. 22
    Eclipse & third parties
    Google
    GWT
    Google App Engine
    Android Dev tools
    ZEND
    PHP Studio
    IBM
    Webspere
    Jazz
    And many more
  • 23. The Eclipse community
    Very welcoming
    Eclipse forums
    PlanetEclipse.org
    #eclipse at IRC
    Seems to be individual driven rather then company driven
  • 24. I use Eclipse for Kernel Development
    * Quote complete made up by Lars
  • 25. The modular architecture of Eclipse
  • 26. Extensible Application - Firefox
    Plugins
    The Browser
  • 27. In Eclipse everything is a plugin (except the core runtime)
    Plugin
    Plugin
    Plugin
    Plugin
    Plugin
    Runtime
  • 28. Platformvrs. Extensible Application
    Platform
    Extensible Application
    Application
    Runtime
  • 29. Eclipse IDE
    Help
    P2 Update
    Text
    Compare
    Debug
    Search
    Team/ cvs
    IDE personality
    Workbench
    Resources
    JFace
    Runtime / Equinox (OSGi)
    SWT
  • 30. Each Plugin defines its available API
  • 31. Each Plugin defines also its dependencies
  • 32. Runtime (OSGi) makes sure the API contacts are fulfilled
  • 33. Plugin and RCP Development
  • 34. Your plugins
    Eclipse IDE
  • 35. 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
  • 36. Extensions
    Extension Points
    Provide functionality to predefined slots (== extension points)
    Define places where others (== extensions) can provide functionality
  • 37. Eclipse extensibility is a little bit like Emacs, you can add easily functionality
    But not in LISP
  • 38. 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
  • 39. Eclipse RCP
    Help
    P2 Update






    Workbench

    JFace
    Runtime / Equinox (OSGi)
    SWT
  • 40. 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
  • 41. 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
  • 42. The future of Eclipse – Problems & Solutions
  • 43. All Eclipse code must be free of IP problems
    IP Due Dilligence take a lot of time
  • 44. Eclipse.org moving to git (jgit)
    Does Eclipse need a fork?
    Hope to enrich the ecosystem by making forking easy
  • 45. Eclipse.org moving towards git
    Hope to enrich the ecosystem by making forking easy
  • 46. Eclipse development got more and more complex over the years
    • Eclipse 4.0 (aka e4)
    Developer Productivity
  • 47. Eclipse 4.0
  • 48. Eclipse e4 Scope
    Targets developmentfor Eclipse (plugins) or based on Eclipse (Eclipse RCP).
  • 49. Eclipse e4 Targets
    Make Eclipse development more effective and the result more visual appealing.
  • 50. Eclipse e4 – Building blocks
    Declarative Styling
    Rendering Engine
    Modeled Workbench
    Dependecy Injection
    IEclipseContext
    Core Services
  • 51. The Modeled Workbench
  • 52. 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
  • 53. 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
  • 54. Model is Flexible
    No distinction between View and Editor
    Perspectives are optional
    Stack / Sash are optional
    Several windows easily possible
    Flexible Toolbars
  • 55. Parts in Eclipse 4.0
    Plain Old Java Objects (POJO‘s)
  • 56. InherianceHierachy of Views Parts before Eclipse 4.0
    Object
    EventManager
    WorkbenchPart
    ViewPart
    View
  • 57. Model available at runtime
  • 58. How is this model translated into UI components?
    © Lars Vogel and others, Licensed under Creative Commons by-nc-nd-3.0 (de)
  • 59. Widget Renderer
    Each UI elements gets a renderer
    Renderer manage Lifecycle of the UI-Element
    Creation
    Model to widget binding
    Rendering
    Disposal
  • 60. Renderer: flexible but complex
  • 61. e4 CSS Styling
  • 62. Eclipse3.X - IDE feeling
    Eclipse e4 – CSS Styling
    Example from Kai Toedter
    Some elements cannot currently not be styled:
    • Menu bar background
    • 63. Table headers
    e4 supports theme switching during runtime
  • 64. New Look & Feel for Eclipse e4 – SDK
    https://bugs.eclipse.org/bugs/show_bug.cgi?id=293481
  • 65. The e4 Programming Model
  • 66. Dependency Injection
    Inversion of control: The necessary functionality is injected into the class
    Java Class
  • 67. 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
  • 68. Java Class
    Services are injected via the the e4 framework
    publicclassListView {
    @Inject
    privateIEclipseContextcontext;
    @Inject
    private Loggerlogger;
    @Inject
    publicListView(Composite parent) {
    // ...
  • 69. 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
  • 70. OpenSocial Gadgets
  • 71. OpenSocial Gadgets in Eclipse
  • 72. 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
    • 73. Chess http://www.sxc.hu/photo/958410
    • 74. Pill box http://www.sxc.hu/photo/510413
    • 75. Under construction http://www.sxc.hu/photo/ 1268302
    • 76. Singleton: http://www.sxc.hu/photo/ 988381
    • 77. Thank you picture http://www.sxc.hu/photo/ 986313
    • 78. Runtime model http://www.sxc.hu/photo/ 765733
    • 79. Screws http://www.sxc.hu/photo/1148064
    • 80. House with compartments http://www.sxc.hu/photo/494103
    • 81. Stacked stones http://www.sxc.hu/photo/998524
    • 82. Thinking Guy http://www.sxc.hu/photo/130484
    • 83. Drawing Hand http://www.sxc.hu/photo/264208
    • 84. Waiter http://www.sxc.hu/photo/157966
    • 85. Syringe / Injection: http://www.sxc.hu/photo/ 468493
    • 86. Smiley http://www.sxc.hu/photo/ 1211480
    • 87. Lock http://www.sxc.hu/photo/ 352344
    • 88. 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
  • 89.
  • 90. Thank you
    For further questions:
    Lars.Vogel@gmail.com
    http://www.vogella.de
    http://www.twitter.com/vogella
  • 91. 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

×