20040215 1 On the Eclipse Project Mateusz Srebrny 16 February 2004 Warszawa Slides adapted from

Slides:



Advertisements
Similar presentations
Extending Eclipse Kai-Uwe Mätzel IBM OTI Labs Zurich
Advertisements

©2004 BLACKBOARD, INC. ALL RIGHTS RESERVED. Java Integrated Development Environments Heather Natour Senior Lead Engineer Blackboard Inc. July 18 th 10:15am.
Introduction to Eclipse plugin development for CSU 670 course project, Selector language (Xaspect) editor plugin implementation.
DEV-2: Getting Started with OpenEdge® Architect – Part I
Developing an Eclipse Plug-in David Gallardo. Platform Runtime Workspace Help Team Workbench JFace SWT Eclipse Project Java Development Tools (JDT) Their.
Goals Give you a feeling of what Eclipse is.
Eclipse Architecture Dwight Deugo Nesa Matic
Java Integrated Development Environments: ECLIPSE Part1 Installation.
Integrated Development Environments. Today We Will: Go over more advanced functionality of Eclipse. Break up into teams to work on presentation and final.
20-Jun-15 Eclipse. Most slides from: 2 About IDEs An IDE is an Integrated Development Environment.
Eclipse Introduction Dwight Deugo Nesa Matic
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Integrated Development Environments. Today We Will: Discuss what IDE’s are used for Go over the Eclipse IDE: –What is Eclipse? –How to install and set.
Eclipse Begin at the Beginning. Where to Find it:
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
Enhancing Developer Productivity using Eclipse Presented by: Tom Sausner.
[________________________] Eclipse project briefing materials. Copyright (c) 2002, 2003 IBM Corporation and others. All rights reserved. This.
Eclipse IDE. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as teaching.
03 Using Eclipse. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as.
Standards for Technology in Automotive Retail STAR Workbench 1.0 Michelle Vidanes & Dave Carver STAR XML Data Architects, Certified Scrum Masters.
© 2006 by IBM 1 How to use Eclipse to Build Rich Internet Applications With PHP and AJAX Phil Berkland IBM Software Group Emerging.
Getting started with Eclipse By Alexander Butyaev.
[________________________] Eclipse project briefing materials. Copyright (c) 2002 International Business Machines Corp. All rights reserved.
ECLIPSE and UML Onur Demir
Duke University Program Design & Construction Course Application Development Tools Sherry Shavor
TOOLS FOR DESIGN AND DEVELOPMENT ENVIRONMENTS. Case study - ECLIPSE Lecture notes 3.
1 v1.6 08/02/2006 Overview of Eclipse Lectures 1.Overview 2.Installing and Running 3.Building and Running Java Classes 4.Refactoring 5.Debugging 6.Testing.
Everything I Always Wanted to Know about Eclipse Harry Koehnemann Rocket Gang Many slides in this presentation can be found at
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Workbench Overview Dwight Deugo Nesa Matic
The Eclipse IDE Gareth Davies. Relevant Bio Professional Developer since 1994 Mostly Microsoft platform, using successive versions of Visual Studio Serious.
Plug-in Development Environment. Session Outline Tools Installation Configuration New Project Basic Debugging Remote Debugging.
Extending the Eclipse Framework and Rich Client Platform Jeff Myers Languages for Lunch 10/13/2004.
Ontology Engineering and Plugin Development with the NeOn Toolkit Plug-in Development for the NeOn Toolkit June 1st, 2008 Michael Erdmann, Peter Haase,
TOOLS FOR DESIGN AND DEVELOPMENT ENVIRONMENTS. Case study - ECLIPSE Lecture notes 4.
Introduction to Eclipse CSC 216 Lecture 3 Ed Gehringer Using (with permission) slides developed by— Dwight Deugo Nesa Matic
TOOLS FOR DESIGN AND DEVELOPMENT ENVIRONMENTS. Case study - ECLIPSE Lecture notes 2.
[________________________] Eclipse project briefing materials. Copyright (c) 2002, 2003 IBM Corporation and others. All rights reserved. This.
Eclipse Eclipse An IDE is an Integrated Development Environment Different IDEs meet different needs – BlueJ, DrJava are designed as teaching.
9/2/ CS171 -Math & Computer Science Department at Emory University.
CMSC 466 / 666 Yong Rao Feb. 11, 2004 Revised Mar. 15, 2004.
A (very brief) intro to Eclipse Boyana Norris June 4, 2009.
Eclipse. An IDE is an Integrated Development Environment Different IDEs meet different needs BlueJ, DrJava are designed as teaching tools Emphasis is.
Eclipse 3.1 IDE Overview.
Eclipse 24-Apr-17.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
Eclipse. An IDE is an Integrated Development Environment Different IDEs meet different needs BlueJ, DrJava are designed as teaching tools Emphasis is.
Introduction to Common Java Development Tools (1) 1.
© 2002 IBM Corporation Transaction Processing Facility TPF Users Group Acapulco May 2004 © 2004 IBM Corporation Pete Nicholls IBM Toronto Lab TPF Toolkit.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Object-Oriented Application Development Using VB.NET 1 Chapter 2 The Visual Studio.NET Development Environment.
Developing GUIs With the Eclipse Visual Editor, SWT Edition David Gallardo.
Eclipse 27-Apr-17.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
Java IDE Dwight Deugo Nesa Matic
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
C Copyright © 2009, Oracle. All rights reserved. Using SQL Developer.
Eclipse.
Chapter 2: The Visual Studio .NET Development Environment
Goals Give you a feeling of what Eclipse is.
ATS Application Programming: Java Programming
COSC-4840 Software Engineering
Eclipse 20-Sep-18.
HP C/C++ Remote developer plug-in for Eclipse
Introduction to Eclipse
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
An Introduction to Eclipse
Presentation transcript:

