Développons en Java
v 2.40   Copyright (C) 1999-2023 .   
98. JShell 100. Ant Imprimer Index Index avec sommaire Télécharger le PDF

 

99. Les outils libres et commerciaux

 

chapitre    9 9

 

Niveau : niveau 4 Supérieur 

 

Pour développer des composants en Java (applications clientes, applets, applications web, services web, ... ), il existe une large gamme d'outils commerciaux et libres pour répondre à ce vaste marché.

Comme dans d'autres domaines, les avantages et les inconvénients de ces outils sont semblables et fonction de leur catégorie bien qu'ils ne puissent pas être complètement généralisés :

  Avantages Inconvénient
Outils commerciaux

plus de fonctionnalité

une meilleure ergonomie

une hot line dédiée

le prix
Outils libres

la gratuité

des mises à jour fréquentes (variable selon le projet)

pas de support officiel (aide communautaire par les forums)

Quelques outils libres n'ont que peu de choses à envier à certains de leurs homologues commerciaux : ainsi, par exemple, Tomcat du projet Jakarta est l'implémentation de référence pour ce qui concerne les servlets et les JSP.

Enfin certains éditeurs, surtout dans le domaine des IDE, proposent souvent une version limitée (dans les fonctionnalités ou dans le temps) mais gratuite qui permet d'utiliser et d'évaluer le produit.

L'évolution de ces outils suit l'évolution du marché concernant Java : développement d'applets (web client), d'applications autonomes et C/S et maintenant développement côté serveur (applications et services web).

La liste des produits de ce chapitre est loin d'être exhaustive mais représente les plus connus ou ceux que j'utilise.

Ce chapitre contient plusieurs sections :

 

99.1. Les environnements de développement intégrés (IDE)

Les environnements de développements intégrés regroupent dans un même outil la possibilité d'écrire du code source, de concevoir une application de façon visuelle par assemblage de beans, d'exécuter et de déboguer le code.

D'une façon générale, ils sont tous très gourmands en ressources machines : un processeur rapide, 256 Mo de RAM pour être à l'aise ... En fait la plupart de ces outils sont partiellement ou totalement écrits en Java.

Le choix d'un IDE doit tenir compte de plusieurs caractéristiques : ergonomie et convivialité pour faciliter l'utilisation, fonctionnalités de bases et avancées pour accroître la productivité, robustesse, support des standards, ... La plupart des éditeurs proposent une version gratuite qui permet d'évaluer leur produit.

 

99.1.1. Eclipse

Eclipse est un projet open source à l'origine développé par IBM pour ses futurs outils de développement et offert à la communauté. Le but est de fournir un outil modulaire capable non seulement de faire du développement en Java mais aussi dans d'autres langages et d'autres activités. Cette polyvalence est liée au développement de modules (plug-in) réalisés par la communauté ou des entités commerciales.


Licence : EPL (eclipse Public Licence)
Statut :
Site web : http://www.eclipse.org

Version

Date de diffusion

 

3.0

juin 2004

 

3.1 juin 2005 10 projets
3.2 juin 2006 nom de code Callisto, 10 projets
3.3 juin 2007 nom de code Europa, 21 projets
3.4 juin 2008 nom de code Ganymede, 23 projets
3.5 juin 2009 nom de code Galileo, 33 projets
3.6 juin 2010 nom de code Helios, 77 projets
3.7 juin 2011 nom de code Indigo, 62 projets
4.1 juin 2011 nom de code Juno, 71 projets
4.2 juin 2012 nom de code Juno, 71 projets
4.3 juin 2013 nom de code Kepler, 72 projets
4.4 juin 2014 nom de code Luna, 76 projets, support de Java 8
4.5 juin 2015 nom de code Mars, 79 projets
4.6 juin 2016 nom de code Neon, 84 projets
4.7 juin 2017 nom de code Oxgyen, 83 projets
4.8 juin 2018 nom de code Photon, 85 projets
4.9 septembre 2018 nom de code 2018-09
4.10 décembre 2018 nom de code 2018-12
4.11 mars 2019 nom de code 2019-03
4.12 juin 2019 nom de code 2019-06
4.13 septembre 2019 nom de code 2019-09
4.14 décembre 2019 nom de code 2019-12
4.15 mars 2020 nom de code 2020-03
4.16 juin 2020 nom de code 2020-06
4.17 septembre 2020 nom de code 2020-09
4.18 décembre 2020 nom de code 2020-12
4.19 mars 2021 nom de code 2021-03
4.20 juin 2021 nom de code 2021-06
4.21 septembre 2021 nom de code 2021-09
4.22 décembre 2021 nom de code 2021-12
4.23 mars 2022 nom de code 2022-03
4.24 juin 2022 nom de code 2022-06
4.25 septembre 2022 nom de code 2022-09
4.26 décembre 2022 nom de code 2022-12
4.27 mars 2023 nom de code 2023-03
4.28 juin 2023 nom de code 2023-06
4.29 septembre 2023 nom de code 2023-09
4.30 décembre 2023 nom de code 2023-12

La fondation Eclipse gère de nombreux sous-projets parmi lesquels :

