JCache fai-da-te con JBoss 7 e Infinispan

In un post precedente abbiamo già visto cos’è Infinispan e come si configura una cache con JBoss AS 7. In vista degli ultimi ritocchi a Java EE 7, Infinispan tende la mano a CDI con il nuovo modulo infinispan-cdi, fornendo al momento una parziale implementazione alla specifica JCache (JSR-107) che, come suggerisce il nome, regolamenterà la gestione della cache nelle...
Continue reading...

Il Pattern Decorator e Java EE 6: quando il vecchio si fa nuovo con CDI

Per chi è cresciuto a pane e GoF non sarà certo la prima volta che sente parlare del Pattern Decorator. In due parole, questo pattern permette di aggiungere in modo modulare funzionalità, a compile-time, ai metodi di una classe esistente, mantenendone l’interfaccia intatta. L’aggiunta o la rimozione di queste funzionalità risulta quindi totalmente trasparente all’utilizzatore. Nel contesto attuale dello sviluppo Java, sempre più governato da “container” che risolvono automaticamente le dipendenze, implementare questo pattern poteva non essere banale fino a ieri. La nuova specifica Context and Dependancy Injection (CDI) introdotta in Java EE 6 invece supporta nativamente i decoratori: vediamo come....
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...