On the Eclipse Project Mateusz Srebrny 16 February 2004 Warszawa Slides adapted from Copyright (c) 2002, 2003 IBM Corporation and others.

Presentation Plan ■ What is Eclipse ■ Brief history of Eclipse ■ Concept of Plug-ins ■ Platform Architecture ■ Workspace ■ Workbench (SWT, JFace) ■ JDT (Refactoring) ■ Other components

What is Eclipse? Java VM Standard Java2 Virtual Machine Platform Eclipse Platform Java development tools JDTPDE Plug-in development environment ■ Eclipse is a universal platform for integrating development tools ■ Open, extensible architecture based on plug-ins

Eclipse Origins ■ Eclipse created by OTI and IBM teams responsible for IDE products –IBM VisualAge/Smalltalk (Smalltalk IDE) –IBM VisualAge/Java (Java IDE) –IBM VisualAge/Micro Edition (Java IDE) ■ Initially staffed with 40 full-time developers ■ Effort transitioned into open source project –Initial Eclipse code base: Platform, JDT, PDEPlatform, JDT, PDE

Brief History of Eclipse 1999 April- Work begins on Eclipse inside OTI/IBM 2001 October- Eclipse June- Eclipse March- Eclipse 2.1 March- Eclipse February- Eclipse Foundation announced not-for-profit - EclipseCon - Eclipse th milestone

Who’s supporting Eclipse ■ Borland, IBM, MERANT, QNX Software Systems, Red Hat, SuSE, Webgain ■ Serena, Sybase, Fujitsu ■ Hitachi, Instantiations, MontaVista, Scapa Technologies, Telelogic ■ ETRI, HP, MKS, SlickEdit ■ Oracle ■ Catalyst Systems, Flashline, Parasoft, SAP, teamstudio, TimeSys ■ Object Management Group (OMG) ■ Fraunhofer Institute, Ericsson, LogicLibrary, M7 Corpororation, QA Systems, SilverMark, Inc ■ Advanced Systems Concepts, Genuitec, INNOOPRACT Informationssysteme GmbH. ■ CanyonBlue, Ensemble Systems, Intel, Micro Focus, Tensilica, Wasabi.

