Clone Tools
  • last updated a few minutes ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
MODE-2242 Added back 'modeshape-security' security domain, though it now uses existing 'ApplicationRealm' to manage users/roles

Changed back to a "modeshape-security" security domain that reuses the existing "ApplicationRealm" security realm for authentication. So users with ModeShape roles are still added via the EAP add-user.sh script (resulting in encrypted passwords).

  1. … 22 more files in changeset.
MODE-2242 Changed the default security domain to "other" and adapted the existing tests to overwrite the default, still allowing the use of the modeshape-users and modeshape-roles properties files.

  1. … 41 more files in changeset.
MODE-2228 Fixed the way anonymous roles are parsed and validated and changed the default anonymous role for the EAP kit to be only "readonly".

  1. … 10 more files in changeset.
MODE-2079 Changed the way clustering works so that ModeShape will always use the Infinispan JGroups channel as opposed to requiring a separate configuration.

  1. … 58 more files in changeset.
MODE-1683 Updated the EAP kit to include support for journaling.

  1. … 19 more files in changeset.
MODE-1752 Made the "chunkSize" property of the InfinispanBinaryStore configurable both via the repository schema and EAP kit. This should allow client to "fine-tune" the storage if desired.

  1. … 15 more files in changeset.
MODE-1988 Added ability to enable still-alpha child optimization logic

As the number of children increase for a node, it becomes more expensive

to read and write that node's document representation. The ModeShape 3

rearchitecture included the ability to break up the child references in

a parent node's document into multiple separate documents based upon the

total number of children. The session cache framework is able to work

with a node's representation regardless of the number of block (page)

documents are used to store the child references, and the session cache

(and update) framework never change the number of documents used to

represent a node.

The responsibility of splitting a node's "too many" child references

amongst more documents or combining/merging multiple documents with

"too few" child references is completely separate and is done

asynchronously in a scheduled background process that is called

"document optimization".

Prior to this change, there was no way to enable or run document

optimization. The thought was that it is an optimization step that would

eventually be enabled once users start running into issues with nodes

containing very large numbers of child references. Also, it would be

enabled only after the rest of the infrastructure was in place and more

thoroughly vetted.

When we added federation, we made it possible for connectors to be

"pageable", meaning that a connector could return a node document that

contained only some of the child references, while the remaining

child references would then be accessed as separate documents (i.e.,

pages). The session cache framework's ability to work with "segments"

of child references was used for this part, and has shown to be

quite useful. IOW, part of the original "paging"/"blocks"/"segments"

session cache infrastructure is now being used in federation.

This commit exposes via new configuration options (in both the JSON

and EAP subsystem) for running the document optimization process

as a scheduled background thread. The scheduling-related fields are

identical to the garbage collection fields, while there are two new fields

for the document optimization (e.g., the target number of child references

to have in each page, and the tolerance allowed between the actual and

target numbers before optimization kicks in). Currently both fields

have no defaults, which requires users to set them.

At this time, the document optimization process is DISABLED by default,

and enabling it requires picking the two fields and results in INFO-level

log messages stating that this is a technology preview that should not

be used in production. Therefore, the risk of incorporating these

changes into the codebase is relatively low.

However, with these changes it is now possible for users to experiment

with this feature and help us test it and identify/fix problems.

It is not clear how long the feature will remain 'tech preview',

but it will remain so only until we're much more satisfied

with the stability and quality of the implementation AND have better

defaults for the target and tolerance fields (based upon experimental

testing).

  1. … 22 more files in changeset.
MODE-1988 Added ability to enable still-alpha child optimization logic

As the number of children increase for a node, it becomes more expensive

to read and write that node's document representation. The ModeShape 3

rearchitecture included the ability to break up the child references in

a parent node's document into multiple separate documents based upon the

total number of children. The session cache framework is able to work

with a node's representation regardless of the number of block (page)

documents are used to store the child references, and the session cache

(and update) framework never change the number of documents used to

represent a node.

The responsibility of splitting a node's "too many" child references

