Commons Apache - partea I
Majoritatea frameworkurilor care le folosim au in classpath cateva jar-uri commons-ceva.jar (cum ar fi commons-io.jar, commons-lang.jar, commons-configuration.jar, etc). Jar-urile acestea fac parte la randul lor dintr-un framework si este vorba de frameworkul (hai sa ii zicem framework desi nu e altceva decat un set de componente sau pachete refolosibile) Commons Apache.
Am observat ca sunt destui cei care nu folosesc commons si practic nu fac altceva decat sa reinventeze roti. Folosind commons de la Apache practic ne simplificam munca, scriem cod mai putin si mai bun pentru ca folosim componente deja testate. Dar sa las vorbaria si sa prezint Commons Apache.
Commons Apache e impartit in trei categorii:
-
The Commons Proper - componentele reutilizabile pe care le regasim folosite de alte frameworks si care sunt released
- The Commons Sandbox - contine proiectul sau workspace-ul unde se face development la aceste componente sau componentele care sunt inca in dezvoltare si nu sunt release
- The Commons Dormant - componentele care sunt inactive (cele depasite sau obsolete, cele care au fost puse in stand-by, etc)
Cele care ne intereseaza in munca de zi cu zi si cele care ne ajuta sunt cele din Commons Proper:
| Attributes | Api pentru lucru cu attribute metadata (un exemplu de metadata sunt informatiile stocate impreuna cu fotografiile digitale: tipul aparatului, ziua, ora, timp expunere, etc) |
| BeanUtils |
Wrappere peste api-urile Java reflection and introspection APIs. Reduce complexitatea in lucrul cu aceste api-uri. |
| Betwixt |
Servicii de mapare intre JavaBeans si XML |
| Chain | Implementare generica a patternului "Chain of Responsibility" |
| CLI |
Parser de argumente ce se transmit din linia de comanda |
| Codec | Diversi algoritmi de encoding/decoding (fonetica, base64, URL, etc). |
| Collections | extindere a Java Collections Framework |
| Configuration |
pentru citirea sau scrierea din diverse fisiere de configurare sau preferinte in diverse formate (properties, xml, etc) |
| Daemon | Diverse mecanisme de invocare a codului java in still unix-daemon-like |
| DBCP |
Servicii pentru connection pooling pentru baze de date |
| DbUtils | Diverse utils pentru lucrul cu JDBC |
| Digester | XML-to-Java-object mapping utility. |
| Discovery | Tools for locating resources by mapping service/reference names to resource names. |
| EL |
Interpretor pentru Expression Language definit de specificatia JSP 2.0 |
| Librarie pentru trimis email-uri din Java | |
| Exec |
API pentru executare din Java de procese externe sau pentru lucru cu variabile de environment |
| FileUpload | Upload de fisiere pentru servleti sau applicatii web |
| IO |
O colectie de utilitare pentru lucrul cu I/O (de ex copiere de fisiere) |
| JCI | Java Compiler Interface |
| Jelly | XML based scripting and processing engine. |
| Jexl | Expression language which extends the Expression Language of the JSTL. |
| JXPath | Utilitare pentru manipularea Java Beans folosind sintaxa XPath |
| Lang | Adauga functionalitate claselor din pachetul java.lang. |
| Launcher |
Lansator de aplicatii Java, independent de platforma sau OS |
| Logging |
Wrapper peste diverse frameworks sau api-uri de logare (JDK logging, log4j) |
| Math |
Componente matematice si statistice |
| Modeler | Ofera mecanisme pentru creearea de Model MBeans compatibile cu specificatia JMX |
| Net | Diverse utilitare de retea si implementari de protocoale |
| Pool | Generic object pooling |
| Primitives | Componenta ce simplifica lucrul cu obiectele care suporta primitivele din Java |
| Proxy |
Biblioteca pentru creeare dinamica de proxy-uri(vezi Proxy design pattern) |
| SCXML | Implementeaza specificatia State Chart XML avand scopul de creea si mentine un Java SCXML engine. Capabil de executarea unui state machine definit cu ajutorul unui document SCXML document |
| Transaction | Implementari pentru locks pe mai multe nivele, collectii tranzactionale si acces tranzactional la fisiere |
| Validator |
Framework pentru definirea de validatori si reguli de validari cu ajutorului fisierelor xml. |
| VFS |
Componenta Virtual File System pentru tratarea fisierelor, FTP, SMB, ZIP ca si cum ar fi un singur sistem logic de fisiere |
Va urma. Soon.