Fiche technique | |
---|---|
Type de produit : | Projet |
Auteur : | Apache |
Licence : | Apache License 2.0 |
Date de publication : | 1999 à 2011 |
Site Web : | https://jakarta.apache.org/ |
Introduction
L'Apache Jakarta était un projet de la fondation Apache ayant joué un rôle central dans le développement de bibliothèques et d'outils pour Java. Initialement créé pour gérer et organiser des sous-projets liés à Java, Jakarta était une plateforme pour les projets Java open-source, et a fourni de nombreuses bibliothèques très utilisées dans l'écosystème Java.
Histoire et évolution de Jakarta
- Origine : Le projet Jakarta a été lancé par Apache à l'année 1999, en collaboration avec Sun Microsystems (maintenant Oracle), pour encourager le développement open-source en Java. Il portait des bibliothèques Java populaires et proposait des solutions pour divers aspects du développement d'applications.
- Division en sous-projets : Jakarta abritait une grande variété de projets, certains devenus des fondations pour le développement
Java. Parmi les plus connus :
Nom Description Ant Un outil d'automatisation de build pour Java, ayant été une alternative importante à Make. Avalon Un cadre d'application pour les conteneurs de composantes Java, utilisé pour la gestion des composantes et l'injection de dépendances, semblable à l'IoC de Spring. Ce projet a depuis été arrêté, mais son influence se retrouve dans les pratiques modernes de conteneurisation de composantes. BCEL (Byte Code Engineering Library) Une bibliothèque pour analyser, modifier et générer des fichiers bytecode Java. Elle est notamment utilisée dans des cadres d'applications comme Hibernate et des outils d'analyse de bytecode pour modifier dynamiquement les classes Java à l'exécution. BSF (Bean Scripting Framework) Un cadre d'application pour intégrer divers langages de script dans Java (comme JavaScript, Python,...). BSF permet aux applications Java d'exécuter du code écrit dans d'autres langages de programmation, mais le projet est désormais inactif. Commons Un ensemble de bibliothèques Java réutilisables pour des fonctionnalités variées (Apache Commons est aujourd'hui indépendant). DB Un ensemble de sous-projets orientés base de données, dont le plus célèbre est Apache Torque, un ORM (Object-Relational Mapping) permettant de générer du code Java pour accéder à des bases de données relationnelles. Excalibur Composante modulaire basé sur Avalon, utilisé pour la gestion des services de connexion aux bases de données, de cache, et d'autres ressources d'entreprise. Excalibur se concentrait sur la gestion des composants réutilisables et la configuration des ressources. Gump Un outil d'intégration continue pour le build et le test de projets open-source. Il utilise des métadonnées pour suivre les dépendances entre projets Java et garantit qu'ils fonctionnent correctement ensemble. HiveMind Un cadre d'application pour la configuration et l'injection de dépendances, permettant aux composantes de se connecter les uns aux autres de manière modulaire. Il est similaire à Spring dans son approche IoC (Inversion de Contrôle). HttpComponents Bibliothèque pour créer et gérer des requêtes HTTP. Elle a remplacé l'ancien HttpClient de Jakarta et est aujourd'hui utilisée pour construire des clients HTTP robustes et efficaces, notamment dans des applications Web et des microservices. James Serveur de messagerie Java (Java Apache Mail Enterprise Server), proposant des services de messagerie électronique SMTP, IMAP et POP3, et est très utilisé pour construire des applications de messagerie. JCS (Java Caching System) Un système de cache distribué pour Java, conçu pour améliorer les performances en réduisant les accès à la base de données en mettant en cache des données fréquemment consultées. JMeter Un outil de test de performance et de charge pour les applications Web et les serveurs. JMeter permet de simuler de multiples utilisateurs et de mesurer la performance des applications web, API, bases de données,... Logging Plus connu sous le nom Apache Log4j, c'est une bibliothèque de journalisation pour Java permettant aux applications de gérer les journaux de bord de manière flexible et performante. Lucene Une bibliothèque de recherche full-text permettant de rechercher du texte dans des documents volumineux. Lucene est très utilisé pour les moteurs de recherche et les systèmes d'indexation de texte. Maven Un outil de gestion de projet et de build, permettant de gérer les dépendances, de compiler le code, d'effectuer des tests, et de déployer des projets Java de manière cohérente et automatisée. Maven est devenu une norme dans la gestion des projets Java. POI (Poor Obfuscation Implementation) Une bibliothèque Java pour lire et écrire des fichiers Microsoft Office (Excel, Word, PowerPoint). POI est largement utilisé dans les applications nécessitant l'intégration avec les formats de fichier Office. Portals Un ensemble de projets pour construire des portails Web. Le plus notable est Jetspeed, un moteur de portail pour Java permettant d'organiser des applications web en portlets. Struts Un cadre d'application de développement d'applications Web en Java, basé sur le modèle MVC. Taglibs (Tag Libraries) Une collection de bibliothèques de balises JSP (JavaServer Pages) pour faciliter le développement de pages web dynamiques. Les taglibs fournissent des balises prêtes à l'emploi pour des fonctionnalités communes. Tapestry Un cadre d'application de développement d'applications Web basé sur les composantes. Tapestry se distingue par son approche modulaire et sa capacité à construire des interfaces utilisateur dynamiques et interactives en Java. Tomcat Initialement développé au sein de Jakarta, Tomcat est devenu un projet à part entière et un des conteneurs de servlets les plus utilisés. Turbine Un cadre d'application de développement rapide pour les applications Web, incluant des modules pour la gestion des utilisateurs, la sécurité, et la génération dynamique de contenu. Il s'adresse aux applications web nécessitant une gestion complète des utilisateurs. Velocity Un moteur de gabarits pour générer du code ou des pages HTML à partir de modèles. Il est utilisé dans des cadres d'application MVC pour séparer la logique de l'affichage et faciliter la génération de contenu dynamique. Watchdog Un ensemble de tests de conformité pour les spécifications de Java Servlet et JSP, utilisé pour vérifier la compatibilité des implémentations avec les standards Java EE. - Migration vers d'autres projets Apache : Avec le temps, plusieurs projets Jakarta ont été déplacés en dehors de Jakarta pour devenir des projets autonomes sous la fondation Apache (exemple Apache Tomcat, Apache Maven). Cette restructuration a fini par diminuer l'importance de Jakarta comme projet central.
- Eclipse Jakarta EE : En 2017, Oracle a transféré Java EE à la fondation Eclipse sous le nom de Jakarta EE. Bien que le nom soit identique, Eclipse Jakarta EE est distinct d'Apache Jakarta, et représente l'évolution des spécifications Java EE sous la fondation Eclipse.
Les caractéristiques et objectifs d'Apache Jakarta
À son apogée, Jakarta visait à :
- Développer et maintenir des outils et bibliothèques open-source en Java pour faciliter le développement d'applications, en couvrant des besoins variés, allant de la gestion des serveurs web aux bibliothèques utilitaires.
- Favoriser la collaboration communautaire autour des projets Java, permettant aux développeurs de contribuer et d'utiliser librement ces outils.
- Standardiser les solutions dans l'écosystème Java, en fournissant des outils stables et largement adoptés.
Héritage d'Apache Jakarta
- Apache Commons : C'est un ensemble de bibliothèques utilitaires Java issues de Jakarta restant très utilisées aujourd'hui.
- Popularisation de Java open-source : Jakarta a contribué à l'adoption de pratiques open-source dans la communauté Java et a inspiré des cadres d'applications et outils devenus des standards.
- Base des infrastructures Java modernes : Jakarta a posé les bases pour les cadres d'applications et les outils modernes en Java, influençant de nombreux projets et évolutions technologiques.
Différence entre Apache Jakarta et Eclipse Jakarta EE
- Apache Jakarta : Un ensemble historique de bibliothèques Java géré par Apache, aujourd'hui en grande partie intégré dans des projets Apache autonomes ou archivés.
- Eclipse Jakarta EE : La continuation des spécifications Java EE sous la gestion de la fondation Eclipse, avec des mises à jour et des développements modernes pour les entreprises.
Dernière mise à jour : Jeudi, le 12 septembre 2024