Projet Description
Eclipse ce projet développe l'architecture et la structure de la plate-forme Eclipse.
Eclipse Tools ce projet développe ou intègre des outils à la plate-forme pour permettre à des tiers de l'enrichir. Il possède plusieurs sous-projets tels que CDT (plug-in pour le développement en C/C++), AspectJ (AOP), GEF (Graphical Editing Framework ), PHP (plug-in pour le développement en PHP), Cobol (plug-in pour le développement en Cobol), VE (Visual Editor) pour la création d'IHM.
Eclipse Technology ce projet, divisé en trois catégories, propose d'effectuer des recherches sur des évolutions de la plate-forme et des technologies qu'elle met en oeuvre.
Web Tools Platform (WTP) ce projet a pour but d'enrichir la plate-forme enfin de proposer un framework et des services pour la création d'outils de développement d'applications web. Il est composé de plusieurs sous-projets : WST (Web Standard Tools), JST (J2EE Standard Tools), ATF (Ajax Toolkit Framework), Dali (mapping avec JPA) et JSF (Java Server Faces)
Test and Performance Tools Platform (TPTP) ce projet a pour but de développer une plate-forme servant de support à la création d'outils de tests et d'analyses
Business Intelligence and Reporting Tools (BIRT) ce projet a pour but de développer une plate-forme facilitant l'intégration de générateur d'états. Il est composé de 4 sous-projets : ERD (Eclipse Report Designer), WRD (Web based Report Designer), ERE (Eclipse Report Engine) et ECE (Eclipse Charting Engine).
Eclipse Modeling ce projet contient plusieurs sous-projets dont EMF (Eclipse Modeling Framework) et UML2 pour une implémentation d'UML reposant sur EMF
Data Tools Platform (DTP) ce projet a pour but de manipuler des sources de données (bases de données relationnelles)
Device Software Development Platform ce projet a pour but de créer des plugins pour faciliter le développement d'applications sur appareils mobiles
Eclipse SOA Tools Platform ce projet a pour but de développer des outils pour faciliter la mise en oeuvre d'architecture de type SOA

Le site officiel est à l'url www.eclipse.org/

Bien que développé en Java, les performances à l'exécution d'Eclipse sont très bonnes car il n'utilise pas Swing pour l'interface homme-machine mais un toolkit particulier nommé SWT associé à la bibliothèque JFace. SWT (Standard Widget Toolkit) est développé en Java par IBM en utilisant au maximum les composants natifs fournis par le système d'exploitation sous-jacent. JFace utilise SWT et propose une API pour faciliter le développement d'interfaces graphiques.

Eclipse ne peut donc fonctionner que sur les plates-formes pour lesquelles SWT a été porté.

SWT et JFace sont utilisés par Eclipse pour développer le plan de travail (Workbench) qui organise la structure de la plate-forme et les interactions entre les outils et l'utilisateur. Cette structure repose sur trois concepts : la perspective, la vue et l'éditeur. La perspective regroupe des vues et des éditeurs pour offrir une vision particulière des développements. En standard, Eclipse propose huit perspectives.

Les vues permettent de visualiser et de sélectionner des éléments. Les éditeurs permettent de visualiser et de modifier le contenu d'un élément de l'espace de travail.

 

99.1.2. Netbeans

Netbeans est un environnement de développement open source écrit en Java. Le produit est composé d'une partie centrale à laquelle il est possible d'ajouter des modules.

Netbeans est un IDE open source racheté et développé par Sun Microsystems.

Licence : open source
Statut : mises à jour régulières
Site web : netbeans.org/

Version

Date de diffusion

 

3.5

juin 2003

 

3.6 avril 2004  
4.0 decembre 2004  
4.1 mai 2005  
5.0 janvier 2006  
5.5 octobre 2006  
6.0 décembre 2007  
6.1 avril 2008  
6.5 novembre 2008  
6.7 juin 2009  
6.8 Décembre 2009  
6.9 Juin 2010  
7.0 Avril 2011  
7.0.1 Août 2011  
7.3 Février 2013  
7.4 Octobre 2014  
8.0 Mars 2014 support Java 8, Java ME Embedded 8
8.0.2 Novembre 2014  
9 Juillet 2018 Projet Apache (Incubating), support de Java 10
10 Décembre 2018 Projet Apache (Incubating), support de Java 11, JUnit 5
11 Avril 2019 Projet Apache (Incubating), support de Java 12
11.1 Juillet 2019 Projet Apache Top Level
11.2 Octobre 2019  
11.3 Février 2020  
12.0 LTS Juin 2020  
12.1 Septembre 2020  
12.2 Décembre 2020  
12.3 Mars 2021  
12.4 Mai 2021  
12.5 Septembre 2021  
12.6 Novembre 2021  
13 Mars 2022  
14 Juin 2022  
15 Août 2022  
16 Novembre 2022  
17 Février 2023  
18 Mai 2023  
19 Septembre 2023  

Netbeans propose des fonctionnalités permettant le développement d'applications standalone (AWT/Swing), web (Servlets, JSP, Struts, JSF), mobile (J2ME) ou d'entreprise (J2EE/Java EE).

Il fonctionne sous Windows, Linux, Mac OS X et Solaris.

Netbeans est modulaire et propose plusieurs plugins officiels :

 Mobility Pack Pour le développement d'applications mobiles avec une conception WYSIWYG. Il existe une version pour le développement avec le profile CLDC/MIDP et une avec le profile CDC
 Visual Web Pack Pour le développement d'applications web avec une conception WYSIWYG
 Enterprise Pack Pour le développement de service web et de composants pour une architecture de type SOA avec une conception WYSIWYG
 Profiler Pour profiler une application
 C/C++ Pack Pour le développement d'applications en C/C++

