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
[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
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.
Top Related