diff --git a/e2e-test/generator-alfresco-docker-compose/README.md b/e2e-test/generator-alfresco-docker-compose/README.md index 516e1e541..4bc6a677c 100644 --- a/e2e-test/generator-alfresco-docker-compose/README.md +++ b/e2e-test/generator-alfresco-docker-compose/README.md @@ -5,7 +5,7 @@ This project generates a collection of Docker Compose Templates to test Reposito * Plain HTTP communications * TLS/SSL Mutual Authentication communications -* Sharding (dynamic) with DB_ID or Explicit Routing +* Sharding (dynamic) with different Sharding Methods * Replication (master/slave) ## Project structure @@ -13,28 +13,33 @@ This project generates a collection of Docker Compose Templates to test Reposito Following templates are provided. ``` -$ tree generators/app/templates/latest -├── .env -├── alfresco -│   ├── Dockerfile -│   └── model -│   ├── sharding-content-model-context.xml -│   └── sharding-content-model.xml -├── docker-compose-ce.yml -├── docker-compose-ee.yml -├── search -│   └── Dockerfile -├── zeppelin -| └── Dockerfile -└── keystores +$ tree generators/app/templates/ +generators/app/templates/ +├── 6.1 +│   ├── docker-compose-ce.yml +│   └── docker-compose-ee.yml +├── keystores +│   ├── alfresco +│   ├── client +│   ├── solr +│   └── zeppelin +└── latest ├── alfresco - ├── solr + │   ├── Dockerfile + │   └── model + │   ├── sharding-content-model-context.xml + │   └── sharding-content-model.xml + ├── docker-compose-ce.yml + ├── docker-compose-ee.yml + ├── search + │   └── Dockerfile └── zeppelin + └── Dockerfile ``` * `.env` includes default values for Docker Compose environment variables -* `docker-compose-ce.yml` is the base Docker Compose Template for Alfresco Community deployment -* `docker-compose-ee.yml` is the base Docker Compose Template for Alfresco Enterprise deployment +* `docker-compose-ce.yml` is the base Docker Compose Template for Alfresco Community deployment (for latest and ACS 6.1) +* `docker-compose-ee.yml` is the base Docker Compose Template for Alfresco Enterprise deployment (for latest and ACS 6.1) * `alfresco` includes a Dockerfile template to start Alfresco Repository * `model` includes a default content model for Sharding Explicit Routing * `search` includes a Dockerfile template to start Search Services and Insight Engine @@ -58,6 +63,17 @@ $ mkdir my-custom-docker-compose $ yo alfresco-docker-compose ``` +## ACS Version + +Currently supported ACS Version are `latest` and `6.1` + +This is the first choice to be selected when the generator is executed. +``` +? Which ACS version do you want to use? + 6.1 +❯ latest +``` + ## Community When using Community, some different options can be combined: @@ -66,7 +82,6 @@ When using Community, some different options can be combined: * Use SOLR Replication in Master/Slave mode (only when using http) ``` -? Which Alfresco version do you want to use? latest ? Would you like to use Alfresco enterprise or community? community ? Would you like to use http or https? http ? Would you like to use a SOLR Replication (2 nodes in master-slave)? Yes @@ -76,20 +91,38 @@ When using Community, some different options can be combined: When using Enterprise, some options can be added to Community configuration: -* Use dynamic Sharding with 2 SOLR nodes pre-configured (only when not using SOLR Replication) -* Use Explicit Routing for Shards instead of DB_ID (only when using Sharding) +* Use dynamic Sharding with 2 SOLR nodes pre-configured (every sharding method is supported) * Insight Engine, as Search Services is selected by default * Deploy Zeppelin app to use JDBC Connector to SOLR ``` ? Would you like to use dynamic Sharding (2 SOLR nodes)? Yes -? Would you like to use SOLR Explicit Routing instead of DB_ID for the Shards? Yes +? Which Sharding Method do you want to use? +❯ DB_ID + DB_ID_RANGE + ACL_ID + MOD_ACL_ID + DATE + PROPERTY + LAST_REGISTERED_INDEXING_SHARD + EXPLICIT_ID_FALLBACK_LRIS + EXPLICIT_ID ? Would you like to use Insight Engine instead of Search Services? Yes ? Would you like to deploy Zeppelin? Yes ``` -## Using Explicit Routing feature +## Sharding methods default parameters +**DB_ID_RANGE** +Shard range is 0-800 for the instance 0 and 801-40000 for the instance 1. + +**DATE** +Shard property is `cm:created` and grouping is set to 2. + +**PROPERTY** +Shard property is `shard:shardId`, belonging to a custom model deployed in the template. + +**EXPLICIT_ID** and **EXPLICIT_ID_FALLBACK_LRIS** Custom content model is deployed to provide a property, named `shard:shardId`, holding the Shard Number (0, 1) where the content is indexed. ## Configuration catalog @@ -121,15 +154,14 @@ $ yo alfresco-docker-compose --acsVersion=latest --alfrescoVersion=community --h **Parameter names reference** -`--acsVersion`: default latest, but could be set to e.g. 6.1.0.5 +`--acsVersion`: default latest, but could be set to 6.1 `--alfrescoVersion`: community or enterprise `--httpMode`: http or https `--clustering`: true or false `--insightEngine`: true or false `--zeppelin`: true or false `--sharding`: true or false -`--explicitRouting`: true or false - +`--shardingMethod`: DB_ID, DB_ID_RANGE, ACL_ID, MOD_ACL_ID, DATE, PROPERTY, LAST_REGISTERED_INDEXING_SHARD, EXPLICIT_ID_FALLBACK_LRIS, EXPLICIT_ID ## Using Docker Compose 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 d8975741a..29b85cc5a 100644 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/index.js +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/index.js @@ -22,9 +22,10 @@ module.exports = class extends Generator { const prompts = [ { - type: 'input', + type: 'list', name: 'acsVersion', - message: 'Which Alfresco version do you want to use?', + message: 'Which ACS version do you want to use?', + choices: [ "6.1", "latest" ], default: 'latest' }, { @@ -58,10 +59,21 @@ module.exports = class extends Generator { }, { whenFunction: response => response.alfrescoVersion == 'enterprise' && response.sharding, - type: 'confirm', - name: 'explicitRouting', - message: 'Would you like to use SOLR Explicit Routing instead of DB_ID for the Shards?', - default: false + type: 'list', + name: 'shardingMethod', + message: 'Which Sharding Method do you want to use?', + choices: [ + "DB_ID", + "DB_ID_RANGE", + "ACL_ID", + "MOD_ACL_ID", + "DATE", + "PROPERTY", + "LAST_REGISTERED_INDEXING_SHARD", + "EXPLICIT_ID_FALLBACK_LRIS", + "EXPLICIT_ID" + ], + default: 'DB_ID' }, { whenFunction: response => response.alfrescoVersion == 'enterprise', @@ -104,14 +116,16 @@ module.exports = class extends Generator { // Generate boilerplate from "templates" folder writing() { - // TODO: Add support for other versions of ACS. - // e.g. Using something like: - // if (this.props.acsVersion.startsWith('6.0')) { var templateDirectory = 'latest'; + var dockerComposeTemplateDirectory = 'latest'; + if (this.props.acsVersion.startsWith('6.1')) { + dockerComposeTemplateDirectory = '6.1'; + } + // Docker Compose environment variables values this.fs.copyTpl( - this.templatePath(templateDirectory + '/.env'), + this.templatePath(dockerComposeTemplateDirectory + '/.env'), this.destinationPath('.env'), { acsTag: this.props.acsVersion @@ -121,8 +135,8 @@ module.exports = class extends Generator { // Base Docker Compose Template const dockerComposeTemplate = (this.props.alfrescoVersion == 'community' ? - templateDirectory + '/docker-compose-ce.yml' : - templateDirectory + '/docker-compose-ee.yml'); + dockerComposeTemplateDirectory + '/docker-compose-ce.yml' : + dockerComposeTemplateDirectory + '/docker-compose-ee.yml'); // Repository Docker Image name const acsImageName = @@ -155,7 +169,7 @@ module.exports = class extends Generator { searchPath: searchBasePath, zeppelin: (this.props.zeppelin ? "true" : "false"), sharding: (this.props.sharding ? "true" : "false"), - explicitRouting: (this.props.explicitRouting ? "true" : "false") + shardingMethod: (this.props.shardingMethod) } ); diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/.env b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/.env new file mode 100755 index 000000000..c95352d50 --- /dev/null +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/.env @@ -0,0 +1,15 @@ +ALFRESCO_TAG=6.1.0.5 +ALFRESCO_CE_TAG=6.1.2-ga +SHARE_TAG=6.1.0 +POSTGRES_TAG=10.1 +TRANSFORM_ROUTER_TAG=1.0.1 +PDF_RENDERER_TAG=2.0.10 +IMAGE_MAGICK_TAG=2.0.10 +LIBREOFFICE_TAG=2.0.10 +TIKA_TAG=2.0.10 +SHARED_FILE_STORE_TAG=0.5.3 +ACTIVE_MQ_TAG=5.15.8 +DIGITAL_WORKSPACE_TAG=1.1.0 +ACS_NGINX_TAG=3.0.0 +SEARCH_TAG=latest +ZEPPELIN_TAG=latest 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 new file mode 100755 index 000000000..663ce09bf --- /dev/null +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ce.yml @@ -0,0 +1,161 @@ +# Using version 2 as 3 does not support resource constraint options (cpu_*, mem_* limits) for non swarm mode in Compose +version: "2" + +services: + + alfresco: + build: + context: ./alfresco + args: + ALFRESCO_TAG: ${ALFRESCO_CE_TAG} + SOLR_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + TRUSTSTORE_PASS: kT9X6oe68t + KEYSTORE_TYPE: JCEKS + KEYSTORE_PASS: kT9X6oe68t <% } %> + mem_limit: 1800m + environment: + JAVA_OPTS : " + -Ddb.driver=org.postgresql.Driver + -Ddb.username=alfresco + -Ddb.password=alfresco + -Ddb.url=jdbc:postgresql://postgres:5432/alfresco + -Dsolr.host=<%=searchSolrHost%> + -Dsolr.port.ssl=8983 + -Dsolr.secureComms=<%=secureComms%> + -Dsolr.base.url=/solr + -Dindex.subsystem.name=solr6 + -Dshare.host=localhost + -Dalfresco.port=8082 + -Daos.baseUrlOverwrite=http://localhost:8082/alfresco/aos + -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\" + -Ddeployment.method=DOCKER_COMPOSE + -Dcsrf.filter.enabled=false + -Dalfresco.restApi.basicAuthScheme=true + -Xms1500m -Xmx1500m + " + ports: + - 8082:8080 <% if (httpMode == 'https') { %> + - 8443:8443 + volumes: + - ./keystores/alfresco:/usr/local/tomcat/alf_data/keystore <% } %> + + solr6: + build: + context: ./search + args: + SEARCH_TAG: ${SEARCH_TAG} + SOLR_HOSTNAME: solr6 + ALFRESCO_HOSTNAME: alfresco + ALFRESCO_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + KEYSTORE_TYPE: JCEKS <% } %> <% if (replication == 'true') { %> + ENABLE_MASTER: "true" + ENABLE_SLAVE: "false" <% } %> + mem_limit: 1200m + environment: + #Solr needs to know how to register itself with Alfresco + SOLR_ALFRESCO_HOST: "alfresco" + SOLR_ALFRESCO_PORT: "<%=alfrescoPort%>" + ALFRESCO_SECURE_COMMS: <%=secureComms%> + #Alfresco needs to know how to call solr + SOLR_SOLR_HOST: "solr6" + SOLR_SOLR_PORT: "8983" + #Create the default alfresco and archive cores + SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" + SOLR_JAVA_MEM: "-Xms1g -Xmx1g" <% if (httpMode == 'https') { %> + SOLR_SSL_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.truststore" + SOLR_SSL_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_TRUST_STORE_TYPE: "JCEKS" + SOLR_SSL_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_NEED_CLIENT_AUTH: "true" + SOLR_OPTS: " + -Dsolr.ssl.checkPeerName=false + -Dsolr.allow.unsafe.resourceloading=true + " <% } %> + ports: + - 8083:8983 <% if (httpMode == 'https') { %> + volumes: + - ./keystores/solr:/opt/<%=searchPath%>/keystore <% } %> + + <% if (replication == 'true') { %> + solr6secondary: + build: + context: ./search + args: + SEARCH_TAG: ${SEARCH_TAG} + SOLR_HOSTNAME: solr6secondary + ALFRESCO_HOSTNAME: alfresco + ALFRESCO_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + KEYSTORE_TYPE: JCEKS <% } %> <% if (replication == 'true') { %> + ENABLE_MASTER: "true" + ENABLE_SLAVE: "false" + MASTER_HOST: solr6 <% } %> + mem_limit: 1200m + environment: + #Solr needs to know how to register itself with Alfresco + SOLR_ALFRESCO_HOST: "alfresco" + SOLR_ALFRESCO_PORT: "<%=alfrescoPort%>" + ALFRESCO_SECURE_COMMS: <%=secureComms%> + #Alfresco needs to know how to call solr + SOLR_SOLR_HOST: "solr6secondary" + SOLR_SOLR_PORT: "8983" + #Create the default alfresco and archive cores + SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" + SOLR_JAVA_MEM: "-Xms1g -Xmx1g" <% if (httpMode == 'https') { %> + SOLR_SSL_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.truststore" + SOLR_SSL_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_TRUST_STORE_TYPE: "JCEKS" + SOLR_SSL_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_NEED_CLIENT_AUTH: "true" + SOLR_OPTS: " + -Dsolr.ssl.checkPeerName=false + -Dsolr.allow.unsafe.resourceloading=true + " <% } %> + ports: + - 8084:8983 <% if (httpMode == 'https') { %> + volumes: + - ./keystores/solr:/opt/<%=searchPath%>/keystore <% } %> + <% } %> + + share: + image: alfresco/alfresco-share:${SHARE_TAG} + mem_limit: 1g + environment: + REPO_HOST: "alfresco" + REPO_PORT: "8080" + JAVA_OPTS: " + -Xms500m + -Xmx500m + -Dalfresco.host=localhost + -Dalfresco.port=8080 + -Dalfresco.context=alfresco + -Dalfresco.protocol=http + " + ports: + - 8080:8080 + + postgres: + image: postgres:${POSTGRES_TAG} + mem_limit: 512m + environment: + - POSTGRES_PASSWORD=alfresco + - POSTGRES_USER=alfresco + - POSTGRES_DB=alfresco + command: postgres -c max_connections=300 -c log_min_messages=LOG + ports: + - 5432:5432 + + activemq: + image: alfresco/alfresco-activemq:${ACTIVE_MQ_TAG} + mem_limit: 512m + ports: + - 8161:8161 # Web Console + - 5672:5672 # AMQP + - 61616:61616 # OpenWire + - 61613:61613 # STOMP 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 new file mode 100755 index 000000000..8c9d074f7 --- /dev/null +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/6.1/docker-compose-ee.yml @@ -0,0 +1,324 @@ +# Using version 2 as 3 does not support resource constraint options (cpu_*, mem_* limits) for non swarm mode in Compose +version: "2" + +services: + alfresco: + build: + context: ./alfresco + args: + ALFRESCO_TAG: ${ALFRESCO_TAG} + SOLR_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + TRUSTSTORE_PASS: kT9X6oe68t + KEYSTORE_TYPE: JCEKS + KEYSTORE_PASS: kT9X6oe68t <% } %> + mem_limit: 1800m + environment: + JAVA_OPTS: " + -Ddb.driver=org.postgresql.Driver + -Ddb.username=alfresco + -Ddb.password=alfresco + -Ddb.url=jdbc:postgresql://postgres:5432/alfresco + -Dsolr.host=<%=searchSolrHost%> + -Dsolr.port.ssl=8983 + -Dsolr.secureComms=<%=secureComms%> + -Dsolr.base.url=/solr <% if (sharding == 'true') { %> + -Dsolr.useDynamicShardRegistration=true <% } %> + -Dindex.subsystem.name=solr6 + -Dalfresco-pdf-renderer.url=http://alfresco-pdf-renderer:8090/ + -Djodconverter.url=http://libreoffice:8090/ + -Dimg.url=http://imagemagick:8090/ + -Dtika.url=http://tika:8090/ + -Dsfs.url=http://shared-file-store:8099/ + -Dshare.host=127.0.0.1 + -Dshare.port=8080 + -Dalfresco.host=localhost + -Dalfresco.port=8080 + -Daos.baseUrlOverwrite=http://localhost:8080/alfresco/aos + -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\" + -Ddeployment.method=DOCKER_COMPOSE + -Dlocal.transform.service.enabled=true + -Dtransform.service.enabled=true + -Dcsrf.filter.enabled=false + -Dalfresco.restApi.basicAuthScheme=true + -Xms1500m -Xmx1500m + " <% if (httpMode == 'https') { %> + ports: + - 8443:8443 + volumes: + - ./keystores/alfresco:/usr/local/tomcat/alf_data/keystore <% } %> + + solr6: + build: + context: ./search + args: + SEARCH_TAG: ${SEARCH_TAG} + SOLR_HOSTNAME: solr6 + ALFRESCO_HOSTNAME: alfresco + ALFRESCO_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + KEYSTORE_TYPE: JCEKS <% } %> <% if (replication == 'true') { %> + ENABLE_MASTER: "true" + ENABLE_SLAVE: "false" <% } %> <% if (sharding == 'true') { %> + ENABLE_SHARDING: "true" + NUM_SHARDS: "2" + SHARD_ID: "0" <% if (shardingMethod == 'DB_ID_RANGE') { %> + SHARD_RANGE: "0-800" <% } %> <% if (shardingMethod == 'DATE') { %> + SHARD_KEY: "cm:created" + SHARD_DATE_GROUPING: "2" <% } %> <% if (shardingMethod == 'PROPERTY') { %> + SHARD_KEY: "shard:shardId" <% } %> <% if (shardingMethod == 'EXPLICIT_ID' || shardingMethod == 'EXPLICIT_ID_FALLBACK_LRIS') { %> + SHARD_KEY: "shard:shardId" <% } %> + SHARDING_METHOD: <%=shardingMethod%> <% } %> + mem_limit: 1200m + environment: + #Solr needs to know how to register itself with Alfresco + SOLR_ALFRESCO_HOST: "alfresco" + SOLR_ALFRESCO_PORT: "<%=alfrescoPort%>" + ALFRESCO_SECURE_COMMS: <%=secureComms%> + #Alfresco needs to know how to call solr + SOLR_SOLR_HOST: "solr6" + SOLR_SOLR_PORT: "8983" + #Create the default alfresco and archive cores + SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" + SOLR_JAVA_MEM: "-Xms1g -Xmx1g" <% if (httpMode == 'https') { %> + SOLR_SSL_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.truststore" + SOLR_SSL_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_TRUST_STORE_TYPE: "JCEKS" + SOLR_SSL_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_NEED_CLIENT_AUTH: "true" <% if (sharding == 'true') { %> + SOLR_SSL_CLIENT_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_CLIENT_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_CLIENT_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_CLIENT_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_CLIENT_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_CLIENT_TRUST_STORE_TYPE: "JCEKS" <% } %> + SOLR_OPTS: " + -Dsolr.ssl.checkPeerName=false + -Dsolr.allow.unsafe.resourceloading=true + " <% } %> + ports: + - 8083:8983 <% if (httpMode == 'https') { %> + volumes: + - ./keystores/solr:/opt/<%=searchPath%>/keystore <% } %> + + <% if (sharding == 'true' || replication == 'true') { %> + solr6secondary: + build: + context: ./search + args: + SEARCH_TAG: ${SEARCH_TAG} + SOLR_HOSTNAME: solr6secondary + ALFRESCO_HOSTNAME: alfresco + ALFRESCO_COMMS: <%=secureComms%> <% if (httpMode == 'https') { %> + TRUSTSTORE_TYPE: JCEKS + KEYSTORE_TYPE: JCEKS <% } %> <% if (replication == 'true') { %> + ENABLE_MASTER: "true" + ENABLE_SLAVE: "false" + MASTER_HOST: solr6 <% } %> <% if (sharding == 'true') { %> + ENABLE_SHARDING: "true" + NUM_SHARDS: "2" + SHARD_ID: "1" <% if (shardingMethod == 'DB_ID_RANGE') { %> + SHARD_RANGE: "801-40000" <% } %> <% if (shardingMethod == 'DATE') { %> + SHARD_KEY: "cm:created" + SHARD_DATE_GROUPING: "2" <% } %> <% if (shardingMethod == 'PROPERTY') { %> + SHARD_KEY: "shard:shardId" <% } %> <% if (shardingMethod == 'EXPLICIT_ID' || shardingMethod == 'EXPLICIT_ID_FALLBACK_LRIS') { %> + SHARD_KEY: "shard:shardId" <% } %> + SHARDING_METHOD: <%=shardingMethod%> <% } %> + mem_limit: 1200m + environment: + #Solr needs to know how to register itself with Alfresco + SOLR_ALFRESCO_HOST: "alfresco" + SOLR_ALFRESCO_PORT: "<%=alfrescoPort%>" + ALFRESCO_SECURE_COMMS: <%=secureComms%> + #Alfresco needs to know how to call solr + SOLR_SOLR_HOST: "solr6secondary" + SOLR_SOLR_PORT: "8983" + #Create the default alfresco and archive cores + SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive" + SOLR_JAVA_MEM: "-Xms1g -Xmx1g" <% if (httpMode == 'https') { %> + SOLR_SSL_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.truststore" + SOLR_SSL_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_TRUST_STORE_TYPE: "JCEKS" + SOLR_SSL_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_NEED_CLIENT_AUTH: "true" <% if (sharding == 'true') { %> + SOLR_SSL_CLIENT_KEY_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_CLIENT_KEY_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_CLIENT_KEY_STORE_TYPE: "JCEKS" + SOLR_SSL_CLIENT_TRUST_STORE: "/opt/<%=searchPath%>/keystore/ssl.repo.client.keystore" + SOLR_SSL_CLIENT_TRUST_STORE_PASSWORD: "kT9X6oe68t" + SOLR_SSL_CLIENT_TRUST_STORE_TYPE: "JCEKS" <% } %> + SOLR_OPTS: " + -Dsolr.ssl.checkPeerName=false + -Dsolr.allow.unsafe.resourceloading=true + " <% } %> + ports: + - 8084:8983 <% if (httpMode == 'https') { %> + volumes: + - ./keystores/solr:/opt/<%=searchPath%>/keystore <% } %> + <% } %> + + <% if (zeppelin == 'true') { %> + zeppelin: + build: + context: ./zeppelin + args: + ZEPPELIN_TAG: ${ZEPPELIN_TAG} + ALFRESCO_COMMS: <%=secureComms%> + mem_limit: 768m + environment: <% if (httpMode == 'https') { %> + REPO_PROTOCOL: "https" <% } %> + REPO_HOST: "alfresco" + REPO_PORT: "<%=alfrescoPort%>" <% if (httpMode == 'https') { %> + JAVA_OPTS: " + -Dalfresco.enable.ssl=true + -Dsolr.ssl.checkPeerName=false + -Djavax.net.ssl.keyStore=/zeppelin/keystore/ssl.repo.client.keystore + -Djavax.net.ssl.keyStorePassword=kT9X6oe68t + -Djavax.net.ssl.keyStoreType=JCEKS + -Djavax.net.ssl.trustStore=/zeppelin/keystore/ssl.repo.client.truststore + -Djavax.net.ssl.trustStorePassword=kT9X6oe68t + -Djavax.net.ssl.trustStoreType=JCEKS + " <% } %> + ports: + - 9090:9090 <% if (httpMode == 'https') { %> + volumes: + - ./keystores/zeppelin:/zeppelin/keystore <% } %> + <% } %> + + transform-router: + mem_limit: 512m + image: quay.io/alfresco/alfresco-transform-router:${TRANSFORM_ROUTER_TAG} + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ACTIVEMQ_URL: "nio://activemq:61616" + IMAGEMAGICK_URL: "http://imagemagick:8090" + PDF_RENDERER_URL : "http://alfresco-pdf-renderer:8090" + LIBREOFFICE_URL : "http://libreoffice:8090" + TIKA_URL : "http://tika:8090" + FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" + links: + - activemq + + alfresco-pdf-renderer: + image: quay.io/alfresco/alfresco-pdf-renderer:${PDF_RENDERER_TAG} + mem_limit: 512m + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ACTIVEMQ_URL: "nio://activemq:61616" + FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" + ports: + - 8090:8090 + links: + - activemq + + imagemagick: + image: quay.io/alfresco/alfresco-imagemagick:${IMAGE_MAGICK_TAG} + mem_limit: 512m + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ACTIVEMQ_URL: "nio://activemq:61616" + FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" + ports: + - 8091:8090 + links: + - activemq + + libreoffice: + image: quay.io/alfresco/alfresco-libreoffice:${LIBREOFFICE_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ACTIVEMQ_URL: "nio://activemq:61616" + FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" + ports: + - 8092:8090 + links: + - activemq + + tika: + image: quay.io/alfresco/alfresco-tika:${TIKA_TAG} + mem_limit: 512m + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ACTIVEMQ_URL: "nio://activemq:61616" + FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" + ports: + - 8093:8090 + links: + - activemq + + shared-file-store: + image: alfresco/alfresco-shared-file-store:${SHARED_FILE_STORE_TAG} + mem_limit: 512m + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + scheduler.content.age.millis: 86400000 + scheduler.cleanup.interval: 86400000 + ports: + - 8099:8099 + volumes: + - shared-file-store-volume:/tmp/Alfresco/sfs + + share: + image: alfresco/alfresco-share:${SHARE_TAG} + mem_limit: 1g + environment: + REPO_HOST: "alfresco" + REPO_PORT: "8080" + JAVA_OPTS: " + -Xms500m + -Xmx500m + -Dalfresco.host=localhost + -Dalfresco.port=8080 + -Dalfresco.context=alfresco + -Dalfresco.protocol=http + " + + postgres: + image: postgres:${POSTGRES_TAG} + mem_limit: 512m + environment: + - POSTGRES_PASSWORD=alfresco + - POSTGRES_USER=alfresco + - POSTGRES_DB=alfresco + command: postgres -c max_connections=300 -c log_min_messages=LOG + ports: + - 5432:5432 + + activemq: + image: alfresco/alfresco-activemq:${ACTIVE_MQ_TAG} + mem_limit: 512m + ports: + - 8161:8161 # Web Console + - 5672:5672 # AMQP + - 61616:61616 # OpenWire + - 61613:61613 # STOMP + + digital-workspace: + image: quay.io/alfresco/alfresco-digital-workspace:${DIGITAL_WORKSPACE_TAG} + mem_limit: 128m + environment: + BASEPATH: ./ + + proxy: + image: alfresco/alfresco-acs-nginx:${ACS_NGINX_TAG} + mem_limit: 128m + depends_on: + - alfresco + - digital-workspace + ports: + - 8080:8080 + links: + - digital-workspace + - alfresco + - share + +volumes: + shared-file-store-volume: + driver_opts: + type: tmpfs + device: tmpfs \ No newline at end of file diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/.env b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/.env index 471b79582..ec5466dc6 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/.env +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/.env @@ -1,14 +1,16 @@ ALFRESCO_TAG=<%=acsTag%> -SHARE_TAG=6.1.0 -POSTGRES_TAG=10.1 -TRANSFORM_ROUTER_TAG=1.0.1 -PDF_RENDERER_TAG=2.0.10 -IMAGE_MAGICK_TAG=2.0.10 -LIBREOFFICE_TAG=2.0.10 -TIKA_TAG=2.0.10 +SHARE_TAG=6.1.0-RC3 +POSTGRES_TAG=10.9 +TRANSFORM_ROUTER_TAG=1.1.0-EA2 +PDF_RENDERER_TAG=2.1.0-EA4 +IMAGE_MAGICK_TAG=2.1.0-EA4 +LIBREOFFICE_TAG=2.1.0-EA4 +TIKA_TAG=2.1.0-EA4 +TRANSFORM_MISC_TAG=2.1.0-EA4 SHARED_FILE_STORE_TAG=0.5.3 ACTIVE_MQ_TAG=5.15.8 DIGITAL_WORKSPACE_TAG=1.1.0 -ACS_NGINX_TAG=3.0.0 +ACS_NGINX_TAG=3.0.1 +ACS_COMMUNITY_NGINX_TAG=1.0.0 SEARCH_TAG=latest ZEPPELIN_TAG=latest diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ce.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ce.yml index e48b8849a..903170400 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ce.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ce.yml @@ -30,12 +30,26 @@ services: -Daos.baseUrlOverwrite=http://localhost:8082/alfresco/aos -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\" -Ddeployment.method=DOCKER_COMPOSE + + -Dlocal.transform.service.enabled=true + -DlocalTransform.pdfrenderer.url=http://alfresco-pdf-renderer:8090/ + -DlocalTransform.imagemagick.url=http://imagemagick:8090/ + -DlocalTransform.libreoffice.url=http://libreoffice:8090/ + -DlocalTransform.tika.url=http://tika:8090/ + -DlocalTransform.misc.url=http://transform-misc:8090/ + + -Dlegacy.transform.service.enabled=true + -Dalfresco-pdf-renderer.url=http://alfresco-pdf-renderer:8090/ + -Djodconverter.url=http://libreoffice:8090/ + -Dimg.url=http://imagemagick:8090/ + -Dtika.url=http://tika:8090/ + -Dtransform.misc.url=http://transform-misc:8090/ + -Dcsrf.filter.enabled=false -Dalfresco.restApi.basicAuthScheme=true -Xms1500m -Xmx1500m - " + " <% if (httpMode == 'https') { %> ports: - - 8082:8080 <% if (httpMode == 'https') { %> - 8443:8443 volumes: - ./keystores/alfresco:/usr/local/tomcat/alf_data/keystore <% } %> @@ -123,6 +137,46 @@ services: - ./keystores/solr:/opt/<%=searchPath%>/keystore <% } %> <% } %> + alfresco-pdf-renderer: + image: alfresco/alfresco-pdf-renderer:${PDF_RENDERER_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ports: + - 8090:8090 + + imagemagick: + image: alfresco/alfresco-imagemagick:${IMAGE_MAGICK_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ports: + - 8091:8090 + + libreoffice: + image: alfresco/alfresco-libreoffice:${LIBREOFFICE_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ports: + - 8092:8090 + + tika: + image: alfresco/alfresco-tika:${TIKA_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ports: + - 8093:8090 + + transform-misc: + image: alfresco/alfresco-transform-misc:${TRANSFORM_MISC_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ports: + - 8094:8090 + share: image: alfresco/alfresco-share:${SHARE_TAG} mem_limit: 1g @@ -137,8 +191,6 @@ services: -Dalfresco.context=alfresco -Dalfresco.protocol=http " - ports: - - 8080:8080 postgres: image: postgres:${POSTGRES_TAG} @@ -159,3 +211,14 @@ services: - 5672:5672 # AMQP - 61616:61616 # OpenWire - 61613:61613 # STOMP + + proxy: + image: alfresco/acs-community-ngnix:${ACS_COMMUNITY_NGINX_TAG} + mem_limit: 128m + depends_on: + - alfresco + ports: + - 8080:8080 + links: + - alfresco + - share \ No newline at end of file diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml index 7ad1acce0..384cfa9a2 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/docker-compose-ee.yml @@ -25,20 +25,29 @@ services: -Dsolr.base.url=/solr <% if (sharding == 'true') { %> -Dsolr.useDynamicShardRegistration=true <% } %> -Dindex.subsystem.name=solr6 + + -Daos.baseUrlOverwrite=http://localhost:8080/alfresco/aos + -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\" + -Ddeployment.method=DOCKER_COMPOSE + + -Dtransform.service.enabled=true + -Dtransform.service.url=http://transform-router:8095 + -Dsfs.url=http://shared-file-store:8099/ + + -Dlocal.transform.service.enabled=true + -DlocalTransform.pdfrenderer.url=http://alfresco-pdf-renderer:8090/ + -DlocalTransform.imagemagick.url=http://imagemagick:8090/ + -DlocalTransform.libreoffice.url=http://libreoffice:8090/ + -DlocalTransform.tika.url=http://tika:8090/ + -DlocalTransform.misc.url=http://transform-misc:8090/ + + -Dlegacy.transform.service.enabled=true -Dalfresco-pdf-renderer.url=http://alfresco-pdf-renderer:8090/ -Djodconverter.url=http://libreoffice:8090/ -Dimg.url=http://imagemagick:8090/ -Dtika.url=http://tika:8090/ - -Dsfs.url=http://shared-file-store:8099/ - -Dshare.host=127.0.0.1 - -Dshare.port=8080 - -Dalfresco.host=localhost - -Dalfresco.port=8080 - -Daos.baseUrlOverwrite=http://localhost:8080/alfresco/aos - -Dmessaging.broker.url=\"failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true\" - -Ddeployment.method=DOCKER_COMPOSE - -Dlocal.transform.service.enabled=true - -Dtransform.service.enabled=true + -Dtransform.misc.url=http://transform-misc:8090/ + -Dcsrf.filter.enabled=false -Dalfresco.restApi.basicAuthScheme=true -Xms1500m -Xmx1500m @@ -62,8 +71,13 @@ services: ENABLE_SLAVE: "false" <% } %> <% if (sharding == 'true') { %> ENABLE_SHARDING: "true" NUM_SHARDS: "2" - SHARD_ID: "0" <% } %> <% if (explicitRouting == 'true') { %> - EXPLICIT_ROUTING_SHARDING: "true" <% } %> + SHARD_ID: "0" <% if (shardingMethod == 'DB_ID_RANGE') { %> + SHARD_RANGE: "0-800" <% } %> <% if (shardingMethod == 'DATE') { %> + SHARD_KEY: "cm:created" + SHARD_DATE_GROUPING: "2" <% } %> <% if (shardingMethod == 'PROPERTY') { %> + SHARD_KEY: "shard:shardId" <% } %> <% if (shardingMethod == 'EXPLICIT_ID' || shardingMethod == 'EXPLICIT_ID_FALLBACK_LRIS') { %> + SHARD_KEY: "shard:shardId" <% } %> + SHARDING_METHOD: <%=shardingMethod%> <% } %> mem_limit: 1200m environment: #Solr needs to know how to register itself with Alfresco @@ -114,8 +128,13 @@ services: MASTER_HOST: solr6 <% } %> <% if (sharding == 'true') { %> ENABLE_SHARDING: "true" NUM_SHARDS: "2" - SHARD_ID: "1" <% } %> <% if (explicitRouting == 'true') { %> - EXPLICIT_ROUTING_SHARDING: "true" <% } %> + SHARD_ID: "1" <% if (shardingMethod == 'DB_ID_RANGE') { %> + SHARD_RANGE: "801-40000" <% } %> <% if (shardingMethod == 'DATE') { %> + SHARD_KEY: "cm:created" + SHARD_DATE_GROUPING: "2" <% } %> <% if (shardingMethod == 'PROPERTY') { %> + SHARD_KEY: "shard:shardId" <% } %> <% if (shardingMethod == 'EXPLICIT_ID' || shardingMethod == 'EXPLICIT_ID_FALLBACK_LRIS') { %> + SHARD_KEY: "shard:shardId" <% } %> + SHARDING_METHOD: <%=shardingMethod%> <% } %> mem_limit: 1200m environment: #Solr needs to know how to register itself with Alfresco @@ -190,12 +209,14 @@ services: LIBREOFFICE_URL : "http://libreoffice:8090" TIKA_URL : "http://tika:8090" FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" + ports: + - 8095:8095 links: - activemq alfresco-pdf-renderer: - image: quay.io/alfresco/alfresco-pdf-renderer:${PDF_RENDERER_TAG} - mem_limit: 512m + image: alfresco/alfresco-pdf-renderer:${PDF_RENDERER_TAG} + mem_limit: 1g environment: JAVA_OPTS: " -Xms256m -Xmx512m" ACTIVEMQ_URL: "nio://activemq:61616" @@ -206,8 +227,8 @@ services: - activemq imagemagick: - image: quay.io/alfresco/alfresco-imagemagick:${IMAGE_MAGICK_TAG} - mem_limit: 512m + image: alfresco/alfresco-imagemagick:${IMAGE_MAGICK_TAG} + mem_limit: 1g environment: JAVA_OPTS: " -Xms256m -Xmx512m" ACTIVEMQ_URL: "nio://activemq:61616" @@ -218,7 +239,7 @@ services: - activemq libreoffice: - image: quay.io/alfresco/alfresco-libreoffice:${LIBREOFFICE_TAG} + image: alfresco/alfresco-libreoffice:${LIBREOFFICE_TAG} mem_limit: 1g environment: JAVA_OPTS: " -Xms256m -Xmx512m" @@ -230,8 +251,8 @@ services: - activemq tika: - image: quay.io/alfresco/alfresco-tika:${TIKA_TAG} - mem_limit: 512m + image: alfresco/alfresco-tika:${TIKA_TAG} + mem_limit: 1g environment: JAVA_OPTS: " -Xms256m -Xmx512m" ACTIVEMQ_URL: "nio://activemq:61616" @@ -239,7 +260,19 @@ services: ports: - 8093:8090 links: - - activemq + - activemq + + transform-misc: + image: alfresco/alfresco-transform-misc:${TRANSFORM_MISC_TAG} + mem_limit: 1g + environment: + JAVA_OPTS: " -Xms256m -Xmx512m" + ACTIVEMQ_URL: "nio://activemq:61616" + FILE_STORE_URL: "http://shared-file-store:8099/alfresco/api/-default-/private/sfs/versions/1/file" + ports: + - 8094:8090 + links: + - activemq shared-file-store: image: alfresco/alfresco-shared-file-store:${SHARED_FILE_STORE_TAG} @@ -295,7 +328,7 @@ services: BASEPATH: ./ proxy: - image: quay.io/alfresco/alfresco-acs-nginx:${ACS_NGINX_TAG} + image: alfresco/alfresco-acs-nginx:${ACS_NGINX_TAG} mem_limit: 128m depends_on: - alfresco diff --git a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/search/Dockerfile b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/search/Dockerfile index 9cde8fe42..a4c8ebcdf 100755 --- a/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/search/Dockerfile +++ b/e2e-test/generator-alfresco-docker-compose/generators/app/templates/latest/search/Dockerfile @@ -1,5 +1,6 @@ ARG SEARCH_TAG -FROM <%=searchImage%>:${SEARCH_TAG} +# FROM <%=searchImage%>:${SEARCH_TAG} +FROM searchservices:develop # COMMON ARG ALFRESCO_HOSTNAME @@ -89,16 +90,38 @@ RUN if [ "$ENABLE_SHARDING" == "true" ] ; then \ ${DIST_DIR}/solr/bin/search_config_setup.sh; \ fi -# EXPLICIT ROUTING SHARDING -ARG EXPLICIT_ROUTING_SHARDING -ENV EXPLICIT_ROUTING_SHARDING $EXPLICIT_ROUTING_SHARDING +# SHARDING METHOD +ARG SHARDING_METHOD +ENV SHARDING_METHOD $SHARDING_METHOD +ARG SHARD_RANGE +ENV SHARD_RANGE $SHARD_RANGE +ARG SHARD_KEY +ENV SHARD_KEY $SHARD_KEY +ARG SHARD_DATE_GROUPING +ENV SHARD_DATE_GROUPING $SHARD_DATE_GROUPING # Set Shard Method and Shard Key property name -RUN if [ "$EXPLICIT_ROUTING_SHARDING" == "true" ] ; then \ - sed -i '/^bash.*/i sed -i "'"s/shard.method=DB_ID/shard.method=EXPLICIT_ID_FALLBACK_DBID/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ - ${DIST_DIR}/solr/bin/search_config_setup.sh && \ - sed -i '/^bash.*/i echo "\nshard.key=shard:shardId\n" >> ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ +RUN if [ "$ENABLE_SHARDING" == "true" ] ; then \ + sed -i '/^bash.*/i sed -i "'"s/shard.method=DB_ID/shard.method=${SHARDING_METHOD}/g"'" ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ ${DIST_DIR}/solr/bin/search_config_setup.sh; \ + if [ "$SHARDING_METHOD" == "DB_ID_RANGE" ]; then \ + sed -i '/^bash.*/i echo "\nshard.range=${SHARD_RANGE}\n" >> ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ + ${DIST_DIR}/solr/bin/search_config_setup.sh; \ + fi; \ + if [ "$SHARDING_METHOD" == "DATE" ]; then \ + sed -i '/^bash.*/i echo "\nshard.key=${SHARD_KEY}\n" >> ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ + ${DIST_DIR}/solr/bin/search_config_setup.sh && \ + sed -i '/^bash.*/i echo "\nshard.date.grouping=${SHARD_DATE_GROUPING}\n" >> ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ + ${DIST_DIR}/solr/bin/search_config_setup.sh; \ + fi; \ + if [ "$SHARDING_METHOD" == "PROPERTY" ]; then \ + sed -i '/^bash.*/i echo "\nshard.key=${SHARD_KEY}\n" >> ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ + ${DIST_DIR}/solr/bin/search_config_setup.sh; \ + fi; \ + if [[ ("$SHARDING_METHOD" == "EXPLICIT_ID") || ("$SHARDING_METHOD" == "EXPLICIT_ID_FALLBACK_LRIS") ]]; then \ + sed -i '/^bash.*/i echo "\nshard.key=${SHARD_KEY}\n" >> ${DIST_DIR}/solrhome/templates/rerank/conf/solrcore.properties\n' \ + ${DIST_DIR}/solr/bin/search_config_setup.sh; \ + fi; \ fi # Useless for 'none'/'http' communications with Alfresco diff --git a/e2e-test/generator-alfresco-docker-compose/package-lock.json b/e2e-test/generator-alfresco-docker-compose/package-lock.json index 0a890eb5a..988ed30d1 100644 --- a/e2e-test/generator-alfresco-docker-compose/package-lock.json +++ b/e2e-test/generator-alfresco-docker-compose/package-lock.json @@ -1216,9 +1216,9 @@ } }, "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, "log-symbols": { "version": "2.2.0", @@ -1358,9 +1358,9 @@ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -1804,9 +1804,9 @@ "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" }, "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -2196,35 +2196,14 @@ "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" }, "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } + "set-value": "^2.0.1" } }, "unset-value": {