CMSC 466 / 666

35
CMSC 466 / 666 CMSC 466 / 666 Yong Rao Yong Rao Feb. 11, 2004 Feb. 11, 2004 Revised Mar. 15, 2004 Revised Mar. 15, 2004

description

CMSC 466 / 666. Yong Rao Feb. 11, 2004 Revised Mar. 15, 2004. TOPICS. Project Requirement Introduction to Eclipse. Project Requirement. Please send an email to [email protected] about your 1. group members 2. company name and a brief introduction . - PowerPoint PPT Presentation

Transcript of CMSC 466 / 666

Page 1: CMSC 466 / 666

CMSC 466 / 666CMSC 466 / 666

Yong Rao Yong Rao Feb. 11, 2004Feb. 11, 2004

Revised Mar. 15, 2004Revised Mar. 15, 2004

Page 2: CMSC 466 / 666

TOPICSTOPICS

Project Requirement Project Requirement

Introduction to EclipseIntroduction to Eclipse

Page 3: CMSC 466 / 666

Project RequirementProject Requirement Please send an email to Please send an email to

[email protected]@cs.umbc.edu about yourabout your

1. group members1. group members 2. company name and a brief 2. company name and a brief

introduction introduction

Page 4: CMSC 466 / 666

Expected ProjectExpected Project An fully functional on-line site for your proposed companyAn fully functional on-line site for your proposed company

Page 5: CMSC 466 / 666

Project RequirementProject Requirement Client Presentation logic : JSP, ASP, Client Presentation logic : JSP, ASP,

PHP etc.PHP etc. Business Logic: Java Beans, Java Business Logic: Java Beans, Java

Servlets or other applications etc. Servlets or other applications etc. Database server : Oracle, MySql, MS Database server : Oracle, MySql, MS

SQL server etc. SQL server etc.

Choose the one that best matches your Choose the one that best matches your businessbusiness

Page 6: CMSC 466 / 666

Presentation SchedulesPresentation Schedules Please turn in the following things at Please turn in the following things at

least 1 day before your presentationleast 1 day before your presentation 1. Final Project report modeled by 1. Final Project report modeled by

standards of scientific publication. standards of scientific publication. 2. Group member contribution log. 2. Group member contribution log. 3. Source codes (optional )3. Source codes (optional )

Please make a demo on the day right Please make a demo on the day right before or after your class presentation before or after your class presentation

Page 7: CMSC 466 / 666

Beyond these…Beyond these… Business Setup Business Setup

Why do you want to setup this companyWhy do you want to setup this company Where will you register and host your siteWhere will you register and host your site What functionalities you will provideWhat functionalities you will provide and more ...and more ...

Business Model SelectionBusiness Model Selection Why you select a certain modelWhy you select a certain model

Supporting Technology selectionSupporting Technology selection Why you choose certain technologies Why you choose certain technologies

Detailed implementationDetailed implementation

Show your work Show your work

Page 8: CMSC 466 / 666

Introduction to EclipseIntroduction to Eclipse http://http://www.eclipse.orgwww.eclipse.org http://www.eclipse.org/downloads/inhttp://www.eclipse.org/downloads/in

dex.phpdex.php

http://www.eclipse.org/whitepapers/http://www.eclipse.org/whitepapers/eclipse-overview.pdfeclipse-overview.pdf

http://www.eclipse.org/eclipse/presehttp://www.eclipse.org/eclipse/presentation/eclipse-slides.pptntation/eclipse-slides.ppt

Page 9: CMSC 466 / 666

Eclipse OriginsEclipse Origins Eclipse created by OTI and IBM teams Eclipse created by OTI and IBM teams

responsible for IDE productsresponsible for IDE products IBM VisualAge/Smalltalk (Smalltalk IDE) IBM VisualAge/Smalltalk (Smalltalk IDE) IBM VisualAge/Java (Java IDE)IBM VisualAge/Java (Java IDE) IBM VisualAge/Micro Edition (Java IDE)IBM VisualAge/Micro Edition (Java IDE)

Initially staffed with 40 full-time developersInitially staffed with 40 full-time developers Geographically dispersed development teamsGeographically dispersed development teams

OTI Ottawa, OTI Minneapolis, OTI Zurich, IBM OTI Ottawa, OTI Minneapolis, OTI Zurich, IBM Toronto, OTI Raleigh, IBM RTP, IBM St. Nazaire Toronto, OTI Raleigh, IBM RTP, IBM St. Nazaire (France)(France)

Effort transitioned into open source projectEffort transitioned into open source project IBM donated initial Eclipse code baseIBM donated initial Eclipse code base

Platform, JDT, PDEPlatform, JDT, PDE

Page 10: CMSC 466 / 666

Brief History of EclipseBrief History of Eclipse19991999

AprilApril - Work begins on Eclipse inside OTI/IBM- Work begins on Eclipse inside OTI/IBM20002000

June June - Eclipse Tech Preview ships- Eclipse Tech Preview ships20012001