amongst more documents or combining/merging multiple documents with

"too few" child references is completely separate and is done

asynchronously in a scheduled background process that is called

"document optimization".

Prior to this change, there was no way to enable or run document

optimization. The thought was that it is an optimization step that would

eventually be enabled once users start running into issues with nodes

containing very large numbers of child references. Also, it would be

enabled only after the rest of the infrastructure was in place and more

thoroughly vetted.

When we added federation, we made it possible for connectors to be

"pageable", meaning that a connector could return a node document that

contained only some of the child references, while the remaining

child references would then be accessed as separate documents (i.e.,

pages). The session cache framework's ability to work with "segments"

of child references was used for this part, and has shown to be

quite useful. IOW, part of the original "paging"/"blocks"/"segments"

session cache infrastructure is now being used in federation.

This commit exposes via new configuration options (in both the JSON

and EAP subsystem) for running the document optimization process

as a scheduled background thread. The scheduling-related fields are

identical to the garbage collection fields, while there are two new fields

for the document optimization (e.g., the target number of child references

to have in each page, and the tolerance allowed between the actual and

target numbers before optimization kicks in). Currently both fields

have no defaults, which requires users to set them.

At this time, the document optimization process is DISABLED by default,

and enabling it requires picking the two fields and results in INFO-level

log messages stating that this is a technology preview that should not

be used in production. Therefore, the risk of incorporating these

changes into the codebase is relatively low.

However, with these changes it is now possible for users to experiment

with this feature and help us test it and identify/fix problems.

It is not clear how long the feature will remain 'tech preview',

but it will remain so only until we're much more satisfied

with the stability and quality of the implementation AND have better

defaults for the target and tolerance fields (based upon experimental

testing).

  1. … 22 more files in changeset.
MODE-1908 Re-wrote EAP integration support for composite binary stores

  1. … 51 more files in changeset.
MODE-1902 Added a FAIL_IF_MISSING option to the re-indexing options, so that a repository will fail to start up if there are no indexes and this option is enabled.

  1. … 10 more files in changeset.
MODE-1942 Removed support for storing indexes in ISPN.

  1. … 28 more files in changeset.
MODE-1908 Add composite binary store support to EAP

  1. … 32 more files in changeset.
MODE-1932 - Fixed and refactored the path/source-path/relative-to/source-relative-to attributes from the EAP kit file-based index storage elements.

  1. … 6 more files in changeset.
Update modeshape_1_0.xsd

Typo.

MODE-1897 - Updated clustering tests with a new test using JGroups for clustering Hibernate Search. This should hopefully prove that it's possible to cluster indexes using master/slave configurations. Also, update the JSON schema so that the "channelConfiguration" attribute is optional, because Hibernate Search provides one out-of-the-box.

  1. … 7 more files in changeset.
MODE-1872 - Changed the default configuration so that re-indexing is done asynchronously. This exposed the need to be able to shut down the re-indexing process when a repository is shutdown.

  1. … 9 more files in changeset.
MODE-1784 - Added a <webapp/> element to the ModeShape AS7 subsystem which allows any web application packaged under the "deployments" folder of the ModeShape main module, to be deployed by the subsystem. This replaces the previous "static" way of copying web applications directly from the kit in the servers "deployments" directory.

  1. … 22 more files in changeset.
MODE-1818 Added garbage collection properties to AS7 schema and subsystem

Added the garbage collection configuration attributes to ModeShape's

XSD schema and subsystem, and added a unit test that verifies the

attributes are read correctly.

  1. … 9 more files in changeset.
MODE-1818 Added garbage collection properties to AS7 schema and subsystem

Added the garbage collection configuration attributes to ModeShape's

XSD schema and subsystem, and added a unit test that verifies the

attributes are read correctly.

  1. … 9 more files in changeset.
MODE-1805 Query system can be disabled in AS7 kit

Added ability to completely disable the query system (including the

generation/maintenance of indexes) in a repository in the AS7

subsystem. (The JSON repository configurations had this ability for

some time, but it could not be controlled in AS7.)

