SlideShare une entreprise Scribd logo
1  sur  24
Developing Eclipse Plugins לירן זילכה מנכ"ל משותף Liran.zelkha@alunasoft.com
Aluna Israel’s leading Java/JavaEE and SOA consulting company Customers:
Eclipse plug-in architecture Some of this material was taken from a plug-in course developed by the ECESIS project.
Eclipse plug-in architecture Flexible, structured around extension points and plug-ins This architecture allows for: Other tools to be used within the platform Other tools to be further extended Integration between tools and the platform No need to wait for new product releases
Eclipse plug-in architecture Tool (plug-in) Tool (plug-in) Tool (plug-in) Plug-in  Developer Environment (PDE) Java  Development Tooling (JDT) Eclipse Platform Workbench Help JFace SWT … Workspace Team Platform Runtime Eclipse SDK
Platform runtime In the Eclipse, everything is plug-in except the Platform Runtime (the kernel) All other subsystems build up on the Platform Runtime following the rules of plug-ins The Basic platform includes: Resources Management Workbench Team Debug Help
Extension points Describe additional functionality that could be integrated with the platform External tools extend the platform to  bring specific functionality Java Development Tooling (JDT) and Plug-in Development Environment (PDE) are external tools integrated with the platform
Extension points There are two levels of extending Eclipse: Extending core platform Extending existing extensions Extension points may have a corresponding API interface Describes what should be provided in the extension
Plug-ins Define extension points Each plug-in defines its own set of extension points Implement specialized functionality Usually key functionality that does not already exist in the platform Provide their own set of APIs Used for further extension of their functionalities Are external, but fully integrated
Plug-ins Implement behavior defined through extension point API interface Can extend named extension points from Eclipse or extension points of other plug-ins Can declare an extension point and provide an extension to it Are developed in Java programming language
What's in a plug-in? A JAR file An archive with the plug-in code plugin.xml Manifest that describes plug-in about.html Textual description of the plug-in plugin.properties Plugin-in properties
Describing plug-ins An extension to the platform has to be registered somewhere Each plug-in has a manifest file that describes: Location of the plug-in code Extensions added by the plug-in
Describing plug-ins The manifest file is plugin.xml.  There are Eclipse tools that make it easy to edit the file without using XML directly. The manifest describes: Name, id, and version of the plug-in List of other plug-ins (and versions) required by the plug-in described Extension points Where the plug-in code is located
Example manifest file <?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.0"?> <plugin    name="Helloworld plug-in"    id="com.examples.helloworld"    version="1.0.0“ provider-name="EXAMPLE"   class="com.example.helloworld.HelloworldPlugin"> >    <requires>     <import plugin="org.eclipse.ui"/>     <import plugin="org.eclipse.core.runtime"/>     <import plugin="org.eclipse.core.runtime.compatibility"/>   </requires>    <runtime>     <library name="helloworld.jar">       <export name="*"/>     </library>     </runtime>    <extension point="org.eclipse.ui.views">    <category name="Hello Category" id="com.example.helloworld"> </category>     <view      name="Hello View" icon="icons/sample.gif" category="com.example.helloworld" class="com.example.helloworld.HelloWorldView" id="com.example.helloworld.HelloWorldView">     </view>    </extension> </plugin>
Packaging plug-ins Plug-ins are packaged as Java Archives – JAR files Archives are named using naming convention: <id>_<version>.jar <id> is the identifier <version> is the full version number from the manifest file For example: org.eclipse.demo. plugin.simple_1.0.jar
Publishing plug-ins Used for preparing plug-in for deployment on a specific platform Manual publishing makes use of Ant scripts Ant is a open source build tool, commonly used in building processes with Java code Ant scripts are Java based (platform independent) with XML configuration Ant is supported in Eclipse
Publishing plug-ins Automatic publishing is available by using Eclipse wizards You don't have to use Ant scripts  Wizards allow publishing in a single zip file.  A single zip file can contain multiple plug-ins.
Installing plug-ins Plug-ins are installed under the plugins directory under the Eclipse installation directory Usually c:clipselugins on Windows platforms
Plug-in fragments Used for extending existing plug-ins Provide an additional functionality to existing plug-ins Ideal for providing add-on functionality to plug-ins Packaged in separate files Fragment content is treated as it was original plug-in archive At runtime the platform detects fragments and merges their content with the original plug-in
Plug-in fragments Described in fragment.xml files Similar to plug-in manifest files Plug-in archive can contain plug-ins or fragments
Eclipse API Meant to be used by plug-in developers API elements are documented and completely specified The API elements specify what they are supposed to do and how they are intended to be used.
Eclipse API The Eclipse platform code is separated into: API packages Contain API elements Non-API packages Contain internal platform implementation
Using the Eclipse API The API can be used by doing one of the following: Instantiating platform API classes Subclassing platform API classes Calling public API methods Most commonly used Calling protected API methods Possible from API subclasses
Using the Eclipse API More ways to use the API: Overriding API methods Allowed for some methods Implementing platform API interfaces Accessing Fields in API classes and interfaces Mainly final, read-only fields

