info ät fabercon.fi | 0400 533 978 tai 044 204 2029

Ota yhteyttä

heinäkuu 26.7.2017

Liferay 7, ensivaikutelmia

Liferayn 6.2 versiota käsittelimme pitkässä blogisarjassa lähes kaksi vuotta sitten. Uusin versio, Liferay 7, on pahasti myöhässä alkuperäisestä aikataulustaan. Liferayn dokumentaatio on edelleen varsin hajanaista, epäyhtenäistä ja puutteellista. Tämä on tyypillistä alustoille, joista on tarjolla sekä ilmainen että kaupallinen vaihtoehto (Liferay 7 CE vs. Liferay 7 EE) . Dokumentaation puutteellisuus on hyvä valmistajan keino ohjata yrityksiä kaupallisen version käyttöön. Ehkä dokumentaatio selkeytyy, kun Liferay 7 lopulta julkaistaan.

Liferay on alustana massiivinen, ja sen käyttö vaatii työlästä perehtymistä. Monimutkaisuus ei ole uudessa versiossa ainakaan vähentynyt, uutta tekniikkaa on tullut vanhan tekniikan rinnalle. Myös vanhoihin ominaisuuksiin on tullut muutoksia. Uudet ominaisuudet takaavat jatkuvan päivitysrumban Liferay-sovellusten omistajille. Asiakas maksaa tämänkin kierroksen kuten kaikki entiset. Ehkä kannattaisi miettiä, mitä uutta todella tarvitaan. Päivittämiselle pitäisi olla aina jokin pätevä syy, muukin kuin se, että uusi versio on ilmestynyt.

Tottakai Liferay tarjoaa rahoille myös vastinetta, ja myös ilmaisversiolla pärjää. Liferay on Javan ravintoketjun huipulla. On osattava paljon, ennenkuin kannnattaa edes avata Liferayta: Java-kieli, JEE teknologia, JSP-sivut, web-sovellusten tekeminen, tietokannat, palvelut, HTML, CSS, Javascript ja web- sekä sovelluspalvelimet. Näillä taidoilla voi edetä Liferayhyn, ja saada portaalialustan, jossa on paljon valmiina: mm. käyttäjien ja organisaatioiden hallinta sekä valmiin myös mobiilia tukevan sovelluskehyksen, jolla voi tehdä massiivisia web-sovelluksia. Se, onko Liferay monimutkaisuudessaan hintansa väärti, kun toisessa vaakakupissa on tarjolla olevat runsaat sisäänrakennetut ominaisuudet, voivat yritykset arvioida tykönään. Liferay on lähtökohtaisesti isojen portaalimaisten sovellusten alusta. Suomessa Liferay on poikkeuksellisen suosittu, erityisesti julkisorganisaatioiden laajojen sovellusten perustana.

Uudet ominaisuudet löytyvät helposti Liferayta käsitteleviltä sivustoilta. Seppiä on erityisesti kiinnostanut SPA-porletit, miten ne on toteutettu. Ikävä kyllä tämä ei sisällä aivan sitä mitä odotettiin, sitä että näyttö päivittyisi vain juuri käytetyn portletin osalta. Kun yhtä portlettia päivitetään, koko portaalisivu päivittyy edelleen (portlettien renderöinti käydään läpi), tosin siihen ilmeisesti vaikuttaa se, tulkitseeko alusta sivujen muuttuneen edellisen päivityksen jälkeen. Sivun muiden portlettien lataus tapahtuu kyllä todella huomaamattoman nopeasti, mitä ilmeisimmin välimuistista. Dokumentaatiossa korostetaan muita tärkeitä SPA-ominaisuuksia, kuten historiapainikkeiden toimivuutta, cachen käytön avulla selkeästi parantunutta nopeutta ja kirjainmerkkien (bookmarks) toimivuutta. Eteenpäin on menty joka tapauksessa.

Eclipsen Liferayta varten räätälöity koodausympäristö (versio 3.1.0) on nopea myös hitaassa tietokoneessa. Sovellukset ovat nyt ovat moduleja komponentteineen, ei portletteja. Käsitteellisesti on siis kyse suurista muutoksista. Uusi modulin rakenne tuo hyvin IDEn projektinnäkymään allekain Java-koodihakemiston (portletit ym.) ja resurssihakemiston (JSP, Javascript ym.). IDEssa on edelleen virhe JSP-virheiden suhteen, projekti voi näyttää hämäävästi virheettömältä, koska IDE ei paljasta JSP-sivun virheitä ennenkuin virheitä sisältävä JSP-sivu avataan. Tällaisen virheen säilyminen versiosta toiseen ihmetyttää. Moduli/portletti voi jopa asentua palvelimelle virheettömästi, mutta ei sittenkään toimi, ei välttämättä edes näy portaalin valikossa. Tällaiset virheet voivat olla vaikeita selvittää.

Seppien Ajax-pohjainen SPA-mallisovellus, jossa ei käytetä yhtäkään Javascript-kirjastoa, ei jQueryakaan, toimii sovelluksen koodin osalta lähes suoraan versiossa 7. Muutoksia koodiin tarvitaan, mutta ne ovat suoraviivaisia, mikä oli positiivinen yllätys. Suuri muutosten aiheuttaja on vanhojen XML-määritysten korvaaminen @Component-annotaation parametreillä portlettiluokassa. Tämä on nykysuuntaus, pois XML:sta, samoin on toimittu mm. Javan JEEssa ja Spring frameworkissa.

Seuraavassa blogissamme kerromme omasta Liferay 7 moduleihin sopivasta sovellusmallistamme enemmän.