Développer en Java/Forges et bibliothèques
En tant que développeur Java, vous devez savoir où vous fournir en bibliothèques.
Le projet Apache
modifierL'objectif du projet Apache est de délivrer des briques logicielles open-source développées de façon communautaire. Toutes ces briques sont mises à disposition selon la licence Apache. Il s'agit notamment de fournir des implémentations de JSR.
Apache Commons
modifierApache Commons vise à étendre le JDK en fournissant la plupart du temps des lots de classes utilitaires regroupant des extraits de codes fréquemment utilisés.
Remarquons notamment :
- BeanUtils
- Manipulation de JavaBeans ;
- CLI
- Manipulation d'arguments passés en ligne de commande ;
- Codec
- Différents algorithmes de codage (base64, URL…) ;
- Collections
- Manipulation des collections ;
- Daemon
- Intégration avec les services Windows ou les daemon UNIX. Il s'agit de permettre à une application Java censée fonctionner en permanence sur un système de s'intégrer à la gestion des services pour démarrer ou s'arrêter en même temps que l'OS ;
- FileUpload
- Upload pour les applications Web basée sur Servlet.
- I/O
- Manipulation des flux d'entrés/sorties ;
- Logging
- Une API d'abstraction au dessus des différentes bibliothèques de journalisation ;
- Math
- Mathématiques ;
- Primitives
- Fournit notamment des implémentations des collections disponibles dans le JDK mais permettant de stocker des types primitifs ;
- VFS
- Une API pour les système de fichiers virtuels (FTP, archives zip).
Apache Lucene
modifierCe projet tourne autour des problématiques de recherche
Apache Hadoop
modifierHadoop est un projet ombrelle spécialisé dans le calcul distribué.
Apache extras
modifierEn partenariat avec Google Code, cette forge, dissociée de celle de la fondation Apache, vise à accueillir des projets liés aux projets Apache mais qui ne peuvent y être mêlé pour des raisons diverses. Par exemple, il peut s'agir de projets qui ne peuvent être sous licence Apache.
Autres projets Apache
modifierLes projets Apache sont nombreux et concernent différents domaines d'application :
- Construction de projets
- Ant, Maven, BuildR, Ivy
- Frameworks Web
- Struts, Tapestry, Turbine, Stripes, Wicket, Click
- Bases de données
- Cassandra, Derby
- Serveurs d'applications JEE et composants
- Tomcat, OpenEJB, OpenJPA
JBoss
modifier- Le serveur d'application WildFly (anciennement JBoss)
- parmi les serveurs d'application JEE les plus utilisés ;
- Hibernate
- solution de mapping objet-relationnel très plébiscitée
CodeHaus
modifierCodehaus n'héberge que des projets sous licence open-sources (Apache notamment). Avant d'être accueillis, chaque projet doit avoir une base de code solide. Codehaus héberge plusieurs projets autour de Java.
Java est un des langages utilisés chez Google qui propose certains de ses outils, notamment
- Google Web Toolkit
- Framework RIA pour le web. Les interfaces, écrites en Java sont compilées en JavaScript pour être interprétées par le navigateur ;
- Google Guice
- Un moteur d'injection de dépendances, à l'origine d'une spécification ;
- Guava
- Extension de l'API du JDK, à la manière de Apache Commons ;
- Android
- Système d'exploitation pour périphériques mobiles (téléphones, tablettes) basé sur Linux et dont l'API permet de développer des applications embarquées en Java ;
- Google App Engine
- Ce n'est pas une bibliothèque ni un outil mis à disposition par Google mais une plate-forme de cloud-computing capable d'accueillir des applications Java.
S'ajoute à cela les nombreux projets hébergés sur la forge de Google.
Le consortium OW2
modifierCe consortium s'intéresse plus particulièrement aux intergiciels (middleware), mais regroupent plusieurs projets open-source.