Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 8 лет назад пользователемКлавдия Медникова
1 Eclipse more than a Java IDE Core / Equinox Committer Users Extenders Publishers Enablers Configurers
2 What is Eclipse?
3 Eclipse is a kind of universal tool platform - an open extensible IDE for anything and nothing in particular. Eclipse is more than a Java IDE… In many ways Eclipse is the Emacs for the 21st century. – Martin Fowler
4 More than a Java IDE Some Eclipse-based Open Source Projects Languages Languages – –C/C++ –C# –Python –Php – –Cobol –Several UML Programming Tools Programming Tools – –Graphical Editing Framework (GEF) – –AspectJ tools – –Modeling (EMF) –ANTLR Parser Generator –Several DB tools –Jalopy Java Source Code Formatter –Japple – RAD –Jasper report designer –Lomboz –Java Spider Source & configuration mgt. –Perforce –Microsoft VSS Plugin –Stellation –Clearcase Web development –Sysdeo - Eclipse Tomcat Launcher –WebLogic manager –Several Struts –Spindle for Tapestry Testing / Performance –Hyades –Resin Plugin –MockCreator –Solex
5 Eclipse Organization Eclipse Projectthe platform Eclipse Projectthe platform –Platform –JDT: Java Development Tools –PDE: Plug-in Development Environment Eclipse Tools product ready additions to the platform Eclipse Tools product ready additions to the platform –GEF: Graphical Editing Framework –CDT: C/C++ development tools –EMF: Modeling Framework –Cobol –VE: Visual editor for Swing (and SWT) –UML2: UML meta-model implementation Web-Toolsweb development support Web-Toolsweb development support –JSP and XML support –… Technology experimental / research efforts Technology experimental / research efforts –ECESIS: Eclipse Courseware –Equinox: new more dynamic plug-in architecture –… new
6 What is Eclipse? Java VM PlatformJDTPDE Eclipse is a universal platform for integrating development tools Eclipse is a universal platform for integrating development tools Open, extensible architecture based on plug-ins Open, extensible architecture based on plug-ins SDK Resources, Team, Debug, Help, Update, SWT, UI,… Compiler, Refactoring, JDT UI, JDT Debug,… PDE Core, PDE Build, PDE UI
7 Platform vs. Extensible IDE Platform Extensible IDE IDE Plug-ins » Eclipse is a platform with a small runtime kernel Runtime Plug-ins
8 Eclipse Plug-in Architecture Plug-in – set of contributions Plug-in – set of contributions –Smallest unit of Eclipse functionality Extension point – named entity for collecting contributions Extension point – named entity for collecting contributions –Example: extension point for adding software metrics Extension – a contribution Extension – a contribution –Example: a specific metric Plug-in Platform Plug-in Extension Extension point
9
Extension configuration in XML …
10 Plug-in Goals… Easy to develop Easy to develop –Java Development Tools + Plug-in development environment Scale-up to hundreds of installed plug-ins Scale-up to hundreds of installed plug-ins –the problem is start-up time… –Eclipse consists of 80 plug-ins, WSAD IE is even larger > 1500 plug-ins lazy loading lazy loading Easy to discover, install, and update Easy to discover, install, and update –install/update support Easy to manage an installation Easy to manage an installation –managed configurations
11 Eclipse Involvements Users Users –Users of Eclipse Configurers Configurers –Adapt Eclipse to their personal needs by choosing and installing plug-ins and customizing them in anticipated ways Extenders Extenders –Provide extensions to existing extension points Publishers Publishers –Extenders who make their extensions available using the Eclipse mechanisms Enablers Enablers –Providers of extension points
12 The Contribution Cycle Users Extenders Publishers Enablers Configurers
13 Extender: Contribute an Icon View Goal: a plug-in to view the standard Eclipse images Goal: a plug-in to view the standard Eclipse images Steps: Steps: –read extension point specifications –use Plug-in Development Tools to create a plug-in project and to declare the extension –use the Java Development Tools to implement the extension
14 House Keeping Rules for Extenders * Program To API Contract Rule: Check and program to the Eclipse API contract Sharing Rule: Add, dont replace Sharing Rule: Add, dont replace Responsibility Rule: Clearly identify your plug-in as the source of problems Responsibility Rule: Clearly identify your plug-in as the source of problems Strata Rule: Separate language-neutral functionality from language-specific functionality and separate core functionality from UI functionality Conformance Rule: Contributions must conform to expected interfaces Conformance Rule: Contributions must conform to expected interfaces *Erich Gamma, Kent Beck - Contributing to Eclipse: Practices, Plug-Ins, Patterns
15 The Contribution Cycle Users Extenders Publishers Enablers Configurers
16 Publisher: Install/Update Features group plug-ins into installable chunks Features group plug-ins into installable chunks –Feature manifest file Plug-ins and features bear version identifiers Plug-ins and features bear version identifiers –major. minor. Service. qualifier –Multiple versions may co-exist on disk Features downloadable from web site Features downloadable from web site –Using Eclipse Platform update manager –Obtain and install new plug-ins –Obtain and install updates to existing plug-ins
18 Publisher: Create an Update Site An update-site An update-site –is any URL addressable location –contains zips for the feature and plug-ins –version information encoded in the zip name –contents described by a site.xml file Eclipse Demo Plugins
19 House Keeping Rules for Publishers License Rule: Always supply a license with every contribution.
20 The Contribution Cycle Users Extenders Publishers Enablers Configurers
21 Enabler: Invite Others to Contribute extension-point imageFilters Declares extension point: Declares interface: interface IImageFilter { Image filter(Image image); } interface IImageFilter calls ImageViewer Plugin
22 Enabler: Invite Others to Contribute My Plug-in class GreyFilter extension-point imageFilters extension contributes Declares extension point: Declares interface: interface IImageFilter { Image filter(Image image); } Contributes extension: …class=GreyFilter Implements interface: class GreyFilter implements IImageFilter { } interface IImageFilter calls implements ImageViewer Plugin
23 Enabler: Invite Others to Contribute My Plug-in class GreyFilter extension-point imageFilters extension contributes Declares extension point: Declares interface: interface IImageFilter { Image filter(Image image); } Contributes extension: …class=GreyFilter Implements interface: class GreyFilter implements IImageFilter { } interface IImageFilter Instantiated via reflection calls implements ImageViewer Plugin uses
24 House Keeping Rules for Enablers Invitation Rule: Whenever possible, let others contribute to your contributions Invitation Rule: Whenever possible, let others contribute to your contributions Explicit API Rule: Separate the API from internals Fair Play Rule: All clients play by the same rules, even me. Fair Play Rule: All clients play by the same rules, even me. Diversity Rule: Extension points accept multiple extensions. Lazy Loading Rule: Contributions are only loaded when they are needed Lazy Loading Rule: Contributions are only loaded when they are needed Good Fences Rule: When passing control outside your code, protect yourself Stability Rule: Once you invite someone to contribute, dont change the rules Stability Rule: Once you invite someone to contribute, dont change the rules
25 Closing the Circle Now that we have published a plugin with extension points we have closed the circle: Now that we have published a plugin with extension points we have closed the circle: Extenders can now extend your extensions! Extenders can now extend your extensions! Users Extenders Publishers Enablers Configurers
26 Summary All functionality is provided by plug-ins and fragments All functionality is provided by plug-ins and fragments –Includes all aspects of Eclipse Platform itself Contributions are made via extension points Contributions are made via extension points –Extensions are created lazily Plug-ins are packaged into separately installable features Plug-ins are packaged into separately installable features –Downloadable
27 Whats Next: Beyond Java Stuff Eclipse Rich Client Platform Eclipse Web Project Open-up Java Tooling
28 Eclipse 3.0 Themes Platform Platform –improved user experience UI scalability in the face of tons of contributionsUI scalability in the face of tons of contributions Out of the box experienceOut of the box experience New look and feelNew look and feel –responsive UI background activitiesbackground activities –rich client platform generalize Eclipse into a platform for building non-IDE appsgeneralize Eclipse into a platform for building non-IDE apps –dynamic runtime Java Development Tools Java Development Tools –open-up for other Java family members (edition, index, refactoring) –improved user experience navigationnavigation –digesting Tiger (jdk 1.5)
29 What is Eclipse RCP ? Eclipse is a kind of universal tool platform – an open extensible IDE for anything and nothing in particular. Eclipse is more than a Java IDE…
30 What is Eclipse RCP? Java VM – ee.minimum Platform A refactoring of the platform A refactoring of the platform SDK IDE Specific Platform JDTPDE Runtime, Help, Update, SWT, Generic UI,… Resources, Team, Debug, IDE UI,…
31 Dynamic runtime Dynamic plug-in Dynamic plug-in –Addition of plug-ins –Removal of plug-ins (no magic, instances need to be freed) –Update of plug-ins OSGi runtime ( OSGi runtime ( –Standardized runtime –Improved class-loading –Finer grained management of plug-in dependencies –Smaller JDK required, embedded devices Why not Eclipse in your cell phone or palm?
33 The Way to Eclipse Eclipse Nov Open Source announcement VisualAge/Java VisualAge Micro edition March 2.1 Oct 1.0 June 2.0 June Tech Preview
34 Eclipse Supports Plug-in Development Platform Runtime Workspace Help Team Workbench JFace SWT Eclipse Project Java Development Tools (JDT) Their Tool Your Tool Another Tool Plug-in Development Environment (PDE) Eclipse Platform Debug Update
35 Monkey See/Monkey Do Eclipse Trio Eclipse Trio –tools –published APIs –Open Source source access Learn-by-example Learn-by-example –browse existing code –PDE –JSpider
36 Extending Eclipse for Fun and Profit… Eclipse SDK IBM Websphere Studio App. Developer Eclipse SDK SAP NetWeaver Developer Studio Commercial Development Environments Commercial Add-Ons Eclipse SDK IBM Websphere Studio App. Developer Eclipse SDK SAP NetWeaver Developer Studio Instantiations, Borland, Sitraka, SlickEdit…
37 Platform Implications Everybody can contribute plug-ins Everybody can contribute plug-ins –Every programmer can be a tool smith Creating opportunities for further extension makes it possible for the tool smith to benefit from the work of others Creating opportunities for further extension makes it possible for the tool smith to benefit from the work of others It has to be easy to install and manage plug-ins It has to be easy to install and manage plug-ins
38 Tip of iceberg Implementation of plug-in contributions Declarative definition of plug-in contributions startup time: O(#used plug-ins), not O(# installed plug-ins)
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.