…tion attribute named node-types
Correcting this class led to several other problems, primarily with the logging system. In particular, we were no longer able to see the correct logging implementations and load the SLF4J logger, probably (big assumption here) because AS7.2 was changed to no longer leak the logging interfaces and implementations and thereby exposing some incorrect dependencies in ModeShape modules. Plus, our LoggerFactory class was attempting to discover the logger classes (for the various frameworks) using the thread context classloader (TCCL) and then the system classloader – but not the current classloader. This seems obviously incorrect, so this was changed to simply try to load the class with the current classloader. The same thing was done for JaasProvider, which was the only other class using the ClassUtil.loadClassStrict(...) method. After all these changes, full builds running the following commands pass: * mvn clean install -Pintegration * mvn clean install -Pintegration,as72
…ubtype of mix:referenceable
… in the web.xml files where it's being used and removing any internal usages
It is now the responsibility of the Environment implementations to know what to do when shutdown is called. The JBoss AS service does nothing, but the LocalEnvironment does attempt to shutdown all containers (though there is now a way to set a LocalEnvironment instance as being "shared", which means shutdown does nothing). The LocalEnvironment class can be extended for custom logic. All unit and integration tests pass with these changes.
The tuple collector inserts the actual values for the pseudo-columns from the actual node, but was incorrectly binding the local name to the 'mode:depth' result set column. This was corrected to fix the issue.
…erty definitions & defaults Added a few tests to confirm that ModeShape's existing behavior regarding property definitions with default values is correct: if the property definition has a default value but is not autocreated, the default value is ignored; if the property definition has a default value and is autocreated, then the property is created immediately using the default value.
… the case of SNS. The solution was to check that the parent of the actual cached children reference isn't stale.
… components Changed LocalEnvironment to enable easily using Infinispan cache and cache containers instances. Also added more documentation.
…perations only once (the first startup of an empty repository) and moved the initial content import into that section. In addition, had to correct all the tests which make assumptions about the/ jcr:system content.
…stem, including an integration test
A log message is output when no Tika mime type detectors could be found (meaning Tika is not on the classpath), stating that automatic MIME type detection will be disabled. Also ensured that the input stream used by Tika is always closed. All unit and integration tests pass.
… 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.
…he ISPN cache manager has the status running
…on thread when the engine shuts down
…mplementation. Fixed several MongoDB related issues.
…binary stores tests. Also, in the process, cleaned up the API a bit and fixed some issues.
The Infinispan cache uses eviction and expiration to limit the size of each workspace cache. Also, the RepositoryConfiguration (and the JSON schema) were changed to allow specifying an Infinispan cache configuration to be used for the workspace caches. (Tuning will likely be necessary, since the cache size is highly a function of the number and size of the nodes.) All unit and integration tests pass successfully.
Added several tests to explicitly test that it is possible to remove a version history. Only changes to test code were made.
The method no longer throws an exception when the supplied path includes a node that doesn't exist. Updated several test cases to reflect the expected behavior.
… some of the tests themselves