This adds a new "enable-queries" XML attribute on the "repository"

element in the subsystem configuration. This attributes defaults

to "true" and therefore is backward compatible. However, setting it

to "false" will completely disable the indexing system, although

any index storage and indexing configuration within a repository

configuration will remain as-is; it will simply not be used.

This means that the repository's indexes and query system can be

disabled (perhaps on a temporary basis) and then re-enabled without

having to completely reconfigure the index storage and indexing

parameters.

It was discovered that executing queries on a repository that had

its query system disabled resulted in a NPE, because the running

state did not have a RepositoryQueryManager instance. Rather than

deal with all of the potential NPEs, a new specialization of

the RepositoryQueryManager, called RepositoryDisabledQueryManager,

was added and is instantiated within the running state when queries

are disabled. This specialization essentially no-ops all of the

operations. The result is that queries will return no results

rather than throw an exception.

Additional warning messages are logged when the indexes are indeed

disabled, since this will rarely be done in production.

Several new tests were added, including unit tests (in

'modeshape-jcr') and integration tests for the AS7 subsystem.

  1. … 20 more files in changeset.
MODE-1805 Query system can be disabled in AS7 kit

Added ability to completely disable the query system (including the

generation/maintenance of indexes) in a repository in the AS7

subsystem. (The JSON repository configurations had this ability for

some time, but it could not be controlled in AS7.)

This adds a new "enable-queries" XML attribute on the "repository"

element in the subsystem configuration. This attributes defaults

to "true" and therefore is backward compatible. However, setting it

to "false" will completely disable the indexing system, although

any index storage and indexing configuration within a repository

configuration will remain as-is; it will simply not be used.

This means that the repository's indexes and query system can be

disabled (perhaps on a temporary basis) and then re-enabled without

having to completely reconfigure the index storage and indexing

parameters.

It was discovered that executing queries on a repository that had

its query system disabled resulted in a NPE, because the running

state did not have a RepositoryQueryManager instance. Rather than

deal with all of the potential NPEs, a new specialization of

the RepositoryQueryManager, called RepositoryDisabledQueryManager,

was added and is instantiated within the running state when queries

are disabled. This specialization essentially no-ops all of the

operations. The result is that queries will return no results

rather than throw an exception.

Additional warning messages are logged when the indexes are indeed

disabled, since this will rarely be done in production.

Several new tests were added, including unit tests (in

'modeshape-jcr') and integration tests for the AS7 subsystem.

  1. … 20 more files in changeset.
MODE-1791 - Added the "readonly" attribute to the connector hierarchy and implemented support for it in the base connector class. Also. updated the JSON schema to support it.

  1. … 10 more files in changeset.
MODE-1791 - Added the "readonly" attribute to the connector hierarchy and implemented support for it in the base connector class. Also. updated the JSON schema to support it.

  1. … 10 more files in changeset.
MODE-1785 - Updated the AS7 schema with attributes that are similar to the ones which are part of the JSON schema and which control the indexing rebuild behavior

  1. … 12 more files in changeset.
MODE-1785 - Updated the AS7 schema with attributes that are similar to the ones which are part of the JSON schema and which control the indexing rebuild behavior

  1. … 12 more files in changeset.
MODE-1785 - Updated the AS7 schema to correctly parse the rebuildOnStartup attribute.

  1. … 6 more files in changeset.
MODE-1785 - Updated the AS7 schema to correctly parse the rebuildOnStartup attribute.

  1. … 6 more files in changeset.
MODE-1729 - Updated AS7 subsystem with the definition of external-sources.

  1. … 19 more files in changeset.
MODE-1699 Added AS7 support for minimum string size

Added support to the subsystem for AS7 to separately configure the

minimum size of string values that are to be stored inside the

binary store. Like with the regular JSON configuration, the minimum

string size defaults to whatever the minimum binary size is.

  1. … 10 more files in changeset.
MODE-1684 - Updated the AS7 kit to allow the configuration of the workspace cache container

  1. … 10 more files in changeset.