SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
OPC 17 MTU PRE ECL 02 A
Lisboa JUG / Eclipse Meetup
10 April 2017
Table of contents
Introduction 5
I - Presentation 7
II - Eclipse Eco system 9
III - Eclipse IDE 15
IV - OSGi 17
V - Eclipse Architecture 23
VI - Modeling Projects overview 29
VII - Conclusion 41
Lisboa JUG, Eclipse Overview, 10th
of April 2017
3
Introduction
This talk is about :
➢ Eclipse Foundation
➢ Eclipse IDE
➢ OSGi Architecture
➢ Eclipse RCP Architecture
➢ Modeling projects
The goals of the talk are :
➢ to give you information about Eclipse projects
➢ to give you ideas to enhance your software development factory
➢ to start discussion around these technologies
Lisboa JUG, Eclipse Overview, 10th
of April 2017
5
I - Presentation
I
OPCoach
Image 1
➢ Eclipse Training : RCP, E4, Modeling, Build, given in French, English and ... Spanish
➢ Eclipse Consulting
➢ Recruitment service to link companies and job applicants
➢ Web site : http://www.opcoach.com/en1
➢ Twitter : @OPCoach_Eclipse
1 - http://www.opcoach.com/en
Lisboa JUG, Eclipse Overview, 10th
of April 2017
7
II - Eclipse Eco system
II
Eclipse Eco System
➢ Foundation and goal
➢ Some figures
➢ Different groups
Eclipse Foundation
Goals :
➢ Providing a governance for Eclipse eco system:
➢ managing projects
➢ managing members
➢ managing groups
➢ Hosting projects
➢ Promoting the Eclipse technologies and open source software
➢ Helping members and others to make business with Eclipse
➢ Organizing conferences
Structure:
➢ The Eclipse foundation is located in Ottawa and in Europe
➢ It is an independant organization founded by the members
Lisboa JUG, Eclipse Overview, 10th
of April 2017
9
Some History
Some figures
➢ 300 projects (46 new in the past 12 months)
➢ 130 MLOC/year code change velocity
➢ >1 400 committers
➢ >5 million active users of Eclipse IDE
➢ 1.5 million downloads/month (average)
➢ 2 million unique visitors/month
➢ Leading IDE in Java, C/C++, PHP, ...
➢ >$5.0 million annual budget
➢ >240 members (13 strategic)
➢ ~30 staff
➢ >50 events per year
➢ including 4 EclipseCon major events (US, France, Germany, India)
The Eclipse Secret
➢ Eclipse is the industry's best model for vendor-neutral collaboration on innovation
➢ Industry collaboration requires:
➢ Licensing model for sharing co-developed innovation
➢ IP management to maximize commercialization opportunities
➢ Project model for coordinating investments and activities
➢ Governance model to ensure a level playing field for all participants
➢ Eclipse gives you these “out of the box”
Lisboa JUG, Eclipse Overview, 10th
of April 2017
10
Members
Strategic Members
Lisboa JUG, Eclipse Overview, 10th
of April 2017
11
Eclipse groups
Eclipse foundation leads several technical groups
Science Group
PolarSys Group
Lisboa JUG, Eclipse Overview, 10th
of April 2017
12
IOT Group
Lisboa JUG, Eclipse Overview, 10th
of April 2017
13
Location Tech Group
Lisboa JUG, Eclipse Overview, 10th
of April 2017
14
III - Eclipse IDE
III
The different versions
Image 2
Strengths
➢ RCP open architecture
➢ Adopted by all software vendors
➢ Rich environment and tools
➢ Lot of documentation
➢ Free
➢ Portable to all OS
➢ Community (fondation, members, ...)
➢ Stable and regular deliveries (1/year)
➢ Eclipse Public License (EPL)
➢ OSGi based architecture
Lisboa JUG, Eclipse Overview, 10th
of April 2017
15
IV - OSGi
IV
Open Services Gateway initiative (OSGi)
Overview
OSGi... why ??
Java seems to be modular
➢ packages
➢ classes
➢ methods
➢ different jar files
All is well separated during development.
But what happens when you launch your java program ?
The jar hell
➢ Jar files do not have a version (it is only for documentation)
➢ Jar files are not bound together
➢ We have to know all the dependencies
➢ Classpath must be set manually
➢ We have to deal with : LinkageError, ClassNotFoundException, NoClassDefFoundError
➢ Two jar releases can not be mixed
➢ Managing the jar files becomes tough, this is the jar hell
Launch Java
➢ The JVM starts with a single class loader.
➢ The 'modularity' is dissolved.
➢ Everything must be configured manually
Lisboa JUG, Eclipse Overview, 10th
of April 2017
17
Image 3
Updating the application
➢ The mail.jar library can not send attached files
➢ Another component needs to send attached files
➢ Should we update all dependencies ?
Lisboa JUG, Eclipse Overview, 10th
of April 2017
18
➢ OSGi will be a solution
➢ OSGi simplifies modularity and evolutions of your application
Presentation
➢ OSGi defines the 'Bundle' concept
➢ OSGi manages versions of bundles
➢ OSGi manages bundles activation
➢ OSGi manages services (Service Registry)
OSGi Framework
OSGI defines a model to manage java software modules
OSGi is a specification managed by the OSGi Alliance : http://www.osgi.org2
It has been started in 1999 for Java embedded devices
2 - http://www.osgi.org
Lisboa JUG, Eclipse Overview, 10th
of April 2017
19
Relations with other bundles
➢ The bundle is defined in the META-INF/MANIFEST.MF file
➢ The bundle may depend on other bundles
➢ optionaly
➢ depending on version numbers
➢ The bundle exports the packages it wants to make visible
➢ Each bundle has its own classloader
➢ The classpath is computed automaticaly -> No more jar hell !
Image 4 Bundle relations
Remark : some of these concepts are redefined in the Java 9 Jigsaw Projects !
Dynamic behavior
The lifecycle of the bundle is managed by the OSGi engine:
➢ It can be started when necessary
➢ It can be stopped at any time
➢ It can be replaced by a more recent version
➢ Two different versions can coexist
➢ New services can be published during runtime
Lisboa JUG, Eclipse Overview, 10th
of April 2017
20
Running an OSGi application
Image 5 OSGi Engine
Sample OSGi Architecture
Image 6 OSGi architecture
Lisboa JUG, Eclipse Overview, 10th
of April 2017
21
V - Eclipse Architecture
V
Eclipse 3 Architecture
➢ The Eclipse architecture is based on the notion of plug-in.
➢ A plug-in is a software component element
➢ A plug-in is like an OSGi bundle
Image 7 Eclipse 3 Architecture
Plug-in vs Bundle
The plug-in defines two additional concepts on a bundle:
➢ Extension point : Defines a model of a concept that the plugin can handle (a menu, a
driver, a business concept for you...).
➢ Extension : Defines an instance for the model described by the extension point (the
navigator view, the driver Z, your business implementation...)
Eclipse 4 Architecture
➢ In 2012, the Eclipse foundation provided a new RCP runtime (E4)
➢ This new architecture is fully compliant with the Eclipse 3 concepts
➢ The major part of Eclipse is still written using Eclipse 3
➢ Basically E4 provides;
Lisboa JUG, Eclipse Overview, 10th
of April 2017
23
➢ an application model
➢ a UI renderer (SWT or Java Fx)
➢ Injection
➢ CSS
➢ Spies
➢ A compatibility layer to be compliant with Eclipse 3 concepts
➢ This new runtime is based on OSGi and distributed under EPL license
Image 8 e4 Architecture
Lisboa JUG, Eclipse Overview, 10th
of April 2017
24
UI Model
Any user interface contains always the same elements:
views, perspectives, commands :
Image 9 UI anatomy
Lisboa JUG, Eclipse Overview, 10th
of April 2017
25
In Eclipse 4, these elements are defined in application model :
UI in application model
The application model
➢ It is defined using Modeling technologies
➢ It is a live model
➢ read when application starts
➢ saved when application ends
➢ UI Agnostic
➢ Rendered by a renderer (SWT or JavaFx)
Lisboa JUG, Eclipse Overview, 10th
of April 2017
26
Image 10 Application Model
E4 Injection
Eclipse 4 provides a specific injector using standard annotations
➢ @Inject, @PostContruct, ...
This injector is hierarchical:
➢ the values in context are associated to a level in the UI
➢ a view has its own values and can also get values from parent contexts
This injector is dynamic when a value changes:
➢ an injected field is automaticaly updated
➢ an injected method is automaticaly re-invoked on parameter's value changes
Remote Application Platform (RAP)
➢ RAP is used to launch an RCP application in a web browser.
➢ RAP uses a specific SWT implementation
➢ RAP uses JSON to communicate between client and server
Lisboa JUG, Eclipse Overview, 10th
of April 2017
27
Image 11 RCP and RAP
➢ RAP allows you to write your application once for desktop and web.
Lisboa JUG, Eclipse Overview, 10th
of April 2017
28
VI - Modeling Projects
overview
VI
Modeling Projects
The power of models for your productivity
Overview
This part is about Modeling projects
It will show you how you can increase your software productivity
Modeling project is based on RCP architecture
They can be used in two ways:
➢ MDA: Model Driven Application:
➢ your model is used at runtime
➢ MDD: Model Driven Development:
➢ your model is used by your tooling.
Map
Image 12
What is EMF?
➢ EMF is the core of the modeling project.
➢ Basic modeling tools
➢ a modeling language (Ecore)
Lisboa JUG, Eclipse Overview, 10th
of April 2017
29
➢ default generators (bean, editor)
Image 13 EMF in the Modeling project
Modeling steps
Lisboa JUG, Eclipse Overview, 10th
of April 2017
30
Image 14 EMF in the development process
model / meta model
Model and meta model are distinguished according to domain
Image 15 Model and Meta model
Tree editor
➢ The tree editor is the default editor.
➢ Properties are edited in the Eclipse's default property view
Lisboa JUG, Eclipse Overview, 10th
of April 2017
31
Image 16 Ecore Tree Editor
Lisboa JUG, Eclipse Overview, 10th
of April 2017
32
Graphical Editor
➢ The graphical editor is available in the eclipse modeling delivery :
Image 17 Ecore tools
Model to Text (M2T)
How to use 'model to text' generators for your productivity
Once your model is defined, you can create code generators
Lisboa JUG, Eclipse Overview, 10th
of April 2017
33
M2T Big picture
Xtend language
➢ Xtend is a simplified Java language which is generated into real Java code
➢ It can also generate text code
➢ This is a really nice and easy language to learn.
Lisboa JUG, Eclipse Overview, 10th
of April 2017
34
Image 18 Xtend generator sample
How can you use it ?
Create a meta model of your system:
➢ satellite description
➢ system description
➢ whatever description
Create a model of your business:
➢ the ABC satellite
➢ the ABC system
Write your code generator for your ABC system:
➢ it will be compliant with your meta-model/model
➢ produce the boilerplate code which is cumbersome to write
➢ SQL mapping
➢ Web side mapping (php, angular, node.js..)
➢ Your framework compliant code mapping
➢ ...
Remark : if you describe more than once the same information generate it from
a model !
Lisboa JUG, Eclipse Overview, 10th
of April 2017
35
Model Edition
By default, the EMF framework can generates a Tree oriented editor for your model.
But it can be painful to use
You can also create your specific editor using:
➢ sirius for graphical editors
➢ Xtext for textual editors
Graphical model editors
➢ Use the model editors when your model can be graphicaly displayed
➢ Then bind your model to your code generator (MDD approach)
➢ Provide your model editor in your application (MDA approach)
➢ Sirius is a tool to describe graphical representation for a model
➢ diagram : nodes and links
➢ table : lines of instances with properties in columns
➢ matrix : lines and columns of instances with values in cells
➢ It allows to get very quickly a graphical editor for a model
➢ The editor can be used directly without code generation
Lisboa JUG, Eclipse Overview, 10th
of April 2017
36
Sirius overview
Remark : the ecore graphical model editor is written using Sirius
Textual model editors
➢ Use textual model editors when you want to provide a DSL text editor
➢ Bind it to your code generator automaticaly (MDD approach)
➢ Provide your powerful text editor to your customer (MDA approach)
Lisboa JUG, Eclipse Overview, 10th
of April 2017
37
Xtext
➢ Eclipse project to generate a text editor for a model
➢ 'Language IDE framework'
➢ Generates the editor from a grammar and an Ecore model
Xtext website: http://www.eclipse.org/Xtext/ 3
How to use it ?
➢ Follow the 5 mn and 30 mn tutorial.
➢ It can also be integrated with IntelliJ
➢ If it is relevant, you can bind your code generator
➢ Describe once and generate code in different languages
Xtext editors features
All editors generated with Xtext have the following features for free:
➢ syntax highlighting
➢ auto completion
➢ search indexes
➢ validation and quickfixes
➢ errors and warnings management
➢ templates
➢ outline
➢ definition of hyperlink (cross languages)
➢ binding with an optional Xtend generator
3 - http://www.eclipse.org/Xtext/
Lisboa JUG, Eclipse Overview, 10th
of April 2017
38
Remark : using XText is a way to get a 'Java like' editor but for your own business
language !
Graphic visualization of the grammar
Image 19 XText Syntax Graph
Lisboa JUG, Eclipse Overview, 10th
of April 2017
39
Generated editor
Image 20 Sample editor
Customize your editor
With Xtext it is really easy (and fun !) to add your:
➢ quickfixes (@Fix annotation)
➢ errors and warnings (@Check annotation)
➢ auto completion (textual or semantic)
➢ text formatter
➢ code generator (triggered on save)
➢ templates (compliant with your syntax)
Lisboa JUG, Eclipse Overview, 10th
of April 2017
40
VII - Conclusion
VII
Conclusion
The Eclipse technologies can help you to :
➢ build your own tooling to increase your productivity
➢ make modular java applications without license constraints
➢ use for free so many components
How to be involved ?
You can :
➢ Ask questions to the community using forum
➢ Use the bugzilla to open/find bugs
➢ Become a committer and enhance your resume
➢ Attend to Eclipse conferences
➢ Create your integrated tooling in the most used IDE on the market
How can you learn this ?
➢ By yourself with google and the famous vogella web site
➢ Buy an Eclipse book
➢ Or contact me for :
➢ A taylor made training
➢ Order a consulting mission (on site or remotely).
➢ Slides of this presentation are available
Thank you
Any questions ?
Lisboa JUG, Eclipse Overview, 10th
of April 2017
41

