Apache Commons: componenti riusabili per Java

Apache Commons: componenti riusabili per Java

Il progetto Apache Commons ha come obiettivo quello di sviluppare e manutenere componenti software riutilizzabili per Java. Tali componenti sono sviluppati in modo da essere indipendenti da altri framework o prodotti software e servono come soluzione a problemi ricorrenti nell'ambito della programmazione. FMJ9RUP6WVQ5

Apache MyFaces: un’implementazione Open Source delle specifiche JSF
Tutorial Apache POI: scriviamo e leggiamo un documento Word
Apache Velocity: un template Engine in Java

Il progetto Apache Commons ha come obiettivo quello di sviluppare e manutenere componenti software riutilizzabili per Java. Tali componenti sono sviluppati in modo da essere indipendenti da altri framework o prodotti software e servono come soluzione a problemi ricorrenti nell’ambito della programmazione.

Il progetto è diviso in tre parti:

  • Sandbox repository: vi sono i progetti ancora in versione provvisoria che devono ancora essere testati per essere promossi a Community;
  • Dormant repository: vi sono i progetti che hanno avuto degli sviluppi limitati in tempi recenti e probabilmente verrano dismessi in futuro;
  • Community repository: vi sono i progetti che fanno realmente parte del progetto Apache Commons.

Possiamo raggruppare i vari componenti del Progetto Commons in varie categorie:

Categoria ComponentiComponenti
WebFileUpload, Proxy, Email e Net
XMLBetwixt, Digester, Jelly, e JXPath
UtilitiesBeanUtils, Logging e Validator
PackagesCodec and Modeler
ExtensionsCLI, Discovery, Lang, IO and Collections
DBDBCP e Pool
OthersAttributes, Exec, Compress

Diamo ora uno sguardo ai componenti ed elenchiamo una breve descrizione:

ComponentiDescrizione
AttributesConsente di utilizzare lo stile degli attributi utilizzato in .Net/C# in Java
BeanUtilsUn Wrapper per lle API di Introspection e Reflection
BetwixtServizion per il mapping di JavaBeansin documenti XML e viceversa
ChainImplementazione del Pattern Chain of Responsibility
CLIParser di argomenti passati attraverso linea di comando
CodecAlgoritmi di  encoding/decoding (ad esempio base64, URL).
CollectionsEstende il Java Collections Framework.
CompressDefinisce delle API per lavorare con  tar, zip e bzip2 files.
ConfigurationPermette di leggere file di configurazione/prefereze in vari  formati.
DaemonPermette di definire Daemon (Unix) e Servizi (Windows) tramite codice Java
DBCPServizion di Database connection pooling.
DbUtilsLibreria di aiuto per JDBC.
DigesterUtility per il mapping XML-to-Java-object.
DiscoveryStrumento per localizzare risorse utilizzando il mapping service/reference names su resource names.
ELInterprete per l’ Expression Languagedefinito dalle JSP 2.0.
EmailLibreria per inviare  e-mail da Java.
ExecAPI per interagire con processi esterni in Java.
FileUploadAggiunge la funzione di File upload a servlets e web applications.
IOCollezione di I/O utilities.
JCIJava Compiler Interface
JellyMotore di scripting XML.
JexlExpression language che estende l’Expression Language di JSTL.
JXPathUtilities per manipolare Java Beans usando la sintassi  XPath.
LangFornisce funzionalità extra alle classi del package java.lang.
LauncherCross platform Java application launcher.
LoggingWrapper costruito intorno ad una varietà di logging API.
MathComponente di funzionalità matematiche e statistiche.
ModelerMechanismo per creare Model MBeans compatibili con le JMX specification.
NetInsieme di utility per la rete ed implementazione di protocolli di rete.
PoolComponente per l’bject pooling.
PrimitivesUtility per lavorare più facilmente e veloce con i tipi primitivi di Java.
ProxyLibraria per creare Proxy.
SanselanLibreria per immagini.
SCXMLImplementazione della specifica State Chart XML con lo scopo di creare e manutenere un motore Java SCXML.
TransactionImplementazione di lock multilivello, transactional collections e transactional file.
ValidatorFramework per definire validators e regole di validation in un xml file.
VFSComponente di Virtual File Systemper trattare files, FTP, SMB, ZIP come un singolo logical file system.

Negli articoli successivi esamineremo alcuni di questi componenti.

FMJ9RUP6WVQ5

COMMENTS

WORDPRESS: 0