Differences

This shows you the differences between two versions of the page.

Link to this comparison view

apache_karaf [2014/05/22 10:06]
apache_karaf [2021/04/05 11:23] (current)
Line 1: Line 1:
 +====== Apache Karaf ======
  
 +Karaf IRC channel : [[http://karaf.apache.org/index/developers/irc-room.html | Apache Karaf IRC]]
 +
 +===== Jetty =====
 +
 +==== Configure Default Port ====
 +By default Jetty is configured to bind to any network device on port 8181. The configuration of the port must be done via the ConfigAdmin OSGi service. Just drop the configuration file //org.ops4j.pax.web.cfg// into the //etc// folder with the following content:
 +
 +  service.pid=org.ops4j.pax.web.cfg
 +  org.osgi.service.http.port=9191
 +
 +Any additional configuration can be done in the //jetty.xml// file.
 +
 +===== Commands =====
 +
 +==== Scripting ====
 +
 +=== Execute Script ===
 +To execute a script (file with Karaf shell commands) the command ''shell:source'' has to be used.
 +
 +  shell:source my.script
 +
 +
 +==== Bundles ====
 +
 +=== Install ===
 +Bundles can be installed via various methods.
 +
 +The ''deploy'' folder is one method. Bundles dropped in the ''deploy'' folder are automatically installed and started.
 +
 +== OBR ==
 +Bundles can be installed from on OSGi Bundle Repository (OBR) (similar to a Maven repository, but not compatiblel with it). The commands in the schema ''obr'' are used to manage and use OBRs.
 +
 +<note tip>The list of the bundles in an OBR is loaded once from the repository and must be refresh manually with the command ''obr:url-refresh''.</note>
 +
 +== Install Command ==
 +The ''install'' command can be used to install bundles from various sources, like local filesystem, HTTP server, local Maven repository.
 +
 +  install mvn:com.rpgnextgen/corepages.web/2.0.0-SNAPSHOT/war
 +
 +The type of artifact can be passed in the last segment of the url and is optional. By default it will look out for an artifact of type ''jar''.
 +
 +=== List ===
 +To list the installed bundles use the command ''bundle:list''. This will list the installed bundles from a given start level, default 100. To list all bundles starting from a specific level you have to add the level to the command.
 +
 +  bundle:list -t <level>
 +
 +=== Watch ===
 +During development it is very inconvenient to manually reload the new bundle version to test the last change. Karaf supports to automatically reload //watched// bundles. There are some requirements for this to work. The bundles must be installed via the ''install'' command **with** the version passed to the command.
 +
 +  install mvn:my.group/my.artifact/1.0.0-SNAPSHOT
 +
 +To watch the bundle add it to the watch list either by specifying the group/artifact/version string or just by specifying the bundle id in the system.
 +
 +  bundle:watch 189
 +
 +The check interval can be specified with the ''i'' option (in ms).
 +
 +  bundle:watch -i 500
 +
 +Don't forget to start the watch by
 +
 +  bundle:watch --start
 +
 +==== Packages ====
 +To list all exported packages use the command ''package:exports''.
 +
 +<note tip>The output of a command can be piped to another command, f. e. a shell command. Example, list all servlet exports: ''package:exports | grep servlet''.</note>
 +
 +==== Subshell ====
 +Commands can be grouped by a common name. All bundle related commands are available in the group ''bundle''. By default you can access a command by prefixing the group, f. e. bundle:list.
 +
 +But you can also //go into// that group and have only the commands of this group available. That is called a ''subshell''. You have only a //subset// of the normal shell available.
 +
 +To enter a subshell type the group name and press enter. To exit the subshell use the command ''exit''.
 +
 +Link [[http://karaf.apache.org/manual/latest/users-guide/console.html | Apache Karaf User Guide - Console]]
 +
 +==== HTTP ====
 +List deployed servlets:
 +
 +  http:list
 +  
 +==== Repositories ====
 +To add a repository use the feature:repo-add command.
 +
 +=== Add CXF Maven Repository ===
 +
 +  feature:repo-add mvn:org.apache.cxf.karaf/apache-cxf/2.5.0/xml/features
 +  
 +=== Install CXF for JAX-RS from Repository ===
 +
 +  feature:install cxf-jaxrs
 +  
 +  
 +{{tag>osgi karaf}}