SlideShare una empresa de Scribd logo
1 de 50
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. | 2008-03-17
ABC of Platform Workspace
Szymon Brandys
Tomasz Zarna
IBM Krakow Software Lab
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Introduction
• Workspace components
 Resources
 Compare
 Team
 CVS
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Resources overview
• An essential plug-in for Eclipse IDE applications is the resources plug-in (named
org.eclipse.core.resources).
• The resources plug-in provides services for accessing the projects, folders, and files that a
user is working on.
• The resources plug-in provides services for managing meta-data associated with resources
(Markers: breakpoints, tasks, bookmarks, etc and Properties: arbitrary objects associated
with resources)
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Compare, Team and CVS overview
• Compare
 comparison of alternate states of a file system
• Team
 repository tooling integration into Eclipse
• CVS
 implementation of a CVS client
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Agenda
• Resources
 Workspace
 Resources
 Properties
 Preferences
 Content types
 Linked resources
 Markers
 Natures
 Builders
 Alternate file systems
 Demo
• Team/Compare
 Repository Integration Framwork
 Compare Framework
 Demo
• Summary and questions
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Workspace
• Workspace is a central hub for user’s files
• The workspace contains a collection of
resources. From the user perspective
there are three different types of
resources: projects, folders, files.
Resources are organized in a tree.
• The resources plug-in provides APIs for
creating, navigating, and manipulating
resources in a workspace. The workbench
uses these APIs to provide this
functionality to the user. Your plug-in can
also use these APIs.
• Derived resources
are resources that are not original data,
and can be recreated from their source
files. It is common for derived files to be
excluded from certain kinds of
processing.
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Resources API
© Copyright 2008 IBM Corp. All rights reserved. This source code is
made available under the terms of the Eclipse Public License, v1.0.
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Some useful tools
See the modules in dev.eclipse.org repository
org.eclipse.core.tools
org.eclipse.core.tools.resources
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Basic plug-in
Dependency to org.eclipse.core.runtime
Content types
Dependency to org.eclipse.core.resources
Resource operations
Builder framework
Natures
Dependency to org.eclipse.core.filesystem
EFS
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Properties
Properties can be used to store meta-information about the resource. This mechanism can be used in
user plug-ins to hold information specific for that plug-in.
When a resource is deleted, its properties are deleted too.
There are two kinds of properties
• Session properties
 allow your plug-ins to easily cache information about a resource in key-value pairs
 the values are arbitrary objects
 these properties are maintained in memory and lost when a resource is deleted from the
workspace, or when the project or workspace is closed
• Persistent properties
 store information on disc in the workspace metadata
 the value of a persistent property is an arbitrary string
 the strings are intended to be short (under 2KB)
 Properties are maintained across platform shutdown and restart
To manipulate properties API is provided (see IResource class)
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Project preferences
• Preferences in Eclipse (short overview)
Eclipse provide the infrastructure for defining and storing preferences with different scopes
and org.eclipse.core.runtime.preferences extension can be used to define additional scopes
for preferences.
Preferences typically map to settings controlled by the user on the Preferences page,
although this is not required by the underlying infrastructure. Plug-in preferences are
key/value pairs, where the key describes the name of the preference, and the value is one of
several different types (boolean, double, float, int, long, or string). Preferences can be stored
and retrieved by the platform from the file system. The exact location of the saved
preferences depends upon the scope of the preference.
• The platform resources plug-in defines its own preference scope for projects. Project-scoped
preferences are stored in a file located inside the project.
• Using project scope preference
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Content types
• What is content type?
• There are some features of
Eclipse
that are content-sensitive, such as
automatic encoding
determination, editor selection,
and menu contributions.
• The content type registry is
extensible so plug-ins can
contribute new content type
definitions.
• How to define new content type
© Copyright 2008 IBM Corp. All rights reserved. This source code is
made available under the terms of the Eclipse Public License, v1.0.
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Linked resources
Linked resources are provided so that
files and folders inside a project can be
stored in a file system outside of the
project's location.
© Copyright 2008 IBM Corp. All rights reserved. This source code is
made available under the terms of the Eclipse Public License, v1.0.
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Markers
• What is Marker?
A marker is an extra note stuck to a
resource. On the marker you can
record information about a problem or
a task to be done.
• How to manipulate markers?
• How to add new marker type
Plug-ins can declare their own marker
types using the
org.eclipse.core.resources.markers
extension point.
© Copyright 2008 IBM Corp. All rights reserved. This source code is
made available under the terms of the Eclipse Public License, v1.0.
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Markers (subtypes)
© Copyright 2008 IBM Corp. All rights reserved. This source code is
made available under the terms of the Eclipse Public License, v1.0.
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Natures
• Project natures allow to mark a project as a specific
kind of project. This mechanism can be used to add
a specific behaviour to projects.
• A project can have more than one nature. However,
when you define a project nature, you can define
special constraints for the nature
Constraints:
 one-of-nature
 requires-nature
• Plug-ins can contribute implementations for natures
using the org.eclipse.core.resources.natures
extension point and supplying a class which
implements IProjectNature
© Copyright 2008 IBM Corp. All rights reserved. This source code is
made available under the terms of the Eclipse Public License, v1.0.
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Natures – why use them?
• Configure and deconfigure when a nature is added/removed to a
project (oportunity to add additional attributes to projest. Modify its
metadata, add builders)
• propertyPages and popupMenus have filter mechanism which
recognizes natures
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Linked resources and natures
What if a plug-in is not able to
handle linked resources?
© Copyright 2008 IBM Corp. All rights reserved. This source code is
made available under the terms of the Eclipse Public License, v1.0.
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Content types and natures
Natures can declare affinity with arbitrary
content types, affecting the way content
type determination happens for files in
the workspace.
In case of conflicts, the content type
having affinity with any of the natures
configured for the corresponding project
will be chosen.
© Copyright 2008 IBM Corp. All rights reserved. This source code is
made available under the terms of the Eclipse Public License, v1.0.
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Builders
• An incremental project builder is an object that manipulates the resources in a project in a
particular way.
Builders can apply a transformation on resources.
Resources created by a builder are typically marked as derived resources.
• From an API point of view, the platform defines two basic types of builds:
 A full build
 An incremental build
• Plug-ins can contribute implementations for builder using the org.eclipse.core.resources.builders
extension point and supplying a class which extends IncrementalProjectBuilder.
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Builders and UI
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Alternate file systems
• What is EFS?
EFS (The Eclipse FileSystem) is an abstract filesystem API that
allows to work with other filesystems e.g. FTP, zip files, in-memory
filesystem, and even CVS.
• File system providers
By default, the org.eclipse.core.filesystem plug-in only includes a
file system implementation for the local file system.
Plug-ins can contribute implementations for other file systems
using the org.eclipse.core.filesystem.filesystems extension point.
File system providers must provide subclasses of FileStore and
FileSystem.
• UI support for EFS
There are several places in the UI where the user can select file
system, e.g. wizards.
The UI support for EFS can be added via the
org.eclipse.ui.ide.fileSystemSupport extension point.
The class attribute of these schema must be a
org.eclipse.ui.ide.fileSystem.FileSystemContributor which is used
to supply validation and browsing of the other file systems.
• Additional resources on EFS
http://wiki.eclipse.org/index.php/EFS
© Copyright 2008 IBM Corp. All rights reserved. This source code is
made available under the terms of the Eclipse Public License, v1.0.
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Demo
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Additional info and details
• Eclipse SDK Help
 Platform Plug-in Developer Guide > Programmer’s Guide >
Resource Overview
 Platform Plug-in Developer Guide > Programmer’s Guide >
Advanced Resource Concepts
• Examples
 org.eclipse.ui.examples.filesystem
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Overview
• The Repository Integration Framework
• The Compare Framework
• Demo
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Repository Integration Framework
• Goal
 Integrate the workflow that your repository users know with
the concepts defined in the workbench (not just API)
• Example
 The CVS client as a case study for integrating a team
provider with the platform
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Repository Provider
• Define a RepositoryProvider
 org.eclipse.team.core.repository
 Subclass org.eclipse.team.core.RepositoryProvider
• Provide a configuration wizard for sharing projects
 org.eclipse.team.ui.configurationWizard
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Functionality in a resource’s menu
• Add actions to the Team
menu
 org.eclipse.ui.popupMenus
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Decorate resources
• Decorate resources with team specific information
 org.eclipse.ui.decorators
 org.eclipse.team.ui.teamDecorators
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Views
• Provide customized view with
team specific information
 CVS Editors
 CVS Repositories
 History
 Synchronize
• org.eclipse.ui.views
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Perspectives
• Team oriented perspective
 org.eclipse.ui.perspectives
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Wizards
• Import/Export
 org.eclipse.ui.importWizards
 org.eclipse.ui.exportWizards
• New
 org.eclipse.ui.newWizards
• Share
 org.eclipse.team.ui.configurationWizards
• Synchronize
 org.eclipse.ui.synchornizeWizards
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Preferences
• org.eclipse.ui.preferencePages
• Category: org.eclipse.team.ui.TeamPreferences
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Help
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Additional info and details
• Eclipse SDK Help
 Platform Plug-in Developer Guide > Team Support > Rich
Team Integration
 http://help.eclipse.org/stable/index.jsp?topic=/org.eclipse.platform.do
• Examples:
 org.eclipse.team.examples.filesystem
 org.eclipse.team.cvs.*
• Repository projects supporting Eclipse
 http://www.eclipse.org/community/team.php
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
The Compare Framework
• What is the purpose of the Compare framework?
 Support comparison of alternate states of a file system or
