Links

  • 1. Sogeti
  • 2. JBoss
  • 3. IBM
  • 4. Oracle
  • 5. SpringSource
  • 6. NL-JUG
  • 7. Java

Archives

Syndication  RSS 2.0

RSS 1.0
RSS 2.0

Bookmark this site

Add 'JCN Blog' site to delicious  Add 'JCN Blog' site to technorati  Add 'JCN Blog' site to digg  Add 'JCN Blog' site to dzone

Posted by Jasper Kuperus at 15:07 on Monday 11 November    Add 'J-Fall 2013: Code-driven introduction to the Java EE 7 Platform' site to delicious  Add 'J-Fall 2013: Code-driven introduction to the Java EE 7 Platform' site to technorati  Add 'J-Fall 2013: Code-driven introduction to the Java EE 7 Platform' site to digg  Add 'J-Fall 2013: Code-driven introduction to the Java EE 7 Platform' site to dzone

Bij J-Fall 2013 heb ik de sessie ‘Code-driven introduction to the Java EE 7 Platform’ bijgewoond. Zoals de titel al doet vermoeden waren er geen slides, alleen code. De spreker, Arun Gupta, gebruikte zijn GitHub (met zo’n 170 Java EE 7 voorbeelden!) als basis. In deze blog ga ik kort op een aantal besproken onderwerpen in.

Batch

De nieuwe batch API van EE 7 lijkt veel op Spring Batch. Onderstaande afbeelding zal er dan ook wel verdacht bekend uit zien voor de mensen die al eens met Spring Batch hebben gewerkt:

1965481
Bron: http://www.oracle.com/technetwork/articles/java/batch-1965499.html

Een batch proces wordt opgebouwd als een Job die bestaat uit één of meerdere Steps. Elke Step in jouw Job bestaat uit drie onderdelen:

  • ItemReader – Leest exact 1 ‘item’ in. De enige verantwoordelijkheid van de ItemReader is inlezen. Het is niet de bedoeling om hier verdere processing uit te voeren. In het voorbeeld van Gupta wordt hier één regel van een CSV bestand ingelezen.
  • ItemProcessor – Verwerkt het item aan de hand van business logica en geeft het verwerkte item aan de batch runtime voor aggregatie. In het voorbeeld van Gupta wordt hier de ingelezen CSV regel omgezet naar een Person object.
  • ItemWriter – Als er voldoende items ingelezen en verwerkt zijn, worden deze aan de ItemWriter gegeven. De ItemWriter  zorgt er voor dat de data wordt weggeschreven. In het voorbeeld van Gupta worden de Person objecten met JPA in de database opgeslagen.

Verder biedt de JobOperator een interface om Jobs te (her)starten, stoppen, etc. En de JobRepository weet alles over Jobs die worden uitgevoerd of in het verleden zijn uitgevoerd.

Voorbeelden van code kan je vinden in het CSV batch voorbeeld van Gupta. En verdere documentatie bij Oracle.

JSON-P

De JSON API van EE 7 biedt twee onderliggende modellen: Een in-memory object model en een streaming event-based model. Hiermee lijkt de API op de XML APIs van Java en is het vergelijkbaar met DOM en SAX. Tijdens de sessie werd een voorbeeld getoond voor streaming JSON genereren

Om JSON te genereren heb je eerst een JsonGenerator nodig. Vervolgens is de API vrij vanzelfsprekend en kan je al je commando’s chainen. Onderstaand voorbeeld schrijft een simpel JSON document naar de standaard output:

JsonGenerator generator = Json.createGenerator(new PrintWriter(System.out));
generator.writeStartObject()
    .write("firstName", "Duke")
    .write("lastName", "Java")
    .writeStartArray("phoneNumbers")
        .write("111-111-1111")
        .write("222-222-2222")
    .writeEnd()
.writeEnd();
generator.close();

Voor verdere uitleg over de JSON API kan je terecht bij Oracle.

WebSockets & JMS 2.0

WebSockets en JMS 2.0 zijn op deze weblog al uitgebreid besproken, dus zal ik hier niet veel verder op in gaan. Tijdens de sessie werden deze onderwerpen aan de hand van de volgende voorbeelden besproken: WebSockets, JMS 2.0.

EE 7 – en nog veel meer…

Tenslotte werden de volgende onderwerpen tijdens de sessie uitgelegd:

Het was een erg nuttige sessie, waarin in korte tijd veel nieuwe dingen van Java EE 7 werden uitgelegd. Mocht je met Java EE 7 aan de slag gaan, dan raad ik je zeker aan om de GitHub van Arun Gupta er eens bij te pakken.


© 2019 Java Competence Network. All Rights Reserved.