Supporting CE and PE and MySQL as well as embedded eXist

This commit is contained in:
Eric van der Vlist 2018-02-15 17:59:24 +01:00
parent b1851f461e
commit df5e3c2ff1
11 changed files with 203 additions and 8 deletions

2
.gitignore vendored
View File

@ -1 +1,3 @@
*.xpr
secrets/
mysql-connector-java*.jar

View File

@ -2,6 +2,7 @@ FROM tomcat:alpine
ARG tag
ARG build
ARG flavour
RUN \
cd /tmp \
@ -13,8 +14,10 @@ RUN \
&& unzip $build.zip \
&& cd $build \
&& unzip orbeon.war \
&& rm -rf /usr/local/tomcat/webapps \
&& mkdir -p /usr/local/tomcat/webapps/ROOT \
&& mv WEB-INF/ /usr/local/tomcat/webapps/ROOT \
&& mkdir -p /usr/local/orbeon \
&& mv WEB-INF/ /usr/local/orbeon \
&& cd \
&& rm -rf /tmp/orbeon
COPY ./$flavour/tomcat/ /usr/local/tomcat/
COPY ./$flavour/orbeon/ /usr/local/orbeon/

3
Dockerfile-mysql Normal file
View File

@ -0,0 +1,3 @@
FROM mysql
COPY ./mysql/docker-entrypoint-initdb.d /docker-entrypoint-initdb.d

View File

@ -1,4 +1,4 @@
version: "3"
version: "3.3"
services:
servlet:
build:

View File

@ -0,0 +1,6 @@
version: "3.3"
services:
servlet:
build:
args:
flavour: "embedded-exist"

27
docker-compose-mysql.yml Normal file
View File

@ -0,0 +1,27 @@
version: "3.3"
services:
servlet:
depends_on:
- db
build:
args:
flavour: "mysql"
networks:
- net
db:
build:
context: .
dockerfile: Dockerfile-mysql
image: mysql-orbeon
restart: always
environment:
MYSQL_ROOT_PASSWORD: osuaL4Ru
MYSQL_DATABASE: orbeon
MYSQL_USER: orbeon
MYSQL_PASSWORD: osuaL4Ru
networks:
- net
networks:
net:

View File

@ -9,11 +9,11 @@ services:
image: orbeon-pe
secrets:
- source: license
target: /usr/local/tomcat/webapps/ROOT/WEB-INF/resources/config/license.xml
target: /usr/local/orbeon/WEB-INF/resources/config/license.xml
ports:
- "8080:8080"
secrets:
license:
file: ~/.orbeon/license.xml
file: secrets/license.xml

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/orbeon"
docBase="/usr/local/orbeon"
reloadable="false"
override="true"
allowLinking="true"
>
</Context>

View File

