eclipse - hu-berlin.de · java development tools (jdt) ‣... is a set of plug-ins that turn...

41
Eclipse Software Engineering with an Integrated Development Environment (IDE) Markus Scheidgen Friday, 26. October 2012

Upload: others

Post on 24-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

EclipseSoftware Engineering with an Integrated Development Environment (IDE)

Markus Scheidgen

Friday, 26. October 2012

Page 2: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Agenda

‣ What is eclipse and why bother? - An introduction to eclipse.

‣ eclipse fundamentals

‣ (Java) development with eclipse★ reading code★ writing code★ build and run code★ debugging★ testing

‣ collaborative work with eclipse★ task management★ version control

‣ beyond Java programming

‣ extending eclipse★ plug-ins and equinox★ Java Development Toolkit APIs★ eclipse modeling framework

‣ further reading

2

Friday, 26. October 2012

Page 3: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

introduction

Friday, 26. October 2012

Page 4: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

What is eclipse?

‣ Eclipse started as a proprietary IBM product (IBM Visual age for Smalltalk/Java).

‣ Eclipse is open source - it is a general purpose open platform that facilitates and encourages the development of third party plug-ins.

‣ Eclipse is best known as an Integrated Development Environment (IDE).

‣ Eclipse was originally designed for Java, now supports many other languages.★ C, C++, Python, PHP, Ruby★ XML, HTML, CSS★ ant, maven, and many more

4

Friday, 26. October 2012

Page 5: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

What is eclipse not?

‣Eclipse is not a programming language.

‣Eclipse is not a software modeling tool; but it can be used as one.

5

Friday, 26. October 2012

Page 6: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Integrated Development Environments (IDEs)

In this lecture we manly see eclipse as an IDE.

‣ Programming requires the use of many tools:★ editors (vim, emacs)★ compilers (gcc, javac)★ code analyzers (lyn)★ debuggers (gdb, jdb)★ build-tools (make, ant, maven)★ version control (cvs, svn, git, ClearCase)

‣ IDEs integrate those tools into a single coherent environment.★ one rich graphical user interface★ one configuration scheme★ The different tools are connected with each other.

6

Friday, 26. October 2012

Page 7: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Why bother?

‣ IDEs are omnipresent.

‣Many software engineering tools only have rudimentary interfaces.

‣ IDEs can automate many processes in software engineering:★building, testing★generation of boiler-plate code

7

Friday, 26. October 2012

Page 8: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

fundamentals

Friday, 26. October 2012

Page 9: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Installation (I)

‣download: http://www.eclipse.org/downloads/★Eclipse 3.x releases are: Callisto, Europa, Ganymede,

Galileo, Helios, Indigo (3.7, recommended), Juno (4.2)★There is a 32- and 64-bit version for Windows, MacOS,

and Linux/Unix.★Eclipse is java-based but uses SWT, a GUI-toolkit with

platform specific versions.★There are different packages (different collections of

plug-ins) for different use-case. Download Eclipse IDE for Java Developers when in doubt.

9

Friday, 26. October 2012

Page 10: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Installation (II)

‣after download:★You have a .zip- or .tar.gz-file.★unzip ★The unzipped folder contains an executable eclipse(.exe)

‣start eclipse:★You will have to choose a workspace. The workspace is

the place were eclipse will store all your work and configurations. Workspaces can be switched later. Choose a new directory somewhere in your home folder.

★You leave the welcome screen with the right-hand-side arrow.

10

Friday, 26. October 2012

Page 11: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

The Workspace

‣ ... shows your current work.

‣ ... is fully configurable, (via Window menu).★ Views can be moved, removed, added.★ You can switch between perspectives (specific arrangement of

views).

‣ Views can be very general (e.g. Problems, Outline) or specific (e.g. Package Explorer (java), Task List (mylyn))

‣ The workspace has a menu bar (top) and status bar (bottom)

‣ The workspace and views have action bars

‣ The space in the “middle” contains open editors. Editors may change the menu bar.

11

Friday, 26. October 2012

Page 12: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Eclipse Vocabulary

‣ Workbench, Perspective, Editor, View

‣ Project★ organizational unit for your work★ corresponds to a folder on your hard-drive, by default in the workspace directory★ is a resource

‣ Resource★ generic term for folders, files, and sometimes file-like (virtual resources) entities

‣ Preferences★ eclipse wide configuration★ organized by plug-ins

‣ Properties★ project specific configuration★ allows to create project specific settings for large parts of the preferences

12

Friday, 26. October 2012

Page 13: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Java Development Tools (JDT)

Friday, 26. October 2012

Page 14: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Java Development Tools (JDT)

‣ ... is a set of plug-ins that turn eclipse into a Java-IDE

‣ JDT comprises of:★ Java editor with syntax highlighting, code-completion,