Weitere ähnliche Inhalte

Was ist angesagt?

Introduce yourself to java 17
Introduce yourself to java 17Introduce yourself to java 17
Introduce yourself to java 17ankitbhandari32
 
MySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinarMySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinarAndrew Morgan
 
Systems on the Edge—Your Stepping Stones into Oracle Public Cloud and the Paa...
Systems on the Edge—Your Stepping Stones into Oracle Public Cloud and the Paa...Systems on the Edge—Your Stepping Stones into Oracle Public Cloud and the Paa...
Systems on the Edge—Your Stepping Stones into Oracle Public Cloud and the Paa...Lucas Jellema
 
Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.Oracle Developers
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemBruno Borges
 
12-factor applications using WAS Liberty, IBM Bluemix, and Docker
12-factor applications using WAS Liberty, IBM Bluemix, and Docker12-factor applications using WAS Liberty, IBM Bluemix, and Docker
12-factor applications using WAS Liberty, IBM Bluemix, and DockerErin Schnabel
 
Grails At Linked
Grails At LinkedGrails At Linked
Grails At LinkedLinkedIn
 
Oracle Ravello Presentation 7Dec16 v1
Oracle Ravello Presentation 7Dec16 v1Oracle Ravello Presentation 7Dec16 v1
Oracle Ravello Presentation 7Dec16 v1Kurt Liu
 
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...Revelation Technologies
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudBruno Borges
 
