SlideShare a Scribd company logo
1 of 19
Download to read offline
An Introduction to Eclipse Che
The Next Generation Eclipse Java IDE
October 2015
Tyler Jewell, Eclipse Che Project Lead
@TylerJewell
Goal
Let anyone contribute to any project anywhere at any time.
no pre-installation required
ready to participate in any branch flow
always compiles and runs
Goal
http://someurl/factory?id=a_project
1. Create new, or load existing, workspace
2. Populate workspace with 1..n projects
3. Clone, fetch, or pull source
4. Inject developer tools (ie, compiler, GitHub, etc)
5. Create runtime “machine” environment
6. Execute onLoad commands (ie, pre-compile)
7. Onboard developer into workspace
Eclipse Che provides open source workspaces packaged as
a cloud IDE installable on your desktop or server.
Use Che's built-in plug-ins or write your own to transform
Che's IDE or server into new tools.
Che
The Developer Workspace
SDK
Extensions | Plug-Ins | Assemblies
IDE
JavaScript | CSS
APIs
REST | WebSocket
Browser
download
IDE
JavaScript | CSS
invoke
Workspace
Manager
Machines
Container
Docker | REST
mounts
Projects
Modules
Files
Artifacts
Editors
Workspaces
Environments
Panels
Menus
Widgets
Che Server
Containers Isolate Environments
streaming
response
IDE 1. edit
2. “echo hi!”
3. refactor
Container: Machine
mounts
Projects ModulesFiles Artifacts
Container: Machine
Container: Machine
File System
Processes & Terminal & SSH
Embedded Che Services
$ “echo hi!”
API: /refactor
API: /build
API: ...
invokes
injects
Workspace
Environments Projects
Environments
Machines
Assembly
Che Extensibility
App Server + Plug-Ins + Installer
package as
Plug-In
Plug-In
Plug-In
Che Core
Extension
Java + JavaScript + CSS
Extension + Descriptor
Extension
Java + JavaScript + CSS
Extension
Java + JavaScript + CSS
package as
package as
Server
Desktop App
+
+
+
Extensiblity Points
Che
IDE
IDE Extension
APIs
Browser
download
IDE
invoke
Workspace
Manager
Machines
Container
uses
Project Type
Extension
Workspace Extension
Project Type Extension
Getting Started with Che
Source: github.com/codenvy/che
Developer List: che-dev@eclipse.org
IRC: #eclipseche (routes to slack)
Note: We are moving Che issues in Codenvy Jira to bugzilla.
git checkout 3.13.1
Cloning Che
git clone https://github.com/codenvy/che
git checkout 3.13.1
cd assembly-sdk
mvn clean install
# This will install che into /assembly-sdk/target directory
Plug-In Templates
# Community generator that creates new extensions from templates.
git clone https://github.com/stour/che-archetypes
mvn clean install
# Use the archetype generator to create a new extension from template.
# Do not run the generator in the che-archetypes source directory.
#
# che-client-extension-archetype = simple IDE extension with menu item
# che-multi-module-archetype = single plug-in with multiple extensions
# che-project-type-archetype = adds a new project type to Che
# che-server-extension-archetype = simple server-side extension with new REST API
mvn archetype:generate -DarchetypeCatalog=local
-DarchetypeGroupId=org.eclipse.che.archetype
-DinteractiveMode=false
-DarchetypeArtifactId=che-client-extension-archetype
# Compile the new extension.
mvn clean install
Che Extension
@Singleton
public class AngularJSProjectType extends ProjectType {
public AngularJSProjectType() {
super("AngularJS", "AngularJS Project", true, false);
setDefaultRunner("system:/javascript/webapp/grunt");
addRunnerCategories(Arrays.asList(RunnerCategory.JAVASCRIPT.toString()));
}
}
@Singleton
@Extension(title = "AngularJS")
public class AngularJsExtension extends JsExtension {
@Inject
public AngularJsExtension(IconRegistry iconRegistry, AngularJSResources resources) {
super(Const.ANGULAR_JS_ID, iconRegistry, resources);
}
}
plugin-angularjs/core/client/src/main/java/com/codenvy/plugin/angularjs/core/client/
plugin-angularjs/core/server/src/main/java/com/codenvy/plugin/angularjs/core/server/project/type
Extension Structure
CHE ASSEMBLY YOUR PLUGIN (title: YourExtension)
------------ ----------------------------------
IDE.gwt.xml ------> references -----> YourExtension.gwt.xml
pom.xml ----------> builds ---------> YourExtension.java
|
| builds
|
Che IDE --------> injects --------> SomeGinModule.java (optional)
CHE RUNTIME
-----------
@boot ------------> injects --------> SomeGuiceModule.java (optional)
Eclipse Che
www.eclipse.org/che
Try it live: codenvy.com