MarchMarch - - http://http://www.eclipsecorner.orgwww.eclipsecorner.org// opens opensJuneJune - Eclipse 0.9 ships- Eclipse 0.9 shipsOctoberOctober - Eclipse 1.0 ships- Eclipse 1.0 shipsNovemberNovember - IBM donates Eclipse source base- IBM donates Eclipse source base

- eclipse.org board announced- eclipse.org board announced- - http://http://www.eclipse.orgwww.eclipse.org// opens opens

20022002JuneJune - Eclipse 2.0 ships- Eclipse 2.0 shipsSeptemberSeptember - Eclipse 2.0.1 ships- Eclipse 2.0.1 shipsNovemberNovember - Eclipse 2.0.2 ships- Eclipse 2.0.2 ships

20032003 MarchMarch - Eclipse 2.1 ships- Eclipse 2.1 ships

Page 11: CMSC 466 / 666

Introduction to EclipseIntroduction to Eclipse Eclipse is a universal platformEclipse is a universal platform

for integrating development toolsfor integrating development tools Open, Open, extensible architecture based on plug-insextensible architecture based on plug-ins

Java VMStandard Java2Virtual Machine

PlatformEclipse Platform

PDEPlug-in developmentenvironment

Java development tools

JDT

Page 12: CMSC 466 / 666

Eclipse Plug-in Eclipse Plug-in ArchitectureArchitecture

Plug-in APlug-in A Declares extension point PDeclares extension point P Declares interface I to go with PDeclares interface I to go with P

Plug-in BPlug-in B Implements interface I with its own class CImplements interface I with its own class C Contributes class C to extension point PContributes class C to extension point P

Plug-in A instantiates C and calls its I methodsPlug-in A instantiates C and calls its I methods

plug-in A plug-in B

class Cinterface I

extensionpoint P extension

contributes

creates, calls

implements

Page 13: CMSC 466 / 666

Eclipse Plug-in Eclipse Plug-in ArchitectureArchitecture

<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>

Declare contributionthis 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

Page 14: CMSC 466 / 666

Plug-in Architecture - Plug-in Architecture - SummarySummary

All functionality provided by plug-insAll functionality provided by plug-ins Includes all aspects of Eclipse Platform itselfIncludes all aspects of Eclipse Platform itself

Communication via extension pointsCommunication via extension points Contributing does not require plug-in Contributing does not require plug-in

activationactivation

Packaged into separately installable Packaged into separately installable featuresfeatures DownloadableDownloadable

Page 15: CMSC 466 / 666

Plug-in Development Plug-in Development EnvironmentEnvironment

PDE = Plug-in development environmentPDE = Plug-in development environment Specialized tools for developing Eclipse plug-insSpecialized tools for developing Eclipse plug-ins

Built atop Eclipse Platform and JDTBuilt atop Eclipse Platform and JDT Implemented as Eclipse plug-insImplemented as Eclipse plug-ins Using Eclipse Platform and JDT APIs and extension Using Eclipse Platform and JDT APIs and extension

pointspoints

Included in Eclipse Project releasesIncluded in Eclipse Project releases Separately installable featureSeparately installable feature Part of Eclipse SDK dropsPart of Eclipse SDK drops

Page 16: CMSC 466 / 666

PDE templates for creating PDE templates for creating simple plug-in projectssimple plug-in projects

Page 17: CMSC 466 / 666

PDE editor for plug-in PDE editor for plug-in manifest filesmanifest files

Page 18: CMSC 466 / 666

PDE - SummaryPDE - Summary PDE makes it easier to develop PDE makes it easier to develop

Eclipse plug-insEclipse plug-ins

PDE also generates Ant build scriptsPDE also generates Ant build scripts Compile and create deployed form of Compile and create deployed form of

plug-inplug-in

Page 19: CMSC 466 / 666

Java Development ToolsJava Development Tools JDT = Java development toolsJDT = Java development tools State of the art Java development State of the art Java development

environmentenvironment

Built atop Eclipse PlatformBuilt atop Eclipse Platform Implemented as Eclipse plug-insImplemented as Eclipse plug-ins Using Eclipse Platform APIs and extension pointsUsing Eclipse Platform APIs and extension points

Included in Eclipse Project releasesIncluded in Eclipse Project releases Available as separately installable featureAvailable as separately installable feature Part of Eclipse SDK dropsPart of Eclipse SDK drops

Page 20: CMSC 466 / 666

Java-centric view of files in Java-centric view of files in Java projectsJava projects

Page 21: CMSC 466 / 666

Eclipse JDT - SummaryEclipse JDT - Summary JDT is a state of the art Java IDEJDT is a state of the art Java IDE Java views, editor, refactoringJava views, editor, refactoring

Helps programmer write and maintain Java Helps programmer write and maintain Java codecode

Java compilerJava compiler Takes care of translating Java sources to Takes care of translating Java sources to

binariesbinaries Java debuggerJava debugger

Allows programmer to get inside the running Allows programmer to get inside the running programprogram

Page 22: CMSC 466 / 666

Eclipse PlatformEclipse Platform Eclipse Platform is the common baseEclipse Platform is the common base Consists of several key componentsConsists of several key components

Platform Runtime

Eclipse Platform

Workspace