Contenu connexe

Tendances

Lotusphere 2011 Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...
Lotusphere 2011  Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...Lotusphere 2011  Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...
Lotusphere 2011 Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...
Ryan Baxter
 
Common Client Rich Client Platforms
Common Client   Rich Client PlatformsCommon Client   Rich Client Platforms
Common Client Rich Client Platforms
Geertjan Wielenga
 
Building an Eclipse plugin to recommend changes to developers
Building an Eclipse plugin to recommend changes to developersBuilding an Eclipse plugin to recommend changes to developers
Building an Eclipse plugin to recommend changes to developers
kim.mens
 

Tendances (20)

Discovering the p2 API
Discovering the p2 APIDiscovering the p2 API
Discovering the p2 API
 
Plugin architecture (Extensible Application Architecture)
Plugin architecture (Extensible Application Architecture)Plugin architecture (Extensible Application Architecture)
Plugin architecture (Extensible Application Architecture)
 
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API EconomyRewriting a Plugin Architecture 3 Times to Harness the API Economy
Rewriting a Plugin Architecture 3 Times to Harness the API Economy
 
Discovery the p2 API (updated to Indigo)
Discovery the p2 API (updated to Indigo)Discovery the p2 API (updated to Indigo)
Discovery the p2 API (updated to Indigo)
 
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
p2, your savior or your achilles heel? Everything an Eclipse team needs to kn...
 
P2 Introduction
P2 IntroductionP2 Introduction
P2 Introduction
 
Introduction to Eclipse IDE
Introduction to Eclipse IDEIntroduction to Eclipse IDE
Introduction to Eclipse IDE
 
Eclipse IDE
Eclipse IDEEclipse IDE
Eclipse IDE
 
Single Sourcing RAP and RCP - Desktop and web clients from a single code base
Single Sourcing RAP and RCP - Desktop and web clients from a single code baseSingle Sourcing RAP and RCP - Desktop and web clients from a single code base
Single Sourcing RAP and RCP - Desktop and web clients from a single code base
 
OSGi Sticker Shock Eclipse Con 2010
OSGi Sticker Shock   Eclipse Con 2010OSGi Sticker Shock   Eclipse Con 2010
OSGi Sticker Shock Eclipse Con 2010
 
Lotusphere 2011 Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...
Lotusphere 2011  Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...Lotusphere 2011  Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...
Lotusphere 2011 Jmp103 - Jumpstart Your "Jedi Plug-in Development Skills" wi...
 
What's new in Eclipse Mars
What's new in Eclipse MarsWhat's new in Eclipse Mars
What's new in Eclipse Mars
 
Tycho - Building plug-ins with Maven
Tycho - Building plug-ins with MavenTycho - Building plug-ins with Maven
Tycho - Building plug-ins with Maven
 
Gwt and JSR 269's Pluggable Annotation Processing API
Gwt and JSR 269's Pluggable Annotation Processing APIGwt and JSR 269's Pluggable Annotation Processing API
Gwt and JSR 269's Pluggable Annotation Processing API
 
From Renamer Plugin to Polyglot IDE
From Renamer Plugin to Polyglot IDEFrom Renamer Plugin to Polyglot IDE
From Renamer Plugin to Polyglot IDE
 
Common Client Rich Client Platforms
Common Client   Rich Client PlatformsCommon Client   Rich Client Platforms
Common Client Rich Client Platforms
 
Python IDE Roundup
Python IDE RoundupPython IDE Roundup
Python IDE Roundup
 
Android – As a tool of innovation
Android – As a tool of innovation Android – As a tool of innovation
Android – As a tool of innovation
 
Monkey talk
Monkey talkMonkey talk
Monkey talk
 
Building an Eclipse plugin to recommend changes to developers
Building an Eclipse plugin to recommend changes to developersBuilding an Eclipse plugin to recommend changes to developers
Building an Eclipse plugin to recommend changes to developers
 

Similaire à Building Eclipse Plugins

Assign 10 - Creating Projects using Eclipse IDE
Assign 10 -  Creating Projects using Eclipse IDE Assign 10 -  Creating Projects using Eclipse IDE
Assign 10 - Creating Projects using Eclipse IDE
Yogesh Deshpande
 