More Related Content

What's hot

What's hot (20)

Introduction to Eclipse Che / EclipseCon 2014
Introduction to Eclipse Che / EclipseCon 2014Introduction to Eclipse Che / EclipseCon 2014
Introduction to Eclipse Che / EclipseCon 2014
 
Poitou-Charentes JUG 2016 Eclipse Che: The Next-Gen Eclipse IDE
Poitou-Charentes JUG 2016 Eclipse Che: The Next-Gen Eclipse IDEPoitou-Charentes JUG 2016 Eclipse Che: The Next-Gen Eclipse IDE
Poitou-Charentes JUG 2016 Eclipse Che: The Next-Gen Eclipse IDE
 
Extending Eclipse Che to build custom cloud IDEs
Extending Eclipse Che to build custom cloud IDEsExtending Eclipse Che to build custom cloud IDEs
Extending Eclipse Che to build custom cloud IDEs
 
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDENantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
Nantes Jug 2016 Eclipse Che: The Next-Gen Eclipse IDE
 
Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016
Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016
Code in the cloud with Eclipse Che and Docker - EclipseCon France 2016
 
Eclipse 2011 Hot Topics
Eclipse 2011 Hot TopicsEclipse 2011 Hot Topics
Eclipse 2011 Hot Topics
 
Building Rich Applications with Appcelerator
Building Rich Applications with AppceleratorBuilding Rich Applications with Appcelerator
Building Rich Applications with Appcelerator
 
Continuous Integration for your Android projects
Continuous Integration for your Android projectsContinuous Integration for your Android projects
Continuous Integration for your Android projects
 
Ci for-android-apps
Ci for-android-appsCi for-android-apps
Ci for-android-apps
 
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
 
Codefresh + Cloud 66 webinar: Testing Strategies for Docker Driven Development
Codefresh + Cloud 66 webinar: Testing Strategies for Docker Driven DevelopmentCodefresh + Cloud 66 webinar: Testing Strategies for Docker Driven Development
Codefresh + Cloud 66 webinar: Testing Strategies for Docker Driven Development
 
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day ThailandCI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
CI/CD with Jenkins and Docker - DevOps Meetup Day Thailand
 
Ciao: Continuous Integration for Apps on OpenStack
Ciao: Continuous Integration for Apps on OpenStackCiao: Continuous Integration for Apps on OpenStack
Ciao: Continuous Integration for Apps on OpenStack
 
Eclipse introduction IDE PRESENTATION
Eclipse introduction IDE PRESENTATIONEclipse introduction IDE PRESENTATION
Eclipse introduction IDE PRESENTATION
 
Setup Build & Deploy with Jenkins CI
Setup Build & Deploy with Jenkins CISetup Build & Deploy with Jenkins CI
Setup Build & Deploy with Jenkins CI
 
Deploy your app with one Slack command
Deploy your app with one Slack commandDeploy your app with one Slack command
Deploy your app with one Slack command
 
Android Studio vs. ADT
Android Studio vs. ADTAndroid Studio vs. ADT
Android Studio vs. ADT
 
Continuous Delivery Using Jenkins
Continuous Delivery Using JenkinsContinuous Delivery Using Jenkins
Continuous Delivery Using Jenkins
 
Continuous Integration of Mobile Apps with Docker and Appium
Continuous Integration of Mobile Apps with Docker and AppiumContinuous Integration of Mobile Apps with Docker and Appium
Continuous Integration of Mobile Apps with Docker and Appium
 
Get started with AAR
Get started with AARGet started with AAR
Get started with AAR
 

