Developing Eclipse Plug-ins* Learning Objectives. Any Eclipse product is composed of plug-ins



Similar documents
Understanding class paths in Java EE projects with Rational Application Developer Version 8.0

Introduction to Eclipse, Creating Eclipse plug-ins and the Overture editor. David Holst Møller Engineering College of Aarhus

Eclipse Rich Client Platform. Kai Tödter Karsten Becker et al. Organized by:

Duke University Program Design & Construction Course

EMC Documentum Composer

InfoSphere Master Data Management operational server v11.x OSGi best practices and troubleshooting guide

Rational Application Developer Performance Tips Introduction

Eclipse 4 RCP application Development COURSE OUTLINE

Sabre Red Apps. Developer Toolkit Overview. October 2014

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules

Eclipse Platform Technical Overview

SAP's Integrated Development Environment for Java. Karl Kessler, SAP AG

Extend WTP Server Tools for your application server. Tim deboer Gorkem Ercan

Best Practices for Programming Eclipse and OSGi

OMNeT++ IDE Developers Guide. Version 5.0

Informatics for Integrating Biology & the Bedside. i2b2 Workbench Developer s Guide. Document Version: 1.0 i2b2 Software Release: 1.3.

Workshop for WebLogic introduces new tools in support of Java EE 5.0 standards. The support for Java EE5 includes the following technologies:

Master Thesis. Arnold Kemoli. Design and Implementation of a Dynamic Component based Web Application Framework

Metastorm BPM Interwoven Integration. Process Mapping solutions. Metastorm BPM Interwoven Integration. Introduction. The solution

NetBeans IDE Field Guide

Build Management. Context. Learning Objectives

Developing In Eclipse, with ADT

Oracle Data Integrator 11g New Features & OBIEE Integration. Presented by: Arun K. Chaturvedi Business Intelligence Consultant/Architect

JBoss Server Manager Reference Guide. Version: M5

Tutorial: BlackBerry Object API Application Development. Sybase Unwired Platform 2.2 SP04

Building a Modular Server Platform with OSGi. Dileepa Jayakody Software Engineer SSWSO2 Inc.

Introduction to OSGi and Modularity. InfoSphere MDM, Version 11.x Dany Drouin, Senior Software Engineer MDM

Creating Web Services Applications with IntelliJ IDEA

BIRT Application and BIRT Report Deployment Functional Specification

BEAJRockit Mission Control. Using JRockit Mission Control in the Eclipse IDE

Kohsuke Kawaguchi Sun Microsystems, Inc. hk2.dev.java.net, glassfish.dev.java.net. Session ID

Android Development. 吳 俊 興 國 立 高 雄 大 學 資 訊 工 程 學 系

Leveraging the Eclipse TPTP* Agent Infrastructure

L01: Using the WebSphere Application Server Liberty Profile for lightweight, rapid development. Lab Exercise

Creating an application with the Virgo Web Server

JBoss SOAP Web Services User Guide. Version: M5

Module 11 Setting up Customization Environment

GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.

Escaping the Works-On-My-Machine badge Continuous Integration with PDE Build and Git

Android Environment SDK

Web Development with the Eclipse Platform

Running a Program on an AVD

Android Application Development: Hands- On. Dr. Jogesh K. Muppala

WebSphere Training Outline

Android Environment SDK

Software Development Kit

Braindumps.C questions

Embarcadero DB Change Manager 6.0 and DB Change Manager XE2

Crystal Reports for Eclipse

Tutorial: Android Object API Application Development. SAP Mobile Platform 2.3 SP02

Programming with Android: SDK install and initial setup. Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna

ORACLE APPLICATION EXPRESS 5.0

Tutorial 5: Developing Java applications

Deploying Physical Solutions to InfoSphere Master Data Management Server Advanced Edition v11

Web Dashboard User Guide

GLOBAL CONSULTING SERVICES TOOLS FOR WEBMETHODS Software AG. All rights reserved. For internal use only

BPM Scheduling with Job Scheduler

Continuous Integration The Full Monty Artifactory and Gradle. Yoav Landman & Frederic Simon

Tutorial: BlackBerry Application Development. Sybase Unwired Platform 2.0

IBM WebSphere Adapter for PeopleSoft Enterprise Quick Start Tutorials

Apache Directory Studio. User's Guide

NetBeans IDE Field Guide

Data Crow Creating Reports

ADT Plugin for Eclipse

White Paper. An Introduction to Fabasoft app.ducx Spring Release

1 What is Cloud Computing? Cloud Infrastructures OpenStack Amazon EC CAMF Cloud Application Management

Introduction to Android Development. Jeff Avery CS349, Mar 2013

Smooks Dev Tools Reference Guide. Version: GA

Embarcadero Rapid SQL Developer 2.0 User Guide

Installing OneStop Reporting Products

Desktop, Web and Mobile: Learn one get two for free

Eclipse Web Tools Platform. Naci Dai (Eteration), WTP JST Lead

Dell Repository Manager Tutorial

Practical Eclipse Rich Client Platform Projects

METADATA-DRIVEN QLIKVIEW APPLICATIONS AND POWERFUL DATA INTEGRATION WITH QLIKVIEW EXPRESSOR

Tutorial: Android Object API Application Development. SAP Mobile Platform 2.3

Oracle Application Development Framework Overview

IBM Tivoli Workload Scheduler Integration Workbench V8.6.: How to customize your automation environment by creating a custom Job Type plug-in

