web-dev-qa-db-fra.com

Qu'est-ce qu'Apache Karaf?

Je suis un peu confus sur ce qu'est Apache Karaf.

Pouvez-vous dire que Apache Karaf comprend, entre autres:

  • Apache Felix (qui est une implémentation du framework OSGi 4.2)
  • Apache Aries (qui est une implémentation de la norme Blueprint)
60
Frizz

TLDR: Apache Karaf est beaucoup plus "piles incluses". Il peut également fonctionner sur n'importe quel environnement d'exécution OSGI.

Apache Felix (qui est une implémentation du framework OSGi 4.2)

Sorte de. Apache Karaf peut utiliser Apache Felix. Apache Karaf peut également utiliser Equinox ou un autre runtime OSGi. Par défaut, le téléchargement standard Apache Karaf est fourni avec Apache Felix.

Apache Aries (qui est une implémentation de la norme Blueprint)

Encore une fois, en quelque sorte. Le téléchargement standard d'Apache Karaf est fourni avec Apache Aries par défaut.

Parlons maintenant de ce qu'est OSGI (Apache Felix, Equinox) et de ce qu'Apache Karaf est:

OSGI est très simple. Vous pouvez démarrer un environnement d'exécution OSGI dans votre application sans même le remarquer. Shell, la possibilité de déployer à chaud à partir d'un dossier, d'installer à partir d'un dépôt Maven, etc. Ce sont tous des extras que OSGI n'est pas obligé de faire et sont fournis par des projets supplémentaires tels que Karaf, GOGO ou Pax.

Passons maintenant à Apache Karaf:

Il s’agit essentiellement d’un environnement OSGI offrant des avantages supplémentaires en plus d’une implémentation OSGI standard. Apache Karaf étant uniquement basé sur un OSGI standard, il peut en théorie fonctionner sur n'importe quel environnement d'exécution OSGI. Cela vous donne une interface uniforme pour travailler avec les environnements d'exécution OSGI.

Apache Karaf fournit quelques bonus que vous ne verrez pas dans un Apache Felix sans travail supplémentaire:

  • Déploiement à chaud basé sur des dossiers
  • A (IMHO) better default console than gogo. (org.Apache.karaf.Shell)
  • Accès SSH distant à cette console. (org.Apache.karaf.Shell.ssh)
  • Système d'enregistrement centralisé. (org.Apache.karaf.log)
  • Il a sa propre façon de provisionner des bundles et des niveaux de démarrage. (org.Apache.karaf.features)
  • Karaf a aussi ses propres plugins.

À peu près tout ici:

http://mvnrepository.com/search.html?query=org.Apache.karaf *

J'ai mentionné que Karaf avait sa propre méthode d'approvisionnement de bundles et de niveaux de démarrage. Apache Karaf est également fourni avec un ensemble prédéfini. Je sais que Apache Felix en contient également, via OBR, mais Apache Karaf est beaucoup plus fourni.

60
Sheena Artrip

Apache Karaf est un couteau suisse permettant d'exécuter des "choses" OSGi et des objets non OSGi regroupés sous le nom OSGi.

Felix et Aries sont les paramètres par défaut, mais les frameworks sont enfichables, donc équinoxe fonctionne également.

  • "Unix like" Shell accessible depuis CLI ou SSH
  • Hotdeploy de paquets
  • Peut déployer presque n'importe quoi comme un paquet (.jar, printemps xml, blueprint, etc.)
  • Fichiers WAR
  • Déployer depuis maven - y compris le regroupement automatique des offres non OSGi.
  • Console Web
  • Fonctionnalités Karaf - "fichiers .kar" comprenant des ensembles et des fonctionnalités/commandes personnalisées karaf.

Il convient de noter que Karaf fait partie de ServiceMix (son nom initial était le noyau ServiceMix), ce qui lui confère une intégration très étroite avec Apache Camel, Apache CXF et Apache ActiveMQ. Transformer Karaf en un ESB doté de ces fonctionnalités est simple.

29
Petter Nordlander