Similar to An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE

Similar to An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE (20)

Developer joy for distributed teams with CodeReady Workspaces | DevNation Tec...
Developer joy for distributed teams with CodeReady Workspaces | DevNation Tec...Developer joy for distributed teams with CodeReady Workspaces | DevNation Tec...
Developer joy for distributed teams with CodeReady Workspaces | DevNation Tec...
 
Introduction to Eclipse Che - Devoxx FR - 2017
Introduction to Eclipse Che - Devoxx FR - 2017Introduction to Eclipse Che - Devoxx FR - 2017
Introduction to Eclipse Che - Devoxx FR - 2017
 
Code in the cloud with Eclipse Che and Docker
Code in the cloud with Eclipse Che and DockerCode in the cloud with Eclipse Che and Docker
Code in the cloud with Eclipse Che and Docker
 
DevNation
DevNation DevNation
DevNation
 
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentEclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
 
FooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptxFooConf23_Bringing the cloud back down to earth.pptx
FooConf23_Bringing the cloud back down to earth.pptx
 
Jfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptxJfokus_Bringing the cloud back down to earth.pptx
Jfokus_Bringing the cloud back down to earth.pptx
 
Serving Pull Requests with Jenkins
Serving Pull Requests with JenkinsServing Pull Requests with Jenkins
Serving Pull Requests with Jenkins
 
Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Automated UI testing. Selenium. DrupalCamp Kyiv 2011Automated UI testing. Selenium. DrupalCamp Kyiv 2011
Automated UI testing. Selenium. DrupalCamp Kyiv 2011
 
Scalable cloud ide with eclipse che and OpenShift
Scalable cloud ide with eclipse che and OpenShiftScalable cloud ide with eclipse che and OpenShift
Scalable cloud ide with eclipse che and OpenShift
 
2016 05-cloudsoft-amp-and-brooklyn-new
2016 05-cloudsoft-amp-and-brooklyn-new2016 05-cloudsoft-amp-and-brooklyn-new
2016 05-cloudsoft-amp-and-brooklyn-new
 
Lean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and DrushLean Drupal Repositories with Composer and Drush
Lean Drupal Repositories with Composer and Drush
 
Triple E class DevOps with Hudson, Maven, Kokki/Multiconf and PyDev
Triple E class DevOps with Hudson, Maven, Kokki/Multiconf and PyDevTriple E class DevOps with Hudson, Maven, Kokki/Multiconf and PyDev
Triple E class DevOps with Hudson, Maven, Kokki/Multiconf and PyDev
 
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
IBM ConnectED 2015 - BP106 From XPages Hero To OSGi Guru: Taking The Scary Ou...
 
Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015
 
Docker Starter Pack
Docker Starter PackDocker Starter Pack
Docker Starter Pack
 
Hudson
HudsonHudson
Hudson
 
OOoEclipse talks now C++
OOoEclipse talks now C++OOoEclipse talks now C++
OOoEclipse talks now C++
 
Introduction to Codenvy / JugSummerCamp 2014
Introduction to Codenvy / JugSummerCamp 2014Introduction to Codenvy / JugSummerCamp 2014
Introduction to Codenvy / JugSummerCamp 2014
 
When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?
 

More from KubeAcademy

KubeCon EU 2016: SmartCity IoT on Kubernetes
KubeCon EU 2016: SmartCity IoT on KubernetesKubeCon EU 2016: SmartCity IoT on Kubernetes
KubeCon EU 2016: SmartCity IoT on Kubernetes
KubeAcademy
 

More from KubeAcademy (20)

KubeCon EU 2016: Distributed containers in the physical world
KubeCon EU 2016: Distributed containers in the physical worldKubeCon EU 2016: Distributed containers in the physical world
KubeCon EU 2016: Distributed containers in the physical world
 
KubeCon EU 2016:
KubeCon EU 2016: KubeCon EU 2016:
KubeCon EU 2016:
 
KubeCon EU 2016: ChatOps and Automatic Deployment on Kubernetes
KubeCon EU 2016: ChatOps and Automatic Deployment on KubernetesKubeCon EU 2016: ChatOps and Automatic Deployment on Kubernetes
KubeCon EU 2016: ChatOps and Automatic Deployment on Kubernetes
 