data store
• What does the Compare framework provide?
 API to define the input to a comparison
 Extensions for associating viewers with input types
 Containers to host comparisons in the UI
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Overview of Compare Architecture
Compare Container
File System Repository Database
Compare Input
Compare Viewers
JDT
rightleft
ancestor
Clients
EMF
Model Providers
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Compare/Merge viewers
• A simple text merge viewer and the JDT merge viewer
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
How to create the simplest compare editor?
• Ingredients:
 A CompareItem that implements
 ITypedElement for name, image and content type of the object
 IModificationDate for timestamp
 IStreamContentAccessor to supply the content
 CompareEditorInput subclass
 DiffNode computed in a CompareEditorInput subclass
 To specify which of the panes is editable use
CompareConfiguration
 An action to open the editor
 A contribution in org.eclipse.ui.popupMenus extension point
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
The input and the action
© Copyright 2008 IBM Corp. All rights reserved. This source code is
made available under the terms of the Eclipse Public License, v1.0.
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
The item and the popup menu entry
© Copyright 2008 IBM Corp. All rights reserved. This source code is
made available under the terms of the Eclipse Public License, v1.0.
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
The result
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
How do I provide a structure merge viewer?
• Add an extension of structureMergeViewer
 Provide instance or subclass of StructureDiffViewer
• Add an extension of structureCreator
 Provide a instance of IStructureCreator
 Provides the structure of a single element (e.g. file)
i.e. a tree representation of the element
Nodes are subclasses of DocumentRangeNode
Need a unique type (“java2” for java)
 Also provides API to write changes back to the element
 Subclass StructureCreator to be file buffer aware
 Viewer uses the differencing engine to create a tree
representation of the differences
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
The Panes of a Compare Editor Input
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
The Panes of the Apply Patch wizard
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
The Ancestor pane in the Apply Patch wizard
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Demo
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Additional info and details
• Eclipse SDK Help
 Platform Plug-in Developer Guide > Programmer’s Guide >
Compare support
• Examples
 org.eclipse.compare.examples
 org.eclipse.compare.examples.xml
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Web resources and contact
• Web
 http://www.eclipse.org
 http://wiki.eclipse.org/Workspace_Team
 http://polishineclipse.blogspot.com
• Repository
 :pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse
• IRC:
 #eclipse, #eclipse-dev
 SzymonB, z4z4
• Mail:
 Szymon.Brandys@pl.ibm.com
 Tomasz.Zarna@pl.ibm.com
ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available
under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license.
Legal Notice
 IBM and the IBM logo are trademarks or registered
trademarks of IBM Corporation, in the United States, other
countries or both.
 Java and all Java-based marks, among others, are
trademarks or registered trademarks of Sun Microsystems in
the United States, other countries or both.
 Eclipse and the Eclipse logo are trademarks of Eclipse
Foundation, Inc.
 Other company, product and service names may be
trademarks or service marks of others.

Más contenido relacionado

La actualidad más candente

PIL - A Platform Independent Language
PIL - A Platform Independent LanguagePIL - A Platform Independent Language
PIL - A Platform Independent Languagezefhemel
 
Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?Eelco Visser
 
Insight into progam execution ppt
Insight into progam execution pptInsight into progam execution ppt
Insight into progam execution pptKeerty Smile
 
EclipseCon 2011: Deciphering the CDT debugger alphabet soup
EclipseCon 2011: Deciphering the CDT debugger alphabet soupEclipseCon 2011: Deciphering the CDT debugger alphabet soup
EclipseCon 2011: Deciphering the CDT debugger alphabet soupBruce Griffith
 
Apache Big Data Europe 2016
Apache Big Data Europe 2016Apache Big Data Europe 2016
Apache Big Data Europe 2016Tim Ellison
 
1 introduction to compiler
1 introduction to compiler1 introduction to compiler
1 introduction to compilerBarwarBadradin
 
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Maarten Balliauw
 
Introduction to Compilers
Introduction to CompilersIntroduction to Compilers
Introduction to CompilersAkhil Kaushik
 
DEF CON 27 - JEFF DILEO - evil e bpf in depth
DEF CON 27 - JEFF DILEO - evil e bpf in depthDEF CON 27 - JEFF DILEO - evil e bpf in depth
DEF CON 27 - JEFF DILEO - evil e bpf in depthFelipe Prado
 
High Performance Erlang
High Performance ErlangHigh Performance Erlang
High Performance Erlangdidip
 
Introduction to Level Zero API for Heterogeneous Programming : NOTES
Introduction to Level Zero API for Heterogeneous Programming : NOTESIntroduction to Level Zero API for Heterogeneous Programming : NOTES
Introduction to Level Zero API for Heterogeneous Programming : NOTESSubhajit Sahu
 
Dalvik Vm & Jit
Dalvik Vm & JitDalvik Vm & Jit
Dalvik Vm & JitAnkit Somani
 
IPC07 Talk - Beautiful Code with AOP and DI
IPC07 Talk - Beautiful Code with AOP and DIIPC07 Talk - Beautiful Code with AOP and DI
IPC07 Talk - Beautiful Code with AOP and DIRobert Lemke
 
