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 modifier

L'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 modifier

Apache 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 modifier

Ce projet tourne autour des problématiques de recherche

Apache Hadoop modifier

Hadoop est un projet ombrelle spécialisé dans le calcul distribué.

Apache extras modifier

En 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 modifier

Les 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 modifier

Codehaus 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.

Google modifier

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 modifier

Ce consortium s'intéresse plus particulièrement aux intergiciels (middleware), mais regroupent plusieurs projets open-source.

Le « Java Community Process » (JCP) modifier

Les « Java Specification Requests » (JSR) modifier