Il existe aussi de nombreux plugins développés par des tiers (une liste peut être consultée à l'url netbeans.org/catalogue/index.html )

Quelques fonctionnalités de Netbeans sont particulièrement intéressantes :

 

99.1.3. IntelliJ IDEA

Logo IntelliJ IDEA IntelliJ IDEA est un IDE développé par JetBrains.

Licence : commerciale, une version gratuite (Community Edition) existe
Statut : mises à jour régulières
Site web : www.jetbrains.com/idea/

Version

Date de diffusion

 

9.0

décembre 2009

 

10.0 décembre 2010  
11 décembre 2011  
12 décembre 2012  
13 décembre 2013  
14 novembre 2014  
15    
2016    
2017    
2018    
2019    
2020.1 avril 2020  

IntelliJ IDEA est proposé en deux éditions :

IntelliJ est disponible sous Windows, Linux et Mac OS X.

 

99.1.4. Oracle JDeveloper

JDeveloper est un IDE riche en fonctionnalités qui couvre de nombreux aspects du développement : modélisation UML, écriture du code, débogage, tests, profiling et déploiement d'applications.

Licence : disponible gratuitement après un enregistrement chez OTN
Statut :
Site web : https://www.oracle.com/application-development/technologies/jdeveloper.html

Version

Date de diffusion

 

10.1.2

 

 

10.1.3    
11g avril 2010  
12c juillet 2013 version 12.2.1.3.0 publiée en août 2017

Ecrit en Java, JDeveloper est disponible sur plusieurs plates-formes : Windows, Mac, Linux et plusieurs Unix.

JDeveloper propose des extensions pour enrichir l'outil en fonctionnalités notamment celles proposées par des tiers.

JDeveloper propose bien sûr une intégration facilitée de plusieurs produits d'Oracle notamment la base de données et le serveur d'applications et surtout une forte intégration et une mise en oeuvre d'Oracle ADF.

JDeveloper version 10.1.2

Cette version propose de nombreuses fonctionnalités dont voici quelques-unes des plus intéressantes :

JDeveloper version 10.1.3

La version 10.1.3.2 apporte de nombreuses fonctionnalités et améliorations par rapport à la version précédente, en voici quelques-unes des plus importantes :

JDeveloper 10.1.3 est proposé en trois versions :

JDeveloper est particulièrement intéressant pour mettre en oeuvre le framework Oracle ADF.

 

99.1.5. IBM Rational Application Developer for WebSphere Software

Rational Application Developer for WebSphere Software repose sur la version 3.2 d'Eclipse et propose le développement d'applications web, de portails, d'applications d'entreprises ou standalones ou de services web pour mettre en oeuvre une SOA. Cet outil s'intègre parfaitement avec les outils IBM et Rational.

Licence : commerciale
Statut :
Site web : https://www.ibm.com/products/rad-for-websphere-software

Version

Date de diffusion

 

6.0

Janvier 2005

 

7.5   repose sur Eclipse 3.4

8.0

Novembre 2011

repose sur Eclipse 3.6

8.5   repose sur Eclipse 3.6 avec support de Java 7
9.0 2013 repose sur Eclipse 4.2
9.7 Novembre 2018 repose sur Eclipse 4.7, support de Java EE 8

 

99.1.6. IBM Rational Team Concert

Rational Team Concert repose Eclipse et sur Jazz d'IBM pour la gestion collaborative et la gestion du cycle de vie des développements.

Licence : commerciale
Statut :
Site web :

Version

Date de diffusion

 

1.0

Juin 2008

 

2.0

Juin 2009

 

3.0

Novembre 2010

 

4.0

Juin 2012

 

5.0

Juin 2014

 

5.0.1

Septembre 2014

 

6.0    

 

99.1.7. MyEclipse

MyEclipse est un IDE basé sur Eclipse développé par Genuitec.

Licence : commerciale
Statut :
Site web : https://www.genuitec.com/products/myeclipse/

Version

Date de diffusion

 

5.1

 

 

7.0    
7.1 avril 2009  
7.5 juin 2009  
8.0 novembre 2009  
8.6 novembre 2010  
9.1 juillet 2011  
10.0 novembre 2011  
10.6 juillet 2012  
10.7    
2013    
2014    
2015    
2016   Support de Java 8, repose sur Eclipse Mars
2017   Support Angular 2 et 4 (CI 4), repose sur Eclipse Neon
2018 août 2018 Support de Java 10, Java EE 8, repose sur Eclipse Photon
2019   Support de Java 11, repose sur Eclipse 2018-12
2020.5   Support de Java 14, repose sur Eclipse 2020-03
2020.9   Support de Quarkus, Docker, repose sur Eclipse 2020-06
2021.5   Support de Java 15 et 16, Tomcat 9, Jakarta EE 9, repose sur Eclipse 2021-03
2022.1   Support de Java 17, Jakarta EE 9.1 et Vue, repose sur Eclipse 2021-12
2023.1   Support de Java 20, Jakarta EE 10, Spring 6, Spring Boot 3, Hibernate 6

MyEclipse regroupe de nombreux plugins dont certains sont inédits comme par exemple le portage de Matisse de NetBeans sur Eclipse.

 

99.1.8. IBM Websphere Studio Application Developper

Websphere Studio Application Developper (WSAD) représente le nouvel outil de développement d'applications Java/web d'IBM. Il représente une fusion de nombreuses fonctionnalités des outils Visual Age for Java et Websphere Studio. Le coeur de l'outil est composé par Websphere Studio Workbench dont une partie du code a été fournie à la communauté open source pour devenir le projet Eclipse.

Licence : commerciale
Statut : remplacé par le produit Rational Application Developer for WebSphere Software

Version

Date de diffusion

 

4.0

 

orienté développement Java/web : il ne permet pas de développement d'applications graphiques en mode RAD.

 

99.1.9. Embarcadero (Borland/CodeGear) JBuilder

Borland est spécialisé depuis des années dans la création d'outils de développement possédant une excellente réputation. Ainsi Jbuilder est un IDE ergonomique qui génère un code "propre". Depuis sa version 3.5, JBuilder est écrit en Java ce qui lui permet de s'exécuter sans difficulté sur plusieurs plates-formes notamment Windows, Linux ou Solaris.

Licence : commercial, une version (foundation) téléchargeable gratuitement
Statut :
Site web : https://www.embarcadero.com/products/jbuilder

Version

Date de diffusion

 

2006

 

existe en plusieurs éditions :

  • foundation : téléchargeable gratuitement
  • developer
  • entreprise

2007

 

basée sur Eclipse, maintenue et diffusée par sa filiale CodeGear ;
existe en plusieurs éditions :

  • JBuilder Foundation 2007 (téléchargeable gratuitement après enregistrement)
  • JBuilder Developper 2007
  • JBuilder Professional 2007
  • Jbuilder Enterprise 2007
2008 avril 2008  
2008 R2 avril 2009  

Le produit dispose de nombreuses caractéristiques qui facilitent le travail du développeur : la technologie CodeInsight facilite grandement l'écriture du code dans l'éditeur, de nombreux assistants facilitent la génération de code ...

 

99.1.10. Sun Java Studio Creator

L'environnement de développement intégré Java Studio Creator de Sun permet de générer des applications Web à l'aide de la technologie Java notamment avec les Java ServerFaces et les portlets.

Licence : gratuit
Statut : remplacé par NetBeans
Site web :

Sun Java Studio Creator version 1.0

 Cette première version de l'outil est payante. C'est un des premiers outils à exploiter les possibilités pour faciliter la mise en oeuvre des JSF.

Sun Java Studio Creator version 2.0

Cette seconde version est téléchargeable gratuitement après une inscription au SDN (Sun Developer Network).

Java Studio Creator 2 utilise Netbeans 4.1 comme base. Le package d'installation contient un JDK, le serveur d'applications Sun Java System Application Server 8.x et une base de données

 

99.1.11. JCreator

JCreator est un IDE développé par Xinox particulièrement rapide car il est écrit en code natif.

Licence : commerciale, une version gratuite (LE) est téléchargeable
Statut :
Site web :

Version

Date de diffusion

 

3.5

décembre 2004

 

4.0

mai 2006

Il existe deux éditions :

  • La version LE : téléchargeable gratuitement
  • La version Pro : payante
4.5 aout 2007  
5.0 mars 2010  

 

99.1.12. BEA Workshop

BEA Workshop est une famille d'IDE développée par BEA qui utilise Eclipse comme base.

Licence :
Statut :
Site web :

Il existe plusieurs éditions :

 

99.1.13. IBM Visual Age for Java

IBM proposait une famille d'outils pour le développement avec différents langages dont une version dédiée à Java.

VAJ n'est plus supporté par IBM : il est remplacé par la famille d'outils Websphere Studio Application Developper.

Visual Age for Java (VAJ) était un outil novateur dans son ergonomie et son utilisation qui étaient complètement différentes des autres EDI. Les débuts de son utilisation étaient parfois déroutants mais la persévérance permettait de révéler toute sa puissance.

La fenêtre principale (plan de travail) est séparée en deux parties :

Par défaut le code est éditable par méthode mais depuis la version 3.5, il est toutefois possible de visualiser le code source complet, cependant, les opérations réalisables dans ce mode sont moins nombreuses.

VAJ possédait plusieurs points forts : le regroupement de toutes les classes et leur organisation dans l'espace de travail, la compilation incrémentale à l'écriture et au débogage, le travail collaboratif avec le contrôle de version dans un référentiel (repository). Tous ces points facilitaient le développement de gros projets.

VAJ était un outil puissant particulièrement adapté aux utilisateurs chevronnés pour de gros projets.

 

99.1.14. Webgain Visual Café

Webgain Studio proposait un ensemble d'outils (Visual Café, Dreamweaver Ultradev, Top link, Structure Builder, Weblogic) pour la création d'applications e-business. Visual Café a été un des premier IDE de développement en Java. Visual Café existait en trois versions : standard, expert et entreprise suite.

Malheureusement cet outil n'est plus disponible.

 

99.2. Les serveurs d'application

Les serveurs d'applications sont des outils qui permettent l'exécution de composants Java côté serveur (servlets, JSP, EJB, ... ) selon les spécifications de la plate-forme J2EE/Java EE.

 

99.2.1. JBoss Application Server

JBoss est un projet open source développé en Java pour fournir un serveur d'applications certifié Java EE.


Licence : open source, commerciale avec support
Statut : actif
Site web :

Version

Date de diffusion

 

4.0   certifié J2EE 1.4

4.2

 

support EJB 3.0

5.0 GA décembre 2008  
5.1 GA mai 2009 certifié Java EE 5
6.0 décembre 2010 implémente le profile Web de Java EE 6
6.4 avril 2015  
7.0 mai 2016  
7.1.0 décembre 2017  
7.2 janvier 2019  
7.3 mars 2020  

JBoss est composé d'un ensemble d'outils : JBoss Server, JBoss MQ (implémentation de JMS), JBoss MX, JBoss TX (implémentation de JTA/JTS), JBoss SX , JBoss CX et JBoss CMP.

 

99.2.2. JBoss Wildfly

JBoss Widfly est un projet open source développé en Java pour fournir un serveur d'applications certifié Java EE.


Licence : open source
Statut : actif
Site web : www.wildfly.org/

Version

Date de diffusion

 

8.0 Février 2014 certifié pour le full profile Java EE 7
8.2.0 Novembre 2014  
9 Juillet 2015  
10 Janvier 2016  
11 Octobre 2017  
12 Février 2018  
13 Mai 2018  
14 Août 2018 Certifiée Java EE 8
15 Décembre 2018 Support de Java 11
16 Février 2019  
17 Juin 2019 la version 17.0.1 est certifiée Java EE 8 et Jakarta EE 8
17.1   Certifiée Java EE 8 et Jakarta EE 8
18 Octobre 2019  
19 Mars 2020  
19.1 Mai 2020  
20.0 juin 2020  
21.0 octobre 2020  
22.0 janvier 2021  
23.0 mars 2021  
24.0 juin 2021  
25.0 octobre 2021  
26.0 décembre 2021  
26.1 avril 2022  
27 novembre 2022 Support Jakarta EE 10
28 avril 2023  
29 juillet 2023  
30 octobre 2023  

 

99.2.3. JOnAs

 JOnAS (Java Open Application Server) est un projet open source développé par le consortium ObjectWb / OW2 (Bull, INRIA, France Telecom) dont le but est de proposer un serveur d'applications Java EE. Il se compose de nombreux éléments open source tels que JOTM pour le support des transactions, JORAM pour l'implémentation de JMS, Tomcat ou Jetty comme conteneurs Web, Speedo pour l'implémentation JDO, ...

Licence : open source
Statut : projet abandonné en 2015
Site web : https://jonas.ow2.org/

Version

Date de diffusion

 

2.3.1

février 2005

certifié J2EE 1.4.

5.1 mars 2009 certifié Java EE 5
5.1.4 novembre 2010  
5.2.2 juillet 2011  
5.2.3 mars 2012  
5.3 octobre 2013 certifié Java EE 6 web profile

 

99.2.4. GlassFish

 Le projet GlassFish est un projet communautaire dont le but est de développer un serveur d'applications open source qui implémente les spécifications de Java EE à partir de la version 5. Il est l'implémentation de référence de ces spécifications.

Licence : open source, commercial avec support
Statut : actif
Site web : https://javaee.github.io/glassfish/ jusqu'à GlassFish 5.1, https://glassfish.org/ pour les versions ultérieures

Version

Date de diffusion

 

 

mai 2006

support Java EE 5

2.0 septembre 2007  
2.1 janvier 2009  
3.0 décembre 2009 implémentation de référence de Java EE 6
3.0.1 juin 2010  
3.1 février 2011 cluster / haute disponibilité
3.1.1 juillet 2011  
3.1.2 février 2012  
4.0 juin 2013 support Java EE 7
4.1 septembre 2014  
5.0 septembre 2017 implémentation de référence de Java EE 8
5.1 janvier 2019 première release par la fondation Eclipse sous licence EPL
6.0 décembre 2020 Implémentation de référence de Jakarta EE 9 (packages javax.* en jakarta.*)
6.1 mai 2021 Implémentation de référence de Jakarta EE 9.1
7.0 décembre 2022 Implémentation de référence de Jakarta EE 10

Sun propose le serveur d'applications Java System Application Server Platform Edition 9 qui implémente les spécifications de Java EE 5. Ce serveur gratuit est basé sur le projet GlassFish. Il peut être téléchargé dans une archive avec le SDK.

A partir de la version 5, le développement de Glassfish est effectué par la fondation Eclipse.

 

99.2.5. Apache TomEE

 Le projet Epache TomEE est une combinaison de plusieurs projets de la fondation Apache pour fournir un serveur d'applications Java EE articulé autour de Tomcat.

Licence : open source
Statut : actif
Site web : https://tomee.apache.org/

Version

Date de diffusion

 

1.7.1 septembre 2014 Certifié Java EE 6 Web Profile
7.0.0 mai 2016 Support de Java EE 7, repose sur Tomcat 8.5
7.1.0 septembre 2018 Support de Microprofile 1.4
8.0.0 septembre 2019 Support de Java EE 8 / Jakarta EE 8, Microprofile 2.0, repose sur Tomcat 9, requiert Java 8
8.0.1 janvier 2020  
9.0.0 janvier 2023 Repose sur Tomcat 10, requiert Java 11
9.1.0 juin 2023 Support de Jakarta EE 9.1 Web Profile et MicroProfile 5

 Apache TomEE utilise des composants de la foncdation Apache :

Composant Description
Apache Tomcat Conteneur Web : HTTP, Servlet, JSP
Apache OpenEJB Conteneur pour Enterprise JavaBeans
Apache OpenWebBeans Implémentation de CDI
Apache OpenJPA Implémentation de JPA
Apache MyFaces Implémentation de JSF
Apache ActiveMQ Implémentation de JMS
Apache CXF Implémentation des Web Services SOAP (JAX-WS) et RESTful (JAX-RS)
Apache Derby Base de données relationnelles
Apache Geronimo transaction Implémentation de JTA
Apache BVal Implémentation de Bean validation

TomEE est diffusé en plusieurs éditions selon les besoins :

Edition Description
Web Profile : certifié Java EE 6 Web Profile Servlets, JSP, JSF, JTA, JPA, CDI, Bean Validation et EJB Lite
JAX-RS : certifié Java EE 6 Web Profile Edition Web Profile, JAX-RS
Plus Edition JAX-RS, EJB Full, JMS, JCA, JAX-WS
Plume Edition Plus, Mojarra, EclipseLink

 

99.2.6. IBM Websphere Application Server

 Websphere Application Server (WAS) est le serveur d'applications de la famille d'outils Websphere. Il permet le déploiement de composants Java orientés entreprise.

Licence : commerciale
Statut : actif
Site web : https://www.ibm.com/software/webservers/appserv/was/

Version

Date de diffusion

 

3.5 aout 2000

support J2EE 1.2, requiert Java SE 1.2

3 éditions sont proposées :

  • SE (Standard Edition)
  • AE (Advanced Edition)
  • EE (Enterprise Edition)
4 aout 2001

certifié J2EE 1.2, requiert Java SE 1.3

Elle permet la mise en oeuvre des servlets, JSP, EJB et services Web (SOAP, UDDI, WSDL, XML). Cette version est proposée en 4 éditions qui supportent tout ou partie de ces composants :

  • Standard Edition : pour les applications web utilisant des serlets, des JSP et XML
  • Advanced Edition: supporte en plus les EJB, la répartition de charges sur plusieurs machines
  • Advanced Single Server Edition : supporte toute les API J2EE mais uniquement sur une seule machine. Cette version ne peut pas être utilisée en production.
  • Enterprise Edition : supporte en plus CORBA et la connexion aux ressources de l'entreprise

5

janvier 2003

certifiée J2EE 1.3

plusieurs versions sont proposées :

  • Express Edition
  • Enterprise Edition
5.1 janvier 2004 requiert Java SE 1.4
6 décembre 2004

certifiée J2EE 1.4

Plusieurs versions sont proposées dont la Community Edition (gratuite) basée sur Apache Geronimo et une version pour z/OS

support EJB 3.0

6.1 juin 2006 requiert Java SE 5
7 septembre 2008

certifié Java EE 5, requiert Java SE 6

8 juin 2011

certifié Java EE 6, requiert Java SE 6

8.5 juin 2012 peut fonctionner avec Java SE 7
8.5.5 juin 2013  
9.0 juin 2016 Java EE 7 et Java SE 8

 

99.2.7. BEA/Oracle Weblogic

 Weblogic est une famille de produits proposés par BEA. Weblogic Server est un des leaders mondiaux des serveurs d'applications commerciaux. Weblogic a été racheté par Oracle.

Licence : commerciale
Statut : actif
Site web : https://www.oracle.com/middleware/technologies/weblogic.html

Version

Date de diffusion

 

6.0 mars 2001  
7.0 juin 2002 support J2EE 1.3, Java SE 1.3
8.1 juillet 2003 support J2EE 1.3, Java SE 1.4
9.0 novembre 2006 support J2EE 1.4, Java SE 5
10.0 mars 2007 support Java EE 5, Java SE 5
10.3 aout 2008

Java EE 5, Java SE 6

11g (10.3.1) juillet 2009

Java EE 5, Java SE 6

11g R1 (10.3.2) novembre 2009

Java EE 5, Java SE 6

11g R1 (10.3.3)

avril 2010

Java EE 5, Java SE 6

11g R1 (10.3.4)

janvier 2011

Java EE 5, Java SE 6

11g R1 (10.3.5)

mai 2011

Java EE 5, Java SE 6

12c

décembre 2011

Java EE 6, Java SE 7

12c R2 (12.2.1.0) octobre 2015 Java EE 6, Java SE 7
12c R2 (12.2.1.3) août 2017 Java EE 7, Java SE 8

 

99.2.8. Oracle Application Server

 Oracle propose un serveur d'applications certifié Java EE.

Licence : commerciale
Statut :
Site web :

Version

Date de diffusion

 

10g

 

 

11g    

 

99.2.9. Macromedia JRun

 JRun est l'implémentation d'un serveur d'applications de Macromedia.

Licence : commerciale
Statut : ce produit n'est plus maintenu depuis 2007
Site web : http://www.adobe.com/products/jrun/

Version

Date de diffusion

 

4

 

certifié J2EE 1.3

 

99.3. Les conteneurs web

Les conteneurs web sont des applications qui permettent d'exécuter du code Java utilisé pour définir des servlets et des JSP.

 

99.3.1. Apache Tomcat

 Tomcat est un conteneur d'applications web (servlets et JSP) développé par la fondation Apache. C'est l'implémentation de référence pour les API servlets et JSP : il est donc pleinement compatible avec les spécifications J2EE de ces API.

https://jakarta.apache.org/tomcat/

L'utilisation de Tomcat est détaillée dans le chapitre «Tomcat».

 

99.3.2. Caucho Resin

Resin est un moteur de servlets et de JSP qui intègre un serveur web.

https://www.caucho.com/

 

99.3.3. Enhydra

 Enhydra est un projet open source, initialement créé par Lutris Technologies, pour développer un conteneur web pour Servlets et JSP. Il fournit quelques fonctionnalités supplémentaires pour utiliser XML, mapper des données avec des objets et gérer un pool de connexions vers des bases de données

 

99.4. Les conteneurs d'EJB

Les conteneurs d'EJB sont des applications qui fournissent un environnement d'exécution pour les EJB.

 

99.4.1. OpenEJB

OpenEJB est un projet open source pour développer un conteneur d'EJB qui respecte les spécifications 2.0 des EJB. La version 1.0 est distribuée depuis février 2006.

Le site du projet est l'url https://openejb.apache.org/

 

99.5. Les outils divers

 

99.5.1. Jikes

Jikes est un compilateur Java open source écrit par IBM en code natif pour Windows et Linux. Son exécution est donc extrêmement rapide ce qui est d'autant plus appréciable lorsqu'il s'agit de compiler de très gros projets sur une machine peu véloce.

La page de l'outil est à l'url http://jikes.sourceforge.net/

Pour utiliser Jikes, il suffit de décompresser l'archive et de mettre le fichier exécutable dans un répertoire inclus dans le CLASSPATH. Enfin, il faut déclarer une variable système JIKESPATH qui doit indiquer les différents répertoires contenant les classes et les jars notamment le fichier rt.jar du JRE.

 

99.5.2. GNU Compiler for Java

GCJ GCJ faisait parti du projet GCC (GNU Compiler Collection). Le projet GCC propose un compilateur pour plusieurs langages (C, C++, Objective C, Java ...) permettant de produire un exécutable pour plusieurs plates-formes.

GCJ était donc un front-end pour utiliser GCC à partir du code Java. Il permet notamment de :

Pour un exécutable, le fichier final est lié avec une bibliothèque dédiée nommée libgcj qui contient, entre autres, les classes de bases et le ramasse-miettes.

La plupart des API de la plate-forme Java 2 sont supportées à  l'exception notable de la bibliothèque AWT.

Son utilisation sous Windows nécessite un environnement particulier : CygWin ou MinGW (ce dernier étant retenu dans la suite de cette section).

Téléchargez sur le site https://osdn.net/projects/mingw/ les fichiers : MinGW-3.1.0-1.exe (14,5 Mo) et MSYS-1.0.9.exe (2,7 Mo). (les noms de fichiers indiqués correspondent à la version courante au moment de l'écriture de cette section).

Lancez le programme MinGW-3.1.0-1.exe

Le programme d'installation se lance et demande une confirmation de l'installation : cliquer sur « Oui ». Un assistant permet de guider les différentes étapes de l'installation :

Lancez le programme MSYS-1.0.9.exe

Le programme d'installation se lance et demande une confirmation de l'installation : cliquer sur « Oui ». Un assistant permet de guider les différentes étapes de l'installation :

Exemple :
C:\MinGW\msys\1.0\postinstall>..\bin\sh.exe pi.sh 
This is a post install process that will try to normalize between 
your MinGW install if any as well as your previous MSYS installs 
if any.  I don't have any traps as aborts will not hurt anything. 
Do you wish to continue with the post install? [yn ] y 
Do you have MinGW installed? [yn ] y 
Please answer the following in the form of c:/foo/bar. 
Where is your MinGW installation? c:/Mingw 
Creating /etc/fstab with mingw mount bindings. 
        Normalizing your MSYS environment. 
You have script /bin/awk 
You have script /bin/cmd 
You have script /bin/echo 
You have script /bin/egrep 
You have script /bin/ex 
You have script /bin/fgrep 
You have script /bin/printf 
You have script /bin/pwd 
You have script /bin/rvi 
You have script /bin/rview 
You have script /bin/rvim 
You have script /bin/vi 
You have script /bin/view 
Oh joy, you do not have c:/Mingw/bin/make.exe. Keep it that way. 
C:\MinGW\msys\1.0\postinstall>pause 
Appuyez sur une touche pour continuer... 

Remarque : il est fortement recommandé de ne pas utiliser d'espace dans les noms des répertoires d'installation de MinGW et de MSYS.

Il faut pour plus de facilité d'utilisation ajouter à la variable PATH de l'environnement système les répertoires C:\MinGW\bin et C:\MinGW\msys\1.0\bin.

La version de GCC fournie avec MinGW précédemment installée est la 3.2. Pour utiliser GCJ, il faut utiliser la 3.3 et donc opérer une mise à jour.

Il faut télécharger les fichiers gcc-core-3.3.1-20030804-1.tar.gz, gcc-g++-3.3.1-20030804-1.tar.gz  et gcc-java-3.3.1-20030804-1.tar.gz, les décompresser et extraire l'image tar dans le répertoire c:\MinGW.

Remarque : en standard aucun outil ne permet de traiter des fichiers gz et tar. Il faut utiliser un outil tiers.

Pour s'assurer de la bonne installation, il suffit d'ouvrir une boîte DOS et d'exécuter la commande gcj. Le message suivant doit apparaître : gcj: no input files

Voici un petit exemple très simple de mise en oeuvre de GCJ.

Exemple du code à compiler :
public class Bonjour {
            public static void main(String[] args) {
                        System.out.println("Bonjour");
            }
}

Exemple de compilation et d'exécution :
D:\java\test\gcj>gcj -o Bonjour Bonjour.java -O --main=Bonjour
D:\java\test\gcj>dir
 Le volume dans le lecteur D s'appelle DATA 
 Le numéro de série du volume est 34B2-159D 
 Répertoire de D:\java\test\gcj 
01/12/2003  15:19       <DIR>          . 
01/12/2003  15:19       <DIR>          .. 
01/12/2003  15:19            2 747 919 Bonjour.exe 
01/12/2003  15:17                  108 Bonjour.java 
01/12/2003  14:07                  141 Bonjour.java.bak 
               4 fichier(s)        5 496 087 octets 
               2 Rép(s)     560 402 432 octets libres 
D:\java\test\gcj>bonjour 
Bonjour 
D:\java\test\gcj>

L'option -o permet de préciser le nom du fichier final généré.

L'option -main= permet de préciser la classe qui contient la méthode main() à lancer par l'exécutable.

GCJ peut être utilisé pour compiler le code source en bytecode grâce à l'option -C.

Exemple :
D:\java\test\gcj>gcj -C Bonjour.java
D:\java\test\gcj>dir
 Le volume dans le lecteur D s'appelle DATA 
 Le numéro de série du volume est 34B2-159D 
 Répertoire de D:\java\test\gcj 
01/12/2003  15:29       <DIR>          . 
01/12/2003  15:29       <DIR>          .. 
01/12/2003  15:29                  389 Bonjour.class 
01/12/2003  15:19            2 747 919 Bonjour.exe 
01/12/2003  15:17                  108 Bonjour.java 
               4 fichier(s)        2 748 557 octets

Le bytecode généré est légèrement plus compact que celui généré par la commande javac du jdk 1.4.1

Exemple :
D:\java\test\gcj>javac Bonjour.java
D:\java\test\gcj>dir
 Le volume dans le lecteur D s'appelle DATA
 Le numéro de série du volume est 34B2-159D
 Répertoire de D:\java\test\gcj
01/12/2003  15:29       <DIR>          .
01/12/2003  15:29       <DIR>          ..
01/12/2003  15:31                  405 Bonjour.class
01/12/2003  15:19            2 747 919 Bonjour.exe
01/12/2003  15:17                  108 Bonjour.java
               4 fichier(s)        2 748 573 octets

L'option -d permet de préciser un répertoire qui va contenir les fichiers .class générés par l'option -C.

 

99.5.3. Artistic Style

Artistic Style est un outil open source qui permet d'indenter et de formater un code source C, C++ et java

Le site du projet est à l'url https://sourceforge.net/projects/astyle/

Cet outil possède de nombreuses options de formatage de fichiers sources. Les options les plus courantes pour un code source Java sont :

astyle -jp --style=java nomDuFichier.java

Par défaut, l'outil conserve le fichier original en le suffixant par .orig.

 

99.6. Les MOM

Les Middleware Oriented Message sont des outils qui permettent l'échange de messages entre des composants d'une application ou entre applications. Pour pouvoir les utiliser avec Java, ils doivent implémenter l'API JMS (Java Message Service).

 

99.6.1. Apache ActiveMQ

ActiveMQ est un projet de la foundation Apache qui propose une implémentation d'un broker JMS respectant la version 1.1 des spécifications.

Licence : open source (licence Apache 2.0)
Statut :
Site web : https://activemq.apache.org/

Il n'est pas nécessaire de déclarer les queues utilisées dans la configuration : ActiveMQ crééra automatiquement les queues qui sont utilisées.

La gestion et le monitoring d'ActiveMQ se fait grâce à JMX.

Des clients utilisant différents langages (.Net, Delphi, C/C++; ...) peuvent accéder à ActiveMQ grâce à son support de différents protocoles.

ActiveMQBrowser est un outil très pratique pour gérer le contenu des queues et topics d'une instance d'ActiveMQ.

Il faut télécharger la dernière version de l'archive à l'url https://sourceforge.net/projects/activemqbrowser/files/ et la décompresser dans un répertoire du système de fichiers.

Pour permettre la connection au Broker, il est nécessaire de le configurer.

Il faut modifier le fichier activemq.xml contenu dans le sous-répertoire conf du répertoire d'installation d'ActiveMQ. Dans le tag <broker>, il faut définir deux propriétées :

Exemple :
    <broker xmlns="http://activemq.apache.org/schema/core"
brokerName="localhost_AMQ"
dataDirectory="${activemq.data}"
useJmx="true">

Il faut modifier le fichier activemq.bat contenu dans le sous-répertoire bin du répertoire d'installation d'ActiveMQ en définissant la variable d'environnement SUNJMX :

Résultat :
set
SUNJMX=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.password.file=%ACTIVEMQ_BASE%/conf/jmx.password
-Dcom.sun.management.jmxremote.access.file=%ACTIVEMQ_BASE%/conf/jmx.access

Cette configuration va activer l'accès JMX sur le port 1099 avec une authentification définie dans les fichiers jmx.access (pour définir les rôles) et jmx.password (pour définir les utilisateurs/mots de passe) du sous-répertoire conf.

Pour lancer ActiveMQBrowser, il faut lancer le script run_activemq_browser.bat contenu dans le répertoire d'installation d'ActiveMQBrowser.

Pour utiliser ActiveMQBrowser avec la version 5.9 d'ActiveMQ, il faut effectuer plusieurs opérations :

Dans le répertoire d'installation d'ActiveMQBrowser, il faut remplacer les fichiers activemq-all-5.6.0.jar et activemq-web-5.6.0.jar par leur équivalent en version 5.9.

Il faut modifier le script en remplaçant les versions 5.6 d'activemq-all.jar et activemq-web.jar par la version 5.9

Résultat :
echo off
start "ActiveMQBrowser"
javaw -Xms128m -Xmx512m -splash:cube.png -cp .\QBrowserV2_Neo.jar;
.\activemq-web-5.9.0.jar;.\activemq-all-5.9.0.jar;.\jide-oss-2.6.2.jar;
.\imq.jar;.\jms.jar;.\imqadmin_ja.jar;.\imqadmin.jar;.\imqutil_ja.jar;
.\imqutil.jar;.\imqjmx.jar;.\imqjmx_ja.jar com.qbrowser.ActiveMQBrowser

 

99.6.2. OpenJMS

OpenJMS est une implémentation Open Source des spécifications JMS


Le site officiel du projet est à l'url http://openjms.sourceforge.net/

Pour utiliser OpenJMS, il faut télécharger l'archive qui contient OpenJMS : par exemple le fichier openjms-0.7.7-beta-1.zip

Pour installer OpenJMS, il suffit de décompresser le fichier zip téléchargé dans un répertoire du système.

Exemple :
C:\java>jar xvf openjms-0.7.7-beta-1.zip

La décompression crée un répertoire nommé openjms-0.7.7-beta-1

Pour démarrer et arrêter le serveur, il faut utiliser respectivement les scripts startup et shutdown du sous-répertoire bin du répertoire d'installation.

Pour lancer la console d'administration, il faut utiliser le script admin.

Cliquez sur « Actions / Connections / OnLine ».

Il est alors possible d'écrire une application qui utilise JMS et les queues, par exemple l'application TestOpenJMS1 fournie dans le chapitre sur «JMS (Java Message Service)».

Les paramètres JNDI peuvent être fournis dans un fichier de configuration nommé jndi.properties :

Exemple : jndi.properties
java.naming.provider.url=tcp://localhost:3035
java.naming.factory.initial=org.exolab.jms.jndi.InitialContextFactory
java.naming.security.principal=admin
java.naming.security.credentials=openjms

Dans la console d'administration, cliquez sur « Actions / Refresh ».

La configuration des queues est stockée dans le fichier openjms.xml. La console d'administration permet de gérer les destinations (ajout, suppression, ...)

 

99.6.3. Joram

Joram est l'acronyme de Java Open Reliable Asynchronous Messaging. C'est une implémentation open source des spécifications JMS 1.1.

La page officielle de cet outil est à l'url https://joram.ow2.io/

 

99.6.4. OSMQ

 Open Source Message Queue (OSMQ) est un middleware orienté messages développé en open source par Boston System Group.

 

99.7. Les outils concernant les bases de données

 

99.7.1. Derby

 Derby est un SGBDR open source écrit en Java et maintenu par le projet Apache.

Historiquement, c'est un produit développé par Cloudscape acquis par IBM (lors de son rachat d'Informix) qui en a fait don à la fondation Apache.