templates, refactorings, navigation, ...★Package explorer★ Java specific views for

★ documentation★ debugging★ type-hierarchies★ outline

★ Java search★ Java builder

14

Friday, 26. October 2012

Page 15: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Java Projects

‣ A Java project is a special project.

‣ A Java project contains:★ source folders with your sources★ other folders and files you add (e.g. jars, ant-scripts, etc.)★ the compiled .class-files (hidden)★ references to used libraries

‣ Projects can be configured through a property editor★ Most configurations are projects specific changes to the global

eclipse wide configuration.★ Most important for java projects is the Java Build Path:

★ source folders and class folder★ dependencies (other Java projects you need resources from, e.g. classes)★ libraries (internal and external jars and system libraries)

15

Friday, 26. October 2012

Page 16: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Anagrams, a Simple Programming Exercise

‣Dave Thomas (aka pragmatic Dave) defines Code Katas as fundamental training exercises for programming: http://codekata.pragprog.com

‣Anagrams are sets of words that are made up from the same letters.

‣Problem: Find all anagrams in a list of words.

‣We use a small word list from Kevin's Word List Page(http://wordlist.sourceforge.net) as example.

16

Friday, 26. October 2012

Page 17: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Write Java

‣Create Classes, Interfaces, and Package from the Project Explorer.

‣Use code-completion and templates with crtl-space.

‣Use refactorings from the refactor context-menu.

‣Use quick-fixes to deal with errors (crtl-1).

‣Generate code (e.g. getter and setter) from the source context-menu.

‣Organize imports from the source context-menu.

‣ Extract interface from the refactor context-menu.17

Friday, 26. October 2012

Page 18: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Read Java

‣Navigate with F3

‣Search for references and declarations

‣View type-hierarchies and call-hierachies with the context-menu

‣Use the outline-view

‣Use the Java search

‣Lookup Java-Doc with hovers

‣Mark Occurrences from the action bar18

Friday, 26. October 2012

Page 19: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Build and Run Java

‣Builds automatically for simple project configurations.

‣Run from the context-menu.

‣Look at run-configurations from the action bar and change the arguments.

‣Add an external .jar library to your project.

19

Friday, 26. October 2012

Page 20: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Debug Java

‣ Use debug instead of run.

‣ Add breakpoints.

‣ Switch to the debug-perspective as offered.

‣ Step-in, step-over, step-return, and resume (F5-F8)

‣ Look at variables in the variable view.

‣ Inspect expressions from the context-menu.

‣ Use the expressions view (show view first from the Window menu).

‣ Add exception break points.

‣ Switch frames in the debug view.

‣ Use “hot-deploy” (i.e. change the code and save it while running).

20

Friday, 26. October 2012

Page 21: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Testing with JUnit

‣Create a test-case from the Package Explorer.

‣Run the test-case from the context menu.

‣Navigate through failing test from the JUnit view.

‣Debug a test-case from the context menu.

‣ Inspect run-/debug-configurations for JUnit.

‣Run all test-cases in a project from the Package Explorer.

21

Friday, 26. October 2012

Page 22: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

collaborative work with eclipse

Friday, 26. October 2012

Page 23: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Task management (with Mylyn)

‣Problems to solve:★ Information overload★Slow context switches

‣ Import and manage tasks (e.g. bugs and feature requests) in eclipse

‣Workspace state (e.g. open editors) is bound to the active task

‣You can switch between task and automatically switch between workspace states

23

Friday, 26. October 2012

Page 24: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Version Control (with SVN)

‣ Install subversive, using the eclipse Marketplace★ use the latest “pure Java” svn connector

‣ Open the repositories view and create a new repository.

‣ Share a project via the Package Explorer. Notices the differences in the Package Explorer’s resource presentation.

‣ Change a file and compare it with the latest version from the repository via the Package Explorer.

‣ Use the comparison editor to revert changes.

‣ Commit your changes via the Package Explorer.

‣ Explore the history view.24

Friday, 26. October 2012

Page 25: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

beyond Java programming

Friday, 26. October 2012

Page 26: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Popular Official Eclipse Projects

http://www.eclipse.org/projects/listofprojects.php

‣ Eclipse Platform, JDT, PDE

‣ Eclipse Modeling Project★ Eclipse Modeling Framework (EMF)

★ EMF★ EMF compare★ relational database mappings

★ Graphical Modeling Framework★ Xtext★ Model-2-Model and Model-2-Text★ UML/OCL tools

‣ Mylyn task management

‣ Service Oriented Architecture (SOA)

‣ Languages: C/C++, Python, Scala

‣ Eclipse Web Tools Platform★ J2EE★ Javascript★ XML★ Web Services

26

Friday, 26. October 2012

Page 27: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Popular Non-Eclipse Products

‣diverse UML and other modeling plug-ins (just search the Marketplace)

