262 lines
9.1 KiB
Plaintext
262 lines
9.1 KiB
Plaintext
ccm.sh is a helper script for building and running LibreCCM in a development
|
|
environment. It provides shortcuts for several Maven goals. The available
|
|
subcommands are:
|
|
|
|
build-site [PROFILE] : Builds the Maven project site.
|
|
build [PROFILE] : Builds LibreCCM using the provided
|
|
profile
|
|
build-module MODULE [PROFILE] : Build a specific LibreCCM module.
|
|
test-all [[PROFILE] [start]] : Run tests for all modules.
|
|
test-module MODULE [[PROFILE] [start]]: Run tests for a specific LibreCCM
|
|
module.
|
|
test MODULE TEST [[PROFILE] [start]] : Run a specific testsuite or a single
|
|
test method.
|
|
install-runtime [RUNTIME] : Download and install a runtime
|
|
(application server) into ./runtime.
|
|
run [-r RUNTIME] [BUNDLE] : Run a runtime (application server)
|
|
help : Show this help message.
|
|
|
|
build-site [PROFILE]
|
|
====================
|
|
|
|
Builds the project site. If a profile is provided it is passed to Maven. With a
|
|
profile this subcommand is equivalent to the Maven command:
|
|
|
|
mvn clean package site site:stage -Dmaven.test.failure.ignore=true
|
|
-P$PROFILE
|
|
|
|
Otherwise it equivalent to
|
|
|
|
mvn clean package site site:state -Dmaven.test.failure.ignore=true
|
|
|
|
build [PROFILE]
|
|
===============
|
|
|
|
Builds to complete project, optionally using a Maven profile. Without a
|
|
profile this is equivalent to
|
|
|
|
mvn clean package
|
|
|
|
With a profile it is equivalent to
|
|
|
|
mvn clean package -P$PROFILE
|
|
|
|
build-module MODULE [PROFILE]
|
|
=============================
|
|
|
|
Build a specific LibreCCM module. Equivalent to
|
|
|
|
mvn clean package -pl MODULE -am
|
|
|
|
without a profile and to
|
|
|
|
mvn clean package -PPROFILE -pl MODULE -am
|
|
|
|
with a profile.
|
|
|
|
test-all [[PROFILE] [start]]
|
|
============================
|
|
|
|
Run all tests for all modules. The name of the (optional) profile is used to
|
|
determine if a runtime (application server) is started and which application
|
|
server is started. Some profiles use Arquillian container adapters which don't
|
|
require a running application server. Others requires a running a application
|
|
server. For those profiles the application server deduced from the profile
|
|
name is started if the last parameter is "start". Otherwise the application
|
|
server must be started manully before running the tests. Please note that the
|
|
use of the "start" parameter is not recommanded because is may causes
|
|
problems. It is recommanded to either start the application server manually or
|
|
to use a profile which uses an Arquillian container adapter which starts the
|
|
application server itself.
|
|
|
|
This subcommand is equivalent to the Maven command
|
|
|
|
mvn clean test -PPROFILE
|
|
|
|
with a profile and to
|
|
|
|
mvn clean test
|
|
|
|
without a profile.
|
|
|
|
test-module MODULE [[PROFILE] [start]]
|
|
======================================
|
|
|
|
Runs the tests for a specific module. The name of the module is a mandatory
|
|
parameter.
|
|
|
|
The name of the (optional) profile is
|
|
used to to determine if a runtime (application server) is started and
|
|
application server is started. Some profiles use Arquillian container adapters
|
|
which dont't require a running application server. Others require a running
|
|
application server. For those profiles the application is deduced from the
|
|
profile is started if the the last parameter is "start". Otherwise the
|
|
application server must be started manually before running the tests. Please
|
|
note that the use of the "start" parameter is not recommanded. It is
|
|
recommanded to either start the application server manually or to use a
|
|
profile which uses a container adapter which starts the application server
|
|
itself.
|
|
|
|
This subcommand is equivalent to the Maven command
|
|
|
|
mvn clean test -pl MODULE -am -PPROFILE
|
|
|
|
with a profile and to
|
|
|
|
mvn clean test -pl MODULE -am
|
|
|
|
without a profile.
|
|
|
|
test MODULE TEST [[PROFILE] [start]]
|
|
====================================
|
|
|
|
Runs the a specific testsuite or a single test. Module and test are mandatory
|
|
parameters. The testsuite or test to run is set using the following syntax:
|
|
|
|
fully.qualified.classname.of.testclass[#test-method]
|
|
|
|
The name of the (optional) profile is
|
|
used to to determine if a runtime (application server) is started and
|
|
application server is started. Some profiles use Arquillian container adapters
|
|
which dont't require a running application server. Others require a running
|
|
application server. For those profiles the application is deduced from the
|
|
profile is started if the the last parameter is "start". Otherwise the
|
|
application server must be started manually before running the tests. Please
|
|
note that the use of the "start" parameter is not recommanded. It is
|
|
recommanded to either start the application server manually or to use a
|
|
profile which uses a container adapter which starts the application server
|
|
itself.
|
|
|
|
This subcommand is equivalent to the Maven command
|
|
|
|
mvn clean test -Dtest=TEST -DfailIfNoTests=false -pl MODULE -am -PPROFILE
|
|
|
|
with a profile and to
|
|
|
|
mvn clean test -Dtest=TEST -DfailIfNoTests=false -pl MODULE -am
|
|
|
|
without a profile.
|
|
|
|
Some examples:
|
|
|
|
Run all tests in the class org.libreccm.configuration.EqualsAndHashCodeTest in
|
|
the ccm-core module:
|
|
|
|
ccm.sh test ccm-core org.libreccm.configuration.EqualsAndHashCodeTest
|
|
|
|
Run all tests in the class org.libreccm.core.CcmObjectRepositoryTest in the
|
|
ccm-core module. These tests is run using Arquillian and require a runtime and
|
|
is only run when an integration test profile is used. The application server
|
|
must be started before the test are invoked.
|
|
|
|
ccm.sh test ccm-core org.libreccm.core.CcmObjectRepositoryTest wildfly-remote-h2-mem
|
|
|
|
This example runs the same tests as the previous example but uses a managed
|
|
profile. The application server will started by Arquillian automatically:
|
|
|
|
ccm.sh test ccm-core org.libreccm.core.CcmObjectRepositoryTest
|
|
wildfly-managed-h2-mem
|
|
|
|
Or if you only want to run the saveChangedCcmObject test:
|
|
|
|
ccm.sh test ccm-core
|
|
org.libreccm.core.CcmObjectRepositoryTest#saveChangedCcmObject wildfly-managed-h2-mem
|
|
|
|
|
|
install-runtime [RUNTIME]
|
|
=========================
|
|
|
|
Install an runtime (application server) into ./runtime. At the moment only
|
|
Wildfly is supported.
|
|
|
|
./ccm.sh install-runtime
|
|
|
|
or
|
|
|
|
./ccm.sh install-runtime wildfly
|
|
|
|
will
|
|
|
|
a) Create the directory runtime in the current working directory (if it not
|
|
exists already)
|
|
|
|
b) Download the current version of the Wildfly Application Server
|
|
(10.1.0.Final) in ./runtime
|
|
|
|
c) Extract Wildfly
|
|
|
|
d) Ask for the username and password for a management user for Wildfly (see
|
|
the Wildfly documentation for details on that).
|
|
|
|
run -r [RUNTIME]| BUNDLE
|
|
==================================================
|
|
|
|
Starts an application server (at the moment only Wildfly is supported).
|
|
|
|
If "-r" is set only the application server will be started and no bundle will
|
|
be deployed. This is useful for configuring the application server. If no
|
|
runtime is specified Wildfly will be used.
|
|
|
|
If a bundle is provided the runtime (application server) to start is deduced
|
|
from the name of the bundle. For example if the name of the bundle ends with
|
|
'-wildfly' Wildfly is started and the bundle is deployed to Wildfly.
|
|
|
|
The method of starting the application server and deploying the bundle depends
|
|
on the application server.
|
|
|
|
IMPORTANT: You must configure a datasource with the JNDI-URL required by the
|
|
bundle you want to run before running LibreCCM. For Wildfly this can be done
|
|
using Wildfly's administration UI available at
|
|
|
|
http://localhost:9990
|
|
|
|
|
|
Supported Application servers
|
|
=============================
|
|
|
|
Wildfly
|
|
-------
|
|
|
|
If the JBOSS_HOME environment variable is set the script will use the server
|
|
in the directory provided by JBOSS_HOME for starting Wildfly.
|
|
You may provide a value for this variable when calling the script:
|
|
|
|
JBOSS_HOME=/path/to/wildfly ./ccm.sh run [wildfly]
|
|
|
|
For profiles using the wildfly-arquillian-container-remote adapter Wildfly
|
|
must be started manually. The subcommands for running test have an optional
|
|
parameter for starting Wildfly automatically if a remote profile is used, but
|
|
this is not recommanded. If a profile is used which uses
|
|
wildfly-arquillian-container-managed Arquillian starts the container
|
|
automatically.
|
|
|
|
If JBOSS_HOME is not set the script will look for a Wildfly installation in
|
|
./runtime. The install-runtime subcommand can be used to install Wildfly
|
|
there. The script passes this parameter to Maven in the required form.
|
|
|
|
The datasource configuration is done using Wildfly's administration UI. To
|
|
create a datasource open a browser and go to
|
|
|
|
localhost:9990
|
|
|
|
You will be asked for the username and password of a management user. Then go
|
|
to
|
|
|
|
Configuration/Subsystems/Datasources/Non-XA
|
|
|
|
and a datasource for the bundle you want to use.
|
|
|
|
Some JNDI-Datasource-URLs:
|
|
|
|
ccm-bundle-devel-wildfly java:/comp/env/jdbc/libreccm/db
|
|
|
|
For running integration tests via Arquillian in Wildfly the
|
|
wildfly-arquillian-container-managed container adapter is used for managed
|
|
profiles. For remote profiles Wildfly is started by invoking bin/standalone.sh
|
|
directly, but only if the "start" parameter is present.
|
|
|
|
For running LibreCCM the wildfly-maven-plugin is used.
|
|
|
|
|
|
|