Clone Tools
  • last updated a few minutes ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
MODE-2626 Fixes the custom binary storage integration with the WF kit

    • -0
    • +5
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 9 more files in changeset.
MODE-1446 Adds BinaryStorage option for Amazon S3

    • -2
    • +7
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 22 more files in changeset.
MODE-2574, MODE-2575 Adds configuration support for the Cassandra and MongoDB binary stores The support is added both in the JSON and the Wildfly kit, based on the current code (i.e. in terms of configuration options). This also fixes a number of other JBoss AS kit issues, exposed by the enhancement of the JBoss AS subsystem tests.

    • -22
    • +44
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 37 more files in changeset.
MODE-2528, MODE-2558 Integrates the new relational provider with the Wildfly kit Also, it fixes some of the SchematicDB caching and locking logic, to avoid certain cases when data read before locking could be stale and therefore cause overall corruption by overwriting previous updates.

    • -18
    • +23
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 81 more files in changeset.
MODE-2555 Adds the support of expressions to the <node-types/> WF configuration element This also introduces a more generic ability for a repository configured in WF to use the CL of another external (dependant) module when resolving configuration elements such as initial content files and node type files

    • -0
    • +5
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 16 more files in changeset.
MODE-2555 Adds the support of expressions to the <node-types/> WF configuration element This also introduces a more generic ability for a repository configured in WF to use the CL of another external (dependant) module when resolving configuration elements such as initial content files and node type files

    • -0
    • +5
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 16 more files in changeset.
MODE-2542 Adds the ability to cluster ModeShape repositories using dedicated JGroups channels This a semantical rollback of https://issues.jboss.org/browse/MODE-2079, but with a simplified configuration: ModeShape now has a built-in default for the JGroups configuration file and the WF kit supports both a separate JGroups configuration file and also a built-in server-defined stack.

    • -0
    • +5
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 41 more files in changeset.
MODE-2540 Removes the ISPN binary store support.

    • -5
    • +0
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 56 more files in changeset.
MODE-2526 Replaces the workspace cache with a simple LRU cache based on a ConcurrentLinkedMap This is also updates both the JSON configuration and the Wildfly configuration with a simple setting - "cacheSize" - which controls the maximum number of elements from the workspace cache.

    • -3
    • +3
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 63 more files in changeset.
MODE-2512 Allows for the transient binary store to be configured via the AS kit

    • -0
    • +5
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 15 more files in changeset.
MODE-2159 Adds support for the Lucene index provider to the AS kit

    • -2
    • +2
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 12 more files in changeset.
MODE-1903 Adds reindexing configuration to the JBoss AS kit.

    • -0
    • +5
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 16 more files in changeset.
MODE-2474 Disallows the store-name attribute when non-composite binary stores are used

    • -0
    • +5
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 3 more files in changeset.
MODE-2489 Updated the AS kit to expose the new mime-type detection configuration options.

    • -0
    • +5
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 14 more files in changeset.
MODE-2488 Moved the ModeShape AS subsystem to Wildfly 9.0.0.Final.

    • -15
    • +13
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 115 more files in changeset.
MODE-2469 Added a "maxPoolSize" configuration attribute which allows the configuration of the sequencer's and text extractor's maximum number of threads. Updated the AS kit to expose configuration attributes both for the names of the thread pools and the maximum size of the thread pool.

    • -0
    • +5
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 23 more files in changeset.
MODE-2454 Changed the WF kit to use Infinispan as local modules(libraries) and not as a subsystem.

    • -1
    • +1
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 69 more files in changeset.
MODE-2391 Fixed the configuration of the document optimization feature.

    • -0
    • +5
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 4 more files in changeset.
MODE-2348 Fixed the index-kind configuration for the WF subsystem

    • -0
    • +6
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 4 more files in changeset.
MODE-2288 Fixed the configuration of manual sequencers in Wildfly.

    • -0
    • +5
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 6 more files in changeset.
MODE-2288 Fixed the configuration of manual sequencers in Wildfly.

    • -0
    • +5
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 6 more files in changeset.
MODE-2259 Fixed the WF/EAP subsystem so that services are correctly deployed in domain mode.

    • -46
    • +46
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 23 more files in changeset.
MODE-2259 Fixed the WF/EAP subsystem so that services are correctly deployed in domain mode.

    • -46
    • +46
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 23 more files in changeset.
MODE-2259 Fixed the WF/EAP subsystem so that services are correctly deployed in domain mode.

    • -6
    • +17
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 28 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".

    • -0
    • +5
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 10 more files in changeset.
MODE-2228 Fixed the way anonymous roles are parsed and validated.

    • -0
    • +5
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 9 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".

    • -0
    • +5
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 10 more files in changeset.
MODE-2168 Added support for EAP 6.2 and refactored the name of the EAP kit.

    • -262
    • +6
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 88 more files in changeset.
MODE-2188 Added management of index providers to Wildfly subsystem

