Lars Vogel gives a presentation on the state of Eclipse. He discusses his background with Linux and Eclipse. The presentation covers the Eclipse ecosystem, including the Eclipse Foundation and projects. Vogel describes how Eclipse is highly modular and extensible via plugins. He discusses Eclipse 4.0 and the move to a more flexible and model-driven architecture. In conclusion, Vogel recommends resources for learning more about Eclipse plugin and RCP development.
Eclipse State of the Union with Focus on Linux and Modularity
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
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
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
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
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
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
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
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
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