Clone Tools
  • last updated a few minutes ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
MODE-2528 Integrates the new relational provider with the modeshape codebase This is a huge commit which makes the necessary changes to remove all Infinispan configuration and dependencies, replacing it with the new mechanism. It also contains several changes to the relational provider design because of various failing tests. This includes among other thing the necessity for ModeShape to notify the provider once exclusive locks have been obtained as part of each transaction.

  1. … 305 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
    • +2
    ./test/resources/config/repo-config.json
  1. … 23 more files in changeset.
MODE-2298 Updated the sequencers to only log warnings if an exception is raised and the repository has been shut down and also to use JDK 7 try-with-resources style.

  1. … 16 more files in changeset.
MODE-2205 Fixed comment from images.cnd

MODE-2088 Updated the RingBuffer implementation and finished the CircularChangeBus which is now used by the repository.

  1. … 32 more files in changeset.
MODE-2081 Changed the remaining files over to the ASL 2.0 license

  1. … 1044 more files in changeset.
MODE-2148 Added checkstyle to our build, and corrected numerous potential problems or issues in the code. Also removed lots of meaningless JavaDoc

  1. … 366 more files in changeset.
MODE-2041 Corrected numerous compiler warninings, JavaDoc errors and warnings, and removed quite a few JavaDoc comments that are inherited via @Override.

  1. … 79 more files in changeset.
Corrected compiler warnings

  1. … 2 more files in changeset.
MODE-1847, MODE-2021 Updated ImageSequencer to extract EXIF information and to also process TIFF images. However, only the IFD0 part is searched & read.

    • -1
    • +1
    ./test/resources/config/repo-config.json
    • binary
    ./test/resources/image_with_exif.jpg
    • binary
    ./test/resources/tif_image.tif
  1. … 8 more files in changeset.
MODE-2015 Deprecated the "removeDerivedContentWithOriginal" configuration attribute

    • -1
    • +0
    ./test/resources/config/repo-config.json
  1. … 24 more files in changeset.
MODE-1848 - Fixed the list of mime-types that is registered by the ImageMetadataSequencer

MODE-1763 - Updated Infinispan XML schema to 5.2 and logging to turn off useless INFO messages.

  1. … 39 more files in changeset.
MODE-1763, MODE-1304 - Updated the ISPN dependency to 5.2.1 and Hibernate Search/Lucene to 4.2/3.6.

Because the new version of Infinispan does not allow by default duplicate MBeans with the same name, the tests had to be updated to specifically turn this option on for each used caches.

  1. … 36 more files in changeset.
MODE-1762 Added code to ensure the sequencers always close the Binary's stream

Our Binary values always return a stream that closes itself when fully-read.

However, if any of the sequencers do not read the entire stream (e.g.,

intentionally or if they experience an exception while processing),

the stream might not be closed.

These changes ensure that the stream is always closed. All sequencer

implementations where checked, and only those that were not always

closing the stream in a finally block were modified/corrected.

All tests pass with these changes.

  1. … 10 more files in changeset.
MODE-1762 Added code to ensure the sequencers always close the Binary's stream

Our Binary values always return a stream that closes itself when fully-read.

However, if any of the sequencers do not read the entire stream (e.g.,

intentionally or if they experience an exception while processing),

the stream might not be closed.

These changes ensure that the stream is always closed. All sequencer

implementations where checked, and only those that were not always

closing the stream in a finally block were modified/corrected.

All tests pass with these changes.

  1. … 10 more files in changeset.
MODE-1733 Eliminated in the tests only the excess Hibernate Search startup log messages

These messages were extremely prolific, since a new message was output once each time a

repository was started. This change only removes them from our build and test output.

  1. … 20 more files in changeset.
MODE-1639, MODE-1640, MODE-1634 Replaced the Aperture-based MIME type detector with a Tika-based one

This required quite a bit of dependency gymnastics, since Tika has quite a few more transitive

dependencies than the Aperture library (which we had successfully pared down several years ago).

Tika references about 25 dependencies (including transitive dependencies), but this was reduced

in 'modeshape-jcr' to about 8 for basic MIME type detection. Note that Tika usually includes

two BouncyCastle libraries in its dependencies (used for encrypted PDFs, among other things),

but ModeShape intentionally excludes these (as we don't want to ship or depend on any

security-related JARs).

Not only do we get Tika's substantial MIME type database, we've made it possible for users

to edit the 'org/modeshape/custom-mimetypes.xml' file and provide the updated one on the application

classpath. What goes in that file will overwrite all of the other sources (namely Tika's built-in

file and its customization file, both of which are to be found on the classpath), which means

it's easiest to simply provide an updated version of this file at 'org/modeshape/custom-mimetypes.xml'.

Be sure to not remove any of the (few) customizations that ModeShape includes - those are important.

As we upgrade Tika, we'll get updated versions of the media type data. This is far more preferable

than having a ModeShape-specific version.

The MIME type related interfaces in ModeShape's public API (e.g., 'modeshape-jcr-api') have been removed.

These were added sometime in one of the 3.0 releases, so removing them will not introduce compatibility

issues for users.

Instead, we've decided to get out of the MIME type detection framework business, and have decided

to switch to Tika for all MIME type detection. In fact, you can still write your own MIME type detector,

but you do that by implementing Tika's interface and reference the implementation class(es) in the

corresponding service loader file in your JAR. (See the TIKA documentation for details.)

However, internally we still have an abstraction. This is because it is possible to remove the Tika

(and transitive dependencies) from a ModeShape installation, as long as your applications will not

expect any kind of automatic MIME type detection. This is a perfectly valid use case: for example,