Eclipse Plug-in Architecture ■ Plug-in - smallest unit of Eclipse function –Big example: HTML editor –Small example: Action to create zip files ■ Extension point - named entity for collecting “contributions” –Example: extension point for workbench preference UI ■ Extension - a contribution –Example: specific HTML editor preferences

Eclipse Plug-in Architecture ■ Each plug-in –Contributes to 1 or more extension points –Optionally declares new extension points –Depends on a set of other plug-ins –Contains Java code libraries and other files –May export Java-based APIs for downstream plug-ins –Lives in its own plug-in subdirectory ■ Details spelled out in the plug-in manifest –Manifest declares contributions –Code implements contributions and provides API –plugin.xml file in root of plug-in subdirectory

Plug-in Manifest <plugin id = “com.example.tool" name = “Example Plug-in Tool" class = "com.example.tool.ToolPlugin"> <page id = "com.example.tool.preferences" icon = "icons/knob.gif" title = “Tool Knobs" class = "com.example.tool.ToolPreferenceWizard“/> Declare contribution this plug-in makes Declare new extension point open to contributions from other plug-ins Location of plug-in’s code Other plug-ins needed Plug-in identification plugin.xml

Eclipse Plug-in Architecture ■ Plug-in A –Declares extension point P –Declares interface I to go with P ■ Plug-in B –Implements interface I with its own class C –Contributes class C to extension point P ■ Plug-in A instantiates C and calls its I methods plug-in A plug-in B class C interface I extension point P extension ■ Typical arrangement contributes creates, calls implements

Eclipse Platform Architecture ■ Eclipse Platform Runtime is micro-kernel –All functionality supplied by plug-ins ■ Eclipse Platform Runtime handles start up –Discovers plug-ins installed on disk –Matches up extensions with extension points –Builds global plug-in registry –Caches registry on disk for next time

Plug-in Activation ■ Contributions processed without plug-in activation –Example: Menu constructed from manifest info for contributed items ■ Plug-ins are activated only as needed –Example: Plug-in activated only when user selects its menu item –Scalable for large base of installed plug-ins –Helps avoid long start up times

Plug-in Install ■ Features group plug-ins into installable chunks –Feature manifest file ■ Plug-ins and features bear version identifiers –major. minor. service –Multiple versions may co-exist on disk ■ Features downloadable from web site –Using Eclipse Platform update manager –Obtain and install new plug-ins –Obtain and install updates to existing plug-ins

Plug-in Architecture - Summary ■ All functionality provided by plug-ins –Includes all aspects of Eclipse Platform itself ■ Communication via extension points –Contributing does not require plug-in activation ■ Packaged into separately installable features –Downloadable Eclipse has open, extensible architecture based on plug-ins

Eclipse Platform ■ Eclipse Platform is the common base ■ Consists of several key components Platform Runtime Eclipse Platform Workspace Workbench SWT JFace TeamHelp Debug Ant Core UI

Workspace Component ■ Tools operate on files in user’s workspace ■ Projects map to directories in file system ■ {Files, Folders, Projects} termed resources ■ Workspace holds 1 or more top-level projects ■ Tools read, create, modify, and delete resources in workspace ■ Plug-ins access via workspace and resource APIs ■ Tree of folders and files

Workspace and Resource API ■ Allows fast navigation of workspace resource tree ■ Resource change listener for monitoring activity –Resource deltas describe batches of changes ■ Maintains limited history of changed/deleted files ■ Several kinds of extensible resource metadata –Persistent resource properties –Session resource properties –Markers –Project natures ■ Workspace session lifecycle –Workspace save, exit, restore ■ Incremental project builders