KubeCon EU 2016: A Practical Guide to Container Scheduling
KubeCon EU 2016: A Practical Guide to Container SchedulingKubeCon EU 2016: A Practical Guide to Container Scheduling
KubeCon EU 2016: A Practical Guide to Container Scheduling
 
KubeCon EU 2016: Trading in the Kube
KubeCon EU 2016: Trading in the KubeKubeCon EU 2016: Trading in the Kube
KubeCon EU 2016: Trading in the Kube
 
KubeCon EU 2016: Integrated trusted computing in Kubernetes
KubeCon EU 2016: Integrated trusted computing in KubernetesKubeCon EU 2016: Integrated trusted computing in Kubernetes
KubeCon EU 2016: Integrated trusted computing in Kubernetes
 
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipelineKubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
 
KubeCon EU 2016: Secure, Cloud-Native Networking with Project Calico
KubeCon EU 2016: Secure, Cloud-Native Networking with Project CalicoKubeCon EU 2016: Secure, Cloud-Native Networking with Project Calico
KubeCon EU 2016: Secure, Cloud-Native Networking with Project Calico
 
KubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to KubernetesKubeCon EU 2016: Heroku to Kubernetes
KubeCon EU 2016: Heroku to Kubernetes
 
KubeCon EU 2016: Transforming the Government
KubeCon EU 2016: Transforming the Government KubeCon EU 2016: Transforming the Government
KubeCon EU 2016: Transforming the Government
 
KubeCon EU 2016: Getting the Jobs Done With Kubernetes
KubeCon EU 2016: Getting the Jobs Done With KubernetesKubeCon EU 2016: Getting the Jobs Done With Kubernetes
KubeCon EU 2016: Getting the Jobs Done With Kubernetes
 
KubeCon EU 2016: Kubernetes Storage 101
KubeCon EU 2016: Kubernetes Storage 101KubeCon EU 2016: Kubernetes Storage 101
KubeCon EU 2016: Kubernetes Storage 101
 
KubeCon EU 2016: Using Traffic Control to Test Apps in Kubernetes
KubeCon EU 2016: Using Traffic Control to Test Apps in KubernetesKubeCon EU 2016: Using Traffic Control to Test Apps in Kubernetes
KubeCon EU 2016: Using Traffic Control to Test Apps in Kubernetes
 
KubeCon EU 2016: Kubernetes in Production in The New York Times newsroom
KubeCon EU 2016: Kubernetes in Production in The New York Times newsroomKubeCon EU 2016: Kubernetes in Production in The New York Times newsroom
KubeCon EU 2016: Kubernetes in Production in The New York Times newsroom
 
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an EnterpriseKubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
 
KubeCon EU 2016: SmartCity IoT on Kubernetes
KubeCon EU 2016: SmartCity IoT on KubernetesKubeCon EU 2016: SmartCity IoT on Kubernetes
KubeCon EU 2016: SmartCity IoT on Kubernetes
 
KubeCon EU 2016: Templatized Application Configuration on OpenShift and Kuber...
KubeCon EU 2016: Templatized Application Configuration on OpenShift and Kuber...KubeCon EU 2016: Templatized Application Configuration on OpenShift and Kuber...
KubeCon EU 2016: Templatized Application Configuration on OpenShift and Kuber...
 
KubeCon EU 2016 Keynote: Pushing Kubernetes Forward
KubeCon EU 2016 Keynote: Pushing Kubernetes ForwardKubeCon EU 2016 Keynote: Pushing Kubernetes Forward
KubeCon EU 2016 Keynote: Pushing Kubernetes Forward
 
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...
 