@ -0,0 +1,111 @@
USE orbeon;
set sql_mode='ALLOW_INVALID_DATES';
ALTER DATABASE CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE orbeon_form_definition (
created TIMESTAMP(6) ,
last_modified_time TIMESTAMP(6) ,
last_modified_by VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
app VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
form VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
form_version INT NOT NULL,
form_metadata VARCHAR(4000) COLLATE utf8_bin ,
deleted CHAR(1) COLLATE utf8_bin NOT NULL,
xml MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci
) ENGINE = InnoDB;
CREATE TABLE orbeon_form_definition_attach (
created TIMESTAMP(6) ,
last_modified_time TIMESTAMP(6) ,
last_modified_by VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
app VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
form VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
form_version INT NOT NULL,
deleted CHAR(1) COLLATE utf8_bin NOT NULL,
file_name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
file_content LONGBLOB
) ENGINE = InnoDB;
CREATE TABLE orbeon_form_data (
id INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
created TIMESTAMP(6) ,
last_modified_time TIMESTAMP(6) ,
last_modified_by VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
username VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
groupname VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
organization_id INT ,
app VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
form VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
form_version INT NOT NULL,
document_id VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
draft CHAR(1) COLLATE utf8_bin NOT NULL,
deleted CHAR(1) COLLATE utf8_bin NOT NULL,
xml MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci
) ENGINE = InnoDB;
CREATE TABLE orbeon_form_data_attach (
created TIMESTAMP(6) ,
last_modified_time TIMESTAMP(6) ,
last_modified_by VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
username VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
groupname VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
organization_id INT ,
app VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
form VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
form_version INT NOT NULL,
document_id VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
draft CHAR(1) COLLATE utf8_bin NOT NULL,
deleted CHAR(1) COLLATE utf8_bin NOT NULL,
file_name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
file_content LONGBLOB
) ENGINE = InnoDB;
CREATE TABLE orbeon_form_data_lease (
document_id VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL PRIMARY KEY,
username VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL ,
groupname VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
expiration TIMESTAMP(6) NOT NULL
);
CREATE TABLE orbeon_organization (
id INT NOT NULL,
depth INT NOT NULL,
pos INT NOT NULL,
name VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL
) ENGINE = InnoDB;
CREATE TABLE orbeon_seq (
val INT PRIMARY KEY AUTO_INCREMENT NOT NULL
) ENGINE = InnoDB;
CREATE TABLE orbeon_i_current (
data_id INT NOT NULL,
created TIMESTAMP(6) NOT NULL,
last_modified_time TIMESTAMP(6) NOT NULL,
last_modified_by VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
username VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
groupname VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin ,
organization_id INT ,
app VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
form VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
form_version INT NOT NULL,
document_id VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
draft CHAR(1) NOT NULL,
FOREIGN KEY (data_id) REFERENCES orbeon_form_data(id)
) ENGINE = InnoDB;
CREATE TABLE orbeon_i_control_text (
data_id INT NOT NULL,
pos INT NOT NULL,
control VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
val MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
FOREIGN KEY (data_id) REFERENCES orbeon_form_data(id)
) ENGINE = InnoDB;
CREATE INDEX orbeon_form_definition_i1 ON orbeon_form_definition (app, form);
CREATE INDEX orbeon_form_definition_att_i1 ON orbeon_form_definition_attach (app, form, file_name);
CREATE INDEX orbeon_from_data_i1 ON orbeon_form_data (app, form, document_id, draft);
CREATE INDEX orbeon_from_data_attach_i1 ON orbeon_form_data_attach (app, form, document_id, file_name, draft);
CREATE UNIQUE INDEX orbeon_i_current_i1 ON orbeon_i_current (data_id, draft);
CREATE INDEX orbeon_i_control_text_i1 ON orbeon_i_control_text (data_id);

View File

@ -0,0 +1,17 @@
<!--
Copyright (C) 2008 Orbeon, Inc.
This program is free software; you can redistribute it and/or modify it under the terms of the
GNU Lesser General Public License as published by the Free Software Foundation; either version
2.1 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Lesser General Public License for more details.
The full text of the license is available at http://www.gnu.org/copyleft/lesser.html
-->
<!-- NOTE: In the future, we can use <xi:fallback> and remove this file. -->
<properties xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:oxf="http://www.orbeon.com/oxf/processors">
<property as="xs:string" name="oxf.fr.persistence.provider.*.*.*" value="mysql"/>
</properties>

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/orbeon"
docBase="/usr/local/orbeon"
reloadable="false"
override="true"
allowLinking="true"
>
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
initialSize="3" maxActive="10" maxIdle="20" maxWait="30000"
driverClassName="com.mysql.jdbc.Driver"
poolPreparedStatements="true"
validationQuery="select 1 from dual"
testOnBorrow="true"
username="orbeon"
password="osuaL4Ru"
url="jdbc:mysql://db:3306/orbeon?useUnicode=true&amp;characterEncoding=UTF8"/>
</Context>