using a repository to store data and do not store files (and don't use sequencers).

The AS7 kits required a bit more modification. There is now a new AS7 module for 'org.apache.tika'

that contains all of the JARs, and this is used by the ModeShape module and by the Tika text extractor

module.

All unit and integration tests pass with these changes. Several new tests were added.

  1. … 70 more files in changeset.
MODE-1522 Changed the sequencer portion of the JSON configuration

Previously the sequencers were defined in the JSON configuration using an array of nested

documents. However, this made it difficult to easily identify and update a particular sequencer

configuration. And even though the names were intended to be unique, using an array did

not enforce that constraint. Finally, the sequencer configurations are not ordered.

Now, the 'sequencing/sequencers' field in the JSON configuration files are documents,

with the field name containing the unique name of the sequencer. The value of these

fields are each the sequencer configuration for the given name.

An error in the JSON Schema validation logic was discovered and corrected. Note that very

few of the changes involved the production code; most changes were in fact for test code

or configurations.

    • -6
    • +4
    ./test/resources/config/repo-config.json
  1. … 26 more files in changeset.
MODE-1519 Changed JSON configuration format to use "classname" for sequencers, extractors, and security providers

These components previously used a "type" field to specify the classname or alias, whereas the AS7 configuration

uses "classname". The names of these fields were changed to "classname" to be more consistent with the AS7 configuration.

    • -2
    • +2
    ./test/resources/config/repo-config.json
  1. … 26 more files in changeset.
MODE-1491 Improved the sequencer initialization logic

Added state that captures whether each Sequencer instance has been successfully initialized, allowing

the Sequencer's internal (private) methods to better manage and create state that is now safely accessible to

subclasses. (For example, the Set<String> containing the accepted MIME types is now an immutable collection.)

  1. … 8 more files in changeset.
MODE-1491 Added support for sequencers specifying acceptable MIME types

Added support for the sequencers to specify the set of MIME types for the binary content that they accept. Some sequencers (such as the DDL sequencer) do not specify any MIME types (for various reasons, often because there is no MIME type defined for the content types), and thus fall back to the old behavior where the sequencer attempts to process all matching input.

As before, the input node must first satisfy the path expression. However, sequencers that also specify one or more MIME types (either via defaults or overwritten in each sequencer configuration) are invoked only if the MIME type of the changed property matches can be found and is one of the sequencer's MIME types.

The MIME type of the changed property is found as follows:

- if the input node contains a single-valued 'jcr:mimeType' property, then the value of this property is considered the MIME type of the changed property; otherwise

- if the input node is named "jcr:content" and its parent contains a single-valued 'jcr:mimeType' property, then the value of this property is considered the MIME type of the changed property; otherwise

- if the changed property is a BINARY property, then the ModeShape-specific Binary interface is used to obtain the MIME type for the binary value, given the name of the parent node (or grandparent node, if the parent node is named "jcr:content"); otherwise

- the MIME type could not be determined and does not influence whether the sequencer is invoked

  1. … 12 more files in changeset.
MODE-1462 - Updated logging based on code review comments

  1. … 14 more files in changeset.
MODE-1462 - Updated logging: - moved all logging classes to common.logging instead of common.util - added logging factory & logger for pure Log4j support - changed logging dependencies scope from <compile> to <provided> - added a logger abstraction in modeshape-jcr-api and an implementation in modeshape-jcr which should be used for extensions - updated Sequencer and TextExtractor base classes so that upon creation, they are provided with the extension logger

  1. … 97 more files in changeset.
MODE-1361 - Fixed sequencing outputPath in case when the parent of the output node is new and has the same name as the alleged output node Also, updated the generic SequencingTest to use the sequencing events instead of Thread.sleep.

  1. … 17 more files in changeset.
MODE-1392 Extended the JCR event model with an additional sequencing event. Updated sequencing unit tests to make use of this event.

  1. … 16 more files in changeset.
MODE-1402 Repository configuration schema changes

A recent commit removed the 'name' field on sequencers, extractors, and security providers definitions.

This was problematic for the JBoss AS subsystem, so the name has been recovered and the 'description'

field has been removed (since it is superfluous).

All unit and integration tests pass.

    • -2
    • +2
    ./test/resources/config/repo-config.json
  1. … 18 more files in changeset.
MODE-1378 Fixes from recent changes

Recent changes moved the sequencers to 'modeshape-sequencer' (unclear why this was done),

and several of the POM files in modules that are not yet used were missing version elements

on test dependencies.

    • -0
    • +0
    ./test/resources/config/repo-config.json
  1. … 840 more files in changeset.
MODE-1378 Added common parent for all sequencers - modeshape-sequencers and updated the build accordingly

    • -16
    • +0
    ./test/resources/caution_no_alpha.png
    • -18
    • +0
    ./test/resources/config/repo-config.json
  1. … 832 more files in changeset.
MODE-1402 Changed repository configuration format to simplify sequencer configuration

Made a couple of changes to the repository configuration JSON Schema to simplify things

and remove unused or ancillary items:

- The sequencer, text extractor, and authentication provider components no longer have a

"name" field, since it was not much different than "description"

- The sequencer, text extractor, and authentication provider components have a "type"

field that is a superset of the older "type" and "classname" fields. The "type" field

is now required.

- The sequencer components no longer have a "pathExpression" and "pathExpressions" fields;

instead, there's just "pathExpressions" whose values are always arrays. Note that

"pathExpressions" is now a required field.

Lots of configuration files for the sequencer modules were changed (as was the online

documentation). Quite a few other classes needed to be changed to support the removal

of the "name" field from Component and Sequencers.

All unit and integration tests pass.

    • -4
    • +4
    ./test/resources/config/repo-config.json
  1. … 24 more files in changeset.