Derby est aussi intégré dans des produits de Sun notamment le JDK 6.0 et GlassFish sous le nom Java DB

Le site officiel est à l'url https://db.apache.org/derby/

 

99.7.2. SQuirrel-SQL

Squirrel-SQL est un client SQL open source écrit en Java. Il permet au travers d'une interface graphique de consulter et de manipuler une base de données pourvue d'un pilote JDBC.

Le site de l'outil est à l'url  : https://squirrel-sql.sourceforge.io/

L'éditeur SQL propose une assistance à l'achévement du code (nom de table, de colonnes, ...).

Les données sont éditables dans l'interface graphique.

SQuirrel est extensible au travers de plug-in dont plusieurs sont fournis par défaut.

Pour installer Squirrel il faut télécharger le fichier squirrel-sql-<version>-install.jar qui est un setup d'installation au format IzPack.

Pour exécuter l'installation, il faut saisir la commande :

   java -jar squirrel-sql-<version>-install.jar

 

99.8. Les outils de modélisation UML

 

99.8.1. Argo UML

Argo UML est un projet open source écrit en Java qui vise à développer un outil de modélisation UML 1.1. Il est possible de créer des diagrammes UML et de générer le code Java correspondant aux diagrammes de classes. Une option permet de créer les diagrammes de classes à partir du code source Java.

Cet outil n'est pas encore en version finale mais la version 0.9.5 offre de nombreuses fonctionnalités.

 

99.8.2. Poseidon for UML

Plusieurs éditions de Poseidon for UML sont proposées dont la version Community Edition qui est disponible gratuitement.

La version 4.1 propose de nombreuses fonctionnalités dont le respect de la version UML 2.0

 

99.8.3. StarUML

StarUML est historiquement un produit commercial nommé Plastic puis Agora Plastic, qui est devenu un projet open source (licence GPL) en 2005 et renommé StarUML.

Le site officiel de StarUML est à l'url https://staruml.io/


Il ne fonctionne que sous Windows mais la version 5.0 propose des fonctionnalités intéressantes :

 


98. JShell 100. Ant Imprimer Index Index avec sommaire Télécharger le PDF    
Développons en Java
v 2.40   Copyright (C) 1999-2023 .