Duke University Program Design & Construction Course Application Development Tools Sherry Shavor sshavor@us.ibm.com
Software Engineering Roles Software engineers wear many hats Tool developer Tool user Customizing / Extending a tool Tool evaluator
Software Tools Design Rational Design tools Code Integrated Development Environments Eclipse Visual Studio WebSphere Studio Editors Specialized tools User Interface Database Embedded Transaction Security Change Management / Source code control CVS Rational ClearCase PVCS
Software Tools Test JUnit JProbe Documentation Help online help, contextual help Hardcopy Web sites Build Ant, home grown tools
Eclipse Eclipse Open Source Java development environment Integration platform, frameworks Plug-in development IBM WebSphere application development tools are built on Eclipse WebSphere Application Developer
Eclipse Terminology Plug-in - smallest unit of Eclipse function Big example: HTML editor Small example: Action to create zip files Demo (night light component) Extension - a contribution Example: specific HTML editor preferences Demo (night light) Extension point - named entity for collecting contributions Example: extension point for workbench preference UI Demo (socket) Eclipse platform Demo (power strip)
Eclipse demo Can you see the common function? Functions provided by plug-ins Views (panes) Editors Preference pages Dialogs Help Etc.
Eclipse Overview Eclipse Platform Another Tool Workbench Help Java Development Tools (JDT) SWT JFace Team Your Tool Plug-in Development Environment (PDE) Workspace Debug Platform Runtime Their Tool Eclipse Project
Registration and Implementation XML <plugin id="com.ibm version="1.0.0" provider-name="ibm" </plugin> Java Code
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.xml <plugin id = com.example.tool" name = Example Plug-in Tool" class = "com.example.tool.toolplugin"> <requires> <import plugin = "org.eclipse.core.resources"/> <import plugin = "org.eclipse.ui"/> </requires> <runtime> <library name = tool.jar"/> </runtime> <extension point = "org.eclipse.ui.preferencepages"> <page id = "com.example.tool.preferences" icon = "icons/knob.gif" title = Tool Knobs" class = "com.example.tool.toolpreferencewizard /> </extension> <extension-point name = Frob Providers id = "com.example.tool.frobprovider"/> </plugin> Plug-in identification Other plug-ins needed Location of plug-in s code Declare contribution this plug-in makes Declare new extension point open to contributions from other plug-ins
Using an Existing Extension Point Find the appropriate extension point (XML) Find out the requirements of that extension point (XML) Write code in Java
Goal: Plug-in Development Environment To make it easier to develop Eclipse plug-ins Support self-hosted Eclipse development Plug-in development environment (PDE) Specialized tools for developing Eclipse plug-ins Built on Eclipse Platform and JDT Implemented as Eclipse plug-ins Included in Eclipse Project releases Separately installable feature Part of Eclipse SDK drops Demo of PDE
PDE Specialized PDE editor for plug-in manifest files
Plug-in Code Generator Generates a plug-in with zero or more extensions. For Example: Menus Editors Views
Fill-in the Blank Generation
PDE PDE runs and debugs another Eclipse workbench 1. Workbench running PDE (host) 2. Run-time workbench (target)
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
How to learn a tool Purpose of the tool Terminology Function Extensibility License/Support Sources of information online books magazines newsgroups
Assignment Select an application development tool you are using. Examples: Eclipse, Visual Studio, Emacs. Each student should assume the role of a computer engineer making a recommendation to management that they would or would not like to use the application development tool selected. Create a presentation (approx 5 min in length) to present your recommendation to management (professor). The presentation should include the pros/cons of the tool including the function, licensing (open source), support aspects, cost etc. Due on the 13th, each student should be prepared to give their presentation.
Where to go for more Eclipse website http://www.eclipse.org The Java Developer s Guide to Eclipse by Shavor, D Anjou, Fairbrother, Kehn, Kellerman, McCarthy Addison Wesley, ISBN 0-321-15964-0 information