Workbench Component ■ SWT – generic low-level graphics and widget set ■ JFace – UI frameworks for common UI tasks ■ Workbench – UI personality of Eclipse Platform Workbench SWT JFace

SWT ■ SWT = Standard Widget Toolkit ■ Generic graphics and GUI widget set –buttons, lists, text, menus, trees, styled text... ■ Simple ■ Small ■ Fast ■ OS-independent API ■ Uses native widgets where available ■ Emulates widgets where unavailable

Why SWT? ■ Eclipse Platform on Windows XP

Why SWT? ■ Eclipse Platform on Windows XP (skinned)

Why SWT? ■ Eclipse Platform on Linux - GTK 2.0

Why SWT? ■ Eclipse Platform on Linux - Motif

Why SWT? ■ Eclipse Platform on Mac OS X - Carbon

JFace ■ JFace is set of UI frameworks for common UI tasks ■ Designed to be used in conjunction with SWT ■ Classes for handling common UI tasks ■ API and implementation are window-system independent

JFace APIs ■ Image and font registries ■ Dialog, preference, and wizard frameworks ■ Structured viewers –Model-aware adapters for SWT tree, table, list widgets ■ Text infrastructure –Document model for SWT styled text widget –Coloring, formatting, partitioning, completion ■ Actions –Location-independent user commands –Contribute action to menu, tool bar, or button

Workbench Component ■ Workbench is UI personality of Eclipse Platform ■ UI paradigm centered around –Editors –Views –Perspectives

Workbench Terminology Tool bar Perspective and Fast View bar Resource Navigator view Stacked views Properties view Tasks view Outline view Bookmarks view Menu bar Message area Editor Status area Text editor

Editors ■ Editors appear in workbench editor area ■ Contribute actions to workbench menu and tool bars ■ Open, edit, save, close lifecycle ■ Open editors are stacked ■ Extension point for contributing new types of editors ■ Example: JDT provides Java source file editor ■ Eclipse Platform includes simple text file editor ■ Windows only: embed any OLE document as editor ■ Extensive text editor API and framework

Views ■ Views provide information on some object ■ Views augment editors –Example: Outline view summarizes content ■ Views augment other views –Example: Properties view describes selection ■ Extension point for new types of views ■ Eclipse Platform includes many standard views –Resource Navigator, Outline, Properties, Tasks, Bookmarks, Search, … ■ View API and framework –Views can be implemented with JFace viewers

Perspectives ■ Perspectives are arrangements of views and editors ■ Different perspectives suited for different user tasks ■ Users can quickly switch between perspectives ■ Task orientation limits visible views, actions –Scales to large numbers of installed tools ■ Perspectives control –View visibility –View and editor layout –Action visibility ■ Extension point for new perspectives ■ Eclipse Platform includes standard perspectives –Resource, Debug, … ■ Perspective API

Workbench Responsibilities ■ Eclipse Platform manages windows and perspectives ■ Eclipse Platform creates menu and tool bars –Labels and icons listed in plug-in manifest –Contributing plug-ins not activated ■ Eclipse Platform creates views and editors –Instantiated only as needed ■ Scalable to large numbers of installed tools

Eclipse Platform - Summary ■ Eclipse Platform is the nucleus of IDE products ■ Plug-ins, extension points, extensions –Open, extensible architecture ■ Workspace, projects, files, folders –Common place to organize & store development artifacts ■ Workbench, editors, views, perspectives –Common user presentation and UI paradigm ■ Key building blocks and facilities –Help, team support, internationalization, … Eclipse is a universal platform for integrating development tools

Java Development Tools ■ JDT = Java development tools ■ State of the art Java development environment ■ Built atop Eclipse Platform –Implemented as Eclipse plug-ins –Using Eclipse Platform APIs and extension points ■ Included in Eclipse Project releases –Available as separately installable feature –Part of Eclipse SDK drops

