An Introduction to Eclipse Che Lets build a custom cloud IDE. October 2015 Tyler Jewell, Eclipse Che Project

Similar documents
vrealize Code Stream Plug-In SDK Development Guide

Oracle Code Day Hands On Labs (HOL) (Install, Repository, Local Deploy, DevCS, OACCS)

Oracle Code Day Hands On Labs HOL

The Mobile IDE provides Eclipse-based Perspectives, a menu, the mobile source code wizard, the mobile website template wizard, and others.

The Next Generation of Eclipse: e4. Mike Milinkovich Executive Director Eclipse Foundation

Maven POM project modelversion groupid artifactid packaging version name

Unable To The Artifact From Any Repository Maven-clean-plugin

m2e 1.2 Release Review

Struts 2 Maven Archetypes

Adapting JDT to the Cloud. Alex Boyko Pivotal Jay Arthanareeswaran - IBM John Arthorne - IBM

BUILD AND DEPLOY SOA PROJECTS FROM DEVELOPER CLOUD SERVICE TO ORACLE SOA CLOUD SERVICE

Kivy Designer Documentation

Developing ONOS Apps

BUILD AND DEPLOY ORACLE SERVICE BUS PROJECTS FROM ORACLE DEVELOPER CLOUD SERVICE TO ORACLE SOA CLOUD SERVICE USING THE ORACLE SERVICE BUS PLUG-IN

Eclipse 4.0. Jochen Krause EclipseSource

Sample Spark Web-App. Overview. Prerequisites

A: Yes. It is free to use and modify under the terms of the LGPL License for the Core and under the MIT License for the components.

Overview of Web Application Development

CS 268 Lab 6 Eclipse Test Server and JSPs

Red Hat JBoss Developer Studio 11.3

ONAP Developer Typical Setup 2017 July ONAP Virtual Developers Event

OSM R1 - VNF PACKAGE CREATION, UI & ONBOARDING

Red Hat Developer Studio 12.0

... SysML version SNAPSHOT Developer Guide.... Eclipse

Moving From Studio to Atelier. Wouter Dupré Sales Engineer

IntelliJ IDEA, the most intelligent Java IDE

Introduction: Manual Testing :

Red Hat Developer Studio 12.0

Sharing SDK Projects/Working in a Team

DAVE TM & DAVE TM SDK

WebStorm, intelligent IDE for JavaScript development

Using Eclipse Che IDE to develop your codebase. Red Hat Developers Documentation Team :54:11 UTC

Using GitHub and SourceTree to work with DITA TC repositories

Mobile Web Appplications Development with HTML5

Red Hat JBoss Developer Studio 10.3 Getting Started with JBoss Developer Studio Tools

GAVIN KING RED HAT CEYLON SWARM

Financial. AngularJS. AngularJS. Download Full Version :

WA2451 DevOps Fundamentals. Classroom Setup Guide. Web Age Solutions Inc.

CONTINUOUS INTEGRATION; TIPS & TRICKS

Software Architecture Documentation for the JRC MYGEOSS app for Invasive Species project

High performance reactive applications with Vert.x

Saperion. Release Notes. Version: 8.0

Eclipse Tutorial How To Write Java Program In Eclipse Step By Step Eclipse Tutorial For Beginners Java

FIRST STEPS WITH SOFIA2

Exercise 1. Bluemix and the Cloud Foundry command-line interface (CLI)

<Insert Picture Here> JavaFX Overview April 2010

Financial. AngularJS. AngularJS.

The Eclipse Parallel Tools Platform

JetBrains TeamCity Comparison

CS 261 Recitation 1 Compiling C on UNIX

MAVEN INTERVIEW QUESTIONS

What s new in CDT 4.0 and beyond. Doug Schaefer QNX Software Systems CDT Project Lead

Lab 1: Getting Started with IBM Worklight Lab Exercise

e4 Project 0.9 Release Review

Index. Chaminda Chandrasekara 2017 C. Chandrasekara, Beginning Build and Release Management with TFS 2017 and VSTS, DOI /

Please see the docs for latest release in 1.99.* Some of the information below might be outdated

Full Stack Web Developer

What s NetBeans? Like Eclipse:

Software Development I

WSDM = Web Services Distributed Management, an open standard/specified ratified by OASIS

What s new in IBM Operational Decision Manager 8.9 Standard Edition

10.1 Getting Started with Container and Cloud-based Development

Red Hat JBoss Web Server 3.1

MAVEN MOCK TEST MAVEN MOCK TEST I

Genesys Pulse Deployment Guide. Genesys Pulse User Interface Extensions

Using Eclipse Che IDE to develop your codebase. Red Hat Developers Documentation Team :15:48 UTC

Tools for Mobile Web Eclipse Day Paul Beusterien Symbian Foundation August 26, 2010

Control System Studio Guide

Collaborate. w/ ArcGIS Runtime SDK for Android

Simple Image Viewer for IBM Content Navigator

Getting started with Geomajas. Geomajas Developers and Geosparc

Oracle Utilities Customer Self Service

Git version control with Eclipse (EGit) Tutorial

AD105 Introduction to Application Development for the IBM Workplace Managed Client

Extending Blue Ocean Keith Zantow

IBM. IBM WebSphere Application Server Migration Toolkit. WebSphere Application Server. Version 9.0 Release

SAP NW CLOUD HANDS-ON WORKSHOP

Object Oriented Programming. Week 1 Part 2 Git and egit

Esri on GitHub: How to Participate in Open Source Projects

Red Hat JBoss Developer Studio 11.0

Continuous Integration (CI) with Jenkins

NSIGHT ECLIPSE EDITION

Solving Mobile App Development Challenges. Andrew Leggett & Abram Darnutzer CM First

IBM Cloud Developer Tools (IDT) and App Service Console Overview

Creating a Patch. Created by Carl Heymann on 2010 Sep 14 1

What is Maven? Apache Maven is a software project management and comprehension tool (build, test, packaging, reporting, site, deploy).

Android Apps. with Eclipse. Apress. Onur Cinar

I Got My Mojo Workin'

1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one.

TangeloHub Documentation

For live Java EE training, please see training courses at

RAP (The Rich Ajax Platform)

Github/Git Primer. Tyler Hague

Selenium Testing Course Content

Test driven development Example

Lab Exercise Git: A distributed version control system

Build CA Plex Web/Mobile App

Setting up a Maven Project

Software Revision Control for MASS. Git Installation / Configuration / Use

Contributing to Insoshi with Git and GitHub. Michael Hartl

Transcription:

An Introduction to Eclipse Che Lets build a custom cloud 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. 2. 3. 4. 5. 6. 7. Create new, or load existing, workspace Populate workspace with 1..n projects Clone, fetch, or pull source Inject developer tools (ie, compiler, GitHub, etc) Create runtime machine environment Execute onload commands (ie, pre-compile) 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.

The Developer Workspace Browser Machines Che download IDE Workspace Manager IDE JavaScript CSS JavaScript CSS Docker REST Workspaces Editors Panels invoke Container APIs Environments REST WebSocket mounts Projects Modules Menus Files Widgets SDK Extensions Plug-Ins Assemblies Artifacts

Containers Isolate Environments IDE 1. edit 2. echo hi! 3. refactor Che Server Container: Machine mounts File System Workspace Environments Projects Files injects Projects Artifacts Processes & Terminal & SSH $ echo hi! Environments invokes Machines Embedded Che Services API: /refactor API: /build API:... Container: Machine streaming response Container: Machine Modules

4.0 Demo Java Refactor

Che Extensibility Che Core Assembly App Server + Plug-Ins + Installer + Extension package as Plug-In Java + JavaScript + CSS + Extension Server package as Plug-In Java Extension + JavaScript + Descriptor + CSS Desktop App + Extension Java + JavaScript + CSS package as Plug-In

Extensiblity Points Browser Machines Che download IDE IDE Workspace Manager Container uses invoke APIs IDE Extension Workspace Extension Project Type Extension Project Type Extension

Let s Build Our Own Plug-Ins 1. 2. 3. 4. 5. 6. Install Che 3.13.1 Verify you can edit, build & run a project. Add new plug-ins to Che & rebuild assembly. Create new IDE & server extensions. Package extensions as plug-ins. Create drag-and-drop descriptions.

Getting Started with Che Source: Developer List: IRC: github.com/codenvy/che che-dev@eclipse.org #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 plugin-angularjs/core/client/src/main/java/com/codenvy/plugin/angularjs/core/client/ @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/server/src/main/java/com/codenvy/plugin/angularjs/core/server/project/type @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())); } }

Extension Structure CHE ASSEMBLY -----------IDE.gwt.xml ------> pom.xml ----------> builds YOUR PLUGIN (title: YourExtension) ---------------------------------references -----> builds ---------> YourExtension.gwt.xml YourExtension.java --------> injects --------> SomeGinModule.java (optional) CHE RUNTIME ----------@boot ------------> injects --------> SomeGuiceModule.java (optional) Che IDE

Eclipse Che www.eclipse.org/che Try it live: codenvy.com