CMSC 466 / 666

Post on 25-Feb-2016

54 views 2 download

Tags:

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 yongrao1@cs.umbc.edu about your 1. group members 2. company name and a brief introduction . - PowerPoint PPT Presentation

Transcript of CMSC 466 / 666

CMSC 466 / 666CMSC 466 / 666

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

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

TOPICSTOPICS

Project Requirement Project Requirement

Introduction to EclipseIntroduction to Eclipse

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

yongrao1@cs.umbc.eduyongrao1@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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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”

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

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

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

SWT : Authentic native SWT : Authentic native windows windows

look and feellook and feel

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

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

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

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

Debug ComponentDebug Component

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

Help ComponentHelp Component

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

Thank you. Thank you.