Repository: activemq-artemis Updated Branches: refs/heads/master 8f04442e8 -> c998e9a44
manual additions about maven plugin Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/edef0240 Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/edef0240 Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/edef0240 Branch: refs/heads/master Commit: edef0240bd3155534130af8098335324d60cc2e0 Parents: 8f04442 Author: Clebert Suconic <[email protected]> Authored: Mon Aug 31 21:03:46 2015 -0400 Committer: Clebert Suconic <[email protected]> Committed: Tue Sep 1 23:44:46 2015 -0400 ---------------------------------------------------------------------- docs/user-manual/en/SUMMARY.md | 1 + docs/user-manual/en/libaio.md | 33 ++--- docs/user-manual/en/maven-plugin.md | 223 +++++++++++++++++++++++++++++++ 3 files changed, 232 insertions(+), 25 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/edef0240/docs/user-manual/en/SUMMARY.md ---------------------------------------------------------------------- diff --git a/docs/user-manual/en/SUMMARY.md b/docs/user-manual/en/SUMMARY.md index f0413eb..923b905 100644 --- a/docs/user-manual/en/SUMMARY.md +++ b/docs/user-manual/en/SUMMARY.md @@ -53,6 +53,7 @@ * [Intercepting Operations](intercepting-operations.md) * [Protocols and Interoperability](protocols-interoperability.md) * [Tools](tools.md) +* [Maven Plugin](maven-plugin.md) * [Performance Tuning](perf-tuning.md) * [Configuration Reference](configuration-index.md) http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/edef0240/docs/user-manual/en/libaio.md ---------------------------------------------------------------------- diff --git a/docs/user-manual/en/libaio.md b/docs/user-manual/en/libaio.md index 787d044..a8a1ca7 100644 --- a/docs/user-manual/en/libaio.md +++ b/docs/user-manual/en/libaio.md @@ -62,16 +62,18 @@ These are the required linux packages to be installed for the compilation to wor - libaio-dev - Compilation support for libaio +- cmake + - A full JDK installed with the environment variable JAVA\_HOME set to its location To perform this installation on RHEL or Fedora, you can simply type this at a command line: - sudo yum install libtool gcc-c++ gcc libaio libaio-devel + sudo yum install libtool gcc-c++ gcc libaio libaio-devel cmake Or on Debian systems: - sudo apt-get install libtool gcc-g++ gcc libaio libaio-dev + sudo apt-get install libtool gcc-g++ gcc libaio libaio- cmake > **Note** > @@ -82,26 +84,7 @@ Or on Debian systems: ## Invoking the compilation In the source distribution or git clone, in the `artemis-native` directory, execute the shell -script `compile-native.sh`. This script will invoke the proper maven profile to perform the native build. - - someUser@someBox:/checkout-dir/artemis-native$ ./compile-native.sh - [INFO] Scanning for projects... - [INFO] - [INFO] ------------------------------------------------------------------------ - [INFO] Building ActiveMQ Artemis Native POM 1.0.0 - [INFO] ------------------------------------------------------------------------ - [INFO] - [INFO] --- nar-maven-plugin:3.0.0:nar-validate (default-nar-validate) @ artemis-native --- - [INFO] Using AOL: amd64-Linux-gpp - [INFO] - [INFO] --- maven-enforcer-plugin:1.4:enforce (enforce-java) @ artemis-native --- - ... - -The produced library will be at -`./target/nar/artemis-native-RELEASE-amd64-Linux-gpp-jni/lib/amd64-Linux-gpp/jni/ -libartemis-native-RELEASE.so`. Simply move that file over -`bin` with the proper rename [library -path](#using-server.library.path). - -If you want to perform changes on the Apache ActiveMQ Artemis libaio code, you could -just call make directly at the `native-src` directory. +script `compile-native.sh`. This script will invoke the proper commands to perform the native build. + +If you want more information refer to the [cmake web pages](http://cmake.org). + http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/edef0240/docs/user-manual/en/maven-plugin.md ---------------------------------------------------------------------- diff --git a/docs/user-manual/en/maven-plugin.md b/docs/user-manual/en/maven-plugin.md new file mode 100644 index 0000000..2602ec8 --- /dev/null +++ b/docs/user-manual/en/maven-plugin.md @@ -0,0 +1,223 @@ +# Maven Plugins + +Since Artemis 1.1.0 Artemis provides the possibility of using Maven Plugins to manage the life cycle of servers. + +## When to use it + +These Maven plugins were initially created to manage server instances across our examples. They can create a server, start, and do any CLI operation over servers. + +You could for example use these maven plugins on your testsuite or deployment automation. + + +## Goals + +There are three goals that you can use + +- create + +This will create a server accordingly to your arguments. You can do some extra tricks here such as installing extra libraries for external modules. + +- cli + +This will perform any CLI operation. This is basically a maven expression of the CLI classes + +- runClient + +This is a simple wrapper around classes implementing a static main call. Notice that this won't spawn a new VM or new Thread. + + +## Declaration + +On your pom, use the plugins section: + +```xml + <build> + <plugins> + <plugin> + <groupId>org.apache.activemq</groupId> + <artifactId>artemis-maven-plugin</artifactId> +``` + +## create goal + +I won't detail every operation of the create plugin here, but I will try to describe the main parameters: + +Name | Description +:--- | :--- +configuration | A place that will hold any file to replace on the configuration. For instance if you are providing your own broker.xml. Default is "${basedir}/target/classes/activemq/server0" +home | The location where you downloaded and installed artemis. Default is "${activemq.basedir}" +alternateHome | This is used case you have two possible locations for your home (e.g. one under compile and one under production +instance | Where the server is going to be installed. Default is "${basedir}/target/server0" +liblist[] | A list of libraries to be installed under ./lib. ex: "org.jgroups:jgroups:3.6.0.Final" + + +Example: + +```xml +<executions> + <execution> + <id>create</id> + <goals> + <goal>create</goal> + </goals> + <configuration> + <ignore>${noServer}</ignore> + </configuration> + </execution> + +``` + + +## cli goal + +Some properties for the CLI + +Name | Description +:--- | :--- +configuration | A place that will hold any file to replace on the configuration. For instance if you are providing your own broker.xml. Default is "${basedir}/target/classes/activemq/server0" +home | The location where you downloaded and installed artemis. Default is "${activemq.basedir}" +alternateHome | This is used case you have two possible locations for your home (e.g. one under compile and one under production +instance | Where the server is going to be installed. Default is "${basedir}/target/server0" + + +Similarly to the create plugin, the artemis exampels are using the cli plugin. Look at them for concrete examples. + +Example: +```xml +<execution> + <id>start</id> + <goals> + <goal>cli</goal> + </goals> + <configuration> + <spawn>true</spawn> + <ignore>${noServer}</ignore> + <testURI>tcp://localhost:61616</testURI> + <args> + <param>run</param> + </args> + </configuration> +</execution> +``` + + +### runClient goal + +This is a simple solution for running classes implementing the main method. + +Name | Description +:--- | :--- +clientClass | A class implement a static void main(String arg[]) +args | A string array of arguments passed to the method + +Example: + +```xml + <execution> + <id>runClient</id> + <goals> + <goal>runClient</goal> + </goals> + <configuration> + <clientClass>org.apache.activemq.artemis.jms.example.QueueExample</clientClass> + </configuration> + </execution> +``` + +### Complete example + + +The following example is a copy of the /examples/features/standard/queue example. You may refer to it directly under the examples directory tree. + +```xml +<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/maven-v4_0_0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.activemq.examples.broker</groupId> + <artifactId>jms-examples</artifactId> + <version>1.0.1-SNAPSHOT</version> + </parent> + + <artifactId>queue</artifactId> + <packaging>jar</packaging> + <name>ActiveMQ Artemis JMS Queue Example</name> + + <properties> + <activemq.basedir>${project.basedir}/../../../..</activemq.basedir> + </properties> + + <dependencies> + <dependency> + <groupId>org.apache.activemq</groupId> + <artifactId>artemis-jms-client</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.activemq</groupId> + <artifactId>artemis-maven-plugin</artifactId> + <executions> + <execution> + <id>create</id> + <goals> + <goal>create</goal> + </goals> + <configuration> + <ignore>${noServer}</ignore> + </configuration> + </execution> + <execution> + <id>start</id> + <goals> + <goal>cli</goal> + </goals> + <configuration> + <spawn>true</spawn> + <ignore>${noServer}</ignore> + <testURI>tcp://localhost:61616</testURI> + <args> + <param>run</param> + </args> + </configuration> + </execution> + <execution> + <id>runClient</id> + <goals> + <goal>runClient</goal> + </goals> + <configuration> + <clientClass>org.apache.activemq.artemis.jms.example.QueueExample</clientClass> + </configuration> + </execution> + <execution> + <id>stop</id> + <goals> + <goal>cli</goal> + </goals> + <configuration> + <ignore>${noServer}</ignore> + <args> + <param>stop</param> + </args> + </configuration> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>org.apache.activemq.examples.broker</groupId> + <artifactId>queue</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + </plugin> + </plugins> + </build> + +</project> + +``` \ No newline at end of file