AMIS 25: Moving Integration to the Cloud
AMIS 25: Moving Integration to the CloudAMIS 25: Moving Integration to the Cloud
AMIS 25: Moving Integration to the CloudMatt Wright
 
Oracle Developer Cloud - 소개 (신기능 포함)
Oracle Developer Cloud - 소개 (신기능 포함)Oracle Developer Cloud - 소개 (신기능 포함)
Oracle Developer Cloud - 소개 (신기능 포함)Mee Nam Lee
 
Powering Business Transformation with Oracle Exadata: a Capgemini Case Study
Powering Business Transformation with Oracle Exadata: a Capgemini Case StudyPowering Business Transformation with Oracle Exadata: a Capgemini Case Study
Powering Business Transformation with Oracle Exadata: a Capgemini Case StudyCapgemini
 
Apex atp customer_presentation_wwc march 2019
Apex atp customer_presentation_wwc march 2019Apex atp customer_presentation_wwc march 2019
Apex atp customer_presentation_wwc march 2019Oracle Developers
 
Trends and future of java
Trends and future of javaTrends and future of java
Trends and future of javaCsaba Toth
 
DEVNET-1147 Energizing Your Career with Cloud Technologies
DEVNET-1147	Energizing Your Career with Cloud TechnologiesDEVNET-1147	Energizing Your Career with Cloud Technologies
DEVNET-1147 Energizing Your Career with Cloud TechnologiesCisco DevNet
 
Running Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud InfrastructureRunning Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud InfrastructureOracle Developers
 
Oracle OpenWorld - A quick take on all 22 press releases of Day #1 - #3
Oracle OpenWorld - A quick take on all 22 press releases of Day #1 - #3Oracle OpenWorld - A quick take on all 22 press releases of Day #1 - #3
Oracle OpenWorld - A quick take on all 22 press releases of Day #1 - #3Holger Mueller
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemBruno Borges
 
