an introduction to eclipse che - next-gen eclipse java ide
TRANSCRIPT
![Page 1: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/1.jpg)
An Introduction to Eclipse CheThe Next Generation Eclipse Java IDE
October 2015Tyler Jewell, Eclipse Che Project Lead@TylerJewell
![Page 2: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/2.jpg)
![Page 3: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/3.jpg)
![Page 4: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/4.jpg)
![Page 5: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/5.jpg)
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
![Page 6: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/6.jpg)
Goal
http://someurl/factory?id=a_project
1. Create new, or load existing, workspace2. Populate workspace with 1..n projects3. Clone, fetch, or pull source4. Inject developer tools (ie, compiler, GitHub, etc)5. Create runtime “machine” environment6. Execute onLoad commands (ie, pre-compile)7. Onboard developer into workspace
![Page 7: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/7.jpg)
![Page 8: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/8.jpg)
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.
![Page 9: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/9.jpg)
Che
The Developer Workspace
SDKExtensions | Plug-Ins | Assemblies
IDEJavaScript | CSS
APIsREST | WebSocket
Browser
downloadIDE
JavaScript | CSS
invoke
Workspace Manager
Machines
ContainerDocker | REST
mountsProjects
Modules
Files
Artifacts
EditorsWorkspaces
EnvironmentsPanels
Menus
Widgets
![Page 10: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/10.jpg)
Che Server
Containers Isolate Environments
streaming response
IDE 1. edit2. “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: /refactorAPI: /buildAPI: ...
invokes
injects
Workspace
Environments Projects
Environments
Machines
![Page 11: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/11.jpg)
Assembly
Che Extensibility
App Server + Plug-Ins + Installer
package asPlug-In
Plug-In
Plug-In
Che Core
ExtensionJava + JavaScript + CSS
Extension + Descriptor
ExtensionJava + JavaScript + CSS
ExtensionJava + JavaScript + CSS
package as
package as
Server
Desktop App
+
+
+
![Page 12: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/12.jpg)
Extensiblity Points
Che
IDE
IDE Extension
APIs
Browser
downloadIDE
invoke
Workspace Manager
Machines
Container
uses
Project Type Extension
Workspace Extension
Project Type Extension
![Page 13: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/13.jpg)
Getting Started with Che
Source: github.com/codenvy/che
Developer List: [email protected]
IRC: #eclipseche (routes to slack)
Note: We are moving Che issues in Codenvy Jira to bugzilla.
git checkout 3.13.1
![Page 14: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/14.jpg)
Cloning Chegit 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
![Page 15: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/15.jpg)
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
![Page 16: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/16.jpg)
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
![Page 17: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/17.jpg)
Extension Structure
CHE ASSEMBLY YOUR PLUGIN (title: YourExtension)------------ ----------------------------------
IDE.gwt.xml ------> references -----> YourExtension.gwt.xmlpom.xml ----------> builds ---------> YourExtension.java | | builds | Che IDE --------> injects --------> SomeGinModule.java (optional)
CHE RUNTIME ----------- @boot ------------> injects --------> SomeGuiceModule.java (optional)
![Page 18: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/18.jpg)
![Page 19: An Introduction to Eclipse Che - Next-Gen Eclipse Java IDE](https://reader034.vdocuments.site/reader034/viewer/2022052514/586fb95f1a28abe57d8b841b/html5/thumbnails/19.jpg)
Eclipse Che
www.eclipse.org/cheTry it live: codenvy.com