JDT Goals ■ Goal: To be #1 Java IDE ■ Goal: To make Java programmers smile

Java Perspective ■ Java-centric view of files in Java projects –Java elements meaningful for Java programmers Java project package class field method Java editor

Java Perspective ■ Browse type hierarchies –“Up” hierarchy to supertypes –“Down” hierarchy to subtypes Type hierarchy Selected type’s members

Java Perspective ■ Search for Java elements –Declarations or references –Including libraries and other projects Hits flagged in margin of editor All search results

Java Editor ■ Hovering over identifier shows Javadoc spec

Java Editor ■ Method completion in Java editor List of plausible methodsDoc for method

Java Editor ■ On-the-fly spell check catches errors early Preview Click to see fixes Problem Quick fixes

Java Editor ■ Code templates help with drudgery Statement template Preview

Java Editor Method stub insertion for inherited methods Method stub insertion for anonymous inner types ■ Java editor creates stub methods

Java Editor Variable name suggestion Argument hints and proposed argument names JavaDoc code assist ■ Java editor helps programmers write good Java code

Java Editor ■ Other features of Java editor include –Local method history –Code formatter –Source code for binary libraries –Built-in refactoring

Refactoring ■ JDT has actions for refactoring Java code

Refactoring ■ Refactoring actions rewrite source code –Within a single Java source file –Across multiple interrelated Java source files ■ Refactoring actions preserve program semantics –Does not alter what program does –Just affects the way it does it ■ Encourages exploratory programming ■ Encourages higher code quality –Makes it easier to rewrite poor code

Refactoring ■ Full preview of all ensuing code changes –Programmer can veto individual changes List of changes “before” vs. “after”

Refactoring ■ Growing catalog of refactoring actions –Organize imports –Rename {field, method, class, package} –Move {field, method, class} –Extract {method, local variable, interface} –Inline {method, local variable} –Reorder method parameters –Push members down …

Eclipse Java Compiler ■ Eclipse Java compiler –JCK-compliant Java compiler (selectable 1.3 and 1.4) –Helpful error messages –Generates runnable code even in presence of errors –Fully-automatic incremental recompilation –High performance –Scales to large projects ■ Multiple other uses besides the obvious –Syntax and spell checking –Analyze structure inside Java source file –Name resolution –Content assist –Refactoring –Searches

Eclipse Java Debugger ■ Run or debug Java programs Threads and stack frames Editor with breakpoint marks Console I/O Local variables

Eclipse Java Debugger ■ Run Java programs –In separate target JVM (user selectable) –Console provides stdout, stdin, stderr –Scrapbook pages for executing Java code snippets ■ Debug Java programs –Full source code debugging –Any JPDA-compliant JVM ■ Debugger features include –Method and exception breakpoints –Conditional breakpoints –Watchpoints –Step over, into, return; run to line –Inspect and modify fields and local variables –Evaluate snippets in context of method –Hot swap (if target JVM supports)

JDT APIs ■ JDT APIs export functionality to other plug-ins ■ Java model –Java-centric analog of workspace –Tree of Java elements (down to individual methods) –Java element deltas –Type hierarchies –Model accurate independent of builds ■ Building blocks –Java scanner –Java class file reader –Java abstract syntax trees (down to expressions) ■ Many others…

Eclipse JDT - Summary ■ Java views, editor, refactoring –Helps programmer write and maintain Java code ■ Java compiler –Takes care of translating Java sources to binaries ■ Java debugger –Allows programmer to get inside the running program Eclipse Java programmmers

Other Components ■ CDT – C/C++ IDE ■ EMF – Eclipse Modeling Framework ■ UML2 – modeling tool ■ GEF – Graphical Editing Framework ■ VE – Visual Editor ■ Hyades ■ Cobol ■ many community plug-ins:

Sources ■ -slides.ppt ■ Dziekuję za uwagę!