compiler and their types
compiler and their typescompiler and their types
compiler and their typespatchamounika7
 
Introduction to compiler
Introduction to compilerIntroduction to compiler
Introduction to compilerAbha Damani
 

La actualidad más candente (20)

PIL - A Platform Independent Language
PIL - A Platform Independent LanguagePIL - A Platform Independent Language
PIL - A Platform Independent Language
 
Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?Compiler Construction | Lecture 1 | What is a compiler?
Compiler Construction | Lecture 1 | What is a compiler?
 
Insight into progam execution ppt
Insight into progam execution pptInsight into progam execution ppt
Insight into progam execution ppt
 
EclipseCon 2011: Deciphering the CDT debugger alphabet soup
EclipseCon 2011: Deciphering the CDT debugger alphabet soupEclipseCon 2011: Deciphering the CDT debugger alphabet soup
EclipseCon 2011: Deciphering the CDT debugger alphabet soup
 
Apache Big Data Europe 2016
Apache Big Data Europe 2016Apache Big Data Europe 2016
Apache Big Data Europe 2016
 
1 introduction to compiler
1 introduction to compiler1 introduction to compiler
1 introduction to compiler
 
Types of Compilers
Types of CompilersTypes of Compilers
Types of Compilers
 
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
Microservices for building an IDE – The innards of JetBrains Rider - TechDays...
 
Introduction to Compilers
Introduction to CompilersIntroduction to Compilers
Introduction to Compilers
 
DEF CON 27 - JEFF DILEO - evil e bpf in depth
DEF CON 27 - JEFF DILEO - evil e bpf in depthDEF CON 27 - JEFF DILEO - evil e bpf in depth
DEF CON 27 - JEFF DILEO - evil e bpf in depth
 
High Performance Erlang
High Performance ErlangHigh Performance Erlang
High Performance Erlang
 
Introduction to Level Zero API for Heterogeneous Programming : NOTES
Introduction to Level Zero API for Heterogeneous Programming : NOTESIntroduction to Level Zero API for Heterogeneous Programming : NOTES
Introduction to Level Zero API for Heterogeneous Programming : NOTES
 
Dalvik Vm & Jit
Dalvik Vm & JitDalvik Vm & Jit
Dalvik Vm & Jit
 
Compilers
CompilersCompilers
Compilers
 
IPC07 Talk - Beautiful Code with AOP and DI
IPC07 Talk - Beautiful Code with AOP and DIIPC07 Talk - Beautiful Code with AOP and DI
IPC07 Talk - Beautiful Code with AOP and DI
 
compiler and their types
compiler and their typescompiler and their types
compiler and their types
 
Compiler design
Compiler designCompiler design
Compiler design
 
R Dz7.5 Overview
R Dz7.5 OverviewR Dz7.5 Overview
R Dz7.5 Overview
 
Introduction to compiler
Introduction to compilerIntroduction to compiler
Introduction to compiler
 
Language Weaver
Language WeaverLanguage Weaver
Language Weaver
 

Destacado

5 Segredos de Performance Marketing para o Black Friday 2015
5 Segredos de Performance Marketing para o Black Friday 20155 Segredos de Performance Marketing para o Black Friday 2015
5 Segredos de Performance Marketing para o Black Friday 2015Kwanko
 
KWANKO s’associe à l’EMLV et à l’ESILV pour créer la Chaire « EMPREINTES NUME...
KWANKO s’associe à l’EMLV et à l’ESILV pour créer la Chaire « EMPREINTES NUME...KWANKO s’associe à l’EMLV et à l’ESILV pour créer la Chaire « EMPREINTES NUME...
KWANKO s’associe à l’EMLV et à l’ESILV pour créer la Chaire « EMPREINTES NUME...Kwanko
 
Orion RESTful git API
Orion RESTful git APIOrion RESTful git API
Orion RESTful git APITomasz Zarna
 
LE GROUPE KWANKO REVOLUTIONNE L’EMAILING
LE GROUPE KWANKO REVOLUTIONNE L’EMAILING LE GROUPE KWANKO REVOLUTIONNE L’EMAILING
LE GROUPE KWANKO REVOLUTIONNE L’EMAILING Kwanko
 

Destacado (6)

5 Segredos de Performance Marketing para o Black Friday 2015
5 Segredos de Performance Marketing para o Black Friday 20155 Segredos de Performance Marketing para o Black Friday 2015
5 Segredos de Performance Marketing para o Black Friday 2015
 
Eclipse Way
Eclipse WayEclipse Way
Eclipse Way
 
E4 UI Demos
E4 UI DemosE4 UI Demos
E4 UI Demos
 
KWANKO s’associe à l’EMLV et à l’ESILV pour créer la Chaire « EMPREINTES NUME...
KWANKO s’associe à l’EMLV et à l’ESILV pour créer la Chaire « EMPREINTES NUME...KWANKO s’associe à l’EMLV et à l’ESILV pour créer la Chaire « EMPREINTES NUME...
KWANKO s’associe à l’EMLV et à l’ESILV pour créer la Chaire « EMPREINTES NUME...
 
