http://git-wip-us.apache.org/repos/asf/karaf/blob/3de05ae9/manual/src/main/webapp/users-guide/installation.conf ---------------------------------------------------------------------- diff --git a/manual/src/main/webapp/users-guide/installation.conf b/manual/src/main/webapp/users-guide/installation.conf deleted file mode 100644 index 3b840c5..0000000 --- a/manual/src/main/webapp/users-guide/installation.conf +++ /dev/null @@ -1,128 +0,0 @@ -h1. Installation - -Apache Karaf is a lightweight container, very easy to install and administrate, on both Unix and Windows platforms. - -h2. Requirements - -*Hardware:* -* 50 MB of free disk space for the Apache Karaf binary distribution. - -*Operating Systems:* -* Windows: Windows 8, Windows 7, Windows 2003, Windows Vista, Windows XP SP2, Windows 2000. -* Unix: RedHat Enterprise Linux, Debian, SuSE/OpenSuSE, CentOS, Fedora, Ubuntu, MacOS, AIX, HP-UX, Solaris, any Unix platform that supports Java. - -*Environment:* -* Java SE 1.7.x or greater ([http://www.oracle.com/technetwork/java/javase/]). -* The JAVA_HOME environment variable must be set to the directory where the Java runtime is installed, - -h2. Using Apache Karaf binary distributions - -Apache Karaf is available in two distributions, both as a tar.gz and zip archives. - -The "default" distribution is a "ready to use" distribution. -The "default" distribution provides the following features enabled. - -The "minimal" distribution is like the minimal distributions that you can find for most of Unix distributions. -Only the core layer is packaged, most of the features and bundles are downloaded from Internet at bootstrap. -It means that Apache Karaf minimal distribution requires an Internet connection to start correctly. -The features provided by the "minimal" distribution are exactly the same as in the "default" distribution, the difference -is that the minimal distribution will download the features from Internet. - -h3. Installation on Windows platform - -NB: the JAVA_HOME environment variable has to be correctly defined. To accomplish that, press Windows key and Break key together, switch to "Advanced" tab and click on "Environment Variables". - -# From a browser, navigate to [http://karaf.apache.org/index/community/download.html]. -# Download Apache Karaf binary distribution in the zip format: {{apache-karaf-4.0.0.zip}}. -# Extract the files from the zip file into a directory of your choice (it's the {{KARAF_HOME}}. -NB: remember the restrictions concerning illegal characters in Java paths, e.g. \!, % etc. -# Apache Karaf is now installed. - -{tip:title=Handy Hint} -In case you have to install Karaf into a very deep path or a path containing illegal characters for Java paths, e.g. \!, % etc., you may add a bat file to _start \-> startup_ that executes -{noformat} -subst S: "C:\your very % problematic path!\KARAF" -{noformat} -so your Karaf root directory is S: --- which works for sure and is short to type. -{tip} - -h3. Installation on Unix platforms - -NB: the JAVA_HOME environment variable has to be correctly defined. Check the current value using -{code} -echo $JAVA_HOME -{code} -If it's not correct, fix it using: -{code} -export JAVA_HOME=.... -{code} - -# From a browser, navigate to [http://karaf.apache.org/index/community/download.html]. -# Download Apache Karaf binary distribution in the tar.gz format: {{apache-karaf-4.0.0.tar.gz}}. -# Extract the files from the tar.gz file into a directory of your choice (it's the {{KARAF_HOME}}). For example: -{code} -gunzip apache-karaf-4.0.0.tar.gz -tar xvf apache-karaf-4.0.0.tar -{code} -NB: remember the restrictions concerning illegal characters in Java paths, e.g. \!, % etc. -# Apache Karaf is now installed. - -h2. Post-Installation steps - -Thought it is not always required, it is strongly advised to set up the {{JAVA_HOME}} environment property to point to the JDK you want Apache Karaf to use before starting it. -This property is used to locate the {{java}} executable and should be configured to point to the home directory of the Java SE 7 installation. - -By default, all Apache Karaf files are "gather" in one directory: the {{KARAF_HOME}}. - -You can define your own directory layout, by using some Karaf environment variables: - -* {{KARAF_DATA}} is the location of the data folder, where Karaf stores temporary files. -* {{KARAF_ETC}} is the location of the etc folder, where Karaf stores configuration files. -* {{KARAF_BASE}} is the Karaf base folder. By default {{KARAF_BASE}} is the same as {{KARAF_HOME}}. - -h2. Building from Sources - -If you intend to build Apache Karaf from the sources, the requirements are a bit different: - -*Hardware:* -* 500 MB of free disk space for the Apache Karaf source distributions or SVN checkout, the Maven build and the dependencies Maven downloads. - -*Environment:* -* Java SE Development Kit 1.7.x or greater ([http://www.oracle.com/technetwork/java/javase/]). -* Apache Maven 3.0.4 or greater ([http://maven.apache.org/download.html]). - -h3. Building on Windows platform - -# You can get the Apache Karaf sources from: -* the sources distribution {{apache-karaf-4.0.0-src.zip}} available at [http://karaf.apache.org/index/community/download.html]. Extract the files in the directory of your choice. -* by checkout of the git repository: -{code} -git clone https://git-wip-us.apache.org/repos/asf/karaf.git karaf -{code} -# Use Apache Maven to build Apache Karaf: -{code} -mvn clean install -{code} -NB: you can speed up the build by bypassing the unit tests: -{code} -mvn clean install -DskipTests -{code} -# You can find the built binary distribution in {{assemblies\apache-karaf\target\apache-karaf-4.0.0.zip}}. You can install and use it as explained in the "Using Apache Karaf binary distributions" section. - -h3. Building on Unix platforms - -# You can get the Apache Karaf sources from: -* the sources distribution {{apache-karaf-4.0.0-src.tar.gz}} available at [http://karaf.apache.org/index/community/download.html]. Extract the files in the directory of your choice. -* by checkout of the git repository: -{code} -git clone https://git-wip-us.apache.org/repos/asf/karaf.git karaf -{code} -# Use Apache Maven to build Apache Karaf: -{code} -mvn clean install -{code} -NB: you can speed up the build by bypassing the unit tests: -{code} -mvn clean install -DskipTests -{code} -# You can find the built binary distribution in {{assemblies/apache-karaf/target/apache-karaf-4.0.0.tar.gz}}. You can install and use it as explained in the "Using Apache Karaf binary distributions" section.
http://git-wip-us.apache.org/repos/asf/karaf/blob/3de05ae9/manual/src/main/webapp/users-guide/instances.conf ---------------------------------------------------------------------- diff --git a/manual/src/main/webapp/users-guide/instances.conf b/manual/src/main/webapp/users-guide/instances.conf deleted file mode 100644 index 1d792e6..0000000 --- a/manual/src/main/webapp/users-guide/instances.conf +++ /dev/null @@ -1,365 +0,0 @@ -h1. Instances - -A instance is a complete new Apache Karaf runtime, isolated from the other ones. - -The purpose is to easily create and manage a new Apache Karaf runtime without installing a complete distribution. - -A instance is a new instance that you can launch separately from the root one, and deploy applications into. It means that each instance is run on a different JVM. - -A instance does not contain a full copy of the Apache Karaf distribution, but only a set of the configuration files and data folder which contains all the runtime information, logs and temporary files. - -h2. Using the instance commands - -The *instance* commands allow you to create and manage instances. - -h3. Creating instances - -You create a new runtime instance by typing [{{instance:create}}|/commands/instance-create] in the Karaf console. - -As shown in the following example, {{instance:create}} causes the runtime to create a new runtime installation in the active runtime's {{instances/[name]} directory. The new instance is a new Karaf instance and is assigned an SSH port number based on an incremental count starting at 8101 and a RMI registry port number based on an incremental count starting at 1099. - -{code} -karaf@root()> instance:create test -{code} - -The new instance is fresh Apache Karaf instance. It uses default configuration files set, as you install a fresh Karaf distribution. - -You can enable the verbose mode for the {{instance:create}} command using the {{-v}} option: - -{code} -karaf@root()> instance:create -v test -Creating new instance on SSH port 8103 and registry port 1101 / RMI server port 44446 at: /opt/karaf/instances/test -Creating dir: /opt/karaf/instances/test/bin -Creating dir: /opt/karaf/instances/test/etc -Creating dir: /opt/karaf/instances/test/system -Creating dir: /opt/karaf/instances/test/deploy -Creating dir: /opt/karaf/instances/test/data -Creating file: /opt/karaf/instances/test/etc/config.properties -Creating file: /opt/karaf/instances/test/etc/jre.properties -Creating file: /opt/karaf/instances/test/etc/custom.properties -Creating file: /opt/karaf/instances/test/etc/java.util.logging.properties -Creating file: /opt/karaf/instances/test/etc/org.apache.felix.fileinstall-deploy.cfg -Creating file: /opt/karaf/instances/test/etc/org.apache.karaf.features.obr.cfg -Creating file: /opt/karaf/instances/test/etc/org.apache.karaf.features.repos.cfg -Creating file: /opt/karaf/instances/test/etc/org.apache.karaf.log.cfg -Creating file: /opt/karaf/instances/test/etc/org.ops4j.pax.logging.cfg -Creating file: /opt/karaf/instances/test/etc/org.ops4j.pax.url.mvn.cfg -Creating file: /opt/karaf/instances/test/etc/users.properties -Creating file: /opt/karaf/instances/test/etc/keys.properties -Creating file: /opt/karaf/instances/test/etc/org.apache.karaf.features.cfg -Creating file: /opt/karaf/instances/test/etc/system.properties -Creating file: /opt/karaf/instances/test/etc/org.apache.karaf.shell.cfg -Creating file: /opt/karaf/instances/test/etc/org.apache.karaf.management.cfg -Creating file: /opt/karaf/instances/test/bin/karaf -Creating file: /opt/karaf/instances/test/bin/start -Creating file: /opt/karaf/instances/test/bin/stop -{code} - -You can manually configure the different ports, the location of the instance, the Apache Karaf features URLs using different options of the {{instance:create}} command. -You can have details about these options using the {{--help}} option. - -h3. Cloning an instance - -Instead of creating a fresh instance, you can clone an existing instance using {{instance:clone}}. - -The {{instance:clone}} command reuse the files from the source instance: - -{code} -karaf@root()> instance:clone root test -{code} - -You can have details about the cloning options using the {{--help}} option. - -h3. Changing the instance location - -By default, the new instances storage is in the {{KARAF_HOME/instance}} directory. -You find a directory with the name of the instance storing the different instance files. - -You can change the location of the instance using the {{-l}} option to the {{instance:create}} and {{instance:clone}} commands: - -{code} -karaf@root()> instance:create -v -l /tmp/test test -Creating new instance on SSH port 8102 and registry port 1100 / RMI server port 44445 at: /tmp/test -Creating dir: /tmp/test/bin -Creating dir: /tmp/test/etc -Creating dir: /tmp/test/system -Creating dir: /tmp/test/deploy -Creating dir: /tmp/test/data -Creating file: /tmp/test/etc/config.properties -Creating file: /tmp/test/etc/jre.properties -Creating file: /tmp/test/etc/custom.properties -Creating file: /tmp/test/etc/java.util.logging.properties -Creating file: /tmp/test/etc/org.apache.felix.fileinstall-deploy.cfg -Creating file: /tmp/test/etc/org.apache.karaf.features.obr.cfg -Creating file: /tmp/test/etc/org.apache.karaf.features.repos.cfg -Creating file: /tmp/test/etc/org.apache.karaf.log.cfg -Creating file: /tmp/test/etc/org.ops4j.pax.logging.cfg -Creating file: /tmp/test/etc/org.ops4j.pax.url.mvn.cfg -Creating file: /tmp/test/etc/users.properties -Creating file: /tmp/test/etc/keys.properties -Creating file: /tmp/test/etc/org.apache.karaf.features.cfg -Creating file: /tmp/test/etc/system.properties -Creating file: /tmp/test/etc/org.apache.karaf.shell.cfg -Creating file: /tmp/test/etc/org.apache.karaf.management.cfg -Creating file: /tmp/test/bin/karaf -Creating file: /tmp/test/bin/start -Creating file: /tmp/test/bin/stop -{code} - -Careful, it's not possible to change the location of an instance once it has been created. - -NB: {{instance:destroy}} will remove the instance location for you. You don't have to remove the instance location "by hand". - -h3. Changing instance ports - -You can change the SSH port number assigned to an instance using the {{instance:ssh-port-change}} command: - -{code} -karaf@root()> instance:ssh-port-change test 8104 -{code} - -where test is the instance name and 8104 is the new SSH port number to use for the test instance. - -You can change the RMI Registry port number (used by JMX) of an instance using the {{instance:rmi-registry-port-change}} command: - -{code} -karaf@root()> instance:rmi-registry-port-change test 1102 -{code} - -where test is the instance name and 1102 is the new RMI Registry port number to use for the test instance. - -You can also change the RMI Server port number (used by JMX too) of an instance using the {{instance:rmi-server-port-change}} command: - -{code} -karaf@root()> instance:rmi-server-port-change test 44447 -{code} - -where test is the instance name and 44447 is the new RMI Server port number to use for the test instance. - -NB: the instance has to be stopped to be able to change the port numbers. - -h3. Starting instances - -New instances are created in a stopped state. - -To start an instance, you can use the {{instance:start}} command: - -{code} -karaf@root()> instance:start test -{code} - -where test is the instance name. - -h3. Listing instances - -To list the instances and their current status, you can use the {{instance:list}} command: - -{code} -karaf@root()> instance:list -SSH Port | RMI Registry | RMI Server | State | PID | Name -------------------------------------------------------------- - 8101 | 1099 | 44444 | Started | 19652 | root - 8104 | 1101 | 44446 | Stopped | 0 | test -{code} - -An instance can be in the following status: - -- Stopped: the instance is stopped. -- Starting: the instance is starting. -- Started: the instance is up and running. You can connect and use it. - -h3. Status of an instance - -You can get directly the status of a given instance using the {{instance:status}} command: - -{code} -karaf@root()> instance:status test -Started -{code} - -where test is the instance name. - -h3. Connecting to an instance - -You can connect to a running instance directly from the root one using the {{instance:connect}} command: - -{code} -karaf@root()> instance:connect test -{code} - -where 'test' is the instance name where to connect to. - -By default, this command will use the same username used on the root instance, and the password will be prompted. - -You can use a different username using the {{-u}} or {{--username}} option. You can also provide the password using the -{{-p}} or {{--password}} option. - -If you don't provide any argument, you will logon on the instance: - -{code} -karaf@test()> -{code} - -Note the name of instance in the shell prompt (@test). - -You can logoff from the instance and return back to the root instance using the {{logout}} command or CTRL-D key binding: - -{code} -karaf@test()> logout -karaf@root()> -{code} - -The {{instance:connect}} command accepts shell commands as argument. It allows you to directly execute commands or scripts on the instance: - -{code} -karaf@root()> instance:connect test feature:list -Name | Version | Installed | Repository | Description ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -standard | 4.0.0 | x | standard-4.0.0 | Karaf standard feature -aries-annotation | 4.0.0 | | standard-4.0.0 | Aries Annotations -wrapper | 4.0.0 | | standard-4.0.0 | Provide OS integration -service-wrapper | 4.0.0 | | standard-4.0.0 | Provide OS integration (alias to wrapper feature) -obr | 4.0.0 | | standard-4.0.0 | Provide OSGi Bundle Repository (OBR) support -config | 4.0.0 | x | standard-4.0.0 | Provide OSGi ConfigAdmin support -region | 4.0.0 | x | standard-4.0.0 | Provide Region Support -... -{code} - -h3. Stop an instance - -To stop an instance, you can connect to the instance (using {{instance:connect}}) and execute the {{system:shutdown}} -command. - -You can also use the [{{instance:stop}}|/commands/instance-stop] command: - -{code} -karaf@root()> instance:stop test -{code} - -where test is the instance name. - -The instance will go to the "Stopped" state. - -h3. Destroy an instance - -You can completely delete a stopped instance using the {{instance:destroy}} command: -{code} -karaf@root()> instance:destroy test -{code} - -where test is the instance name. - -NB: the {{instance:destroy}} deletes the instance store (the location where the instance files are stored). - -h3. Rename an instance - -You can change the name of a stopped instance using the {{instance:rename}} command: - -{code} -karaf@root()> instance:rename test newTest -{code} - -where test is the current instance name, and newTest the new instance name. - -h2. Instance script - -The {{instance:*}} commands require the root instance running. - -But, you can also administrate directly instances without the root instance, using the {{bin/instance}} Unix script -(or {{bin/instance.bat}} script on Windows). - -You find the same actions that you can do with the {{instance:*}} commands in the {{instance[.bat]}} script: - -{code} -bin/instance -Available commands: - clone - Clones an existing container instance. - create - Creates a new container instance. - destroy - Destroys an existing container instance. - list - Lists all existing container instances. - opts-change - Changes the Java options of an existing container instance. - rename - Rename an existing container instance. - rmi-registry-port-change - Changes the RMI registry port (used by management layer) of an existing container instance. - rmi-server-port-change - Changes the RMI server port (used by management layer) of an existing instance. - ssh-port-change - Changes the secure shell port of an existing container instance. - start - Start an existing container instance. - status - Check the current status of an instance. - stop - Stop an existing container instance. -Type 'command --help' for more help on the specified command. -{code} - -For instance, to list all the instances, you can use the {{instance}} script with the {{list}} command: - -{code} -bin/instance list -SSH Port | RMI Registry | RMI Server | State | PID | Name ------------------------------------------------------------ - 8101 | 1099 | 44444 | Stopped | 0 | root - 8102 | 1100 | 44445 | Stopped | 0 | test -{code} - -It's exactly the same as executing {{instance:list}} in the root instance. - -You can obtain details about commands options and arguments using the {{--help}} option. For instance: - -{code} -bin/instance rename --help -DESCRIPTION - instance:rename - - Rename an existing container instance. - -SYNTAX - instance:rename [options] name new-name - -ARGUMENTS - name - The name of the container instance to rename - new-name - The new name of the container instance - -OPTIONS - --help - Display this help message - -v, --verbose - Display actions performed by the command (disabled by default) - -{code} - -h2. JMX InstanceMBean - -On the JMX layer, you have a MBean dedicated to the management of the instances: the InstanceMBean. - -The ObjectName to use is {{org.apache.karaf:type=instance,name=*}}. - -h3. Attributes - -The {{Instances}} attribute is a tabular data attribute providing details about the instances: - -* {{Is Root}} (boolean): if true, the instance is the root instance, false else. -* {{JavaOpts}} (string): it contains the JVM arguments used by the instance. -* {{Location}} (string): it's the path to the instance storage. -* {{Name}} (string): it's the name of the instance. -* {{Pid}} (long): it's the current system process ID (PID) of the instance process. -* {{RMI Registry Port}} (int): it's the port number of the instance RMI Registry (JMX). -* {{RMI Server Port}} (int): it's the port number of the instance RMI Server (JMX). -* {{SSH Port}} (int): it's the port number of the instance SSH Server. -* {{State}} (string): it's the current status of the instance (Stopped, Starting, Started). - -h3. Operations - -The InstanceMBean provides the following operations, corresponding to the previous {{instance:*}} commands: -* {{createInstance(instanceName, sshPort, rmiRegistryPort, rmiServerPort, location, javaOpts, features, featuresUrls)}}: create a new instance. -* {{changeSshPort(instanceName, port)}}: change the SSH port of an instance. -* {{changeRmiServerPort(instanceName, port)}}: change the RMI server port of an instance. -* {{changeRmiRegistry(instanceName, port)}}: change the RMI registry port of an instance. -* {{changeJavaOpts(instanceName, javaOpts)}}: change the Java options of an instance. -* {{destroyInstance(instanceName)}}: destroy an instance. -* {{startInstance(instanceName)}}: start an instance. -* {{startInstance(instanceName, options)}}: start an instance with the given Java options. -* {{startInstance(instanceName, options, wait, debug)}}: start an instance with the given Java options. - If wait is true, this operation is waiting for the instance is in "Started" state. If debug is true, the instance is started in debug mode. -* {{stopInstance(instanceName)}}: stop an instance. -* {{renameInstance(instanceName, newInstanceName)}}: rename an instance. -* {{renameInstance(instanceName, newInstanceName, verbose)}}: rename an instance. If verbose is true, this operation provides details in the log. -* {{cloneInstance(instanceName, cloneName, sshPort, rmiRegistryPort, rmiServerPort, location, javaOpts)}}: clone an existing instance. http://git-wip-us.apache.org/repos/asf/karaf/blob/3de05ae9/manual/src/main/webapp/users-guide/jdbc.conf ---------------------------------------------------------------------- diff --git a/manual/src/main/webapp/users-guide/jdbc.conf b/manual/src/main/webapp/users-guide/jdbc.conf deleted file mode 100644 index 850172d..0000000 --- a/manual/src/main/webapp/users-guide/jdbc.conf +++ /dev/null @@ -1,210 +0,0 @@ -h1. DataSources (JDBC) - -The Apache Karaf DataSources (JDBC) is an optional enterprise feature. - -You have to install the following features first: - -{code} -karaf@root()> feature:repo-add pax-jdbc -karaf@root()> feature:install pax-jdbc -karaf@root()> feature:install pax-jdbc-config -karaf@root()> feature:install jdbc -{code} - -Pax JDBC provides ready to use adapters for different databases: - -* pax-jdbc-derby -* pax-jdbc-derbyclient -* pax-jdbc-h2 -* pax-jdbc-mariadb -* pax-jdbc-mysql -* pax-jdbc-oracle -* pax-jdbc-postgresql -* pax-jdbc-sqlite -* pax-jdbc-mssql - -This feature provides an OSGi service to create/delete JDBC datasources in the container and perform database operations (SQL queries). - -This JDBC OSGi service can be manipulated programmatically (see the developer guide for details), using the {{jdbc:*}} commands, or using the JDBC MBean. - -h2. Commands - -h3. {{jdbc:ds-create}} - -The {{jdbc:ds-create}} command automatically creates a datasource definition file by leveraging pax-jdbc. - -The {{jdbc:ds-create}} command requires either: - -* the {{--driverName}} containing the JDBC driver name -* or the {{--driverClass}} containing the JDBC driver class name - -The {{jdbc:ds-create}} accepts a set of options and the name argument: - -{code} -DESCRIPTION - jdbc:ds-create - - Create a JDBC datasource config for pax-jdbc-config from a DataSourceFactory - -SYNTAX - jdbc:ds-create [options] name - -ARGUMENTS - name - The JDBC datasource name - -OPTIONS - -dbName - Database name to use - --help - Display this help message - -dn, --driverName - org.osgi.driver.name property of the DataSourceFactory - -u, --username - The database username - -dc, --driverClass - org.osgi.driver.class property of the DataSourceFactory - -p, --password - The database password - -url - The JDBC URL to use -{code} - -* the {{name}} argument is required. It's the name of the datasource. The name is used to identify the datasource, and to create the datasource definition file ({{deploy/datasource-[name].xml}}). -* the {{-u}} option is optional. It defines the database username. -* the {{-url}} option is optional. It defines the JDBC URL to access to the database. -* the {{-p}} option is optional. It defines the database password. - -For instance, to create an embedded Apache Derby database in Apache Karaf, you can do: - -{code} -karaf@root()> jdbc:ds-create -dn derby -dbName test -url jdbc:derby:test test -{code} - -We can see that this command created a configuration PID containing the datasource properties. - -h2. {{jdbc:ds-delete}} - -The {{jdbc:ds-delete}} command deletes a datasource. - -{code} -karaf@root()> jdbc:ds-delete test -{code} - -h2. {{jdbc:ds-list}} - -The {{jdbc:ds-list}} command lists the JDBC datasources: - -{code} -karaf@root()> jdbc:ds-list -Name | Product | Version | URL | Status ---------------------------------------- - -{code} - -h2. {{jdbc:ds-info}} - -The {{jdbc:ds-info}} command provides details about a JDBC datasource: - -{code} -karaf@root()> jdbc:ds-info test -Property | Value --------------------------------------------------- -driver.version | 10.8.2.2 - (1181258) -username | APP -db.version | 10.8.2.2 - (1181258) -db.product | Apache Derby -driver.name | Apache Derby Embedded JDBC Driver -url | jdbc:derby:test -{code} - -h2. {{jdbc:execute}} - -The {{jdbc:execute}} command executes a SQL query that doesn't return any result on a given JDBC datasource. - -Typically, you can use the {{jdbc:execute}} command to create tables, insert values into tables, etc. - -For instance, we can create a {{person}} table on our {{test}} datasource: - -{code} -karaf@root()> jdbc:execute test "create table person(name varchar(100), nick varchar(100))" -{code} - -And we can insert some records in the {{person}} table: - -{code} -karaf@root()> jdbc:execute test "insert into person(name, nick) values('foo','bar')" -karaf@root()> jdbc:execute test "insert into person(name, nick) values('test','test')" -{code} - -h2. {{jdbc:query}} - -The {{jdbc:query}} command is similar to the {{jdbc:execute}} one but it displays the query result. - -For instance, to display the content of the {{person}} table, we can do: - -{code} -karaf@root()> jdbc:query test "select * from person" -NICK | NAME --------------------------------- -bar | foo -test | test -{code} - -h2. {{jdbc:tables}} - -The {{jdbc:tables}} command displays all tables available on a given JDBC datasource: - -{code} -karaf@root()> jdbc:tables test -REF_GENERATION | TYPE_NAME | TABLE_NAME | TYPE_CAT | REMARKS | TYPE_SCHEM | TABLE_TYPE | TABLE_SCHEM | TABLE_CAT | SELF_REFERENCING_COL_NAME ----------------------------------------------------------------------------------------------------------------------------------------------------- - | | SYSALIASES | | | | SYSTEM TABLE | SYS | | - | | SYSCHECKS | | | | SYSTEM TABLE | SYS | | - | | SYSCOLPERMS | | | | SYSTEM TABLE | SYS | | - | | SYSCOLUMNS | | | | SYSTEM TABLE | SYS | | - | | SYSCONGLOMERATES | | | | SYSTEM TABLE | SYS | | - | | SYSCONSTRAINTS | | | | SYSTEM TABLE | SYS | | - | | SYSDEPENDS | | | | SYSTEM TABLE | SYS | | - | | SYSFILES | | | | SYSTEM TABLE | SYS | | - | | SYSFOREIGNKEYS | | | | SYSTEM TABLE | SYS | | - | | SYSKEYS | | | | SYSTEM TABLE | SYS | | - | | SYSPERMS | | | | SYSTEM TABLE | SYS | | - | | SYSROLES | | | | SYSTEM TABLE | SYS | | - | | SYSROUTINEPERMS | | | | SYSTEM TABLE | SYS | | - | | SYSSCHEMAS | | | | SYSTEM TABLE | SYS | | - | | SYSSEQUENCES | | | | SYSTEM TABLE | SYS | | - | | SYSSTATEMENTS | | | | SYSTEM TABLE | SYS | | - | | SYSSTATISTICS | | | | SYSTEM TABLE | SYS | | - | | SYSTABLEPERMS | | | | SYSTEM TABLE | SYS | | - | | SYSTABLES | | | | SYSTEM TABLE | SYS | | - | | SYSTRIGGERS | | | | SYSTEM TABLE | SYS | | - | | SYSVIEWS | | | | SYSTEM TABLE | SYS | | - | | SYSDUMMY1 | | | | SYSTEM TABLE | SYSIBM | | - | | PERSON | | | | TABLE | APP | | -{code} - -h2. JMX JDBC MBean - -The JMX JDBC MBean provides the JDBC datasources, and the operations to manipulate datasources and database. - -The object name to use is {{org.apache.karaf:type=jdbc,name=*}}. - -h3. Attributes - -The {{Datasources}} attribute provides a tabular data of all JDBC datasource, containing: - -* {{name}} is the JDBC datasource name -* {{product}} is the database product backend -* {{url}} is the JDBC URL used by the datasource -* {{version}} is the database version backend. - -h3. Operations - -* {{create(name, type, jdbcDriverClassName, version, url, user, password, installBundles)}} creates a JDBC datasource (the arguments correspond to the options of the {{jdbc:create}} command). -* {{delete(name)}} deletes a JDBC datasource. -* {{info(datasource)}} returns a Map (String/String) of details about a JDBC {{datasource}}. -* {{tables(datasource)}} returns a tabular data containing the tables available on a JDBC {{datasource}}. -* {{execute(datasource, command}} executes a SQL command on the given JDBC {{datasource}}. -* {{query(datasource, query}} executes a SQL query on the given JDBC {{datasource}} and return the execution result as tabular data. - http://git-wip-us.apache.org/repos/asf/karaf/blob/3de05ae9/manual/src/main/webapp/users-guide/jms.conf ---------------------------------------------------------------------- diff --git a/manual/src/main/webapp/users-guide/jms.conf b/manual/src/main/webapp/users-guide/jms.conf deleted file mode 100644 index e1fd626..0000000 --- a/manual/src/main/webapp/users-guide/jms.conf +++ /dev/null @@ -1,300 +0,0 @@ -h1. MOM (JMS) - -The Apache Karaf MOM (Messaging Oriented Middleware/JMS) is an optional enterprise feature. - -You have to install the {{jms}} feature first: - -{code} -karaf@root()> feature:install jms -{code} - -The {{jms}} feature doesn't install a JMS broker: it just installs the OSGi service, commands, and MBean to interact with -a JMS broker (not the broker itself). - -It means that you have to install a JMS broker itself. - -This JMS broker can be available: - -* outside of Apache Karaf, as a standalone broker. In that case, Apache Karaf JMS will remotely connect to the JMS broker. - For instance, you can use this topology with Apache ActiveMQ or IBM WebsphereMQ. -* embedded in Apache Karaf. With this topology, Apache Karaf itself provides a JMS broker service. Apache ActiveMQ provides - a native support in Apache Karaf. - -For instance, you can install Apache ActiveMQ directly in Apache Karaf: - -{code} -karaf@root()> feature:repo-add activemq -Adding feature url mvn:org.apache.activemq/activemq-karaf/LATEST/xml/features -karaf@root()> feature:install activemq-broker -{code} - -The {{activemq-broker}} feature installs: - -* a Apache ActiveMQ broker directly in Apache Karaf, bind to the {{61616}} port number by default. -* the Apache ActiveMQ WebConsole bound to {{http://0.0.0.0:8181/activemqweb}} by default. - -The Apache Karaf {{jms}} feature provides an OSGi service to create/delete JMS connection factories in the container -and perform JMS operations (send or consume messages, get information about a JMS broker, list the destinations, ...). - -This JMS OSGi service can be manipulated programmatically (see the developer guide for details), using the {{jms:*}} commands, or using the JMS MBean. - -h2. Commands - -h3. {{jms:create}} - -The {{jms:create}} command creates a JMS connection factory in the Apache Karaf container. It automatically creates a -blueprint XML file in the {{deploy}} folder containing the JMS connection factory definition corresponding -to the type that you mentioned. - -The {{jms:create}} command accepts different arguments and options: - -{code} -karaf@root()> jms:create --help -DESCRIPTION - jms:create - - Create a JMS connection factory. - -SYNTAX - jms:create [options] name - -ARGUMENTS - name - The JMS connection factory name - -OPTIONS - -t, --type - The JMS connection factory type (ActiveMQ or WebsphereMQ) - (defaults to ActiveMQ) - -u, --username - Username to connect to the JMS broker - (defaults to karaf) - --help - Display this help message - --url - URL of the JMS broker. For WebsphereMQ type, the URL is hostname/port/queuemanager/channel - (defaults to tcp://localhost:61616) - -p, --password - Password to connect to the JMS broker - (defaults to karaf) - -{code} - -* the {{name}} argument is required. It's the name of the JMS connection factory. The name is used to identify the connection factory, and to create the connection factory definition file ({{deploy/connectionfactory-[name].xml}}). -* the {{-t}} ({{--type}}) option is required. It's the type of the JMS connection factory. Currently on {{activemq}} and {{webspheremq}} type are supported. If you want to use another type of JMS connection factory, you can create the {{deploy/connectionfactory-[name].xml}} file by hand (using one as template). -* the {{--url}} option is required. It's the URL used by the JMS connection factory to connect to the broker. If the type is {{activemq}}, the URL looks like {{tcp://localhost:61616}}. If the type is {{webspheremq}}, the URL looks like {{host/port/queuemanager/channel}}. -* the {{-u}} ({{--username}}) option is optional (karaf by default). In the case of the broker requires authentication, it's the username used. -* the {{-p}} ({{--password}}) option is optional (karaf by default). In the case of the broker requires authentication, it's the password used. - -For instance, to create a JMS connection factory for a Apache ActiveMQ broker, you can do: - -{code} -karaf@root()> jms:create -t activemq --url tcp://localhost:61616 test -{code} - -{warning} -The {{jms:create}} command doesn't install any feature or bundle providing the JMS connection factory classes (and dependencies). -You have to install the required features (for instance {{activemq-broker}} feature for Apache ActiveMQ), or bundles (for IBM WebsphereMQ) providing the JMS connection factory packages and classes. -{warning} - -In the previous example, we assume that you previously installed the {{activemq-broker}} feature. - -We can see the created JMS connection factory: - -{code} -karaf@root()> la -... -151 | Active | 80 | 0.0.0 | connectionfactory-test.xml -{code} - -The {{connectionfactory-test.xml}} file has been created in the {{deploy}} folder. - -By default, the {{jms:create}} command constructs a JNDI name for the connection factory: {{/jms/[name]}}. - -It means that the connection factory name to use for the other {{jms:*}} commands is {{/jms/[name]}}. - -h3. {{jms:delete}} - -The {{jms:delete}} command deletes a JMS connection factory. The {{name}} argument is the name that you used at creation time: - -{code} -karaf@root()> jms:delete test -{code} - -h3. {{jms:connectionfactories}} - -The {{jms:connectionfactories}} command lists the JMS connection factories: - -{code} -karaf@root()> jms:connectionfactories -JMS Connection Factory ----------------------- -/jms/test -{code} - -h3. {{jms:info}} - -The {{jms:info}} command provides details about the JMS connection factory: - -{code} -karaf@root()> jms:info /jms/test -Property | Value -------------------- -product | ActiveMQ -version | 5.9.0 -{code} - -You can see the JMS broker product and version. - -If the JMS broker requires an authentication, you can use the {{-u}} ({{--username}}) and {{-p}} ({{--password}}) options. - -h3. {{jms:queues}} - -The {{jms:queues}} command lists the JMS queues available on a JMS broker. For instance: - -{code} -karaf@root()> jms:queues /jms/test -JMS Queues ----------- -MyQueue -{code} - -where {{/jms/test}} is the name of the JMS connection factory. - -If the JMS broker requires an authentication, you can use the {{-u}} ({{--username}}) and {{-p}} ({{--password}}) options. - -{warning} -Depending of the JMS connection factory type, this command may not work. -For now, the command works only with Apache ActiveMQ. -{warning} - -h3. {{jms:topics}} - -The {{jms:topics}} command lists the JMS topics available on a JMS broker. For instance: - -{code} -karaf@root()> jms:topics /jms/test -JMS Topics ----------- -MyTopic -{code} - -where {{/jms/test}} is the name of the JMS connection factory. - -If the JMS broker requires an authentication, you can use the {{-u}} ({{--username}}) and {{-p}} ({{--password}}) options. - -{warning} -Depending of the JMS connection factory type, this command may not work. -For now, the command works only with Apache ActiveMQ. -{warning} - -h3. {{jms:send}} - -The {{jms:send}} command sends a message to a given JMS queue. - -For instance, to send a message containing {{Hello World}} in the {{MyQueue}} queue, you can do: - -{code} -karaf@root()> jms:send /jms/test MyQueue "Hello World" -{code} - -If the JMS broker requires an authentication, you can use the {{-u}} ({{--username}}) and {{-p}} ({{--password}}) options. - -h3. {{jms:consume}} - -The {{jms:consume}} command consumes messages from a JMS queue. - -For instance, to consume all messages from {{MyQueue}}, you can do: - -{code} -karaf@root()> jms:consume /jms/test MyQueue -2 message(s) consumed -{code} - -If you want to consume only some messages, you can define a selector using the {{-s}} ({{--selector}}) option. - -If the JMS broker requires an authentication, you can use the {{-u}} ({{--username}}) and {{-p}} ({{--password}}) options. - -{warning} -The {{jms:consume}} command just consumes (so removes) messages from a JMS queue. It doesn't display the messages. -If you want to see the details of messages, you can use the {{jms:browse}} command. -{warning} - -h3. {{jms:count}} - -The {{jms:count}} command counts the number of pending messages into a JMS queue. - -For instance, if you want to know the number of messages on {{MyQueue}}, you can do: - -{code} -karaf@root()> jms:count /jms/test MyQueue -Messages Count --------------- -8 -{code} - -If the JMS broker requires an authentication, you can use the {{-u}} ({{--username}}) and {{-p}} ({{--password}}) options. - -h3. {{jms:browse}} - -The {{jms:browse}} command browses a JMS queue and display details about messages. - -For instance, to browse the {{MyQueue}} queue: - -{code} -karaf@root()> jms:browse /jms/test MyQueue -Message ID | Content | Charset | Type | Correlation ID | Delivery Mode | Destination | Expiration | Priority | Redelivered | ReplyTo | Timestamp ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -ID:vostro-59602-1387462183019-3:1:1:1:1 | Hello World | UTF-8 | | | Persistent | queue://MyQueue | Never | 4 | false | | Thu Dec 19 15:10:12 CET 2013 -ID:vostro-59602-1387462183019-3:2:1:1:1 | Hello ActiveMQ | UTF-8 | | | Persistent | queue://MyQueue | Never | 4 | false | | Thu Dec 19 15:10:16 CET 2013 -ID:vostro-59602-1387462183019-3:3:1:1:1 | Hello Karaf | UTF-8 | | | Persistent | queue://MyQueue | Never | 4 | false | | Thu Dec 19 15:10:19 CET 2013 -{code} - -By default, the messages properties are not displayed. You can use the {{-v}} ({{--verbose}}) option to display the properties: - -{code} -karaf@root()> jms:browse -v /jms/test MyQueue -Message ID | Content | Charset | Type | Correlation ID | Delivery Mode | Destination | Expiration | Priority | Redelivered | ReplyTo | Timestamp | Properties ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -ID:vostro-59602-1387462183019-3:1:1:1:1 | Hello World | UTF-8 | | | Persistent | queue://MyQueue | Never | 4 | false | | Thu Dec 19 15:10:12 CET 2013 | -ID:vostro-59602-1387462183019-3:2:1:1:1 | Hello ActiveMQ | UTF-8 | | | Persistent | queue://MyQueue | Never | 4 | false | | Thu Dec 19 15:10:16 CET 2013 | -ID:vostro-59602-1387462183019-3:3:1:1:1 | Hello Karaf | UTF-8 | | | Persistent | queue://MyQueue | Never | 4 | false | | Thu Dec 19 15:10:19 CET 2013 | -{code} - -If you want to browse only some messages, you can define a selector using the {{-s}} ({{--selector}}) option. - -If the JMS broker requires an authentication, you can use the {{-u}} ({{--username}}) and {{-p}} ({{--password}}) options. - -h3. {{jms:move}} - -The {{jms:move}} command consumes all messages from a JMS queue and send it to another one. - -For instance, to move all messages from {{MyQueue}} queue to {{AnotherQueue}} queue, you can do: - -{code} -karaf@root()> jms:move /jms/test MyQueue AnotherQueue -3 message(s) moved -{code} - -h2. JMX JMS MBean - -The JMX JMS MBean provides the attributes and operations to manipulate the JMS connection factories and JMS messages. - -The object name to use is {{org.apache.karaf:type=jms,name=*}}. - -h3. Attributes - -The {{Connectionfactories}} attribute provides the list of all JMS connection factories names. - -h3. Operations - -* {{create(name, type, url)}} creates a JMS connection factory. -* {{delete(name)}} deletes a JMS connection factory. -* {{Map<String, String> info(connectionFactory, username, password)}} gets details about a JMS connection factory and broker. -* {{int count(connectionFactory, queue, username, password)}} counts the number of pending messages on a JMS queue. -* {{List<String> queues(connectionFactory, username, password)}} lists the JMS queues available on the JMS broker. -* {{List<String> topics(connectionFactory, username, password)}} lists the JMS topics available on the JMS broker. -* {{TabularData browse(connectionFactory, queue, selector, username, password)}} browses a JMS queue and provides a table of JMS messages. -* {{send(connectionFactory, queue, content, replyTo, username, password)}} sends a JMS message to a target queue. -* {{int consume(connectionFactory, queue, selector, username, password)}} consumes JMS messages from a JMS queue. -* {{int move(connectionFactory, source, destination, selector, username, password)}} moves messages from a JMS queue to another. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/karaf/blob/3de05ae9/manual/src/main/webapp/users-guide/jndi.conf ---------------------------------------------------------------------- diff --git a/manual/src/main/webapp/users-guide/jndi.conf b/manual/src/main/webapp/users-guide/jndi.conf deleted file mode 100644 index af40bf5..0000000 --- a/manual/src/main/webapp/users-guide/jndi.conf +++ /dev/null @@ -1,205 +0,0 @@ -h1. Naming (JNDI) - -The Apache Karaf Naming (JNDI) is an optional enterprise feature. - -You have to install the {{jndi}} feature first: - -{code} -karaf@root()> feature:install jndi -{code} - -Apache Karaf provides a complete JNDI support. - -You have two parts in the Apache Karaf JNDI support: - -* a fully compliant implementation of the OSGi Alliance JNDI Service specification. -* a more "regular" JNDI context, containing different names that you can administrate. - -h2. OSGi Services Registry and JNDI - -The OSGi Service Registry provides a centralized register/query capabilities for OSGi services. - -A common pattern outside of OSGi is to make use of JNDI API to access services from a directory system. -The OSGi service registry can be viewed as an example of such a system. - -Apache Karaf supports the {{osgi:service}} lookup scheme as defined by the JNDI Service Specification. - -The schema is: - -{code} -osgi:service/<interface>[/<filter>] -{code} - -For instance, you can directly use JNDI to get a OSGi service: - -{code} -Context ctx = new InitialContext(); -Runnable r = (Runnable) ctx.lookup("osgi:service/java.lang.Runnable"); -{code} - -h2. JNDI service - -Apache Karaf also supports regular JNDI, including a directoy system where you can register name bindings, sub-context, etc. - -It supports the standard JNDI API: - -{code} -Context ctx = new InitialContext(); -Runnable r = (Runnable) ctx.lookup("this/is/the/name"); -{code} - -It also allows you to bind some OSGi services as "pure" JNDI name. In that case, you don't have to use the specific -{{osgi:service}} scheme. - -h2. Commands - -Apache Karaf provides specific commands to manipulate the JNDI service. - -h3. {{jndi:names}} - -The {{jndi:names}} command lists all JNDI names. It groups both the JNDI names from the {{osgi:service}} scheme and the -regular JNDI names: - -{code} -karaf@root()> jndi:names -JNDI Name | Class Name ------------------------------------------------------------------- -osgi:service/jndi | org.apache.karaf.jndi.internal.JndiServiceImpl -jndi/service | org.apache.karaf.jndi.internal.JndiServiceImpl -{code} - -We can see here the {{osgi:service/jndi}} name (using the {{osgi:service}} scheme) and {{jndi/service}} name (using the -regular JNDI service). - -The {{jndi:names}} command accepts an optional {{context}} argument to list names on the given context. - -For instance, you can list only names in the {{jndi}} sub-context: - -{code} -karaf@root()> jndi:names jndi -JNDI Name | Class Name ----------------------------------------------------------- -service | org.apache.karaf.jndi.internal.JndiServiceImpl -{code} - -{warning} -The {{jndi:names}} lists only names (the full qualified name). It means that the empty JNDI sub-contexts are not displayed. -To display all JNDI sub-contexts (empty or not), you can use the {{jndi:contexts}} command. -{warning} - -h3. {{jndi:contexts}} - -The {{jndi:contexts}} command lists all JNDI sub-contexts: - -{code} -karaf@root()> jndi:contexts -JNDI Sub-Context ----------------- -other/context -foo/bar -{code} - -h3. {{jndi:create}} - -The {{jndi:create}} command creates a new JNDI sub-context: - -{code} -karaf@root()> jndi:create my/company -{code} - -h3. {{jndi:delete}} - -The {{jndi:delete}} command deletes a JNDI sub-context: - -{code} -karaf@root()> jndi:delete my/company -{code} - -h3. {{jndi:alias}} - -The {{jndi:alias}} command creates a new JNDI name (alias) with an existing one. - -The existing JNDI name can be a regular one: - -{code} -karaf@root()> jndi:alias bean/services/jndi aliases/services/jndi -karaf@root()> jndi:names -JNDI Name | Class Name ----------------------------------------------------------------------- -osgi:service/jndi | org.apache.karaf.jndi.internal.JndiServiceImpl -bean/services/jndi | org.apache.karaf.jndi.internal.JndiServiceImpl -aliases/services/jndi | org.apache.karaf.jndi.internal.JndiServiceImpl -{code} - -or a name from the {{osgi:service}} schema: - -{code} -karaf@root()> jndi:alias osgi:service/jndi alias/jndi/service -karaf@root()> jndi:names -JNDI Name | Class Name -------------------------------------------------------------------- -osgi:service/jndi | org.apache.karaf.jndi.internal.JndiServiceImpl -alias/jndi/service | org.apache.karaf.jndi.internal.JndiServiceImpl -{code} - -NB: the {{jndi:alias}} automatically creates all required JNDI sub-contexts. - -h3. {{jndi:bind}} - -The {{jndi:bind}} command binds an OSGi service with a JNDI name. - -The {{jndi:bind}} command requires an OSGi service ID and a JNDI name. The OSGi service ID can be found using the {{service:list}} command. - -For instance, we can bind the OSGi service with ID 344 with the JNDI name {{services/kar}}: - -{code} -karaf@root()> jndi:bind 344 services/kar -karaf@root()> jndi:names -JNDI Name | Class Name -------------------------------------------------------------------------------- -osgi:service/jndi | org.apache.karaf.jndi.internal.JndiServiceImpl -services/kar | org.apache.karaf.kar.internal.KarServiceImpl -{code} - -h3. {{jndi:unbind}} - -The {{jndi:unbind}} command unbind a given JNDI name: - -{code} -karaf@root()> jndi:names -JNDI Name | Class Name -------------------------------------------------------------------------------- -osgi:service/jndi | org.apache.karaf.jndi.internal.JndiServiceImpl -services/kar | org.apache.karaf.kar.internal.KarServiceImpl -karaf@root()> jndi:unbind services/kar -karaf@root()> jndi:names -JNDI Name | Class Name -------------------------------------------------------------------------------- -osgi:service/jndi | org.apache.karaf.jndi.internal.JndiServiceImpl -{code} - -{warning} -It's not possible to unbind a name from the {{osgi:service}} schema, as it's linked to a OSGi service. -{warning} - -h2. JMX JndiMBean - -The JMX JndiMBean provides the JNDI names, and the operations to manipulate the JNDI service. - -The object name to use is {{org.apache.karaf:type=jndi,name=*}}. - -h3. Attributes - -The {{Names}} attribute provides a map containing all JNDI names and class names from both {{osgi:service}} scheme -and the regular JNDI service. - -The {{Contexts}} attribute provides a list containing all JNDI sub-contexts. - -h3. Operations - -* {{getNames(context)}} provides a map containing JNDI names and class names in a given JNDI sub-context. -* {{create(context)}} creates a new JNDI sub-context. -* {{delete(context)}} deletes a JNDI sub-context. -* {{alias(name, alias}} creates a JNDI name (alias) for a given one. -* {{bind(serviceId, name}} binds a JNDI name using an OSGi service (identified by its ID). -* {{unbind(name)}} unbinds a JNDI name. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/karaf/blob/3de05ae9/manual/src/main/webapp/users-guide/jpa.conf ---------------------------------------------------------------------- diff --git a/manual/src/main/webapp/users-guide/jpa.conf b/manual/src/main/webapp/users-guide/jpa.conf deleted file mode 100644 index 1e3d6fb..0000000 --- a/manual/src/main/webapp/users-guide/jpa.conf +++ /dev/null @@ -1,26 +0,0 @@ -h1. Persistence (JPA) - -Apache Karaf provides JPA persistence providers (such as Apache OpenJPA) to be easy to use (in a OSGi way) and provide -container managed persistence for applications (using Blueprint). - -Apache Karaf embeds Aries JPA, providing a very easy way to develop applications that use JPA persistence. - -See the developer guide for details about developing applications that use JPA. - -h2. Persistence engine features - -Apache Karaf provides a set of ready to use persistence engine features: - -* Apache OpenJPA. The {{openjpa}} feature installs the {{jpa}} feature with the Apache OpenJPA as persistence engine: - -{code} -karaf@root()> feature:install openjpa -{code} - -* Hibernate. The {{hibernate}} feature installs the {{jpa}} feature with the Hibernate persistence engine: - -{code} -karaf@root()> feature:install hibernate -{code} - -* EclipseLink. The {{eclipselink}} feature will be available in the next Apache Karaf release. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/karaf/blob/3de05ae9/manual/src/main/webapp/users-guide/jta.conf ---------------------------------------------------------------------- diff --git a/manual/src/main/webapp/users-guide/jta.conf b/manual/src/main/webapp/users-guide/jta.conf deleted file mode 100644 index 9857465..0000000 --- a/manual/src/main/webapp/users-guide/jta.conf +++ /dev/null @@ -1,105 +0,0 @@ -h1. Transaction (JTA) - -Apache Karaf provides container managed transactions, available as OSGi services. - -As most of the enterprise features, it's an optional feature that you can install with: - -{code} -karaf@root()> feature:install transaction -{code} - -However, the {{transaction}} feature is installed (as a transitive dependency) when installing enterprise features -(like {{jdbc}} or {{jms}} features for instance). - -h2. Apache Aries Transaction and ObjectWeb HOWL - -The {{transaction}} feature uses Apache Aries and ObjectWeb HOWL. Aapache Aries Transaction "exposes" the transaction -manager as OSGi service. The actual implementation of the transaction manager is ObjectWeb HOWL. - -ObjectWeb HOWL is a logger implementation providing features required by the ObjectWeb JOTM project, with a public API -that is generally usable by any Transaction Manager. -ObjectWeb HOWL uses unformatted binary logs to maximize performance and specifies a journalization API with methods -necessary to support JOTM recovery operations. - -ObjectWeb HOWL is intended to be used for logging of temporary data such as XA transaction events. -It is not a replacement for traditional log kits such as LOG4J and Java SE Logging. - -In Apache Karaf, ObjectWeb HOWL (High-speed ObjectWeb Logger) is used to implement TransactionLog (in Aries Transaction), -providing a very performant transaction manager in an OSGi way. - -h2. Configuration - -The installation of the {{transaction}} feature installs a new configuration: {{org.apache.aries.transaction}}. - -You can see the configuration properties using: - -{code} -karaf@root()> config:list "(service.pid=org.apache.aries.transaction)" ----------------------------------------------------------------- -Pid: org.apache.aries.transaction -BundleLocation: mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/1.1.0 -Properties: - aries.transaction.recoverable = true - aries.transaction.timeout = 600 - service.pid = org.apache.aries.transaction - org.apache.karaf.features.configKey = org.apache.aries.transaction - aries.transaction.howl.maxBlocksPerFile = 512 - aries.transaction.howl.maxLogFiles = 2 - aries.transaction.howl.logFileDir = /opt/apache-karaf-4.0.0/data/txlog - aries.transaction.howl.bufferSizeKBytes = 4 -{code} - -* {{aries.transaction.recoverable}} property is a flag to enable support of recoverable resource or not. A recoverable - resource is a transactional object whose state is saved to stable storage if the transaction is committed, and whose - state can be reset to what it was at the beginning of the transaction if the transaction is rolled back. - At commit time, the transaction manager uses the two-phase XA protocol when communicating with the recoverable resource - to ensure transactional integrity when more than one recoverable resource is involved in the transaction being committed. - Transactional databases and message brokers like Apache ActiveMQ are examples of recoverable resources. - A recoverable resource is represented using the javax.transaction.xa.XAResource interface in JTA. - Default is {{true}}. -* {{aries.transaction.timeout}} property is the transaction timeout. If a transaction has a lifetime longer than this timeout - a transaction exception is raised and the transaction is rollbacked. Default is {{600}} (10 minutes). -* {{aries.transaction.howl.logFileDir}} property is the directory where the transaction logs (journal) are stored. - Default is {{KARAF_DATA/txlog}}. -* {{aries.transaction.howl.maxLogFiles}} property is the maximum number of transaction log files to retain. Combined with the - {{aries.transaction.howl.maxBlocksPerFile}}, it defines the transaction retention. - -You can change the configuration directly using the {{config:*}} commands, or the Config MBean. - -For instance, to increase the transaction timeout, you can do: - -{code} -karaf@root()> config:edit org.apache.aries.transaction -karaf@root()> config:property-set aries.transaction.timeout 1200 -karaf@root()> config:update -karaf@root()> config:list "(service.pid=org.apache.aries.transaction)" ----------------------------------------------------------------- -Pid: org.apache.aries.transaction -BundleLocation: mvn:org.apache.aries.transaction/org.apache.aries.transaction.manager/1.1.0 -Properties: - aries.transaction.recoverable = true - aries.transaction.timeout = 1200 - service.pid = org.apache.aries.transaction - org.apache.karaf.features.configKey = org.apache.aries.transaction - aries.transaction.howl.maxBlocksPerFile = 512 - aries.transaction.howl.maxLogFiles = 2 - aries.transaction.howl.logFileDir = /opt/apache-karaf-4.0.0/data/txlog - aries.transaction.howl.bufferSizeKBytes = 4 -{code} - -{warning} -The {{transaction}} feature defines the configuration in memory by default. It means that changes that you can do will -be lost in case of Apache Karaf restart. -If you want to define your own transaction configuration at startup, you have to create a {{etc/org.apache.aries.transaction.cfg}} -configuration file and set the properties and values in the file. For instance: - -{code} -# etc/org.apache.aries.transaction.cfg -aries.transaction.recoverable = true -aries.transaction.timeout = 1200 -aries.transaction.howl.maxBlocksPerFile = 512 -aries.transaction.howl.maxLogFiles = 2 -aries.transaction.howl.logFileDir = /opt/apache-karaf-4.0.0/data/txlog -aries.transaction.howl.bufferSizeKBytes = 4 -{code} -{warning} http://git-wip-us.apache.org/repos/asf/karaf/blob/3de05ae9/manual/src/main/webapp/users-guide/kar.conf ---------------------------------------------------------------------- diff --git a/manual/src/main/webapp/users-guide/kar.conf b/manual/src/main/webapp/users-guide/kar.conf deleted file mode 100644 index 50229f3..0000000 --- a/manual/src/main/webapp/users-guide/kar.conf +++ /dev/null @@ -1,284 +0,0 @@ -h1. KAR - -As described in the [Provisioning section|provisioning], Apache Karaf features describe applications. - -A feature defines different resources to resolve using URL (for instance, bundles URLs, or configuration files URLs). -As described in the [Artifacts repositories and URLs section|urls], Apache Karaf looks for artifacts (bundles, -configuration files, ...) in the artifact repositories. -Apache Karaf may require to download artifacts from remote repositories. - -Apache Karaf provides a special type of artifact that package a features XML and all resources described in the features -of this XML. This artifact is named a KAR (KAraf aRchive). - -A KAR file is a zip archive containing the - -Basically, the kar format is a jar (so a zip file) which contains a set of feature descriptor and bundle jar files. - -A KAR file contains a {{repository}} folder containing: - -* a set of features XML files -* the artifacts following the Maven directory structure ({{groupId/artifactId/version/artifactId-version.type}}). - -For instance, the {{spring-4.0.0.kar}} contains: - -{code} -~$ unzip -l spring-4.0.0.kar -Archive: spring-4.0.0.kar - Length Date Time Name ---------- ---------- ----- ---- - 143 2013-12-06 10:52 META-INF/MANIFEST.MF - 12186 2013-12-06 10:52 repository/org/apache/karaf/features/spring/4.0.0/spring-4.0.0-features.xml - 575389 2013-12-06 10:52 repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar - 232019 2013-12-06 10:52 repository/commons-beanutils/commons-beanutils/1.8.3/commons-beanutils-1.8.3.jar - 673109 2013-12-06 10:52 repository/org/apache/servicemix/bundles/org.apache.servicemix.bundles.struts/1.3.10_1/org.apache.servicemix.bundles.struts-1.3.10_1.jar - 37084 2013-12-06 10:52 repository/org/springframework/org.springframework.web.struts/3.2.4.RELEASE/org.springframework.web.struts-3.2.4.RELEASE.jar - 7411 2013-12-06 10:52 repository/org/springframework/org.springframework.instrument/3.2.4.RELEASE/org.springframework.instrument-3.2.4.RELEASE.jar - 246881 2013-12-06 10:52 repository/org/springframework/org.springframework.transaction/3.2.4.RELEASE/org.springframework.transaction-3.2.4.RELEASE.jar - 16513 2013-12-06 10:52 repository/org/apache/servicemix/bundles/org.apache.servicemix.bundles.aopalliance/1.0_6/org.apache.servicemix.bundles.aopalliance-1.0_6.jar - 881124 2013-12-06 10:52 repository/org/springframework/org.springframework.core/3.2.4.RELEASE/org.springframework.core-3.2.4.RELEASE.jar - 199240 2013-12-06 10:52 repository/org/springframework/org.springframework.expression/3.2.4.RELEASE/org.springframework.expression-3.2.4.RELEASE.jar - 614646 2013-12-06 10:52 repository/org/springframework/org.springframework.beans/3.2.4.RELEASE/org.springframework.beans-3.2.4.RELEASE.jar - 340841 2013-12-06 10:52 repository/org/springframework/org.springframework.aop/3.2.4.RELEASE/org.springframework.aop-3.2.4.RELEASE.jar - 877369 2013-12-06 10:52 repository/org/springframework/org.springframework.context/3.2.4.RELEASE/org.springframework.context-3.2.4.RELEASE.jar - 130224 2013-12-06 10:52 repository/org/springframework/org.springframework.context.support/3.2.4.RELEASE/org.springframework.context.support-3.2.4.RELEASE.jar - 30640 2013-12-06 10:52 repository/org/apache/karaf/deployer/org.apache.karaf.deployer.spring/4.0.0/org.apache.karaf.deployer.spring-4.0.0.jar - 51951 2013-12-06 10:52 repository/org/springframework/org.springframework.aspects/3.2.4.RELEASE/org.springframework.aspects-3.2.4.RELEASE.jar - 411175 2013-12-06 10:52 repository/org/springframework/org.springframework.jdbc/3.2.4.RELEASE/org.springframework.jdbc-3.2.4.RELEASE.jar - 48049 2013-12-06 10:52 repository/javax/portlet/portlet-api/2.0/portlet-api-2.0.jar - 190883 2013-12-06 10:52 repository/org/springframework/org.springframework.web.portlet/3.2.4.RELEASE/org.springframework.web.portlet-3.2.4.RELEASE.jar - 635680 2013-12-06 10:52 repository/org/springframework/org.springframework.web/3.2.4.RELEASE/org.springframework.web-3.2.4.RELEASE.jar - 645946 2013-12-06 10:52 repository/org/springframework/org.springframework.web.servlet/3.2.4.RELEASE/org.springframework.web.servlet-3.2.4.RELEASE.jar - 464911 2013-12-06 10:52 repository/org/springframework/org.springframework.test/3.2.4.RELEASE/org.springframework.test-3.2.4.RELEASE.jar - 69784 2013-12-06 10:52 repository/org/springframework/osgi/spring-osgi-web/1.2.1/spring-osgi-web-1.2.1.jar - 16030 2013-12-06 10:52 repository/org/apache/geronimo/specs/geronimo-jta_1.1_spec/1.1.1/geronimo-jta_1.1_spec-1.1.1.jar - 32359 2013-12-06 10:52 repository/org/apache/geronimo/specs/geronimo-jms_1.1_spec/1.1.1/geronimo-jms_1.1_spec-1.1.1.jar - 208684 2013-12-06 10:52 repository/org/springframework/org.springframework.jms/3.2.4.RELEASE/org.springframework.jms-3.2.4.RELEASE.jar - 75672 2013-12-06 10:52 repository/org/springframework/org.springframework.oxm/3.2.4.RELEASE/org.springframework.oxm-3.2.4.RELEASE.jar - 393607 2013-12-06 10:52 repository/org/springframework/org.springframework.orm/3.2.4.RELEASE/org.springframework.orm-3.2.4.RELEASE.jar - 338559 2013-12-06 10:52 repository/org/apache/servicemix/bundles/org.apache.servicemix.bundles.cglib/3.0_1/org.apache.servicemix.bundles.cglib-3.0_1.jar - 35859 2013-12-06 10:52 repository/org/springframework/osgi/spring-osgi-io/1.2.1/spring-osgi-io-1.2.1.jar - 362889 2013-12-06 10:52 repository/org/springframework/osgi/spring-osgi-core/1.2.1/spring-osgi-core-1.2.1.jar - 120822 2013-12-06 10:52 repository/org/springframework/osgi/spring-osgi-extender/1.2.1/spring-osgi-extender-1.2.1.jar - 24231 2013-12-06 10:52 repository/org/springframework/osgi/spring-osgi-annotation/1.2.1/spring-osgi-annotation-1.2.1.jar - 12597 2013-12-06 10:52 repository/org/apache/karaf/bundle/org.apache.karaf.bundle.springstate/4.0.0/org.apache.karaf.bundle.springstate-4.0.0.jar - 31903 2013-12-06 10:52 repository/org/eclipse/gemini/blueprint/gemini-blueprint-io/1.0.0.RELEASE/gemini-blueprint-io-1.0.0.RELEASE.jar - 578205 2013-12-06 10:52 repository/org/eclipse/gemini/blueprint/gemini-blueprint-core/1.0.0.RELEASE/gemini-blueprint-core-1.0.0.RELEASE.jar - 178525 2013-12-06 10:52 repository/org/eclipse/gemini/blueprint/gemini-blueprint-extender/1.0.0.RELEASE/gemini-blueprint-extender-1.0.0.RELEASE.jar ---------- ------- - 9803140 38 files -{code} - -As a KAR file is a simple zip file, you can create the KAR file by hand. - -For instance, the following Unix commands create a very simple KAR file: - -{code} -~$ mkdir repository -~$ cp /path/to/features.xml repository/features.xml -~$ cp /path/to/my.jar repository/my/project/my/1.0.0/my-1.0.0.jar -~$ zip -r my.kar repository -updating: repository/ (stored 0%) - adding: repository/my/project/my/1.0.0/my-1.0.0.jar (deflated 0%) -{code} - -You can create KAR files using Apache Maven, or directly in the Apache Karaf console. - -h2. Maven - -Apache Karaf provides a Maven plugin: {{karaf-maven-plugin}}. - -The Apache Karaf Maven plugin provides the {{kar}} goal. - -The {{kar}} goal does: -1. Reads all features specified in the features XML. -2. For each feature described in the features XML, the goal resolves the bundles described in the feature. -3. The goal finally packages the features XML, and the resolved bundles in a zip file. - -For instance, the following Maven POM create {{my-kar.kar}} - -For instance, you can use the following POM to create a kar: - -{code:lang=xml} -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - - <modelVersion>4.0.0</modelVersion> - - <groupId>my.groupId</groupId> - <artifactId>my-kar</artifactId> - <version>1.0</version> - <packaging>kar</packaging> - - <build> - <plugins> - <plugin> - <groupId>org.apache.karaf.tooling</groupId> - <artifactId>karaf-maven-plugin</artifactId> - <version>4.0.0</version> - <extensions>true</extensions> - </plugin> - </plugins> - </build> - -</project> -{code} - -To create the KAR file, simply type: - -{code} -~$ mvn install -{code} - -Uou will have your kar in the {{target}} directory. - -h2. Commands - -Apache Karaf provides {{kar:*}} commands to manage KAR archives. - -h3. {{kar:list}} - -The {{kar:list}} command lists the installed KAR archives. - -{code} -karaf@root()> kar:list -KAR Name -------------------- -my-kar-1.0-SNAPSHOT -{code} - -A KAR is identified by its name. - -h3. {{kar:create}} - -Instead of using the {{karaf-maven-plugin}} or create the KAR archive by hand, you can use the {{kar:create}} command. - -The {{kar:create}} command creates a KAR file using a registered features repository. - -For instance, you want to create a KAR file for the Pax Web repository. - -The {{feature:repo-list}} command gives you the list of registered features repositories: - -{code} -karaf@root()> feature:repo-list -Repository | URL -------------------------------------------------------------------------------------------------------- -standard-4.0.0 | mvn:org.apache.karaf.features/standard/4.0.0/xml/features -enterprise-4.0.0 | mvn:org.apache.karaf.features/enterprise/4.0.0/xml/features -spring-4.0.0 | mvn:org.apache.karaf.features/spring/4.0.0/xml/features -org.ops4j.pax.web-4.1.4 | mvn:org.ops4j.pax.web/pax-web-features/4.1.4/xml/features -{code} - -You can use one of these features repositories to create the kar file: - -{code} -karaf@root()> kar:create org.ops4j.pax.web-4.1.4 -Adding feature pax-jetty -Adding feature pax-http-whiteboard -Adding feature pax-war -Adding feature pax-http-tomcat -Adding feature pax-war-tomcat -Adding feature pax-http -Adding feature pax-http-jetty -Adding feature pax-jsf-support -Adding feature pax-jetty-spdy -Kar file created : /home/jbonofre/Downloads/apache-karaf-4.0.0/data/kar/org.ops4j.pax.web-4.1.4.kar -{code} - -You can see that the KAR file has been created in the {{KARAF_DATA/kar}} folder. - -By default, the {{kar:create}} command creates a KAR file, packaging all features in the features descriptor. - -You can provide the list of features that you want to package into the KAR file: - -{code} -karaf@root()> kar:create org.ops4j.pax.web-4.1.4 pax-jetty pax-tomcat -Adding feature pax-jetty -Adding feature pax-tomcat -Kar file created : /opt/apache-karaf-4.1.4/data/kar/org.ops4j.pax.web-4.1.4.kar -{code} - -h3. {{kar:install}} - -You can deploy a KAR file using {{kar:install}} command. - -The {{kar:install}} command expects the KAR URL. Any URL described in the [Artifacts repositories and URLs section|urls] -is supported by the {{kar:install}} command: - -{code} -karaf@root()> kar:install file:/tmp/my-kar-1.0-SNAPSHOT.kar -{code} - -The KAR file is uncompressed and populated the {{KARAF_BASE/system}} folder. - -The Apache Karaf KAR service is looking for features XML files in the KAR file, registers the features XML and automatically -installs all features described in the features repositories present in the KAR file. - -h3. {{kar:uninstall}} - -The {{kar:uninstall}} command uninstall a KAR file (identified by a name). - -By uninstall, it means that: - -* the features previously installed by the KAR file are uninstalled -* delete (from the {{KARAF_DATA/system}} repository) all files previously "populated" by the KAR file - -For instance, to uninstall the previously installed {{my-kar-1.0-SNAPSHOT.kar}} KAR file: - -{code} -karaf@root()> kar:uninstall my-kar-1.0-SNAPSHOT -{code} - -h2. Deployer - -Apache Karaf also provides a KAR deployer. It means that you can drop a KAR file directly in the {{deploy}} folder. - -Apache Karaf will automatically install KAR files from the {{deploy}} folder. - -You can change the behaviours of the KAR deployer in the {{etc/org.apache.karaf.kar.cfg}}: - -{code} -################################################################################ -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -################################################################################ - -# -# Enable or disable the refresh of the bundles when installing -# the features contained in a KAR file -# -noAutoRefreshBundles=false -{code} - -By default, when the KAR deployer install features, by default, it refresh the bundles already installed. -You can disable the automatic bundles refresh by setting the {{noAutoRefreshBundles}} property to {{false}}. - -h2. JMX KarMBean - -On the JMX layer, you have a MBean dedicated to the management of the KAR files. - -The ObjectName to use is {{org.apache.karaf:type=kar,name=*}}. - -h3. Attributes - -The {{Kars}} attributes provides the list of KAR files (name) installed. - -h3. Operations - -* {{install(url)}} installs the KAR file at the given {{url}}. -* {{create(repository, features)}} creates a KAR file using the given features {{repository}} name, and optionally the -list of {{features}} to include in the KAR file. -* {{uninstall(name)}} uninstalls a KAR file with the given {{name}}.