Current Trends in Java Technology
Current Trends in Java TechnologyCurrent Trends in Java Technology
Current Trends in Java TechnologyMindfire LLC
 

Was ist angesagt? (20)

Introduce yourself to java 17
Introduce yourself to java 17Introduce yourself to java 17
Introduce yourself to java 17
 
MySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinarMySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinar
 
Systems on the Edge—Your Stepping Stones into Oracle Public Cloud and the Paa...
Systems on the Edge—Your Stepping Stones into Oracle Public Cloud and the Paa...Systems on the Edge—Your Stepping Stones into Oracle Public Cloud and the Paa...
Systems on the Edge—Your Stepping Stones into Oracle Public Cloud and the Paa...
 
Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.Building Cloud Native Applications with Oracle Autonomous Database.
Building Cloud Native Applications with Oracle Autonomous Database.
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
 
12-factor applications using WAS Liberty, IBM Bluemix, and Docker
12-factor applications using WAS Liberty, IBM Bluemix, and Docker12-factor applications using WAS Liberty, IBM Bluemix, and Docker
12-factor applications using WAS Liberty, IBM Bluemix, and Docker
 
Grails At Linked
Grails At LinkedGrails At Linked
Grails At Linked
 
Oracle Ravello Presentation 7Dec16 v1
Oracle Ravello Presentation 7Dec16 v1Oracle Ravello Presentation 7Dec16 v1
Oracle Ravello Presentation 7Dec16 v1
 
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
Compute Cloud Performance Showdown: 18 Months Later (OCI, AWS, IBM Cloud, GCP...
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The Cloud
 
AMIS 25: Moving Integration to the Cloud
AMIS 25: Moving Integration to the CloudAMIS 25: Moving Integration to the Cloud
AMIS 25: Moving Integration to the Cloud
 
Oracle Developer Cloud - 소개 (신기능 포함)
Oracle Developer Cloud - 소개 (신기능 포함)Oracle Developer Cloud - 소개 (신기능 포함)
Oracle Developer Cloud - 소개 (신기능 포함)
 
Powering Business Transformation with Oracle Exadata: a Capgemini Case Study
Powering Business Transformation with Oracle Exadata: a Capgemini Case StudyPowering Business Transformation with Oracle Exadata: a Capgemini Case Study
Powering Business Transformation with Oracle Exadata: a Capgemini Case Study
 
Apex atp customer_presentation_wwc march 2019
Apex atp customer_presentation_wwc march 2019Apex atp customer_presentation_wwc march 2019
Apex atp customer_presentation_wwc march 2019
 
Trends and future of java
Trends and future of javaTrends and future of java
Trends and future of java
 
DEVNET-1147 Energizing Your Career with Cloud Technologies
DEVNET-1147	Energizing Your Career with Cloud TechnologiesDEVNET-1147	Energizing Your Career with Cloud Technologies
DEVNET-1147 Energizing Your Career with Cloud Technologies
 
Running Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud InfrastructureRunning Kubernetes Workloads on Oracle Cloud Infrastructure
Running Kubernetes Workloads on Oracle Cloud Infrastructure
 
Oracle OpenWorld - A quick take on all 22 press releases of Day #1 - #3
Oracle OpenWorld - A quick take on all 22 press releases of Day #1 - #3Oracle OpenWorld - A quick take on all 22 press releases of Day #1 - #3
Oracle OpenWorld - A quick take on all 22 press releases of Day #1 - #3
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
 
Current Trends in Java Technology
Current Trends in Java TechnologyCurrent Trends in Java Technology
Current Trends in Java Technology
 

Ähnlich wie Overview of Eclipse technologies

Eclipse Training - Introduction
Eclipse Training - IntroductionEclipse Training - Introduction
Eclipse Training - IntroductionLuca D'Onofrio
 
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application PlatformEclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application PlatformTonny Madsen
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Nuxeo
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview Lars Vogel
 
Os Tibbittstutorial
Os TibbittstutorialOs Tibbittstutorial
Os Tibbittstutorialoscon2007
 
IDA - Eclipse Workshop II (In Danish)
IDA - Eclipse Workshop II (In Danish)IDA - Eclipse Workshop II (In Danish)
IDA - Eclipse Workshop II (In Danish)Tonny Madsen
 
What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !Cédric Brun
 
Hithhiker guide to eclipse presentation frameworks galaxy
Hithhiker guide to eclipse presentation frameworks galaxyHithhiker guide to eclipse presentation frameworks galaxy
Hithhiker guide to eclipse presentation frameworks galaxyglefur
 
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...Nuxeo
 
Eclipse Training - RCP & Industrialization
Eclipse Training - RCP & IndustrializationEclipse Training - RCP & Industrialization
Eclipse Training - RCP & IndustrializationLuca D'Onofrio
 
Eclipse IDE and Platform news on Fosdem 2020
Eclipse IDE and Platform news on Fosdem 2020Eclipse IDE and Platform news on Fosdem 2020
Eclipse IDE and Platform news on Fosdem 2020Lars Vogel
 
"Eclipse Application Development" at GNUnify 07
"Eclipse Application Development" at GNUnify 07"Eclipse Application Development" at GNUnify 07
"Eclipse Application Development" at GNUnify 07KetanPadegaonkar
 
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)Mickael Istria
 
javagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformjavagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformTonny Madsen
 
DemoCamp Budapest 2016 - Introdcution
DemoCamp Budapest 2016 - IntrodcutionDemoCamp Budapest 2016 - Introdcution
DemoCamp Budapest 2016 - IntrodcutionÁkos Horváth
 
Eclipse RCP Overview @ Rheinjug
Eclipse RCP Overview @ RheinjugEclipse RCP Overview @ Rheinjug
Eclipse RCP Overview @ RheinjugLars Vogel
 
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling SocietyEclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Societymelbats
 
Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1Manoj Ellappan
 
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxDeploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxJamie Coleman
 
