ModeShape

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Corrected release script

'Release: update versions for modeshape-3.0.0.Alpha5'

    • -1
    • +1
    /modeshape-assembly-descriptors/pom.xml
  1. … 33 more files in changeset.
Corrected release script

Corrected parent POM reference from JBoss AS integration tests

Corrected parent POM reference from JBoss AS integration tests

Additional cleanup of source distribution and removal of unused files

    • -165
    • +0
    /modeshape-distribution/src/xref/stylesheet.css
MODE-872 - Added back into build cycle & fixed tests for the modeshape-jdbc module

The existing tests only test the local driver functionality (JNDI)

MODE-1508 Removed 'provided' scopes that cause JavaDoc issues

The Maven JavaDoc plugin requires 'compile' scope to find referenced or linked classes,

and the recently-changed 'provided' scope for the JBoss AS7 subsystem meant the

JavaDoc could not be successfully built for the AS7 subsystem. Thus we needed to

change the 'provided' scopes back to 'compile' for the AS7 subsystem.

(Also, I couldn't find the AS7 JavaDocs to see if linking to them changed the result.)

MODE-872 - Added back into build cycle & fixed tests for web-jcr-rest-client module.

The following were updated

- cargo plugin version and general cargo usage has been refactored: the parent pom defines & configures the default cargo plugin while the child modules only use that configuration

- the cargo plugin & configuration have been updated to work with the latest version of the plugin & Jetty has been upgraded to 7x

- the JcrResources web service, on the @Delete method, does not need the @Consumed annotation

  1. … 7 more files in changeset.
Updated top-level POM and profiles

Updated release notes for 3.0.0.Alpha5

MODE-1509 Added libraries to AS7 kit to support storing indexes in Infinispan

Added the Hibernate Search Infinispan and Infinispan Lucene Directory jars to the 'org.hibernate.search-engine' AS7 module that's part of the ModeShape+AS7 kit. This allows configuring a repository to store the indexes in Infinispan caches.

MODE-1508 Corrected ModeShape module for AS7

Merged the AS7 modules for the built-in sequencers into the 'org.modeshape' module. Other sequencers that depend on 'org.modeshape.jcr.api' can always be added as separate modules.

MODE-1508 Updated release script with new JBoss AS7 distribution

Updated the release script to grab the new location of the kit for AS7.

MODE-1508 Cleaned up dependencies for JBoss AS7 integration

Removed the unnecessary dependencies from the REST service WAR for JBoss AS7, since most of the third-party libraries are now provided by AS7 (including RESTEasy). The assembly was made quite a bit easier, too. Note that the WAR can no longer be tested using Jetty, since Jetty doesn't provide all of the JEE APIs or their implementations.

MODE-1508 Cleaned up optional dependency on Aperture

The Aperture library was changed to 'provided' scope, which means developers can add this library to the classpath, and ModeShape will automatically enable the Aperture-based MIME type detector. However, it is no longer there automatically.

MODE-1508 Corrected MS Office sequencer test's use of MIME types

Corrected the unit tests for the MS Office sequencer to expecting either of two possible MIME types for Word documents.

MODE-1508 Corrected the ZIP sequencer to use Binary.getMimeType(…)

Changed the ZIP sequencer to no longer use the MimeTypeDetector on ExecutionContext, but instead use the method on ModeShape's Binary interface.

Merge branch 'mode-1510' of https://github.com/rhauch/modeshape into rhauch-mode-1510

MODE-1510 Corrected configuration of Infinispan for index storage

ModeShape internally generates a Hibernate Search engine configuration based upon ModeShape's configuration.

Hibernate Search can use the Infinispan Lucene Directory to store Lucene indexes in Infinispan, but

ModeShape incorrectly passed down the information about where the Infinispan configuration was, preventing

using the same Infinispan configuration for both content storage and index storage.

This change corrects this problem, and allows defaulting to the same file-based Infinispan configuration

for index storage that's used for content storage. This fix should also work in AS7, since the JNDI

name of the cache container is passed through.

The build completes successfully with these changes.

MODE-1500 MODE-1501 Corrected AS7 integration (JNDI names and assemblies)

Several issues were identified and corrected. The first was that although the ModeShape engine

(e.g, the 'org.modeshape.jcr.api.Repositories' implementation) was registered in JNDI,

the Repository instances were not correctly being registered and were thus not able to be found

by deployed components. This was rectified, and now the engine and each repository is properly

registered in JNDI.

Secondly, the JNDI names where the engine and repositories are registered were changed to

more closely align with the naming patterns used by other implementations. The engine

is always registered at "jcr" in the "java:" namespace (i.e, "java:/jcr"), while each

repository is registered at "jcr/{repositoryName}" in the "java:" namespace. For example,

the repository named "sample" could be found in JNDI at "java:/jcr/sample" or "jcr/sample".

This conforms to the many examples that configure a JCR repository at "jcr/local"

(where only one repository is used).

Note that the new default JNDI names are different than ModeShape 2.x, which used "jcr/local" as the

location of the engine and "jcr/local/{repositoryName}" as the default location for each

repository. However, should the old style still be needed for a repository, the repository can

be configured with a custom JNDI name.

Thirdly, when a repository is configured to have a custom JNDI name, the repository is registered

under the specified name (as before), but now the repository is still registered under the

'jcr/{repositoryName}' name. This means that code can find the repository under either name.

Fourthly, the assembly for the ModeShape kit was moved from the 'deploy/jbossas' Maven module

(which installed the resulting ZIP into the Maven repository at 'org/modeshape/jbossas/jbossas-{version}-jbossas-7-dist.zip')

and into the "modeshape-distribution" module, which is where the binary and source distributions

are assembled. And the assembly descriptor was moved to the "modeshape-assembly-descriptors"

module (again, where the other assembly descriptors are managed and installed into the Maven repository).

Fifthly, new integration tests were written to verify that EJBs (of various flavors) can

find the ModeShape repositories correctly using the 4 different ways of looking up a repository:

1) looking up a repository in JNDI

