From 55800bfa637f5522c464f0dcd71741a0c8580489 Mon Sep 17 00:00:00 2001 From: "Serhii Plyhun (commercial)" Date: Tue, 18 Apr 2023 15:27:14 +0200 Subject: [PATCH 1/5] Force the uniqueness of Mesh usernames. (#1498) * Force the username uniqueness * Changelog * Update LTS-CHANGELOG.adoc --------- Co-authored-by: Serhii Plyhun --- LTS-CHANGELOG.adoc | 6 +++++- .../mesh/core/data/dao/PersistingUserDao.java | 12 +++++------- .../com/gentics/mesh/core/data/impl/UserImpl.java | 6 ++++++ .../mesh/auth/oauth2/MeshOAuth2ServiceImpl.java | 2 +- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/LTS-CHANGELOG.adoc b/LTS-CHANGELOG.adoc index 1b99306ec6..55f3b4e0e5 100644 --- a/LTS-CHANGELOG.adoc +++ b/LTS-CHANGELOG.adoc @@ -20,6 +20,10 @@ All fixes and changes in LTS releases will be released the next minor release. C [[v1.8.21]] == 1.8.21 (TBD) +icon:check[] Core: The name of a Mesh user is now forced to be unique on a database level, to prevent creating users with an already existing username. The duplicated username detection mechanism has also been improved. + +CAUTION: Duplicate usernames must be removed before the update, otherwise Mesh will fail to start! + icon:check[] Monitoring: Calling the `/health/ready` endpoint while restoring an OrientDB backup would block the request. If too many requests were blocked in this way, Mesh would be considered not live any more. This has been fixed now, during a restore, the endpoint `/health/ready` will now fail immediately while the liveness status will be maintained. @@ -136,7 +140,7 @@ icon:check[] Core: Possible errors during node migrations in branches have been icon:plus[] Java Rest Client: The new options `maxRetries` and `retryDelayMs` can be used to configure automatic retries for requests to Mesh which failed due to a network error. By default retries are disabled. A value of -1 for `retryDelayMs` will automatically calculate a delay such that all tries are performed in the timespan of the call timeout configured for the Ok HTTP client. -icon:check[] Plugins: Fixes plugin initialization such that plugins that failed to load will cause the livenes probe to return an unhealthy status. +icon:check[] Plugins: Fixes plugin initialization such that plugins that failed to load will cause the liveness probe to return an unhealthy status. icon:check[] Cluster: The plugin initialization now waits not only for the write quorum being reached, but for the node availability as well, during the startup. diff --git a/mdm/common/src/main/java/com/gentics/mesh/core/data/dao/PersistingUserDao.java b/mdm/common/src/main/java/com/gentics/mesh/core/data/dao/PersistingUserDao.java index 094b194626..acbbbe26cb 100644 --- a/mdm/common/src/main/java/com/gentics/mesh/core/data/dao/PersistingUserDao.java +++ b/mdm/common/src/main/java/com/gentics/mesh/core/data/dao/PersistingUserDao.java @@ -154,7 +154,11 @@ default HibUser create(String username, HibUser creator) { * @param creator * @return */ - default HibUser init(HibUser user, String username, HibUser creator) { + private HibUser init(HibUser user, String username, HibUser creator) { + HibUser conflicting = findByUsername(username); + if (conflicting != null && !conflicting.getUuid().equals(user.getUuid())) { + throw conflict(conflicting.getUuid(), username, "user_conflicting_username"); + } user.setUsername(username); user.enable(); user.generateBucketId(); @@ -497,12 +501,6 @@ default HibUser create(InternalActionContext ac, EventQueueBatch batch, String u throw error(FORBIDDEN, "error_missing_perm", userRoot.getUuid(), CREATE_PERM.getRestPerm().getName()); } String groupUuid = requestModel.getGroupUuid(); - String userName = requestModel.getUsername(); - HibUser conflictingUser = findByUsername(userName); - if (conflictingUser != null) { - throw conflict(conflictingUser.getUuid(), userName, "user_conflicting_username"); - } - HibUser user = create(requestModel.getUsername(), requestUser, uuid); user.setFirstname(requestModel.getFirstname()); user.setUsername(requestModel.getUsername()); diff --git a/mdm/orientdb-wrapper/src/main/java/com/gentics/mesh/core/data/impl/UserImpl.java b/mdm/orientdb-wrapper/src/main/java/com/gentics/mesh/core/data/impl/UserImpl.java index 39ce72d2c4..160a8f5462 100644 --- a/mdm/orientdb-wrapper/src/main/java/com/gentics/mesh/core/data/impl/UserImpl.java +++ b/mdm/orientdb-wrapper/src/main/java/com/gentics/mesh/core/data/impl/UserImpl.java @@ -7,6 +7,7 @@ import static com.gentics.mesh.core.data.relationship.GraphRelationships.HAS_USER; import static com.gentics.mesh.core.data.util.HibClassConverter.toGraph; import static com.gentics.mesh.madl.index.EdgeIndexDefinition.edgeIndex; +import static com.gentics.mesh.madl.index.VertexIndexDefinition.vertexIndex; import java.util.Optional; import java.util.Spliterator; @@ -41,6 +42,7 @@ import com.gentics.mesh.core.result.Result; import com.gentics.mesh.core.result.TraversalResult; import com.gentics.mesh.event.EventQueueBatch; +import com.gentics.mesh.madl.field.FieldType; import com.gentics.mesh.parameter.PagingParameters; import com.gentics.mesh.util.ETag; import com.syncleus.ferma.traversals.VertexTraversal; @@ -88,6 +90,10 @@ public class UserImpl extends AbstractMeshCoreVertex implements Us public static void init(TypeHandler type, IndexHandler index) { type.createVertexType(UserImpl.class, MeshVertexImpl.class); index.createIndex(edgeIndex(ASSIGNED_TO_ROLE).withOut()); + // TODO this may affect a lot of user, so we'd play fair here and check before applying this. + index.createIndex(vertexIndex(UserImpl.class) + .withField(USERNAME_PROPERTY_KEY, FieldType.STRING) + .unique()); } @Override diff --git a/services/jwt-auth/src/main/java/com/gentics/mesh/auth/oauth2/MeshOAuth2ServiceImpl.java b/services/jwt-auth/src/main/java/com/gentics/mesh/auth/oauth2/MeshOAuth2ServiceImpl.java index 567a728ddd..8615ad33d1 100644 --- a/services/jwt-auth/src/main/java/com/gentics/mesh/auth/oauth2/MeshOAuth2ServiceImpl.java +++ b/services/jwt-auth/src/main/java/com/gentics/mesh/auth/oauth2/MeshOAuth2ServiceImpl.java @@ -230,7 +230,7 @@ protected Single syncUser(RoutingContext rc, JsonObject token) { .flatMapSingleElement(user -> db.singleTx(user.getDelegate()::getUuid).flatMap(uuid -> { // Compare the stored and current token id to see whether the current token is different. // In that case a sync must be invoked. - String lastSeenTokenId = TOKEN_ID_LOG.getIfPresent(user.getDelegate().getUuid()); + String lastSeenTokenId = TOKEN_ID_LOG.getIfPresent(uuid); if (lastSeenTokenId == null || !lastSeenTokenId.equals(cachingId)) { return assertReadOnlyDeactivated().andThen(db.singleTx(tx -> { HibUser admin = tx.userDao().findByUsername("admin"); From 70f4c372a070601a7ed29db1d1e92de9ba7151fd Mon Sep 17 00:00:00 2001 From: Norbert Pomaroli Date: Wed, 19 Apr 2023 12:58:57 +0200 Subject: [PATCH 2/5] Make migration jobs more robust (#1503) --- LTS-CHANGELOG.adoc | 6 ++ .../gentics/mesh/etc/config/MeshOptions.java | 24 +++++++- .../migration/AbstractMigrationHandler.java | 31 +++++++++- .../migration/impl/BranchMigrationImpl.java | 12 +++- .../impl/MicronodeMigrationImpl.java | 13 +++- .../migration/impl/NodeMigrationImpl.java | 25 ++++++-- .../verticle/job/JobWorkerVerticleImpl.java | 59 ++++++++++++++++++- .../ClusterEnabledRequestDelegatorImpl.java | 31 +++++++++- .../gentics/mesh/core/jobs/JobProcessor.java | 6 ++ .../mesh/core/jobs/JobProcessorImpl.java | 13 +++- .../migration/MigrationAbortedException.java | 19 ++++++ .../impl/MigrationStatusHandlerImpl.java | 19 +++--- 12 files changed, 236 insertions(+), 22 deletions(-) create mode 100644 mdm/common/src/main/java/com/gentics/mesh/core/migration/MigrationAbortedException.java diff --git a/LTS-CHANGELOG.adoc b/LTS-CHANGELOG.adoc index 55f3b4e0e5..908a05eb25 100644 --- a/LTS-CHANGELOG.adoc +++ b/LTS-CHANGELOG.adoc @@ -29,6 +29,12 @@ be considered not live any more. This has been fixed now, during a restore, the icon:check[] Monitoring: Failing calls to any `/health/...` endpoints will no longer log the whole stacktrace, since this does not contain useful information. +icon:check[] Core: Migration jobs have been made more robust: Migration jobs will now be aborted, in cases were the storage is no longer ready to be written to +(e.g. write quorum is not reached, or the storage is read-only due to insufficient disk space available). A periodic check (interval can be configured via setting `migrationTriggerInterval`) +will continue processing of aborted jobs. + +icon:check[] Clustering: when running in CUD coordination mode, the requests to trigger job migration were not delegated to the current master. This has been fixed now. + [[v1.8.20]] == 1.8.20 (22.03.2023) diff --git a/api/src/main/java/com/gentics/mesh/etc/config/MeshOptions.java b/api/src/main/java/com/gentics/mesh/etc/config/MeshOptions.java index 68e739813d..60ffe8b2bc 100644 --- a/api/src/main/java/com/gentics/mesh/etc/config/MeshOptions.java +++ b/api/src/main/java/com/gentics/mesh/etc/config/MeshOptions.java @@ -24,6 +24,7 @@ public abstract class MeshOptions implements Option { public static final String DEFAULT_DIRECTORY_NAME = "graphdb"; public static final int DEFAULT_MAX_DEPTH = 10; public static final int DEFAULT_PLUGIN_TIMEOUT = 120; + public static final long DEFAULT_MIGRATION_TRIGGER_INTERVAL = 60_000; public static final String MESH_DEFAULT_LANG_ENV = "MESH_DEFAULT_LANG"; public static final String MESH_LANGUAGES_FILE_PATH_ENV = "MESH_LANGUAGES_FILE_PATH"; @@ -39,7 +40,9 @@ public abstract class MeshOptions implements Option { public static final String MESH_INITIAL_ADMIN_PASSWORD_ENV = "MESH_INITIAL_ADMIN_PASSWORD"; public static final String MESH_INITIAL_ADMIN_PASSWORD_FORCE_RESET_ENV = "MESH_INITIAL_ADMIN_PASSWORD_FORCE_RESET"; public static final String MESH_MAX_PURGE_BATCH_SIZE = "MESH_MAX_PURGE_BATCH_SIZE"; - private static final String MESH_MAX_MIGRATION_BATCH_SIZE = "MESH_MAX_MIGRATION_BATCH_SIZE"; + public static final String MESH_MAX_MIGRATION_BATCH_SIZE = "MESH_MAX_MIGRATION_BATCH_SIZE"; + public static final String MESH_MIGRATION_TRIGGER_INTERVAL = "MESH_MIGRATION_TRIGGER_INTERVAL"; + // TODO remove this setting. There should not be a default max depth. This is no longer needed once we remove the expand all parameter private int defaultMaxDepth = DEFAULT_MAX_DEPTH; @@ -143,6 +146,11 @@ public abstract class MeshOptions implements Option { @EnvironmentVariable(name = MESH_MAX_MIGRATION_BATCH_SIZE, description = "Override the maximum migration batch size") private int migrationMaxBatchSize = 50; + @JsonProperty(required = false) + @JsonPropertyDescription("Interval in ms for the automatic migration job trigger. Setting this to a non-positive value will disable automatic job triggering. Default: " + DEFAULT_MIGRATION_TRIGGER_INTERVAL + " ms.") + @EnvironmentVariable(name = MESH_MIGRATION_TRIGGER_INTERVAL, description = "Override the migration trigger interval") + private long migrationTriggerInterval = DEFAULT_MIGRATION_TRIGGER_INTERVAL; + @JsonProperty(required = true) @JsonPropertyDescription("GraphQL options.") private GraphQLOptions graphQLOptions = new GraphQLOptions(); @@ -520,6 +528,20 @@ public void setMigrationMaxBatchSize(int migrationMaxBatchSize) { this.migrationMaxBatchSize = migrationMaxBatchSize; } + /** + * Get the automatic job migration trigger interval in ms. + * @return interval in ms + */ + public long getMigrationTriggerInterval() { + return migrationTriggerInterval; + } + + @Setter + public MeshOptions setMigrationTriggerInterval(long migrationTriggerInterval) { + this.migrationTriggerInterval = migrationTriggerInterval; + return this; + } + /** * Validate this and the nested options. */ diff --git a/core/src/main/java/com/gentics/mesh/core/migration/AbstractMigrationHandler.java b/core/src/main/java/com/gentics/mesh/core/migration/AbstractMigrationHandler.java index 36fb402b1b..827fc53de5 100644 --- a/core/src/main/java/com/gentics/mesh/core/migration/AbstractMigrationHandler.java +++ b/core/src/main/java/com/gentics/mesh/core/migration/AbstractMigrationHandler.java @@ -35,6 +35,7 @@ import com.gentics.mesh.core.rest.node.FieldMap; import com.gentics.mesh.core.rest.node.FieldMapImpl; import com.gentics.mesh.core.rest.node.field.Field; +import com.gentics.mesh.distributed.RequestDelegator; import com.gentics.mesh.etc.config.MeshOptions; import com.gentics.mesh.event.EventQueueBatch; import com.gentics.mesh.metric.MetricsService; @@ -61,13 +62,19 @@ public abstract class AbstractMigrationHandler extends AbstractHandler implement protected final MeshOptions options; + private final RequestDelegator delegator; + + private final boolean clusteringEnabled; + public AbstractMigrationHandler(Database db, BinaryUploadHandlerImpl binaryFieldHandler, MetricsService metrics, - Provider batchProvider, MeshOptions options) { + Provider batchProvider, MeshOptions options, RequestDelegator delegator) { this.db = db; this.binaryFieldHandler = binaryFieldHandler; this.metrics = metrics; this.batchProvider = batchProvider; this.options = options; + this.delegator = delegator; + clusteringEnabled = this.options.getClusterOptions().isEnabled(); } /** @@ -136,6 +143,28 @@ protected List migrateLoop(Queue containers, EventCauseInfo ca sqb.setCause(cause); int pollCount = options.getMigrationMaxBatchSize(); while (!containers.isEmpty()) { + // check whether the database is ready for the migration + if (db.isReadOnly(false)) { + errorsDetected.add(new MigrationAbortedException("Database is read-only.")); + return errorsDetected; + } + if (clusteringEnabled && db.clusterManager().isClusterTopologyLocked()) { + errorsDetected.add(new MigrationAbortedException("Cluster is locked due to topology change.")); + return errorsDetected; + } + if (clusteringEnabled && !db.clusterManager().isWriteQuorumReached()) { + errorsDetected.add(new MigrationAbortedException("Write quorum not reached.")); + return errorsDetected; + } + if (clusteringEnabled && !db.clusterManager().isLocalNodeOnline()) { + errorsDetected.add(new MigrationAbortedException("Local node is not online.")); + return errorsDetected; + } + if (clusteringEnabled && !delegator.isMaster()) { + errorsDetected.add(new MigrationAbortedException("Instance is not the master.")); + return errorsDetected; + } + List containerList = CollectionUtil.pollMany(containers, pollCount); try { // Each container migration has its own search queue batch which is then combined with other batch entries. diff --git a/core/src/main/java/com/gentics/mesh/core/migration/impl/BranchMigrationImpl.java b/core/src/main/java/com/gentics/mesh/core/migration/impl/BranchMigrationImpl.java index 97e2ac9428..b7ea1d46de 100644 --- a/core/src/main/java/com/gentics/mesh/core/migration/impl/BranchMigrationImpl.java +++ b/core/src/main/java/com/gentics/mesh/core/migration/impl/BranchMigrationImpl.java @@ -33,6 +33,7 @@ import com.gentics.mesh.core.migration.BranchMigration; import com.gentics.mesh.core.rest.event.node.BranchMigrationCause; import com.gentics.mesh.core.result.Result; +import com.gentics.mesh.distributed.RequestDelegator; import com.gentics.mesh.etc.config.MeshOptions; import com.gentics.mesh.event.EventQueueBatch; import com.gentics.mesh.metric.MetricsService; @@ -51,8 +52,9 @@ public class BranchMigrationImpl extends AbstractMigrationHandler implements Bra private static final Logger log = LoggerFactory.getLogger(BranchMigrationImpl.class); @Inject - public BranchMigrationImpl(Database db, BinaryUploadHandlerImpl nodeFieldAPIHandler, MetricsService metrics, Provider batchProvider, MeshOptions options) { - super(db, nodeFieldAPIHandler, metrics, batchProvider, options); + public BranchMigrationImpl(Database db, BinaryUploadHandlerImpl nodeFieldAPIHandler, MetricsService metrics, + Provider batchProvider, MeshOptions options, RequestDelegator delegator) { + super(db, nodeFieldAPIHandler, metrics, batchProvider, options, delegator); } @Override @@ -112,7 +114,11 @@ public Completable migrateBranch(BranchMigrationContext context) { log.error("Encountered migration error.", error); } } - result = Completable.error(new CompositeException(errorsDetected)); + if (errorsDetected.size() == 1) { + result = Completable.error(errorsDetected.get(0)); + } else { + result = Completable.error(new CompositeException(errorsDetected)); + } } return result; }); diff --git a/core/src/main/java/com/gentics/mesh/core/migration/impl/MicronodeMigrationImpl.java b/core/src/main/java/com/gentics/mesh/core/migration/impl/MicronodeMigrationImpl.java index 33a3c1dce1..7b87a5c186 100644 --- a/core/src/main/java/com/gentics/mesh/core/migration/impl/MicronodeMigrationImpl.java +++ b/core/src/main/java/com/gentics/mesh/core/migration/impl/MicronodeMigrationImpl.java @@ -42,6 +42,7 @@ import com.gentics.mesh.core.rest.schema.FieldSchemaContainer; import com.gentics.mesh.core.rest.schema.ListFieldSchema; import com.gentics.mesh.core.verticle.handler.WriteLock; +import com.gentics.mesh.distributed.RequestDelegator; import com.gentics.mesh.etc.config.MeshOptions; import com.gentics.mesh.event.EventQueueBatch; import com.gentics.mesh.metric.MetricsService; @@ -62,8 +63,10 @@ public class MicronodeMigrationImpl extends AbstractMigrationHandler implements private final WriteLock writeLock; @Inject - public MicronodeMigrationImpl(Database db, BinaryUploadHandlerImpl binaryFieldHandler, MetricsService metrics, Provider batchProvider, WriteLock writeLock, MeshOptions options) { - super(db, binaryFieldHandler, metrics, batchProvider, options); + public MicronodeMigrationImpl(Database db, BinaryUploadHandlerImpl binaryFieldHandler, MetricsService metrics, + Provider batchProvider, WriteLock writeLock, MeshOptions options, + RequestDelegator delegator) { + super(db, binaryFieldHandler, metrics, batchProvider, options, delegator); this.writeLock = writeLock; } @@ -130,7 +133,11 @@ public Completable migrateMicronodes(MicronodeMigrationContext context) { log.error("Encountered migration error.", error); } } - result = Completable.error(new CompositeException(errorsDetected)); + if (errorsDetected.size() == 1) { + result = Completable.error(errorsDetected.get(0)); + } else { + result = Completable.error(new CompositeException(errorsDetected)); + } } return result; }); diff --git a/core/src/main/java/com/gentics/mesh/core/migration/impl/NodeMigrationImpl.java b/core/src/main/java/com/gentics/mesh/core/migration/impl/NodeMigrationImpl.java index 03330ac103..e885f314f3 100644 --- a/core/src/main/java/com/gentics/mesh/core/migration/impl/NodeMigrationImpl.java +++ b/core/src/main/java/com/gentics/mesh/core/migration/impl/NodeMigrationImpl.java @@ -46,10 +46,12 @@ import com.gentics.mesh.core.endpoint.migration.MigrationStatusHandler; import com.gentics.mesh.core.endpoint.node.BinaryUploadHandlerImpl; import com.gentics.mesh.core.migration.AbstractMigrationHandler; +import com.gentics.mesh.core.migration.MigrationAbortedException; import com.gentics.mesh.core.migration.NodeMigration; import com.gentics.mesh.core.rest.common.FieldContainer; import com.gentics.mesh.core.rest.event.node.SchemaMigrationCause; import com.gentics.mesh.core.verticle.handler.WriteLock; +import com.gentics.mesh.distributed.RequestDelegator; import com.gentics.mesh.etc.config.MeshOptions; import com.gentics.mesh.event.EventQueueBatch; import com.gentics.mesh.metric.MetricsService; @@ -74,8 +76,8 @@ public class NodeMigrationImpl extends AbstractMigrationHandler implements NodeM @Inject public NodeMigrationImpl(Database db, BinaryUploadHandlerImpl nodeFieldAPIHandler, MetricsService metrics, Provider batchProvider, - WriteLock writeLock, MeshOptions options) { - super(db, nodeFieldAPIHandler, metrics, batchProvider, options); + WriteLock writeLock, MeshOptions options, RequestDelegator delegator) { + super(db, nodeFieldAPIHandler, metrics, batchProvider, options, delegator); migrationGauge = metrics.longGauge(NODE_MIGRATION_PENDING); this.writeLock = writeLock; } @@ -227,7 +229,18 @@ public Completable migrateNodes(NodeMigrationActionContext context) { migrationGauge.decrementAndGet(); } }); - } while (batchSize > 0 && currentBatch > 0 && currentBatch >= batchSize); + + // when containers is not empty, something bad happened and we need to let the migration fail immediately + if (!containers.isEmpty()) { + if (errorsDetected.size() > 1) { + return Completable.error(new CompositeException(errorsDetected)); + } else if (errorsDetected.size() == 1) { + return Completable.error(errorsDetected.get(0)); + } else { + return Completable.error(new MigrationAbortedException("Not all containers of the current batch were migrated.")); + } + } + } while (batchSize > 0 && currentBatch > 0 && currentBatch >= batchSize); // TODO prepare errors. They should be easy to understand and to grasp Completable result = Completable.complete(); @@ -237,7 +250,11 @@ public Completable migrateNodes(NodeMigrationActionContext context) { log.error("Encountered migration error.", error); } } - result = Completable.error(new CompositeException(errorsDetected)); + if (errorsDetected.size() == 1) { + result = Completable.error(errorsDetected.get(0)); + } else { + result = Completable.error(new CompositeException(errorsDetected)); + } } return result; }); diff --git a/core/src/main/java/com/gentics/mesh/core/verticle/job/JobWorkerVerticleImpl.java b/core/src/main/java/com/gentics/mesh/core/verticle/job/JobWorkerVerticleImpl.java index a67bd424b0..3ad67846d7 100644 --- a/core/src/main/java/com/gentics/mesh/core/verticle/job/JobWorkerVerticleImpl.java +++ b/core/src/main/java/com/gentics/mesh/core/verticle/job/JobWorkerVerticleImpl.java @@ -8,6 +8,8 @@ import com.gentics.mesh.cli.BootstrapInitializer; import com.gentics.mesh.core.db.Database; import com.gentics.mesh.core.jobs.JobProcessor; +import com.gentics.mesh.distributed.RequestDelegator; +import com.gentics.mesh.etc.config.MeshOptions; import com.gentics.mesh.verticle.AbstractJobVerticle; import dagger.Lazy; @@ -35,12 +37,39 @@ public class JobWorkerVerticleImpl extends AbstractJobVerticle implements JobWor private Lazy boot; private JobProcessor jobProcessor; private Database db; + private final RequestDelegator delegator; + private final boolean clusteringEnabled; @Inject - public JobWorkerVerticleImpl(Database db, Lazy boot, JobProcessor jobProcessor) { + public JobWorkerVerticleImpl(Database db, Lazy boot, JobProcessor jobProcessor, + MeshOptions options, RequestDelegator delegator) { this.db = db; this.boot = boot; this.jobProcessor = jobProcessor; + this.delegator = delegator; + this.clusteringEnabled = options.getClusterOptions().isEnabled(); + } + + @Override + public void start() throws Exception { + super.start(); + + long migrationTriggerInterval = boot.get().mesh().getOptions().getMigrationTriggerInterval(); + + if (migrationTriggerInterval > 0) { + vertx.setPeriodic(migrationTriggerInterval, id -> { + if (!isCurrentMaster()) { + log.debug("Not invoking job processing, because instance is not the current master"); + } else if(!isDatabaseReadyForJobs()) { + log.debug("Not invoking job processing, because instance is not ready to process jobs"); + } else if (jobProcessor.isProcessing()) { + log.debug("Not invoking job processing, because jobs are currently processed"); + } else { + log.debug("Invoke job processing"); + vertx.eventBus().publish(getJobAdress(), null); + } + }); + } } @Override @@ -58,4 +87,32 @@ public Completable executeJob(Message message) { return Completable.defer(() -> jobProcessor.process()); } + /** + * Check whether the instance is currently the master + * @return true for the master (or clustering not enabled) + */ + private boolean isCurrentMaster() { + if (clusteringEnabled) { + return delegator.isMaster(); + } else { + return true; + } + } + + /** + * Check whether the database is ready to process jobs. When clustering is enabled, this will check whether + *
    + *
  1. The local database is online
  2. + *
  3. The write quorum is reached
  4. + *
  5. The cluster is not locked due to topology changes
  6. + *
+ * @return true when the database is ready for job processing + */ + private boolean isDatabaseReadyForJobs() { + if (clusteringEnabled) { + return db.clusterManager().isLocalNodeOnline() && db.clusterManager().isWriteQuorumReached() && !db.clusterManager().isClusterTopologyLocked(); + } else { + return true; + } + } } diff --git a/distributed-coordinator/src/main/java/com/gentics/mesh/distributed/coordinator/proxy/ClusterEnabledRequestDelegatorImpl.java b/distributed-coordinator/src/main/java/com/gentics/mesh/distributed/coordinator/proxy/ClusterEnabledRequestDelegatorImpl.java index 50e923345f..fe094a0126 100644 --- a/distributed-coordinator/src/main/java/com/gentics/mesh/distributed/coordinator/proxy/ClusterEnabledRequestDelegatorImpl.java +++ b/distributed-coordinator/src/main/java/com/gentics/mesh/distributed/coordinator/proxy/ClusterEnabledRequestDelegatorImpl.java @@ -42,6 +42,8 @@ public class ClusterEnabledRequestDelegatorImpl implements RequestDelegator { private final HttpClient httpClient; private final MeshOptions options; + private static final Set blacklistPathPatternSet = createBlacklistPatternSet(); + private static final Set whiteListPathPatternSet = createWhitelistPatternSet(); @Inject @@ -75,7 +77,7 @@ public void handle(RoutingContext rc) { return; } - if (isWhitelisted(path)) { + if (isWhitelisted(path) && !isBlacklisted(path)) { if (log.isDebugEnabled()) { log.debug("URI {" + requestURI + "} with method {" + method.name() + "} is whitelisted. Skipping delegation"); } @@ -226,6 +228,26 @@ private void forwardHeaders(HttpServerRequest request, HttpClientRequest forward } + /** + * Check whether the given path is blacklisted (meaning: should be delegated to the master, even if also whitelisted) + * @param path path to check + * @return true iff the path is blacklisted + */ + public static boolean isBlacklisted(String path) { + for (Pattern pattern : blacklistPathPatternSet) { + Matcher m = pattern.matcher(path); + if (m.matches()) { + return true; + } + } + return false; + } + + /** + * Check whether the given path is whitelisted (meaning: should not be delegated to the master) + * @param path path to check + * @return true iff the path is whitelisted + */ public static boolean isWhitelisted(String path) { for (Pattern pattern : whiteListPathPatternSet) { Matcher m = pattern.matcher(path); @@ -236,6 +258,13 @@ public static boolean isWhitelisted(String path) { return false; } + private static Set createBlacklistPatternSet() { + Set patterns = new HashSet<>(); + patterns.add(Pattern.compile("/api/v[0-9]+/admin/processJobs")); + patterns.add(Pattern.compile("/api/v[0-9]+/admin/jobs/.*/process")); + return patterns; + } + private static Set createWhitelistPatternSet() { Set patterns = new HashSet<>(); patterns.add(Pattern.compile("/api/v[0-9]+/?")); diff --git a/mdm/api/src/main/java/com/gentics/mesh/core/jobs/JobProcessor.java b/mdm/api/src/main/java/com/gentics/mesh/core/jobs/JobProcessor.java index 18f760e17a..c12b1b052c 100644 --- a/mdm/api/src/main/java/com/gentics/mesh/core/jobs/JobProcessor.java +++ b/mdm/api/src/main/java/com/gentics/mesh/core/jobs/JobProcessor.java @@ -12,4 +12,10 @@ public interface JobProcessor { * @return completable */ Completable process(); + + /** + * Check whether jobs are currently being processed + * @return true when jobs are processed, false if not + */ + boolean isProcessing(); } diff --git a/mdm/common/src/main/java/com/gentics/mesh/core/jobs/JobProcessorImpl.java b/mdm/common/src/main/java/com/gentics/mesh/core/jobs/JobProcessorImpl.java index c09f7b2daa..a7004b6caa 100644 --- a/mdm/common/src/main/java/com/gentics/mesh/core/jobs/JobProcessorImpl.java +++ b/mdm/common/src/main/java/com/gentics/mesh/core/jobs/JobProcessorImpl.java @@ -35,6 +35,8 @@ public class JobProcessorImpl implements JobProcessor { final Map jobProcessors; private Database db; + private boolean processing = false; + @Inject public JobProcessorImpl(Map jobProcessors, Database db) { this.jobProcessors = jobProcessors; @@ -47,7 +49,16 @@ public Completable process() { .map(this::process) .collect(Collectors.toList()); - return Completable.concat(jobsActions); + return Completable.concat(jobsActions).doOnSubscribe(d -> { + processing = true; + }).doAfterTerminate(() -> { + processing = false; + }); + } + + @Override + public boolean isProcessing() { + return processing; } private List getJobsToExecute() { diff --git a/mdm/common/src/main/java/com/gentics/mesh/core/migration/MigrationAbortedException.java b/mdm/common/src/main/java/com/gentics/mesh/core/migration/MigrationAbortedException.java new file mode 100644 index 0000000000..71b1809c45 --- /dev/null +++ b/mdm/common/src/main/java/com/gentics/mesh/core/migration/MigrationAbortedException.java @@ -0,0 +1,19 @@ +package com.gentics.mesh.core.migration; + +/** + * Exception that is thrown when a migration has been aborted + */ +public class MigrationAbortedException extends Exception { + /** + * Serial Version UUID + */ + private static final long serialVersionUID = 2877461998431596437L; + + /** + * Create instance + * @param reason reason for the abort + */ + public MigrationAbortedException(String reason) { + super(String.format("The migration job has been aborted. Reason: %s", reason)); + } +} diff --git a/mdm/common/src/main/java/com/gentics/mesh/core/migration/impl/MigrationStatusHandlerImpl.java b/mdm/common/src/main/java/com/gentics/mesh/core/migration/impl/MigrationStatusHandlerImpl.java index 2598c27eb6..1cfbd5b49b 100644 --- a/mdm/common/src/main/java/com/gentics/mesh/core/migration/impl/MigrationStatusHandlerImpl.java +++ b/mdm/common/src/main/java/com/gentics/mesh/core/migration/impl/MigrationStatusHandlerImpl.java @@ -16,6 +16,7 @@ import com.gentics.mesh.core.db.Database; import com.gentics.mesh.core.db.Tx; import com.gentics.mesh.core.endpoint.migration.MigrationStatusHandler; +import com.gentics.mesh.core.migration.MigrationAbortedException; import com.gentics.mesh.core.rest.job.JobStatus; import com.gentics.mesh.core.rest.job.JobWarningList; @@ -118,13 +119,17 @@ public MigrationStatusHandler done(JobWarningList warnings) { * @param failureMessage */ public MigrationStatusHandler error(Throwable error, String failureMessage) { - HibJob job = getJob(); - setStatus(FAILED); - log.error("Error handling migration", error); - - job.setStopTimestamp(); - job.setError(error); - commit(job); + if (error instanceof MigrationAbortedException) { + log.error("Migration has been aborted", error); + } else { + HibJob job = getJob(); + setStatus(FAILED); + log.error("Error handling migration", error); + + job.setStopTimestamp(); + job.setError(error); + commit(job); + } return this; } From a2ef63e22be7b35c548b2c7ec32e22f4ba5c9bc3 Mon Sep 17 00:00:00 2001 From: Norbert Pomaroli Date: Wed, 19 Apr 2023 13:09:32 +0200 Subject: [PATCH 3/5] Set release date --- LTS-CHANGELOG.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LTS-CHANGELOG.adoc b/LTS-CHANGELOG.adoc index 908a05eb25..6d39ab545e 100644 --- a/LTS-CHANGELOG.adoc +++ b/LTS-CHANGELOG.adoc @@ -18,7 +18,7 @@ The LTS changelog lists releases which are only accessible via a commercial subs All fixes and changes in LTS releases will be released the next minor release. Changes from LTS 1.4.x will be included in release 1.5.0. [[v1.8.21]] -== 1.8.21 (TBD) +== 1.8.21 (19.04.2023) icon:check[] Core: The name of a Mesh user is now forced to be unique on a database level, to prevent creating users with an already existing username. The duplicated username detection mechanism has also been improved. From c4f7c7d13f0a9bc416a88d1486206c8e54ba0002 Mon Sep 17 00:00:00 2001 From: 1000 user <1000@a66feb33f7bb> Date: Wed, 19 Apr 2023 14:11:25 +0200 Subject: [PATCH 4/5] Raise version --- api/pom.xml | 2 +- bom/pom.xml | 2 +- changelog-system/pom.xml | 2 +- common-api/pom.xml | 2 +- common/pom.xml | 2 +- core/pom.xml | 2 +- databases/orientdb/pom.xml | 2 +- databases/pom.xml | 2 +- demo/common/pom.xml | 2 +- demo/default/pom.xml | 2 +- demo/pom.xml | 2 +- distributed-coordinator/pom.xml | 2 +- distributed/pom.xml | 2 +- doc/pom.xml | 2 +- elasticsearch/pom.xml | 2 +- ferma/pom.xml | 2 +- madl/api/pom.xml | 2 +- madl/core/pom.xml | 2 +- madl/madl-ferma/pom.xml | 2 +- madl/orientdb/pom.xml | 2 +- madl/pom.xml | 2 +- mdm/api/pom.xml | 2 +- mdm/common/pom.xml | 2 +- mdm/orientdb-api/pom.xml | 2 +- mdm/orientdb-wrapper/pom.xml | 2 +- mdm/pom.xml | 2 +- performance-tests/pom.xml | 2 +- plugin-api/pom.xml | 2 +- plugin-bom/pom.xml | 2 +- plugin-dep/pom.xml | 2 +- plugin-parent/pom.xml | 2 +- pom.xml | 2 +- rest-client/pom.xml | 2 +- rest-model/pom.xml | 2 +- server/pom.xml | 2 +- services/aws-s3-storage/pom.xml | 2 +- services/image-imgscalr/pom.xml | 2 +- services/jwt-auth/pom.xml | 2 +- services/local-storage/pom.xml | 2 +- services/metrics-prometheus/pom.xml | 2 +- services/pom.xml | 2 +- tests/api/pom.xml | 2 +- tests/common/pom.xml | 2 +- tests/context-api/pom.xml | 2 +- tests/context-orientdb/pom.xml | 2 +- tests/orientdb-runner/pom.xml | 2 +- tests/pom.xml | 2 +- tests/tests-admin-gui/pom.xml | 2 +- tests/tests-api/pom.xml | 2 +- tests/tests-changelog-system/pom.xml | 2 +- tests/tests-common/pom.xml | 2 +- tests/tests-core/pom.xml | 2 +- tests/tests-distributed-coordinator/pom.xml | 2 +- tests/tests-distributed/pom.xml | 2 +- tests/tests-elasticsearch/pom.xml | 2 +- tests/tests-plugin-api/pom.xml | 2 +- tests/tests-rest-client/pom.xml | 2 +- tests/tests-rest-model/pom.xml | 2 +- tests/tests-server/pom.xml | 2 +- tests/tests-service-aws-s3-storage/pom.xml | 2 +- tests/tests-service-image-imgscalr/pom.xml | 2 +- tests/tests-service-jwt-auth/pom.xml | 2 +- tests/tests-service-local-storage/pom.xml | 2 +- tests/tests-service-metrics-prometheus/pom.xml | 2 +- verticles/admin-gui/pom.xml | 2 +- verticles/graphql/pom.xml | 2 +- verticles/pom.xml | 2 +- verticles/rest/pom.xml | 2 +- 68 files changed, 68 insertions(+), 68 deletions(-) diff --git a/api/pom.xml b/api/pom.xml index 793f533580..ae51b4ab0e 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/bom/pom.xml b/bom/pom.xml index e6a5652f7e..ad3f673a7d 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/changelog-system/pom.xml b/changelog-system/pom.xml index fde191de77..0de1b8328c 100644 --- a/changelog-system/pom.xml +++ b/changelog-system/pom.xml @@ -12,7 +12,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/common-api/pom.xml b/common-api/pom.xml index eac8f60c7b..cfeeb1e67f 100644 --- a/common-api/pom.xml +++ b/common-api/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/common/pom.xml b/common/pom.xml index 88e1a2f332..102cb33a4e 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/core/pom.xml b/core/pom.xml index 6ab5b5c67b..bd38eb4efd 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/databases/orientdb/pom.xml b/databases/orientdb/pom.xml index ff41f72392..d41e1b1388 100644 --- a/databases/orientdb/pom.xml +++ b/databases/orientdb/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh-databases - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/databases/pom.xml b/databases/pom.xml index d5575d1581..62809773e9 100644 --- a/databases/pom.xml +++ b/databases/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/demo/common/pom.xml b/demo/common/pom.xml index a0ebc955ef..24b7db138b 100644 --- a/demo/common/pom.xml +++ b/demo/common/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh-demos - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/demo/default/pom.xml b/demo/default/pom.xml index 4f9c331b0b..78cc2ab20f 100644 --- a/demo/default/pom.xml +++ b/demo/default/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh-demos - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/demo/pom.xml b/demo/pom.xml index 5e77f58b6f..e3c3feee03 100644 --- a/demo/pom.xml +++ b/demo/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/distributed-coordinator/pom.xml b/distributed-coordinator/pom.xml index 03ba6f7a00..6e72efa6cc 100644 --- a/distributed-coordinator/pom.xml +++ b/distributed-coordinator/pom.xml @@ -7,7 +7,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 mesh-distributed-coordinator diff --git a/distributed/pom.xml b/distributed/pom.xml index c4efcd8369..5c002f8af5 100644 --- a/distributed/pom.xml +++ b/distributed/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/doc/pom.xml b/doc/pom.xml index 489ffcc08f..fbe63cd9c9 100644 --- a/doc/pom.xml +++ b/doc/pom.xml @@ -6,7 +6,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 mesh-doc diff --git a/elasticsearch/pom.xml b/elasticsearch/pom.xml index b2c6635516..b38bbe6d9e 100644 --- a/elasticsearch/pom.xml +++ b/elasticsearch/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/ferma/pom.xml b/ferma/pom.xml index 4db759bded..45ec9d29c7 100644 --- a/ferma/pom.xml +++ b/ferma/pom.xml @@ -6,7 +6,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 ferma diff --git a/madl/api/pom.xml b/madl/api/pom.xml index 4317766e3b..82e5d16402 100644 --- a/madl/api/pom.xml +++ b/madl/api/pom.xml @@ -6,7 +6,7 @@ com.gentics.mesh madl - 1.8.21-SNAPSHOT + 1.8.21 madl-api diff --git a/madl/core/pom.xml b/madl/core/pom.xml index 0dbe2c3e4f..e2ca4f033d 100644 --- a/madl/core/pom.xml +++ b/madl/core/pom.xml @@ -6,7 +6,7 @@ com.gentics.mesh madl - 1.8.21-SNAPSHOT + 1.8.21 madl-core diff --git a/madl/madl-ferma/pom.xml b/madl/madl-ferma/pom.xml index 58f0f908f6..2a2b333242 100644 --- a/madl/madl-ferma/pom.xml +++ b/madl/madl-ferma/pom.xml @@ -6,7 +6,7 @@ com.gentics.mesh madl - 1.8.21-SNAPSHOT + 1.8.21 madl-ferma diff --git a/madl/orientdb/pom.xml b/madl/orientdb/pom.xml index f0ebc0ca1c..e6deb60148 100644 --- a/madl/orientdb/pom.xml +++ b/madl/orientdb/pom.xml @@ -7,7 +7,7 @@ com.gentics.mesh madl - 1.8.21-SNAPSHOT + 1.8.21 madl-orientdb diff --git a/madl/pom.xml b/madl/pom.xml index 32e4cec4a6..ad4ba554d3 100644 --- a/madl/pom.xml +++ b/madl/pom.xml @@ -7,7 +7,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 madl diff --git a/mdm/api/pom.xml b/mdm/api/pom.xml index 38881716ea..a54b08a563 100644 --- a/mdm/api/pom.xml +++ b/mdm/api/pom.xml @@ -7,7 +7,7 @@ com.gentics.mesh mesh-mdm - 1.8.21-SNAPSHOT + 1.8.21 mesh-mdm-api diff --git a/mdm/common/pom.xml b/mdm/common/pom.xml index 50e2bc55b2..9abfe30dc6 100644 --- a/mdm/common/pom.xml +++ b/mdm/common/pom.xml @@ -7,7 +7,7 @@ com.gentics.mesh mesh-mdm - 1.8.21-SNAPSHOT + 1.8.21 mesh-mdm-common diff --git a/mdm/orientdb-api/pom.xml b/mdm/orientdb-api/pom.xml index 821e922b3d..840e088cb7 100644 --- a/mdm/orientdb-api/pom.xml +++ b/mdm/orientdb-api/pom.xml @@ -7,7 +7,7 @@ com.gentics.mesh mesh-mdm - 1.8.21-SNAPSHOT + 1.8.21 mesh-mdm-orientdb-api diff --git a/mdm/orientdb-wrapper/pom.xml b/mdm/orientdb-wrapper/pom.xml index 0dc50af9c7..4ae9c9867b 100644 --- a/mdm/orientdb-wrapper/pom.xml +++ b/mdm/orientdb-wrapper/pom.xml @@ -7,7 +7,7 @@ com.gentics.mesh mesh-mdm - 1.8.21-SNAPSHOT + 1.8.21 mesh-mdm-orientdb-wrapper diff --git a/mdm/pom.xml b/mdm/pom.xml index 6d63d9a8c5..463dffce1a 100644 --- a/mdm/pom.xml +++ b/mdm/pom.xml @@ -7,7 +7,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 mesh-mdm diff --git a/performance-tests/pom.xml b/performance-tests/pom.xml index 9ad08ca260..bd4caeedb3 100644 --- a/performance-tests/pom.xml +++ b/performance-tests/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/plugin-api/pom.xml b/plugin-api/pom.xml index f120345ef5..8ed6a227e4 100644 --- a/plugin-api/pom.xml +++ b/plugin-api/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/plugin-bom/pom.xml b/plugin-bom/pom.xml index 1dea7e00de..4da3fbf358 100644 --- a/plugin-bom/pom.xml +++ b/plugin-bom/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/plugin-dep/pom.xml b/plugin-dep/pom.xml index f019028721..6af5f5cc3e 100644 --- a/plugin-dep/pom.xml +++ b/plugin-dep/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/plugin-parent/pom.xml b/plugin-parent/pom.xml index 6d48f1155e..02dc14f873 100644 --- a/plugin-parent/pom.xml +++ b/plugin-parent/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/pom.xml b/pom.xml index cd4db46670..f7ca4690f0 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 pom Gentics Mesh diff --git a/rest-client/pom.xml b/rest-client/pom.xml index 47d80763a2..8f3c914884 100644 --- a/rest-client/pom.xml +++ b/rest-client/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/rest-model/pom.xml b/rest-model/pom.xml index 5a0eca110f..2c8a1a38a3 100644 --- a/rest-model/pom.xml +++ b/rest-model/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/server/pom.xml b/server/pom.xml index da8049d75d..af9e2e6be8 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/services/aws-s3-storage/pom.xml b/services/aws-s3-storage/pom.xml index 5a4b05c7cf..9159715fe2 100644 --- a/services/aws-s3-storage/pom.xml +++ b/services/aws-s3-storage/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh-services - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/services/image-imgscalr/pom.xml b/services/image-imgscalr/pom.xml index e03add399b..6bddadd33b 100644 --- a/services/image-imgscalr/pom.xml +++ b/services/image-imgscalr/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh-services - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/services/jwt-auth/pom.xml b/services/jwt-auth/pom.xml index 264d5a705b..855e5d314b 100644 --- a/services/jwt-auth/pom.xml +++ b/services/jwt-auth/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh-services - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/services/local-storage/pom.xml b/services/local-storage/pom.xml index c35aa114de..552f52d88c 100644 --- a/services/local-storage/pom.xml +++ b/services/local-storage/pom.xml @@ -9,7 +9,7 @@ com.gentics.mesh mesh-services - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/services/metrics-prometheus/pom.xml b/services/metrics-prometheus/pom.xml index 245a70148a..8869eea131 100644 --- a/services/metrics-prometheus/pom.xml +++ b/services/metrics-prometheus/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh-services - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/services/pom.xml b/services/pom.xml index db2952476c..b40fa1e7de 100644 --- a/services/pom.xml +++ b/services/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/tests/api/pom.xml b/tests/api/pom.xml index b485616c1b..8d8391df64 100644 --- a/tests/api/pom.xml +++ b/tests/api/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 mesh-tests-api Mesh - Tests API diff --git a/tests/common/pom.xml b/tests/common/pom.xml index 57bf9eb830..7af44df4c3 100644 --- a/tests/common/pom.xml +++ b/tests/common/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/tests/context-api/pom.xml b/tests/context-api/pom.xml index 3409362ef1..7cce6b9688 100644 --- a/tests/context-api/pom.xml +++ b/tests/context-api/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 mesh-tests-context-api Mesh - Tests context API diff --git a/tests/context-orientdb/pom.xml b/tests/context-orientdb/pom.xml index 659269720b..0ef5e1d915 100644 --- a/tests/context-orientdb/pom.xml +++ b/tests/context-orientdb/pom.xml @@ -3,7 +3,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 mesh-tests-context-orientdb Mesh - Tests context - OrientDB diff --git a/tests/orientdb-runner/pom.xml b/tests/orientdb-runner/pom.xml index 7c4b483370..7b65b0263b 100644 --- a/tests/orientdb-runner/pom.xml +++ b/tests/orientdb-runner/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 mesh-orientdb-tests-runner Mesh - Tests Runner - OrientDB diff --git a/tests/pom.xml b/tests/pom.xml index cb2067acd9..f256f4ed85 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/tests/tests-admin-gui/pom.xml b/tests/tests-admin-gui/pom.xml index d883298441..b7bc82aa37 100644 --- a/tests/tests-admin-gui/pom.xml +++ b/tests/tests-admin-gui/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 tests-mesh-admin-gui Mesh Admin GUI - Shared tests diff --git a/tests/tests-api/pom.xml b/tests/tests-api/pom.xml index d7ec20c6b9..c655d45fed 100644 --- a/tests/tests-api/pom.xml +++ b/tests/tests-api/pom.xml @@ -8,7 +8,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/tests/tests-changelog-system/pom.xml b/tests/tests-changelog-system/pom.xml index 15bc7b9877..4d59f0fa01 100644 --- a/tests/tests-changelog-system/pom.xml +++ b/tests/tests-changelog-system/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 tests-mesh-changelog-system Mesh Changelog System - Shared tests diff --git a/tests/tests-common/pom.xml b/tests/tests-common/pom.xml index 93a3a8a8d5..ad832b16a0 100644 --- a/tests/tests-common/pom.xml +++ b/tests/tests-common/pom.xml @@ -8,7 +8,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/tests/tests-core/pom.xml b/tests/tests-core/pom.xml index ea99179b77..6573fcdbe6 100644 --- a/tests/tests-core/pom.xml +++ b/tests/tests-core/pom.xml @@ -8,7 +8,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/tests/tests-distributed-coordinator/pom.xml b/tests/tests-distributed-coordinator/pom.xml index e42790b657..0e10c17e86 100644 --- a/tests/tests-distributed-coordinator/pom.xml +++ b/tests/tests-distributed-coordinator/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 tests-mesh-distributed-coordinator Mesh Distributed Coordinator - Shared tests diff --git a/tests/tests-distributed/pom.xml b/tests/tests-distributed/pom.xml index ec0936e891..e5458b7bda 100644 --- a/tests/tests-distributed/pom.xml +++ b/tests/tests-distributed/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/tests/tests-elasticsearch/pom.xml b/tests/tests-elasticsearch/pom.xml index 4350a7840d..9dab8fa310 100644 --- a/tests/tests-elasticsearch/pom.xml +++ b/tests/tests-elasticsearch/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 tests-mesh-elasticsearch Mesh Elasticsearch - Shared tests diff --git a/tests/tests-plugin-api/pom.xml b/tests/tests-plugin-api/pom.xml index 521ffc9275..3fb4d24db4 100644 --- a/tests/tests-plugin-api/pom.xml +++ b/tests/tests-plugin-api/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 tests-mesh-plugin-api Mesh Plugin API - Shared tests diff --git a/tests/tests-rest-client/pom.xml b/tests/tests-rest-client/pom.xml index 6bf10a780b..d3a8a805fb 100644 --- a/tests/tests-rest-client/pom.xml +++ b/tests/tests-rest-client/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 tests-mesh-rest-client Mesh REST Client - Shared tests diff --git a/tests/tests-rest-model/pom.xml b/tests/tests-rest-model/pom.xml index 7a6fed1861..167d540235 100644 --- a/tests/tests-rest-model/pom.xml +++ b/tests/tests-rest-model/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 tests-mesh-rest-model Mesh REST Model - Shared tests diff --git a/tests/tests-server/pom.xml b/tests/tests-server/pom.xml index 46c817d240..085309d054 100644 --- a/tests/tests-server/pom.xml +++ b/tests/tests-server/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 tests-mesh-server Mesh Server - Shared tests diff --git a/tests/tests-service-aws-s3-storage/pom.xml b/tests/tests-service-aws-s3-storage/pom.xml index 0a19bfe76a..6725e8522f 100644 --- a/tests/tests-service-aws-s3-storage/pom.xml +++ b/tests/tests-service-aws-s3-storage/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 tests-mesh-service-aws-s3-storage Mesh AWS S3 Storage - Shared tests diff --git a/tests/tests-service-image-imgscalr/pom.xml b/tests/tests-service-image-imgscalr/pom.xml index 9d107d8ec8..136eaa9306 100644 --- a/tests/tests-service-image-imgscalr/pom.xml +++ b/tests/tests-service-image-imgscalr/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 tests-mesh-service-image-imgscalr Mesh Imgscalr Service - Shared tests diff --git a/tests/tests-service-jwt-auth/pom.xml b/tests/tests-service-jwt-auth/pom.xml index a67ed3cce7..4ec3533033 100644 --- a/tests/tests-service-jwt-auth/pom.xml +++ b/tests/tests-service-jwt-auth/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 tests-mesh-service-jwt-auth Mesh JWT Authentication - Shared tests diff --git a/tests/tests-service-local-storage/pom.xml b/tests/tests-service-local-storage/pom.xml index 3faec652bc..0264b0a26b 100644 --- a/tests/tests-service-local-storage/pom.xml +++ b/tests/tests-service-local-storage/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 tests-mesh-service-local-storage Mesh Local Storage - Shared tests diff --git a/tests/tests-service-metrics-prometheus/pom.xml b/tests/tests-service-metrics-prometheus/pom.xml index 31f1c14356..028f9ae26d 100644 --- a/tests/tests-service-metrics-prometheus/pom.xml +++ b/tests/tests-service-metrics-prometheus/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21-SNAPSHOT + 1.8.21 tests-mesh-service-metrics-prometheus Mesh Prometeus Metrics Service - Shared tests diff --git a/verticles/admin-gui/pom.xml b/verticles/admin-gui/pom.xml index a72a5dc29a..2f954c9ee4 100644 --- a/verticles/admin-gui/pom.xml +++ b/verticles/admin-gui/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh-verticles - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/verticles/graphql/pom.xml b/verticles/graphql/pom.xml index 948f0ddd98..fb6e37b78b 100644 --- a/verticles/graphql/pom.xml +++ b/verticles/graphql/pom.xml @@ -9,7 +9,7 @@ com.gentics.mesh mesh-verticles - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/verticles/pom.xml b/verticles/pom.xml index 7e52096c2f..ce18ef7883 100644 --- a/verticles/pom.xml +++ b/verticles/pom.xml @@ -9,7 +9,7 @@ com.gentics.mesh mesh - 1.8.21-SNAPSHOT + 1.8.21 diff --git a/verticles/rest/pom.xml b/verticles/rest/pom.xml index 8693fa3cb2..3240beebb9 100644 --- a/verticles/rest/pom.xml +++ b/verticles/rest/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh-verticles - 1.8.21-SNAPSHOT + 1.8.21 From 880aba6833678e1d2da21fcce0cdc903aac183a6 Mon Sep 17 00:00:00 2001 From: 1000 user <1000@a66feb33f7bb> Date: Wed, 19 Apr 2023 14:30:39 +0200 Subject: [PATCH 5/5] [Jenkins | hotfix-1.8.x] Prepare for the next development iteration (1.8.22-SNAPSHOT) --- api/pom.xml | 2 +- bom/pom.xml | 2 +- changelog-system/pom.xml | 2 +- common-api/pom.xml | 2 +- common/pom.xml | 2 +- core/pom.xml | 2 +- databases/orientdb/pom.xml | 2 +- databases/pom.xml | 2 +- demo/common/pom.xml | 2 +- demo/default/pom.xml | 2 +- demo/pom.xml | 2 +- distributed-coordinator/pom.xml | 2 +- distributed/pom.xml | 2 +- doc/pom.xml | 2 +- doc/src/main/docs/generated/api/api-docs.raml | 4 ++-- doc/src/main/docs/generated/api/api.raml | 4 ++-- .../main/docs/generated/api/response/api/v2/200/example.json | 2 +- doc/src/main/docs/generated/models/mesh-config.example.yml | 1 + doc/src/main/docs/generated/tables/MeshOptions.adoc-include | 5 +++++ doc/src/main/docs/generated/tables/mesh-db-revs.adoc-include | 4 ++-- doc/src/main/docs/generated/tables/mesh-env.adoc-include | 3 +++ elasticsearch/pom.xml | 2 +- ferma/pom.xml | 2 +- madl/api/pom.xml | 2 +- madl/core/pom.xml | 2 +- madl/madl-ferma/pom.xml | 2 +- madl/orientdb/pom.xml | 2 +- madl/pom.xml | 2 +- mdm/api/pom.xml | 2 +- mdm/common/pom.xml | 2 +- mdm/orientdb-api/pom.xml | 2 +- mdm/orientdb-wrapper/pom.xml | 2 +- mdm/pom.xml | 2 +- performance-tests/pom.xml | 2 +- plugin-api/pom.xml | 2 +- plugin-bom/pom.xml | 2 +- plugin-dep/pom.xml | 2 +- plugin-parent/pom.xml | 2 +- pom.xml | 2 +- rest-client/pom.xml | 2 +- rest-model/pom.xml | 2 +- server/pom.xml | 2 +- services/aws-s3-storage/pom.xml | 2 +- services/image-imgscalr/pom.xml | 2 +- services/jwt-auth/pom.xml | 2 +- services/local-storage/pom.xml | 2 +- services/metrics-prometheus/pom.xml | 2 +- services/pom.xml | 2 +- tests/api/pom.xml | 2 +- tests/common/pom.xml | 2 +- tests/context-api/pom.xml | 2 +- tests/context-orientdb/pom.xml | 2 +- tests/orientdb-runner/pom.xml | 2 +- tests/pom.xml | 2 +- tests/tests-admin-gui/pom.xml | 2 +- tests/tests-api/pom.xml | 2 +- tests/tests-changelog-system/pom.xml | 2 +- tests/tests-common/pom.xml | 2 +- tests/tests-core/pom.xml | 2 +- tests/tests-distributed-coordinator/pom.xml | 2 +- tests/tests-distributed/pom.xml | 2 +- tests/tests-elasticsearch/pom.xml | 2 +- tests/tests-plugin-api/pom.xml | 2 +- tests/tests-rest-client/pom.xml | 2 +- tests/tests-rest-model/pom.xml | 2 +- tests/tests-server/pom.xml | 2 +- tests/tests-service-aws-s3-storage/pom.xml | 2 +- tests/tests-service-image-imgscalr/pom.xml | 2 +- tests/tests-service-jwt-auth/pom.xml | 2 +- tests/tests-service-local-storage/pom.xml | 2 +- tests/tests-service-metrics-prometheus/pom.xml | 2 +- verticles/admin-gui/pom.xml | 2 +- verticles/graphql/pom.xml | 2 +- verticles/pom.xml | 2 +- verticles/rest/pom.xml | 2 +- 75 files changed, 84 insertions(+), 75 deletions(-) diff --git a/api/pom.xml b/api/pom.xml index ae51b4ab0e..579774d3bf 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/bom/pom.xml b/bom/pom.xml index ad3f673a7d..4dcc81a755 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/changelog-system/pom.xml b/changelog-system/pom.xml index 0de1b8328c..a1be85de26 100644 --- a/changelog-system/pom.xml +++ b/changelog-system/pom.xml @@ -12,7 +12,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/common-api/pom.xml b/common-api/pom.xml index cfeeb1e67f..4db80a52fc 100644 --- a/common-api/pom.xml +++ b/common-api/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/common/pom.xml b/common/pom.xml index 102cb33a4e..04a6325832 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/core/pom.xml b/core/pom.xml index bd38eb4efd..f858aabfc7 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/databases/orientdb/pom.xml b/databases/orientdb/pom.xml index d41e1b1388..feb3980f35 100644 --- a/databases/orientdb/pom.xml +++ b/databases/orientdb/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh-databases - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/databases/pom.xml b/databases/pom.xml index 62809773e9..434230171f 100644 --- a/databases/pom.xml +++ b/databases/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/demo/common/pom.xml b/demo/common/pom.xml index 24b7db138b..39b8d4be0f 100644 --- a/demo/common/pom.xml +++ b/demo/common/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh-demos - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/demo/default/pom.xml b/demo/default/pom.xml index 78cc2ab20f..2a04518749 100644 --- a/demo/default/pom.xml +++ b/demo/default/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh-demos - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/demo/pom.xml b/demo/pom.xml index e3c3feee03..355fee0602 100644 --- a/demo/pom.xml +++ b/demo/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/distributed-coordinator/pom.xml b/distributed-coordinator/pom.xml index 6e72efa6cc..95f5d52c47 100644 --- a/distributed-coordinator/pom.xml +++ b/distributed-coordinator/pom.xml @@ -7,7 +7,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT mesh-distributed-coordinator diff --git a/distributed/pom.xml b/distributed/pom.xml index 5c002f8af5..62dd94b690 100644 --- a/distributed/pom.xml +++ b/distributed/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/doc/pom.xml b/doc/pom.xml index fbe63cd9c9..a2aadc3e55 100644 --- a/doc/pom.xml +++ b/doc/pom.xml @@ -6,7 +6,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT mesh-doc diff --git a/doc/src/main/docs/generated/api/api-docs.raml b/doc/src/main/docs/generated/api/api-docs.raml index 7caffc3f41..d8cce28586 100644 --- a/doc/src/main/docs/generated/api/api-docs.raml +++ b/doc/src/main/docs/generated/api/api-docs.raml @@ -1,6 +1,6 @@ #%RAML 0.8 title: Gentics Mesh REST API -version: "1.8.20" +version: "1.8.21" baseUri: "http://localhost:8080/api/v2" protocols: [HTTP, HTTPS] mediaType: application/json @@ -6129,7 +6129,7 @@ mediaType: application/json | vertxVersion | false | string | Used Vert.x version. | example: | { - "meshVersion" : "1.8.20", + "meshVersion" : "1.8.21", "meshNodeName" : "Reminiscent Tirtouga", "databaseVendor" : "orientdb", "databaseVersion" : "2.2.16", diff --git a/doc/src/main/docs/generated/api/api.raml b/doc/src/main/docs/generated/api/api.raml index ff5fb7acb3..0761434f79 100644 --- a/doc/src/main/docs/generated/api/api.raml +++ b/doc/src/main/docs/generated/api/api.raml @@ -1,6 +1,6 @@ #%RAML 0.8 title: Gentics Mesh REST API -version: "1.8.20" +version: "1.8.21" baseUri: "http://localhost:8080/api/v2" protocols: [HTTP, HTTPS] mediaType: application/json @@ -13852,7 +13852,7 @@ mediaType: application/json } example: | { - "meshVersion" : "1.8.20", + "meshVersion" : "1.8.21", "meshNodeName" : "Reminiscent Tirtouga", "databaseVendor" : "orientdb", "databaseVersion" : "2.2.16", diff --git a/doc/src/main/docs/generated/api/response/api/v2/200/example.json b/doc/src/main/docs/generated/api/response/api/v2/200/example.json index c1ff011aed..e0af18df76 100644 --- a/doc/src/main/docs/generated/api/response/api/v2/200/example.json +++ b/doc/src/main/docs/generated/api/response/api/v2/200/example.json @@ -1,5 +1,5 @@ { - "meshVersion" : "1.8.20", + "meshVersion" : "1.8.21", "meshNodeName" : "Reminiscent Tirtouga", "databaseVendor" : "orientdb", "databaseVersion" : "2.2.16", diff --git a/doc/src/main/docs/generated/models/mesh-config.example.yml b/doc/src/main/docs/generated/models/mesh-config.example.yml index b4004c0ce1..4d7b16dc68 100644 --- a/doc/src/main/docs/generated/models/mesh-config.example.yml +++ b/doc/src/main/docs/generated/models/mesh-config.example.yml @@ -43,6 +43,7 @@ nodeName: null startInReadOnly: false versionPurgeMaxBatchSize: 10 migrationMaxBatchSize: 50 +migrationTriggerInterval: 60000 httpServer: port: 8080 sslPort: 8443 diff --git a/doc/src/main/docs/generated/tables/MeshOptions.adoc-include b/doc/src/main/docs/generated/tables/MeshOptions.adoc-include index 8bca11fa2a..e088de67de 100644 --- a/doc/src/main/docs/generated/tables/MeshOptions.adoc-include +++ b/doc/src/main/docs/generated/tables/MeshOptions.adoc-include @@ -57,6 +57,11 @@ | integer | The maximum amount of entities to be migrated in a single transaction. This setting affects schema, microschema and branch migrations +| migrationTriggerInterval +| false +| integer +| Interval in ms for the automatic migration job trigger. Setting this to a non-positive value will disable automatic job triggering. Default: 60000 ms. + | monitoring | false | object diff --git a/doc/src/main/docs/generated/tables/mesh-db-revs.adoc-include b/doc/src/main/docs/generated/tables/mesh-db-revs.adoc-include index 7e2e483c1c..89d1d5298f 100644 --- a/doc/src/main/docs/generated/tables/mesh-db-revs.adoc-include +++ b/doc/src/main/docs/generated/tables/mesh-db-revs.adoc-include @@ -5,10 +5,10 @@ | Database revision -| *1.10.3* +| *1.10.4* | 6d5ccff3 -| *1.8.20* +| *1.8.21* | 7f2ff7d7 |====== diff --git a/doc/src/main/docs/generated/tables/mesh-env.adoc-include b/doc/src/main/docs/generated/tables/mesh-env.adoc-include index 67caee3fb7..79cc8a84c1 100644 --- a/doc/src/main/docs/generated/tables/mesh-env.adoc-include +++ b/doc/src/main/docs/generated/tables/mesh-env.adoc-include @@ -74,6 +74,9 @@ | *MESH_MONITORING_JVM_METRICS_ENABLED* | Override the configured JVM metrics enabled flag. +| *MESH_MIGRATION_TRIGGER_INTERVAL* +| Override the migration trigger interval + | *MESH_GRAPH_EXPORT_DIRECTORY* | Override the graph database export directory. diff --git a/elasticsearch/pom.xml b/elasticsearch/pom.xml index b38bbe6d9e..cfbfee46f4 100644 --- a/elasticsearch/pom.xml +++ b/elasticsearch/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/ferma/pom.xml b/ferma/pom.xml index 45ec9d29c7..77bfabbad2 100644 --- a/ferma/pom.xml +++ b/ferma/pom.xml @@ -6,7 +6,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT ferma diff --git a/madl/api/pom.xml b/madl/api/pom.xml index 82e5d16402..d982a183ab 100644 --- a/madl/api/pom.xml +++ b/madl/api/pom.xml @@ -6,7 +6,7 @@ com.gentics.mesh madl - 1.8.21 + 1.8.22-SNAPSHOT madl-api diff --git a/madl/core/pom.xml b/madl/core/pom.xml index e2ca4f033d..84cf46a56c 100644 --- a/madl/core/pom.xml +++ b/madl/core/pom.xml @@ -6,7 +6,7 @@ com.gentics.mesh madl - 1.8.21 + 1.8.22-SNAPSHOT madl-core diff --git a/madl/madl-ferma/pom.xml b/madl/madl-ferma/pom.xml index 2a2b333242..44f1c9864d 100644 --- a/madl/madl-ferma/pom.xml +++ b/madl/madl-ferma/pom.xml @@ -6,7 +6,7 @@ com.gentics.mesh madl - 1.8.21 + 1.8.22-SNAPSHOT madl-ferma diff --git a/madl/orientdb/pom.xml b/madl/orientdb/pom.xml index e6deb60148..4f95ebc4e0 100644 --- a/madl/orientdb/pom.xml +++ b/madl/orientdb/pom.xml @@ -7,7 +7,7 @@ com.gentics.mesh madl - 1.8.21 + 1.8.22-SNAPSHOT madl-orientdb diff --git a/madl/pom.xml b/madl/pom.xml index ad4ba554d3..d2457c32ae 100644 --- a/madl/pom.xml +++ b/madl/pom.xml @@ -7,7 +7,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT madl diff --git a/mdm/api/pom.xml b/mdm/api/pom.xml index a54b08a563..162a615da0 100644 --- a/mdm/api/pom.xml +++ b/mdm/api/pom.xml @@ -7,7 +7,7 @@ com.gentics.mesh mesh-mdm - 1.8.21 + 1.8.22-SNAPSHOT mesh-mdm-api diff --git a/mdm/common/pom.xml b/mdm/common/pom.xml index 9abfe30dc6..b8f3d37979 100644 --- a/mdm/common/pom.xml +++ b/mdm/common/pom.xml @@ -7,7 +7,7 @@ com.gentics.mesh mesh-mdm - 1.8.21 + 1.8.22-SNAPSHOT mesh-mdm-common diff --git a/mdm/orientdb-api/pom.xml b/mdm/orientdb-api/pom.xml index 840e088cb7..0d361abc41 100644 --- a/mdm/orientdb-api/pom.xml +++ b/mdm/orientdb-api/pom.xml @@ -7,7 +7,7 @@ com.gentics.mesh mesh-mdm - 1.8.21 + 1.8.22-SNAPSHOT mesh-mdm-orientdb-api diff --git a/mdm/orientdb-wrapper/pom.xml b/mdm/orientdb-wrapper/pom.xml index 4ae9c9867b..27a9978213 100644 --- a/mdm/orientdb-wrapper/pom.xml +++ b/mdm/orientdb-wrapper/pom.xml @@ -7,7 +7,7 @@ com.gentics.mesh mesh-mdm - 1.8.21 + 1.8.22-SNAPSHOT mesh-mdm-orientdb-wrapper diff --git a/mdm/pom.xml b/mdm/pom.xml index 463dffce1a..98b2d428d8 100644 --- a/mdm/pom.xml +++ b/mdm/pom.xml @@ -7,7 +7,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT mesh-mdm diff --git a/performance-tests/pom.xml b/performance-tests/pom.xml index bd4caeedb3..148ae136cb 100644 --- a/performance-tests/pom.xml +++ b/performance-tests/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/plugin-api/pom.xml b/plugin-api/pom.xml index 8ed6a227e4..204daa091c 100644 --- a/plugin-api/pom.xml +++ b/plugin-api/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/plugin-bom/pom.xml b/plugin-bom/pom.xml index 4da3fbf358..11616a1656 100644 --- a/plugin-bom/pom.xml +++ b/plugin-bom/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/plugin-dep/pom.xml b/plugin-dep/pom.xml index 6af5f5cc3e..4cf595cafe 100644 --- a/plugin-dep/pom.xml +++ b/plugin-dep/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/plugin-parent/pom.xml b/plugin-parent/pom.xml index 02dc14f873..e955b50b39 100644 --- a/plugin-parent/pom.xml +++ b/plugin-parent/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/pom.xml b/pom.xml index f7ca4690f0..93d5424f27 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT pom Gentics Mesh diff --git a/rest-client/pom.xml b/rest-client/pom.xml index 8f3c914884..7bef1f72b8 100644 --- a/rest-client/pom.xml +++ b/rest-client/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/rest-model/pom.xml b/rest-model/pom.xml index 2c8a1a38a3..85977aed98 100644 --- a/rest-model/pom.xml +++ b/rest-model/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/server/pom.xml b/server/pom.xml index af9e2e6be8..e7786d24cd 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/services/aws-s3-storage/pom.xml b/services/aws-s3-storage/pom.xml index 9159715fe2..b6f7f3c73d 100644 --- a/services/aws-s3-storage/pom.xml +++ b/services/aws-s3-storage/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh-services - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/services/image-imgscalr/pom.xml b/services/image-imgscalr/pom.xml index 6bddadd33b..0703470777 100644 --- a/services/image-imgscalr/pom.xml +++ b/services/image-imgscalr/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh-services - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/services/jwt-auth/pom.xml b/services/jwt-auth/pom.xml index 855e5d314b..0a68afff07 100644 --- a/services/jwt-auth/pom.xml +++ b/services/jwt-auth/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh-services - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/services/local-storage/pom.xml b/services/local-storage/pom.xml index 552f52d88c..6b0d3fd7d8 100644 --- a/services/local-storage/pom.xml +++ b/services/local-storage/pom.xml @@ -9,7 +9,7 @@ com.gentics.mesh mesh-services - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/services/metrics-prometheus/pom.xml b/services/metrics-prometheus/pom.xml index 8869eea131..6920accb5c 100644 --- a/services/metrics-prometheus/pom.xml +++ b/services/metrics-prometheus/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh-services - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/services/pom.xml b/services/pom.xml index b40fa1e7de..7c909f7e3d 100644 --- a/services/pom.xml +++ b/services/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/tests/api/pom.xml b/tests/api/pom.xml index 8d8391df64..55dc79658e 100644 --- a/tests/api/pom.xml +++ b/tests/api/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT mesh-tests-api Mesh - Tests API diff --git a/tests/common/pom.xml b/tests/common/pom.xml index 7af44df4c3..35629977ce 100644 --- a/tests/common/pom.xml +++ b/tests/common/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/tests/context-api/pom.xml b/tests/context-api/pom.xml index 7cce6b9688..d4ef031df0 100644 --- a/tests/context-api/pom.xml +++ b/tests/context-api/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT mesh-tests-context-api Mesh - Tests context API diff --git a/tests/context-orientdb/pom.xml b/tests/context-orientdb/pom.xml index 0ef5e1d915..8f2100dc31 100644 --- a/tests/context-orientdb/pom.xml +++ b/tests/context-orientdb/pom.xml @@ -3,7 +3,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT mesh-tests-context-orientdb Mesh - Tests context - OrientDB diff --git a/tests/orientdb-runner/pom.xml b/tests/orientdb-runner/pom.xml index 7b65b0263b..b8daf58270 100644 --- a/tests/orientdb-runner/pom.xml +++ b/tests/orientdb-runner/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT mesh-orientdb-tests-runner Mesh - Tests Runner - OrientDB diff --git a/tests/pom.xml b/tests/pom.xml index f256f4ed85..d959e7a5d5 100644 --- a/tests/pom.xml +++ b/tests/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/tests/tests-admin-gui/pom.xml b/tests/tests-admin-gui/pom.xml index b7bc82aa37..3885702b5a 100644 --- a/tests/tests-admin-gui/pom.xml +++ b/tests/tests-admin-gui/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT tests-mesh-admin-gui Mesh Admin GUI - Shared tests diff --git a/tests/tests-api/pom.xml b/tests/tests-api/pom.xml index c655d45fed..163a092aa0 100644 --- a/tests/tests-api/pom.xml +++ b/tests/tests-api/pom.xml @@ -8,7 +8,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/tests/tests-changelog-system/pom.xml b/tests/tests-changelog-system/pom.xml index 4d59f0fa01..ef8f7f60cd 100644 --- a/tests/tests-changelog-system/pom.xml +++ b/tests/tests-changelog-system/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT tests-mesh-changelog-system Mesh Changelog System - Shared tests diff --git a/tests/tests-common/pom.xml b/tests/tests-common/pom.xml index ad832b16a0..05b6176425 100644 --- a/tests/tests-common/pom.xml +++ b/tests/tests-common/pom.xml @@ -8,7 +8,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/tests/tests-core/pom.xml b/tests/tests-core/pom.xml index 6573fcdbe6..62140d4923 100644 --- a/tests/tests-core/pom.xml +++ b/tests/tests-core/pom.xml @@ -8,7 +8,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/tests/tests-distributed-coordinator/pom.xml b/tests/tests-distributed-coordinator/pom.xml index 0e10c17e86..98ca5f2832 100644 --- a/tests/tests-distributed-coordinator/pom.xml +++ b/tests/tests-distributed-coordinator/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT tests-mesh-distributed-coordinator Mesh Distributed Coordinator - Shared tests diff --git a/tests/tests-distributed/pom.xml b/tests/tests-distributed/pom.xml index e5458b7bda..0e4b5deeac 100644 --- a/tests/tests-distributed/pom.xml +++ b/tests/tests-distributed/pom.xml @@ -11,7 +11,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/tests/tests-elasticsearch/pom.xml b/tests/tests-elasticsearch/pom.xml index 9dab8fa310..d9d8b8580d 100644 --- a/tests/tests-elasticsearch/pom.xml +++ b/tests/tests-elasticsearch/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT tests-mesh-elasticsearch Mesh Elasticsearch - Shared tests diff --git a/tests/tests-plugin-api/pom.xml b/tests/tests-plugin-api/pom.xml index 3fb4d24db4..47b1b56af2 100644 --- a/tests/tests-plugin-api/pom.xml +++ b/tests/tests-plugin-api/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT tests-mesh-plugin-api Mesh Plugin API - Shared tests diff --git a/tests/tests-rest-client/pom.xml b/tests/tests-rest-client/pom.xml index d3a8a805fb..c7be25146e 100644 --- a/tests/tests-rest-client/pom.xml +++ b/tests/tests-rest-client/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT tests-mesh-rest-client Mesh REST Client - Shared tests diff --git a/tests/tests-rest-model/pom.xml b/tests/tests-rest-model/pom.xml index 167d540235..86ae5be259 100644 --- a/tests/tests-rest-model/pom.xml +++ b/tests/tests-rest-model/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT tests-mesh-rest-model Mesh REST Model - Shared tests diff --git a/tests/tests-server/pom.xml b/tests/tests-server/pom.xml index 085309d054..ade624a84f 100644 --- a/tests/tests-server/pom.xml +++ b/tests/tests-server/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT tests-mesh-server Mesh Server - Shared tests diff --git a/tests/tests-service-aws-s3-storage/pom.xml b/tests/tests-service-aws-s3-storage/pom.xml index 6725e8522f..adafd05b7f 100644 --- a/tests/tests-service-aws-s3-storage/pom.xml +++ b/tests/tests-service-aws-s3-storage/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT tests-mesh-service-aws-s3-storage Mesh AWS S3 Storage - Shared tests diff --git a/tests/tests-service-image-imgscalr/pom.xml b/tests/tests-service-image-imgscalr/pom.xml index 136eaa9306..1e610ad0b6 100644 --- a/tests/tests-service-image-imgscalr/pom.xml +++ b/tests/tests-service-image-imgscalr/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT tests-mesh-service-image-imgscalr Mesh Imgscalr Service - Shared tests diff --git a/tests/tests-service-jwt-auth/pom.xml b/tests/tests-service-jwt-auth/pom.xml index 4ec3533033..de3ca5801f 100644 --- a/tests/tests-service-jwt-auth/pom.xml +++ b/tests/tests-service-jwt-auth/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT tests-mesh-service-jwt-auth Mesh JWT Authentication - Shared tests diff --git a/tests/tests-service-local-storage/pom.xml b/tests/tests-service-local-storage/pom.xml index 0264b0a26b..69d44a6e39 100644 --- a/tests/tests-service-local-storage/pom.xml +++ b/tests/tests-service-local-storage/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT tests-mesh-service-local-storage Mesh Local Storage - Shared tests diff --git a/tests/tests-service-metrics-prometheus/pom.xml b/tests/tests-service-metrics-prometheus/pom.xml index 028f9ae26d..5efa074bac 100644 --- a/tests/tests-service-metrics-prometheus/pom.xml +++ b/tests/tests-service-metrics-prometheus/pom.xml @@ -5,7 +5,7 @@ com.gentics.mesh mesh-tests - 1.8.21 + 1.8.22-SNAPSHOT tests-mesh-service-metrics-prometheus Mesh Prometeus Metrics Service - Shared tests diff --git a/verticles/admin-gui/pom.xml b/verticles/admin-gui/pom.xml index 2f954c9ee4..f42030f8f8 100644 --- a/verticles/admin-gui/pom.xml +++ b/verticles/admin-gui/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh-verticles - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/verticles/graphql/pom.xml b/verticles/graphql/pom.xml index fb6e37b78b..f93e9ed2f4 100644 --- a/verticles/graphql/pom.xml +++ b/verticles/graphql/pom.xml @@ -9,7 +9,7 @@ com.gentics.mesh mesh-verticles - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/verticles/pom.xml b/verticles/pom.xml index ce18ef7883..749ad8dc1c 100644 --- a/verticles/pom.xml +++ b/verticles/pom.xml @@ -9,7 +9,7 @@ com.gentics.mesh mesh - 1.8.21 + 1.8.22-SNAPSHOT diff --git a/verticles/rest/pom.xml b/verticles/rest/pom.xml index 3240beebb9..15c5b5118e 100644 --- a/verticles/rest/pom.xml +++ b/verticles/rest/pom.xml @@ -10,7 +10,7 @@ com.gentics.mesh mesh-verticles - 1.8.21 + 1.8.22-SNAPSHOT