Les Swarm: Java EE Micro Services avec wildfly

Récemment, la première version alpha de la nouvelle wildfly Sidecar Swarm est disponible. Il faut donc emballer autant le serveur d'applications ainsi que l'application réelle nécessaire pour obtenir une archive Java exécutable. cette "seule application jar"- ou "pot de graisse"Concept est souvent considérée comme la bonne approche pour les architectures Micro services.

À l'heure actuelle, les nouvelles de la région de Java EE accumulent. En plus de la dernière version candidate de wildfly-9 Application Server un soi-disant maintainance a été préparé, y compris la libération Java EE 7 (MR). Et Java EE 8 JSR disponible est officiellement pendant un certain temps. Néanmoins, ces nouvelles boiter de la classique pile Java EE derrière les développements actuels. les mots "récipient" ou "micro services" on cherche en vain dans le cahier des charges. Au moins pour le créé sur la base des applications wildfly, cet écart se ferme un peu.

Wildfly Swarm: exécutables Micro Services

Swarms "seule application jar"- ou "pot de graisse"Concept est considéré par certains comme la bonne approche pour les architectures Micro services. Sans elle de vouloir philosopher maintenant, il est tout à fait passionnant de quelque chose juste pour regarder cette nouvelle version. Dans l'exemple suivant, je tiens à souligner qu'il est tout simplement un exemple d'une technique et il ne représente pas la seule bonne façon pour les services Micro.

Compte tenu d'un simple basé sur Java EE 7 Maven application Web. Dans pom.xml se présente comme une seule fonction:


javax
Java EE web-api
7.0
à condition que

Il est construit un fichier WAR 6 kilo-octets. essaim / rs / client 8080 / à une sortie simple JSON: il fonctionne sur wildfly, menant un appel à http: // localhost:

{
"prenom": "Markus".
"lastName": "Eisele".
"adresse de la rue": "Werner-von-Siemens-Ring 14".
"ville": "Grasbrunn".
"pcode": "85630".
"phoneNumbers": [
{
"qualité": "mobile".
"nombre": "111-111-1111"
},
{
"qualité": "maison".
"nombre": "222-222-2222"
}
]
}

En ce qui concerne tout cela n'est pas excitant. Pour cette application simple est une archive exécutable autonome, maintenant Swarm entre en jeu. Pour cela, il doit être facilement ajouté au projet vient de créer un nouveau plug-in:


org.wildfly.swarm
wildfly-essaim-plugin
$ {Version.wildfly-essaim}


paquet

créer



Le numéro de version, il est préférable pom.xml via la propriété Maven. À l'heure actuelle Swarm est disponible en 1.0.0.Alpha1. Un petit avertissement a été prononcé ici pour les utilisateurs de Windows. Juste cette version ne fonctionne pas sous Windows. Le plus récent maître contient le correctif mais déjà, et qui construit Swarm est rapidement et utilisé localement pour 1.0.0.Alpha2-SNAPSHOT, peut regarder le résultat sur Windows.

Mais le plug-in ne fait pas tout le travail seul. Parmi les dépendances (dépendances) les fonctionnalités de Java EE sont utilisées encore ajouter. Pour le petit échantillon qui est juste la fonction JAX-RS:


org.wildfly.swarm
wildfly-essaim jaxrs
$ {Version.wildfly-essaim}
à condition que

Ensuite, le projet peut être construit via mvn package. En plus du résultat attendu, le fichier SNAPSHOT.war 1.0-échantillon-essaim est maintenant beaucoup plus essaim d'échantillons-1.0-SNAPSHOT-swarm.jar a atterri dans la cible / répertoire. Il a maintenant environ 30 MB.

tester la graisse JAR

en fait reste que le lancement et les essais des pas si petit pot:

java -jar essaim-1.0-SNAPSHOT-swarm.jar

La sortie est une indication de différentes versions des sous-systèmes utilisés. Maintenant, même le test:

C: \>boucle -v http: // localhost: 8080 / rs / client
* Connecté au port localhost (:: 1) 8080 (# 0)
> GET / rs / client HTTP / 1.1
> User-Agent: curl / 7.30.0
> Hôte: localhost: 8080
> Accepter: * / *
>
< HTTP / 1.1 200 OK
< Connexion: keep-alive
< Content-Type: application / JSON
< Content-Length: 221
< Date: Ven 8 mai 2015 07:59:00 GMT
<
{"prenom":"Markus"."lastName":"Eisele"."adresse de la rue":
"Werner-von-Siemens-Ring 14"."ville":"Grasbrunn".
"pcode":"85630"."phoneNumbers
": [{"qualité":"mobile"."nombre":"111-111-1111"},
{"qualité":"maison"."nombre":"222-222-2222"}]} * Connexion # 0
localhost laissé intact

Qui veut encore utiliser d'autres spécifications, trouveront plus de détails sur le blog de Swarm. actuellement servlet, JAX-RS ShrinkWrap, DataSource via le déploiement, la messagerie et d'autres sont pris en charge.

Commentaires et la coopération est souhaitée. Toute personne qui veut trouver toutes les informations sur le @ poignée WildFlySwarm-Twitter. Si vous manquez des fonctions ou trouve des erreurs, peuvent participer directement au projet GitHub.