Using DC/OS for Continuous Delivery - DevPulseCon 2017
Using DC/OS for Continuous Delivery - DevPulseCon 2017Using DC/OS for Continuous Delivery - DevPulseCon 2017
Using DC/OS for Continuous Delivery - DevPulseCon 2017pleia2
 

Ähnlich wie Overview of Eclipse technologies (20)

Eclipse Training - Introduction
Eclipse Training - IntroductionEclipse Training - Introduction
Eclipse Training - Introduction
 
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application PlatformEclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
Eclipse Banking Day in Copenhagen - Eclipse RCP as an Application Platform
 
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
Creating Large Scale Software Platforms with OSGi and an Extension Point Mode...
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
 
Os Tibbittstutorial
Os TibbittstutorialOs Tibbittstutorial
Os Tibbittstutorial
 
IDA - Eclipse Workshop II (In Danish)
IDA - Eclipse Workshop II (In Danish)IDA - Eclipse Workshop II (In Danish)
IDA - Eclipse Workshop II (In Danish)
 
What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !What the heck is Eclipse Modeling and why should you care !
What the heck is Eclipse Modeling and why should you care !
 
Hithhiker guide to eclipse presentation frameworks galaxy
Hithhiker guide to eclipse presentation frameworks galaxyHithhiker guide to eclipse presentation frameworks galaxy
Hithhiker guide to eclipse presentation frameworks galaxy
 
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
Leveraging OSGi-based Architecture, GWT, and Eclipse to build a large ajax-ba...
 
Eclipse Training - RCP & Industrialization
Eclipse Training - RCP & IndustrializationEclipse Training - RCP & Industrialization
Eclipse Training - RCP & Industrialization
 
Eclipse IDE and Platform news on Fosdem 2020
Eclipse IDE and Platform news on Fosdem 2020Eclipse IDE and Platform news on Fosdem 2020
Eclipse IDE and Platform news on Fosdem 2020
 
"Eclipse Application Development" at GNUnify 07
"Eclipse Application Development" at GNUnify 07"Eclipse Application Development" at GNUnify 07
"Eclipse Application Development" at GNUnify 07
 
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
 
javagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platformjavagruppen.dk - e4, the next generation Eclipse platform
javagruppen.dk - e4, the next generation Eclipse platform
 
DemoCamp Budapest 2016 - Introdcution
DemoCamp Budapest 2016 - IntrodcutionDemoCamp Budapest 2016 - Introdcution
DemoCamp Budapest 2016 - Introdcution
 
Eclipse RCP Overview @ Rheinjug
Eclipse RCP Overview @ RheinjugEclipse RCP Overview @ Rheinjug
Eclipse RCP Overview @ Rheinjug
 
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling SocietyEclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
Eclipse DemoCamp Toulouse 2017 - Mr. Robot : The modeling Society
 
Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1Basic iOS Training with SWIFT - Part 1
Basic iOS Training with SWIFT - Part 1
 
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptxDeploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
Deploy and Update Jakarta EE & MicroProfile applications with Paketo.pptx
 
Using DC/OS for Continuous Delivery - DevPulseCon 2017
Using DC/OS for Continuous Delivery - DevPulseCon 2017Using DC/OS for Continuous Delivery - DevPulseCon 2017
Using DC/OS for Continuous Delivery - DevPulseCon 2017
 

Mehr von PT.JUG

Putting Hypermedia Back in REST with JAX-RS
Putting Hypermedia Back in REST with JAX-RSPutting Hypermedia Back in REST with JAX-RS
Putting Hypermedia Back in REST with JAX-RSPT.JUG
 
Flame Graphs, uma (boa) alternativa para profiling de apps Java
Flame Graphs, uma (boa) alternativa para profiling de apps JavaFlame Graphs, uma (boa) alternativa para profiling de apps Java
Flame Graphs, uma (boa) alternativa para profiling de apps JavaPT.JUG
 
What's Coming in Java EE 8
What's Coming in Java EE 8What's Coming in Java EE 8
What's Coming in Java EE 8PT.JUG
 
An Introduction to Play 2 Framework
An Introduction to Play 2 FrameworkAn Introduction to Play 2 Framework
An Introduction to Play 2 FrameworkPT.JUG
 
JMockit & Hamcrest
JMockit & HamcrestJMockit & Hamcrest
JMockit & HamcrestPT.JUG
 
Apache Camel
Apache CamelApache Camel
Apache CamelPT.JUG
 
Using JPA applications in the era of NoSQL: Introducing Hibernate OGM
Using JPA applications in the era of NoSQL: Introducing Hibernate OGMUsing JPA applications in the era of NoSQL: Introducing Hibernate OGM
Using JPA applications in the era of NoSQL: Introducing Hibernate OGMPT.JUG
 
Introducing Infinispan
Introducing InfinispanIntroducing Infinispan
Introducing InfinispanPT.JUG
 
To SOA or not to SOA
To SOA or not to SOATo SOA or not to SOA
To SOA or not to SOAPT.JUG
 
Introduction to Grails Framework
Introduction to Grails FrameworkIntroduction to Grails Framework
Introduction to Grails FrameworkPT.JUG
 
Apresentação LifeRay
Apresentação LifeRayApresentação LifeRay
Apresentação LifeRayPT.JUG
 
Oracle Java Strategy Lg V3
Oracle Java Strategy Lg V3Oracle Java Strategy Lg V3
Oracle Java Strategy Lg V3PT.JUG
 
Scripting na JVM
Scripting na JVMScripting na JVM
Scripting na JVMPT.JUG
 
The tale of the Fénix architecture
The tale of the Fénix architectureThe tale of the Fénix architecture
The tale of the Fénix architecturePT.JUG
 
Lightweight Grids With Terracotta
Lightweight Grids With TerracottaLightweight Grids With Terracotta
Lightweight Grids With TerracottaPT.JUG
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web ToolkitPT.JUG
 
Developers Java: O que as empresas dizem que precisam mesmo mesmo
Developers Java: O que as empresas dizem que precisam mesmo mesmoDevelopers Java: O que as empresas dizem que precisam mesmo mesmo
Developers Java: O que as empresas dizem que precisam mesmo mesmoPT.JUG
 

Mehr von PT.JUG (17)

Putting Hypermedia Back in REST with JAX-RS
Putting Hypermedia Back in REST with JAX-RSPutting Hypermedia Back in REST with JAX-RS
Putting Hypermedia Back in REST with JAX-RS
 
Flame Graphs, uma (boa) alternativa para profiling de apps Java
Flame Graphs, uma (boa) alternativa para profiling de apps JavaFlame Graphs, uma (boa) alternativa para profiling de apps Java
Flame Graphs, uma (boa) alternativa para profiling de apps Java
 
What's Coming in Java EE 8
What's Coming in Java EE 8What's Coming in Java EE 8
What's Coming in Java EE 8
 
An Introduction to Play 2 Framework
An Introduction to Play 2 FrameworkAn Introduction to Play 2 Framework
An Introduction to Play 2 Framework
 
JMockit & Hamcrest
JMockit & HamcrestJMockit & Hamcrest
JMockit & Hamcrest
 
Apache Camel
Apache CamelApache Camel
Apache Camel
 
Using JPA applications in the era of NoSQL: Introducing Hibernate OGM
Using JPA applications in the era of NoSQL: Introducing Hibernate OGMUsing JPA applications in the era of NoSQL: Introducing Hibernate OGM
Using JPA applications in the era of NoSQL: Introducing Hibernate OGM
 
Introducing Infinispan
Introducing InfinispanIntroducing Infinispan
Introducing Infinispan
 
To SOA or not to SOA
To SOA or not to SOATo SOA or not to SOA
To SOA or not to SOA
 
Introduction to Grails Framework
Introduction to Grails FrameworkIntroduction to Grails Framework
Introduction to Grails Framework
 
Apresentação LifeRay
Apresentação LifeRayApresentação LifeRay
Apresentação LifeRay
 
Oracle Java Strategy Lg V3
Oracle Java Strategy Lg V3Oracle Java Strategy Lg V3
Oracle Java Strategy Lg V3
 
Scripting na JVM
Scripting na JVMScripting na JVM
Scripting na JVM
 
The tale of the Fénix architecture
The tale of the Fénix architectureThe tale of the Fénix architecture
The tale of the Fénix architecture
 
Lightweight Grids With Terracotta
Lightweight Grids With TerracottaLightweight Grids With Terracotta
Lightweight Grids With Terracotta
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Developers Java: O que as empresas dizem que precisam mesmo mesmo
Developers Java: O que as empresas dizem que precisam mesmo mesmoDevelopers Java: O que as empresas dizem que precisam mesmo mesmo
Developers Java: O que as empresas dizem que precisam mesmo mesmo
 

Kürzlich hochgeladen

Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Kürzlich hochgeladen (20)

Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

