ModeShape

Clone Tools
  • last updated a few minutes ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Merge pull request #1645 from hchiorean/MODE-2678

MODE-2678 Changes the DatabaseBinaryStore to use transactions instead of auto-committed connections

MODE-2678 Changes the DatabaseBinaryStore to use transactions instead of auto-committed connections It also fixes the case of multiple cluster nodes inserting the same binary simultaneously in the database.

Merge pull request #1644 from hchiorean/MODE-2672

MODE-2672 Adds exception handling for the case when multiple cluster nodes attempt to concurrently lock a node

MODE-2672 Adds exception handling for the case when multiple cluster nodes attempt to concurrently lock a node

Merge pull request #1643 from hchiorean/MODE-2677

MODE-2677 Fixes the logic of the loadAll method to make sure the size of the first non-empty batch is returned

MODE-2677 Fixes the logic of the loadAll method to make sure the size of the first non-empty batch is returned

Merge pull request #1642 from hchiorean/MODE-2675

MODE-2675 Fixes the parsing and extraction of WebDAV lock tokens from request headers

MODE-2675 Fixes the parsing and extraction of WebDAV lock tokens from request headers

Merge pull request #1641 from hchiorean/MODE-2674

MODE-2674 Adds the ability to pass custom Hikari configuration options to the relational db provider

MODE-2674 Adds the ability to pass custom Hikari configuration options to the relational db provider It configures the "minimumIdle" property to a default of 1, meaning only 1 idle connection should be in the pool at any time. It changes the structure of the WF kit by removing the custom Hikari module (which had just 1 resource) and moving that dependency inside the persistence-relational module. It also updates the Hikari version to 2.6.1.

  1. … 6 more files in changeset.
Merge pull request #1640 from hchiorean/MODE-2676

MODE-2676 Fixes the removal of version histories when multi-version graphs exist

MODE-2676 Fixes the removal of version histories when multi-version graphs exist

Merge pull request #1639 from hchiorean/MODE-2672

MODE-2672 Fixes the handling of node removals spanning multiple session saves via the same user transaction

MODE-2672 Fixes the handling of node removals spanning multiple session saves via the same user transaction The problem was that the RelationalDb was incorrectly sending back a "dummy" document which had no ID causing subsequent failures. This commit contains an additional (unrelated) change which clears the internal JcrSession state after a successful save or refresh. This should ensure better memory handling as it does not keep "hydrated" JCR node references in the internal cache

Merge pull request #1637 from dnillia/MODE-2673

MODE-2673: add missing argument to [threadAssociatedWithAnotherTransaction] i18n key.

MODE-2673: add missing argument to [threadAssociatedWithAnotherTransaction] i18n key.

Merge pull request #1636 from hchiorean/MODE-2670

MODE-2670 Changes the logic of initializing in a cluster, removing redundant locking

MODE-2670 Changes the logic of initializing in a cluster, removing redundant locking This commit also changes the default locking method in a cluster to be DB locking, which is far more reliable than JGroups. That latter has been deprecated (code wise) and will be removed in the next major version.

Merge pull request #1635 from hchiorean/MODE-2671

MODE-2671 Fixes potential DB connection leak if a binary value is not found in a DB binary store

MODE-2671 Fixes potential DB connection leak if a binary value is not found in a DB binary store

Merge pull request #1634 from hchiorean/MODE-2670

MODE-2670 Changes the implementation of the internal repository locking

MODE-2670 Changes the implementation of the internal repository locking The new lock implementation uses a bare-bone AbstractQueuedSynchronizer implementation because in ModeShape's case locks have to be able to be unlocked from other threads than the owning threads (transaction rollbacks). The previous ReentrantLock implementation would obviously not work.

This commit also changes the way the persistence stores deal with transactions: instead of holding onto the "current" transaction via a ThreadLocal variable, they will now rely on their internal mapping of tx ids. This is provided by ModeShape for each transaction. Therefore, thread-locality is no longer an issue.

The commit further changes some of the ways in which internal transactions are used during repository startup, making sure some operations are grouped and some - the preconfigured workspaces - are created up-front within a single transaction.

  1. … 5 more files in changeset.
Merge pull request #1633 from hchiorean/MODE-2669

MODE-2668, MODE-2669 Fixes some more issues around user transactions

MODE-2669 Makes sure that RelationalDb correctly cleans up resources for commit and rollback This change makes sure that even if commit or rollback are called from a separate thread than txStarted, the cleanup logic is still performed

MODE-2668 Adds an additional check for the case when there's an aborted user transaction

Merge pull request #1631 from open4storage/mode-2667

MODE-2667 Added S3 endpoint support

updated schema for new s3 endpoint parameter and replace constant bug. fcrepo-webapp/

Merge pull request #1632 from hchiorean/MODE-2668

MODE-2668 Fixes the handling of JCR operations within non-active user transactions

MODE-2668 Fixes the handling of JCR operations within non-active user transactions Any JCR session operation attempted within a non active user transaction will raise an exception and will leave the transient state of the session unchanged (as per the docs of the session.save method)

MODE-2532, MODE-2532 Added S3 endpoint support

Added changes to:

-Added additional overloaded constructor to take 'endpoint' as an parameter

-Updated schema file to support this additional parameter (as optional to keep backward compatibility).

-Repository config files so it uses endpoint

{

"name": "Test Repository",

"storage": {

"binaryStorage": {

"type": "s3",

"username": "access_key",

"password": "secrey",

"bucketName": "modeshape_bucket",

"endPoint": "https://some3scompatiblestorage"

}

}

}