Libor Jelínek (Virtage Software) CZJUG @ Praha 30.9.2013
Libor Jelínek evangelizátor Eclipse zakladatel Eclipse User Group ČR školitel Eclipse, Java, Ubuntu 8 let Java, 4 roky Eclipse Eclipse RCP, OSGi, SWT/JFace
Odkazy Eclipse User Group http://eclipseczech.cz školení a podpora Eclipse http://virtage.cz můj blog http://devblog.virtage.com/
Eclipse DemoCamp 11.11.2013 od 17:00 pondělí 11.11.2013 ČVUT fakulta strojní, Praha Dejvice
Osnova a program 1) Úvod historie, úvod, novinky Kepler, známé aplikace nad Eclipse 2) Eclipse jako platforma SDK, RCP, OSGi, plugin, E4 3) Projekty RAP, Scout, RT, EMF, GEF, BIRT, M2, Xtend
Historie Eclipse 1998 začátky v IBM Canada jméno Eclipse cíle obecná platforma pro vývoj rich clientů konsolidace původních IDE IBM VisualAge 2001 konsorcium, uvolnění jako open-source 2004 Eclipse Foundation
Eclipse Foundation jako Codehouse, Apache, Tigris, FSF. občas jsou darovány, jiné z inkubátoru member companies a jejich role commercial-friendly EPL licence
Verze Eclipse Rok Verze 2004 3.0 2005 3.1 2006 3.2 Callisto 2007 3.3 Europa 2008 3.4 Ganymede 2009 3.5 Galileo 2010 3.6 Helios 2011 3.7 Indigo 2012 4.2/3.8 Juno 2013 4.3 Kepler 2014 4.4 Luna Codename
Simultanous release (simrel) od roku 2006 (Callisto) minulý rok dvě verze 3.8/4.2
Kepler SR 72 projektů vynecháno Jetty, Virgo, RPP, Xtend 428 commiterů 54 organizací 48k commitů 4786 OSGi bundlů 915 features
Kepler stats
Eclipse IDE IDE pro všechno a nic konkrétně vše je plug-in kromě minimálního OSGi runtime základ Eclipse RCP neinstaluje se multiplaformní package solutions
Vylepšení JDT např. convert to 'if-!-return' Javadoc a Declaracation view out of sync Klikatelný balíček v Javadoc view Vylepšení vyhodnocování generik při debuggování Hledání celého slova
JGit a EGit JGit 100% Java implementace Gitu EGit GUI klient není součástí všech package solutions JGit v NetBeans, CollabNet GitEye, Gerrit atd. asi nejzásadnější změna v historii Eclipse
(J/E)Git 3.0 v Kepleru Git výrazy (HEAD^, commit hash ap.) Reset dialogu GUI pro git clean Rozpoznání přejmenování GUI pro 3-way merge JGit rychlejší, než nativní Git
Maven a Eclipse m2e IDE netural projects Tycho build místo zastaralého PDE Buildu m2e-wtp dosáhl v Kepleru dosáhl verze 1.0 Java EE do Maven funkční podpora WTP hot-deploy reaguje na změny pom.xml bez restartu konektory pro JAX-RS, JPA, JSF
IDE založené na Eclipse Java - JDT Android ADT HTML, CSS, JS Aptana JEE WTP PHP PDT a Zend Studio Python PyDev Ruby & RoR RadRails IBM Rational software Go Goclipse C/C++ - CDT Scala Scala IDE Linux tools Perl - EPIC
Další a další IDE a nástroje... Spring STS MyEclipse JBoss Studio Nvidia Nsight SAP NetWeaver Studio Force.com IDE Apache Directory Studio SmartGit Click IDE (Apache Click) BEA Workspace IDE
Ne IDE aplikace pošta IBM Lotus Notes a Designer medicína STEM statistika Polyspace biologoie Bioclipse CRM CAS CRM mind mapy XMind desítky dalších věd. analýza GumTree GIS udig GIS
Orion webové IDE pro web vývoj výhody x nevýhody built-in podpora Gitu embed do další aplikace orionhub.org nebo spusťte na localhostu
SWT/JFace grafická knižnice SWT/JFace vznik, důvod rozdíl SWT a JFace rozdíl oproti Swingu
WindowBuilder zdarma od Googlu (ne původně) SWT/JFace, Swing, Eclipse workbench (views, editors) renderuje pomocí GEF
Eclipse SDK, RCP, Platform ( core ) Eclipse SDK = JDT + PDE + Platform Eclipse Platform základ pro tvorbu IDEs Eclipse RCP = Runtime (nad OSGi) + SWT + JFace + Workbench vše je plug-in kromě Runtime termíny se trochu překrývají
Eclipse SDK, RCP, Platform ( core )
komponenty Platformy Ant - Resource management Debug obecný debug execution framework Releng PDE Build a nyní spíše Tycho Search integrovaný pluggable search SWT a JFace User Assistance Help, Welcome page, Cheat sheets UI okno IDE, window management, Forms, CNF
Oproti NetBeans Platform SWT/JFace (rychlost a vzhled) OSGi zdokumentováno eko-systém a komunita
OSGi modulární systém a SOA platforma Runtime postaven nad OSGi frameworkem Eclipse plug-in = OSGi bundle JAR s hlavičkami v manifest.mf Eclipse Equinox
OSGi bundle stavy
OSGi hlavičky Bundle-Name: Hello World Bundle-SymbolicName: org.wikipedia.helloworld Bundle-Description: A Hello World bundle Bundle-ManifestVersion: 2 Bundle-Version: 1.0.0 Bundle-Activator: org.wikipedia.activator Export-Package: org.wikipedia.helloworld;version="1.0.0" Import-Package: org.osgi.framework;version="1.3.0"
OSGi bundle vs. Eclipse plug-in MANIFEST.MF závilosti publikované balíčky plugin.xml Equinox extension mechanism extension points bod rozšíření pro ostatní plug-iny extensions vložení (contribution) do ext. pointu kódu i zdroje (obrázek, konf. soubor) v E4 většinou omezeno jen na nastavení konf. souborů ap.
E4 změna spíše pro programátora vývoj založený na DI a anotacích to nejlepší z 3.x zpětná kompatibilita aplikační model modifikovatelný za běhu rozšířitelný CSS stylování widgetů oddělení model od reprezentace (více rendererů)
E4 dependency injection // E3 PlatformUI.getWorkbench(). getactiveworkbenchwindow(). getselectionservice(). getselection(); // E4 @Inject ESelectionService Vesmír jménem selectionservice; Eclipse
E4 IDE aplikace
E4 RCP aplikace
RAP Rich AJAX Platform Remote Application Platform bohužel trochu zastíněno GWT (Vaadin), ZK, WaveMaker obecná platforma pro vývoj moderního UI dříve jen web, nyní Andoid a ios (otevřený protokol)
RAP podrobně Widget toolkit Cross platform standardní JEE servlet OSGi ale i samostatně HA: load balancing, session failover tooling pro RAP Eclipse for RCP/RAP, WindowBuilder Single sourcing integrace BIRT reportů
RAP 2.1 (Kepler) novinky zásadní změna už s 2.0 JSON client-server protokol řada nových API např. pro vytvářeních custom widgetů Kepler: mnemoniky a akcelerátory vylepšení GC oprava multiple sessions
v
Eclipse Scout distribuované enterprise aplikace generuje SWT a Swing nebo RAP aplikace funkcionalita Scoutu jsou běžné OSGi služby sada základní služeb od Scoutu
Eclipse RT ECF Equinox Jetty Gemini Virgo (dříve Spring DM Server) Blueprint (dříve Spring DM) Management DBAccess naming JPA Web
Darované a ostatní EclipseLink Hudson MAT
Modelování a grafika EMF - modelling GEF grafické editory BIRT - reporting Startdust - BPM Graphiti
EMF modelling and code generation framework určený k tvorbě aplikací založených na strukturovaném modelu EMF vygeneruje model specifikován v XMI (XML) (Ecore) Java třídy modelu adapter třídy pro zobrazení a editaci základní editor
GEF vytváření rich grafických editorů (a prohlížečů) Podprojekty GEF: Draw2d základ postavený nad SWT GEF (MVC) to co myslíme pod pojmem GEF Zest grafy a kreslení
Draw2d
Startdust
BIRT reporting a BI toolset Reporting Designer GUI konsolidace z více zdrojů deploy/embed do webové aplikace, Swing a ERCP podobné Jasper, Crystal Reports Kepler: umí číst z NoSQL (Cassandra, MongoDB)
M2M machine-to-machine emerging téma Eclipse M2M Industry Working Group Koneki Paho Mihihi otevřené komunikační protokoly nástroje frameworky Projekty Eclipse M2M
Xtend kompiluje se do Java člověk čitelného zdrojového kódu existující Java knihovny použitelné z Xtendu i obráceně CoffeScript for Java
Příklad HelloWorld class HelloWorld { def static void main(string[] args) { println("hello World") } } import org.eclipse.xtext.xbase.lib.inputoutput; public class HelloWorld { public static void main(final String[] args) { InputOutput.println("Hello World"); } }
Xtext framework pro vývoj programovacích jazyků DSL (domain specific languages) pomocí gramatiky vše od parseru, linkeru, compileru nebo interpretu předně však rovnou IDE postavené na Eclipse
AspectJ a AJDT nejpoužívanější aspektově orientované rozšíření Javy podpora ve Spring modularizace crosscutting concerns
Mylyn task-focused UI integrace do Bugzilla, Trac, Github,... když chcete být agilní a ALM :-) WikiText
Zapojte se! Eclipse.org: EUGCZ: fórum www.eclipseczech.cz Bugzilla fórum Eclipsepedia Twitter, FB newsletter zdrojáky (git.e + github)
www.virtage.cz Školení Eclipse Školení Java Eclipse IDE jazyk Java RCP 3.x a 4.x Maven OSGi JUnit SWT/JFace Školení Ubuntu uživatel i správce
Otázky?