It is now possible to manage the index providers using the Wildfly configuration and CLI tools.

Additionally, ModeShape is no longer dependent upon Lucene or Hibernate Search.

    • -11
    • +1
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 141 more files in changeset.
MODE-2018 Implemented new query engine.

Refactored the query functionality to now use several new service provider interfaces (SPI),

and implemented a new query engine that can take advantage of administrator-defined indexes.

When no such indexes are defined, the query engine is able to still answer the queries

by "scanning" all nodes in the repository. This is like a regular relational database:

all query functionality works (albeith slowly) even when no indexes are defined, though

to improve performance simply define an appropriate index based upon the query or queries

that are being used.

All of ModeShape's query parsing, planning, and optimization steps are basically unchanged

from the previous query system. There is one addition to the rule-based optimizer: a new

rule looks at query plans and adds the potential indexes that might be of use in each

access query portion of a query plan. Then, the query execution process (see below)

chooses one of the identified indexes based upon the selectivity and cardinality. If no index

is available for that portion of the query plan, then the query engine simply iterates

over all queryable nodes in the repository.

A new kind of component, called a "query index provider", allows the query engine to delegate

various responsibilities around indexes to these providers. For example, a provider must

provide an index planner that can examine the constraints that apply to an access query

and determine if any of the provider's indexes can be used. When they are, ModeShape

adds those indexes to the query plan. If the query engine uses one of those indexes,

then provider must be able to return all of those nodes that satisfy the criteria

as described earlier by its index planner. Finally, as ModeShape content changes, ModeShape

will notify the index providers' of the changes so that they can ensure their indexes

are kept up-to-date with the content.

This means that a provider can implement the functionality using any kind of technology,

and consequently, that ModeShape can begin to leverage multiple kinds of search and index

technology within its query system. The ModeShape community anticipates having providers

that use Lucene, Solr, and ElasticSearch. ModeShape will also likely come with a provider

that maintains file-system based indexes. Additionally, providers can optionally support

indexes on one or more properties. Thus, it will be possible to mix and match

these providers, selecting the best technology for the specific kind of index.

The new query engine does the execution in a very different way than the previous engine,

which used Lucene to determine the tuples (that is, the values in each row) for each access

query and that were then further processed and combined to form the tuples that were returned

in the result set. The new engine instead uses a new concept of a "stream of node keys"

for each access query: what actually implements that stream depends on many factors.

A node sequence is an abstraction of a stream of "rows" containing one or more node keys.

The interfaces are designed to make it possibly to lazily implement a stream in a very

efficient manner. Specifically, a node stream is actually comprised of multiple "batches"

of rows, and batches can be of any size.

Consider when the engine findes no indexes are available for a certain access query. The

engine simply uses a "node sequence" (or NodeSequence) implementation that returns in batches

a row for each node in the repository.

But if an access query involves a criteria on the path of a node, such as

"... WHERE ISSAMENODE('/foo/bar') ...", then ModeShape knows that this query (or portion of

a query) will have only one result, namely the node at "/foo/bar". ModeShape doesn't need

an index to quickly find this node; it merely has to navigate to that path to find the one

node that satisfies this query. ModeShape has several other optimizations, too: it knows

when a query involves all children or descendants of a node at a given path, and can take

this into account when optimizing and executing the query. All of these are handled with

special NodeSequence implementations optimized for each case.

For many access queries (i.e., part of a larger query), the engine will use one of the

indexes identified by one of the providers. When this happens, ModeShape uses other

NodeSequence implementations that utilize the underlying indexes to find the nodes that satisfy

some of the criteria.

The above describes how the engine uses a single NodeSequence instance for each each access

query in a larger query. But how does the engine combine these to determine the ultimate

query results? Basically, the engine constructs a series of functions that process one or more

NodeSequence instances to filter and combine into other NodeSequences.

For example, a custom index might be used to find all nodes that have a 'jcr:lastModified'

timestamp within some range. Presumably this index is used because it has a higher selectivity,

meaning that it will filter out more nodes and return fewer nodes than other indexes.

Other criteria that are also applied to this access query might then be applied by a filter

that processes the actual nodes' property values.

While the result of this commit is a functioning query engine that is shown to work in most

of the query-related unit and integration tests, there still are a few areas that are not complete.

Specifically:

* The new engine does not support full-text search, and currently throws an exception

* No index providers are implemented. Therefore, all queries involve "scanning" the repository.

This can be time consuming, especially for federated repositories. Consequently, all such

tests that query federated content have been disabled/ignored.

    • -26
    • +38
    ./subsystem/ModeShapeConfigurationTest.java
  1. … 231 more files in changeset.