‣Google Plug-in (http://code.google.com/eclipse/):★Google Web Toolkit★Google App Engine★Android programming

‣Spring’s Source Tool Suite (http://www.springsource.com/developer/sts)★ J2EE★Grails

27

Friday, 26. October 2012

Page 28: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Install new plug-ins.

‣ the eclipse Marketplace

‣ the traditional way★Update sites (identified by URLs) provide plug-ins via

HTTP.★Eclipse update site provides all plug-ins of the various

official eclipse projects.★Update-sites of third party vendors can be added and their

plug-ins installed.

‣ install plug-ins manually★Eclipse manages plugins (typically as .jars and .zips) in its

internal folder structure.28

Friday, 26. October 2012

Page 29: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

extending eclipse

Friday, 26. October 2012

Page 30: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Eclipse is ...

‣ ... not a monolithic piece of software

‣ ... an extendable platform

‣ ... a collection of plug-ins★ all functionally we saw is deployed in a plug-in

‣ ... a hierarchy of plugins★ plug-ins use each other (plug-in dependencies)★ eclipse has “abstract” plug-in (e.g. the team plug-ins) therefore

all specific plug-ins (e.g. JDT/CDT, CVS/subclipse) have the same look and feel

‣ ... is a Rich Client Platform (RCP) for developing non-eclipse rich clients

30

Friday, 26. October 2012

Page 31: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

31

Friday, 26. October 2012

Page 32: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Bundles and Plug-ins

two mechanisms:

‣Equinox(OSGi)-based bundles

‣eclipse plug-ins

32

Friday, 26. October 2012

Page 33: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Equinox Bundles

‣What happens when different vendors program code running in the same JVM?★ different classes with same package and name collide★ same classes in different versions with same package name collide★ when one vendor wants to use classes of another it is not clear

which class one intends to use

‣What is the solution?★ classes are organized in bundles★ each bundle gets its own class loader that only sees the classes in

that bundle★ bundles can use other bundles and user their classes: class loaders

of dependent bundles are used when the own class loader does not find a used class

33

Friday, 26. October 2012

Page 34: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Eclipse plug-ins

‣Plug-ins define extension points and use extension points creating extensions.

‣Popular extension points are:★commands★editor★popup-menu additions★property pages★views★project builders★additions to the help system

34

Friday, 26. October 2012

Page 35: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Writing your own plug-ins

‣Steep learning curve due to numerous techniques and existing plug-ins:★plug-in and bundle mechanisms★SWT★ JFace★views, editors, property views

‣How to succeed?★Use how-tos and tutorials.★Apply “monkey sees, monkey does”.★Use similar, existing plug-ins as starting points.

35

Friday, 26. October 2012

Page 36: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Writing RCPs

‣RCPs are build from features, features are build from plug-ins

‣Typically a mix of existing eclipse plug-ins and your own plug-ins.

‣Of course you finally define splash screen and about box.

‣Eclipse can build binaries for all platforms (cross platform development).

36

Friday, 26. October 2012

Page 37: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Popular Frameworks for Writing Plug-ins

‣Eclipse Modeling Framework (EMF)

‣Graphical Editing Framework (GEF)

‣Graphiti

‣based on EMF★GMF★Xtext

37

Friday, 26. October 2012

Page 38: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Write a Plug-in

‣ install the Platform Development Environment (PDE)

‣create a plug-in and use an extension wizzard

‣ inspect the generated code

‣ run the plug-in

‣modify and re-run the plug-in

‣ learn more about plug-in writing and deployment:★http://www.vogella.de/articles/EclipsePlugIn/article.html

38

Friday, 26. October 2012

Page 39: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

further reading

Friday, 26. October 2012

Page 40: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Books

‣ “Eclipse”, Steve Holzner, O’Reilly

‣ “Programmieren mit Eclipse 3: Universelle Entwicklungsplattform für Java, PHP, C/C++, SQL, XML, XSLT, XSL-FO, JSP, Servlets, JEE, UML, HTML, CSS, JavaScript”, Michael Seeboerger-Weichselbaumm, mitp

‣ “Eclipse Plug-ins”, Eric Clayberg and Dan Rubel, Addison-Wesley

‣ “EMF - Eclipse Modeling Framework”, Dave Steinberg et al., Addison-Wesley

40

Friday, 26. October 2012

Page 41: Eclipse - hu-berlin.de · Java Development Tools (JDT) ‣... is a set of plug-ins that turn eclipse into a Java-IDE ‣JDT comprises of: ... ‣ Step-in, step-over, step-return,

Internet Resources

‣http://help.eclipse.org/indigo/index.jsp

‣http://www.eclipse.org/articles/

‣http://wiki.eclipse.org

‣http://eclipse.org/projects/

‣http://www.planeteclipse.org/planet/

41

Friday, 26. October 2012