Adjusted README.md to new test structure and added instructions for running a bundle using the wildfly-maven-plugin

Jens Pelzetter 2020-07-18 19:12:05 +02:00
parent d37f859400
commit 94c850bcc8
1 changed files with 68 additions and 38 deletions

100
README.md
View File

@ -3,8 +3,11 @@
The [https://libreccm.org](LibreCCM) framework and the The [https://libreccm.org](LibreCCM) framework and the
[https://librecms.org](LibreCMS) web content management system. [https://librecms.org](LibreCMS) web content management system.
This repository contains the Jakarta EE based, new version of LibreCCM ## Overview
and LibreCMS. We are now using Maven as build tool.
This repository contains the Jakarta EE based, new version of
[https://libreccm.org](LibreCCM) and [https://librecms.org](LibreCMS). We are
now using Maven as build tool.
Some more documentation is provided as Maven project site. To create the site Some more documentation is provided as Maven project site. To create the site
run run
@ -15,46 +18,82 @@ and open the ./target/staging/index.html file in your browser.
The recreate the site run The recreate the site run
mvn clean package site site:stage mvn package site site:stage
again. again.
To include integration tests into the reports Note: The ./target/staging folder is left intact when cleaning. If you
want to remove the folder you have delete it manually.
mvn clean package test site site:stage -P$profile-name To include integration tests into the reports run
Note: If there are test failures the package goal fails and the site is not mvn clean verifiy site site:stage -P${profileName}
Note: If there are test failures the build fails and the site is not
build. The build the site anywhy use build. The build the site anywhy use
mvn clean package site site:stage -Dmaven.test.failure.ignore=true mvn clean package site site:stage -Dmaven.test.failure.ignore=true
or with a profile or with the integration tests included
mvn clean package site site:stage -Dmaven.test.failure.ignore=true -Pwildfly-remote-h2-mem mvn clean verify site site:stage -Dmaven.test.failure.ignore=true -P${profileName}
The available profiles are listed in the documentation. All modules should ## Running integration tests
provide a profile called wildfly-remote-h2-mem. This profile uses a remote
Wildfly application server and its integrated H2 in-memory database for
running the tests. Before you can run the integration tests you must download
Wildfly from http://www.wildfly.org. Unzip the downloaded archive and start
the server using the bin/standalone.sh file. Then go to another terminal,
navigate to the CCM NG directory and run
mvn clean package test site site:stage -Pwildfly-remote-h2-mem Some of the modules provide integration tests which use
[Arquillian](http://arquillian.org/) to run tests inside an application server.
If a module provides integration tests it should have at least four profiles
for running them (at the time of writing):
* `run-its-with-wildfly-h2mem`: This profile uses the
[wildfly-maven-plugin](https://docs.jboss.org/wildfly/plugins/maven/latest/)
to start a Wildfly and run the integration tests. The H2 database which is
integrated with Wildfly is used for run the tests. No configuration
is necessary.
* `run-its-with-wildfly-pgsql`: This profile uses the
[wildfly-maven-plugin](https://docs.jboss.org/wildfly/plugins/maven/latest/)
to start a Wildfly and run the integration tests. A PostgreSQL database is
used to run the tests. The connection parameters are configured using
the `it-pgsql-datasources.properties` file in the project root. Make sure
to create a database for all modules and configure them before using
this profile.
* `run-its-in-remote-wildfly-h2mem`: This profile uses a remote Wildfly and
the H2 database for
running the tests. The user it responsible for starting the Wildfly container
and for creating the required databases.
* `run-its-in-remote-wildfly-pgsql`: This profile uses a remote Wildfly and
PostgreSQL databases for
running the tests. The user it responsible for starting the Wildfly container
and for creating the required databases.
To run the integration tests select a profile - we recommend to use the profiles
which use the wildfly-maven-plugin` to manage to Wildfly application server -
and run
mvn verify site site:stage -P${profileName}
## Running LibreCCM (development environment)
Before running a bundle the WAR file has the be generated using
mvn package
To run LibreCCM choose the bundle to run, for instance To run LibreCCM choose the bundle to run, for instance
ccm-bundle-devel-wildfly. Depending on the bundle and the selected profile `ccm-bundle-devel-wildfly`. You can run the bundle
you may have to configure a datasource in the Wildfly server and create a
database. Also you need to configure an environement variable which points to
your Wildfly installation. Then you can run LibreCCM using
mvn package wildfly:run -DskipTests -pl ccm-bundle-devel-wildfly -am -Pgeneric mvn wildfly:run -pl ${bundleName} -am
The above example skips all tests to speed up the start process. The generic This will start a Wildfly server running the selected bundle. Before running
profile used in this example uses an existing Wildfly installation. The the bundle the Wildfly container has the be configured. For these purpose, run
JBOSS_HOME environment variable must either be configured or must be provided.
Alternativly you can provide the location of your Wildfly installation using mvn wildfly:run -pl ${bundleName} -am -Psetup-runtime
the -D switch: mvn -Djboss-as.home=/path/to/wildfly/
This will start the Wildfly server, deploy the bundle WAR, and create a
datasource. At the moment only PostgreSQL is supported as database. The
datasource configuration is provided by the `datasource.properties` file in the
bundle directory. To create one copy the example file and adjust the settings.
## Archetypes
To install the archetypes in your local Maven repository run To install the archetypes in your local Maven repository run
@ -64,15 +103,6 @@ for example
mvn clean install -pl ccm-cms-archetypes-contenttype -am mvn clean install -pl ccm-cms-archetypes-contenttype -am
Using the managed profiles (example is for testing):
mvn clean test -Djboss.home=/path/to/wildfly/ -DstartupTimeoutInSeconds=180 -Pwildfly-managed-h2-mem
You might need to increase the timeout.
For convience, we also provide a small Bash script which makes calling some Maven tasks easier. For more information please refer to the help of the ccm.sh script:
ccm.sh --help