2) looking up the Repositories interface and using it to get a named repository

3) using RepositoryFactory with a single URL (e.g., "jndi:jcr/sample" or "jndi:jcr?repositoryName=sample")

4) using RepositoryFactory with a URL to the engine (e.g, "jndi:jcr") and the name of the repository

These new integration tests are in a new Maven module that downloads AS7 and the ModeShape kit

from the Maven repository and unpacks them into the 'target' directory. When Surefire runs,

this managed server is started, the Arquillian tests are run, and then the server is shutdown.

Each Arquillian test involves creating a WAR file that will be deployed by Arquillian to the

running server, running the unit tests, and then undeploying the WAR file. The tests

can also be run with a different profile so that the tests are deployed and executed in

a separate server installation (as specified by the $JBOSS_HOME variable).

Finally, the older "modeshape-integration-tests" module and the new "modeshape-jbossas-integration-tests"

were relocated to a new top-level folder called 'integration' in the source code. Like the other

top-level directories in our codebase, this is also a Maven module that can be used to run

all of the integration tests. And the '-Pintegration' profile was brought back so that

the distributions are not created and the integration tests not run during the normal builds.

Thus, to run a normal developer build (with all the unit tests but none of the integration tests) simply use

mvn clean install

while the following command will build everything, run all the unit tests, build the AS7 assembly, and run the integration tests:

mvn clean install -Pintegration

As before, running an 'assembly' build (used for releases) will build everything, run all the unit tests,

build the AS7, binary, and source assemblies (including JavaDoc), run the integration tests, and run

the demos:

mvn clean install -Passembly

    • -420
    • +0
    /modeshape-integration-tests/pom.xml
    • -8
    • +0
    /modeshape-integration-tests/src/test/byteman/jcr-performance-check-permissions.txt
  1. … 610 more files in changeset.
MODE-1489 - Fixed infinite loop when calling orderBefore multiple times without save

The problem was caused by the fact that there was a "circular" reference when the first orderBefore had been called on the same child, both as source and destination (i.e. orderBefore(child0, child0)). The fix was done on several levels:

* orderBefore on the same source and target should be a no-op (as per spec)

* insertBefore on the child references of a session node should be a no-op if the references are identical

* the child references iterator, when another delegate iterator is provided, should not loop indefinitely if there are circular references

MODE-1486 - Added explicit type mapping annotation, so that Hibernate >= 3.5 uses oids with PostgreSQL

MODE-1505 - Updated RHQ plugin version to 1.2

MODE-1505 - Updated RHQ plugin version to 1.2

MODE-1462 Added support for a custom logger

ModeShape now supports using a custom logger, allowing applications to provide

a 'org.modeshape.common.logging.CustomLoggerFactory' class that will be found

and used only after SLF4J and Log4J.

MODE-1502 - Added check to the MsOffice sequencer for the case when no thumbnail information is present in the document

MODE-1489 ModeShape's JCR Session now implements XAResource (for 'auto' transactions)

When the 'auto' transaction mode is enabled (this is the default setting), ModeShape's JCR Session implements XAResource, allowing JCR clients to explicitly enlist the Session as a resource in the transaction. In all other ways, the new JcrXaSession is identical to the JcrSession class. The JcrXaSession class delegates all calls to the XAResource of the Infinispan cache, and (as with the other JTA-related changes) ModeShape participates in the transaction via javax.transaction.Synchronization mechanism.

When the 'none' transaction mode is used, ModeShape's session does not implement XAResource.

    • -0
    • +109
    /modeshape-jcr/src/main/java/org/modeshape/jcr/JcrXaSession.java
MODE-1498 Added configuration option to dictate the transaction mode

Changed the repository configuration JSON schema to add a 'transactionMode' field, with the following enumerated values:

* 'auto' is default and automatically detects whether Session.save() is called on a thread that already has a transaction associated with it, and if so works with that existing transaction. This is the safest option that can be used in all environments, and it has minimal overhead. This is the required setting when used within an JEE container where container-managed or user-managed transactions are used.

* 'none' specifies that the repository should never look for an existing transaction on the thread, and should be used *only* in environments where the JCR clients will never use transactions. IOW, it is not safe to be used in cases where the JCR client *might* create transactions (because ModeShape uses transactions internally, and nested transactions are rarely supported). Using '{{none}}' is an optimization that prevents the (minor) overhead of the Session.save() checking for an associated transaction, but it may make sense in embedded applications running in Java SE with no TransactionManager implementation.

Added tests to verify the field is being read correctly from the configuration.

The build runs successfully with these changes.

MODE-1498 Added initial support for JTA transactions

With this commit, container-managed transactions and even user-managed transactions (including both local

and distributed) should work, per Chapter 21 of the JSR-283 specification. Even when using XA transactions,

ModeShape works with the transactions (via Synchronizations) and Infinispan automatically registers the

cache as a resource in the transaction.

However, this commit does not yet change JcrSession to implement XAResource. We need to make this change

per Section 21.4 of the specification so that users can directly enlist the ModeShape Session instance

into the transaction. Implementing XAResource will be completed in a subsequent commit.

The build runs successfully with these changes.