replace-ccmsh-with-wildfly-maven-plugin #4
|
|
@ -1,4 +1,12 @@
|
||||||
|
it-pgsql-datasources.properties
|
||||||
|
nb-configuration.xml
|
||||||
node
|
node
|
||||||
node_modules
|
node_modules
|
||||||
|
runtime
|
||||||
target
|
target
|
||||||
|
.classpath
|
||||||
|
.factorypath
|
||||||
|
.project
|
||||||
|
.settings
|
||||||
.tscache
|
.tscache
|
||||||
|
*.vscode
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,85 @@
|
||||||
|
# LibreCCM/LibreCMS Installation
|
||||||
|
|
||||||
|
## WildFly
|
||||||
|
|
||||||
|
### Preparation (optional)
|
||||||
|
|
||||||
|
These steps are optional and can be skipped if you have already a WildFly server
|
||||||
|
up and running or if you already installed the PostgreSQL JDBC driver in your
|
||||||
|
WildFly instance.
|
||||||
|
|
||||||
|
#### WildFly installation
|
||||||
|
|
||||||
|
Download WildFly and extract the archive. For more informations about setting
|
||||||
|
wildfly please refer to the WildFly documentation
|
||||||
|
|
||||||
|
#### Install the PostgreSQL JDBC driver
|
||||||
|
|
||||||
|
1. Download the PostgreSQL JDBC driver from
|
||||||
|
https://jdbc.postgresql.org/download.html
|
||||||
|
2. Go to the home directory of your WildFly installation and to
|
||||||
|
`modules/system/layers/base`
|
||||||
|
3. Create a new directory `org/postgresql/main`
|
||||||
|
4. Create a `module.xml` file in the `org/postgresql/main` directory with the
|
||||||
|
following content:
|
||||||
|
|
||||||
|
```
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module xmlns="urn:jboss:module:1.1" name="org.postgresql">
|
||||||
|
<resources>
|
||||||
|
<resource-root path="postgresql-42.2.10.jar"/>
|
||||||
|
</resources>
|
||||||
|
<dependencies>
|
||||||
|
<module name="javax.api"/>
|
||||||
|
<module name="javax.transaction.api"/>
|
||||||
|
</dependencies>
|
||||||
|
</module>
|
||||||
|
```
|
||||||
|
|
||||||
|
Change the name of the JAR file to the correct name!
|
||||||
|
|
||||||
|
5. Start the JBOSS CLI tool: `bin/jboss-cli.sh` or `bin/jboss-cli.bat`. Enable
|
||||||
|
the new module:
|
||||||
|
|
||||||
|
```
|
||||||
|
[standalone@localhost:9990 /] /subsystem=datasources/jdbc-driver=postgresql:add(
|
||||||
|
driver-name=postgresql,
|
||||||
|
driver-module-name=org.postgresql,
|
||||||
|
driver-class-name=org.postgresql.Driver
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
Note: The above command can be in one line.
|
||||||
|
|
||||||
|
### Installing LibreCCM/LibreCMS
|
||||||
|
|
||||||
|
#### Database
|
||||||
|
|
||||||
|
1. Create a new database user
|
||||||
|
2. Create a new database in your PostgreSQL server owned by the user created
|
||||||
|
in the previous step.
|
||||||
|
|
||||||
|
#### Create a datasource
|
||||||
|
|
||||||
|
1. Start the JBOSS CLI tool: `bin/jboss-cli.sh` or `bin/jboss-cli.bat`.
|
||||||
|
2. Add new datasource:
|
||||||
|
```
|
||||||
|
[standalone@localhost:9990 /] data-source add --name=librecms --driver-name=postgresql --jndi-name=java:/comp/env/jdbc/libreccm/db --connection-url=jdbc:postgresql://localhost:5432/librecm --user-name=libreccm --password=libreccm
|
||||||
|
```
|
||||||
|
|
||||||
|
Replace the name of the datasource, the connection URL,
|
||||||
|
the user name and the password with the correct values for your environment.
|
||||||
|
|
||||||
|
|
||||||
|
#### Deploy LibreCCM/LibreCMS
|
||||||
|
|
||||||
|
Simpley copy the the WAR file from one of the bundle modules to to the
|
||||||
|
directory `standalone/deployments` of your WildFly installation.
|
||||||
|
|
||||||
|
## Thorntail
|
||||||
|
|
||||||
|
ToDo
|
||||||
|
|
||||||
|
## TomEE
|
||||||
|
|
||||||
|
ToDo
|
||||||
|
|
@ -1,28 +1,31 @@
|
||||||
pipeline {
|
pipeline {
|
||||||
agent any
|
agent any
|
||||||
tools {
|
tools {
|
||||||
maven 'apache-maven-3.6.0'
|
maven 'apache-maven-3.6.3'
|
||||||
}
|
}
|
||||||
stages {
|
stages {
|
||||||
stage('Build and Test') {
|
stage('Build and Test') {
|
||||||
steps {
|
steps {
|
||||||
dir('') {
|
dir('') {
|
||||||
// sh 'mvn clean package test -Pwildfly-remote-h2-mem'
|
sh 'mvn clean verify -Prun-its-with-wildfly-h2mem'
|
||||||
sh 'mvn clean package -Pwildfly-remote-h2-mem'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
post {
|
|
||||||
always {
|
|
||||||
sh 'sudo systemctl restart wildfly'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage("Analyse") {
|
stage("Analyse") {
|
||||||
steps {
|
steps {
|
||||||
dir('') {
|
dir('') {
|
||||||
sh 'mvn package pmd:pmd pmd:cpd spotbugs:spotbugs'
|
sh 'mvn pmd:pmd pmd:cpd spotbugs:spotbugs'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
stage("Deploy") {
|
||||||
|
steps {
|
||||||
|
dir('') {
|
||||||
|
configFileProvider([configFile(fileId: 'libreccm-packages-deploy', variable: 'MAVEN_SETTINGS')]) {
|
||||||
|
sh 'mvn -U -s "$MAVEN_SETTINGS" -e deploy'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
post {
|
post {
|
||||||
|
|
|
||||||
106
README.md
106
README.md
|
|
@ -1,10 +1,13 @@
|
||||||
# LibreCCM
|
# LibreCCM
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
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 -Prun-its-with-wildfly-h2mem
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
<artifactId>ccm-archetype-module</artifactId>
|
<artifactId>ccm-archetype-module</artifactId>
|
||||||
<version>7.0.0-SNAPSHOT</version>
|
<version>7.0.0-SNAPSHOT</version>
|
||||||
|
|
||||||
<name>LibreCCM Module archetype</name>
|
<name>LibreCCM Module Archetype</name>
|
||||||
<url>http://www.libreccm.org/devel/modules</url>
|
<url>http://www.libreccm.org/devel/modules</url>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
|
||||||
|
|
@ -228,11 +228,6 @@
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
<version>0.7.5.201505241946</version>
|
<version>0.7.5.201505241946</version>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>findbugs-maven-plugin</artifactId>
|
|
||||||
<version>3.0.1</version>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,7 @@ import org.junit.AfterClass;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.experimental.categories.Category;
|
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.libreccm.tests.categories.IntegrationTest;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -39,7 +37,6 @@ import javax.persistence.PersistenceContext;
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
@Category(IntegrationTest.class)
|
|
||||||
@RunWith(Arquillian.class)
|
@RunWith(Arquillian.class)
|
||||||
@PersistenceTest
|
@PersistenceTest
|
||||||
@Transactional(TransactionMode.COMMIT)
|
@Transactional(TransactionMode.COMMIT)
|
||||||
|
|
@ -3,12 +3,6 @@
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<!--<parent>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>libreccm-parent</artifactId>
|
|
||||||
<version>7.0.0-SNAPSHOT</version>
|
|
||||||
</parent>-->
|
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>org.libreccm</groupId>
|
<groupId>org.libreccm</groupId>
|
||||||
<artifactId>ccm-bundle-devel</artifactId>
|
<artifactId>ccm-bundle-devel</artifactId>
|
||||||
|
|
@ -142,17 +136,14 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.webjars</groupId>
|
<groupId>org.webjars</groupId>
|
||||||
<artifactId>font-awesome</artifactId>
|
<artifactId>font-awesome</artifactId>
|
||||||
<version>4.7.0</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.webjars</groupId>
|
<groupId>org.webjars</groupId>
|
||||||
<artifactId>requirejs</artifactId>
|
<artifactId>requirejs</artifactId>
|
||||||
<version>2.3.6</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.webjars</groupId>
|
<groupId>org.webjars</groupId>
|
||||||
<artifactId>requirejs-domready</artifactId>
|
<artifactId>requirejs-domready</artifactId>
|
||||||
<version>2.0.1-2</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project-shared-configuration>
|
|
||||||
<!--
|
|
||||||
This file contains additional configuration written by modules in the NetBeans IDE.
|
|
||||||
The configuration is intended to be shared among all the users of project and
|
|
||||||
therefore it is assumed to be part of version control checkout.
|
|
||||||
Without this configuration present, some functionality in the IDE may be limited or fail altogether.
|
|
||||||
-->
|
|
||||||
<spellchecker-wordlist xmlns="http://www.netbeans.org/ns/spellchecker-wordlist/1">
|
|
||||||
<word>libreccm</word>
|
|
||||||
</spellchecker-wordlist>
|
|
||||||
</project-shared-configuration>
|
|
||||||
|
|
@ -1,227 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<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">
|
|
||||||
|
|
||||||
<properties>
|
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
|
|
||||||
<parent>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-bundle-devel</artifactId>
|
|
||||||
<relativePath>../ccm-bundle-devel</relativePath>
|
|
||||||
<version>7.0.0-SNAPSHOT</version>
|
|
||||||
</parent>
|
|
||||||
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-bundle-devel-wildfly-web</artifactId>
|
|
||||||
<!--<version>7.0.0-SNAPSHOT</version>-->
|
|
||||||
<packaging>war</packaging>
|
|
||||||
|
|
||||||
<name>LibreCCM Devel Bundle Web for Wildfly</name>
|
|
||||||
<url>http://www.libreccm.org/modules/web/wildfly</url>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.webjars</groupId>
|
|
||||||
<artifactId>font-awesome</artifactId>
|
|
||||||
<!--<version>4.7.0</version>-->
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.webjars</groupId>
|
|
||||||
<artifactId>requirejs</artifactId>
|
|
||||||
<!--<version>2.3.5</version>-->
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.webjars</groupId>
|
|
||||||
<artifactId>requirejs-domready</artifactId>
|
|
||||||
<!--<version>2.0.1-2</version>-->
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.webjars.npm</groupId>
|
|
||||||
<artifactId>tinymce</artifactId>
|
|
||||||
<!--<version>4.8.2</version>-->
|
|
||||||
</dependency>
|
|
||||||
<!-- <dependency>
|
|
||||||
<groupId>org.librecms</groupId>
|
|
||||||
<artifactId>ccm-cms-js</artifactId>
|
|
||||||
<version>7.0.0-SNAPSHOT</version>
|
|
||||||
</dependency> -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.librecms</groupId>
|
|
||||||
<artifactId>ccm-cms-pagemodelseditor</artifactId>
|
|
||||||
<version>${project.parent.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.librecms</groupId>
|
|
||||||
<artifactId>ccm-cms-tinymce</artifactId>
|
|
||||||
<version>${project.parent.version}</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<finalName>libreccm-web-wildfly</finalName>
|
|
||||||
|
|
||||||
<resources>
|
|
||||||
<resource>
|
|
||||||
<directory>src/main/resources</directory>
|
|
||||||
</resource>
|
|
||||||
<resource>
|
|
||||||
<directory>${project.build.directory}/generated-resources</directory>
|
|
||||||
</resource>
|
|
||||||
</resources>
|
|
||||||
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<source>1.8</source>
|
|
||||||
<target>1.8</target>
|
|
||||||
<optimize>true</optimize>
|
|
||||||
<debug>true</debug>
|
|
||||||
<encoding>${project.build.sourceEncoding}</encoding>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>com.github.eirslett</groupId>
|
|
||||||
<artifactId>frontend-maven-plugin</artifactId>
|
|
||||||
|
|
||||||
<configuration>
|
|
||||||
<installDirectory>../node</installDirectory>
|
|
||||||
</configuration>
|
|
||||||
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<id>Install node.js and NPM</id>
|
|
||||||
<goals>
|
|
||||||
<goal>install-node-and-npm</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<nodeVersion>v8.11.4</nodeVersion>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
<!-- <execution>
|
|
||||||
<id>npm link ccm-pagemodelseditor</id>
|
|
||||||
<goals>
|
|
||||||
<goal>npm</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<arguments>link ccm-pagemodelseditor</arguments>
|
|
||||||
</configuration>
|
|
||||||
</execution> -->
|
|
||||||
<execution>
|
|
||||||
<id>npm link ccm-cms-pagemodelseditor</id>
|
|
||||||
<goals>
|
|
||||||
<goal>npm</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<arguments>link ccm-cms-pagemodelseditor</arguments>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
<!-- <execution>
|
|
||||||
<id>npm link ccm-cms-tinymce</id>
|
|
||||||
<goals>
|
|
||||||
<goal>npm</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<arguments>link ccm-cms-tinymce</arguments>
|
|
||||||
</configuration>
|
|
||||||
</execution>-->
|
|
||||||
<!--<execution>
|
|
||||||
<id>npm link ccm-cms-js</id>
|
|
||||||
<goals>
|
|
||||||
<goal>npm</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<arguments>link ccm-cms-js</arguments>
|
|
||||||
</configuration>
|
|
||||||
</execution>-->
|
|
||||||
<execution>
|
|
||||||
<id>npm install</id>
|
|
||||||
<goals>
|
|
||||||
<goal>npm</goal>
|
|
||||||
</goals>
|
|
||||||
</execution>
|
|
||||||
<execution>
|
|
||||||
<id>build</id>
|
|
||||||
<goals>
|
|
||||||
<goal>npm</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<arguments>run build</arguments>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-war-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
|
|
||||||
<webResources>
|
|
||||||
<resource>
|
|
||||||
<directory>src/main/resources</directory>
|
|
||||||
</resource>
|
|
||||||
<resource>
|
|
||||||
<directory>${project.build.directory}/generated-resources</directory>
|
|
||||||
</resource>
|
|
||||||
</webResources>
|
|
||||||
|
|
||||||
<overlays>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-editor</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
</overlay>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-pagemodelseditor</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
</overlay>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-theme-foundry</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
</overlay>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-core</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
<includes>
|
|
||||||
<include>assets/</include>
|
|
||||||
</includes>
|
|
||||||
</overlay>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.librecms</groupId>
|
|
||||||
<artifactId>ccm-cms</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
<includes>
|
|
||||||
<include>templates/</include>
|
|
||||||
</includes>
|
|
||||||
</overlay>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.librecms</groupId>
|
|
||||||
<artifactId>ccm-cms-tinymce</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
<includes>
|
|
||||||
<include>scripts/</include>
|
|
||||||
</includes>
|
|
||||||
</overlay>
|
|
||||||
</overlays>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.wildfly.plugins</groupId>
|
|
||||||
<artifactId>wildfly-maven-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<skip>true</skip>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</project>
|
|
||||||
|
|
@ -1,107 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
|
|
||||||
http://maven.apache.org/xsd/maven-4.0.0.xsd"
|
|
||||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
|
||||||
|
|
||||||
<properties>
|
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
|
|
||||||
<parent>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-bundle-devel</artifactId>
|
|
||||||
<relativePath>../ccm-bundle-devel</relativePath>
|
|
||||||
<version>7.0.0-SNAPSHOT</version>
|
|
||||||
</parent>
|
|
||||||
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-bundle-devel-wildfly-web</artifactId>
|
|
||||||
<!--<version>7.0.0-SNAPSHOT</version>-->
|
|
||||||
<packaging>war</packaging>
|
|
||||||
|
|
||||||
<name>LibreCCM Devel Bundle Web for Wildfly</name>
|
|
||||||
<url>http://www.libreccm.org/modules/web/wildfly</url>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.webjars</groupId>
|
|
||||||
<artifactId>font-awesome</artifactId>
|
|
||||||
<version>4.7.0</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.webjars</groupId>
|
|
||||||
<artifactId>requirejs</artifactId>
|
|
||||||
<version>2.3.5</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.webjars</groupId>
|
|
||||||
<artifactId>requirejs-domready</artifactId>
|
|
||||||
<version>2.0.1-2</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<finalName>libreccm-web-wildfly</finalName>
|
|
||||||
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<source>1.8</source>
|
|
||||||
<target>1.8</target>
|
|
||||||
<optimize>true</optimize>
|
|
||||||
<debug>true</debug>
|
|
||||||
<encoding>${project.build.sourceEncoding}</encoding>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-war-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<overlays>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-editor</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
</overlay>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-theme-foundry</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
</overlay>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-core</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
<includes>
|
|
||||||
<include>assets/</include>
|
|
||||||
<include>VAADIN/</include>
|
|
||||||
</includes>
|
|
||||||
</overlay>
|
|
||||||
<overlay>
|
|
||||||
<groupId>org.librecms</groupId>
|
|
||||||
<artifactId>ccm-cms</artifactId>
|
|
||||||
<type>jar</type>
|
|
||||||
<includes>
|
|
||||||
<include>templates/</include>
|
|
||||||
</includes>
|
|
||||||
</overlay>
|
|
||||||
</overlays>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.wildfly.plugins</groupId>
|
|
||||||
<artifactId>wildfly-maven-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<skip>true</skip>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</project>
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
import "ccm-cms-pagemodelseditor";
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
--------------
|
|
||||||
Overview
|
|
||||||
--------------
|
|
||||||
Jens Pelzetter
|
|
||||||
--------------
|
|
||||||
2016-03-18
|
|
||||||
--------------
|
|
||||||
|
|
||||||
LibreCCM Bundle Web for Wildfly
|
|
||||||
|
|
||||||
This module provides the web application part of the the LibreCCM devel
|
|
||||||
bundle for the Wildfly application server.
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<project xmlns="http://maven.apache.org/DECORATION/1.3.0"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0
|
|
||||||
http://maven.apache.org/xsd/decoration-1.3.0.xsd">
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<menu name="Parent project">
|
|
||||||
<item name="LibreCCM" href="../index.html"/>
|
|
||||||
</menu>
|
|
||||||
|
|
||||||
<menu name="Overview">
|
|
||||||
<item name="The LibreCCM Devel Bundle Web module" href="index.html"/>
|
|
||||||
</menu>
|
|
||||||
|
|
||||||
<menu ref="reports"/>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</project>
|
|
||||||
|
|
@ -0,0 +1,2 @@
|
||||||
|
datasource.properties
|
||||||
|
wildfly.properties
|
||||||
|
|
@ -0,0 +1,42 @@
|
||||||
|
# ccm-bundle-devel-wildfly README
|
||||||
|
|
||||||
|
This module creates a WAR which can be deployed to a Wildfly Application
|
||||||
|
Server. For testing, the module also provides an runtime environment
|
||||||
|
and the setup. The runtime is managed using the
|
||||||
|
[wildfly-maven-plugin](https://docs.jboss.org/wildfly/plugins/maven/latest/).
|
||||||
|
|
||||||
|
At the moment the runtime only supports PostgreSQL as database.
|
||||||
|
|
||||||
|
To use these runtime some prepration steps are necessary.
|
||||||
|
|
||||||
|
1. Create the configuration files. The runtime is configured using two files:
|
||||||
|
* wildfly.properties allows it to configure the ports used by the Wildfly server
|
||||||
|
* datasource.properties provides the configuration data for datasource used by
|
||||||
|
LibreCCM.
|
||||||
|
|
||||||
|
For both files examples are provided (`datasource.example.properties`,
|
||||||
|
`wildfly.example.properties`). Copy the example files and customize
|
||||||
|
the settings is necessary.
|
||||||
|
|
||||||
|
2. Run a build using the `setup-runtime` profile. It is important to add the
|
||||||
|
`package` goal, otherwise the WAR file which is deployed in this step is
|
||||||
|
not build correctly:
|
||||||
|
|
||||||
|
```
|
||||||
|
mvn package -Psetup-runtime -pl ccm-bundle-devel-wildfly -am
|
||||||
|
```
|
||||||
|
|
||||||
|
During the `package` phase of the this module Wildfly will be downloaded,
|
||||||
|
unpackaged into the `target` directory, the PostgreSQL driver will be
|
||||||
|
deployed, a datasource will be generated and the WAR file will be deployed.
|
||||||
|
|
||||||
|
To run LibreCCM in this environment, use the `enable-runtime` profile and the `wildfly:start`
|
||||||
|
goal:
|
||||||
|
|
||||||
|
mvn -pl ccm-bundle-devel-wildfly wildfly:start
|
||||||
|
|
||||||
|
To shutdown the server:
|
||||||
|
|
||||||
|
mvn -pl ccm-bundle-devel-wildfly wildfly:shutdown
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
libreccm.datasource.connectionUrl=jdbc:postgresql://localhost:5432/ccm-devel-beta
|
||||||
|
libreccm.datasource.username=ccm
|
||||||
|
libreccm.datasource.password=ccm
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -5,7 +5,7 @@
|
||||||
"build": "webpack"
|
"build": "webpack"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ccm-cms-pagemodelseditor": "7.0.0",
|
"@librecms/ccm-cms-pagemodelseditor": "7.0.0",
|
||||||
"tinymce": "^4.8.2"
|
"tinymce": "^4.8.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
@ -1,202 +1,362 @@
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<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">
|
<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">
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<wildfly.version>12.0.0.Final</wildfly.version>
|
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>org.libreccm</groupId>
|
<groupId>org.libreccm</groupId>
|
||||||
<artifactId>libreccm-parent</artifactId>
|
<artifactId>ccm-bundle-devel</artifactId>
|
||||||
|
<relativePath>../ccm-bundle-devel</relativePath>
|
||||||
<version>7.0.0-SNAPSHOT</version>
|
<version>7.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<groupId>org.libreccm</groupId>
|
<groupId>org.libreccm</groupId>
|
||||||
<artifactId>ccm-bundle-devel-wildfly</artifactId>
|
<artifactId>ccm-bundle-devel-wildfly</artifactId>
|
||||||
<!--<version>7.0.0-SNAPSHOT</version>-->
|
<!--<version>7.0.0-SNAPSHOT</version>-->
|
||||||
<packaging>ear</packaging>
|
<packaging>war</packaging>
|
||||||
|
|
||||||
<name>LibreCCM Devel Bundle for Wildfly</name>
|
|
||||||
<url>http://www.libreccm.org/bundles/devel/wildfly</url>
|
|
||||||
|
|
||||||
|
<name>LibreCCM Devel Bundle for Wildfly</name>
|
||||||
|
<url>http://www.libreccm.org/modules/web/wildfly</url>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.libreccm</groupId>
|
<groupId>org.webjars</groupId>
|
||||||
<artifactId>ccm-bundle-devel-wildfly-web</artifactId>
|
<artifactId>font-awesome</artifactId>
|
||||||
<version>${project.parent.version}</version>
|
<!--<version>4.7.0</version>-->
|
||||||
<type>war</type>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.webjars</groupId>
|
||||||
|
<artifactId>requirejs</artifactId>
|
||||||
|
<!--<version>2.3.5</version>-->
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.webjars</groupId>
|
||||||
|
<artifactId>requirejs-domready</artifactId>
|
||||||
|
<!--<version>2.0.1-2</version>-->
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.webjars.npm</groupId>
|
||||||
|
<artifactId>tinymce</artifactId>
|
||||||
|
<!--<version>4.8.2</version>-->
|
||||||
|
</dependency>
|
||||||
|
<!-- <dependency>
|
||||||
|
<groupId>org.librecms</groupId>
|
||||||
|
<artifactId>ccm-cms-js</artifactId>
|
||||||
|
<version>7.0.0-SNAPSHOT</version>
|
||||||
|
</dependency> -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.librecms</groupId>
|
||||||
|
<artifactId>ccm-cms-pagemodelseditor</artifactId>
|
||||||
|
<version>${project.parent.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.librecms</groupId>
|
||||||
|
<artifactId>ccm-cms-tinymce</artifactId>
|
||||||
|
<version>${project.parent.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<finalName>libreccm-devel-${project.version}</finalName>
|
|
||||||
|
|
||||||
|
<!-- <dependency>
|
||||||
|
<groupId>org.postgresql</groupId>
|
||||||
|
<artifactId>postgresql</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>-->
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<finalName>libreccm-web-wildfly</finalName>
|
||||||
|
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
</resource>
|
||||||
|
<resource>
|
||||||
|
<directory>${project.build.directory}/generated-resources</directory>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-ear-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<!-- Tell Maven we are using Java EE 7 -->
|
<source>1.8</source>
|
||||||
<version>7</version>
|
<target>1.8</target>
|
||||||
<!-- Use Java EE ear libraries as needed. Java EE ear libraries
|
<optimize>true</optimize>
|
||||||
are an easy way to package any libraries needed in the ear,
|
<debug>true</debug>
|
||||||
and automatically
|
<encoding>${project.build.sourceEncoding}</encoding>
|
||||||
have any modules (EJB-JARs and WARs) use them -->
|
</configuration>
|
||||||
<defaultLibBundleDir>lib</defaultLibBundleDir>
|
</plugin>
|
||||||
<outputFileNameMapping>no-version</outputFileNameMapping>
|
|
||||||
<modules>
|
<plugin>
|
||||||
<webModule>
|
<groupId>com.github.eirslett</groupId>
|
||||||
|
<artifactId>frontend-maven-plugin</artifactId>
|
||||||
|
|
||||||
|
<configuration>
|
||||||
|
<installDirectory>../node</installDirectory>
|
||||||
|
</configuration>
|
||||||
|
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>Install node.js and NPM</id>
|
||||||
|
<goals>
|
||||||
|
<goal>install-node-and-npm</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<nodeVersion>v8.11.4</nodeVersion>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<!-- <execution>
|
||||||
|
<id>npm link @libreccm/ccm-pagemodelseditor</id>
|
||||||
|
<goals>
|
||||||
|
<goal>npm</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<arguments>link @libreccm/ccm-pagemodelseditor</arguments>
|
||||||
|
</configuration>
|
||||||
|
</execution> -->
|
||||||
|
<execution>
|
||||||
|
<id>npm link @librecms/ccm-cms-pagemodelseditor</id>
|
||||||
|
<goals>
|
||||||
|
<goal>npm</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<arguments>link @librecms/ccm-cms-pagemodelseditor</arguments>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<!-- <execution>
|
||||||
|
<id>npm link @librecms/ccm-cms-tinymce</id>
|
||||||
|
<goals>
|
||||||
|
<goal>npm</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<arguments>link @librecms/ccm-cms-tinymce</arguments>
|
||||||
|
</configuration>
|
||||||
|
</execution>-->
|
||||||
|
<!--<execution>
|
||||||
|
<id>npm link @librecms/ccm-cms-js</id>
|
||||||
|
<goals>
|
||||||
|
<goal>npm</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<arguments>link @librecms/ccm-cms-js</arguments>
|
||||||
|
</configuration>
|
||||||
|
</execution>-->
|
||||||
|
<execution>
|
||||||
|
<id>npm install</id>
|
||||||
|
<goals>
|
||||||
|
<goal>npm</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>build</id>
|
||||||
|
<goals>
|
||||||
|
<goal>npm</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<arguments>run build</arguments>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-war-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
|
||||||
|
<webResources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
</resource>
|
||||||
|
<resource>
|
||||||
|
<directory>${project.build.directory}/generated-resources</directory>
|
||||||
|
</resource>
|
||||||
|
</webResources>
|
||||||
|
|
||||||
|
<overlays>
|
||||||
|
<overlay>
|
||||||
<groupId>org.libreccm</groupId>
|
<groupId>org.libreccm</groupId>
|
||||||
<artifactId>ccm-bundle-devel-wildfly-web</artifactId>
|
<artifactId>ccm-editor</artifactId>
|
||||||
<contextRoot>/libreccm</contextRoot>
|
<type>jar</type>
|
||||||
</webModule>
|
</overlay>
|
||||||
</modules>
|
<overlay>
|
||||||
|
<groupId>org.libreccm</groupId>
|
||||||
|
<artifactId>ccm-pagemodelseditor</artifactId>
|
||||||
|
<type>jar</type>
|
||||||
|
</overlay>
|
||||||
|
<overlay>
|
||||||
|
<groupId>org.libreccm</groupId>
|
||||||
|
<artifactId>ccm-theme-foundry</artifactId>
|
||||||
|
<type>jar</type>
|
||||||
|
</overlay>
|
||||||
|
<overlay>
|
||||||
|
<groupId>org.libreccm</groupId>
|
||||||
|
<artifactId>ccm-core</artifactId>
|
||||||
|
<type>jar</type>
|
||||||
|
<includes>
|
||||||
|
<include>assets/</include>
|
||||||
|
</includes>
|
||||||
|
</overlay>
|
||||||
|
<overlay>
|
||||||
|
<groupId>org.librecms</groupId>
|
||||||
|
<artifactId>ccm-cms</artifactId>
|
||||||
|
<type>jar</type>
|
||||||
|
<includes>
|
||||||
|
<include>templates/</include>
|
||||||
|
</includes>
|
||||||
|
</overlay>
|
||||||
|
<overlay>
|
||||||
|
<groupId>org.librecms</groupId>
|
||||||
|
<artifactId>ccm-cms-tinymce</artifactId>
|
||||||
|
<type>jar</type>
|
||||||
|
<includes>
|
||||||
|
<include>scripts/</include>
|
||||||
|
</includes>
|
||||||
|
</overlay>
|
||||||
|
</overlays>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-clean-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<excludeDefaultDirectories>true</excludeDefaultDirectories>
|
||||||
|
<filesets>
|
||||||
|
<fileset>
|
||||||
|
<directory>${project.build.directory}</directory>
|
||||||
|
<excludes>
|
||||||
|
<exclude>wildfly*/**</exclude>
|
||||||
|
</excludes>
|
||||||
|
</fileset>
|
||||||
|
</filesets>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.wildfly.plugins</groupId>
|
||||||
|
<artifactId>wildfly-maven-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<skip>false</skip>
|
||||||
|
<propertiesFile>${project.basedir}/wildfly.properties</propertiesFile>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
<!-- Profiles for running the bundle in a development environment -->
|
|
||||||
<profiles>
|
<profiles>
|
||||||
|
|
||||||
<!-- Profile which uses a H2 database. The DB file is put into the
|
|
||||||
project build directory and therefore deleted when the clean phase
|
|
||||||
runs.
|
|
||||||
-->
|
|
||||||
<profile>
|
<profile>
|
||||||
<id>h2</id>
|
<id>setup-runtime</id>
|
||||||
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.wildfly.plugins</groupId>
|
|
||||||
<artifactId>wildfly-maven-plugin</artifactId>
|
|
||||||
|
|
||||||
<configuration>
|
|
||||||
<version>${wildfly.version}</version>
|
|
||||||
|
|
||||||
<skip>false</skip>
|
|
||||||
|
|
||||||
<add-user>
|
|
||||||
<users>
|
|
||||||
<user>
|
|
||||||
<username>admin</username>
|
|
||||||
<password>admin123</password>
|
|
||||||
</user>
|
|
||||||
</users>
|
|
||||||
</add-user>
|
|
||||||
|
|
||||||
<beforeDeployment>
|
|
||||||
<commands>
|
|
||||||
<command>data-source add --jndi-name=java:/comp/env/jdbc/libreccm/db --name=ccm-devel --connection-url=jdbc:h2:${project.build.directory}/libreccm-db;DB_CLOSE_ON_EXIT=FALSE --driver-name=h2 --driver-class=org.h2.Driver --user-name=sa --password=sa</command>
|
|
||||||
</commands>
|
|
||||||
</beforeDeployment>
|
|
||||||
|
|
||||||
<java-opts>
|
|
||||||
<java-opt>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8787</java-opt>
|
|
||||||
</java-opts>
|
|
||||||
|
|
||||||
</configuration>
|
|
||||||
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</profile>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Profile which uses a PostgreSQL datasource with a generic
|
|
||||||
configuration. When using this profile PostgreSQL must run on the
|
|
||||||
local system and a database with the name "libreccm-devel" which
|
|
||||||
is accessible by the user "ccm" with the password "ccm47web" must
|
|
||||||
exist.
|
|
||||||
-->
|
|
||||||
<profile>
|
|
||||||
<id>pgsql</id>
|
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.postgresql</groupId>
|
<groupId>org.postgresql</groupId>
|
||||||
<artifactId>postgresql</artifactId>
|
<artifactId>postgresql</artifactId>
|
||||||
<version>9.4.1208</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>properties-maven-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>read-datasource-properties</id>
|
||||||
|
<phase>initialize</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>read-project-properties</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<files>
|
||||||
|
<file>${project.basedir}/datasource.properties</file>
|
||||||
|
</files>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.wildfly.plugins</groupId>
|
<groupId>org.wildfly.plugins</groupId>
|
||||||
<artifactId>wildfly-maven-plugin</artifactId>
|
<artifactId>wildfly-maven-plugin</artifactId>
|
||||||
|
|
||||||
<configuration>
|
<configuration>
|
||||||
<version>${wildfly.version}</version>
|
|
||||||
|
|
||||||
<skip>false</skip>
|
<skip>false</skip>
|
||||||
|
<propertiesFile>${project.basedir}/wildfly.properties</propertiesFile>
|
||||||
<add-user>
|
|
||||||
<users>
|
|
||||||
<user>
|
|
||||||
<username>admin</username>
|
|
||||||
<password>admin1234</password>
|
|
||||||
</user>
|
|
||||||
</users>
|
|
||||||
</add-user>
|
|
||||||
|
|
||||||
<beforeDeployment>
|
|
||||||
<commands>
|
|
||||||
<!--jdbc-drivers/postgresql-9.4.1208.jar-->
|
|
||||||
<command>module add --name=org.postgres --resources=${project.build.directory}/${project.build.finalName}/lib/postgresql.jar --dependencies=javax.api,javax.transaction.api</command>
|
|
||||||
<command>/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver)</command>
|
|
||||||
<command>data-source add --jndi-name=java:/comp/env/jdbc/libreccm/db --name=libreccm-devel --connection-url=jdbc:postgresql://localhost:5432/libreccm-devel --driver-name=postgres --driver-class=org.postgresql.Driver --user-name=ccm --password=ccm47web</command>
|
|
||||||
</commands>
|
|
||||||
</beforeDeployment>
|
|
||||||
|
|
||||||
<java-opts>
|
|
||||||
<java-opt>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8787</java-opt>
|
|
||||||
</java-opts>
|
|
||||||
|
|
||||||
</configuration>
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>start-for-prepare</id>
|
||||||
|
<goals>
|
||||||
|
<goal>start</goal>
|
||||||
|
</goals>
|
||||||
|
<phase>package</phase>
|
||||||
|
<configuration>
|
||||||
|
<stdout>System.out</stdout>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>deploy-jdbc-driver</id>
|
||||||
|
<configuration>
|
||||||
|
<groupId>org.postgresql</groupId>
|
||||||
|
<artifactId>postgresql</artifactId>
|
||||||
|
<name>postgresql.jar</name>
|
||||||
|
<force>true</force>
|
||||||
|
</configuration>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>deploy-artifact</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>add-datasource</id>
|
||||||
|
<configuration>
|
||||||
|
<address>subsystem=datasources,data-source=ccm-devel</address>
|
||||||
|
<force>true</force>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<properties>
|
||||||
|
<connection-url>${libreccm.datasource.connectionUrl}</connection-url>
|
||||||
|
<jndi-name>java:/comp/env/jdbc/libreccm/db</jndi-name>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<user-name>${libreccm.datasource.username}</user-name>
|
||||||
|
<password>${libreccm.datasource.password}</password>
|
||||||
|
<use-ccm>false</use-ccm>
|
||||||
|
<driver-name>postgresql.jar</driver-name>
|
||||||
|
</properties>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
|
||||||
|
</configuration>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>add-resource</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>deploy-libreccm-bundle-devel</id>
|
||||||
|
<configuration>
|
||||||
|
<force>true</force>
|
||||||
|
</configuration>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>deploy-only</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>shutdown-after-deploy</id>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>shutdown</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
</profile>
|
</profile>
|
||||||
|
|
||||||
<!--
|
|
||||||
Generic profile for using an existing Wildfly installation.
|
|
||||||
The datasource for CCM must be configured in the Wildfly instance.
|
|
||||||
Also the plugin must know where the wildfly installation is. This
|
|
||||||
can either be done by setting the JBOSS_HOME environment variable or
|
|
||||||
by providing the location using -Djboss-as.home=/path/to/wildfly
|
|
||||||
on the command line.
|
|
||||||
-->
|
|
||||||
<profile>
|
|
||||||
<id>generic</id>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.wildfly.plugins</groupId>
|
|
||||||
<artifactId>wildfly-maven-plugin</artifactId>
|
|
||||||
|
|
||||||
<configuration>
|
|
||||||
<version>${wildfly.version}</version>
|
|
||||||
|
|
||||||
<skip>false</skip>
|
|
||||||
<startupTimeout>120</startupTimeout>
|
|
||||||
|
|
||||||
<java-opts>
|
|
||||||
<java-opt>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8787</java-opt>
|
|
||||||
</java-opts>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
</profile>
|
|
||||||
</profiles>
|
</profiles>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
|
||||||
|
|
@ -6,200 +6,102 @@
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<wildfly.version>10.0.0.Final</wildfly.version>
|
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>org.libreccm</groupId>
|
<groupId>org.libreccm</groupId>
|
||||||
<artifactId>libreccm-parent</artifactId>
|
<artifactId>ccm-bundle-devel</artifactId>
|
||||||
|
<relativePath>../ccm-bundle-devel</relativePath>
|
||||||
<version>7.0.0-SNAPSHOT</version>
|
<version>7.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<groupId>org.libreccm</groupId>
|
<groupId>org.libreccm</groupId>
|
||||||
<artifactId>ccm-bundle-devel-wildfly</artifactId>
|
<artifactId>ccm-bundle-devel-wildfly-web</artifactId>
|
||||||
<!--<version>7.0.0-SNAPSHOT</version>-->
|
<!--<version>7.0.0-SNAPSHOT</version>-->
|
||||||
<packaging>ear</packaging>
|
<packaging>war</packaging>
|
||||||
|
|
||||||
|
<name>LibreCCM Devel Bundle Web for Wildfly</name>
|
||||||
|
<url>http://www.libreccm.org/modules/web/wildfly</url>
|
||||||
|
|
||||||
<name>LibreCCM Devel Bundle for Wildfly</name>
|
|
||||||
<url>http://www.libreccm.org/bundles/devel/wildfly</url>
|
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.libreccm</groupId>
|
<groupId>org.webjars</groupId>
|
||||||
<artifactId>ccm-bundle-devel-wildfly-web</artifactId>
|
<artifactId>font-awesome</artifactId>
|
||||||
<version>${project.parent.version}</version>
|
<version>4.7.0</version>
|
||||||
<type>war</type>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.webjars</groupId>
|
||||||
|
<artifactId>requirejs</artifactId>
|
||||||
|
<version>2.3.5</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.webjars</groupId>
|
||||||
|
<artifactId>requirejs-domready</artifactId>
|
||||||
|
<version>2.0.1-2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<finalName>libreccm-devel-${project.version}</finalName>
|
<finalName>libreccm-web-wildfly</finalName>
|
||||||
|
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-ear-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<!-- Tell Maven we are using Java EE 7 -->
|
<source>1.8</source>
|
||||||
<version>7</version>
|
<target>1.8</target>
|
||||||
<!-- Use Java EE ear libraries as needed. Java EE ear libraries
|
<optimize>true</optimize>
|
||||||
are an easy way to package any libraries needed in the ear,
|
<debug>true</debug>
|
||||||
and automatically
|
<encoding>${project.build.sourceEncoding}</encoding>
|
||||||
have any modules (EJB-JARs and WARs) use them -->
|
|
||||||
<defaultLibBundleDir>lib</defaultLibBundleDir>
|
|
||||||
<fileNameMapping>no-version</fileNameMapping>
|
|
||||||
<modules>
|
|
||||||
<webModule>
|
|
||||||
<groupId>org.libreccm</groupId>
|
|
||||||
<artifactId>ccm-bundle-devel-wildfly-web</artifactId>
|
|
||||||
<contextRoot>/libreccm</contextRoot>
|
|
||||||
</webModule>
|
|
||||||
</modules>
|
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-war-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<overlays>
|
||||||
|
<overlay>
|
||||||
|
<groupId>org.libreccm</groupId>
|
||||||
|
<artifactId>ccm-editor</artifactId>
|
||||||
|
<type>jar</type>
|
||||||
|
</overlay>
|
||||||
|
<overlay>
|
||||||
|
<groupId>org.libreccm</groupId>
|
||||||
|
<artifactId>ccm-theme-foundry</artifactId>
|
||||||
|
<type>jar</type>
|
||||||
|
</overlay>
|
||||||
|
<overlay>
|
||||||
|
<groupId>org.libreccm</groupId>
|
||||||
|
<artifactId>ccm-core</artifactId>
|
||||||
|
<type>jar</type>
|
||||||
|
<includes>
|
||||||
|
<include>assets/</include>
|
||||||
|
<include>VAADIN/</include>
|
||||||
|
</includes>
|
||||||
|
</overlay>
|
||||||
|
<overlay>
|
||||||
|
<groupId>org.librecms</groupId>
|
||||||
|
<artifactId>ccm-cms</artifactId>
|
||||||
|
<type>jar</type>
|
||||||
|
<includes>
|
||||||
|
<include>templates/</include>
|
||||||
|
</includes>
|
||||||
|
</overlay>
|
||||||
|
</overlays>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.wildfly.plugins</groupId>
|
||||||
|
<artifactId>wildfly-maven-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<skip>true</skip>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
<!-- Profiles for running the bundle in a development environment -->
|
|
||||||
<profiles>
|
|
||||||
|
|
||||||
<!-- Profile which uses a H2 database. The DB file is put into the
|
|
||||||
project build directory and therefore deleted when the clean phase
|
|
||||||
runs.
|
|
||||||
-->
|
|
||||||
<profile>
|
|
||||||
<id>h2</id>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.wildfly.plugins</groupId>
|
|
||||||
<artifactId>wildfly-maven-plugin</artifactId>
|
|
||||||
|
|
||||||
<configuration>
|
|
||||||
<version>${wildfly.version}</version>
|
|
||||||
|
|
||||||
<skip>false</skip>
|
|
||||||
|
|
||||||
<add-user>
|
|
||||||
<users>
|
|
||||||
<user>
|
|
||||||
<username>admin</username>
|
|
||||||
<password>admin123</password>
|
|
||||||
</user>
|
|
||||||
</users>
|
|
||||||
</add-user>
|
|
||||||
|
|
||||||
<beforeDeployment>
|
|
||||||
<commands>
|
|
||||||
<command>data-source add --jndi-name=java:/comp/env/jdbc/libreccm/db --name=ccm-devel --connection-url=jdbc:h2:${project.build.directory}/libreccm-db;DB_CLOSE_ON_EXIT=FALSE --driver-name=h2 --driver-class=org.h2.Driver --user-name=sa --password=sa</command>
|
|
||||||
</commands>
|
|
||||||
</beforeDeployment>
|
|
||||||
|
|
||||||
<java-opts>
|
|
||||||
<java-opt>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8787</java-opt>
|
|
||||||
</java-opts>
|
|
||||||
|
|
||||||
</configuration>
|
|
||||||
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</profile>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Profile which uses a PostgreSQL datasource with a generic
|
|
||||||
configuration. When using this profile PostgreSQL must run on the
|
|
||||||
local system and a database with the name "libreccm-devel" which
|
|
||||||
is accessible by the user "ccm" with the password "ccm47web" must
|
|
||||||
exist.
|
|
||||||
-->
|
|
||||||
<profile>
|
|
||||||
<id>pgsql</id>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.postgresql</groupId>
|
|
||||||
<artifactId>postgresql</artifactId>
|
|
||||||
<version>9.4.1208</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.wildfly.plugins</groupId>
|
|
||||||
<artifactId>wildfly-maven-plugin</artifactId>
|
|
||||||
|
|
||||||
<configuration>
|
|
||||||
<version>${wildfly.version}</version>
|
|
||||||
|
|
||||||
<skip>false</skip>
|
|
||||||
|
|
||||||
<add-user>
|
|
||||||
<users>
|
|
||||||
<user>
|
|
||||||
<username>admin</username>
|
|
||||||
<password>admin1234</password>
|
|
||||||
</user>
|
|
||||||
</users>
|
|
||||||
</add-user>
|
|
||||||
|
|
||||||
<beforeDeployment>
|
|
||||||
<commands>
|
|
||||||
<!--jdbc-drivers/postgresql-9.4.1208.jar-->
|
|
||||||
<command>module add --name=org.postgres --resources=${project.build.directory}/${project.build.finalName}/lib/postgresql.jar --dependencies=javax.api,javax.transaction.api</command>
|
|
||||||
<command>/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver)</command>
|
|
||||||
<command>data-source add --jndi-name=java:/comp/env/jdbc/libreccm/db --name=libreccm-devel --connection-url=jdbc:postgresql://localhost:5432/libreccm-devel --driver-name=postgres --driver-class=org.postgresql.Driver --user-name=ccm --password=ccm47web</command>
|
|
||||||
</commands>
|
|
||||||
</beforeDeployment>
|
|
||||||
|
|
||||||
<java-opts>
|
|
||||||
<java-opt>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8787</java-opt>
|
|
||||||
</java-opts>
|
|
||||||
|
|
||||||
</configuration>
|
|
||||||
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</profile>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Generic profile for using an existing Wildfly installation.
|
|
||||||
The datasource for CCM must be configured in the Wildfly instance.
|
|
||||||
Also the plugin must know where the wildfly installation is. This
|
|
||||||
can either be done by setting the JBOSS_HOME environment variable or
|
|
||||||
by providing the location using -Djboss-as.home=/path/to/wildfly
|
|
||||||
on the command line.
|
|
||||||
-->
|
|
||||||
<profile>
|
|
||||||
<id>generic</id>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.wildfly.plugins</groupId>
|
|
||||||
<artifactId>wildfly-maven-plugin</artifactId>
|
|
||||||
|
|
||||||
<configuration>
|
|
||||||
<version>${wildfly.version}</version>
|
|
||||||
|
|
||||||
<skip>false</skip>
|
|
||||||
<startupTimeout>120</startupTimeout>
|
|
||||||
|
|
||||||
<java-opts>
|
|
||||||
<java-opt>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8787</java-opt>
|
|
||||||
</java-opts>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
</profile>
|
|
||||||
</profiles>
|
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
import "@librecms/ccm-cms-pagemodelseditor";
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" ?>
|
||||||
|
<jboss-web>
|
||||||
|
<context-root>/libreccm</context-root>
|
||||||
|
</jboss-web>
|
||||||
|
|
@ -3,61 +3,10 @@
|
||||||
--------------
|
--------------
|
||||||
Jens Pelzetter
|
Jens Pelzetter
|
||||||
--------------
|
--------------
|
||||||
2016-06-03
|
2016-03-18
|
||||||
--------------
|
--------------
|
||||||
|
|
||||||
LibreCCM Bundle for Wildfly
|
LibreCCM Bundle Web for Wildfly
|
||||||
|
|
||||||
This module provides the LibreCCM development bundle for the Wildfly
|
This module provides the web application part of the the LibreCCM devel
|
||||||
application server.
|
bundle for the Wildfly application server.
|
||||||
|
|
||||||
This bundle is not meant for production use as its contains most of the
|
|
||||||
available modules.
|
|
||||||
|
|
||||||
Developers can run this LibreCCM directly from Maven. Three profiles are
|
|
||||||
provided:
|
|
||||||
|
|
||||||
[h2] Uses a H2 database located in the project build directory. This means
|
|
||||||
that the database is deleted every time <<<mvn clean>>>.
|
|
||||||
|
|
||||||
[pgsql] Uses an PostgresSQL database with a generic configuration. The
|
|
||||||
PostgreSQL server must run on localhost and the standard port and there
|
|
||||||
must be a database called with <<<libreccm-devel>>> which is accessible
|
|
||||||
for the user <<<ccm>>> using the password <<<ccm47web>>>.
|
|
||||||
|
|
||||||
[generic] Uses an existing Wildfly installation. The datasource for the
|
|
||||||
database which is used by LibreCCM has to be configured by the user for this
|
|
||||||
profile. Also, Maven or more exactly the wildfly-maven-plugin has to know
|
|
||||||
the location of the Wildfly instance to use. The location of the Wildfly
|
|
||||||
instance can either be provided on the command line when invoking Maven
|
|
||||||
or by setting the <<<JBOSS_HOME>>> environment variable.
|
|
||||||
|
|
||||||
When using the <<<h2>>> it is not necessary to install a Wildfly application
|
|
||||||
server first. The <wildfly-maven-plugin> will download the Wildfly
|
|
||||||
application server and extract the server into the <<<target>>> directory.
|
|
||||||
|
|
||||||
The <<<h2>>> and the <<<pgsql>>> profile add a user to the Wildfly server
|
|
||||||
with the username <<<admin>>> and the password <<<admin123>>> which allow
|
|
||||||
the developer to access the management web UI of the Wildfly server.
|
|
||||||
|
|
||||||
* Run examples
|
|
||||||
|
|
||||||
** Profile h2
|
|
||||||
|
|
||||||
To run the LibreCCM bundle using a H2 database:
|
|
||||||
|
|
||||||
mvn package wildfly:run -pl ccm-bundle-devel-wildfly -am -Ph2
|
|
||||||
|
|
||||||
** Profile pgsql
|
|
||||||
|
|
||||||
mvn package wildfly:run -pl ccm-bundle-devel-wildfly -am -Ppgsql
|
|
||||||
|
|
||||||
** Profile generic
|
|
||||||
|
|
||||||
mvn -Djboss-as.home=/home/mustermann/java-ee-servers/wildfly/wildfly-10.0.0.Final package wildfly:run -pl ccm-bundle-devel-wildfly -am -Pgeneric
|
|
||||||
|
|
||||||
** Additional options
|
|
||||||
|
|
||||||
The <<<wildfly:run>>> goal of the <wildfly-maven-plugin> provides several
|
|
||||||
other options. For a complete list please refer to the documentation of the
|
|
||||||
{{{https://docs.jboss.org/wildfly/plugins/maven/latest/run-mojo.html}run goal}}.
|
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,10 @@
|
||||||
</menu>
|
</menu>
|
||||||
|
|
||||||
<menu name="Overview">
|
<menu name="Overview">
|
||||||
<item name="The LibreCCM Devel Bundle module" href="index.html"/>
|
<item name="The LibreCCM Devel Bundle Web module" href="index.html"/>
|
||||||
</menu>
|
</menu>
|
||||||
|
|
||||||
<menu ref="reports"/>
|
<menu ref="reports"/>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
# Configuration for Wildfly, primarly ports on which Wildfly will listen
|
||||||
|
|
||||||
|
# Ports for Undertow (Servlet Container). These are the ports which you are
|
||||||
|
# using the access your application
|
||||||
|
jboss.http.port=8080
|
||||||
|
jboss.https.port=8443
|
||||||
|
|
||||||
|
# Ports for Wildfly's Management Interface
|
||||||
|
jboss.management.http.port=9990
|
||||||
|
jboss.management.https.port=9993
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -38,6 +38,11 @@
|
||||||
<artifactId>ccm-theme-foundry</artifactId>
|
<artifactId>ccm-theme-foundry</artifactId>
|
||||||
<version>${project.parent.version}</version>
|
<version>${project.parent.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.librecms</groupId>
|
||||||
|
<artifactId>ccm-theme-ftllibs-devel</artifactId>
|
||||||
|
<version>${project.parent.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.sf.saxon</groupId>
|
<groupId>net.sf.saxon</groupId>
|
||||||
|
|
|
||||||
|
|
@ -236,11 +236,6 @@
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
<version>0.7.5.201505241946</version>
|
<version>0.7.5.201505241946</version>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>findbugs-maven-plugin</artifactId>
|
|
||||||
<version>3.0.1</version>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "ccm-cms-js",
|
"name": "@librecms/ccm-cms-js",
|
||||||
"version": "7.0.0",
|
"version": "7.0.0",
|
||||||
"description": "JavaScript for the ccm-cms-module",
|
"description": "JavaScript for the ccm-cms-module",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
"tslint": "tslint --project ."
|
"tslint": "tslint --project ."
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ccm-pagemodelseditor": "7.0.0",
|
"@libreccm/ccm-pagemodelseditor": "7.0.0",
|
||||||
"react": "^16.4.2",
|
"react": "^16.4.2",
|
||||||
"react-dom": "^16.4.2",
|
"react-dom": "^16.4.2",
|
||||||
"react-redux": "^5.0.7",
|
"react-redux": "^5.0.7",
|
||||||
|
|
|
||||||
|
|
@ -79,12 +79,12 @@
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
<execution>
|
||||||
<id>npm link ccm-pagemodelseditor</id>
|
<id>npm link @libreccm/ccm-pagemodelseditor</id>
|
||||||
<goals>
|
<goals>
|
||||||
<goal>npm</goal>
|
<goal>npm</goal>
|
||||||
</goals>
|
</goals>
|
||||||
<configuration>
|
<configuration>
|
||||||
<arguments>link ccm-pagemodelseditor</arguments>
|
<arguments>link @libreccm/ccm-pagemodelseditor</arguments>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
<execution>
|
||||||
|
|
|
||||||
|
|
@ -1,125 +1,10 @@
|
||||||
{
|
{
|
||||||
"name": "ccm-cms-pagemodelseditor",
|
"name": "@librecms/ccm-cms-pagemodelseditor",
|
||||||
"version": "7.0.0",
|
"version": "7.0.0",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/node": {
|
"@libreccm/ccm-pagemodelseditor": {
|
||||||
"version": "10.7.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.7.1.tgz",
|
|
||||||
"integrity": "sha512-EGoI4ylB/lPOaqXqtzAyL8HcgOuCtH2hkEaLmkueOYufsTFWBn4VCvlCDC2HW8Q+9iF+QVC3sxjDKQYjHQeZ9w==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"@types/prop-types": {
|
|
||||||
"version": "15.5.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.5.tgz",
|
|
||||||
"integrity": "sha512-mOrlCEdwX3seT3n0AXNt4KNPAZZxcsABUHwBgFXOt+nvFUXkxCAO6UBJHPrDxWEa2KDMil86355fjo8jbZ+K0Q==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"@types/react": "16.4.11"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@types/react": {
|
|
||||||
"version": "16.4.11",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.4.11.tgz",
|
|
||||||
"integrity": "sha512-1DQnmwO8u8N3ucvRX2ZLDEjQ2VctkAvL/rpbm2ev4uaZA0z4ysU+I0tk+K8ZLblC6p7MCgFyF+cQlSNIPUHzeQ==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"@types/prop-types": "15.5.5",
|
|
||||||
"csstype": "2.5.6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@types/react-dom": {
|
|
||||||
"version": "16.0.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.0.7.tgz",
|
|
||||||
"integrity": "sha512-vaq4vMaJOaNgFff1t3LnHYr6vRa09vRspMkmLdXtFZmO1fwDI2snP+dpOkwrtlU8UC8qsqemCu4RmVM2OLq/fA==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"@types/node": "10.7.1",
|
|
||||||
"@types/react": "16.4.11"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ansi-regex": {
|
|
||||||
"version": "2.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
|
||||||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"ansi-styles": {
|
|
||||||
"version": "2.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
|
|
||||||
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"argparse": {
|
|
||||||
"version": "1.0.10",
|
|
||||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
|
||||||
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"sprintf-js": "1.0.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"asap": {
|
|
||||||
"version": "2.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
|
|
||||||
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
|
|
||||||
},
|
|
||||||
"babel-code-frame": {
|
|
||||||
"version": "6.26.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
|
|
||||||
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"chalk": "1.1.3",
|
|
||||||
"esutils": "2.0.2",
|
|
||||||
"js-tokens": "3.0.2"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"chalk": {
|
|
||||||
"version": "1.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
|
||||||
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"ansi-styles": "2.2.1",
|
|
||||||
"escape-string-regexp": "1.0.5",
|
|
||||||
"has-ansi": "2.0.0",
|
|
||||||
"strip-ansi": "3.0.1",
|
|
||||||
"supports-color": "2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"js-tokens": {
|
|
||||||
"version": "3.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
|
|
||||||
"integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
|
|
||||||
"dev": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"balanced-match": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"brace-expansion": {
|
|
||||||
"version": "1.1.11",
|
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
|
||||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"balanced-match": "1.0.0",
|
|
||||||
"concat-map": "0.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"builtin-modules": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
|
|
||||||
"integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"ccm-pagemodelseditor": {
|
|
||||||
"version": "7.0.0",
|
"version": "7.0.0",
|
||||||
"requires": {
|
"requires": {
|
||||||
"react": "16.4.2",
|
"react": "16.4.2",
|
||||||
|
|
@ -604,6 +489,121 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@types/node": {
|
||||||
|
"version": "10.7.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.7.1.tgz",
|
||||||
|
"integrity": "sha512-EGoI4ylB/lPOaqXqtzAyL8HcgOuCtH2hkEaLmkueOYufsTFWBn4VCvlCDC2HW8Q+9iF+QVC3sxjDKQYjHQeZ9w==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"@types/prop-types": {
|
||||||
|
"version": "15.5.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.5.5.tgz",
|
||||||
|
"integrity": "sha512-mOrlCEdwX3seT3n0AXNt4KNPAZZxcsABUHwBgFXOt+nvFUXkxCAO6UBJHPrDxWEa2KDMil86355fjo8jbZ+K0Q==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@types/react": "16.4.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@types/react": {
|
||||||
|
"version": "16.4.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.4.11.tgz",
|
||||||
|
"integrity": "sha512-1DQnmwO8u8N3ucvRX2ZLDEjQ2VctkAvL/rpbm2ev4uaZA0z4ysU+I0tk+K8ZLblC6p7MCgFyF+cQlSNIPUHzeQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@types/prop-types": "15.5.5",
|
||||||
|
"csstype": "2.5.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@types/react-dom": {
|
||||||
|
"version": "16.0.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.0.7.tgz",
|
||||||
|
"integrity": "sha512-vaq4vMaJOaNgFff1t3LnHYr6vRa09vRspMkmLdXtFZmO1fwDI2snP+dpOkwrtlU8UC8qsqemCu4RmVM2OLq/fA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@types/node": "10.7.1",
|
||||||
|
"@types/react": "16.4.11"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ansi-regex": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
||||||
|
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"ansi-styles": {
|
||||||
|
"version": "2.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
|
||||||
|
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"argparse": {
|
||||||
|
"version": "1.0.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
||||||
|
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"sprintf-js": "1.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"asap": {
|
||||||
|
"version": "2.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
|
||||||
|
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
|
||||||
|
},
|
||||||
|
"babel-code-frame": {
|
||||||
|
"version": "6.26.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
|
||||||
|
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"chalk": "1.1.3",
|
||||||
|
"esutils": "2.0.2",
|
||||||
|
"js-tokens": "3.0.2"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"chalk": {
|
||||||
|
"version": "1.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
||||||
|
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-styles": "2.2.1",
|
||||||
|
"escape-string-regexp": "1.0.5",
|
||||||
|
"has-ansi": "2.0.0",
|
||||||
|
"strip-ansi": "3.0.1",
|
||||||
|
"supports-color": "2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"js-tokens": {
|
||||||
|
"version": "3.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
|
||||||
|
"integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"balanced-match": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"brace-expansion": {
|
||||||
|
"version": "1.1.11",
|
||||||
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||||
|
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"balanced-match": "1.0.0",
|
||||||
|
"concat-map": "0.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"builtin-modules": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
|
||||||
|
"integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"chalk": {
|
"chalk": {
|
||||||
"version": "2.4.1",
|
"version": "2.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "ccm-cms-pagemodelseditor",
|
"name": "@librecms/ccm-cms-pagemodelseditor",
|
||||||
"version": "7.0.0",
|
"version": "7.0.0",
|
||||||
"description": "Adds editor components for PageModels components provided by ccm-cms",
|
"description": "Adds editor components for PageModels components provided by ccm-cms",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
"tslint": "tslint --project ."
|
"tslint": "tslint --project ."
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"ccm-pagemodelseditor": "7.0.0",
|
"@libreccm/ccm-pagemodelseditor": "7.0.0",
|
||||||
"react": "^16.4.2",
|
"react": "^16.4.2",
|
||||||
"react-dom": "^16.4.2"
|
"react-dom": "^16.4.2"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
<execution>
|
||||||
<id>npm link ccm-pagemodelseditor</id>
|
<id>npm link @libreccm/ccm-pagemodelseditor</id>
|
||||||
<phase>package</phase>
|
<phase>package</phase>
|
||||||
<goals>
|
<goals>
|
||||||
<goal>exec</goal>
|
<goal>exec</goal>
|
||||||
|
|
@ -88,7 +88,7 @@
|
||||||
<executable>npm</executable>
|
<executable>npm</executable>
|
||||||
<arguments>
|
<arguments>
|
||||||
<argument>link</argument>
|
<argument>link</argument>
|
||||||
<argument>ccm-pagemodelseditor</argument>
|
<argument>@libreccm/ccm-pagemodelseditor</argument>
|
||||||
</arguments>
|
</arguments>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
|
|
@ -141,12 +141,12 @@
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
<execution>
|
||||||
<id>npm link ccm-pagemodelseditor</id>
|
<id>npm link @libreccm/ccm-pagemodelseditor</id>
|
||||||
<goals>
|
<goals>
|
||||||
<goal>npm</goal>
|
<goal>npm</goal>
|
||||||
</goals>
|
</goals>
|
||||||
<configuration>
|
<configuration>
|
||||||
<arguments>link ccm-pagemodelseditor</arguments>
|
<arguments>link @libreccm/ccm-pagemodelseditor</arguments>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
<execution>
|
||||||
|
|
@ -173,6 +173,19 @@
|
||||||
<arguments>link</arguments>
|
<arguments>link</arguments>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
|
|
||||||
|
<execution>
|
||||||
|
<id>npm publish</id>
|
||||||
|
<goals>
|
||||||
|
<goal>npm</goal>
|
||||||
|
</goals>
|
||||||
|
|
||||||
|
<phase>deploy</phase>
|
||||||
|
|
||||||
|
<configuration>
|
||||||
|
<arguments>publish --userconfig ../libreccm.npmrc</arguments>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ import {
|
||||||
ComponentModelEditorProps,
|
ComponentModelEditorProps,
|
||||||
EditorComponents,
|
EditorComponents,
|
||||||
PageModelEditor,
|
PageModelEditor,
|
||||||
} from "ccm-pagemodelseditor";
|
} from "@libreccm/ccm-pagemodelseditor";
|
||||||
|
|
||||||
class CategoryTreeComponentPropertiesList
|
class CategoryTreeComponentPropertiesList
|
||||||
extends React.Component<
|
extends React.Component<
|
||||||
|
|
|
||||||
|
|
@ -64,12 +64,12 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator</artifactId>
|
<artifactId>hibernate-validator</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator-cdi</artifactId>
|
<artifactId>hibernate-validator-cdi</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
@ -255,10 +255,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>findbugs-maven-plugin</artifactId>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "ccm-cms-tinymce",
|
"name": "@librecms/ccm-cms-tinymce",
|
||||||
"version": "7.0.0",
|
"version": "7.0.0",
|
||||||
"description": "Extensions for TinyMCE specific for ccm-cms",
|
"description": "Extensions for TinyMCE specific for ccm-cms",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
|
||||||
|
|
@ -64,12 +64,12 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator</artifactId>
|
<artifactId>hibernate-validator</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator-cdi</artifactId>
|
<artifactId>hibernate-validator-cdi</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
@ -252,11 +252,7 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>findbugs-maven-plugin</artifactId>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-pmd-plugin</artifactId>
|
<artifactId>maven-pmd-plugin</artifactId>
|
||||||
|
|
|
||||||
|
|
@ -64,12 +64,12 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator</artifactId>
|
<artifactId>hibernate-validator</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator-cdi</artifactId>
|
<artifactId>hibernate-validator-cdi</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
@ -251,10 +251,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>findbugs-maven-plugin</artifactId>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
|
|
||||||
|
|
@ -64,12 +64,12 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator</artifactId>
|
<artifactId>hibernate-validator</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator-cdi</artifactId>
|
<artifactId>hibernate-validator-cdi</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
@ -252,10 +252,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>findbugs-maven-plugin</artifactId>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
|
|
||||||
|
|
@ -64,12 +64,12 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator</artifactId>
|
<artifactId>hibernate-validator</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator-cdi</artifactId>
|
<artifactId>hibernate-validator-cdi</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
@ -251,10 +251,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>findbugs-maven-plugin</artifactId>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
|
|
||||||
|
|
@ -64,12 +64,12 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator</artifactId>
|
<artifactId>hibernate-validator</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator-cdi</artifactId>
|
<artifactId>hibernate-validator-cdi</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
@ -251,10 +251,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>findbugs-maven-plugin</artifactId>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
|
|
||||||
|
|
@ -64,12 +64,12 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator</artifactId>
|
<artifactId>hibernate-validator</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator-cdi</artifactId>
|
<artifactId>hibernate-validator-cdi</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
@ -251,11 +251,7 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>findbugs-maven-plugin</artifactId>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-pmd-plugin</artifactId>
|
<artifactId>maven-pmd-plugin</artifactId>
|
||||||
|
|
|
||||||
|
|
@ -64,12 +64,12 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator</artifactId>
|
<artifactId>hibernate-validator</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator-cdi</artifactId>
|
<artifactId>hibernate-validator-cdi</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
@ -252,10 +252,6 @@
|
||||||
<groupId>org.jacoco</groupId>
|
<groupId>org.jacoco</groupId>
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>findbugs-maven-plugin</artifactId>
|
|
||||||
</plugin>
|
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
|
|
||||||
595
ccm-cms/pom.xml
595
ccm-cms/pom.xml
|
|
@ -55,12 +55,12 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator</artifactId>
|
<artifactId>hibernate-validator</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hibernate</groupId>
|
<groupId>org.hibernate.validator</groupId>
|
||||||
<artifactId>hibernate-validator-cdi</artifactId>
|
<artifactId>hibernate-validator-cdi</artifactId>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
@ -294,16 +294,9 @@
|
||||||
<artifactId>jacoco-maven-plugin</artifactId>
|
<artifactId>jacoco-maven-plugin</artifactId>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
|
||||||
<artifactId>findbugs-maven-plugin</artifactId>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>com.github.spotbugs</groupId>
|
<groupId>com.github.spotbugs</groupId>
|
||||||
<artifactId>spotbugs-maven-plugin</artifactId>
|
<artifactId>spotbugs-maven-plugin</artifactId>
|
||||||
<!--<configuration>
|
|
||||||
<excludeFilterFile>findbugs-exclude.xml</excludeFilterFile>
|
|
||||||
</configuration>-->
|
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
|
|
@ -360,192 +353,18 @@
|
||||||
|
|
||||||
<profiles>
|
<profiles>
|
||||||
<profile>
|
<profile>
|
||||||
<id>wildfly-managed-h2-mem</id>
|
<id>run-its-with-wildfly-h2mem</id>
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.wildfly.arquillian</groupId>
|
|
||||||
<artifactId>wildfly-arquillian-container-managed</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.jacoco</groupId>
|
|
||||||
<artifactId>org.jacoco.core</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.jboss.arquillian.extension</groupId>
|
|
||||||
<artifactId>arquillian-jacoco</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>net.sf.saxon</groupId>
|
|
||||||
<artifactId>Saxon-HE</artifactId>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<testResources>
|
|
||||||
<testResource>
|
|
||||||
<directory>src/test/resources</directory>
|
|
||||||
</testResource>
|
|
||||||
<testResource>
|
|
||||||
<directory>src/test/resources-wildfly-remote-h2-mem</directory>
|
|
||||||
</testResource>
|
|
||||||
<testResource>
|
|
||||||
<directory>${project.build.directory}/generated-resources</directory>
|
|
||||||
</testResource>
|
|
||||||
</testResources>
|
|
||||||
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>de.jpdigital</groupId>
|
|
||||||
<artifactId>hibernate53-ddl-maven-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<dialects>
|
|
||||||
<param>h2</param>
|
|
||||||
<param>postgresql9</param>
|
|
||||||
</dialects>
|
|
||||||
<packages>
|
|
||||||
<param>org.libreccm</param>
|
|
||||||
</packages>
|
|
||||||
<useEnvers>true</useEnvers>
|
|
||||||
</configuration>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<goals>
|
|
||||||
<goal>gen-ddl</goal>
|
|
||||||
</goals>
|
|
||||||
<phase>process-classes</phase>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<forkMode>always</forkMode>
|
|
||||||
<forkCount>999</forkCount>
|
|
||||||
<reuseForks>true</reuseForks>
|
|
||||||
<trimStackTrace>false</trimStackTrace>
|
|
||||||
<systemPropertyVariables>
|
|
||||||
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
|
||||||
<!--<jboss.home>${project.basedir}/target/wildfly-8.2.0.Final</jboss.home>
|
|
||||||
<module.path>${project.basedir}/target/wildfly-8.2.0.Final/modules</module.path>-->
|
|
||||||
</systemPropertyVariables>
|
|
||||||
<redirectTestOutputToFile>false</redirectTestOutputToFile>
|
|
||||||
<groups>
|
|
||||||
org.libreccm.tests.categories.UnitTest,
|
|
||||||
org.libreccm.tests.categories.IntegrationTest
|
|
||||||
</groups>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</profile>
|
|
||||||
|
|
||||||
<profile>
|
|
||||||
<id>wildfly-managed-pgsql</id>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.wildfly.arquillian</groupId>
|
|
||||||
<artifactId>wildfly-arquillian-container-managed</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.jacoco</groupId>
|
|
||||||
<artifactId>org.jacoco.core</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.jboss.arquillian.extension</groupId>
|
|
||||||
<artifactId>arquillian-jacoco</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>net.sf.saxon</groupId>
|
|
||||||
<artifactId>Saxon-HE</artifactId>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<testResources>
|
|
||||||
<testResource>
|
|
||||||
<directory>src/test/resources</directory>
|
|
||||||
</testResource>
|
|
||||||
<testResource>
|
|
||||||
<directory>src/test/resources-wildfly-remote-pgsql</directory>
|
|
||||||
</testResource>
|
|
||||||
<testResource>
|
|
||||||
<directory>${project.build.directory}/generated-resources</directory>
|
|
||||||
</testResource>
|
|
||||||
</testResources>
|
|
||||||
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>de.jpdigital</groupId>
|
|
||||||
<artifactId>hibernate53-ddl-maven-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<dialects>
|
|
||||||
<param>h2</param>
|
|
||||||
<param>postgresql9</param>
|
|
||||||
</dialects>
|
|
||||||
<packages>
|
|
||||||
<param>org.libreccm</param>
|
|
||||||
</packages>
|
|
||||||
<useEnvers>true</useEnvers>
|
|
||||||
</configuration>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<goals>
|
|
||||||
<goal>gen-ddl</goal>
|
|
||||||
</goals>
|
|
||||||
<phase>process-classes</phase>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
|
||||||
<configuration>
|
|
||||||
<trimStackTrace>false</trimStackTrace>
|
|
||||||
<forkMode>always</forkMode>
|
|
||||||
<forkCount>999</forkCount>
|
|
||||||
<reuseForks>true</reuseForks>
|
|
||||||
<systemPropertyVariables>
|
|
||||||
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
|
||||||
<!--<jboss.home>${project.basedir}/target/wildfly-8.2.0.Final</jboss.home>
|
|
||||||
<module.path>${project.basedir}/target/wildfly-8.2.0.Final/modules</module.path>-->
|
|
||||||
</systemPropertyVariables>
|
|
||||||
<redirectTestOutputToFile>false</redirectTestOutputToFile>
|
|
||||||
<groups>
|
|
||||||
org.libreccm.tests.categories.UnitTest,
|
|
||||||
org.libreccm.tests.categories.IntegrationTest
|
|
||||||
</groups>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</profile>
|
|
||||||
|
|
||||||
<profile>
|
|
||||||
<id>wildfly-remote-h2-mem</id>
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.wildfly.arquillian</groupId>
|
<groupId>org.wildfly.arquillian</groupId>
|
||||||
<artifactId>wildfly-arquillian-container-remote</artifactId>
|
<artifactId>wildfly-arquillian-container-remote</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.jacoco</groupId>
|
|
||||||
<artifactId>org.jacoco.core</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.jboss.arquillian.extension</groupId>
|
|
||||||
<artifactId>arquillian-jacoco</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.sf.saxon</groupId>
|
<groupId>net.sf.saxon</groupId>
|
||||||
<artifactId>Saxon-HE</artifactId>
|
<artifactId>Saxon-HE</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
@ -554,11 +373,12 @@
|
||||||
<directory>src/test/resources</directory>
|
<directory>src/test/resources</directory>
|
||||||
</testResource>
|
</testResource>
|
||||||
<testResource>
|
<testResource>
|
||||||
<directory>src/test/resources-wildfly-remote-h2-mem</directory>
|
<directory>src/test/resources-wildfly-h2mem</directory>
|
||||||
</testResource>
|
</testResource>
|
||||||
<testResource>
|
<testResource>
|
||||||
<directory>${project.build.directory}/generated-resources</directory>
|
<directory>${project.build.directory}/generated-resources</directory>
|
||||||
</testResource>
|
</testResource>
|
||||||
|
|
||||||
</testResources>
|
</testResources>
|
||||||
|
|
||||||
<plugins>
|
<plugins>
|
||||||
|
|
@ -586,49 +406,114 @@
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
<artifactId>maven-failsafe-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>integration-test</goal>
|
||||||
|
<goal>verify</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
<configuration>
|
<configuration>
|
||||||
<forkMode>always</forkMode>
|
<forkMode>always</forkMode>
|
||||||
<forkCount>999</forkCount>
|
<forkCount>999</forkCount>
|
||||||
<reuseForks>true</reuseForks>
|
<reuseForks>true</reuseForks>
|
||||||
<trimStackTrace>false</trimStackTrace>
|
|
||||||
<systemPropertyVariables>
|
<systemPropertyVariables>
|
||||||
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
||||||
<!--<jboss.home>${project.basedir}/target/wildfly-8.2.0.Final</jboss.home>
|
|
||||||
<module.path>${project.basedir}/target/wildfly-8.2.0.Final/modules</module.path>-->
|
|
||||||
</systemPropertyVariables>
|
</systemPropertyVariables>
|
||||||
<redirectTestOutputToFile>false</redirectTestOutputToFile>
|
<redirectTestOutputToFile>false</redirectTestOutputToFile>
|
||||||
<groups>
|
<trimStackTrace>false</trimStackTrace>
|
||||||
org.libreccm.tests.categories.UnitTest,
|
|
||||||
org.libreccm.tests.categories.IntegrationTest
|
|
||||||
</groups>
|
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.wildfly.plugins</groupId>
|
||||||
|
<artifactId>wildfly-maven-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<skip>false</skip>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>start-test-env</id>
|
||||||
|
<goals>
|
||||||
|
<goal>start</goal>
|
||||||
|
</goals>
|
||||||
|
<phase>pre-integration-test</phase>
|
||||||
|
<configuration>
|
||||||
|
<stdout>System.out</stdout>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>prepare-test-env</id>
|
||||||
|
<goals>
|
||||||
|
<goal>add-resource</goal>
|
||||||
|
</goals>
|
||||||
|
<phase>pre-integration-test</phase>
|
||||||
|
<configuration>
|
||||||
|
<address>subsystem=datasources,data-source=ccm-cms-testdb-h2-mem</address>
|
||||||
|
<force>true</force>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<properties>
|
||||||
|
<connection-url>jdbc:h2:mem:ccm-core-testdb</connection-url>
|
||||||
|
<jndi-name>java:/comp/env/jdbc/org/librecms/ccm-cms/h2-mem</jndi-name>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<user-name>sa</user-name>
|
||||||
|
<password>sa</password>
|
||||||
|
<use-ccm>false</use-ccm>
|
||||||
|
<driver-name>h2</driver-name>
|
||||||
|
</properties>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>shutdown-test-env</id>
|
||||||
|
<goals>
|
||||||
|
<goal>shutdown</goal>
|
||||||
|
</goals>
|
||||||
|
<phase>post-integration-test</phase>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
|
<reporting>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-surefire-report-plugin</artifactId>
|
||||||
|
<reportSets>
|
||||||
|
<reportSet>
|
||||||
|
<id>integration-tests</id>
|
||||||
|
<reports>
|
||||||
|
<report>failsafe-report-only</report>
|
||||||
|
</reports>
|
||||||
|
</reportSet>
|
||||||
|
</reportSets>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</reporting>
|
||||||
</profile>
|
</profile>
|
||||||
|
|
||||||
<profile>
|
<profile>
|
||||||
<id>wildfly-remote-pgsql</id>
|
<id>run-its-with-wildfly-pgsql</id>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.wildfly.arquillian</groupId>
|
<groupId>org.wildfly.arquillian</groupId>
|
||||||
<artifactId>wildfly-arquillian-container-remote</artifactId>
|
<artifactId>wildfly-arquillian-container-remote</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.jacoco</groupId>
|
|
||||||
<artifactId>org.jacoco.core</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.jboss.arquillian.extension</groupId>
|
|
||||||
<artifactId>arquillian-jacoco</artifactId>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.sf.saxon</groupId>
|
<groupId>net.sf.saxon</groupId>
|
||||||
<artifactId>Saxon-HE</artifactId>
|
<artifactId>Saxon-HE</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.postgresql</groupId>
|
||||||
|
<artifactId>postgresql</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
@ -637,7 +522,7 @@
|
||||||
<directory>src/test/resources</directory>
|
<directory>src/test/resources</directory>
|
||||||
</testResource>
|
</testResource>
|
||||||
<testResource>
|
<testResource>
|
||||||
<directory>src/test/resources-wildfly-remote-pgsql</directory>
|
<directory>src/test/resources-wildfly-pgsql</directory>
|
||||||
</testResource>
|
</testResource>
|
||||||
<testResource>
|
<testResource>
|
||||||
<directory>${project.build.directory}/generated-resources</directory>
|
<directory>${project.build.directory}/generated-resources</directory>
|
||||||
|
|
@ -669,7 +554,282 @@
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
<artifactId>maven-failsafe-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>integration-test</goal>
|
||||||
|
<goal>verify</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
<configuration>
|
||||||
|
<forkMode>always</forkMode>
|
||||||
|
<forkCount>999</forkCount>
|
||||||
|
<reuseForks>true</reuseForks>
|
||||||
|
<systemPropertyVariables>
|
||||||
|
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
||||||
|
</systemPropertyVariables>
|
||||||
|
<redirectTestOutputToFile>false</redirectTestOutputToFile>
|
||||||
|
<trimStackTrace>false</trimStackTrace>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
|
<artifactId>properties-maven-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>read-datasource-properties</id>
|
||||||
|
<phase>initialize</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>read-project-properties</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<files>
|
||||||
|
<file>${project.basedir}/../it-pgsql-datasources.properties</file>
|
||||||
|
</files>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.wildfly.plugins</groupId>
|
||||||
|
<artifactId>wildfly-maven-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<skip>false</skip>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>start-test-env</id>
|
||||||
|
<goals>
|
||||||
|
<goal>start</goal>
|
||||||
|
</goals>
|
||||||
|
<phase>pre-integration-test</phase>
|
||||||
|
<configuration>
|
||||||
|
<stdout>System.out</stdout>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>prepare-deploy-jdbc-driver</id>
|
||||||
|
<configuration>
|
||||||
|
<groupId>org.postgresql</groupId>
|
||||||
|
<artifactId>postgresql</artifactId>
|
||||||
|
<name>postgresql.jar</name>
|
||||||
|
<force>true</force>
|
||||||
|
</configuration>
|
||||||
|
<phase>pre-integration-test</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>deploy-artifact</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>prepare-test-env</id>
|
||||||
|
<goals>
|
||||||
|
<goal>add-resource</goal>
|
||||||
|
</goals>
|
||||||
|
<phase>pre-integration-test</phase>
|
||||||
|
<configuration>
|
||||||
|
<address>subsystem=datasources,data-source=ccm-cms-testdb-pgsql</address>
|
||||||
|
<force>true</force>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<properties>
|
||||||
|
<connection-url>${it.ccm-cms.datasource.connectionUrl}</connection-url>
|
||||||
|
<jndi-name>java:/comp/env/jdbc/org/librecms/ccm-cms/pgsql</jndi-name>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
<user-name>${it.ccm-cms.datasource.username}</user-name>
|
||||||
|
<password>${it.ccm-cms.datasource.password}</password>
|
||||||
|
<use-ccm>false</use-ccm>
|
||||||
|
<driver-name>postgresql.jar</driver-name>
|
||||||
|
</properties>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>shutdown-test-env</id>
|
||||||
|
<goals>
|
||||||
|
<goal>shutdown</goal>
|
||||||
|
</goals>
|
||||||
|
<phase>post-integration-test</phase>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<reporting>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-surefire-report-plugin</artifactId>
|
||||||
|
<reportSets>
|
||||||
|
<reportSet>
|
||||||
|
<id>integration-tests</id>
|
||||||
|
<reports>
|
||||||
|
<report>failsafe-report-only</report>
|
||||||
|
</reports>
|
||||||
|
</reportSet>
|
||||||
|
</reportSets>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</reporting>
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
<profile>
|
||||||
|
<id>run-its-in-remote-wildfly-h2mem</id>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wildfly.arquillian</groupId>
|
||||||
|
<artifactId>wildfly-arquillian-container-remote</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>net.sf.saxon</groupId>
|
||||||
|
<artifactId>Saxon-HE</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<testResources>
|
||||||
|
<testResource>
|
||||||
|
<directory>src/test/resources</directory>
|
||||||
|
</testResource>
|
||||||
|
<testResource>
|
||||||
|
<directory>src/test/resources-wildfly-h2mem</directory>
|
||||||
|
</testResource>
|
||||||
|
<testResource>
|
||||||
|
<directory>${project.build.directory}/generated-resources</directory>
|
||||||
|
</testResource>
|
||||||
|
</testResources>
|
||||||
|
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>de.jpdigital</groupId>
|
||||||
|
<artifactId>hibernate53-ddl-maven-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<dialects>
|
||||||
|
<param>h2</param>
|
||||||
|
<param>postgresql9</param>
|
||||||
|
</dialects>
|
||||||
|
<packages>
|
||||||
|
<param>org.libreccm</param>
|
||||||
|
</packages>
|
||||||
|
<useEnvers>true</useEnvers>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>gen-ddl</goal>
|
||||||
|
</goals>
|
||||||
|
<phase>process-classes</phase>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-failsafe-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>integration-test</goal>
|
||||||
|
<goal>verify</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
<configuration>
|
||||||
|
<forkMode>always</forkMode>
|
||||||
|
<forkCount>999</forkCount>
|
||||||
|
<reuseForks>true</reuseForks>
|
||||||
|
<trimStackTrace>false</trimStackTrace>
|
||||||
|
<systemPropertyVariables>
|
||||||
|
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
||||||
|
</systemPropertyVariables>
|
||||||
|
<redirectTestOutputToFile>false</redirectTestOutputToFile>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<reporting>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-surefire-report-plugin</artifactId>
|
||||||
|
<reportSets>
|
||||||
|
<reportSet>
|
||||||
|
<id>integration-tests</id>
|
||||||
|
<reports>
|
||||||
|
<report>failsafe-report-only</report>
|
||||||
|
</reports>
|
||||||
|
</reportSet>
|
||||||
|
</reportSets>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</reporting>
|
||||||
|
</profile>
|
||||||
|
|
||||||
|
<profile>
|
||||||
|
<id>run-its-in-remote-wildfly-pgsql</id>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wildfly.arquillian</groupId>
|
||||||
|
<artifactId>wildfly-arquillian-container-remote</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>net.sf.saxon</groupId>
|
||||||
|
<artifactId>Saxon-HE</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<testResources>
|
||||||
|
<testResource>
|
||||||
|
<directory>src/test/resources</directory>
|
||||||
|
</testResource>
|
||||||
|
<testResource>
|
||||||
|
<directory>src/test/resources-wildfly-pgsql</directory>
|
||||||
|
</testResource>
|
||||||
|
<testResource>
|
||||||
|
<directory>${project.build.directory}/generated-resources</directory>
|
||||||
|
</testResource>
|
||||||
|
</testResources>
|
||||||
|
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>de.jpdigital</groupId>
|
||||||
|
<artifactId>hibernate53-ddl-maven-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<dialects>
|
||||||
|
<param>h2</param>
|
||||||
|
<param>postgresql9</param>
|
||||||
|
</dialects>
|
||||||
|
<packages>
|
||||||
|
<param>org.libreccm</param>
|
||||||
|
</packages>
|
||||||
|
<useEnvers>true</useEnvers>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>gen-ddl</goal>
|
||||||
|
</goals>
|
||||||
|
<phase>process-classes</phase>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-failsafe-plugin</artifactId>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>integration-test</goal>
|
||||||
|
<goal>verify</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
<configuration>
|
<configuration>
|
||||||
<trimStackTrace>false</trimStackTrace>
|
<trimStackTrace>false</trimStackTrace>
|
||||||
<forkMode>always</forkMode>
|
<forkMode>always</forkMode>
|
||||||
|
|
@ -677,18 +837,29 @@
|
||||||
<reuseForks>true</reuseForks>
|
<reuseForks>true</reuseForks>
|
||||||
<systemPropertyVariables>
|
<systemPropertyVariables>
|
||||||
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
|
||||||
<!--<jboss.home>${project.basedir}/target/wildfly-8.2.0.Final</jboss.home>
|
|
||||||
<module.path>${project.basedir}/target/wildfly-8.2.0.Final/modules</module.path>-->
|
|
||||||
</systemPropertyVariables>
|
</systemPropertyVariables>
|
||||||
<redirectTestOutputToFile>false</redirectTestOutputToFile>
|
<redirectTestOutputToFile>false</redirectTestOutputToFile>
|
||||||
<groups>
|
|
||||||
org.libreccm.tests.categories.UnitTest,
|
|
||||||
org.libreccm.tests.categories.IntegrationTest
|
|
||||||
</groups>
|
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
|
<reporting>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-surefire-report-plugin</artifactId>
|
||||||
|
<reportSets>
|
||||||
|
<reportSet>
|
||||||
|
<id>integration-tests</id>
|
||||||
|
<reports>
|
||||||
|
<report>failsafe-report-only</report>
|
||||||
|
</reports>
|
||||||
|
</reportSet>
|
||||||
|
</reportSets>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</reporting>
|
||||||
</profile>
|
</profile>
|
||||||
|
|
||||||
</profiles>
|
</profiles>
|
||||||
|
|
|
||||||
|
|
@ -129,15 +129,15 @@ public class MultiPartArticleEditForm extends MultiPartArticleForm
|
||||||
.selectedLocale(state, selectedLanguageParam);
|
.selectedLocale(state, selectedLanguageParam);
|
||||||
|
|
||||||
final String newName = (String) data.get(MultiPartArticleForm.NAME);
|
final String newName = (String) data.get(MultiPartArticleForm.NAME);
|
||||||
final String oldName = article.getName().getValue(selectedLocale);
|
final MultiPartArticleFormController controller = CdiUtil
|
||||||
|
.createCdiUtil()
|
||||||
|
.findBean(MultiPartArticleFormController.class);
|
||||||
|
final String oldName = controller.getName(article, selectedLocale);
|
||||||
|
|
||||||
final boolean valid;
|
final boolean valid;
|
||||||
if (newName.equalsIgnoreCase(oldName)) {
|
if (newName.equalsIgnoreCase(oldName)) {
|
||||||
valid = true;
|
valid = true;
|
||||||
} else {
|
} else {
|
||||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
|
||||||
final MultiPartArticleFormController controller = cdiUtil
|
|
||||||
.findBean(MultiPartArticleFormController.class);
|
|
||||||
final Optional<Folder> folder = controller.getArticleFolder(article);
|
final Optional<Folder> folder = controller.getArticleFolder(article);
|
||||||
if (folder.isPresent()) {
|
if (folder.isPresent()) {
|
||||||
valid = validateNameUniqueness(folder.get(), event);
|
valid = validateNameUniqueness(folder.get(), event);
|
||||||
|
|
|
||||||
|
|
@ -233,14 +233,17 @@ public abstract class MultiPartArticleForm
|
||||||
|
|
||||||
final Locale selectedLocale = SelectedLanguageUtil
|
final Locale selectedLocale = SelectedLanguageUtil
|
||||||
.selectedLocale(state, selectedLanguageParam);
|
.selectedLocale(state, selectedLanguageParam);
|
||||||
|
final MultiPartArticleFormController controller = CdiUtil
|
||||||
|
.createCdiUtil()
|
||||||
|
.findBean(MultiPartArticleFormController.class);
|
||||||
|
|
||||||
if (article != null) {
|
if (article != null) {
|
||||||
data.put(NAME, article.getName().getValue(selectedLocale));
|
data.put(NAME, controller.getName(article, selectedLocale));
|
||||||
data.put(TITLE, article.getTitle().getValue(selectedLocale));
|
data.put(TITLE, controller.getTitle(article, selectedLocale));
|
||||||
if (!CMSConfig.getConfig().isHideLaunchDate()) {
|
if (!CMSConfig.getConfig().isHideLaunchDate()) {
|
||||||
data.put(LAUNCH_DATE, article.getLaunchDate());
|
data.put(LAUNCH_DATE, article.getLaunchDate());
|
||||||
}
|
}
|
||||||
data.put(SUMMARY, article.getSummary().getValue(selectedLocale));
|
data.put(SUMMARY, controller.getSummary(article, selectedLocale));
|
||||||
}
|
}
|
||||||
|
|
||||||
return article;
|
return article;
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,8 @@ import org.librecms.contentsection.ContentItemRepository;
|
||||||
import org.librecms.contentsection.Folder;
|
import org.librecms.contentsection.Folder;
|
||||||
import org.librecms.contenttypes.MultiPartArticle;
|
import org.librecms.contenttypes.MultiPartArticle;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
import javax.enterprise.context.RequestScoped;
|
import javax.enterprise.context.RequestScoped;
|
||||||
|
|
@ -46,8 +48,9 @@ public class MultiPartArticleFormController {
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
protected Optional<Folder> getArticleFolder(final MultiPartArticle article) {
|
protected Optional<Folder> getArticleFolder(final MultiPartArticle article) {
|
||||||
|
|
||||||
final Optional<ContentItem> mpa = itemRepo
|
final Optional<ContentItem> mpa = itemRepo.findById(
|
||||||
.findById(article.getObjectId());
|
article.getObjectId()
|
||||||
|
);
|
||||||
|
|
||||||
if (mpa.isPresent()) {
|
if (mpa.isPresent()) {
|
||||||
return itemManager.getItemFolder(mpa.get());
|
return itemManager.getItemFolder(mpa.get());
|
||||||
|
|
@ -56,4 +59,62 @@ public class MultiPartArticleFormController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public String getName(
|
||||||
|
final MultiPartArticle fromMpa, final Locale forLocale
|
||||||
|
) {
|
||||||
|
Objects.requireNonNull(fromMpa);
|
||||||
|
Objects.requireNonNull(forLocale);
|
||||||
|
final MultiPartArticle mpa = itemRepo
|
||||||
|
.findById(fromMpa.getObjectId(), MultiPartArticle.class)
|
||||||
|
.orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No MultiPartArticle with ID %d available",
|
||||||
|
fromMpa.getObjectId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return mpa.getName().getValue(forLocale);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public String getTitle(
|
||||||
|
final MultiPartArticle fromMpa, final Locale forLocale
|
||||||
|
) {
|
||||||
|
Objects.requireNonNull(fromMpa);
|
||||||
|
Objects.requireNonNull(forLocale);
|
||||||
|
final MultiPartArticle mpa = itemRepo
|
||||||
|
.findById(fromMpa.getObjectId(), MultiPartArticle.class)
|
||||||
|
.orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No MultiPartArticle with ID %d available",
|
||||||
|
fromMpa.getObjectId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
return mpa.getTitle().getValue(forLocale);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public String getSummary(
|
||||||
|
final MultiPartArticle fromMpa, final Locale forLocale
|
||||||
|
) {
|
||||||
|
Objects.requireNonNull(fromMpa);
|
||||||
|
Objects.requireNonNull(forLocale);
|
||||||
|
final MultiPartArticle mpa = itemRepo
|
||||||
|
.findById(fromMpa.getObjectId(), MultiPartArticle.class)
|
||||||
|
.orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No MultiPartArticle with ID %d available",
|
||||||
|
fromMpa.getObjectId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return mpa.getSummary().getValue(forLocale);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,8 @@ import org.librecms.contenttypes.MultiPartArticleSectionManager;
|
||||||
import org.librecms.contenttypes.MultiPartArticleSectionRepository;
|
import org.librecms.contenttypes.MultiPartArticleSectionRepository;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.enterprise.context.RequestScoped;
|
import javax.enterprise.context.RequestScoped;
|
||||||
|
|
@ -127,15 +129,81 @@ class MultiPartArticleSectionStepController {
|
||||||
protected void moveAfter(final MultiPartArticle article,
|
protected void moveAfter(final MultiPartArticle article,
|
||||||
final MultiPartArticleSection section,
|
final MultiPartArticleSection section,
|
||||||
final MultiPartArticleSection after) {
|
final MultiPartArticleSection after) {
|
||||||
|
|
||||||
final MultiPartArticle theArticle = itemRepo
|
final MultiPartArticle theArticle = itemRepo
|
||||||
.findById(article.getObjectId(),
|
.findById(article.getObjectId(),
|
||||||
MultiPartArticle.class)
|
MultiPartArticle.class)
|
||||||
.orElseThrow(() -> new IllegalArgumentException(String.format(
|
.orElseThrow(() -> new IllegalArgumentException(String.format(
|
||||||
"No MultiPartArticle with ID %d in the database.",
|
"No MultiPartArticle with ID %d in the database.",
|
||||||
article.getObjectId())));
|
article.getObjectId())));
|
||||||
|
|
||||||
sectionManager.moveSectionAfter(theArticle, section, after);
|
sectionManager.moveSectionAfter(theArticle, section, after);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public String getSectionTitle(
|
||||||
|
final MultiPartArticleSection ofSection, final Locale forLocale
|
||||||
|
) {
|
||||||
|
Objects.requireNonNull(ofSection);
|
||||||
|
Objects.requireNonNull(forLocale);
|
||||||
|
|
||||||
|
final MultiPartArticleSection section = sectionRepo
|
||||||
|
.findById(ofSection.getSectionId())
|
||||||
|
.orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No section with ID %d available.", ofSection
|
||||||
|
.getSectionId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return section.getTitle().getValue(forLocale);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public String getSectionText(
|
||||||
|
final MultiPartArticleSection ofSection, final Locale forLocale
|
||||||
|
) {
|
||||||
|
Objects.requireNonNull(ofSection);
|
||||||
|
Objects.requireNonNull(forLocale);
|
||||||
|
|
||||||
|
final MultiPartArticleSection section = sectionRepo
|
||||||
|
.findById(ofSection.getSectionId())
|
||||||
|
.orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No section with ID %d available.", ofSection
|
||||||
|
.getSectionId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return section.getText().getValue(forLocale);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public void updateSection(
|
||||||
|
final MultiPartArticleSection section,
|
||||||
|
final String title,
|
||||||
|
final String text,
|
||||||
|
final boolean pageBreak,
|
||||||
|
final Locale locale
|
||||||
|
) {
|
||||||
|
Objects.requireNonNull(section);
|
||||||
|
Objects.requireNonNull(locale);
|
||||||
|
|
||||||
|
final MultiPartArticleSection update = sectionRepo
|
||||||
|
.findById(section.getSectionId())
|
||||||
|
.orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No section with ID %d available.",
|
||||||
|
section.getSectionId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
update.getTitle().addValue(locale, title);
|
||||||
|
update.getText().addValue(locale, title);
|
||||||
|
update.setPageBreak(pageBreak);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -158,11 +158,16 @@ public class MultiPartArticleSectionsStep extends ResettableContainer {
|
||||||
final Locale selectedLocale = SelectedLanguageUtil
|
final Locale selectedLocale = SelectedLanguageUtil
|
||||||
.selectedLocale(state, selectedLanguageParam);
|
.selectedLocale(state, selectedLanguageParam);
|
||||||
|
|
||||||
|
final MultiPartArticleSectionStepController controller = CdiUtil
|
||||||
|
.createCdiUtil()
|
||||||
|
.findBean(MultiPartArticleSectionStepController.class);
|
||||||
|
|
||||||
final Object[] parameterObj = {
|
final Object[] parameterObj = {
|
||||||
|
controller.getSectionTitle(
|
||||||
moveSectionModel
|
moveSectionModel
|
||||||
.getSelectedSection(state)
|
.getSelectedSection(state),
|
||||||
.getTitle()
|
selectedLocale
|
||||||
.getValue(selectedLocale)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
target.setLabel(new GlobalizedMessage(
|
target.setLabel(new GlobalizedMessage(
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,6 @@ import com.arsdigita.globalization.GlobalizedMessage;
|
||||||
|
|
||||||
import org.librecms.contenttypes.MultiPartArticle;
|
import org.librecms.contenttypes.MultiPartArticle;
|
||||||
|
|
||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.libreccm.cdi.utils.CdiUtil;
|
import org.libreccm.cdi.utils.CdiUtil;
|
||||||
|
|
@ -110,9 +109,14 @@ public class SectionDeleteForm extends Form
|
||||||
final Locale selectedLocale = SelectedLanguageUtil
|
final Locale selectedLocale = SelectedLanguageUtil
|
||||||
.selectedLocale(state, selectedLanguageParam);
|
.selectedLocale(state, selectedLanguageParam);
|
||||||
|
|
||||||
|
final MultiPartArticleSectionStepController controller = CdiUtil
|
||||||
|
.createCdiUtil()
|
||||||
|
.findBean(MultiPartArticleSectionStepController.class);
|
||||||
|
|
||||||
sectionNameLabel.setLabel(
|
sectionNameLabel.setLabel(
|
||||||
section.getTitle().getValue(selectedLocale),
|
controller.getSectionTitle(section, selectedLocale),
|
||||||
state);
|
state
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -198,12 +198,19 @@ public class SectionEditForm extends Form {
|
||||||
|
|
||||||
final Locale selectedLocale = SelectedLanguageUtil
|
final Locale selectedLocale = SelectedLanguageUtil
|
||||||
.selectedLocale(state, selectedLanguageParam);
|
.selectedLocale(state, selectedLanguageParam);
|
||||||
|
final MultiPartArticleSectionStepController controller = CdiUtil
|
||||||
|
.createCdiUtil()
|
||||||
|
.findBean(MultiPartArticleSectionStepController.class);
|
||||||
|
|
||||||
final MultiPartArticleSection section = selectedSectionModel
|
final MultiPartArticleSection section = selectedSectionModel
|
||||||
.getSelectedSection(state);
|
.getSelectedSection(state);
|
||||||
|
|
||||||
data.put(TITLE, section.getTitle().getValue(selectedLocale));
|
data.put(
|
||||||
data.put(TEXT, section.getText().getValue(selectedLocale));
|
TITLE, controller.getSectionTitle(section, selectedLocale)
|
||||||
|
);
|
||||||
|
data.put(
|
||||||
|
TEXT, controller.getSectionText(section, selectedLocale)
|
||||||
|
);
|
||||||
|
|
||||||
if (section.isPageBreak()) {
|
if (section.isPageBreak()) {
|
||||||
data.put(PAGE_BREAK, new Object[]{"true"});
|
data.put(PAGE_BREAK, new Object[]{"true"});
|
||||||
|
|
@ -281,9 +288,8 @@ public class SectionEditForm extends Form {
|
||||||
section = selectedSectionModel.getSelectedSection(state);
|
section = selectedSectionModel.getSelectedSection(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
section.getTitle().addValue(selectedLocale,
|
// section.getTitle().addValue(selectedLocale,
|
||||||
(String) data.get(TITLE));
|
// (String) data.get(TITLE));
|
||||||
|
|
||||||
final Object[] pageBreakVal = (Object[]) data.get(PAGE_BREAK);
|
final Object[] pageBreakVal = (Object[]) data.get(PAGE_BREAK);
|
||||||
final boolean pageBreak;
|
final boolean pageBreak;
|
||||||
if (pageBreakVal == null
|
if (pageBreakVal == null
|
||||||
|
|
@ -293,7 +299,7 @@ public class SectionEditForm extends Form {
|
||||||
} else {
|
} else {
|
||||||
pageBreak = true;
|
pageBreak = true;
|
||||||
}
|
}
|
||||||
section.setPageBreak(pageBreak);
|
// section.setPageBreak(pageBreak);
|
||||||
|
|
||||||
final String text;
|
final String text;
|
||||||
if (data.get(TEXT) == null) {
|
if (data.get(TEXT) == null) {
|
||||||
|
|
@ -301,12 +307,24 @@ public class SectionEditForm extends Form {
|
||||||
} else {
|
} else {
|
||||||
text = (String) data.get(TEXT);
|
text = (String) data.get(TEXT);
|
||||||
}
|
}
|
||||||
section.getText().addValue(selectedLocale, text);
|
// section.getText().addValue(selectedLocale, text);
|
||||||
|
|
||||||
sectionRepo.save(section);
|
|
||||||
|
|
||||||
|
// sectionRepo.save(section);
|
||||||
if (selectedSectionModel.getSelectedKey(state) == null) {
|
if (selectedSectionModel.getSelectedKey(state) == null) {
|
||||||
|
section.getTitle().addValue(selectedLocale,
|
||||||
|
(String) data.get(TITLE));
|
||||||
|
section.setPageBreak(pageBreak);
|
||||||
|
section.getText().addValue(selectedLocale, text);
|
||||||
|
|
||||||
controller.addSection(article, section);
|
controller.addSection(article, section);
|
||||||
|
} else {
|
||||||
|
controller.updateSection(
|
||||||
|
section,
|
||||||
|
(String) data.get(TITLE),
|
||||||
|
text,
|
||||||
|
pageBreak,
|
||||||
|
selectedLocale
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sectionsStep != null) {
|
if (sectionsStep != null) {
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ import org.librecms.contenttypes.MultiPartArticleSection;
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
class SectionTableModel implements TableModel {
|
class SectionTableModel implements TableModel {
|
||||||
|
|
||||||
|
|
@ -109,13 +110,20 @@ class SectionTableModel implements TableModel {
|
||||||
if (columnModel == null) {
|
if (columnModel == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final MultiPartArticleSectionStepController controller = CdiUtil
|
||||||
|
.createCdiUtil()
|
||||||
|
.findBean(MultiPartArticleSectionStepController.class);
|
||||||
|
|
||||||
switch (columnIndex) {
|
switch (columnIndex) {
|
||||||
case SectionTable.COL_INDEX_TITLE:
|
case SectionTable.COL_INDEX_TITLE:
|
||||||
return currentSection
|
return controller.getSectionTitle(
|
||||||
.getTitle()
|
currentSection,
|
||||||
.getValue(SelectedLanguageUtil
|
SelectedLanguageUtil.selectedLocale(
|
||||||
.selectedLocale(pageState, selectedLanguageParam));
|
pageState, selectedLanguageParam
|
||||||
|
)
|
||||||
|
)
|
||||||
|
;
|
||||||
case SectionTable.COL_PAGE_BREAK:
|
case SectionTable.COL_PAGE_BREAK:
|
||||||
if (currentSection.isPageBreak()) {
|
if (currentSection.isPageBreak()) {
|
||||||
return new Label(
|
return new Label(
|
||||||
|
|
|
||||||
|
|
@ -18,8 +18,11 @@
|
||||||
*/
|
*/
|
||||||
package com.arsdigita.cms.ui.authoring.news;
|
package com.arsdigita.cms.ui.authoring.news;
|
||||||
|
|
||||||
|
import org.libreccm.l10n.GlobalizationHelper;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.librecms.contentsection.ContentSection;
|
import org.librecms.contentsection.ContentSection;
|
||||||
import org.librecms.contentsection.ContentSectionRepository;
|
import org.librecms.contentsection.ContentSectionRepository;
|
||||||
|
|
||||||
|
|
@ -32,13 +35,18 @@ import javax.inject.Inject;
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
import javax.persistence.TypedQuery;
|
import javax.persistence.TypedQuery;
|
||||||
import javax.transaction.Transactional;
|
import javax.transaction.Transactional;
|
||||||
|
|
||||||
import org.libreccm.security.PermissionChecker;
|
import org.libreccm.security.PermissionChecker;
|
||||||
import org.libreccm.security.Role;
|
import org.libreccm.security.Role;
|
||||||
import org.libreccm.security.RoleRepository;
|
import org.libreccm.security.RoleRepository;
|
||||||
import org.libreccm.security.Shiro;
|
import org.libreccm.security.Shiro;
|
||||||
import org.libreccm.security.User;
|
import org.libreccm.security.User;
|
||||||
|
import org.librecms.contentsection.ContentItemRepository;
|
||||||
import org.librecms.contentsection.ContentType;
|
import org.librecms.contentsection.ContentType;
|
||||||
import org.librecms.contentsection.ContentTypeRepository;
|
import org.librecms.contentsection.ContentTypeRepository;
|
||||||
|
import org.librecms.contenttypes.News;
|
||||||
|
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Controller class for the {@link NewItemForm}.
|
* Controller class for the {@link NewItemForm}.
|
||||||
|
|
@ -53,7 +61,7 @@ class NewItemFormController {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private Shiro shiro;
|
private Shiro shiro;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private PermissionChecker permissionChecker;
|
private PermissionChecker permissionChecker;
|
||||||
|
|
||||||
|
|
@ -62,7 +70,7 @@ class NewItemFormController {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ContentSectionRepository sectionRepo;
|
private ContentSectionRepository sectionRepo;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ContentTypeRepository typeRepo;
|
private ContentTypeRepository typeRepo;
|
||||||
|
|
||||||
|
|
@ -76,39 +84,41 @@ class NewItemFormController {
|
||||||
}
|
}
|
||||||
|
|
||||||
final List<Role> roles = user.get().getRoleMemberships().stream()
|
final List<Role> roles = user.get().getRoleMemberships().stream()
|
||||||
.map(membership -> membership.getRole())
|
.map(membership -> membership.getRole())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
final TypedQuery<Boolean> query = entityManager.createNamedQuery(
|
final TypedQuery<Boolean> query = entityManager.createNamedQuery(
|
||||||
"ContentSection.hasUsableContentTypes", Boolean.class);
|
"ContentSection.hasUsableContentTypes", Boolean.class);
|
||||||
query.setParameter("section", section);
|
query.setParameter("section", section);
|
||||||
query.setParameter("roles", roles);
|
query.setParameter("roles", roles);
|
||||||
query.setParameter("isSysAdmin", permissionChecker.isPermitted("*"));
|
query.setParameter("isSysAdmin", permissionChecker.isPermitted("*"));
|
||||||
|
|
||||||
return query.getSingleResult();
|
return query.getSingleResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
protected List<ContentType> getContentTypes(final ContentSection section) {
|
protected List<ContentType> getContentTypes(final ContentSection section) {
|
||||||
Objects.requireNonNull(section);
|
Objects.requireNonNull(section);
|
||||||
|
|
||||||
final Optional<User> user = shiro.getUser();
|
final Optional<User> user = shiro.getUser();
|
||||||
if (!user.isPresent()) {
|
if (!user.isPresent()) {
|
||||||
return Collections.EMPTY_LIST;
|
return Collections.EMPTY_LIST;
|
||||||
}
|
}
|
||||||
|
|
||||||
final List<Role> roles = user.get().getRoleMemberships().stream()
|
final List<Role> roles = user.get().getRoleMemberships().stream()
|
||||||
.map(membership -> membership.getRole())
|
.map(membership -> membership.getRole())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
final TypedQuery<ContentType> query = entityManager.createNamedQuery(
|
final TypedQuery<ContentType> query = entityManager.createNamedQuery(
|
||||||
"ContentSection.findUsableContentTypes",
|
"ContentSection.findUsableContentTypes",
|
||||||
ContentType.class);
|
ContentType.class);
|
||||||
query.setParameter("section", section);
|
query.setParameter("section", section);
|
||||||
query.setParameter("roles", roles);
|
query.setParameter("roles", roles);
|
||||||
query.setParameter("isSysAdmin", permissionChecker.isPermitted("*"));
|
query.setParameter("isSysAdmin", permissionChecker.isPermitted("*"));
|
||||||
|
|
||||||
return query.getResultList();
|
return query.getResultList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,108 @@
|
||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package com.arsdigita.cms.ui.authoring.news;
|
||||||
|
|
||||||
|
import org.librecms.contentsection.ContentItemRepository;
|
||||||
|
import org.librecms.contenttypes.News;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Locale;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.transaction.Transactional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
public class NewsController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private ContentItemRepository itemRepo;
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
protected String getDescription(
|
||||||
|
final News fromNews, final Locale forLocale
|
||||||
|
) {
|
||||||
|
Objects.requireNonNull(fromNews);
|
||||||
|
final News news = itemRepo
|
||||||
|
.findById(fromNews.getObjectId(), News.class)
|
||||||
|
.orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No News with ID %d available.", fromNews.getObjectId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
return news.getDescription().getValue(forLocale);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
protected String getText(final News fromNews, final Locale forLocale) {
|
||||||
|
Objects.requireNonNull(fromNews);
|
||||||
|
final News news = itemRepo
|
||||||
|
.findById(fromNews.getObjectId(), News.class)
|
||||||
|
.orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No News with ID %d available",
|
||||||
|
fromNews.getObjectId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
return news.getText().getValue(forLocale);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
protected void updateText(
|
||||||
|
final News ofNews,
|
||||||
|
final Locale forLocale,
|
||||||
|
final String text
|
||||||
|
) {
|
||||||
|
Objects.requireNonNull(ofNews);
|
||||||
|
final News news = itemRepo
|
||||||
|
.findById(ofNews.getObjectId(), News.class)
|
||||||
|
.orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No News with ID %d available",
|
||||||
|
ofNews.getObjectId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
news.getText().addValue(forLocale, text);
|
||||||
|
itemRepo.save(news);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
protected void update(
|
||||||
|
final News news,
|
||||||
|
final Date releaseDate,
|
||||||
|
final Locale locale,
|
||||||
|
final String description
|
||||||
|
) {
|
||||||
|
Objects.requireNonNull(news);
|
||||||
|
final News update = itemRepo
|
||||||
|
.findById(news.getObjectId(), News.class)
|
||||||
|
.orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No News with ID %d available",
|
||||||
|
news.getObjectId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
update.setReleaseDate(releaseDate);
|
||||||
|
update.getDescription().addValue(locale, description);
|
||||||
|
itemRepo.save(update);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -36,7 +36,6 @@ import org.librecms.contenttypes.News;
|
||||||
import com.arsdigita.cms.ui.authoring.BasicPageForm;
|
import com.arsdigita.cms.ui.authoring.BasicPageForm;
|
||||||
import com.arsdigita.cms.ui.authoring.SelectedLanguageUtil;
|
import com.arsdigita.cms.ui.authoring.SelectedLanguageUtil;
|
||||||
import com.arsdigita.globalization.GlobalizedMessage;
|
import com.arsdigita.globalization.GlobalizedMessage;
|
||||||
import com.arsdigita.kernel.KernelConfig;
|
|
||||||
|
|
||||||
import org.libreccm.cdi.utils.CdiUtil;
|
import org.libreccm.cdi.utils.CdiUtil;
|
||||||
import org.libreccm.configuration.ConfigurationManager;
|
import org.libreccm.configuration.ConfigurationManager;
|
||||||
|
|
@ -45,6 +44,7 @@ import org.librecms.contentsection.ContentItemRepository;
|
||||||
import org.librecms.contenttypes.NewsConfig;
|
import org.librecms.contenttypes.NewsConfig;
|
||||||
|
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.GregorianCalendar;
|
import java.util.GregorianCalendar;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
@ -181,7 +181,10 @@ public class NewsPropertyForm extends BasicPageForm
|
||||||
|
|
||||||
releaseDateSelector.addYear(releaseDate);
|
releaseDateSelector.addYear(releaseDate);
|
||||||
data.put(NEWS_DATE, releaseDate);
|
data.put(NEWS_DATE, releaseDate);
|
||||||
data.put(LEAD, item.getDescription().getValue(selectedLocale));
|
final NewsController controller = CdiUtil
|
||||||
|
.createCdiUtil()
|
||||||
|
.findBean(NewsController.class);
|
||||||
|
data.put(LEAD, controller.getDescription(item, selectedLocale));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -218,21 +221,15 @@ public class NewsPropertyForm extends BasicPageForm
|
||||||
.getSaveButton()
|
.getSaveButton()
|
||||||
.isSelected(event.getPageState())) {
|
.isSelected(event.getPageState())) {
|
||||||
|
|
||||||
|
final NewsController controller = CdiUtil
|
||||||
|
.createCdiUtil()
|
||||||
|
.findBean(NewsController.class);
|
||||||
|
|
||||||
|
final Date releaseDate = (java.util.Date) data.get(NEWS_DATE);
|
||||||
|
final String description = (String) data.get(LEAD);
|
||||||
final Locale selectedLocale = SelectedLanguageUtil
|
final Locale selectedLocale = SelectedLanguageUtil
|
||||||
.selectedLocale(state, selectedLanguageParam);
|
.selectedLocale(state, selectedLanguageParam);
|
||||||
|
controller.update(item, releaseDate, selectedLocale, description);
|
||||||
item.setReleaseDate((java.util.Date) data.get(NEWS_DATE));
|
|
||||||
item
|
|
||||||
.getDescription()
|
|
||||||
.addValue(
|
|
||||||
selectedLocale,
|
|
||||||
(String) data.get(LEAD));
|
|
||||||
|
|
||||||
final ContentItemRepository itemRepo = CdiUtil
|
|
||||||
.createCdiUtil()
|
|
||||||
.findBean(ContentItemRepository.class);
|
|
||||||
|
|
||||||
itemRepo.save(item);
|
|
||||||
}
|
}
|
||||||
if (propertiesStep != null) {
|
if (propertiesStep != null) {
|
||||||
propertiesStep.maybeForwardToNextStep(event.getPageState());
|
propertiesStep.maybeForwardToNextStep(event.getPageState());
|
||||||
|
|
|
||||||
|
|
@ -83,10 +83,13 @@ public class NewsTextBody extends TextBody {
|
||||||
|
|
||||||
final News news = getSelectedNews(state);
|
final News news = getSelectedNews(state);
|
||||||
|
|
||||||
return news
|
final NewsController controller = CdiUtil
|
||||||
.getText()
|
.createCdiUtil()
|
||||||
.getValue(SelectedLanguageUtil
|
.findBean(NewsController.class);
|
||||||
.selectedLocale(state, selectedLanguageParam));
|
return controller.getText(
|
||||||
|
news,
|
||||||
|
SelectedLanguageUtil.selectedLocale(state, selectedLanguageParam)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -97,11 +100,10 @@ public class NewsTextBody extends TextBody {
|
||||||
final Locale selectedLocale = SelectedLanguageUtil
|
final Locale selectedLocale = SelectedLanguageUtil
|
||||||
.selectedLocale(state, selectedLanguageParam);
|
.selectedLocale(state, selectedLanguageParam);
|
||||||
|
|
||||||
news.getText().addValue(selectedLocale, text);
|
final NewsController controller = CdiUtil
|
||||||
final ContentItemRepository itemRepo = CdiUtil
|
|
||||||
.createCdiUtil()
|
.createCdiUtil()
|
||||||
.findBean(ContentItemRepository.class);
|
.findBean(NewsController.class);
|
||||||
itemRepo.save(news);
|
controller.updateText(news, selectedLocale, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,12 +35,12 @@ class FolderEditForm extends FolderBaseForm {
|
||||||
|
|
||||||
private static Logger LOGGER = LogManager.getLogger(FolderEditForm.class);
|
private static Logger LOGGER = LogManager.getLogger(FolderEditForm.class);
|
||||||
|
|
||||||
private final FolderRequestLocal m_folder;
|
private final FolderRequestLocal folderRequestLocal;
|
||||||
|
|
||||||
public FolderEditForm(final FolderRequestLocal folder) {
|
public FolderEditForm(final FolderRequestLocal folder) {
|
||||||
super("folder-edit");
|
super("folder-edit");
|
||||||
|
|
||||||
m_folder = folder;
|
folderRequestLocal = folder;
|
||||||
|
|
||||||
// XXX need to do name uniqueness valdation on m_fragment here
|
// XXX need to do name uniqueness valdation on m_fragment here
|
||||||
// as well.
|
// as well.
|
||||||
|
|
@ -68,7 +68,7 @@ class FolderEditForm extends FolderBaseForm {
|
||||||
public final void init(final FormSectionEvent e) {
|
public final void init(final FormSectionEvent e) {
|
||||||
final PageState state = e.getPageState();
|
final PageState state = e.getPageState();
|
||||||
|
|
||||||
final Category folder = m_folder.getFolder(state);
|
final Category folder = folderRequestLocal.getFolder(state);
|
||||||
|
|
||||||
m_title.setValue(state, folder.getDisplayName());
|
m_title.setValue(state, folder.getDisplayName());
|
||||||
m_fragment.setValue(state, folder.getName());
|
m_fragment.setValue(state, folder.getName());
|
||||||
|
|
@ -80,7 +80,7 @@ class FolderEditForm extends FolderBaseForm {
|
||||||
throws FormProcessException {
|
throws FormProcessException {
|
||||||
final PageState state = e.getPageState();
|
final PageState state = e.getPageState();
|
||||||
|
|
||||||
final Category folder = m_folder.getFolder(state);
|
final Category folder = folderRequestLocal.getFolder(state);
|
||||||
|
|
||||||
folder.setDisplayName((String) m_title.getValue(state));
|
folder.setDisplayName((String) m_title.getValue(state));
|
||||||
folder.setName((String) m_fragment.getValue(state));
|
folder.setName((String) m_fragment.getValue(state));
|
||||||
|
|
|
||||||
|
|
@ -63,12 +63,10 @@ public class FolderEditorForm extends FolderForm {
|
||||||
final Folder folder = getCurrentFolder(state);
|
final Folder folder = getCurrentFolder(state);
|
||||||
data.put(NAME, folder.getName());
|
data.put(NAME, folder.getName());
|
||||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
final ConfigurationManager confManager = cdiUtil.findBean(
|
final FolderEditorFormController controller = cdiUtil.findBean(
|
||||||
ConfigurationManager.class);
|
FolderEditorFormController.class
|
||||||
final KernelConfig kernelConfig = confManager.findConfiguration(
|
);
|
||||||
KernelConfig.class);
|
data.put(TITLE, controller.getFolderTitle(folder));
|
||||||
data.put(TITLE,
|
|
||||||
folder.getTitle().getValue(kernelConfig.getDefaultLocale()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,50 @@
|
||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package com.arsdigita.cms.ui.folder;
|
||||||
|
|
||||||
|
import com.arsdigita.kernel.KernelConfig;
|
||||||
|
|
||||||
|
import org.libreccm.configuration.ConfigurationManager;
|
||||||
|
import org.librecms.contentsection.Folder;
|
||||||
|
import org.librecms.contentsection.FolderRepository;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import javax.enterprise.context.RequestScoped;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.transaction.Transactional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@RequestScoped
|
||||||
|
public class FolderEditorFormController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private ConfigurationManager confManager;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private FolderRepository folderRepository;
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public String getFolderTitle(final Folder ofFolder) {
|
||||||
|
final Folder folder = folderRepository
|
||||||
|
.findById(Objects.requireNonNull(ofFolder).getObjectId())
|
||||||
|
.orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format("No folder with ID %d available.",
|
||||||
|
ofFolder.getObjectId())
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
final KernelConfig kernelConfig = confManager.findConfiguration(
|
||||||
|
KernelConfig.class
|
||||||
|
);
|
||||||
|
return folder.getTitle().getValue(kernelConfig.getDefaultLocale());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -47,7 +47,7 @@ import org.librecms.lifecycle.LifecycleDefinitionRepository;
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
*/
|
*/
|
||||||
public class LifecycleAdminPane extends BaseAdminPane {
|
public class LifecycleAdminPane extends BaseAdminPane {
|
||||||
|
|
||||||
private final SingleSelectionModel selectionModel;
|
private final SingleSelectionModel selectionModel;
|
||||||
private final LifecycleDefinitionRequestLocal selectionLifecycleDefinition;
|
private final LifecycleDefinitionRequestLocal selectionLifecycleDefinition;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,9 +18,12 @@
|
||||||
*/
|
*/
|
||||||
package com.arsdigita.cms.ui.lifecycle;
|
package com.arsdigita.cms.ui.lifecycle;
|
||||||
|
|
||||||
|
import com.arsdigita.globalization.GlobalizedMessage;
|
||||||
import com.arsdigita.kernel.KernelConfig;
|
import com.arsdigita.kernel.KernelConfig;
|
||||||
|
import com.arsdigita.toolbox.ui.Property;
|
||||||
|
|
||||||
import org.libreccm.configuration.ConfigurationManager;
|
import org.libreccm.configuration.ConfigurationManager;
|
||||||
|
import org.librecms.CmsConstants;
|
||||||
import org.librecms.contentsection.ContentSection;
|
import org.librecms.contentsection.ContentSection;
|
||||||
import org.librecms.contentsection.ContentSectionManager;
|
import org.librecms.contentsection.ContentSectionManager;
|
||||||
import org.librecms.contentsection.ContentSectionRepository;
|
import org.librecms.contentsection.ContentSectionRepository;
|
||||||
|
|
@ -30,9 +33,12 @@ import org.librecms.lifecycle.PhaseDefinition;
|
||||||
import org.librecms.lifecycle.PhaseDefinititionRepository;
|
import org.librecms.lifecycle.PhaseDefinititionRepository;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.enterprise.context.RequestScoped;
|
import javax.enterprise.context.RequestScoped;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
@ -72,7 +78,73 @@ class LifecycleAdminPaneController {
|
||||||
section.getObjectId())));
|
section.getObjectId())));
|
||||||
|
|
||||||
return new ArrayList<>(contentSection.getLifecycleDefinitions());
|
return new ArrayList<>(contentSection.getLifecycleDefinitions());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public List<Map<String, String>> listLifecyclesForContentSection(
|
||||||
|
final ContentSection section
|
||||||
|
) {
|
||||||
|
return getLifecyclesForContentSection(section)
|
||||||
|
.stream()
|
||||||
|
.map(this::buildLifecycleListItem)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, String> buildLifecycleListItem(
|
||||||
|
final LifecycleDefinition lifecycleDefinition) {
|
||||||
|
final Map<String, String> item = new HashMap<>();
|
||||||
|
item.put(
|
||||||
|
LifecycleListModelBuilder.LIFECYCLE_DEF_ID,
|
||||||
|
Long.toString(lifecycleDefinition.getDefinitionId())
|
||||||
|
);
|
||||||
|
item.put(
|
||||||
|
LifecycleListModelBuilder.LIFECYCLE_DEF_LABEL,
|
||||||
|
lifecycleDefinition
|
||||||
|
.getLabel()
|
||||||
|
.getValue(KernelConfig.getConfig().getDefaultLocale())
|
||||||
|
);
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public List<Property> getLifecycleProperties(
|
||||||
|
final LifecycleDefinition ofLifecycleDefinition
|
||||||
|
) {
|
||||||
|
final LifecycleDefinition definition = lifecycleDefRepo
|
||||||
|
.findById(ofLifecycleDefinition.getDefinitionId())
|
||||||
|
.orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No LifecycleDefinition with ID %d found.",
|
||||||
|
ofLifecycleDefinition.getDefinitionId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
final KernelConfig kernelConfig = confManager
|
||||||
|
.findConfiguration(KernelConfig.class);
|
||||||
|
final Locale defaultLocale = kernelConfig.getDefaultLocale();
|
||||||
|
|
||||||
|
final List<Property> properties = new ArrayList<>();
|
||||||
|
properties.add(
|
||||||
|
new Property(
|
||||||
|
new GlobalizedMessage(
|
||||||
|
"cms.ui.lifecycle.name",
|
||||||
|
CmsConstants.CMS_BUNDLE
|
||||||
|
),
|
||||||
|
definition.getLabel().getValue(defaultLocale)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
properties.add(
|
||||||
|
new Property(
|
||||||
|
new GlobalizedMessage(
|
||||||
|
"cms.ui.lifecycle.description",
|
||||||
|
CmsConstants.CMS_BUNDLE
|
||||||
|
),
|
||||||
|
definition.getDescription().getValue(defaultLocale)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return properties;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -178,7 +250,7 @@ class LifecycleAdminPaneController {
|
||||||
.orElseThrow(() -> new IllegalArgumentException(String.format(
|
.orElseThrow(() -> new IllegalArgumentException(String.format(
|
||||||
"No ContentSection with ID %d in the database. "
|
"No ContentSection with ID %d in the database. "
|
||||||
+ "Where did that ID come from?",
|
+ "Where did that ID come from?",
|
||||||
section.getObjectId())));
|
section.getObjectId())));
|
||||||
|
|
||||||
sectionManager.removeLifecycleDefinitionFromContentSection(
|
sectionManager.removeLifecycleDefinitionFromContentSection(
|
||||||
lifecycleDefinition,
|
lifecycleDefinition,
|
||||||
|
|
@ -290,7 +362,46 @@ class LifecycleAdminPaneController {
|
||||||
phaseDefinition.setDefaultDuration(duration);
|
phaseDefinition.setDefaultDuration(duration);
|
||||||
|
|
||||||
phaseDefRepo.save(phaseDefinition);
|
phaseDefRepo.save(phaseDefinition);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public String getLifecycleDefinitionName(
|
||||||
|
final LifecycleDefinition ofCycle
|
||||||
|
) {
|
||||||
|
final LifecycleDefinition cycle = lifecycleDefRepo.findById(
|
||||||
|
Objects.requireNonNull(ofCycle).getDefinitionId()
|
||||||
|
).orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No LifecycleDefinition with ID %d available",
|
||||||
|
ofCycle.getDefinitionId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
final KernelConfig kernelConfig = confManager.findConfiguration(
|
||||||
|
KernelConfig.class
|
||||||
|
);
|
||||||
|
return cycle.getLabel().getValue(kernelConfig.getDefaultLocale());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public String getLifecycleDefinitionDescription(
|
||||||
|
final LifecycleDefinition ofCycle
|
||||||
|
) {
|
||||||
|
final LifecycleDefinition cycle = lifecycleDefRepo.findById(
|
||||||
|
Objects.requireNonNull(ofCycle).getDefinitionId()
|
||||||
|
).orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No LifecycleDefinition with ID %d available",
|
||||||
|
ofCycle.getDefinitionId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
final KernelConfig kernelConfig = confManager.findConfiguration(
|
||||||
|
KernelConfig.class
|
||||||
|
);
|
||||||
|
return cycle.getDescription().getValue(kernelConfig.getDefaultLocale());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -59,8 +59,17 @@ class LifecycleEditForm extends BaseLifecycleForm {
|
||||||
final LifecycleDefinition cycle = selectedDefinition
|
final LifecycleDefinition cycle = selectedDefinition
|
||||||
.getLifecycleDefinition(state);
|
.getLifecycleDefinition(state);
|
||||||
|
|
||||||
getLifecycleName().setValue(state, cycle.getLabel());
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
getLifecycleDescription().setValue(state, cycle.getDescription());
|
final LifecycleAdminPaneController controller = cdiUtil.findBean(
|
||||||
|
LifecycleAdminPaneController.class
|
||||||
|
);
|
||||||
|
|
||||||
|
getLifecycleName().setValue(
|
||||||
|
state, controller.getLifecycleDefinitionName(cycle)
|
||||||
|
);
|
||||||
|
getLifecycleDescription().setValue(
|
||||||
|
state, controller.getLifecycleDefinitionDescription(cycle)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -61,9 +61,11 @@ import java.util.Locale;
|
||||||
class LifecycleItemPane extends BaseItemPane {
|
class LifecycleItemPane extends BaseItemPane {
|
||||||
|
|
||||||
private final LifecycleDefinitionRequestLocal selectedLifecycle;
|
private final LifecycleDefinitionRequestLocal selectedLifecycle;
|
||||||
|
|
||||||
private final PhaseRequestLocal selectedPhase;
|
private final PhaseRequestLocal selectedPhase;
|
||||||
|
|
||||||
private final Container detailPane;
|
private final Container detailPane;
|
||||||
|
|
||||||
private final Table phasesTable;
|
private final Table phasesTable;
|
||||||
|
|
||||||
public LifecycleItemPane(
|
public LifecycleItemPane(
|
||||||
|
|
@ -144,23 +146,27 @@ class LifecycleItemPane extends BaseItemPane {
|
||||||
final PageState state) {
|
final PageState state) {
|
||||||
|
|
||||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
final ConfigurationManager confManager = cdiUtil.findBean(
|
// final ConfigurationManager confManager = cdiUtil.findBean(
|
||||||
ConfigurationManager.class);
|
// ConfigurationManager.class);
|
||||||
final KernelConfig kernelConfig = confManager.findConfiguration(
|
// final KernelConfig kernelConfig = confManager.findConfiguration(
|
||||||
KernelConfig.class);
|
// KernelConfig.class);
|
||||||
final Locale defaultLocale = kernelConfig.getDefaultLocale();
|
// final Locale defaultLocale = kernelConfig.getDefaultLocale();
|
||||||
|
|
||||||
|
final LifecycleAdminPaneController controller = cdiUtil
|
||||||
|
.findBean(LifecycleAdminPaneController.class);
|
||||||
|
|
||||||
final java.util.List<Property> props = super.properties(state);
|
final java.util.List<Property> props = super.properties(state);
|
||||||
final LifecycleDefinition cycle = selectedLifecycle
|
final LifecycleDefinition cycle = selectedLifecycle
|
||||||
.getLifecycleDefinition(state);
|
.getLifecycleDefinition(state);
|
||||||
|
|
||||||
props.add(new Property(
|
props.addAll(controller.getLifecycleProperties(cycle));
|
||||||
gz("cms.ui.lifecycle.name"),
|
|
||||||
cycle.getLabel().getValue(defaultLocale)));
|
|
||||||
props.add(new Property(
|
|
||||||
gz("cms.ui.lifecycle.description"),
|
|
||||||
cycle.getDescription().getValue(defaultLocale)));
|
|
||||||
|
|
||||||
|
// props.add(new Property(
|
||||||
|
// gz("cms.ui.lifecycle.name"),
|
||||||
|
// cycle.getLabel().getValue(defaultLocale)));
|
||||||
|
// props.add(new Property(
|
||||||
|
// gz("cms.ui.lifecycle.description"),
|
||||||
|
// cycle.getDescription().getValue(defaultLocale)));
|
||||||
return props;
|
return props;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ import org.librecms.lifecycle.LifecycleDefinition;
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads all the current lifecycles from the database so that they may be
|
* Loads all the current lifecycles from the database so that they may be
|
||||||
|
|
@ -50,6 +51,10 @@ import java.util.Locale;
|
||||||
public final class LifecycleListModelBuilder extends LockableImpl
|
public final class LifecycleListModelBuilder extends LockableImpl
|
||||||
implements ListModelBuilder {
|
implements ListModelBuilder {
|
||||||
|
|
||||||
|
protected static final String LIFECYCLE_DEF_ID = "lifecycleDefId";
|
||||||
|
|
||||||
|
protected static final String LIFECYCLE_DEF_LABEL = "lifecycleDefLabel";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final ListModel makeModel(final com.arsdigita.bebop.List list,
|
public final ListModel makeModel(final com.arsdigita.bebop.List list,
|
||||||
final PageState state) {
|
final PageState state) {
|
||||||
|
|
@ -57,20 +62,20 @@ public final class LifecycleListModelBuilder extends LockableImpl
|
||||||
final LifecycleAdminPaneController controller = cdiUtil
|
final LifecycleAdminPaneController controller = cdiUtil
|
||||||
.findBean(LifecycleAdminPaneController.class);
|
.findBean(LifecycleAdminPaneController.class);
|
||||||
final ContentSection section = CMS.getContext().getContentSection();
|
final ContentSection section = CMS.getContext().getContentSection();
|
||||||
return new Model(controller.getLifecyclesForContentSection(section));
|
return new Model(controller.listLifecyclesForContentSection(section));
|
||||||
}
|
}
|
||||||
|
|
||||||
private class Model implements ListModel {
|
private class Model implements ListModel {
|
||||||
|
|
||||||
private final Iterator<LifecycleDefinition> iterator;
|
private final Iterator<Map<String, String>> iterator;
|
||||||
private LifecycleDefinition currentLifecycleDef;
|
|
||||||
private final Locale defaultLocale;
|
|
||||||
|
|
||||||
public Model(final List<LifecycleDefinition> lifecycles) {
|
private Map<String, String> currentLifecycleDef;
|
||||||
|
|
||||||
|
public Model(final List<Map<String, String>> lifecycles) {
|
||||||
iterator = lifecycles.iterator();
|
iterator = lifecycles.iterator();
|
||||||
defaultLocale = KernelConfig.getConfig().getDefaultLocale();
|
|
||||||
}
|
}
|
||||||
@Override
|
|
||||||
|
@Override
|
||||||
public boolean next() throws NoSuchElementException {
|
public boolean next() throws NoSuchElementException {
|
||||||
if (iterator.hasNext()) {
|
if (iterator.hasNext()) {
|
||||||
currentLifecycleDef = iterator.next();
|
currentLifecycleDef = iterator.next();
|
||||||
|
|
@ -82,12 +87,12 @@ public final class LifecycleListModelBuilder extends LockableImpl
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object getElement() {
|
public Object getElement() {
|
||||||
return currentLifecycleDef.getLabel().getValue(defaultLocale);
|
return currentLifecycleDef.get(LIFECYCLE_DEF_LABEL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getKey() {
|
public String getKey() {
|
||||||
return Long.toString(currentLifecycleDef.getDefinitionId());
|
return currentLifecycleDef.get(LIFECYCLE_DEF_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,54 @@
|
||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package com.arsdigita.cms.ui.pages;
|
||||||
|
|
||||||
|
import org.libreccm.l10n.GlobalizationHelper;
|
||||||
|
import org.libreccm.pagemodel.PageModel;
|
||||||
|
import org.libreccm.pagemodel.PageModelRepository;
|
||||||
|
import org.librecms.pages.Pages;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import javax.enterprise.context.RequestScoped;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.transaction.Transactional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
@RequestScoped
|
||||||
|
class PageModelAdminPageController {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private GlobalizationHelper globalizationHelper;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private PageModelRepository pageModelRepository;
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
protected List<PageModelData> findDraftPageModelsByApplication(
|
||||||
|
final Pages pages
|
||||||
|
) {
|
||||||
|
final List<PageModel> pageModels = pageModelRepository
|
||||||
|
.findDraftByApplication(pages);
|
||||||
|
return pageModels.stream().map(this::buildPageModelData).collect(
|
||||||
|
Collectors.toList()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
private PageModelData buildPageModelData(final PageModel fromPageModel) {
|
||||||
|
final PageModelData result = new PageModelData();
|
||||||
|
result.setPageModelId(fromPageModel.getPageModelId());
|
||||||
|
result.setTitle(globalizationHelper.getValueFromLocalizedString(
|
||||||
|
fromPageModel.getTitle()));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package com.arsdigita.cms.ui.pages;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
class PageModelData {
|
||||||
|
|
||||||
|
private long pageModelId;
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
public long getPageModelId() {
|
||||||
|
return pageModelId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPageModelId(long pageModelId) {
|
||||||
|
this.pageModelId = pageModelId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTitle(String title) {
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -50,7 +50,6 @@ import org.libreccm.categorization.Category;
|
||||||
import org.libreccm.categorization.CategoryRepository;
|
import org.libreccm.categorization.CategoryRepository;
|
||||||
import org.libreccm.cdi.utils.CdiUtil;
|
import org.libreccm.cdi.utils.CdiUtil;
|
||||||
import org.libreccm.core.UnexpectedErrorException;
|
import org.libreccm.core.UnexpectedErrorException;
|
||||||
import org.libreccm.l10n.GlobalizationHelper;
|
|
||||||
import org.libreccm.pagemodel.PageModel;
|
import org.libreccm.pagemodel.PageModel;
|
||||||
import org.libreccm.pagemodel.PageModelRepository;
|
import org.libreccm.pagemodel.PageModelRepository;
|
||||||
import org.librecms.CmsConstants;
|
import org.librecms.CmsConstants;
|
||||||
|
|
@ -62,6 +61,7 @@ import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.TooManyListenersException;
|
import java.util.TooManyListenersException;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
|
@ -69,19 +69,27 @@ import java.util.TooManyListenersException;
|
||||||
public class PagesAdminPage extends CMSApplicationPage {
|
public class PagesAdminPage extends CMSApplicationPage {
|
||||||
|
|
||||||
private static final String INDEX_PAGE_MODEL_SELECT = "indexPageModelSelect";
|
private static final String INDEX_PAGE_MODEL_SELECT = "indexPageModelSelect";
|
||||||
|
|
||||||
private static final String ITEM_PAGE_MODEL_SELECT = "itemPageModelSelect";
|
private static final String ITEM_PAGE_MODEL_SELECT = "itemPageModelSelect";
|
||||||
|
|
||||||
private static final String INHERIT_PAGEMODEL = "--inherit--";
|
private static final String INHERIT_PAGEMODEL = "--inherit--";
|
||||||
|
|
||||||
private final ParameterSingleSelectionModel<String> selectedCategory;
|
private final ParameterSingleSelectionModel<String> selectedCategory;
|
||||||
|
|
||||||
private final Tree categoryTree;
|
private final Tree categoryTree;
|
||||||
|
|
||||||
private final Label nothingSelectedLabel;
|
private final Label nothingSelectedLabel;
|
||||||
|
|
||||||
private final Form pageModelForm;
|
private final Form pageModelForm;
|
||||||
|
|
||||||
private final SingleSelect indexPageModelSelect;
|
private final SingleSelect indexPageModelSelect;
|
||||||
|
|
||||||
private final SingleSelect itemPageModelSelect;
|
private final SingleSelect itemPageModelSelect;
|
||||||
|
|
||||||
private final SaveCancelSection saveCancelSection;
|
private final SaveCancelSection saveCancelSection;
|
||||||
|
|
||||||
private Pages pagesInstance;
|
private Pages pagesInstance;
|
||||||
|
|
||||||
private PagesContextBar pagesContextBar;
|
private PagesContextBar pagesContextBar;
|
||||||
|
|
||||||
public PagesAdminPage() {
|
public PagesAdminPage() {
|
||||||
|
|
@ -163,7 +171,7 @@ public class PagesAdminPage extends CMSApplicationPage {
|
||||||
|
|
||||||
pagesContextBar = new PagesContextBar();
|
pagesContextBar = new PagesContextBar();
|
||||||
super.add(pagesContextBar);
|
super.add(pagesContextBar);
|
||||||
|
|
||||||
final TabbedPane tabbedPane = new TabbedPane();
|
final TabbedPane tabbedPane = new TabbedPane();
|
||||||
tabbedPane.addTab(new Label(new GlobalizedMessage(
|
tabbedPane.addTab(new Label(new GlobalizedMessage(
|
||||||
"cms.ui.pages.tab.pages", CmsConstants.CMS_BUNDLE)),
|
"cms.ui.pages.tab.pages", CmsConstants.CMS_BUNDLE)),
|
||||||
|
|
@ -261,22 +269,38 @@ public class PagesAdminPage extends CMSApplicationPage {
|
||||||
"cms.ui.pages.assigned_page_model.inherit",
|
"cms.ui.pages.assigned_page_model.inherit",
|
||||||
CmsConstants.CMS_BUNDLE))));
|
CmsConstants.CMS_BUNDLE))));
|
||||||
|
|
||||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
// final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
final PageModelRepository pageModelRepo = cdiUtil
|
// final PageModelRepository pageModelRepo = cdiUtil.findBean(
|
||||||
.findBean(PageModelRepository.class);
|
// PageModelRepository.class
|
||||||
final List<PageModel> pageModels = pageModelRepo
|
// );
|
||||||
.findDraftByApplication(pagesInstance);
|
// final List<PageModel> pageModels = pageModelRepo
|
||||||
final GlobalizationHelper globalizationHelper = cdiUtil
|
// .findDraftByApplication(pagesInstance);
|
||||||
.findBean(GlobalizationHelper.class);
|
// final GlobalizationHelper globalizationHelper = cdiUtil
|
||||||
|
// .findBean(GlobalizationHelper.class);
|
||||||
for (final PageModel pageModel : pageModels) {
|
// for (final PageModel pageModel : pageModels) {
|
||||||
target.addOption(new Option(
|
// target.addOption(
|
||||||
Long.toString(pageModel.getPageModelId()),
|
// new Option(
|
||||||
new Text(globalizationHelper.getValueFromLocalizedString(
|
// Long.toString(pageModel.getPageModelId()),
|
||||||
pageModel
|
// new Text(
|
||||||
.getTitle()))));
|
// globalizationHelper.getValueFromLocalizedString(
|
||||||
|
// pageModel.getTitle()
|
||||||
|
// )
|
||||||
|
// )
|
||||||
|
// )
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
final PageModelAdminPageController controller = CdiUtil.createCdiUtil()
|
||||||
|
.findBean(PageModelAdminPageController.class);
|
||||||
|
final List<PageModelData> pageModels = controller
|
||||||
|
.findDraftPageModelsByApplication(pagesInstance);
|
||||||
|
for (final PageModelData pageModel : pageModels) {
|
||||||
|
target.addOption(
|
||||||
|
new Option(
|
||||||
|
Long.toString(pageModel.getPageModelId()),
|
||||||
|
new Text(pageModel.getTitle())
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void categoryTreeStateChanged(final ChangeEvent event) {
|
private void categoryTreeStateChanged(final ChangeEvent event) {
|
||||||
|
|
|
||||||
|
|
@ -35,16 +35,12 @@ import com.arsdigita.cms.ui.BaseItemPane;
|
||||||
import com.arsdigita.cms.ui.PartySearchForm;
|
import com.arsdigita.cms.ui.PartySearchForm;
|
||||||
import com.arsdigita.cms.ui.VisibilityComponent;
|
import com.arsdigita.cms.ui.VisibilityComponent;
|
||||||
import com.arsdigita.globalization.GlobalizedMessage;
|
import com.arsdigita.globalization.GlobalizedMessage;
|
||||||
import com.arsdigita.kernel.KernelConfig;
|
|
||||||
import com.arsdigita.toolbox.ui.ActionGroup;
|
import com.arsdigita.toolbox.ui.ActionGroup;
|
||||||
import com.arsdigita.toolbox.ui.Property;
|
import com.arsdigita.toolbox.ui.Property;
|
||||||
import com.arsdigita.toolbox.ui.PropertyList;
|
import com.arsdigita.toolbox.ui.PropertyList;
|
||||||
import com.arsdigita.toolbox.ui.Section;
|
import com.arsdigita.toolbox.ui.Section;
|
||||||
|
|
||||||
import org.apache.logging.log4j.LogManager;
|
|
||||||
import org.apache.logging.log4j.Logger;
|
|
||||||
import org.libreccm.cdi.utils.CdiUtil;
|
import org.libreccm.cdi.utils.CdiUtil;
|
||||||
import org.libreccm.configuration.ConfigurationManager;
|
|
||||||
import org.libreccm.security.Party;
|
import org.libreccm.security.Party;
|
||||||
import org.libreccm.security.PartyRepository;
|
import org.libreccm.security.PartyRepository;
|
||||||
import org.libreccm.security.PermissionChecker;
|
import org.libreccm.security.PermissionChecker;
|
||||||
|
|
@ -129,40 +125,53 @@ class BaseRoleItemPane extends BaseItemPane {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected final java.util.List<Property> properties(
|
protected final java.util.List<Property> properties(
|
||||||
final PageState state) {
|
final PageState state
|
||||||
|
) {
|
||||||
|
|
||||||
final java.util.List<Property> properties = super.properties(
|
final java.util.List<Property> properties = super.properties(
|
||||||
state);
|
state
|
||||||
|
);
|
||||||
|
|
||||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
final ConfigurationManager manager = cdiUtil.findBean(
|
final RoleAdminPaneController controller = cdiUtil
|
||||||
ConfigurationManager.class);
|
.findBean(RoleAdminPaneController.class);
|
||||||
final KernelConfig config = manager.findConfiguration(
|
|
||||||
KernelConfig.class);
|
|
||||||
|
|
||||||
final Role role = roleRequestLocal.getRole(state);
|
final Role role = roleRequestLocal.getRole(state);
|
||||||
|
|
||||||
properties.add(new Property(lz("cms.ui.role.name"),
|
properties.add(
|
||||||
role.getName()));
|
new Property(lz("cms.ui.role.name"), role.getName())
|
||||||
// Right now just loads the default locale description.
|
);
|
||||||
properties.add(new Property(
|
|
||||||
lz("cms.ui.role.description"),
|
|
||||||
role.getDescription().getValue(config.getDefaultLocale())));
|
|
||||||
|
|
||||||
// Since Permissions don't seem to have a "pretty" form, the granted privilege is used.
|
// Right now just loads the default locale description.
|
||||||
final RoleAdminPaneController controller = cdiUtil.findBean(
|
properties.add(
|
||||||
RoleAdminPaneController.class);
|
new Property(
|
||||||
|
lz("cms.ui.role.description"),
|
||||||
|
controller.getRoleDescription(role)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
// Since Permissions don't seem to have a "pretty" form, the
|
||||||
|
// granted privilege is used.
|
||||||
final String permissions = controller
|
final String permissions = controller
|
||||||
.generateGrantedPermissionsString(
|
.generateGrantedPermissionsString(
|
||||||
role,
|
role,
|
||||||
CMS.getContext().getContentSection());
|
CMS.getContext().getContentSection()
|
||||||
|
);
|
||||||
|
|
||||||
if (permissions.length() > 0) {
|
if (permissions.length() > 0) {
|
||||||
properties.add(new Property(lz("cms.ui.role.privileges"),
|
properties.add(
|
||||||
permissions));
|
new Property(
|
||||||
|
lz("cms.ui.role.privileges"),
|
||||||
|
permissions
|
||||||
|
)
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
properties.add(new Property(lz("cms.ui.role.privileges"),
|
properties.add(
|
||||||
lz("cms.ui.role.privilege.none")));
|
new Property(
|
||||||
|
lz("cms.ui.role.privileges"),
|
||||||
|
lz("cms.ui.role.privilege.none")
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return properties;
|
return properties;
|
||||||
|
|
@ -192,7 +201,9 @@ class BaseRoleItemPane extends BaseItemPane {
|
||||||
private class MemberTable extends Table {
|
private class MemberTable extends Table {
|
||||||
|
|
||||||
private static final int COL_NAME = 0;
|
private static final int COL_NAME = 0;
|
||||||
|
|
||||||
private static final int COL_EMAIL = 1;
|
private static final int COL_EMAIL = 1;
|
||||||
|
|
||||||
private static final int COL_REMOVE = 2;
|
private static final int COL_REMOVE = 2;
|
||||||
|
|
||||||
MemberTable() {
|
MemberTable() {
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ class RoleAdminPaneController {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private RoleManager roleManager;
|
private RoleManager roleManager;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private RoleRepository roleRepo;
|
private RoleRepository roleRepo;
|
||||||
|
|
||||||
|
|
@ -88,6 +88,22 @@ class RoleAdminPaneController {
|
||||||
return new ArrayList<>(contentSection.getRoles());
|
return new ArrayList<>(contentSection.getRoles());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public String getRoleDescription(final Role ofRole) {
|
||||||
|
final Role role = roleRepo
|
||||||
|
.findById(ofRole.getRoleId())
|
||||||
|
.orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No role with ID %d found.", ofRole.getRoleId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
final KernelConfig config = confManager
|
||||||
|
.findConfiguration(KernelConfig.class);
|
||||||
|
return role.getDescription().getValue(config.getDefaultLocale());
|
||||||
|
}
|
||||||
|
|
||||||
public String[] getGrantedPrivileges(final Role role,
|
public String[] getGrantedPrivileges(final Role role,
|
||||||
final ContentSection section) {
|
final ContentSection section) {
|
||||||
final List<Permission> sectionPermissions = permissionManager
|
final List<Permission> sectionPermissions = permissionManager
|
||||||
|
|
@ -217,10 +233,10 @@ class RoleAdminPaneController {
|
||||||
KernelConfig.class);
|
KernelConfig.class);
|
||||||
final Locale defaultLocale = kernelConfig.getDefaultLocale();
|
final Locale defaultLocale = kernelConfig.getDefaultLocale();
|
||||||
|
|
||||||
role.setName(roleName);
|
roleToSave.setName(roleName);
|
||||||
role.getDescription().addValue(defaultLocale, roleDescription);
|
roleToSave.getDescription().addValue(defaultLocale, roleDescription);
|
||||||
|
|
||||||
roleRepo.save(role);
|
roleRepo.save(roleToSave);
|
||||||
|
|
||||||
final ContentSection contentSection = sectionRepo.findById(
|
final ContentSection contentSection = sectionRepo.findById(
|
||||||
CMS.getContext().getContentSection().getObjectId())
|
CMS.getContext().getContentSection().getObjectId())
|
||||||
|
|
@ -241,28 +257,28 @@ class RoleAdminPaneController {
|
||||||
final Folder rootAssetsFolder = contentSection.getRootAssetsFolder();
|
final Folder rootAssetsFolder = contentSection.getRootAssetsFolder();
|
||||||
|
|
||||||
final List<Permission> currentPermissionsSection = permissionManager
|
final List<Permission> currentPermissionsSection = permissionManager
|
||||||
.findPermissionsForRoleAndObject(role, contentSection);
|
.findPermissionsForRoleAndObject(roleToSave, contentSection);
|
||||||
final List<Permission> currentPermissionsDocuments = permissionManager
|
final List<Permission> currentPermissionsDocuments = permissionManager
|
||||||
.findPermissionsForRoleAndObject(role, rootDocumentsFolder);
|
.findPermissionsForRoleAndObject(roleToSave, rootDocumentsFolder);
|
||||||
final List<Permission> currentPermissionsAssets = permissionManager
|
final List<Permission> currentPermissionsAssets = permissionManager
|
||||||
.findPermissionsForRoleAndObject(role, rootAssetsFolder);
|
.findPermissionsForRoleAndObject(roleToSave, rootAssetsFolder);
|
||||||
|
|
||||||
//Revoke permissions not in selectedPermissions
|
//Revoke permissions not in selectedPermissions
|
||||||
revokeNotSelectedPrivileges(selectedPermissions,
|
revokeNotSelectedPrivileges(selectedPermissions,
|
||||||
role,
|
roleToSave,
|
||||||
currentPermissionsSection);
|
currentPermissionsSection);
|
||||||
revokeNotSelectedPrivileges(selectedPermissions,
|
revokeNotSelectedPrivileges(selectedPermissions,
|
||||||
role,
|
roleToSave,
|
||||||
currentPermissionsDocuments);
|
currentPermissionsDocuments);
|
||||||
revokeNotSelectedPrivileges(selectedPermissions,
|
revokeNotSelectedPrivileges(selectedPermissions,
|
||||||
role,
|
roleToSave,
|
||||||
currentPermissionsAssets);
|
currentPermissionsAssets);
|
||||||
|
|
||||||
// Grant selected privileges
|
// Grant selected privileges
|
||||||
for (final String privilege : adminPrivileges) {
|
for (final String privilege : adminPrivileges) {
|
||||||
if (isPrivilegeSelected(selectedPermissions, privilege)) {
|
if (isPrivilegeSelected(selectedPermissions, privilege)) {
|
||||||
permissionManager.grantPrivilege(privilege,
|
permissionManager.grantPrivilege(privilege,
|
||||||
role,
|
roleToSave,
|
||||||
contentSection);
|
contentSection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -270,7 +286,7 @@ class RoleAdminPaneController {
|
||||||
for (final String privilege : itemPrivileges) {
|
for (final String privilege : itemPrivileges) {
|
||||||
if (isPrivilegeSelected(selectedPermissions, privilege)) {
|
if (isPrivilegeSelected(selectedPermissions, privilege)) {
|
||||||
permissionManager.grantPrivilege(privilege,
|
permissionManager.grantPrivilege(privilege,
|
||||||
role,
|
roleToSave,
|
||||||
rootDocumentsFolder);
|
rootDocumentsFolder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -278,7 +294,7 @@ class RoleAdminPaneController {
|
||||||
for (final String privilege : assetPrivileges) {
|
for (final String privilege : assetPrivileges) {
|
||||||
if (isPrivilegeSelected(selectedPermissions, privilege)) {
|
if (isPrivilegeSelected(selectedPermissions, privilege)) {
|
||||||
permissionManager.grantPrivilege(privilege,
|
permissionManager.grantPrivilege(privilege,
|
||||||
role,
|
roleToSave,
|
||||||
rootAssetsFolder);
|
rootAssetsFolder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,20 +24,10 @@ import com.arsdigita.bebop.event.FormInitListener;
|
||||||
import com.arsdigita.bebop.event.FormProcessListener;
|
import com.arsdigita.bebop.event.FormProcessListener;
|
||||||
import com.arsdigita.bebop.event.FormSectionEvent;
|
import com.arsdigita.bebop.event.FormSectionEvent;
|
||||||
import com.arsdigita.cms.CMS;
|
import com.arsdigita.cms.CMS;
|
||||||
import com.arsdigita.kernel.KernelConfig;
|
|
||||||
|
|
||||||
import org.libreccm.cdi.utils.CdiUtil;
|
import org.libreccm.cdi.utils.CdiUtil;
|
||||||
import org.libreccm.configuration.ConfigurationManager;
|
|
||||||
import org.libreccm.l10n.LocalizedString;
|
|
||||||
import org.libreccm.security.Permission;
|
|
||||||
import org.libreccm.security.PermissionManager;
|
import org.libreccm.security.PermissionManager;
|
||||||
import org.libreccm.security.Role;
|
import org.libreccm.security.Role;
|
||||||
import org.libreccm.security.RoleRepository;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Locale;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a {@link com.arsdigita.bebop.Form Form} to edit
|
* Represents a {@link com.arsdigita.bebop.Form Form} to edit
|
||||||
|
|
@ -76,17 +66,15 @@ final class RoleEditForm extends BaseRoleForm {
|
||||||
final PageState state = event.getPageState();
|
final PageState state = event.getPageState();
|
||||||
final Role role = roleRequestLocal.getRole(state);
|
final Role role = roleRequestLocal.getRole(state);
|
||||||
|
|
||||||
final KernelConfig kernelConfig = KernelConfig.getConfig();
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
final Locale defaultLocale = kernelConfig.getDefaultLocale();
|
final RoleAdminPaneController controller = cdiUtil.findBean(
|
||||||
|
RoleAdminPaneController.class);
|
||||||
|
|
||||||
getRoleName().setValue(state, role.getName());
|
getRoleName().setValue(state, role.getName());
|
||||||
getRoleDescription().setValue(
|
getRoleDescription().setValue(
|
||||||
state,
|
state,
|
||||||
role.getDescription().getValue(defaultLocale));
|
controller.getRoleDescription(role)
|
||||||
|
);
|
||||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
|
||||||
final RoleAdminPaneController controller = cdiUtil.findBean(
|
|
||||||
RoleAdminPaneController.class);
|
|
||||||
|
|
||||||
final String[] permissions = controller.getGrantedPrivileges(
|
final String[] permissions = controller.getGrantedPrivileges(
|
||||||
role, CMS.getContext().getContentSection());
|
role, CMS.getContext().getContentSection());
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,10 @@ package com.arsdigita.cms.ui.type;
|
||||||
|
|
||||||
import org.libreccm.workflow.Workflow;
|
import org.libreccm.workflow.Workflow;
|
||||||
import org.librecms.contentsection.ContentSection;
|
import org.librecms.contentsection.ContentSection;
|
||||||
|
import org.librecms.contentsection.ContentSectionManager;
|
||||||
import org.librecms.contentsection.ContentSectionRepository;
|
import org.librecms.contentsection.ContentSectionRepository;
|
||||||
import org.librecms.contentsection.ContentType;
|
import org.librecms.contentsection.ContentType;
|
||||||
|
import org.librecms.contentsection.ContentTypeManager;
|
||||||
import org.librecms.contentsection.ContentTypeRepository;
|
import org.librecms.contentsection.ContentTypeRepository;
|
||||||
import org.librecms.contenttypes.ContentTypeInfo;
|
import org.librecms.contenttypes.ContentTypeInfo;
|
||||||
import org.librecms.contenttypes.ContentTypesManager;
|
import org.librecms.contenttypes.ContentTypesManager;
|
||||||
|
|
@ -39,11 +41,6 @@ import java.util.stream.Collectors;
|
||||||
import javax.enterprise.context.RequestScoped;
|
import javax.enterprise.context.RequestScoped;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
import javax.persistence.TypedQuery;
|
|
||||||
import javax.persistence.criteria.CriteriaBuilder;
|
|
||||||
import javax.persistence.criteria.CriteriaQuery;
|
|
||||||
import javax.persistence.criteria.JoinType;
|
|
||||||
import javax.persistence.criteria.Root;
|
|
||||||
import javax.transaction.Transactional;
|
import javax.transaction.Transactional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -63,9 +60,15 @@ class ContentTypeAdminPaneController {
|
||||||
@Inject
|
@Inject
|
||||||
private ContentSectionRepository sectionRepo;
|
private ContentSectionRepository sectionRepo;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private ContentSectionManager sectionManager;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ContentTypeRepository typeRepo;
|
private ContentTypeRepository typeRepo;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private ContentTypeManager typeManager;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ContentTypesManager typesManager;
|
private ContentTypesManager typesManager;
|
||||||
|
|
||||||
|
|
@ -78,6 +81,27 @@ class ContentTypeAdminPaneController {
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
protected List<String> getContentItemClassesList(
|
||||||
|
final ContentSection ofSection
|
||||||
|
) {
|
||||||
|
final ContentSection section = sectionRepo.findById(
|
||||||
|
ofSection.getObjectId()
|
||||||
|
)
|
||||||
|
.orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No ContentSection with ID %d found.",
|
||||||
|
ofSection.getObjectId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return section.getContentTypes()
|
||||||
|
.stream()
|
||||||
|
.map(type -> type.getContentItemClass())
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
private String[] generateListEntry(final ContentType type) {
|
private String[] generateListEntry(final ContentType type) {
|
||||||
final String[] entry = new String[2];
|
final String[] entry = new String[2];
|
||||||
|
|
||||||
|
|
@ -126,8 +150,9 @@ class ContentTypeAdminPaneController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
protected Optional<String> getLifecycleDefinitionLabel(final ContentType type,
|
protected Optional<String> getLifecycleDefinitionLabel(
|
||||||
final Locale locale) {
|
final ContentType type,
|
||||||
|
final Locale locale) {
|
||||||
|
|
||||||
final LifecycleDefinition lifecycleDefinition = getLifecycleDefinition(
|
final LifecycleDefinition lifecycleDefinition = getLifecycleDefinition(
|
||||||
type);
|
type);
|
||||||
|
|
@ -154,7 +179,7 @@ class ContentTypeAdminPaneController {
|
||||||
|
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
protected Optional<String> getWorkflowTemplateName(final ContentType type,
|
protected Optional<String> getWorkflowTemplateName(final ContentType type,
|
||||||
final Locale locale) {
|
final Locale locale) {
|
||||||
|
|
||||||
final Workflow workflowTemplate = getWorkflowTemplate(type);
|
final Workflow workflowTemplate = getWorkflowTemplate(type);
|
||||||
|
|
||||||
|
|
@ -193,4 +218,30 @@ class ContentTypeAdminPaneController {
|
||||||
return new ArrayList<>(contentSection.getWorkflowTemplates());
|
return new ArrayList<>(contentSection.getWorkflowTemplates());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
protected void addContentTypeToContentSection(
|
||||||
|
final String type, final ContentSection toSection
|
||||||
|
) {
|
||||||
|
Objects.requireNonNull(type);
|
||||||
|
Objects.requireNonNull(toSection);
|
||||||
|
|
||||||
|
final ContentSection section = sectionRepo
|
||||||
|
.findById(toSection.getObjectId())
|
||||||
|
.orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No ContentSection identified by ID %d found.",
|
||||||
|
toSection.getObjectId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
sectionManager.addContentTypeToSection(
|
||||||
|
typeManager.classNameToClass(type),
|
||||||
|
section,
|
||||||
|
section.getLifecycleDefinitions().get(0),
|
||||||
|
section.getWorkflowTemplates().get(0)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -101,6 +101,7 @@ public class SelectType extends CMSForm implements PrintListener,
|
||||||
/**
|
/**
|
||||||
* Generate a checkbox list of all content type not associated with the
|
* Generate a checkbox list of all content type not associated with the
|
||||||
* current content section
|
* current content section
|
||||||
|
* @param event
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void prepare(final PrintEvent event) {
|
public void prepare(final PrintEvent event) {
|
||||||
|
|
@ -111,18 +112,22 @@ public class SelectType extends CMSForm implements PrintListener,
|
||||||
final ContentSection section = CMS.getContext().getContentSection();
|
final ContentSection section = CMS.getContext().getContentSection();
|
||||||
|
|
||||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
|
final ContentTypeAdminPaneController controller = cdiUtil
|
||||||
|
.findBean(ContentTypeAdminPaneController.class);
|
||||||
final ContentTypesManager typesManager = cdiUtil.findBean(
|
final ContentTypesManager typesManager = cdiUtil.findBean(
|
||||||
ContentTypesManager.class);
|
ContentTypesManager.class);
|
||||||
|
|
||||||
final List<ContentTypeInfo> availableTypes = typesManager
|
final List<ContentTypeInfo> availableTypes = typesManager
|
||||||
.getAvailableContentTypes();
|
.getAvailableContentTypes();
|
||||||
final List<String> assignedTypes = section.getContentTypes()
|
final List<String> assignedTypes = controller
|
||||||
.stream()
|
.getContentItemClassesList(section);
|
||||||
.map(contentType -> contentType.getContentItemClass())
|
// = section.getContentTypes()
|
||||||
.collect(Collectors.toList());
|
// .stream()
|
||||||
|
// .map(contentType -> contentType.getContentItemClass())
|
||||||
|
// .collect(Collectors.toList());
|
||||||
|
|
||||||
final List<ContentTypeInfo> notAssignedTypes = availableTypes.stream()
|
final List<ContentTypeInfo> notAssignedTypes = availableTypes.stream()
|
||||||
.filter(type -> assignedTypes.contains(type.getContentItemClass()
|
.filter(type -> !assignedTypes.contains(type.getContentItemClass()
|
||||||
.getName()))
|
.getName()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
|
@ -184,18 +189,21 @@ public class SelectType extends CMSForm implements PrintListener,
|
||||||
final String[] types = (String[]) data.get(TYPES);
|
final String[] types = (String[]) data.get(TYPES);
|
||||||
|
|
||||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
final ContentTypeManager typeManager = cdiUtil.findBean(
|
// final ContentTypeManager typeManager = cdiUtil.findBean(
|
||||||
ContentTypeManager.class);
|
// ContentTypeManager.class);
|
||||||
final ContentSectionManager sectionManager = cdiUtil.findBean(
|
// final ContentSectionManager sectionManager = cdiUtil.findBean(
|
||||||
ContentSectionManager.class);
|
// ContentSectionManager.class);
|
||||||
|
final ContentTypeAdminPaneController controller = cdiUtil
|
||||||
|
.findBean(ContentTypeAdminPaneController.class);
|
||||||
|
|
||||||
if (types != null) {
|
if (types != null) {
|
||||||
for (String type : types) {
|
for (String type : types) {
|
||||||
sectionManager.addContentTypeToSection(
|
// sectionManager.addContentTypeToSection(
|
||||||
typeManager.classNameToClass(type),
|
// typeManager.classNameToClass(type),
|
||||||
section,
|
// section,
|
||||||
section.getLifecycleDefinitions().get(0),
|
// section.getLifecycleDefinitions().get(0),
|
||||||
section.getWorkflowTemplates().get(0));
|
// section.getWorkflowTemplates().get(0));
|
||||||
|
controller.addContentTypeToContentSection(type, section);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -255,22 +255,28 @@ abstract class BaseWorkflowItemPane extends BaseItemPane {
|
||||||
= ((Optional<Workflow>) workflowRequestLocal
|
= ((Optional<Workflow>) workflowRequestLocal
|
||||||
.get(state)).get();
|
.get(state)).get();
|
||||||
|
|
||||||
final KernelConfig kernelConfig = KernelConfig.getConfig();
|
// final KernelConfig kernelConfig = KernelConfig.getConfig();
|
||||||
final Locale defaultLocale = kernelConfig.getDefaultLocale();
|
// final Locale defaultLocale = kernelConfig.getDefaultLocale();
|
||||||
|
|
||||||
props.add(new Property(gz("cms.ui.workflow.name"),
|
final WorkflowAdminPaneController controller = CdiUtil
|
||||||
workflow.getName()
|
.createCdiUtil()
|
||||||
.getValue(defaultLocale)));
|
.findBean(WorkflowAdminPaneController.class);
|
||||||
props.add(new Property(
|
|
||||||
gz("cms.ui.workflow.description"),
|
props.addAll(controller.getWorkflowProperties(workflow));
|
||||||
workflow.getDescription().getValue(defaultLocale)));
|
// props.add(new Property(gz("cms.ui.workflow.name"),
|
||||||
if (workflow.getState() == null) {
|
// workflow.getName()
|
||||||
props.add(new Property(gz("cms.ui.workflow.current_state"),
|
// .getValue(defaultLocale)));
|
||||||
gz("cms.ui.workflow.current_state.none")));
|
// props.add(new Property(
|
||||||
} else {
|
// gz("cms.ui.workflow.description"),
|
||||||
props.add(new Property(gz("cms.ui.workflow.current_state"),
|
// workflow.getDescription().getValue(defaultLocale)));
|
||||||
workflow.getState().toString()));
|
// if (workflow.getState() == null) {
|
||||||
}
|
// props.add(new Property(gz("cms.ui.workflow.current_state"),
|
||||||
|
// gz("cms.ui.workflow.current_state.none")));
|
||||||
|
// } else {
|
||||||
|
// props.add(new Property(gz("cms.ui.workflow.current_state"),
|
||||||
|
// workflow.getState().toString()));
|
||||||
|
// }
|
||||||
|
|
||||||
return props;
|
return props;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,9 @@
|
||||||
*/
|
*/
|
||||||
package com.arsdigita.cms.ui.workflow;
|
package com.arsdigita.cms.ui.workflow;
|
||||||
|
|
||||||
|
import com.arsdigita.globalization.GlobalizedMessage;
|
||||||
import com.arsdigita.kernel.KernelConfig;
|
import com.arsdigita.kernel.KernelConfig;
|
||||||
|
import com.arsdigita.toolbox.ui.Property;
|
||||||
import com.arsdigita.util.GraphSet;
|
import com.arsdigita.util.GraphSet;
|
||||||
import com.arsdigita.util.Graphs;
|
import com.arsdigita.util.Graphs;
|
||||||
import com.arsdigita.util.UncheckedWrapperException;
|
import com.arsdigita.util.UncheckedWrapperException;
|
||||||
|
|
@ -36,6 +38,7 @@ import org.libreccm.workflow.TaskManager;
|
||||||
import org.libreccm.workflow.TaskRepository;
|
import org.libreccm.workflow.TaskRepository;
|
||||||
import org.libreccm.workflow.Workflow;
|
import org.libreccm.workflow.Workflow;
|
||||||
import org.libreccm.workflow.WorkflowRepository;
|
import org.libreccm.workflow.WorkflowRepository;
|
||||||
|
import org.librecms.CmsConstants;
|
||||||
import org.librecms.contentsection.ContentSection;
|
import org.librecms.contentsection.ContentSection;
|
||||||
import org.librecms.contentsection.ContentSectionManager;
|
import org.librecms.contentsection.ContentSectionManager;
|
||||||
import org.librecms.contentsection.ContentSectionRepository;
|
import org.librecms.contentsection.ContentSectionRepository;
|
||||||
|
|
@ -102,6 +105,97 @@ public class WorkflowAdminPaneController {
|
||||||
return new ArrayList<>(contentSection.getWorkflowTemplates());
|
return new ArrayList<>(contentSection.getWorkflowTemplates());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public List<Map<String, String>> listWorkflowTemplates(
|
||||||
|
final ContentSection section
|
||||||
|
) {
|
||||||
|
final List<Workflow> templates = retrieveWorkflows(section);
|
||||||
|
return templates
|
||||||
|
.stream()
|
||||||
|
.map(this::buildWorkflowTemplateListItem)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<String, String> buildWorkflowTemplateListItem(
|
||||||
|
final Workflow workflow
|
||||||
|
) {
|
||||||
|
final Map<String, String> item = new HashMap<>();
|
||||||
|
item.put(
|
||||||
|
WorkflowListModelBuilder.WORKFLOW_TEMPLATE_ID,
|
||||||
|
Long.toString(workflow.getWorkflowId())
|
||||||
|
);
|
||||||
|
item.put(
|
||||||
|
WorkflowListModelBuilder.WORKFLOW_TEMPLATE_NAME,
|
||||||
|
workflow
|
||||||
|
.getName()
|
||||||
|
.getValue(KernelConfig.getConfig().getDefaultLocale()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public List<Property> getWorkflowProperties(final Workflow ofWorkflow) {
|
||||||
|
final Workflow workflow = workflowRepo
|
||||||
|
.findById(ofWorkflow.getWorkflowId())
|
||||||
|
.orElseThrow(
|
||||||
|
() -> new IllegalArgumentException(
|
||||||
|
String.format(
|
||||||
|
"No Workflow with ID %d available.",
|
||||||
|
ofWorkflow.getWorkflowId()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
final KernelConfig kernelConfig = confManager
|
||||||
|
.findConfiguration(KernelConfig.class);
|
||||||
|
final Locale defaultLocale = kernelConfig.getDefaultLocale();
|
||||||
|
|
||||||
|
final List<Property> properties = new ArrayList<>();
|
||||||
|
properties.add(
|
||||||
|
new Property(
|
||||||
|
new GlobalizedMessage(
|
||||||
|
"cms.ui.workflow.name", CmsConstants.CMS_BUNDLE
|
||||||
|
),
|
||||||
|
workflow.getName().getValue(defaultLocale)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
properties.add(
|
||||||
|
new Property(
|
||||||
|
new GlobalizedMessage(
|
||||||
|
"cms.ui.workflow.description",
|
||||||
|
CmsConstants.CMS_BUNDLE
|
||||||
|
),
|
||||||
|
workflow.getDescription().getValue(defaultLocale)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
if (workflow.getState() == null) {
|
||||||
|
properties.add(
|
||||||
|
new Property(
|
||||||
|
new GlobalizedMessage(
|
||||||
|
"cms.ui.workflow.current_state",
|
||||||
|
CmsConstants.CMS_BUNDLE
|
||||||
|
),
|
||||||
|
new GlobalizedMessage(
|
||||||
|
"cms.ui.workflow.current_state.none",
|
||||||
|
CmsConstants.CMS_BUNDLE
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
properties.add(
|
||||||
|
new Property(
|
||||||
|
new GlobalizedMessage(
|
||||||
|
"cms.ui.workflow.current_state",
|
||||||
|
CmsConstants.CMS_BUNDLE
|
||||||
|
),
|
||||||
|
workflow.getState().toString()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return properties;
|
||||||
|
}
|
||||||
|
|
||||||
@Transactional(Transactional.TxType.REQUIRED)
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
public Workflow createWorkflow(final ContentSection section,
|
public Workflow createWorkflow(final ContentSection section,
|
||||||
final String name,
|
final String name,
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ import org.libreccm.workflow.Workflow;
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds a list of workflow templates registered to the current content
|
* Builds a list of workflow templates registered to the current content
|
||||||
|
|
@ -41,6 +42,11 @@ import java.util.Locale;
|
||||||
*/
|
*/
|
||||||
class WorkflowListModelBuilder extends AbstractListModelBuilder {
|
class WorkflowListModelBuilder extends AbstractListModelBuilder {
|
||||||
|
|
||||||
|
protected static final String WORKFLOW_TEMPLATE_ID = "workflowTemplateId";
|
||||||
|
|
||||||
|
protected static final String WORKFLOW_TEMPLATE_NAME
|
||||||
|
= "workflowTemplateName";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final ListModel makeModel(final List list, final PageState state) {
|
public final ListModel makeModel(final List list, final PageState state) {
|
||||||
return new Model();
|
return new Model();
|
||||||
|
|
@ -48,8 +54,9 @@ class WorkflowListModelBuilder extends AbstractListModelBuilder {
|
||||||
|
|
||||||
private class Model implements ListModel {
|
private class Model implements ListModel {
|
||||||
|
|
||||||
private final Iterator<Workflow> templates;
|
private final Iterator<Map<String, String>> templates;
|
||||||
private Workflow currentTemplate;
|
|
||||||
|
private Map<String, String> currentTemplate;
|
||||||
|
|
||||||
public Model() {
|
public Model() {
|
||||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
|
|
@ -57,7 +64,7 @@ class WorkflowListModelBuilder extends AbstractListModelBuilder {
|
||||||
WorkflowAdminPaneController.class);
|
WorkflowAdminPaneController.class);
|
||||||
|
|
||||||
templates = controller
|
templates = controller
|
||||||
.retrieveWorkflows(CMS.getContext().getContentSection())
|
.listWorkflowTemplates(CMS.getContext().getContentSection())
|
||||||
.iterator();
|
.iterator();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -73,14 +80,12 @@ class WorkflowListModelBuilder extends AbstractListModelBuilder {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object getElement() {
|
public Object getElement() {
|
||||||
final KernelConfig kernelConfig = KernelConfig.getConfig();
|
return currentTemplate.get(WORKFLOW_TEMPLATE_NAME);
|
||||||
final Locale defaultLocale = kernelConfig.getDefaultLocale();
|
|
||||||
return currentTemplate.getName().getValue(defaultLocale);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getKey() {
|
public String getKey() {
|
||||||
return Long.toString(currentTemplate.getWorkflowId());
|
return currentTemplate.get(WORKFLOW_TEMPLATE_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,150 @@
|
||||||
|
package db.migrations.org.librecms.ccm_cms;
|
||||||
|
|
||||||
|
import org.flywaydb.core.api.migration.BaseJavaMigration;
|
||||||
|
import org.flywaydb.core.api.migration.Context;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
public class V7_0_0_24__add_lifecycle_uuid extends BaseJavaMigration {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void migrate(final Context context) throws Exception {
|
||||||
|
|
||||||
|
final Connection connection = context.getConnection();
|
||||||
|
|
||||||
|
final List<Long> lifecycleIds = retrieveLifecycleIds(connection);
|
||||||
|
final List<Long> definitionIds = retrieveDefinitionIds(
|
||||||
|
connection
|
||||||
|
);
|
||||||
|
|
||||||
|
addLifecycleUuidCol(connection);
|
||||||
|
addDefinitionLifecycleCol(connection);
|
||||||
|
|
||||||
|
setLifecycleUuid(connection, lifecycleIds);
|
||||||
|
setDefinitionUuid(connection, definitionIds);
|
||||||
|
|
||||||
|
addLifecycleUniqueConstraint(connection);
|
||||||
|
addDefinitionUniqueConstraint(connection);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Long> retrieveLifecycleIds(final Connection connection)
|
||||||
|
throws Exception {
|
||||||
|
final List<Long> result = new ArrayList<>();
|
||||||
|
try (PreparedStatement stmt = connection
|
||||||
|
.prepareStatement("select LIFECYCLE_ID from LIFECYCLES");
|
||||||
|
ResultSet resultSet = stmt.executeQuery()) {
|
||||||
|
|
||||||
|
while (resultSet.next()) {
|
||||||
|
result.add(resultSet.getLong("LIFECYCLE_ID"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Long> retrieveDefinitionIds(final Connection connection)
|
||||||
|
throws Exception {
|
||||||
|
final List<Long> result = new ArrayList<>();
|
||||||
|
try (PreparedStatement stmt = connection
|
||||||
|
.prepareStatement(
|
||||||
|
"select LIFECYCLE_DEFINITION_ID "
|
||||||
|
+ "from LIFECYLE_DEFINITIONS"
|
||||||
|
);
|
||||||
|
ResultSet resultSet = stmt.executeQuery()) {
|
||||||
|
|
||||||
|
while (resultSet.next()) {
|
||||||
|
result.add(resultSet.getLong("LIFECYCLE_ID"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addLifecycleUuidCol(final Connection connection)
|
||||||
|
throws Exception {
|
||||||
|
try (PreparedStatement stmt = connection.prepareStatement(
|
||||||
|
"alter table LIFECYCLES add column UUID varchar(255)"
|
||||||
|
)) {
|
||||||
|
stmt.execute();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addDefinitionLifecycleCol(final Connection connection)
|
||||||
|
throws Exception {
|
||||||
|
try (PreparedStatement stmt = connection.prepareStatement(
|
||||||
|
"alter table lifecyle_definitions "
|
||||||
|
+ "add column UUID varchar(255)"
|
||||||
|
)) {
|
||||||
|
stmt.execute();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setLifecycleUuid(
|
||||||
|
final Connection connection, final List<Long> lifecycleIds
|
||||||
|
) throws Exception {
|
||||||
|
try (PreparedStatement stmt = connection.prepareStatement(
|
||||||
|
"update LIFECYCLES set UUID = ? where LIFECYCLE_ID = ?"
|
||||||
|
)) {
|
||||||
|
for (final Long lifecycleId : lifecycleIds) {
|
||||||
|
stmt.setString(1, UUID.randomUUID().toString());
|
||||||
|
stmt.setLong(2, lifecycleId);
|
||||||
|
stmt.executeUpdate();
|
||||||
|
stmt.clearParameters();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setDefinitionUuid(
|
||||||
|
final Connection connection, final List<Long> definitionIds
|
||||||
|
) throws Exception {
|
||||||
|
try (PreparedStatement stmt = connection.prepareStatement(
|
||||||
|
"update LIFECYLE_DEFINITIONS set UUID = ? "
|
||||||
|
+ "where LIFECYCLE_DEFINITION_ID = ?"
|
||||||
|
)) {
|
||||||
|
for (final Long lifecycleId : definitionIds) {
|
||||||
|
stmt.setString(1, UUID.randomUUID().toString());
|
||||||
|
stmt.setLong(2, lifecycleId);
|
||||||
|
stmt.executeUpdate();
|
||||||
|
stmt.clearParameters();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addLifecycleUniqueConstraint(
|
||||||
|
final Connection connection
|
||||||
|
) throws Exception {
|
||||||
|
try (PreparedStatement stmt = connection.prepareStatement(
|
||||||
|
"alter table LIFECYCLES "
|
||||||
|
+ "add constraint UK_40o4njo54m8c4xlwq6ctnsimd "
|
||||||
|
+ "unique (UUID)"
|
||||||
|
)) {
|
||||||
|
stmt.execute();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void addDefinitionUniqueConstraint(
|
||||||
|
final Connection connection
|
||||||
|
) throws Exception {
|
||||||
|
try (PreparedStatement stmt = connection.prepareStatement(
|
||||||
|
"alter table LIFECYLE_DEFINITIONS "
|
||||||
|
+ "add constraint UK_n6ki3s5im2k2nccpocuctqqe3 "
|
||||||
|
+ "unique (UUID)"
|
||||||
|
)) {
|
||||||
|
stmt.execute();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package db.migrations.org.librecms.ccm_cms.h2;
|
||||||
|
|
||||||
|
import org.flywaydb.core.api.migration.Context;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
public class V7_0_0_24__add_lifecycle_uuid
|
||||||
|
extends db.migrations.org.librecms.ccm_cms.V7_0_0_24__add_lifecycle_uuid {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void migrate(final Context context) throws Exception {
|
||||||
|
super.migrate(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package db.migrations.org.librecms.ccm_cms.pgsql;
|
||||||
|
|
||||||
|
import org.flywaydb.core.api.migration.Context;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
*/
|
||||||
|
public class V7_0_0_24__add_lifecycle_uuid
|
||||||
|
extends db.migrations.org.librecms.ccm_cms.V7_0_0_24__add_lifecycle_uuid {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void migrate(final Context context) throws Exception {
|
||||||
|
super.migrate(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
* To change this license header, choose License Headers in Project Properties.
|
||||||
|
* To change this template file, choose Tools | Templates
|
||||||
|
* and open the template in the editor.
|
||||||
|
*/
|
||||||
|
package org.librecms.contentsection;
|
||||||
|
|
||||||
|
import org.libreccm.categorization.Category;
|
||||||
|
import org.libreccm.imexport.AbstractEntityImExporter;
|
||||||
|
import org.libreccm.imexport.Exportable;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
import javax.transaction.Transactional;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author <a href="mailto:jens.pelzetter@googlemail.com">Jens Pelzetter</a>
|
||||||
|
* @param <T>
|
||||||
|
*/
|
||||||
|
public abstract class AbstractContentItemImExporter<T extends ContentItem>
|
||||||
|
extends AbstractEntityImExporter<T> {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private ContentItemRepository itemRepository;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Set<Class<? extends Exportable>> getRequiredEntities() {
|
||||||
|
|
||||||
|
final Set<Class<? extends Exportable>> entities = new HashSet<>();
|
||||||
|
entities.add(Category.class);
|
||||||
|
entities.add(ContentSection.class);
|
||||||
|
|
||||||
|
return entities;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(Transactional.TxType.REQUIRED)
|
||||||
|
public void saveImportedEntity(final T entity) {
|
||||||
|
itemRepository.save(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -313,7 +313,7 @@ import static org.librecms.CmsConstants.*;
|
||||||
+ " '" + AssetPrivileges.VIEW + "' "
|
+ " '" + AssetPrivileges.VIEW + "' "
|
||||||
+ " ) "
|
+ " ) "
|
||||||
+ " OR true = :isSystemUser OR true = :isAdmin"
|
+ " OR true = :isSystemUser OR true = :isAdmin"
|
||||||
+ ")")
|
+ ") ORDER BY a.displayName")
|
||||||
,
|
,
|
||||||
@NamedQuery(
|
@NamedQuery(
|
||||||
name = "Asset.countFilterByFolderAndTitle",
|
name = "Asset.countFilterByFolderAndTitle",
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@
|
||||||
*/
|
*/
|
||||||
package org.librecms.contentsection;
|
package org.librecms.contentsection;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||||
|
|
||||||
import static org.librecms.CmsConstants.*;
|
import static org.librecms.CmsConstants.*;
|
||||||
|
|
||||||
import org.hibernate.envers.Audited;
|
import org.hibernate.envers.Audited;
|
||||||
|
|
@ -56,9 +58,12 @@ import org.hibernate.search.annotations.IndexedEmbedded;
|
||||||
import javax.persistence.FetchType;
|
import javax.persistence.FetchType;
|
||||||
|
|
||||||
import org.hibernate.envers.NotAudited;
|
import org.hibernate.envers.NotAudited;
|
||||||
|
import org.libreccm.imexport.Exportable;
|
||||||
import org.librecms.contentsection.privileges.ItemPrivileges;
|
import org.librecms.contentsection.privileges.ItemPrivileges;
|
||||||
|
|
||||||
import javax.persistence.OrderBy;
|
import javax.persistence.OrderBy;
|
||||||
|
import javax.xml.bind.annotation.XmlElement;
|
||||||
|
import javax.xml.bind.annotation.XmlElementWrapper;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -594,12 +599,13 @@ import javax.persistence.OrderBy;
|
||||||
+ " )"
|
+ " )"
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
public class ContentItem extends CcmObject implements Serializable {
|
public class ContentItem extends CcmObject implements Serializable, Exportable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 5897287630227129653L;
|
private static final long serialVersionUID = 5897287630227129653L;
|
||||||
|
|
||||||
@Column(name = "ITEM_UUID", nullable = false)
|
@Column(name = "ITEM_UUID", nullable = false)
|
||||||
@Field
|
@Field
|
||||||
|
@XmlElement(name = "item-uuid", namespace = CMS_XML_NS)
|
||||||
private String itemUuid;
|
private String itemUuid;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -619,6 +625,7 @@ public class ContentItem extends CcmObject implements Serializable {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
// @Field
|
// @Field
|
||||||
|
@XmlElement(name = "name", namespace = CMS_XML_NS)
|
||||||
private LocalizedString name;
|
private LocalizedString name;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -628,6 +635,7 @@ public class ContentItem extends CcmObject implements Serializable {
|
||||||
@JoinColumn(name = "CONTENT_TYPE_ID")
|
@JoinColumn(name = "CONTENT_TYPE_ID")
|
||||||
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
|
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
|
||||||
// @Field
|
// @Field
|
||||||
|
@XmlElement(name = "content-type", namespace = CMS_XML_NS)
|
||||||
private ContentType contentType;
|
private ContentType contentType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -644,6 +652,7 @@ public class ContentItem extends CcmObject implements Serializable {
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@IndexedEmbedded
|
@IndexedEmbedded
|
||||||
|
@XmlElement(name = "title", namespace = CMS_XML_NS)
|
||||||
private LocalizedString title;
|
private LocalizedString title;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -658,6 +667,7 @@ public class ContentItem extends CcmObject implements Serializable {
|
||||||
@JoinColumn(name = "OBJECT_ID")}
|
@JoinColumn(name = "OBJECT_ID")}
|
||||||
))
|
))
|
||||||
@IndexedEmbedded
|
@IndexedEmbedded
|
||||||
|
@XmlElement(name = "description", namespace = CMS_XML_NS)
|
||||||
private LocalizedString description;
|
private LocalizedString description;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -666,6 +676,7 @@ public class ContentItem extends CcmObject implements Serializable {
|
||||||
@Column(name = "VERSION")
|
@Column(name = "VERSION")
|
||||||
@Enumerated(EnumType.STRING)
|
@Enumerated(EnumType.STRING)
|
||||||
@Field
|
@Field
|
||||||
|
@XmlElement(name = "version", namespace = CMS_XML_NS)
|
||||||
private ContentItemVersion version;
|
private ContentItemVersion version;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -673,6 +684,7 @@ public class ContentItem extends CcmObject implements Serializable {
|
||||||
*/
|
*/
|
||||||
@Column(name = "LAUNCH_DATE")
|
@Column(name = "LAUNCH_DATE")
|
||||||
@Temporal(TemporalType.DATE)
|
@Temporal(TemporalType.DATE)
|
||||||
|
@XmlElement(name = "launch-date", namespace = CMS_XML_NS)
|
||||||
private Date launchDate;
|
private Date launchDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -684,16 +696,20 @@ public class ContentItem extends CcmObject implements Serializable {
|
||||||
|
|
||||||
@OneToMany(mappedBy = "item", fetch = FetchType.LAZY)
|
@OneToMany(mappedBy = "item", fetch = FetchType.LAZY)
|
||||||
@OrderBy("order ASC")
|
@OrderBy("order ASC")
|
||||||
|
@XmlElementWrapper(name = "attachments", namespace = CMS_XML_NS)
|
||||||
|
@JsonIgnore
|
||||||
private List<AttachmentList> attachments;
|
private List<AttachmentList> attachments;
|
||||||
|
|
||||||
@OneToOne()
|
@OneToOne()
|
||||||
@JoinColumn(name = "LIFECYCLE_ID")
|
@JoinColumn(name = "LIFECYCLE_ID")
|
||||||
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
|
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
|
||||||
|
@XmlElement(name = "lifecycle", namespace = CMS_XML_NS)
|
||||||
private Lifecycle lifecycle;
|
private Lifecycle lifecycle;
|
||||||
|
|
||||||
@OneToOne(fetch = FetchType.LAZY)
|
@OneToOne(fetch = FetchType.LAZY)
|
||||||
@JoinColumn(name = "WORKFLOW_ID")
|
@JoinColumn(name = "WORKFLOW_ID")
|
||||||
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
|
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
|
||||||
|
@XmlElement(name = "workflow", namespace = CMS_XML_NS)
|
||||||
private Workflow workflow;
|
private Workflow workflow;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -706,6 +722,7 @@ public class ContentItem extends CcmObject implements Serializable {
|
||||||
@Column(name = "CREATION_DATE")
|
@Column(name = "CREATION_DATE")
|
||||||
@Temporal(TemporalType.TIMESTAMP)
|
@Temporal(TemporalType.TIMESTAMP)
|
||||||
@NotAudited
|
@NotAudited
|
||||||
|
@XmlElement(name = "creation-date", namespace = CMS_XML_NS)
|
||||||
private Date creationDate;
|
private Date creationDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -718,6 +735,7 @@ public class ContentItem extends CcmObject implements Serializable {
|
||||||
@Column(name = "LAST_MODIFIED")
|
@Column(name = "LAST_MODIFIED")
|
||||||
@Temporal(TemporalType.TIMESTAMP)
|
@Temporal(TemporalType.TIMESTAMP)
|
||||||
@NotAudited
|
@NotAudited
|
||||||
|
@XmlElement(name = "last-modified", namespace = CMS_XML_NS)
|
||||||
private Date lastModified;
|
private Date lastModified;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -732,6 +750,7 @@ public class ContentItem extends CcmObject implements Serializable {
|
||||||
*/
|
*/
|
||||||
@Column(name = "CREATION_USER_NAME")
|
@Column(name = "CREATION_USER_NAME")
|
||||||
@NotAudited
|
@NotAudited
|
||||||
|
@XmlElement(name = "creation-username", namespace = CMS_XML_NS)
|
||||||
private String creationUserName;
|
private String creationUserName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -746,6 +765,7 @@ public class ContentItem extends CcmObject implements Serializable {
|
||||||
*/
|
*/
|
||||||
@Column(name = "LAST_MODIFYING_USER_NAME")
|
@Column(name = "LAST_MODIFYING_USER_NAME")
|
||||||
@NotAudited
|
@NotAudited
|
||||||
|
@XmlElement(name = "last-modifying-username", namespace = CMS_XML_NS)
|
||||||
private String lastModifyingUserName;
|
private String lastModifyingUserName;
|
||||||
|
|
||||||
public ContentItem() {
|
public ContentItem() {
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue