JavaOne 2013 – Tiistai

Tiistai oli vähemmän innostava päivä kuin maanantai. Osa syytä menee itselle – olin buukannut kaikenlaista teknistä yksityiskohtaa. Luennoijat eivät myös olleet erityisen inspiroivia, vaan lukivat suoraan kalvoja ja aivan liian pieniä koodiesimerkkejä monotonisella äänellä – joskus on hyvä nähdä huonoja esimerkkejä miettiäkseen itse miten parantaa 😉

Jotain jäi jokatapauksessa haaviin. JSF 2.2 on pistetty aikalailla uusiksi. Siellä on kiinnostavia piirteitä mm. JSF Flow, joka on muotoiltu esim. Spring Web Flow/Oracle ADF flow mukaan. Se on periaatteessa laajennus navigaatioon, jossa sensijaan että käyttäjä voi pomppia sovelluksessa mihin haluaa, otetaan tarkemmin haltuun reitit ja vaihtoehdot. JSF Flowssa on selkeä alku ja lopputila, ja vakioelementit välissä. Yksi elementeistä on näyttää näkymä, mutta yhtälailla voi olla ehdollista navigointia, logiikan arvoja. Flow voi sisältää myös subflow-elementtejä. Periaatteessa flow on kuin Javan funktio – sillä voi olla parametreja ja paluuarvoja. Tämä on ollut itsellä suht selkeä puoli jo jonkin aikaa, mutta käytännön kokemus on vielä ohutta.

Lisäksi JSF:stä löytyy nyt ’contract’ malli jossa voidaan resurssikansioon paketoida kuvien ja scriptien ohella nyt myös template ratkaisuja joissa on ajettavaa koodia. Demossa näytettiin miten contract-valikoimasta voi valita vaihtoehtoja helposti esim. url parametrilla. Tämä mahdollistaisi esim. käyttöliittymän vaihdettavuuden skinnin-tekniikan tapaan, tai mobiili ja työasemakäyttöliittymät rinnakkaisissa template-kansioissa.

Last but not least: HTML5 pohjainen template malli on aika miellyttävä, joskin siihenkin näyttäisi omia sudenkuoppiaan liittyvän. Tämä haasta Wicketin mukavasti – ja toisin kuin Wicketissä JSF:ssähän ei ole tarpeen toistaa käyttöliittymäelementtien rakennetta koodin puolelle vaan riittää että templatessa on ne merkattu – niihin pääsee käsiksi automaattisesti koodista.

2013-09-24 09.02.00

Project Avatar oli uteliaan tutustumisen arvoinen. Äärimmäisen puuduttavasta esityksestä huolimatta kyseessä on juuri open sourceksi avattu hanke jossa on kaikenlaista apua HTML5+JavaScript asiakasohjelmien tekoon. Yksi elementti on Avatar.js kirjasto, joka on periaatteessa Node.js muunnettuna JVM-kelpoiseen muotoon. Java virtuaalikoneen päällä ajettuna saadaan nauttia monista virtuaalikoneen piirteistä joista vähäisin ei ole koodin optimointi ajon aikana dynaamisesti. Kirjastosta löytyy muutakin, ilmeisesti single page app voisi saada tukea tältä suunnalta jos JSF ei kiinnosta. Tämä ei kuitenkaan ole vielä osa Java EE arkkitehtuuria, vaan valinnainen lisäprojekti, aika tuore myöskin. Mutta kiinnostava. Penteleellisen vaikea löytää Googlella kun kaikki linkit vievät sinisiin metsäolentoihin.  Tässä linkki oikeaan proggikseen: https://avatar.java.net/

stack

Nashorn on tietysti uusin ja kaunein kiillotettu JavaScript ajomoottori joka korvaa aiemman Rhinon.

JPA 2.1 on päällisin puolin aika pieni päivitys, mutta kun siitä tunti puhuttiin päästiin syvemmälle porautumaan. Itselleni mielenkiintoinen lisä olivat Object Graph piirteet, käytännössä idea on vanha (projektio, kenttäryhmä) mutta JPA tuki on uusi juttu.  JPA 2.0 versioon asti JPA hakee kolmessa moodissa tavaraa: lazy, eager, tai fetch join – ja haettaessa kannasta tauluja haetaan aina kaikki. Nyt JPA 2.1 Object Graph antaa mahdollisuuden määrittää itse mitä tauluista milloinkin halutaan. Näin muuttuu helpommaksi räätälöidä hakuja jotka välillä hakevat vain muutaman kentän. Huom! id ja versiokentät haetaan aina, niitä ei saa edes pois päältä. Kaikki muu on valinnaista.

Mielenkiintoista oli myös JPA 2.1 tuki Stored Procedure-hauille. Itse pidän näppini visusti erossa moisista epästandardeista hirvityksistä – mutta monessa legacy järjestelmässä niitä löytyy, ja ne pitäisi saada kytketyksi uuteen hienoon kiiltävään Java-systeemiin. Nyt se onnistuu, suoraan JPA:n kautta. Parametreja liikkuu tarvittaessa sisään ja ulos, tai koko ResultSetin voi palautella arvona. Kiintoisaa. Mutta ei kyllä kovin esteettistä eikä selkeää.

Entity Graph

Jahas, ei kun kohden keskiviikkoa. Luvassa pitäisi olla kiinnostavampia luentoja. Tänäänkin olisi ollut mutta nuo peruskaura-apit nyt vain on hyvä tuntea läpikotaisin, ja täällä pääsee vähän myös kuulemaan perusteluita sille miksi ne ovat mitä ovat (JSF työryhmässä oli alunperin Swing guru, siksi tilallisuus on siellä niin kova juttu 😉

No niin, illalla olisi ollut RedHatin sponsoroimat JBOSS bileet luvassa – mutta tein brutaalin päätöksen ja menin sensijaan koodaamaan. Luvassa oli nimittäin Java EE 7 hands on lab. Joskin suuri osa on jo tuttua, on siellä uusiakin osia itselleni, esim. JSF Flow käytännössä, ja eräajorajapintojen EE standardit. Jos jotain olen oppinut koulutellessa, niin koodaamaan nopeasti ja pistämään vajanaiset ohjeet ja ympäristöt kuntoon tarvittaessa paineen alla ja nopeasti :p Labrojen puutteellisista ohjeista huolimatta paukutin ratkaisut paikalleen siihen tahtiin että kun muut vielä tekivät ensi harjoitusta, itsellä oli jo neljä kasassa. Hoksasin jossain vaiheessa että nopeimmalle ratkojalle oli tarjolla krääsää, joten Arun Gupta tuli kiikuttamaan hienon mustan Java-pipon palkaksi nopeimmasta tehdävän ratkaisusta. Harmi ettei niitä voinut napata useampia kerralla :p Varsin mielenkiintoisia harjoitteita, ja aika lupaava alusta tuo EE 7. Eräajoautomatiikka on itselle vielä vierasta kenttää mutta ihmeen nopeasti CVS tiedostot paukkuivat EE serverillä. Ja pipollekin on käyttöä iltaisin ja aamuisin, kun aurinkoa ei näy kylmä valtaa ihan yhtä nopeasti kuin kotikamarallakin 😉

Advertisements

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s