Alla faccia dell’interfaccia: Scala a Tratti

Platone definiva l’essere umano come “Bipede implume dotato di anima“: aveva sicuramente in mente i Tratti Scala, nella sua lungimiranza. I tratti, analoghi alle interfacce Java, offrono in più la possibilità di centralizzare codice, maggiore flessibilità associata a un migliore controllo. Non ci credete? Leggiamo insieme questo post!...
Continue reading...

EJB3 Message Driven Bean con JMS: Request/Reply Pattern con JBoss – Parte I

In un abbiamo introdotto un po’ di teoria che sta dietro ai Message Driven Bean (MDB): è importante conoscere l’architettura su cui si basano questi strumenti perché è molto diversa dai componenti sincroni con cui siamo soliti lavorare (leggi Session Beans). La teoria è importante perché ci permette di capire cosa accade dietro le quinte (e soprattutto perché si scrive un certo codice), ma se non vediamo come si mette in pratica serve a ben poco!...
Continue reading...

EJB3 Message Driven Bean con JMS: Enterprise Patterns

La piattaforma Java Enterprise ci mette a disposizione innumerevoli strumenti che, almeno dalla versione 5, semplificano notevolmente la vita dello sviluppatore. Con estrema trasparenza è possibile gestire connessioni a database, transazioni distribuite, proteggere le risorse, pianificare task, eseguire richieste asincrone e altro ancora.

In tutte le guide introduttive su EJB3 che si trovano in rete si parla quasi esclusivamente di Session Beans di tipo Stateless e Stateful e si accenna a malapena all’esistenza dei Message Driven Bean (MDB), perché effettivamente non sembrano molto usati. A cosa serve un MDB? Spesso veniamo liquidati con risposte del tipo “serve a gestire chiamate asincrone al server”. Onestamente non mi sembra poco: è una risposta che apre mille scenari e che non ha fatto altro che incuriosirmi ancora di più! In questo post vedremo di approfondirne alcuni aspetti....
Continue reading...

AOP fai da te? No CGLIB? Haihaihaihai…

La Programmazione Orientata agli Aspetti (AOP) per alcuni è considerata il fallimento della programmazione ad oggetti perché destruttura l’architettura con cui sono collegati gli oggetti. Per altri invece è un toccasana e viene vissuta come un potenziamento della programmazione ad oggetti stessa perché permette di incapsulare certi comportamenti (aspetti, appunto) che sono trasversali al flusso di programmazione/elaborazione modellato nel grafo di oggetti che rappresenta un dominio. In questo post cercheremo di far capire cosa significa programmare ad aspetti, implementando i concetti dell’AOP nel nostro modello ad oggetti in modo semplice e diretto con il solo ausilio di CGLIB, senza scomodare nomi importanti come AspectJ e Spring AOP....
Continue reading...

Stairway to the stars (Guida introduttiva a Scala)

In questo post presentiamo una overview di Scala, linguaggio di programmazione Object Oriented e strongly typed, ma funzionale e molto potente che è completamente compatibile col bytecode Java. Quest’ultimo sta per compiere ormai vent’anni: forse è già nato il linguaggio che può offrirci ancora di più? Scopriamolo assieme, attraverso un confronto ragionato tra i due linguaggi e con l’ausilio di alcuni snippet di codice....
Continue reading...

Da meno di una settimana è finito Google I/O a San Francisco: anche quest’anno ci sono state molte novità interessanti! La cosa migliore è che anche chi non è andato dall’altra parte del mondo può rivedere tutti i talk sul canale YouTube . Fra i tanti talk uno che mi ha colpito è quello di Josh Bloch e Jeremy Manson....

Serializzazione in gerarchie di classi

Abbiamo già parlato più volte dell’interfaccia Java Serializable e di quanto è importante utilizzarla correttamente in application server J2EE in cluster. In questo post vediamo insieme un comportamento abbastanza peculiare e poco documentato che si presenta quando implementiamo questa interfaccia in una gerarchia di classi....
Continue reading...