From d130d0525271ff2f611a537819a45b5ee3d9046c Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Tue, 6 Aug 2019 16:57:26 +0200 Subject: [PATCH] Enable custom model deployments for repository and custom forms deployments to Share. --- .../README.md | 38 ++++++++++++++++++- .../generators/app/index.js | 34 +++++++++++++++-- .../app/templates/6.1/docker-compose-ce.yml | 5 ++- .../app/templates/6.1/docker-compose-ee.yml | 5 ++- .../app/templates/6.2/docker-compose-ce.yml | 5 ++- .../app/templates/6.2/docker-compose-ee.yml | 5 ++- .../app/templates/images/alfresco/Dockerfile | 6 +-- .../app/templates/images/alfresco/model/empty | 0 .../alfresco/model/sharding-content-model.xml | 2 + .../app/templates/images/share/Dockerfile | 7 ++++ .../templates/images/share/model/empty.xml | 5 +++ .../model/sharding-share-config-custom.xml | 27 +++++++++++++ 12 files changed, 126 insertions(+), 13 deletions(-) create mode 100644 e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/model/empty create mode 100644 e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/share/Dockerfile create mode 100644 e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/share/model/empty.xml create mode 100644 e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/share/model/sharding-share-config-custom.xml diff --git a/e2e-test/generator-alfresco-docker-compose/README.md b/e2e-test/generator-alfresco-docker-compose/README.md index 664e12ab9..db4254c68 100644 --- a/e2e-test/generator-alfresco-docker-compose/README.md +++ b/e2e-test/generator-alfresco-docker-compose/README.md @@ -27,20 +27,32 @@ generators/app/templates/ │   ├── alfresco │   │   ├── Dockerfile │   │   └── model +│   │   ├── empty │   │   ├── sharding-content-model-context.xml │   │   └── sharding-content-model.xml │   ├── search │   │   └── Dockerfile +│   ├── share +│   │   ├── Dockerfile +│   │   └── model +│   │   ├── empty.xml +│   │   └── sharding-share-config-custom.xml │   └── zeppelin │   └── Dockerfile └── keystores + ├── alfresco + ├── client + ├── solr + └── zeppelin ``` * `.env` includes default values for Docker Compose environment variables * `docker-compose-ce.yml` is the base Docker Compose Template for Alfresco Community deployment (for ACS 6.2 and ACS 6.1) * `docker-compose-ee.yml` is the base Docker Compose Template for Alfresco Enterprise deployment (for ACS 6.2 and ACS 6.1) * `alfresco` includes a Dockerfile template to start Alfresco Repository - * `model` includes a default content model for Sharding Explicit Routing + * `model` includes a default content model (Sharding Explicit Routing or empty) +* `share` includes a Dockerfile template to start Share Web Application + * `model` includes a default forms model (Sharding Explicit Routing or empty) * `search` includes a Dockerfile template to start Search Services and Insight Engine * `zeppelin` includes a Dockerfile template to start Zeppelin with SSL * `keystores` includes every truststore and keystore required for SSL configuration @@ -136,6 +148,30 @@ Custom content model is deployed to provide a property, named `shard:shardId`, h This default configuration can be changed in the generated `docker-compose.yml` template. + +## Deploying custom content models and forms + +Custom content models and Share Form configurations can be added to deployment folders. + +**Content models** + +Custom content models can be copied to Repository deployment folder by using bootstrap approach. + +Following XML files must be created in `alfresco/model/` folder in the Docker Compose template generated: + +* `content-model.xml` including an XML Alfresco Content Model file. Sample model is available in [images/alfresco/model/sharding-content-model.xml](generators/app/templates/images/alfresco/model/sharding-content-model.xml) +* `content-model-context.xml` including an XML Spring Bean file with the `dictionaryBootstrap` bean. Sample Spring Bean declaration is available in [images/alfresco/model/sharding-content-model-context.xml](generators/app/templates/images/alfresco/model/sharding-content-model-context.xml) + +If *Sharding* is selected, these files will be available in deployment folder. + +**Share forms** + +Custom content forms can be added to Share configuration by modifying `share/model/share-config-custom-dev.xml` file in the Docker Compose template generated. + +Sample configuration is available in [images/share/model/sharding-share-config-custom.xml](generators/app/templates/images/share/model/sharding-share-config-custom.xml) + +If *Sharding* is selected, a default `share-config-custom-dev.xml` file with required forms configuration for Sharding custom model will be available in deployment folder. Add your configuration to this file. + ## Configuration catalog | Version | Comms | Replication | Sharding | Explicit | Insight | Zeppelin | diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/index.js b/e2e-test/generator-alfresco-docker-compose/generators/app/index.js index 5cd8f1fd9..72e6df1b8 100644 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/index.js +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/index.js @@ -193,8 +193,7 @@ module.exports = class extends Generator { searchPath: searchBasePath, zeppelin: (this.props.zeppelin ? "true" : "false"), sharding: (this.props.sharding ? "true" : "false"), - shardingMethod: (this.props.shardingMethod), - shareImage: shareImageName + shardingMethod: (this.props.shardingMethod) } ); @@ -209,10 +208,37 @@ module.exports = class extends Generator { sharding: (this.props.sharding ? "true" : "false") } ); + // Copy Sharding Content Model or an empty file to allow model deployments if (this.props.sharding) { this.fs.copy( - this.templatePath(imagesDirectory + '/alfresco/model'), - this.destinationPath('alfresco/model') + this.templatePath(imagesDirectory + '/alfresco/model/*.xml'), + this.destinationPath('alfresco/model/') + ) + } else { + this.fs.copy( + this.templatePath(imagesDirectory + '/alfresco/model/empty'), + this.destinationPath('alfresco/model/empty') + ) + } + + // Copy Docker Image for Share applying configuration + this.fs.copyTpl( + this.templatePath(imagesDirectory + '/share/Dockerfile'), + this.destinationPath('share/Dockerfile'), + { + shareImage: shareImageName + } + ); + // Copy Sharding Content Forms or an empty file to allow forms deployments + if (this.props.sharding) { + this.fs.copy( + this.templatePath(imagesDirectory + '/share/model/sharding-share-config-custom.xml'), + this.destinationPath('share/model/share-config-custom-dev.xml') + ) + } else { + this.fs.copy( + this.templatePath(imagesDirectory + '/share/model/empty.xml'), + this.destinationPath('share/model/share-config-custom-dev.xml') ) } diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ce.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ce.yml index e7342c754..6b3d721b3 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ce.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ce.yml @@ -124,7 +124,10 @@ services: <% } %> share: - image: <%=shareImage%>:${SHARE_TAG} + build: + context: ./share + args: + SHARE_TAG: ${SHARE_TAG} mem_limit: 1g environment: REPO_HOST: "alfresco" diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ee.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ee.yml index 3ae6e144d..4eb2cee8a 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ee.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ee.yml @@ -264,7 +264,10 @@ services: - shared-file-store-volume:/tmp/Alfresco/sfs share: - image: <%=shareImage%>:${SHARE_TAG} + build: + context: ./share + args: + SHARE_TAG: ${SHARE_TAG} mem_limit: 1g environment: REPO_HOST: "alfresco" diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ce.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ce.yml index 903170400..602d8c756 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ce.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ce.yml @@ -178,7 +178,10 @@ services: - 8094:8090 share: - image: alfresco/alfresco-share:${SHARE_TAG} + build: + context: ./share + args: + SHARE_TAG: ${SHARE_TAG} mem_limit: 1g environment: REPO_HOST: "alfresco" diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ee.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ee.yml index 384cfa9a2..de15ad6bb 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ee.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.2/docker-compose-ee.yml @@ -287,7 +287,10 @@ services: - shared-file-store-volume:/tmp/Alfresco/sfs share: - image: alfresco/alfresco-share:${SHARE_TAG} + build: + context: ./share + args: + SHARE_TAG: ${SHARE_TAG} mem_limit: 1g environment: REPO_HOST: "alfresco" diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/Dockerfile b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/Dockerfile index da62587cc..a5595c7ac 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/Dockerfile +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/Dockerfile @@ -48,7 +48,5 @@ RUN if [ "$SOLR_COMMS" == "https" ] ; then \ <\/Connector>/g" ${TOMCAT_DIR}/conf/server.xml; \ fi -<% if (sharding == 'true') { %> -# Explicit Routing Sharding content model (useless when not using this feature) -COPY model/sharding-content-model*.xml $TOMCAT_DIR/shared/classes/alfresco/extension/ -<% } %> \ No newline at end of file +# Copy custom content model to deployment folder +COPY model/* $TOMCAT_DIR/shared/classes/alfresco/extension/ diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/model/empty b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/model/empty new file mode 100644 index 000000000..e69de29bb diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/model/sharding-content-model.xml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/model/sharding-content-model.xml index 628f58eb6..159d02f12 100644 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/model/sharding-content-model.xml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/alfresco/model/sharding-content-model.xml @@ -13,9 +13,11 @@ + Sharding + Shard Id d:text diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/share/Dockerfile b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/share/Dockerfile new file mode 100644 index 000000000..26fcbedd9 --- /dev/null +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/share/Dockerfile @@ -0,0 +1,7 @@ +ARG SHARE_TAG +FROM <%=shareImage%>:${SHARE_TAG} + +ARG TOMCAT_DIR=/usr/local/tomcat + +# Copy custom content forms to deployment folder +COPY model/* $TOMCAT_DIR/shared/classes/alfresco/web-extension/ \ No newline at end of file diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/share/model/empty.xml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/share/model/empty.xml new file mode 100644 index 000000000..8d1410bab --- /dev/null +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/share/model/empty.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/share/model/sharding-share-config-custom.xml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/share/model/sharding-share-config-custom.xml new file mode 100644 index 000000000..89a785108 --- /dev/null +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/share/model/sharding-share-config-custom.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+ +
\ No newline at end of file