Aleš Rybák, Jiří Kadlec Pluginy budoucnosti
Jak se vyvíjel Liferay 4000000 3500000 3000000 2500000 2000000 1500000 1000000 500000 50 k Java LOC 2,1 M Java LOC YAML XSLT XSD XML Velocity Template Language SQL SASS Maven JSP JSON Javascript Java HTML DTD CSS Ant 0 v1.7.5 v1.9.5 v2.2.5 v3.6.1 v4.4.2 v5.2.3 v6.0.6 v6.1.2 v6.2.2 v7.0-m4 2
3
Problém 2015 IBA CZ, s. r. o. Pluginy budoucnosti 4
K tomu naše aplikace 5
Problémy Není možné určit pořadí či závislosti mezi aplikacemi 6
Problémy Sdílení dat a funkčností mezi aplikacemi 7
Problémy Balancujeme mezi Liferay a aplikačním serverem 8
Problémy Úpravy pomocí hooků jsou křehké Úpravy JSP, které obsahují logiku ve scriptletech 9
Problémy Úpravy pomocí Ext pluginu jsou považovány téměř za sebevraždu Významnější změna znamená nutnost regresního testování Při každém fixu, každém updatu a každé změně je nutno provádět kontrolu na kolize 10
Rozbili nám Liferay 11
12
Co je OSGi? Sada specifikací Modulární systém Moduly mají definované rozhraní Moduly skrývají implementaci Moduly mezi sebou komunikují pomocí služeb 13
Transformace směrem k OSGi aneb ze které strany do toho praštit 14
Liferay jak ho známe 15
Liferay jak ho známe 16
Liferay jak ho známe 17
Liferay po novu 18
Liferay po novu 19
Liferay po novu 20
Liferay po novu 21
Liferay po novu 22
Liferay po novu 23
Liferay po novu 24
Liferay do budoucna 25
Liferay cílový stav 26
Demo 27
Výhody 28
Výhody Jednodušší distribuce oprav 29
Výhody Sémantické verzování 30
Výhody Definice nových bodů pro rozšíření 31
Výhody Možnost odstranit nepotřebné moduly 32
Výhody Možnost rozdělit zodpovědnosti za moduly paralelizace vývoje lepší a stabilnější rozhraní díky Conwayovu zákonu 33
Jak do toho zasadit vlastní aplikace? 34
Portletové aplikace Změna vzhledu Změna funkcionality Přidání funkcionality 35
Chci mít portál podle sebe 36
Jak tomu bylo do nedávna JSP Hooks Přímá úprava kódu jednotlivých komponent Liferay. Liferay poskytne mechanismus, jak tento nový kód použít místo originálu. Co je na tom špatně Je to křehké. Musí to dělat programátor (obsahuje logiku i vzhled). Nelze udělat více úprav do stejného JSP. Málo flexibilní nelze to vyklikat za běhu. Komplikace při patchování Liferay. 37
Úpravy vzhledu 38
Jak to jde nyní JSP Hooks Stále jsou k dispozici Mají v některých případech smysl. ADT Application Display Templates Umožňuje změnu šablony zobrazení portletu. Velocity Freemarker Správa šablon probíhá přímo z UI Liferay. V portálu od verze 6.2 Šablony se dají přenášet a znovu použít. 39
ADT kde se vzalo Staví na zaběhnutých technologiích DDM (Dynamické datové listy struktura pro zobrazení) Template engine Přidává Administrační portlet pro správu šablon Možnost předat vlastní kontext šabloně. 40
ADT jak to funguje ADT Šablona Management Template Engine Data 41
ADT zhodnocení Proč je to správně: Vysoce flexibilní Lze vytvořit/měnit přímo v UI portálu. Jednodušší na správu zvládne i content editor. Dá se znovupoužít (Marketplace). Aplikovatelné na vlastní portlety (je to Framework). Site scopable různé šablony per site. Kde to nejde: Podpora se neustále rozšiřuje, ale pořád jsou portlety, kde nelze použít. Starší custom portlety toto zatím nemají. Upravuje vzhled zobrazení, nikoliv editace. Proto máme pořád JSP Hooks. 42
43
Nové hooks LF 7 Motivace: Jak vyřešit problém upgradů? Jak umožnit dodávat hooks více dodavatelům? Hooks musí být stabilní, nikoliv křehké. View a model musí být lépe oddělen. Možná řešení: Views model Extensible tag points View extension points 44
View models 45
Extensible tag points <aui:form 46
Úpravy funkcionality 47
Portletové aplikace 48
Kdy tam budeme, co ještě chybí Portlety do OSGi lze nasadit. Nesplňují však spec portlet 2.0 (tj. nestandardní způsob) Chybí dokumentace Již lze využít potenciál OSGi, ale zatím nejsou dotaženy best practices. 49
Audience targetting 50
Audience targeting Plugin budoucnosti Skládá se s OSGi modulů Jednoduše rozšiřitelný pomocí nových modulů (OSGi) Rules Tracking actions Reports Co to umí Segmentace uživatelů na základě pravidel. Zobrazování WCM na základě uživatelských segmentů. Vytváření kampaní. Sledování chování uživatele. Reporting. Co je za tím? OSGi moduly pro jednotlivé funkce Freemarker pro frontend Nové portlety pro zobrazení dle segmentů. 51
Děkujeme 52