☺
Scritto da
il 2015-04-23 22:11:16.0 alle 2015-04-23 22:11:16.0
Trollate totali: 12321
[java] oggi ho fatto una cosa difficile
Il sistema informatico su cui lavoro è piuttosto grande, e la qualità del codice e dei programmatori è scarsina.
Questo nel tempo ha portato a situazioni particolarmente difficili da diagnosticare, per questo abbiamo approntato man mano delle utility che usiamo sugli ambienti di supporto per individuare problematiche prima della messa in produzione.
Purtroppo alcuni cambi nei processi decisionali hanno portato un incremento del crappy code, e ci sono sempre più deroghe sulle applicazioni a non seguire gli standard di sviluppo.
Quello che succede è che le utility di cui sopra diventano man mano meno efficaci.
Così ieri mi è venuta in mente una soluzione che ho realizzato oggi e che sembra piuttosto promettente.
Ho scritto un agent con le instrumentation api di java, che si inserisce nella fase di classloading e altera il bytecode delle classi (usando la libreria javassist) per iniettare codice.
Devo dire che la documentazione è scarsissima, inoltre i classloader nested di websphere sono un casino da gestire (ho dovuto richiamare log4j via reflection usando il context classloader del thread perché se la metti in lib/ext ti si mischiano i logger!); ma il risultato è decisamente interessante.
L'utility che ho fatto oggi fa delle ispezioni negli oggetti all'interno delle sessioni utente, ma è una tecnica interessante che potrei espandere anche in altre situazioni.
Young professional woman and busy mom.