ModeShape

Clone Tools
  • last updated a few minutes ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
MODE-1553 - Updated the Processor so that the jcr:uuid property is stored as a node property, when the node is created.

MODE-1545 Corrected the JavaDoc for the AbstractBinaryStore

MODE-1416 - Added explicit @Produces annotation on the query methods from the rest service, to properly indicate the response type.

MODE-1416 - Updated the rest server to produce not only application/json but also text/plain and text/html, based on the Accept header of the request. Clients which rely on the old (default application/json behavior) should specify the Accept header in the request.

MODE-1433 - Added a JDBC datasource to the AS7 kit and an integration test which verifies that the DS is correctly setup and can correctly access the repository.

MODE-1545 - Implemented a mechanism for the binary store to persist the mime-types of binary values, in order to avoid detection each time.

While working on this, another issue was exposed and fixed: when persisting data to disk (e.g. the AS7 kit), the defaultPrimaryType of node type definitions was not properly re-initialized on a restart.

MODE-1458 Implemented Shareable Nodes

The JCR shareable nodes feature was implemented using the linked nodes capability of

the internal Repository Cache framework. All basic functionality is implemented

and all TCK tests pass with the exception of several tests that have bugs/issues

(see https://issues.apache.org/jira/browse/JCR-3370, https://issues.apache.org/jira/browse/JCR-3371

and https://issues.apache.org/jira/browse/JCR-3380). Two other shareable node

tests are currently failing because of how Node.save() is implemented

(see https://issues.jboss.org/browse/MODE-1552). Note that Node.save() is deprecated,

and a workaround is to simply use Session.save() instead.

  1. … 31 more files in changeset.
MODE-1544 - Removed the mime-type detector field from the execution context, as the binary storage & binary values should be the "owners" of the mime-type related information.

MODE-1544 - Extracted Tika based mime-type detector and updated the way mime type detectors are loaded and initialized.

Because of the AS7 support, the detectors need to be loaded via the Environment class loader. Also, because text extraction (and implicitly mime-type detection) can be triggered preemptively, some of Tika's excluded dependencies needed to be added back (e.g. for .java and .class files)

  1. … 4 more files in changeset.
MODE-1527 -Added AS7 support for configuring and working with text extractors. To validate the configuration and Arquillian integration test was added as well.

  1. … 21 more files in changeset.
MODE-1527 - Updated the text extraction process to be triggered preemptively by the binary storage, when a binary value is created.

For this to be possible, the context of the extractor cannot contain any node-specific information. Also, this exposed an issue with the SharedLockingInputStream: if the stream is closed in the "read" methods, Tika's parsers will keep reading it over and over (effectively reopening it each time) either causing OOM errors or duplicate text. This means the "close" call from the read methods has been removed.

MODE-1527 - Updated the text extraction process to be asynchronous with the indexing process.

This meant that a few changes were needed:

- the text extractors configuration has been updated to resemble that of the sequencers

- the binary store interface has been updated to be able to store and retrieve extracted text for a given binary (source) value

- the TextExtractors class was changed to become the entry point into text extraction

  1. … 27 more files in changeset.
Updated Maven module descriptions

MODE-1536 Corrected one use of System.nanoTime

Previously, most of the uses of System.nanoTime to determine the duration of an operation were changed to compute the absolute value of the difference in nanoTime results. One usage was missed, and this corrects that omission.

MODE-1527- Migrated initial version of the text extractors from 2.x and updated the binary store to extract the text and mime-type of binary values

Working on this, exposed how fragile - lock-wise - is working with the SharedLockingInputStream (FileSystemBinaryStore). Therefore, I've updated the mime-type detection so that mark & reset are avoided as much as possible, also making sure that streams are closed after each detector finishes with them.

The Tika version was bumped to 1.1 which required also the update of the POI version to 3.8.

    • -0
    • +23
    /extractors/modeshape-extractor-tika/pom.xml
  1. … 45 more files in changeset.
'Release: update versions for modeshape-3.0.0.Alpha6'

    • -1
    • +1
    /modeshape-assembly-descriptors/pom.xml
  1. … 33 more files in changeset.
Updated release script for latest JIRA release on jboss.org

Updated release notes

MODE-1525 Corrected other tests that relied upon incorrect behavior

MODE-1525 Adding a node without specifying primary type incorrectly assumed "nt:unstructured"

If a parent has a child node definition with a default primary node type, and a child

(with the correct name to match the child node definition) is added without specifying

the primary type, the child incorrectly was assigned a primary type of "nt:unstructured".

This was because the "AbstractJcrNode.addNode(String)" method incorrectly hard-coded

the node type to "nt:unstructured" rather than determining the child's node type from

the parent's node type(s). Simply removing this assumption fixes the problem.

Two new tests were added to replicate this problem and verify the changes do correct the

problem.

All unit and integration tests pass with these changes.

    • -0
    • +14
    /modeshape-jcr/src/test/resources/cnd/medical.cnd
MODE-1507 Corrected compiler warnings re unused imports

MODE-1507 - Updated the AS7 kit to include the WebDav war and also added an Arquillian integration test

  1. … 11 more files in changeset.
MODE-1507 - Added the webdav modules back to the build system and fixed the tests. Also, removed a deprecated class and implemented a real integration test which uses a WebDav client to test the exposed functionality.

    • -18
    • +12
    /web/modeshape-web-jcr-rest-war/pom.xml
    • -6
    • +36
    /web/modeshape-web-jcr-webdav-war/pom.xml
  1. … 6 more files in changeset.
MODE-1537 Corrected how manual transactions are implemented

ModeShape's initial support for JTA transactions included a bug that allowed this

only to work for the first transaction. The state of that first transaction was kept,

so ModeShape never registered a Synchronization implementation for subsequent transactions.

Although the data was correctly persisted as part of these transactions, none of the

events for the subsequent transactions were fired and thus the local caches became

out of date and failed to expose the newly added/modified/deleted content.

ModeShape's internal transaction abstraction was corrected and simplified so that

the transactional state is never managed by the system but instead is referenced

by the client code using the transactions. This does make the API slightly more complex,

but it greatly simplifies the implementation and corrects the transactional behavior.

A new integration test was added to use a SLSB with BMT to create a subgraph of nodes

in one (or more) transactions, verify the structure (using a different transaction),

and remove the subgraph in another transaction.

All unit and integration tests pass with these changes.

MODE-1538 Added ability to cancel queries

Added a Query.cancel() method that can be used to cancel currently running queries.

Note that because the Query.execute() method blocks, canceling a query must be done

via a separate thread. This does add some complexity to clients, but it provides

a very useful capability to cancel long-running (or perhaps runaway) queries.

All tests pass with these changes.

MODE-1536 Added one more set of changes

Neglected to include this change in the previous commit

MODE-1536 Corrected use of System.nanoTime() for all platforms

Different platforms implement System.nanoTime() differently, and it's possible that computing

the difference between two subsequent calls to the method will be a negative number. Therefore,

changed all the places where we're using it to use the absolute value of the difference.

On most platforms, this won't result in any change, but on some Windows platforms this

fix should prevent computing negative durations.

All unit and integration tests pass.

MODE-1512 Corrected tests to show that the locks are being removed

Recent changes added a close mechanism to ensure that the Hibernate Search

SearchFactory is properly closed when the repository is closed. This mechanism

was refined a bit, and the tests were refactored to pull the test that

starts, uses, stops, and restarts the repository (by creating a new JcrRepository)

instance into a separate test class to reduce the number of repositories

that are used.

All unit and integration tests pass with these changes.

MODE-1526 - Added the purge=false attribute to the local caches configuration which preserves the data between restarts. However, this exposes the problem from MODE-1520. To work around this, we're repacking the ISPN main module and we should revert this at some point (MODE-1534)

MODE-1526 - Added code to ignore the explicit index removing on Windows (because it doesn't work).

Also, cleaned up some tests and removed todos related to MODE-1521