Overview of Eclipse technologies

  • 1. OPC 17 MTU PRE ECL 02 A Lisboa JUG / Eclipse Meetup 10 April 2017
  • 2.
  • 3. Table of contents Introduction 5 I - Presentation 7 II - Eclipse Eco system 9 III - Eclipse IDE 15 IV - OSGi 17 V - Eclipse Architecture 23 VI - Modeling Projects overview 29 VII - Conclusion 41 Lisboa JUG, Eclipse Overview, 10th of April 2017 3
  • 4.
  • 5. Introduction This talk is about : ➢ Eclipse Foundation ➢ Eclipse IDE ➢ OSGi Architecture ➢ Eclipse RCP Architecture ➢ Modeling projects The goals of the talk are : ➢ to give you information about Eclipse projects ➢ to give you ideas to enhance your software development factory ➢ to start discussion around these technologies Lisboa JUG, Eclipse Overview, 10th of April 2017 5
  • 6.
  • 7. I - Presentation I OPCoach Image 1 ➢ Eclipse Training : RCP, E4, Modeling, Build, given in French, English and ... Spanish ➢ Eclipse Consulting ➢ Recruitment service to link companies and job applicants ➢ Web site : http://www.opcoach.com/en1 ➢ Twitter : @OPCoach_Eclipse 1 - http://www.opcoach.com/en Lisboa JUG, Eclipse Overview, 10th of April 2017 7
  • 8.
  • 9. II - Eclipse Eco system II Eclipse Eco System ➢ Foundation and goal ➢ Some figures ➢ Different groups Eclipse Foundation Goals : ➢ Providing a governance for Eclipse eco system: ➢ managing projects ➢ managing members ➢ managing groups ➢ Hosting projects ➢ Promoting the Eclipse technologies and open source software ➢ Helping members and others to make business with Eclipse ➢ Organizing conferences Structure: ➢ The Eclipse foundation is located in Ottawa and in Europe ➢ It is an independant organization founded by the members Lisboa JUG, Eclipse Overview, 10th of April 2017 9
  • 10. Some History Some figures ➢ 300 projects (46 new in the past 12 months) ➢ 130 MLOC/year code change velocity ➢ >1 400 committers ➢ >5 million active users of Eclipse IDE ➢ 1.5 million downloads/month (average) ➢ 2 million unique visitors/month ➢ Leading IDE in Java, C/C++, PHP, ... ➢ >$5.0 million annual budget ➢ >240 members (13 strategic) ➢ ~30 staff ➢ >50 events per year ➢ including 4 EclipseCon major events (US, France, Germany, India) The Eclipse Secret ➢ Eclipse is the industry's best model for vendor-neutral collaboration on innovation ➢ Industry collaboration requires: ➢ Licensing model for sharing co-developed innovation ➢ IP management to maximize commercialization opportunities ➢ Project model for coordinating investments and activities ➢ Governance model to ensure a level playing field for all participants ➢ Eclipse gives you these “out of the box” Lisboa JUG, Eclipse Overview, 10th of April 2017 10
  • 11. Members Strategic Members Lisboa JUG, Eclipse Overview, 10th of April 2017 11
  • 12. Eclipse groups Eclipse foundation leads several technical groups Science Group PolarSys Group Lisboa JUG, Eclipse Overview, 10th of April 2017 12
  • 13. IOT Group Lisboa JUG, Eclipse Overview, 10th of April 2017 13
  • 14. Location Tech Group Lisboa JUG, Eclipse Overview, 10th of April 2017 14
  • 15. III - Eclipse IDE III The different versions Image 2 Strengths ➢ RCP open architecture ➢ Adopted by all software vendors ➢ Rich environment and tools ➢ Lot of documentation ➢ Free ➢ Portable to all OS ➢ Community (fondation, members, ...) ➢ Stable and regular deliveries (1/year) ➢ Eclipse Public License (EPL) ➢ OSGi based architecture Lisboa JUG, Eclipse Overview, 10th of April 2017 15
  • 16.
  • 17. IV - OSGi IV Open Services Gateway initiative (OSGi) Overview OSGi... why ?? Java seems to be modular ➢ packages ➢ classes ➢ methods ➢ different jar files All is well separated during development. But what happens when you launch your java program ? The jar hell ➢ Jar files do not have a version (it is only for documentation) ➢ Jar files are not bound together ➢ We have to know all the dependencies ➢ Classpath must be set manually ➢ We have to deal with : LinkageError, ClassNotFoundException, NoClassDefFoundError ➢ Two jar releases can not be mixed ➢ Managing the jar files becomes tough, this is the jar hell Launch Java ➢ The JVM starts with a single class loader. ➢ The 'modularity' is dissolved. ➢ Everything must be configured manually Lisboa JUG, Eclipse Overview, 10th of April 2017 17
  • 18. Image 3 Updating the application ➢ The mail.jar library can not send attached files ➢ Another component needs to send attached files ➢ Should we update all dependencies ? Lisboa JUG, Eclipse Overview, 10th of April 2017 18
  • 19. ➢ OSGi will be a solution ➢ OSGi simplifies modularity and evolutions of your application Presentation ➢ OSGi defines the 'Bundle' concept ➢ OSGi manages versions of bundles ➢ OSGi manages bundles activation ➢ OSGi manages services (Service Registry) OSGi Framework OSGI defines a model to manage java software modules OSGi is a specification managed by the OSGi Alliance : http://www.osgi.org2 It has been started in 1999 for Java embedded devices 2 - http://www.osgi.org Lisboa JUG, Eclipse Overview, 10th of April 2017 19
  • 20. Relations with other bundles ➢ The bundle is defined in the META-INF/MANIFEST.MF file ➢ The bundle may depend on other bundles ➢ optionaly ➢ depending on version numbers ➢ The bundle exports the packages it wants to make visible ➢ Each bundle has its own classloader ➢ The classpath is computed automaticaly -> No more jar hell ! Image 4 Bundle relations Remark : some of these concepts are redefined in the Java 9 Jigsaw Projects ! Dynamic behavior The lifecycle of the bundle is managed by the OSGi engine: ➢ It can be started when necessary ➢ It can be stopped at any time ➢ It can be replaced by a more recent version ➢ Two different versions can coexist ➢ New services can be published during runtime Lisboa JUG, Eclipse Overview, 10th of April 2017 20
  • 21. Running an OSGi application Image 5 OSGi Engine Sample OSGi Architecture Image 6 OSGi architecture Lisboa JUG, Eclipse Overview, 10th of April 2017 21
  • 22.
  • 23. V - Eclipse Architecture V Eclipse 3 Architecture ➢ The Eclipse architecture is based on the notion of plug-in. ➢ A plug-in is a software component element ➢ A plug-in is like an OSGi bundle Image 7 Eclipse 3 Architecture Plug-in vs Bundle The plug-in defines two additional concepts on a bundle: ➢ Extension point : Defines a model of a concept that the plugin can handle (a menu, a driver, a business concept for you...). ➢ Extension : Defines an instance for the model described by the extension point (the navigator view, the driver Z, your business implementation...) Eclipse 4 Architecture ➢ In 2012, the Eclipse foundation provided a new RCP runtime (E4) ➢ This new architecture is fully compliant with the Eclipse 3 concepts ➢ The major part of Eclipse is still written using Eclipse 3 ➢ Basically E4 provides; Lisboa JUG, Eclipse Overview, 10th of April 2017 23
  • 24. ➢ an application model ➢ a UI renderer (SWT or Java Fx) ➢ Injection ➢ CSS ➢ Spies ➢ A compatibility layer to be compliant with Eclipse 3 concepts ➢ This new runtime is based on OSGi and distributed under EPL license Image 8 e4 Architecture Lisboa JUG, Eclipse Overview, 10th of April 2017 24
  • 25. UI Model Any user interface contains always the same elements: views, perspectives, commands : Image 9 UI anatomy Lisboa JUG, Eclipse Overview, 10th of April 2017 25
  • 26. In Eclipse 4, these elements are defined in application model : UI in application model The application model ➢ It is defined using Modeling technologies ➢ It is a live model ➢ read when application starts ➢ saved when application ends ➢ UI Agnostic ➢ Rendered by a renderer (SWT or JavaFx) Lisboa JUG, Eclipse Overview, 10th of April 2017 26
  • 27. Image 10 Application Model E4 Injection Eclipse 4 provides a specific injector using standard annotations ➢ @Inject, @PostContruct, ... This injector is hierarchical: ➢ the values in context are associated to a level in the UI ➢ a view has its own values and can also get values from parent contexts This injector is dynamic when a value changes: ➢ an injected field is automaticaly updated ➢ an injected method is automaticaly re-invoked on parameter's value changes Remote Application Platform (RAP) ➢ RAP is used to launch an RCP application in a web browser. ➢ RAP uses a specific SWT implementation ➢ RAP uses JSON to communicate between client and server Lisboa JUG, Eclipse Overview, 10th of April 2017 27
  • 28. Image 11 RCP and RAP ➢ RAP allows you to write your application once for desktop and web. Lisboa JUG, Eclipse Overview, 10th of April 2017 28
  • 29. VI - Modeling Projects overview VI Modeling Projects The power of models for your productivity Overview This part is about Modeling projects It will show you how you can increase your software productivity Modeling project is based on RCP architecture They can be used in two ways: ➢ MDA: Model Driven Application: ➢ your model is used at runtime ➢ MDD: Model Driven Development: ➢ your model is used by your tooling. Map Image 12 What is EMF? ➢ EMF is the core of the modeling project. ➢ Basic modeling tools ➢ a modeling language (Ecore) Lisboa JUG, Eclipse Overview, 10th of April 2017 29
  • 30. ➢ default generators (bean, editor) Image 13 EMF in the Modeling project Modeling steps Lisboa JUG, Eclipse Overview, 10th of April 2017 30
  • 31. Image 14 EMF in the development process model / meta model Model and meta model are distinguished according to domain Image 15 Model and Meta model Tree editor ➢ The tree editor is the default editor. ➢ Properties are edited in the Eclipse's default property view Lisboa JUG, Eclipse Overview, 10th of April 2017 31
  • 32. Image 16 Ecore Tree Editor Lisboa JUG, Eclipse Overview, 10th of April 2017 32
  • 33. Graphical Editor ➢ The graphical editor is available in the eclipse modeling delivery : Image 17 Ecore tools Model to Text (M2T) How to use 'model to text' generators for your productivity Once your model is defined, you can create code generators Lisboa JUG, Eclipse Overview, 10th of April 2017 33
  • 34. M2T Big picture Xtend language ➢ Xtend is a simplified Java language which is generated into real Java code ➢ It can also generate text code ➢ This is a really nice and easy language to learn. Lisboa JUG, Eclipse Overview, 10th of April 2017 34
  • 35. Image 18 Xtend generator sample How can you use it ? Create a meta model of your system: ➢ satellite description ➢ system description ➢ whatever description Create a model of your business: ➢ the ABC satellite ➢ the ABC system Write your code generator for your ABC system: ➢ it will be compliant with your meta-model/model ➢ produce the boilerplate code which is cumbersome to write ➢ SQL mapping ➢ Web side mapping (php, angular, node.js..) ➢ Your framework compliant code mapping ➢ ... Remark : if you describe more than once the same information generate it from a model ! Lisboa JUG, Eclipse Overview, 10th of April 2017 35
  • 36. Model Edition By default, the EMF framework can generates a Tree oriented editor for your model. But it can be painful to use You can also create your specific editor using: ➢ sirius for graphical editors ➢ Xtext for textual editors Graphical model editors ➢ Use the model editors when your model can be graphicaly displayed ➢ Then bind your model to your code generator (MDD approach) ➢ Provide your model editor in your application (MDA approach) ➢ Sirius is a tool to describe graphical representation for a model ➢ diagram : nodes and links ➢ table : lines of instances with properties in columns ➢ matrix : lines and columns of instances with values in cells ➢ It allows to get very quickly a graphical editor for a model ➢ The editor can be used directly without code generation Lisboa JUG, Eclipse Overview, 10th of April 2017 36
  • 37. Sirius overview Remark : the ecore graphical model editor is written using Sirius Textual model editors ➢ Use textual model editors when you want to provide a DSL text editor ➢ Bind it to your code generator automaticaly (MDD approach) ➢ Provide your powerful text editor to your customer (MDA approach) Lisboa JUG, Eclipse Overview, 10th of April 2017 37
  • 38. Xtext ➢ Eclipse project to generate a text editor for a model ➢ 'Language IDE framework' ➢ Generates the editor from a grammar and an Ecore model Xtext website: http://www.eclipse.org/Xtext/ 3 How to use it ? ➢ Follow the 5 mn and 30 mn tutorial. ➢ It can also be integrated with IntelliJ ➢ If it is relevant, you can bind your code generator ➢ Describe once and generate code in different languages Xtext editors features All editors generated with Xtext have the following features for free: ➢ syntax highlighting ➢ auto completion ➢ search indexes ➢ validation and quickfixes ➢ errors and warnings management ➢ templates ➢ outline ➢ definition of hyperlink (cross languages) ➢ binding with an optional Xtend generator 3 - http://www.eclipse.org/Xtext/ Lisboa JUG, Eclipse Overview, 10th of April 2017 38
  • 39. Remark : using XText is a way to get a 'Java like' editor but for your own business language ! Graphic visualization of the grammar Image 19 XText Syntax Graph Lisboa JUG, Eclipse Overview, 10th of April 2017 39
  • 40. Generated editor Image 20 Sample editor Customize your editor With Xtext it is really easy (and fun !) to add your: ➢ quickfixes (@Fix annotation) ➢ errors and warnings (@Check annotation) ➢ auto completion (textual or semantic) ➢ text formatter ➢ code generator (triggered on save) ➢ templates (compliant with your syntax) Lisboa JUG, Eclipse Overview, 10th of April 2017 40
  • 41. VII - Conclusion VII Conclusion The Eclipse technologies can help you to : ➢ build your own tooling to increase your productivity ➢ make modular java applications without license constraints ➢ use for free so many components How to be involved ? You can : ➢ Ask questions to the community using forum ➢ Use the bugzilla to open/find bugs ➢ Become a committer and enhance your resume ➢ Attend to Eclipse conferences ➢ Create your integrated tooling in the most used IDE on the market How can you learn this ? ➢ By yourself with google and the famous vogella web site ➢ Buy an Eclipse book ➢ Or contact me for : ➢ A taylor made training ➢ Order a consulting mission (on site or remotely). ➢ Slides of this presentation are available Thank you Any questions ? Lisboa JUG, Eclipse Overview, 10th of April 2017 41