From 2882b8edc23a6f5b641329fdda22eecfdff128d2 Mon Sep 17 00:00:00 2001 From: Angel Borroy Date: Wed, 22 Jan 2020 10:37:37 +0100 Subject: [PATCH] Add Get Content compress option to Yeoman Generator. --- .../generator-alfresco-docker-compose/README.md | 3 ++- .../generators/app/index.js | 12 ++++++++++-- .../app/templates/6.2/docker-compose-ce.yml | 3 +++ .../app/templates/images/alfresco/Dockerfile | 16 +++++++++++++++- .../app/templates/images/search/Dockerfile | 8 ++++++++ 5 files changed, 38 insertions(+), 4 deletions(-) diff --git a/e2e-test/generator-alfresco-docker-compose/README.md b/e2e-test/generator-alfresco-docker-compose/README.md index 986904543..0caf4d33d 100644 --- a/e2e-test/generator-alfresco-docker-compose/README.md +++ b/e2e-test/generator-alfresco-docker-compose/README.md @@ -111,7 +111,8 @@ When using Community, some different options can be combined: ? Would you like to use HTTP or mTLS for Alfresco-SOLR communication? http ? Would you like to use HTTP or HTTPs for Web Proxy? http ? Would you like to protect the access to SOLR REST API? Yes -? Would you like to use a SOLR Replication (2 nodes in master-slave)? No +? Would you like to use a SOLR Replication? No +? Would you like to compress Get Content responses? No ``` **Note** that when choosing *mTLS* or *HTTPs*, default certificates, truststores and keystores are provided for testing purposes. If you are planning to use this Docker Compose template for real environments, replace these cryptographic stores with another generated by yourself to increase the security of your system. 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 ac5b2f4a2..03905232a 100644 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/index.js +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/index.js @@ -56,7 +56,7 @@ module.exports = class extends Generator { type: 'confirm', name: 'protectSolr', message: 'Would you like to protect the access to SOLR REST API?', - default: 'true' + default: true }, { whenFunction: response => response.httpMode == 'http', @@ -69,6 +69,13 @@ module.exports = class extends Generator { { name: "Yes - two nodes in a master-master configuration", value: "master-master" } ] }, + { + whenFunction: response => response.acsVersion == '6.2', + type: 'confirm', + name: 'gzip', + message: 'Would you like to compress Get Content responses?', + default: false + }, // Enterprise only options { whenFunction: response => response.alfrescoVersion == 'enterprise' && !response.replication, @@ -208,7 +215,8 @@ module.exports = class extends Generator { searchPath: searchBasePath, zeppelin: (this.props.zeppelin ? "true" : "false"), sharding: (this.props.sharding ? "true" : "false"), - shardingMethod: (this.props.shardingMethod) + shardingMethod: (this.props.shardingMethod), + gzip: (this.props.gzip ? "true" : "false") } ); 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 451e57945..7c137e4a0 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 @@ -13,6 +13,7 @@ services: TRUSTSTORE_PASS: kT9X6oe68t KEYSTORE_TYPE: JCEKS KEYSTORE_PASS: kT9X6oe68t <% } %> + COMPRESS_CONTENT: "<%=gzip%>" mem_limit: 1800m environment: JAVA_OPTS : " @@ -66,6 +67,7 @@ services: KEYSTORE_TYPE: JCEKS <% } %> <% if (replication) { %> ENABLE_MASTER: "true" ENABLE_SLAVE: "false" <% } %> + COMPRESS_CONTENT: "<%=gzip%>" mem_limit: 1200m environment: #Solr needs to know how to register itself with Alfresco @@ -108,6 +110,7 @@ services: ENABLE_MASTER: <% if (replication == 'master-master') { %>"true"<% } else { %>"false"<% } %> ENABLE_SLAVE: <% if (replication == 'master-master') { %>"false"<% } else { %>"true"<% } %> MASTER_HOST: solr6 <% } %> + COMPRESS_CONTENT: "<%=gzip%>" mem_limit: 1200m environment: #Solr needs to know how to register itself with 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 a5595c7ac..87091db7a 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 @@ -40,13 +40,27 @@ RUN if [ "$SOLR_COMMS" == "https" ] ; then \ [[:space:]]\+<\/Engine>/\n\ <\/Engine>\n\ \n\ <\/Connector>/g" ${TOMCAT_DIR}/conf/server.xml; \ fi +# GZIP COMPRESSION +ARG COMPRESS_CONTENT +ENV COMPRESS_CONTENT $COMPRESS_CONTENT +RUN if [ "$COMPRESS_CONTENT" == "true" ] ; then \ + sed -i "s/\ +[[:space:]]\+connectionTimeout=\"20000\"/\n\ + connectionTimeout=\"20000\"\n\ + compression=\"on\"\n\ + compressionMinSize=\"1\"\n\ + /g" ${TOMCAT_DIR}/conf/server.xml; \ + fi + + # 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/search/Dockerfile b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile index 163f75682..0ff7861ba 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/images/search/Dockerfile @@ -125,6 +125,14 @@ RUN if [ "$ENABLE_SHARDING" == "true" ] ; then \ fi; \ fi +# GZIP COMPRESSION +ARG COMPRESS_CONTENT +ENV COMPRESS_CONTENT $COMPRESS_CONTENT +RUN if [ "$COMPRESS_CONTENT" == "true" ] ; then \ + sed -i '/^bash.*/i sed -i "'"s/solr.request.content.compress=false/solr.request.content.compress=true/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ + ${DIST_DIR}/solr/bin/search_config_setup.sh; \ +fi + # Useless for 'none'/'http' communications with Alfresco RUN mkdir ${DIST_DIR}/keystore \ && chown -R solr:solr ${DIST_DIR}/keystore