Orion RESTful git API
Orion RESTful git APIOrion RESTful git API
Orion RESTful git API
 
LE GROUPE KWANKO REVOLUTIONNE L’EMAILING
LE GROUPE KWANKO REVOLUTIONNE L’EMAILING LE GROUPE KWANKO REVOLUTIONNE L’EMAILING
LE GROUPE KWANKO REVOLUTIONNE L’EMAILING
 

Similar a ABC of Platform Workspace API Guide

P2 Introduction
P2 IntroductionP2 Introduction
P2 Introductionirbull
 
What is new in Helios
What is new in HeliosWhat is new in Helios
What is new in HeliosTomasz Zarna
 
Together in Eclipse
Together in EclipseTogether in Eclipse
Together in EclipseTomasz Zarna
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview Lars Vogel
 
Building Server-Side Eclipse based Web applications - Jochen Hiller, Principa...
Building Server-Side Eclipse based Web applications - Jochen Hiller, Principa...Building Server-Side Eclipse based Web applications - Jochen Hiller, Principa...
Building Server-Side Eclipse based Web applications - Jochen Hiller, Principa...mfrancis
 
Orion (What's Next conference)
Orion (What's Next conference)Orion (What's Next conference)
Orion (What's Next conference)Boris Bokowski
 
Introducing the Embedded Rich Client Platform (eRCP) - Jim Robbins, IBM
Introducing the Embedded Rich Client Platform (eRCP) - Jim Robbins, IBMIntroducing the Embedded Rich Client Platform (eRCP) - Jim Robbins, IBM
Introducing the Embedded Rich Client Platform (eRCP) - Jim Robbins, IBMmfrancis
 
ITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insTonny Madsen
 
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...mfrancis
 
Using Elyra for COVID-19 Analytics
Using Elyra for COVID-19 AnalyticsUsing Elyra for COVID-19 Analytics
Using Elyra for COVID-19 AnalyticsLuciano Resende
 
SpringPeople Introduction to iOS Apps Development
SpringPeople Introduction to iOS Apps DevelopmentSpringPeople Introduction to iOS Apps Development
SpringPeople Introduction to iOS Apps DevelopmentSpringPeople
 
Discovery the p2 API (updated to Indigo)
Discovery the p2 API (updated to Indigo)Discovery the p2 API (updated to Indigo)
Discovery the p2 API (updated to Indigo)Pascal Rapicault
 
stackconf 2022: It’s Time to Debloat the Cloud with Unikraft
stackconf 2022: It’s Time to Debloat the Cloud with Unikraftstackconf 2022: It’s Time to Debloat the Cloud with Unikraft
stackconf 2022: It’s Time to Debloat the Cloud with UnikraftNETWAYS
 
Make Me an Eclipse View (with less Plumbing): The PTP External Tools Framewor...
Make Me an Eclipse View (with less Plumbing): The PTP External Tools Framewor...Make Me an Eclipse View (with less Plumbing): The PTP External Tools Framewor...
Make Me an Eclipse View (with less Plumbing): The PTP External Tools Framewor...bethtib
 
Who Took The Cookie From The Cookie Jar?
Who Took The Cookie From The Cookie Jar?Who Took The Cookie From The Cookie Jar?
Who Took The Cookie From The Cookie Jar?Olivier Thomann
 

Similar a ABC of Platform Workspace API Guide (20)

Compare framework
Compare frameworkCompare framework
Compare framework
 
P2 Introduction
P2 IntroductionP2 Introduction
P2 Introduction
 
What is new in Helios
What is new in HeliosWhat is new in Helios
What is new in Helios
 
Together in Eclipse
Together in EclipseTogether in Eclipse
Together in Eclipse
 
Discovering the p2 API
Discovering the p2 APIDiscovering the p2 API
Discovering the p2 API
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
 
Building Server-Side Eclipse based Web applications - Jochen Hiller, Principa...
Building Server-Side Eclipse based Web applications - Jochen Hiller, Principa...Building Server-Side Eclipse based Web applications - Jochen Hiller, Principa...
Building Server-Side Eclipse based Web applications - Jochen Hiller, Principa...
 
Orion (What's Next conference)
Orion (What's Next conference)Orion (What's Next conference)
Orion (What's Next conference)
 
Introducing the Embedded Rich Client Platform (eRCP) - Jim Robbins, IBM
Introducing the Embedded Rich Client Platform (eRCP) - Jim Robbins, IBMIntroducing the Embedded Rich Client Platform (eRCP) - Jim Robbins, IBM
Introducing the Embedded Rich Client Platform (eRCP) - Jim Robbins, IBM
 
ITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-ins
 
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...
Keynote - Eclipse - Accelerating OSGi Adoption - Mike Milinkovich, Executive ...
 
Using Elyra for COVID-19 Analytics
Using Elyra for COVID-19 AnalyticsUsing Elyra for COVID-19 Analytics
Using Elyra for COVID-19 Analytics
 
SpringPeople Introduction to iOS Apps Development
SpringPeople Introduction to iOS Apps DevelopmentSpringPeople Introduction to iOS Apps Development
SpringPeople Introduction to iOS Apps Development
 
API Tooling in Eclipse
API Tooling in EclipseAPI Tooling in Eclipse
API Tooling in Eclipse
 
Discovery the p2 API (updated to Indigo)
Discovery the p2 API (updated to Indigo)Discovery the p2 API (updated to Indigo)
Discovery the p2 API (updated to Indigo)
 
stackconf 2022: It’s Time to Debloat the Cloud with Unikraft
stackconf 2022: It’s Time to Debloat the Cloud with Unikraftstackconf 2022: It’s Time to Debloat the Cloud with Unikraft
stackconf 2022: It’s Time to Debloat the Cloud with Unikraft
 
Ide
IdeIde
Ide
 
Make Me an Eclipse View (with less Plumbing): The PTP External Tools Framewor...
Make Me an Eclipse View (with less Plumbing): The PTP External Tools Framewor...Make Me an Eclipse View (with less Plumbing): The PTP External Tools Framewor...
Make Me an Eclipse View (with less Plumbing): The PTP External Tools Framewor...
 
Dotnet basics
Dotnet basicsDotnet basics
Dotnet basics
 
Who Took The Cookie From The Cookie Jar?
Who Took The Cookie From The Cookie Jar?Who Took The Cookie From The Cookie Jar?
Who Took The Cookie From The Cookie Jar?
 

Más de Tomasz Zarna

Orion Introduction
Orion IntroductionOrion Introduction
Orion IntroductionTomasz Zarna
 
Orion Introduction
Orion IntroductionOrion Introduction
Orion IntroductionTomasz Zarna
 
What's new in Juno
What's new in JunoWhat's new in Juno
What's new in JunoTomasz Zarna
 
Git migration - Lessons learned
Git migration - Lessons learnedGit migration - Lessons learned
Git migration - Lessons learnedTomasz Zarna
 
Equinox/p2 - Getting started with Equinox/p2
Equinox/p2 - Getting started with Equinox/p2Equinox/p2 - Getting started with Equinox/p2
Equinox/p2 - Getting started with Equinox/p2Tomasz Zarna
 
EGit - Eclipse plug-in for git
EGit - Eclipse plug-in for gitEGit - Eclipse plug-in for git
EGit - Eclipse plug-in for gitTomasz Zarna
 

Más de Tomasz Zarna (7)

Orion Introduction
Orion IntroductionOrion Introduction
Orion Introduction
 
Eclipse Way
Eclipse WayEclipse Way
Eclipse Way
 
Orion Introduction
Orion IntroductionOrion Introduction
Orion Introduction
 
What's new in Juno
What's new in JunoWhat's new in Juno
What's new in Juno
 
Git migration - Lessons learned
Git migration - Lessons learnedGit migration - Lessons learned
Git migration - Lessons learned
 
Equinox/p2 - Getting started with Equinox/p2
Equinox/p2 - Getting started with Equinox/p2Equinox/p2 - Getting started with Equinox/p2
Equinox/p2 - Getting started with Equinox/p2
 
EGit - Eclipse plug-in for git
EGit - Eclipse plug-in for gitEGit - Eclipse plug-in for git
EGit - Eclipse plug-in for git
 

Último

Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 

Último (20)

Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 

ABC of Platform Workspace API Guide

  • 1. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. | 2008-03-17 ABC of Platform Workspace Szymon Brandys Tomasz Zarna IBM Krakow Software Lab
  • 2. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Introduction • Workspace components  Resources  Compare  Team  CVS
  • 3. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Resources overview • An essential plug-in for Eclipse IDE applications is the resources plug-in (named org.eclipse.core.resources). • The resources plug-in provides services for accessing the projects, folders, and files that a user is working on. • The resources plug-in provides services for managing meta-data associated with resources (Markers: breakpoints, tasks, bookmarks, etc and Properties: arbitrary objects associated with resources)
  • 4. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Compare, Team and CVS overview • Compare  comparison of alternate states of a file system • Team  repository tooling integration into Eclipse • CVS  implementation of a CVS client
  • 5. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Agenda • Resources  Workspace  Resources  Properties  Preferences  Content types  Linked resources  Markers  Natures  Builders  Alternate file systems  Demo • Team/Compare  Repository Integration Framwork  Compare Framework  Demo • Summary and questions
  • 6. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Workspace • Workspace is a central hub for user’s files • The workspace contains a collection of resources. From the user perspective there are three different types of resources: projects, folders, files. Resources are organized in a tree. • The resources plug-in provides APIs for creating, navigating, and manipulating resources in a workspace. The workbench uses these APIs to provide this functionality to the user. Your plug-in can also use these APIs. • Derived resources are resources that are not original data, and can be recreated from their source files. It is common for derived files to be excluded from certain kinds of processing.
  • 7. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Resources API © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.
  • 8. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Some useful tools See the modules in dev.eclipse.org repository org.eclipse.core.tools org.eclipse.core.tools.resources
  • 9. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Basic plug-in Dependency to org.eclipse.core.runtime Content types Dependency to org.eclipse.core.resources Resource operations Builder framework Natures Dependency to org.eclipse.core.filesystem EFS
  • 10. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Properties Properties can be used to store meta-information about the resource. This mechanism can be used in user plug-ins to hold information specific for that plug-in. When a resource is deleted, its properties are deleted too. There are two kinds of properties • Session properties  allow your plug-ins to easily cache information about a resource in key-value pairs  the values are arbitrary objects  these properties are maintained in memory and lost when a resource is deleted from the workspace, or when the project or workspace is closed • Persistent properties  store information on disc in the workspace metadata  the value of a persistent property is an arbitrary string  the strings are intended to be short (under 2KB)  Properties are maintained across platform shutdown and restart To manipulate properties API is provided (see IResource class)
  • 11. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Project preferences • Preferences in Eclipse (short overview) Eclipse provide the infrastructure for defining and storing preferences with different scopes and org.eclipse.core.runtime.preferences extension can be used to define additional scopes for preferences. Preferences typically map to settings controlled by the user on the Preferences page, although this is not required by the underlying infrastructure. Plug-in preferences are key/value pairs, where the key describes the name of the preference, and the value is one of several different types (boolean, double, float, int, long, or string). Preferences can be stored and retrieved by the platform from the file system. The exact location of the saved preferences depends upon the scope of the preference. • The platform resources plug-in defines its own preference scope for projects. Project-scoped preferences are stored in a file located inside the project. • Using project scope preference
  • 12. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Content types • What is content type? • There are some features of Eclipse that are content-sensitive, such as automatic encoding determination, editor selection, and menu contributions. • The content type registry is extensible so plug-ins can contribute new content type definitions. • How to define new content type © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.
  • 13. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Linked resources Linked resources are provided so that files and folders inside a project can be stored in a file system outside of the project's location. © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.
  • 14. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Markers • What is Marker? A marker is an extra note stuck to a resource. On the marker you can record information about a problem or a task to be done. • How to manipulate markers? • How to add new marker type Plug-ins can declare their own marker types using the org.eclipse.core.resources.markers extension point. © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.
  • 15. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Markers (subtypes) © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.
  • 16. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Natures • Project natures allow to mark a project as a specific kind of project. This mechanism can be used to add a specific behaviour to projects. • A project can have more than one nature. However, when you define a project nature, you can define special constraints for the nature Constraints:  one-of-nature  requires-nature • Plug-ins can contribute implementations for natures using the org.eclipse.core.resources.natures extension point and supplying a class which implements IProjectNature © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.
  • 17. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Natures – why use them? • Configure and deconfigure when a nature is added/removed to a project (oportunity to add additional attributes to projest. Modify its metadata, add builders) • propertyPages and popupMenus have filter mechanism which recognizes natures
  • 18. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Linked resources and natures What if a plug-in is not able to handle linked resources? © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.
  • 19. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Content types and natures Natures can declare affinity with arbitrary content types, affecting the way content type determination happens for files in the workspace. In case of conflicts, the content type having affinity with any of the natures configured for the corresponding project will be chosen. © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.
  • 20. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Builders • An incremental project builder is an object that manipulates the resources in a project in a particular way. Builders can apply a transformation on resources. Resources created by a builder are typically marked as derived resources. • From an API point of view, the platform defines two basic types of builds:  A full build  An incremental build • Plug-ins can contribute implementations for builder using the org.eclipse.core.resources.builders extension point and supplying a class which extends IncrementalProjectBuilder.
  • 21. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Builders and UI
  • 22. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Alternate file systems • What is EFS? EFS (The Eclipse FileSystem) is an abstract filesystem API that allows to work with other filesystems e.g. FTP, zip files, in-memory filesystem, and even CVS. • File system providers By default, the org.eclipse.core.filesystem plug-in only includes a file system implementation for the local file system. Plug-ins can contribute implementations for other file systems using the org.eclipse.core.filesystem.filesystems extension point. File system providers must provide subclasses of FileStore and FileSystem. • UI support for EFS There are several places in the UI where the user can select file system, e.g. wizards. The UI support for EFS can be added via the org.eclipse.ui.ide.fileSystemSupport extension point. The class attribute of these schema must be a org.eclipse.ui.ide.fileSystem.FileSystemContributor which is used to supply validation and browsing of the other file systems. • Additional resources on EFS http://wiki.eclipse.org/index.php/EFS © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.
  • 23. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Demo
  • 24. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Additional info and details • Eclipse SDK Help  Platform Plug-in Developer Guide > Programmer’s Guide > Resource Overview  Platform Plug-in Developer Guide > Programmer’s Guide > Advanced Resource Concepts • Examples  org.eclipse.ui.examples.filesystem
  • 25. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Overview • The Repository Integration Framework • The Compare Framework • Demo
  • 26. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Repository Integration Framework • Goal  Integrate the workflow that your repository users know with the concepts defined in the workbench (not just API) • Example  The CVS client as a case study for integrating a team provider with the platform
  • 27. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Repository Provider • Define a RepositoryProvider  org.eclipse.team.core.repository  Subclass org.eclipse.team.core.RepositoryProvider • Provide a configuration wizard for sharing projects  org.eclipse.team.ui.configurationWizard
  • 28. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Functionality in a resource’s menu • Add actions to the Team menu  org.eclipse.ui.popupMenus
  • 29. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Decorate resources • Decorate resources with team specific information  org.eclipse.ui.decorators  org.eclipse.team.ui.teamDecorators
  • 30. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Views • Provide customized view with team specific information  CVS Editors  CVS Repositories  History  Synchronize • org.eclipse.ui.views
  • 31. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Perspectives • Team oriented perspective  org.eclipse.ui.perspectives
  • 32. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Wizards • Import/Export  org.eclipse.ui.importWizards  org.eclipse.ui.exportWizards • New  org.eclipse.ui.newWizards • Share  org.eclipse.team.ui.configurationWizards • Synchronize  org.eclipse.ui.synchornizeWizards
  • 33. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Preferences • org.eclipse.ui.preferencePages • Category: org.eclipse.team.ui.TeamPreferences
  • 34. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Help
  • 35. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Additional info and details • Eclipse SDK Help  Platform Plug-in Developer Guide > Team Support > Rich Team Integration  http://help.eclipse.org/stable/index.jsp?topic=/org.eclipse.platform.do • Examples:  org.eclipse.team.examples.filesystem  org.eclipse.team.cvs.* • Repository projects supporting Eclipse  http://www.eclipse.org/community/team.php
  • 36. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. The Compare Framework • What is the purpose of the Compare framework?  Support comparison of alternate states of a file system or data store • What does the Compare framework provide?  API to define the input to a comparison  Extensions for associating viewers with input types  Containers to host comparisons in the UI
  • 37. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Overview of Compare Architecture Compare Container File System Repository Database Compare Input Compare Viewers JDT rightleft ancestor Clients EMF Model Providers
  • 38. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Compare/Merge viewers • A simple text merge viewer and the JDT merge viewer
  • 39. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. How to create the simplest compare editor? • Ingredients:  A CompareItem that implements  ITypedElement for name, image and content type of the object  IModificationDate for timestamp  IStreamContentAccessor to supply the content  CompareEditorInput subclass  DiffNode computed in a CompareEditorInput subclass  To specify which of the panes is editable use CompareConfiguration  An action to open the editor  A contribution in org.eclipse.ui.popupMenus extension point
  • 40. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. The input and the action © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.
  • 41. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. The item and the popup menu entry © Copyright 2008 IBM Corp. All rights reserved. This source code is made available under the terms of the Eclipse Public License, v1.0.
  • 42. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. The result
  • 43. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. How do I provide a structure merge viewer? • Add an extension of structureMergeViewer  Provide instance or subclass of StructureDiffViewer • Add an extension of structureCreator  Provide a instance of IStructureCreator  Provides the structure of a single element (e.g. file) i.e. a tree representation of the element Nodes are subclasses of DocumentRangeNode Need a unique type (“java2” for java)  Also provides API to write changes back to the element  Subclass StructureCreator to be file buffer aware  Viewer uses the differencing engine to create a tree representation of the differences
  • 44. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. The Panes of a Compare Editor Input
  • 45. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. The Panes of the Apply Patch wizard
  • 46. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. The Ancestor pane in the Apply Patch wizard
  • 47. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Demo
  • 48. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Additional info and details • Eclipse SDK Help  Platform Plug-in Developer Guide > Programmer’s Guide > Compare support • Examples  org.eclipse.compare.examples  org.eclipse.compare.examples.xml
  • 49. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Web resources and contact • Web  http://www.eclipse.org  http://wiki.eclipse.org/Workspace_Team  http://polishineclipse.blogspot.com • Repository  :pserver:anonymous@dev.eclipse.org:/cvsroot/eclipse • IRC:  #eclipse, #eclipse-dev  SzymonB, z4z4 • Mail:  Szymon.Brandys@pl.ibm.com  Tomasz.Zarna@pl.ibm.com
  • 50. ABC of Platform Workspace | Copyright © IBM Corp., 2008. All rights reserved. Source code in this presentation is made available under the EPL, v1.0, remainder of the presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. Legal Notice  IBM and the IBM logo are trademarks or registered trademarks of IBM Corporation, in the United States, other countries or both.  Java and all Java-based marks, among others, are trademarks or registered trademarks of Sun Microsystems in the United States, other countries or both.  Eclipse and the Eclipse logo are trademarks of Eclipse Foundation, Inc.  Other company, product and service names may be trademarks or service marks of others.