Workbench

SWTJFace

Team Help Debug

Ant“Core”

“UI”

Page 23: CMSC 466 / 666

Workspace ComponentWorkspace Component Workspace holds 1 or Workspace holds 1 or

more top-level more top-level projectsprojects

Tree of Tree of foldersfolders and and filesfiles

Page 24: CMSC 466 / 666

Workbench ComponentWorkbench Component

SWT – generic low-level graphics and widget SWT – generic low-level graphics and widget setset

JFace – UI frameworks for common UI tasksJFace – UI frameworks for common UI tasks Workbench – UI personality of Eclipse PlatformWorkbench – UI personality of Eclipse Platform

Workbench

SWTJFace

Page 25: CMSC 466 / 666

SWTSWT SWT = Standard Widget ToolkitSWT = Standard Widget Toolkit Generic graphics and GUI widget setGeneric graphics and GUI widget set

buttons, lists, text, menus, trees, styled text...buttons, lists, text, menus, trees, styled text...

SimpleSimple SmallSmall FastFast OS-independent APIOS-independent API Uses native widgets where availableUses native widgets where available Emulates widgets where unavailableEmulates widgets where unavailable

Page 26: CMSC 466 / 666

SWT : Authentic native SWT : Authentic native windows windows

look and feellook and feel

Page 27: CMSC 466 / 666

JFaceJFace JFace is set of UI frameworks for JFace is set of UI frameworks for

common UI taskscommon UI tasks Designed to be used in conjunction Designed to be used in conjunction

with SWTwith SWT Classes for handling common UI Classes for handling common UI

taskstasks API and implementation are window-API and implementation are window-

system independentsystem independent

Page 28: CMSC 466 / 666

JFace APIsJFace APIs Image and font registriesImage and font registries Dialog, preference, and wizard frameworksDialog, preference, and wizard frameworks Structured viewersStructured viewers

Model-aware adapters for SWT tree, table, list Model-aware adapters for SWT tree, table, list widgetswidgets

Text infrastructureText infrastructure Document model for SWT styled text widgetDocument model for SWT styled text widget Coloring, formatting, partitioning, completionColoring, formatting, partitioning, completion

ActionsActions Location-independent user commandsLocation-independent user commands Contribute action to menu, tool bar, or buttonContribute action to menu, tool bar, or button

Page 29: CMSC 466 / 666

Workbench ComponentWorkbench Component Workbench is UI personality of Workbench is UI personality of

Eclipse PlatformEclipse Platform

UI paradigm centered aroundUI paradigm centered around EditorsEditors ViewsViews PerspectivesPerspectives

Page 30: CMSC 466 / 666

Team ComponentTeam Component Version and configuration management (VCM)Version and configuration management (VCM) Share resources with team via a Share resources with team via a repositoryrepository Repository associated at project levelRepository associated at project level Extension point for new types of repositoriesExtension point for new types of repositories Repository provider API and frameworkRepository provider API and framework Eclipse Platform includes CVS repository providerEclipse Platform includes CVS repository provider Available repository providers*Available repository providers*

ChangeMan (Serena)ChangeMan (Serena) - AllFusion Harvest (CA)- AllFusion Harvest (CA) ClearCase (Rational)ClearCase (Rational) - Perforce- Perforce CM Synergy (Telelogic)CM Synergy (Telelogic) - Source Integrity (MKS)- Source Integrity (MKS) PVCS (Merant)PVCS (Merant) - TeamCode (Interwoven)- TeamCode (Interwoven) Microsoft Visual Source SafeMicrosoft Visual Source Safe

Page 31: CMSC 466 / 666

Debug ComponentDebug Component

Page 32: CMSC 466 / 666

Ant ComponentAnt Component Eclipse incorporates Eclipse incorporates Apache AntApache Ant Ant is Java-based build toolAnt is Java-based build tool

““Kind of like Make…without Make's wrinkles”Kind of like Make…without Make's wrinkles” XML-based build files instead of makefilesXML-based build files instead of makefiles Available from workbench External Tools Available from workbench External Tools

menumenu Run Ant targets in build files inside or Run Ant targets in build files inside or

outside workspaceoutside workspace PDE uses Ant for building deployed form of PDE uses Ant for building deployed form of

plug-inplug-in

Page 33: CMSC 466 / 666

Help ComponentHelp Component

Page 34: CMSC 466 / 666

Eclipse Platform - Eclipse Platform - SummarySummary

Eclipse Platform is the nucleus of IDE productsEclipse Platform is the nucleus of IDE products Plug-ins, extension points, extensionsPlug-ins, extension points, extensions

Open, Open, extensible architectureextensible architecture Workspace, projects, files, foldersWorkspace, projects, files, folders

Common place to organize & store development Common place to organize & store development artifactsartifacts

Workbench, editors, views, perspectivesWorkbench, editors, views, perspectives Common user presentation and UI paradigmCommon user presentation and UI paradigm

Key building blocks and facilitiesKey building blocks and facilities Help, team support, internationalization, …Help, team support, internationalization, …

Page 35: CMSC 466 / 666

Thank you. Thank you.