Oracle Universal Content Management

Talend Component: tjasperreportexec

Developing Web Services with Eclipse and Open Source. Claire Rogers Developer Resources and Partner Enablement, HP February, 2004

SAP NetWeaver Portal Development Kits for.net and Java

Programming with Android: SDK install and initial setup. Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna

TIPS & TRICKS JOHN STEVENSON

Tutorial: Android Object API Application Development. Sybase Unwired Platform 2.2 SP02

Oracle SOA Suite 11g Oracle SOA Suite 11g HL7 Inbound Example

creating a text-based editor for eclipse

Migration Eclipse 3 to Eclipse 4

Introduction: The Xcode templates are not available in Cordova or above, so we'll use the previous version, for this recipe.

Login with Amazon Getting Started Guide for Android. Version 2.0

Getting Started using the SQuirreL SQL Client

Installing the Android SDK

As you learned about in Chapter 1, WebSphere Application Server V6 supports the

The Benefits of Modular Programming

How To Use Designer For Identity Manager For A Project Management System

WebSphere v5 Administration, Network Deployment Edition

TIBCO ActiveMatrix BPM WebApp Component Development

Transcription:

Developing Eclipse Plug-ins* Wolfgang Emmerich Professor of Distributed Computing University College London http://sse.cs.ucl.ac.uk * Based on M. Pawlowski et al: Fundamentals of Eclipse Plug-in and RCP Development. EclipseCon 2007. Learning Objectives Understand how to write new software development tools and integrate them into the Eclipse platform Understand the Eclipse extension mechanisms Know how to specify an OSGi manifest Be able to develop, test and deploy a plug-in. 2 Any Eclipse product is composed of plug-ins A plug-in is the fundamental building block of an Eclipse product Plug-ins build on top of and use other plug-ins To extend Eclipse, you must write plug-ins To write a rich client application, you must write plug-ins 3 1

A Fundamental Building Block A plug-in is a Java Archive (JAR) A plug-in is self-contained houses the code and resources that it needs to run A plug-in is self-describing who it is and what it contributes to the world what it requires from the world 4 A Tale of Two Manifest Files 5 A Mechanism for Extensibility Extensibility in Eclipse is achieved via loose coupling Plug-in A exposes an extension point (the electric outlet) Plug-in B extends plug-in A by providing an extension (the plug) that fits into plug-in A s outlet Plug-in A knows nothing about plug-in B 6 2

If the Extension Fits So many extension points Each extension point is unique Each extension point declares a contract The extension point provider accepts only extensions that abide to the terms of its contract 7 A Declarative Approach Extension points and extensions are declared in the plugin.xml file The runtime is able to wire extensions to extension points and form an extension registry using XML markup alone 8 Extensibility in Pictures 9 3

Example of Extensibility Plug-ins may contribute preference pages All preference pages are assembled and categorized in the Preferences dialog How is the Preferences dialog created? How and when is a particular preference page created? 10 The Electric Outlet and the Plug 11 Tip of the Iceberg Plug-ins are connected without loading any of their code Code is loaded only when it is needed The lightweight declarative and lazy approach scales well An installed plug-in is not necessarily an active plug-in 12 4

A Society of Plug-ins An Eclipse product is the sum of its constituent plug-ins Plug-ins are discovered upon Eclipse startup Plug-ins do not know how to play and interact with each other on their own 13 An Ordered Society of Plug-ins The Eclipse runtime manages all installed plug-ins and brings order and collaboration to their society A classpath for each plug-in is dynamically constructed based on the dependencies declared in its MANIFEST.MF file Every plug-in gets its own class loader 14 Seamless Integration of Components 15 5

From Genesis to Deployment 16 Plug-in Creation The New Plug-in Project creation wizard generates a project complete with manifest files and, optionally, source code The wizard also provides templates for popular extension points such as action sets, views, preference pages Templates save a lot of time and allow you to create and run a plugin in a few minutes 17 Life in the Workspace The internal structure of a plug-in project in the workspace mirrors that of a deployed plug-in Two notable differences: The code is in source folders The plug-in project contains extra development metadata that are not part of the deployed plug-in 18 6

Editing the Plug-in The plug-in manifest editor is the central place to manage your plug-in It provides hot links to test and debug plug-ins launch relevant wizards quick navigation between source code and the manifest files 19 Testing the Plug-in 20 Configure the Build Content The plug-in project contains development-time metadata that should not be part of the deployed plug-in. On the Build page of the plug-in manifest editor, you check the list of files and folders that should be packaged 21 7

Exporting the Plug-in The Plug-in Export wizard packages a plug-in into a deployable format Plug-ins can be exported en masse Plug-ins can be exported as an archive or as a directory structure 22 Externalize the Strings PDE provides an Externalize Strings wizard that extracts translatable strings and stores them in a properties file for multilanguage support. This allows the plug-in manifest files to remain intact, while the properties files get translated 23 Clean up the Manifests As the plug-in evolves, it may accumulate stale data The Organize Manifests wizard that inspects your code and manifests and removes or updates stale data 24 8

Key Points Eclipse products are composed of plug-ins Plug-ins use and provide extension mechanisms Plug-ins make contributions to all parts of the UI Plug-ins are insulated from each other through OSGi 25 References M. Pawlowski et al: Fundamentals of Eclipse Plug-in and RCP Development. EclipseCon 2007. http://eclipsezilla.eclipsecon.org/php/attachment.php?bugid=3645 26 9