Eclipse_Building_Blocks
Eclipse_Building_BlocksEclipse_Building_Blocks
Eclipse_Building_Blocks
Rahul Shukla
 
Android application structure
Android application structureAndroid application structure
Android application structure
Alexey Ustenko
 
Steps to write Selenium
Steps to write Selenium  Steps to write Selenium
Steps to write Selenium
Rohit Thakur
 
Plug-in Architectures
Plug-in ArchitecturesPlug-in Architectures
Plug-in Architectures
elliando dias
 

Similaire à Building Eclipse Plugins (20)

Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
 
ITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-ins
 
Eclipse RCP Overview @ Rheinjug
Eclipse RCP Overview @ RheinjugEclipse RCP Overview @ Rheinjug
Eclipse RCP Overview @ Rheinjug
 
Introduction To Eclipse RCP
Introduction To Eclipse RCPIntroduction To Eclipse RCP
Introduction To Eclipse RCP
 
Assign 10 - Creating Projects using Eclipse IDE
Assign 10 -  Creating Projects using Eclipse IDE Assign 10 -  Creating Projects using Eclipse IDE
Assign 10 - Creating Projects using Eclipse IDE
 
Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)Plug yourself in and your app will never be the same (2 hr editon)
Plug yourself in and your app will never be the same (2 hr editon)
 
Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)Plug yourself in and your app will never be the same (2 hour edition)
Plug yourself in and your app will never be the same (2 hour edition)
 
Eclipse_Building_Blocks
Eclipse_Building_BlocksEclipse_Building_Blocks
Eclipse_Building_Blocks
 
The Build System of Commercial RCP Application A Case Study
The Build System of Commercial RCP Application A Case StudyThe Build System of Commercial RCP Application A Case Study
The Build System of Commercial RCP Application A Case Study
 
Namespaces in C#
Namespaces in C#Namespaces in C#
Namespaces in C#
 
Android application structure
Android application structureAndroid application structure
Android application structure
 
R12 d49656 gc10-apps dba 05
R12 d49656 gc10-apps dba 05R12 d49656 gc10-apps dba 05
R12 d49656 gc10-apps dba 05
 
Java ant tutorial
Java ant tutorialJava ant tutorial
Java ant tutorial
 
Ant tutorial
Ant tutorialAnt tutorial
Ant tutorial
 
Steps to write Selenium
Steps to write Selenium  Steps to write Selenium
Steps to write Selenium
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)
 
Plug-in Architectures
Plug-in ArchitecturesPlug-in Architectures
Plug-in Architectures
 
Eclipse 2011 Hot Topics
Eclipse 2011 Hot TopicsEclipse 2011 Hot Topics
Eclipse 2011 Hot Topics
 
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application PlatformEclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
 
Ide
IdeIde
Ide
 

Plus de Liran Zelkha (9)

Scaling data on public clouds
Scaling data on public cloudsScaling data on public clouds
Scaling data on public clouds
 
OC4J to WebLogic Server Migration5
OC4J to WebLogic Server Migration5OC4J to WebLogic Server Migration5
OC4J to WebLogic Server Migration5
 
Data SLA in the public cloud
Data SLA in the public cloudData SLA in the public cloud
Data SLA in the public cloud
 
שטפונות בנגב
שטפונות בנגבשטפונות בנגב
שטפונות בנגב
 
מתפ
מתפמתפ
מתפ
 
Oracle Coherence
Oracle CoherenceOracle Coherence
Oracle Coherence
 
Social Networks Optimization
Social Networks OptimizationSocial Networks Optimization
Social Networks Optimization
 
Technology Overview
Technology OverviewTechnology Overview
Technology Overview
 
Aluna Introduction
Aluna IntroductionAluna Introduction
Aluna Introduction
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

