IBM EclipseSupervised by: Mike HolcombeMr. Annamalai ChockalingamMs. Bhavnidhi KalraMs. Kuntal DaveMr. Sarith ChandrasekaranMr. Stanislaw Osinski Mr. Yang Yang
Eclipse Foundation • In November 2001, IBM, Object Technology International (OTI) and eight other companies launched Eclipse. • The eclipse platform is built on a mechanism for discovering, integrating, and running modules called PLUG-INS • Eclipse board consist of Alto Web, Borland Software corporation, Hewlett Packard, Hitachi, IBM, Oracle Corporation, Red Hat and many more…
Eclipse? Eclipse is a universal platform for integrating development tools. Eclipse has open, extensible architecture based on plug-ins • Provide open platform for application development tools • -Run on a wide range of operating systems -GUI and non-GUI • Language-neutral • -Permit unrestricted content types -HTML, Java, C, JSP, EJB, XML, GIF • Facilitate seamless tool integration • -At UI and deeper -Add new tools to existing installed products
Features of Eclipse • Java Development Environment • -- automates mundane and time consuming operations. • -- it contributes a set of plug-ins which add the Java IDE • featured to the Eclipse platform. • Tool Integration Platform • -- common platform to create, manipulate, and managed • sets of resources • -- support by means of Source Code Management (SCM) • repositories [CVS]. • Open Source Community
Workbench • Workbench is UI personality of Eclipse Platform • UI paradigm centered around • Editors • Views • Perspectives Workbench JFace SWT
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
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 • JFace API consists of : -- Image and font registries -- Structured viewers -- Text infrastructure -- actions
Menu bar Text editor Toolbar Perspective and Fast View bar Resource Navigator view Message area Editor Status area Stacked views Eclipse Platform
Workspace • Resources being worked on are kept in the workspace. • It’s a folder stored in the eclipse directory. • It provides a marker mechanism for annotating resources.
Resource Management • Provides capability for operating on resources (projects folders and files) • Simple and efficient to manage, search, compare and replace resources.
Tools within Eclipse The eclipse tools project -- an open source project of eclipse.org The project aim -- provides a focal point for diverse tool builders to ensure the creation of best of breed tools for the Eclipse Platform The tools available are: -- CDT (C/C++ Development Tools) -- Eclipse Modeling Framework (EMF)
Some subprojects The CDT (C/C++ Development Tools) • What is needed? -- a fully functional C and C++ Integrated Development Environment (IDE) for the Eclipse platform • What is the focus now? -- development on Linux for deployment on Linux
CDT functions… What are the tool functions? • C/C++ Editor (basic functionality, syntax highlighting, code completion etc.) • C/C++ Debugger (APIs & Default implementation) • C/C++ Launcher (APIs & Default implementation, launches and external application) • Parser • Search Engine • Content Assist Provider • Makefile generator
Some subprojects Eclipse Modeling Framework (EMF) • What is the tool used for? -- EMF helps you rapidly turn models into efficient, correct, and easily customizable Java code • Models? -- annotated Java, XML documents, or -- modeling tools like Rational Rose
Continue…EMF Three levels of code generation • Model - provides Java interfaces and implementation classes for all the classes in the model, plus a factory and package (meta data) implementation class. • Adapters - generates implementation classes (called ItemProviders) that adapt the model classes for editing and display. • Editor - produces a properly structured editor that conforms to the recommended style for Eclipse EMF model editors and serves as a starting point from which to start customizing.
More tools • Hyades -- an integrated test, trace and monitoring environment, based on Eclipse, that provides standards, tools and tool interoperability across the test process • GEF -- is divided into 2 major plug-ins: GEF and Draw2D. • COBOL -- build a fully functional COBOL Integrated Development Environment (IDE) for the Eclipse platform
New subprojects • Eclipse Visual Editor a framework for creating GUI builders for Eclipse • UML2 an EMF-based implementation of the UML 2.0 metamodel for the Eclipse platform
What are Plug-ins? • A plug-in is the fundamental building block of the Eclipse platform. • A plug-in is the smallest unit of Eclipse Platform function that can be developed and delivered separately. • Usually a small tool is written as a single plug-in, whereas a complex tool has its functionality split across several plug-ins.
Plug-in and Eclipse • Eclipse is the sum of its constituent plug-ins, where each plug-in contributes functionality to the platform and is activated when the functionality it provides is needed. • A single plug-ins code libraries and read-only content are located together in a directory in the file system, or at a base URL on a server.
Plug-in Development • Plug-ins are coded in Java. • Structurally, each plug-in resides in a subdirectory called eclipse/plug-in in the Eclipse installation. • It contains a manifest (plugin.xml) file that describes its content to the Eclipse runtime. • A plug-in may also include a Java™ code library and other resource files it needs, such as icons, properties files, etc.
Plugin Development • The Plug-in Development Environment (PDE) provides a set of tools that assist the developer in every stage of plug-in development from genesis to deployment. • It provides the following tools • Creation • Development • Testing • Building • Deployment
Conclusion • Learning curve: • As per the website, writing an Eclipse plug-in is straight forward, but not exactly trivial • Tasks in the process can be quite intricate, depending on the complexity of the plug-in and the developer’s Eclipse expertise. • Though, Eclipse is language neutral, our main focus will remain on Java Development Environment since plug-ins are developed in Java.
Summary • Eclipse is a universal platform for integrating development tools. • Main features: JDE, tool integration platform, open source community. • Eclipse platform: JDT, PDE, Workbench, Workspace and/or self developed tools. • Tools within Eclipse: CDT, EMF and many more. • New subprojects undertaken: Eclipse Visual Editor, UML2 • Plug-in, the fundamental building block, is the smallest unit of Eclipse platform that is created to add functionality. • PDE provides the following tools for plug-in development: creation, development, testing, building and deployment