KubeCon EU 2016: Killing containers to make weather beautiful
KubeCon EU 2016: Killing containers to make weather beautifulKubeCon EU 2016: Killing containers to make weather beautiful
KubeCon EU 2016: Killing containers to make weather beautiful
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
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
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE

  • 1. An Introduction to Eclipse Che The Next Generation Eclipse Java IDE October 2015 Tyler Jewell, Eclipse Che Project Lead @TylerJewell
  • 2.
  • 3.
  • 4.
  • 5. Goal Let anyone contribute to any project anywhere at any time. no pre-installation required ready to participate in any branch flow always compiles and runs
  • 6. Goal http://someurl/factory?id=a_project 1. Create new, or load existing, workspace 2. Populate workspace with 1..n projects 3. Clone, fetch, or pull source 4. Inject developer tools (ie, compiler, GitHub, etc) 5. Create runtime “machine” environment 6. Execute onLoad commands (ie, pre-compile) 7. Onboard developer into workspace
  • 7.
  • 8. Eclipse Che provides open source workspaces packaged as a cloud IDE installable on your desktop or server. Use Che's built-in plug-ins or write your own to transform Che's IDE or server into new tools.
  • 9. Che The Developer Workspace SDK Extensions | Plug-Ins | Assemblies IDE JavaScript | CSS APIs REST | WebSocket Browser download IDE JavaScript | CSS invoke Workspace Manager Machines Container Docker | REST mounts Projects Modules Files Artifacts Editors Workspaces Environments Panels Menus Widgets
  • 10. Che Server Containers Isolate Environments streaming response IDE 1. edit 2. “echo hi!” 3. refactor Container: Machine mounts Projects ModulesFiles Artifacts Container: Machine Container: Machine File System Processes & Terminal & SSH Embedded Che Services $ “echo hi!” API: /refactor API: /build API: ... invokes injects Workspace Environments Projects Environments Machines
  • 11. Assembly Che Extensibility App Server + Plug-Ins + Installer package as Plug-In Plug-In Plug-In Che Core Extension Java + JavaScript + CSS Extension + Descriptor Extension Java + JavaScript + CSS Extension Java + JavaScript + CSS package as package as Server Desktop App + + +
  • 13. Getting Started with Che Source: github.com/codenvy/che Developer List: che-dev@eclipse.org IRC: #eclipseche (routes to slack) Note: We are moving Che issues in Codenvy Jira to bugzilla. git checkout 3.13.1
  • 14. Cloning Che git clone https://github.com/codenvy/che git checkout 3.13.1 cd assembly-sdk mvn clean install # This will install che into /assembly-sdk/target directory
  • 15. Plug-In Templates # Community generator that creates new extensions from templates. git clone https://github.com/stour/che-archetypes mvn clean install # Use the archetype generator to create a new extension from template. # Do not run the generator in the che-archetypes source directory. # # che-client-extension-archetype = simple IDE extension with menu item # che-multi-module-archetype = single plug-in with multiple extensions # che-project-type-archetype = adds a new project type to Che # che-server-extension-archetype = simple server-side extension with new REST API mvn archetype:generate -DarchetypeCatalog=local -DarchetypeGroupId=org.eclipse.che.archetype -DinteractiveMode=false -DarchetypeArtifactId=che-client-extension-archetype # Compile the new extension. mvn clean install
  • 16. Che Extension @Singleton public class AngularJSProjectType extends ProjectType { public AngularJSProjectType() { super("AngularJS", "AngularJS Project", true, false); setDefaultRunner("system:/javascript/webapp/grunt"); addRunnerCategories(Arrays.asList(RunnerCategory.JAVASCRIPT.toString())); } } @Singleton @Extension(title = "AngularJS") public class AngularJsExtension extends JsExtension { @Inject public AngularJsExtension(IconRegistry iconRegistry, AngularJSResources resources) { super(Const.ANGULAR_JS_ID, iconRegistry, resources); } } plugin-angularjs/core/client/src/main/java/com/codenvy/plugin/angularjs/core/client/ plugin-angularjs/core/server/src/main/java/com/codenvy/plugin/angularjs/core/server/project/type
  • 17. Extension Structure CHE ASSEMBLY YOUR PLUGIN (title: YourExtension) ------------ ---------------------------------- IDE.gwt.xml ------> references -----> YourExtension.gwt.xml pom.xml ----------> builds ---------> YourExtension.java | | builds | Che IDE --------> injects --------> SomeGinModule.java (optional) CHE RUNTIME ----------- @boot ------------> injects --------> SomeGuiceModule.java (optional)
  • 18.