Building Eclipse Plugins

  • 1. Developing Eclipse Plugins לירן זילכה מנכ"ל משותף Liran.zelkha@alunasoft.com
  • 2. Aluna Israel’s leading Java/JavaEE and SOA consulting company Customers:
  • 3. Eclipse plug-in architecture Some of this material was taken from a plug-in course developed by the ECESIS project.
  • 4. Eclipse plug-in architecture Flexible, structured around extension points and plug-ins This architecture allows for: Other tools to be used within the platform Other tools to be further extended Integration between tools and the platform No need to wait for new product releases
  • 5. Eclipse plug-in architecture Tool (plug-in) Tool (plug-in) Tool (plug-in) Plug-in Developer Environment (PDE) Java Development Tooling (JDT) Eclipse Platform Workbench Help JFace SWT … Workspace Team Platform Runtime Eclipse SDK
  • 6. Platform runtime In the Eclipse, everything is plug-in except the Platform Runtime (the kernel) All other subsystems build up on the Platform Runtime following the rules of plug-ins The Basic platform includes: Resources Management Workbench Team Debug Help
  • 7. Extension points Describe additional functionality that could be integrated with the platform External tools extend the platform to bring specific functionality Java Development Tooling (JDT) and Plug-in Development Environment (PDE) are external tools integrated with the platform
  • 8. Extension points There are two levels of extending Eclipse: Extending core platform Extending existing extensions Extension points may have a corresponding API interface Describes what should be provided in the extension
  • 9. Plug-ins Define extension points Each plug-in defines its own set of extension points Implement specialized functionality Usually key functionality that does not already exist in the platform Provide their own set of APIs Used for further extension of their functionalities Are external, but fully integrated
  • 10. Plug-ins Implement behavior defined through extension point API interface Can extend named extension points from Eclipse or extension points of other plug-ins Can declare an extension point and provide an extension to it Are developed in Java programming language
  • 11. What's in a plug-in? A JAR file An archive with the plug-in code plugin.xml Manifest that describes plug-in about.html Textual description of the plug-in plugin.properties Plugin-in properties
  • 12. Describing plug-ins An extension to the platform has to be registered somewhere Each plug-in has a manifest file that describes: Location of the plug-in code Extensions added by the plug-in
  • 13. Describing plug-ins The manifest file is plugin.xml. There are Eclipse tools that make it easy to edit the file without using XML directly. The manifest describes: Name, id, and version of the plug-in List of other plug-ins (and versions) required by the plug-in described Extension points Where the plug-in code is located
  • 14. Example manifest file <?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.0"?> <plugin name="Helloworld plug-in" id="com.examples.helloworld" version="1.0.0“ provider-name="EXAMPLE" class="com.example.helloworld.HelloworldPlugin"> > <requires> <import plugin="org.eclipse.ui"/> <import plugin="org.eclipse.core.runtime"/> <import plugin="org.eclipse.core.runtime.compatibility"/> </requires> <runtime> <library name="helloworld.jar"> <export name="*"/> </library> </runtime> <extension point="org.eclipse.ui.views"> <category name="Hello Category" id="com.example.helloworld"> </category> <view name="Hello View" icon="icons/sample.gif" category="com.example.helloworld" class="com.example.helloworld.HelloWorldView" id="com.example.helloworld.HelloWorldView"> </view> </extension> </plugin>
  • 15. Packaging plug-ins Plug-ins are packaged as Java Archives – JAR files Archives are named using naming convention: <id>_<version>.jar <id> is the identifier <version> is the full version number from the manifest file For example: org.eclipse.demo. plugin.simple_1.0.jar
  • 16. Publishing plug-ins Used for preparing plug-in for deployment on a specific platform Manual publishing makes use of Ant scripts Ant is a open source build tool, commonly used in building processes with Java code Ant scripts are Java based (platform independent) with XML configuration Ant is supported in Eclipse
  • 17. Publishing plug-ins Automatic publishing is available by using Eclipse wizards You don't have to use Ant scripts Wizards allow publishing in a single zip file. A single zip file can contain multiple plug-ins.
  • 18. Installing plug-ins Plug-ins are installed under the plugins directory under the Eclipse installation directory Usually c:clipselugins on Windows platforms
  • 19. Plug-in fragments Used for extending existing plug-ins Provide an additional functionality to existing plug-ins Ideal for providing add-on functionality to plug-ins Packaged in separate files Fragment content is treated as it was original plug-in archive At runtime the platform detects fragments and merges their content with the original plug-in
  • 20. Plug-in fragments Described in fragment.xml files Similar to plug-in manifest files Plug-in archive can contain plug-ins or fragments
  • 21. Eclipse API Meant to be used by plug-in developers API elements are documented and completely specified The API elements specify what they are supposed to do and how they are intended to be used.
  • 22. Eclipse API The Eclipse platform code is separated into: API packages Contain API elements Non-API packages Contain internal platform implementation
  • 23. Using the Eclipse API The API can be used by doing one of the following: Instantiating platform API classes Subclassing platform API classes Calling public API methods Most commonly used Calling protected API methods Possible from API subclasses
  • 24. Using the Eclipse API More ways to use the API: Overriding API methods Allowed for some methods Implementing platform API interfaces Accessing Fields in API classes and interfaces Mainly final, read-only fields