Apache Jackrabbit Oak 1.2.0 发布,此版本现已提供下载:http://jackrabbit.apache.org/downloads.html。 Apache Jackrabbit Oak 1.2.0 增长性版本,基于并兼容 Jackrabbit Oak 1.x 版本,Jackrabbit Oak 1.2.x 被认为是稳定版本,可以用于生产环境。 Jackrabbit Oak 相比 Oak 1.0.0 的改进内容 ----------------------- 新特性 [OAK-1323] CLONE - XPath queries currently require @ in front of property names [OAK-1522] Provide PojoSR based RepositoryFactory implementation [OAK-1529] The storage backends should have an estimate on the number of nodes below a given path [OAK-1658] Similar (rep:similar) support for Solr [OAK-1804] TarMK compaction [OAK-1805] Debugging console [OAK-1849] DataStore GC support for heterogeneous deployments using a shared datastore [OAK-1893] MBean to dump Lucene Index content and related stats [OAK-1906] Adding information to a Standard MBean interface using annotations [OAK-1915] TarMK Cold Standby [OAK-1922] Introduce Password Expiry With Max Password Age and On First Login [OAK-1978] Add path exclusion to JackrabbitEventFilter [OAK-1990] Utility js methods to manage Oak data in Mongo [OAK-1993] Add command to dump Lucene index in Oak Console [OAK-2005] Use separate Lucene index for performing property related queries [OAK-2074] _lastRev recovery tool [OAK-2138] Alternative implementation of AuthorizableNodeName interface [OAK-2191] Persistent cache for the DocumentNodeStore [OAK-2220] Support for atomic counters (non-clustered) [OAK-2261] Enable support for NodeType based indexing rules [OAK-2267] Expose checkpoints through JMX [OAK-2268] Support index time Aggregation of repository nodes [OAK-2278] Same Lucene index to support both property restrictions and fulltext constraints [OAK-2323] SegmentMK consistency check [OAK-2371] Helper class for CI configurations [OAK-2399] Custom scorer for modifying score per documents [OAK-2504] oak-run debug should list a breakdown of space usage per record type [OAK-2517] Support IS NULL based property restrictions in LucenePropertyIndex [OAK-2530] Support IS NULL based property restrictions in the query engine [OAK-2721] LogDumper rule to dump logs as part of system out in case of test failure 改进 [OAK-672] Avoid JCR APIs calling other JCR APIs [OAK-1447] Offline tool to repair MongoMK documents [OAK-1452] Expose query plans [OAK-1478] allow selecting a nodestore fixture for tests [OAK-1500] Verify restore to revision on MongoNS [OAK-1561] Implement optimised range queries [OAK-1570] Improve perfomances of the OrderedIndex while insert [OAK-1609] Configurable property exclusions for SolrIndexEditor and SolrQueryIndex [OAK-1618] Implement noInternal from JackrabbitEventFilter [OAK-1645] Route find queries to Mongo secondary in MongoDocumentStore [OAK-1666] FileDataStore inUse map causes contention in concurrent env [OAK-1669] JCR Event Info should contain NodeType for all Events [OAK-1673] FulltextQueryTest coverage for Solr indexer [OAK-1681] Clarify contract of NodeBuilder.isReplaced() [OAK-1683] Remove dependency of DocumentStore to MicroKernelException [OAK-1685] BlobStore: improve code readability [OAK-1691] Use in-memory DB for DOCUMENT_JDBC fixture [OAK-1694] Use known.issues instead of commented tests [OAK-1706] Add RestrictionProvider#getPattern(String,Set<Restriction>) [OAK-1716] Enable passing of a execution context to runTest in multi threaded runs [OAK-1718] Avoid expanding empty property restrictions if not needed [OAK-1721] register ContentRepository to whiteboard [OAK-1723] Text content should not be stored as part of Index data [OAK-1724] Enable copying of Lucene index to local file system for read queries [OAK-1725] Improved SolrCursor support for paged results [OAK-1733] Consolidate Mongo client connection creation logic [OAK-1745] OrderedIndex should serve range queries regardless of direction [OAK-1754] add docu how to connect to Mongo w/ credentials [OAK-1771] Avoid lock contention in Tracker.getServices() [OAK-1775] Avoid lock contention in IndexTracker.getIndexNode() [OAK-1790] Import of compressed wikipedia dump [OAK-1791] Clean up dangling references to previous documents [OAK-1794] Keep commit info for local changes in main document [OAK-1796] Update Mongo Java Driver version to 2.12 [OAK-1800] Configurable number of rows in SolrQueryIndex [OAK-1815] Don't create default (Scheduled)Executor when respective instance is supplied [OAK-1820] Set _lastRev on insert when new node is also commit root [OAK-1821] Full text expression with * as 'field' should expand to the 'catch all' field [OAK-1830] DocumentNodeStore code robustness when persistence inconsistent [OAK-1835] Solr index support for relative properties [OAK-1847] Use SegmentMK for testing where possible [OAK-1850] Dump help details for various command supported by oak-run [OAK-1852] DocumentStore API: improve documentation of keys [OAK-1857] Support collection object conversion to String[] in ConfigurationParameters [OAK-1858] Segment Explorer [OAK-1861] Limit memory usage of DocumentNodeStore.readChildren() [OAK-1862] Checkpoints release method [OAK-1863] Generic operation tasks should be able to return specific results [OAK-1867] Optimize SegmentWriter.prepare() [OAK-1875] Configurable filter restrictions to be used in SolrQueryIndex [OAK-1876] oak-run option to do diffs between TarMK revisions [OAK-1880] Omit Configuration Retrieval for PreAuthContext [OAK-1882] Use config parameters to write token property [OAK-1907] Better cost estimates for traversal, property, and ordered indexes [OAK-1919] Use 127.0.0.1 as default for MongoDB host [OAK-1928] Cleanup test and execution fixtures [OAK-1929] MicroKernelServer not usable with user specified MicroKernel implementation [OAK-1934] Optimize MutableTree.orderBefore for the common case [OAK-1937] Add progress logs to MarkSweepGarbageCollector [OAK-1942] UserAuthentication: enhance login states with relevant exceptions [OAK-1945] Unclear NodeStore.merge() contract [OAK-1950] Add GlobalNameMapper(NodeState) constructor [OAK-1955] oak-run main method should print available run modes [OAK-1961] Introduce DocumentStoreException [OAK-1965] Support for constraints like: foo = 'X' OR bar = 'Y' [OAK-1966] Add Hint for selecting more performant index in MongoDocumentStore#query [OAK-1967] Avoid collision marker update when already present [OAK-1983] Query: reduce debug log output [OAK-1986] Log index names for which AsyncIndexUpdate would trigger a full reindex [OAK-1987] LuceneIndex should access Lucene Directory if query involves FullTextSearch for cost calculation [OAK-1994] Limit no of children listed with ls command in Oak Console [OAK-1997] Improve the message in UniquenessConstraintViolation exception to provide more details [OAK-1999] Query engine is slow when using many "or" constraints [OAK-2003] Avoid <p/> in javadoc [OAK-2004] Add a way to pause the background async indexer [OAK-2007] MongoBlobStore improvements [OAK-2009] Add a utility method to create Solr synonym file for node type expansions [OAK-2011] Log read and write operations to different loggers [OAK-2013] Add utility class for tracking time spent in the code [OAK-2017] Add checkpoint management to oak-run [OAK-2018] Query: before throwing "traversed more than x nodes" exception, log it [OAK-2019] Compact only if needed [OAK-2025] Make the cache size in MongoBlobStore configurable [OAK-2030] Remove ContentRepositoryImpl#getNodeStore [OAK-2031] MemoryNodeBuilder#set only works on root builders [OAK-2040] Tar compaction: log a warning if there is more than one checkpoint [OAK-2041] Checkpoint list command should also provide the checkpoint lifetime [OAK-2044] DocumentSplit should allow properties added by persistence [OAK-2050] Query engine: disable or restrict built-in full-text engine [OAK-2051] Provide option to use Configuration SPI in JAAS authentication when running within AppServer [OAK-2057] Add timing to OrderedIndex [OAK-2060] MBean to provide consolidated cache stats [OAK-2061] Oak run debug option to list content from a tar file [OAK-2069] Log details of _lastRev recovery [OAK-2083] Add metatype info for Document and Segment services [OAK-2087] Record time when checpoint is created in SegmentNodeStore [OAK-2090] Improve logging in compaction and cleanup operation in SegmentMK [OAK-2091] Improve logging in MongoDocumentStore [OAK-2094] Oak Upgrade should depend on oak-jcr with a 'test' scope [OAK-2100] Change NodeStore#release method to return a boolean [OAK-2101] Add test for observation events when renaming a node [OAK-2104] IndexStatsMBean should expose the time upto which the repository state has been indexed [OAK-2105] Review padding for blobs collection [OAK-2112] DocumentNodeStore: Error calculating the machine id [OAK-2115] Turn async indexer checkpoint warning log to debug [OAK-2116] Explorer should display the template Id and use it in the reference tracking report [OAK-2119] AggregateIndex should support AdvanceQueryIndex [OAK-2120] Simplify BranchStates [OAK-2125] Integrate Lucene logging with Slf4j [OAK-2128] Scalability benchmarks for search [OAK-2131] Reduce usage of _lastRev [OAK-2133] Lucene: improved batching and logging [OAK-2134] Lucene: not using the path restriction can speed up queries [OAK-2143] NodeObservor should catch exception in case event processing [OAK-2156] UserAuthentication: Allow Password Change Via SimpleCredentials Attribute [OAK-2158] Fail for ACEs created for the admin principal [OAK-2160] mk.getRevisionHistory: clarify since parameter [OAK-2161] MicroKernelIT: clean test content [OAK-2169] Pluggability of UserAuthenticationFactory [OAK-2173] Allow specifying custom attributes in IndexPlan [OAK-2175] Support for rep:spellcheck [OAK-2176] Support for using query engine for search suggestions [OAK-2177] Configurable Analyzer in Lucene index [OAK-2178] Lucene index boosting on certain fields [OAK-2179] Rep:similar support in Lucene index [OAK-2180] Solr default rows number is too high [OAK-2181] Create whitelist / blacklist of properties to be indexed / filtered for Solr index [OAK-2189] TarMK cold standby: update OSGi config example files [OAK-2190] Support for like query for string [OAK-2194] Print tar file graph in segment explorer [OAK-2201] Make blobSize in OakDirectory configurable [OAK-2205] Allow native query to be run against specifc property index [OAK-2212] Add configuration options for ldap connection pools [OAK-2213] The unbound connection pool does not verify if the connection is still alive [OAK-2215] Create default repository in OakRepositoryFactory [OAK-2216] LIRS cache: improved concurrency when using the cache loader [OAK-2217] Use daemon threads for scheduled executor service in RepositoryImpl [OAK-2218] Allow SegmentNodeBuilder to provide child builders of the same type [OAK-2221] Log path for text extraction error on the Lucene index [OAK-2228] Changing the query traversal limit should affect already started queries [OAK-2229] Provide a way for Index implementation to determine reindex mode [OAK-2230] Execution Stats for async indexing [OAK-2233] Add UserIdCredentials to Oak user management extension [OAK-2234] Support property existence query (for Lucene) [OAK-2241] Support native queries for non-full-text indexes [OAK-2245] UserImporter should always set the rep:authorizableID [OAK-2252] make generic VersionGCSupport perform better [OAK-2253] Index node only if configured property changed [OAK-2262] Add metadata about the changed value to a PROPERTY_CHANGED event on a multivalued property [OAK-2274] XD Logo for Oak Apache [OAK-2287] ConflictHandler for merging jcr:lastModified [OAK-2291] Associate user defined values with checkpoint [OAK-2292] Use ConcurrentUpdateSolrServer for remote updates [OAK-2293] Add checkpoint management for MongoMK [OAK-2296] Update sql2.txt test to account for name property presence in non test nodes [OAK-2302] Simplify query debugging with MDC [OAK-2303] Add jsr305 annotations to Solr index code [OAK-2304] Not log very common queries [OAK-2306] Path restriction evaluation support within LucenIndex [OAK-2307] Provide API to create Tree from NodeState [OAK-2309] Persistent cache: config option for autoCompact [OAK-2313] Better handling for external binaries in the segment explorer [OAK-2314] Mark checkpoints with relevant metadata [OAK-2321] Provide details in log when reindexing is completed by AsyncIndexUpdate [OAK-2324] Remove dependency to MapDB [OAK-2325] Remove option to disable background operations [OAK-2326] Debug logging for merge failures [OAK-2333] SegmentMK startup slow with large journals [OAK-2334] Inspect any revision with SegmentMK explorer [OAK-2340] LucenePropertyIndex should support pure nodeType based query [OAK-2341] Use approx counters property index costs even when path restriction is available [OAK-2342] Clean up collision markers [OAK-2344] Permission validation with Node.setPrimaryType [OAK-2348] Pass over name and definitions to StoreStrategy.update [OAK-2350] Improve performance of user query with scope set [OAK-2351] Property name regex should only be applied on property name [OAK-2361] MBean to expose DocumentNodeStore runtime state [OAK-2362] Remove entryCount from NodeType Index [OAK-2365] Refactor node store tests [OAK-2372] TARMK Cold Standby improve test cases for FSDS mirroring [OAK-2373] Move FixturesHelper into common [OAK-2378] add a oak-run command to delete the index data in case of inconsistencies [OAK-2385] Abstract over repository creating in tests [OAK-2387] Simplify injection of conflict handlers [OAK-2390] Replace usages of Immutable* with factory calls [OAK-2391] Provide API to create Tree from NodeBuilder [OAK-2393] Change default blob size to around 1 MB in OakDirectory [OAK-2398] TarMk Cold Standby add metatype info for 'standby.readtimeout' property [OAK-2406] Add RootFactory.createSystemRoot [OAK-2407] Auto-refresh sessions on revision gc [OAK-2413] Clarify Editor.childNodeChanged() [OAK-2415] Improve logging in repository migration in upgrade [OAK-2422] Improve logging in Lucene indexer [OAK-2432] Allow querying on jcrrimaryType property if that property is indexed [OAK-2444] Enable the persistent cache by default [OAK-2448] Do not create nodeChildren cache entry for leaf [OAK-2451] Avoid clean up in XmlImportTest benchmark [OAK-2452] Avoid lookup of conflicting node with ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW [OAK-2453] Move MongoDiffCache to mongo package [OAK-2454] Upgrade: reduce implementation dependency [OAK-2459] Pre-populate version storage with intermediate nodes [OAK-2462] reduce code duplication between Utils.getSelectedDocuments and MissingLastRevCandidateIterator [OAK-2463] Provide support for providing custom Tika config [OAK-2464] Optimize read of known non-existing children [OAK-2468] Index binary only if some Tika parser can support the binaries mimeType [OAK-2469] Restrict the maximum number of terms that will be indexed for a single field [OAK-2470] Support for maxExtractLength while parsing binaries with Tika [OAK-2471] Include index name in the log from LuceneIndexEditor [OAK-2483] Avoid building suggest/spellcheck dictionary at query time [OAK-2485] Add validating commit hook for login tokens [OAK-2487] DataStoreBlobStore: Merge test MongoDataStoreBlobStoreTest into DataStoreBlobStoreTest [OAK-2490] Make it possible to use the PermissionProvider from within query indexes [OAK-2491] Improve OAK-2465 avoiding ArithmeticException altogether [OAK-2499] Expose mongo and db versions for reporting purposes [OAK-2500] checkDeepHistory/fixDeepHistory/prepareDeepHistory for oak-mongo.js [OAK-2501] add more trace-logging to mongoMk to debug performance issues [OAK-2516] Add user information in audit events in oak [OAK-2519] remove CachingDocumentStore interface [OAK-2523] Provide a default Tika Config similar to JR2 config [OAK-2527] Update SegmentMK header format definition [OAK-2529] Index usage for "not equals" conditions [OAK-2534] Add missing Apache Jackrabbit qualifiers to OSGi services metatype [OAK-2537] Support using Solr index for sorted queries [OAK-2542] Update RecordUsageAnalyser to reflect changes in segment format [OAK-2546] allow configuring subcaches of documentnodestore individually [OAK-2548] Spellcheck/suggest queries should return no results if no index can handle them [OAK-2553] Add builder to file store [OAK-2554] Make AbstractServiceTracker.stop() idempotent [OAK-2561] Add option to oak-run check runmode to check consistency of binary properties [OAK-2563] Cleanup and document security related error codes [OAK-2570] Open indexes in IndexTracker non blocking way [OAK-2571] Protect the persistent cache against Thread.interrupt [OAK-2572] Include cache invalidation stats in logs related to background operations [OAK-2574] Update mongo-java-driver to 2.13.0 [OAK-2579] RepositoryManager must not register WhiteboardExecutor with Oak [OAK-2585] Set pauseCompaction default to false [OAK-2587] observation processing too eager/unfair under load [OAK-2589] Provide progress indication when reindexing is being peformed [OAK-2590] IndexCopier Error occurred while removing deleted files from Local [OAK-2591] Invoke indexUpdate only when new Document are added in LuceneIndexEditor [OAK-2595] High memory consumption of CompactionGainEstimate [OAK-2596] more (jmx) instrumentation for observation queue [OAK-2597] expose mongo's clusterNodes info more prominently [OAK-2601] PerfLogger for NodeObserver.contentChanged() [OAK-2602] [Solr] Cost calculation takes time with solr pings even when not fulfilling query [OAK-2608] Avoid indexing user/group/uuid props by default [OAK-2614] Timeout for MongoDB query [OAK-2624] Move out non essential task processing from DocumentNodeStore background thread [OAK-2633] Log document as debug message on conflict [OAK-2638] Use message from causing exception in DocumentStoreException.convert() [OAK-2645] Remove DOCUMENT_MK fixture (and related) [OAK-2654] SegmentIdTable too eager to refresh [OAK-2668] Ability to disable index hints for MongoDB [OAK-2669] Use Consolidated diff for local changes with persistent cache to avoid calculating diff again [OAK-2671] Persistent cache: use different files in tests [OAK-2680] Report a full observation queue situation to the logfile [OAK-2692] Add description annotation to RepositoryManagementMBean#startDataStoreGC [OAK-2708] Enable CopyOnRead feature for Lucene indexes by default Bug 修复 [OAK-203] Basic same name sibling support [OAK-1267] Failure in ObservationRefreshTest [OAK-1385] Occasional ConcurrentFileOperationsTest failure [OAK-1414] Copying a large subtrees does not scale as expected in the number of copied nodes on document node stores [OAK-1462] Aggregate Index isn't usable in an osgi environment [OAK-1472] ConcurrentAddReferenceTest#addReferences still fails [OAK-1488] ConcurrentAddRemoveIT, ConcurrentAddIT test failures [OAK-1491] ObservationTest failure on Windows [OAK-1589] MongoDocumentStore fails to report error for keys that are too long [OAK-1626] RDBBlobStoreTest fails occasionally [OAK-1641] Mongo: Un-/CheckedExecutionException on replica-primary crash [OAK-1674] Node isNew() is false in case the node is removed and added in same commit [OAK-1676] NodeStoreServices nondeterministic with customBlobStore [OAK-1677] Add ConflictHandler/Validator to AbstractSecurityTest [OAK-1686] failing test org.apache.jackrabbit.core.query.VersionStoreQueryTest.testCheckin [OAK-1688] document atomicity of DS.update(collection, keys, update) [OAK-1690] OrderableNodesTest fails with Document_JDBC [OAK-1693] "like '%'" does not use an index [OAK-1697] Unresolved conflicts in TokenProviderImpl#createToken() [OAK-1703] Improve warning logged on concurrent Session access [OAK-1707] RestrictionProviderImpl returns empty pattern if all supported restrictions are set [OAK-1709] Diff cache entry too large [OAK-1727] Cross foreign cluster revision comparison may be wrong [OAK-1747] SolrIndexInitializer async parameter should be boolean [OAK-1759] Sporadic IllegalStateException in AbstractServiceTracker.getServices [OAK-1766] Remote Solr server should explicitly handle failures in connecting to ZK [OAK-1768] DocumentNodeBuilder.setChildNode() runs OOM with large tree [OAK-1777] Stats for the async indexing don't report 'done' status when there are no changes [OAK-1778] Ordered index: explain plan not implemented [OAK-1782] DiffCache not populated after cache miss [OAK-1788] ConcurrentConflictTest fails occasionally [OAK-1792] Sample descendant field configuration not working for root [OAK-1799] Create a benchmark for Full text search with Solr [OAK-1810] Incorrect TarMK graph metadata validation [OAK-1813] LastRevSingleNodeRecoveryTest fails with Mongo [OAK-1814] RevisionComparator my incorrectly report a revision as FUTURE [OAK-1816] Oak#createContentRepository never unregisters some of its services [OAK-1817] NPE in MarkSweepGarbageCollector.saveBatchToFile during Datastore GC with FileDataStore [OAK-1822] NodeDocument _modified may go back in time [OAK-1824] DocumentNodeStore "lease update thread" is not a daemon thread [OAK-1826] Empty directories not cleaned up when gc run on FileDataStore [OAK-1827] ClassCastException in NodeDocument.split() when collisions detected [OAK-1829] IllegalStateException when using "lowerCase"/"lower" on a array property [OAK-1833] Logging in and out many sessions leads to high memory consumption [OAK-1840] Failure when setting up DocumentNS fixture [OAK-1848] Default sync handler property mapping does not allow constant properties [OAK-1853] Potential NPE in RDBDocumentStore [OAK-1855] Travis builds time out [OAK-1865] Blob garbage collector deletes referenced blobs for Jackrabbit 2.x DataStores [OAK-1866] SegmentMK: Inefficient flat node comparisons [OAK-1869] TarMK: Incorrect tar entry verification in recovery mode [OAK-1870] Lucene blob size different in trunk and 1.0 branch [OAK-1874] Indexes: re-index automatically when adding an index [OAK-1877] Hourly async reindexing on an idle instance [OAK-1883] Unnecessary invocations of LastRevRecovery when recovery already done. [OAK-1885] Add restore option for oak-run [OAK-1886] OOM in org.apache.jackrabbit.oak.jcr.OrderedIndexConcurrentClusterIT::deleteConcurrently() [OAK-1887] Expose security related configuration options as component properties [OAK-1889] Incomplete component declaration with default action provider [OAK-1890] Concurrent System Login: slowdown for high concurrency levels [OAK-1892] OrderedIndexConcurrentClusterIT takes too long [OAK-1894] PropertyIndex only considers the cost of a single indexed property [OAK-1895] ClassCastException can occur if the TraversalIndex is cheaper than an OrderedIndex (or a different AdvancedQueryIndex impl) [OAK-1897] Stale documents in MongoDocumentStore cache [OAK-1898] Query: Incorrect cost calculation for traversal [OAK-1899] Ordered index fails with old index content [OAK-1902] NodeTypeIndex is not conversative enough about its cost [OAK-1916] NodeStoreKernel doesn't handle array properties correctly [OAK-1917] FileNotFoundException during TarMK GC [OAK-1921] Backup: "Attempt to read external blob" error [OAK-1926] UnmergedBranch state growing with empty BranchCommit leading to performance degradation [OAK-1927] TarMK compaction delays journal updates [OAK-1931] MicroKernel.read() returns negative value [OAK-1932] TarMK compaction can create mixed segments [OAK-1933] Query: UnsupportedOperationException for some combinations of "or" and "and" conditions [OAK-1935] MAX_QUEUED_CONTINUATIONS feature not working in EventGenerator class [OAK-1936] TarMK compaction map check should switch comparison sides [OAK-1943] UserImporter doesn't import protected repasswordLastModified [OAK-1946] Restore: "Attempt to read external blob" error [OAK-1949] UserContext needs to be adjusted to reflect changes made with OAK-1922 [OAK-1951] UserContext doesn't reflect new group-member structure [OAK-1953] Oak console on MongoMK fails with NPE [OAK-1958] Session.logout performance poor [OAK-1959] AsyncIndexUpdate unable to cope with missing checkpoint ref [OAK-1960] Console in Oak Run does not close the NodeStore upon exit [OAK-1964] Performance degradation due to SessionDelegate.WarningLock [OAK-1968] Wrong time unit for async index lease time [OAK-1969] Duplicate observation events when using JackrabbitEventFilter [OAK-1972] Async property index update may fail on DocumentMK with more than 100 index changes [OAK-1973] IndexUpdate traverses the data nodes under index nodes [OAK-1975] Wrong values reported for OBSERVATION_EVENT_DURATION [OAK-1976] SecurityProvider is not able to add Custom PrincipalConfiguration in CompositePrincipalConfiguration in OSGI Mode [OAK-1977] ContentMirrorStoreStrategy should utilize path restriction when available [OAK-1982] Ordered index must ignore full-text queries [OAK-1985] TokenLoginModule can't handle case insensitive userids [OAK-1988] Confusing debug message about old revision access [OAK-1991] Optimize access to OrderedPropertyIndex [OAK-1998] Accessible tree below a non-accessible parent are HiddenTree [OAK-2000] Observation events accessibility not checked correctly [OAK-2001] TarMk compaction can still cause repository growth [OAK-2002] TarMK: FileStore constructor loads all entries in the journal.log [OAK-2010] BlobGcMaxAgeInSecs is set to high for MongoBlobStore [OAK-2012] oak run benchmark has bad imports [OAK-2014] oak-run build fails on windows [OAK-2015] PermissionStore doesn't reflect dynamic nature of jcr:all [OAK-2020] NodeState view at given version is not stable with DocumentNodeStore [OAK-2021] XPath queries with certain combinations of "or" conditions don't use an index [OAK-2022] XPath queries with "order by" are never converted to "union" [OAK-2024] Error when accessing /oak:index/repolicy/reindex property via JCR [OAK-2026] Incompatibility with PropertyDefinitionImpl#getValueConstraints potentially returning null values. [OAK-2027] SessionMBean fails to render due to NPE in getSessionAttributes [OAK-2029] Oak Lucene index doesn't get notified about updates when index is stored on the file system [OAK-2032] Setting a MV Name property does not validate the namespaces [OAK-2033] Setting a path property with a value that contains a unregistered namespace does not fail [OAK-2036] getPlan() output for NodeTypeIndex doesn't indicate the index type used [OAK-2038] Invalid type error while importing DocView xml data [OAK-2039] SegmentNodeStore might not create a checkpoint [OAK-2042] TarMK CompactionMap should include more nodes [OAK-2047] Missing privileges after repository upgrade [OAK-2048] oak-solr-osgi uses wrong version of spatial4j [OAK-2049] ArrayIndexOutOfBoundsException in Segment.getRefId() [OAK-2052] Node.setProperty(String, Value) fails for binary non ValueImpls [OAK-2053] Excessive memory usage with Oracle Java 6 [OAK-2056] Optimize orderings by date fields [OAK-2058] Hard-coded write concern [OAK-2059] Reindexing can include hidden nodes in the index [OAK-2062] Range queries and relative properties resultset should be consistent with JR2 [OAK-2070] Segment corruption [OAK-2071] ImporterImpl does not convert JCR paths to Oak paths [OAK-2073] Prevent against integer overflow in compaction check [OAK-2077] Improve the resilence of the OrderedIndex for dangling links [OAK-2078] Prevent null/empty passwords in ldap provider [OAK-2080] BlobSize in OakDirectory differs between trunk and 1.0 branch [OAK-2084] The query engine should not return hidden nodes [OAK-2088] AsyncIndexUpdate can leave orphaned checkpoint in case of abrupt shutdown [OAK-2093] RDBBlobStore failure because of missing lastmod column on datastore_data table [OAK-2095] ClassCastException in NodeDocument [OAK-2099] AIOOBE in Segment#toString [OAK-2102] Oak-run add option to remove all unreferenced checkpoints [OAK-2107] Remove the MongoGridFSBlobStore implementation [OAK-2111] Rename FileStoreCorruptException to SegmentNotFoundException and update the NodeStore contract [OAK-2117] Reindex removes all nodes under index definition node [OAK-2118] Aggregation cursor introduces doubles in the result set [OAK-2123] Tests do not tear down repository completely [OAK-2127] Long running merge may block other commits [OAK-2132] BackgroundWriteTest uses relative paths [OAK-2139] SegmentExplorer better binary display [OAK-2140] Segment Compactor will not compact binaries > 16k [OAK-2142] Possibility of numeric overflow in blobCacheSize in DocumentMK [OAK-2144] Intermittent Node not found at given revision with DocumentNodeStore [OAK-2145] TarMK cold standby: file handle leak [OAK-2146] empty resultset for PropertyIndex and multi-value properties with mixed OR+AND [OAK-2147] [Ordered Index] Indexing on large content is slow [OAK-2148] SegmentExplorer display in memory references to tar files [OAK-2150] TarMK cold standby: logs are too verbose [OAK-2151] DocumentNodeStore does not detect hierarchy conflict [OAK-2152] Ignore maven-javadoc-plugin -Xdoclint:none option [OAK-2153] Disable TokenAuthenticationTest#tokenCreationWithPreAuth [OAK-2157] Better error message for getPrimaryItem [OAK-2163] Oak-run "checkpoint" and "backup" don't use memory mapped files [OAK-2164] Only enforce uniqueness of jcr:uuid for referenceable nodes [OAK-2166] CacheConsistencyTest may fail with IllegalStateException [OAK-2167] Last revision recover incomplete [OAK-2174] Non-blocking reindexing doesn't finish properly [OAK-2186] Change Password On First Login: Wrong Config Property Description [OAK-2188] Add/remove version label fails with restricted access on /jcr:system [OAK-2192] Concurrent commit during compaction results in mixed segments [OAK-2195] Repository upgrade does not correctly update jcr:all aggregate privileges and bits [OAK-2197] Node.getReferences throws IllegalArgumentException [OAK-2202] OrderedIndex should not return the whole index on property=$value statement [OAK-2203] Full reindexing is triggered when the IndexEditor is missing [OAK-2219] Ordered index does not return relative properties for un-restricted indexes [OAK-2224] Increase the threshold for warning in PathIterator [OAK-2225] MultipleMoveTest doesn't restore ACEs properly causing later tests to fail [OAK-2226] Aggregate Lucene no results for multiple jcr:contains [OAK-2227] Increase package export on org.apache.jackrabbit.oak.plugins.segment [OAK-2232] External events incomplete [OAK-2235] Lucene index not created if no node is indexed [OAK-2237] NodeStoreKernel.getNodes throws when passing filter="" [OAK-2238] Session.getItem violates JCR Spec [OAK-2243] User Query: Condition 'nameMatches' ignores authorizable id [OAK-2246] UUID collision check is not does not work in transient space [OAK-2248] IndexOutOfBoundsException in o.a.j.o.scalability.ScalabilityNodeRelationshipSuite [OAK-2249] Query with mixed full-text, "and", "or" conditions fails [OAK-2250] Lucene Index property definition is ignored if its not in includePropertyNames config [OAK-2254] Observation events accessibility check should respect session refresh settings [OAK-2255] PermissionStoreImpl refresh root on flush [OAK-2256] MemoryNodeBuilder NPE on base() following root refresh [OAK-2259] SegmentBlob equals check should verify compaction in both directions [OAK-2260] TarMK Cold Standby can corrupt bulk segments [OAK-2266] UserQueryManager: Sort Ignore Case Reversed [OAK-2271] Compaction estimation time should not depend on number of checkpoints [OAK-2275] mvn site and site-deploy does not work as expected [OAK-2285] Builder does not exist error during async index update [OAK-2288] DocumentNS may expose branch commit on earlier revision [OAK-2289] Async indexer checkpoints not cleaned up under heavy load [OAK-2294] Corrupt repository after concurrent version operations [OAK-2295] Using "order by jcr:score" slows down queries by a few orders of magnitude [OAK-2297] Update for absent document may throw NPE [OAK-2299] oak.removeDescendantsAndSelf() does not remove descendants with long paths [OAK-2301] QueryEngine should not tokenize fulltext expression by default [OAK-2308] Incorrect recovery of _lastRev for branch commit [OAK-2311] Released checkpoint can still be retrieved [OAK-2312] NodeStoreTest.moveToDescendant fails on MemoryNodeStore [OAK-2315] Index cost is sometimes negative [OAK-2317] UserValidator: Detect nested authorizables introduced by change of primary type [OAK-2318] DocumentNodeStore.diffManyChildren() reads too many nodes [OAK-2319] UserProvider does not install autocreated items [OAK-2320] Wrong optimization for joins with ISDESCENDANTNODE conditions [OAK-2322] Compaction estimation includes all data segments [OAK-2327] DataStoreBlobStore should log exception thrown while reading inputstream [OAK-2328] add logging in OrderedContentMirrorStorateStrategy for better investigation [OAK-2330] Field boost not working if the property for indexing is picked using aggregate index rules [OAK-2332] LIRS cache: deadlock if a value loader access the cache [OAK-2335] IndexPlanner does not return plan for mixin based queries [OAK-2336] NodeDocument.getNodeAtRevision() may read too many revisions [OAK-2343] Wrong handling of InterruptedException in BackgroundThread [OAK-2345] Diff reads too many nodes [OAK-2346] InitializerTest.testInitializerMongoWithoutInitialContent() fails [OAK-2347] TarMK Cold Standby FSDS mirroring [OAK-2354] Support comments anywhere in a SQL-2 statement [OAK-2355] TarMK Cold Standby expose standby read timeout value [OAK-2356] Logic for writing properties in SegmentWriter.writeNode looks off [OAK-2359] read is inefficient when there are many split documents [OAK-2363] NPE in DocumentNodeStore#retrieve for non existing checkpoint [OAK-2366] Cleanup org.apache.jackrabbit.oak.kernel package [OAK-2367] Importing a group with random node name and members fails. [OAK-2368] Property index: setting declaringNodeTypes to an empty array can break queries [OAK-2369] DataStoreWrapperBackend not updated to latest extensions added to Backend interface [OAK-2370] o.a.j.o.plugins.segment.HeavyWriteIT fails on travis (exit code 137) [OAK-2375] Sporadic test failure of HeavyWriteIT.heavyWrite on Travis [OAK-2380] SegmentReferenceLimitTestIT does not close FileStore [OAK-2383] ConcurrentAddNodesClusterIT does not close sessions [OAK-2384] SegmentNotFoundException when keeping JCR Value references [OAK-2386] AnnotatingConflictHandler: jcrrimaryType must be of type Name [OAK-2388] Possibility of overflow in file length calculation [OAK-2389] issues with JsopBuilder.encode and .escape [OAK-2394] Clarify handling of hidden items in ImmutableTree [OAK-2396] TarMk Cold Standby reduce verbosity of server errors on client timeouts [OAK-2402] oak-lucene fails to start in OSGi [OAK-2409] Invalid cast being performed in BlobStoreFixture [OAK-2411] Upgrade may fail with constraint exception [OAK-2418] int overflow with orderby causing huge slowdown [OAK-2420] DocumentNodeStore revision GC may lead to NPE [OAK-2425] DefaultSolrServerProvider should use ConcurrentUpdateSS for indexing [OAK-2426] [LucenePropertyIndex] full-text search on first level relative node returns no result [OAK-2427] XPath to SQL-2 conversion fails due to escaping error [OAK-2429] MissingIndexProviderStrategy too eager to set the reindex flag [OAK-2430] TARMK Cold Standby size increase due to checkpoints copy [OAK-2433] IllegalStateException for ValueMap on _revisions [OAK-2434] Lucene AND query with a complex OR phrase returns incorrect result [OAK-2435] UpdateOp.Key.equals() incorrect [OAK-2436] LucenePropertyIndex throws IllegalStateException: No query created for filter when using order by jcr:score [OAK-2439] IndexPlanner returning plan for queries involving jcr:score [OAK-2441] Regression with Node.getPrimaryNodeType and getMixinNodeTypes wrt Jackrabbit 2.x [OAK-2442] NoSuchElementException thrown by NodeDocument [OAK-2449] offline compaction (via oak-run) broken [OAK-2450] MongoDocumentStore fails for DELETED_ONCE indexed property [OAK-2465] Long overflow in PermissionEntryProviderImpl [OAK-2475] Query Filter looses property constraints for multiple and conditions for same property [OAK-2482] oak-mongo.js does not escape special characters for regular expressions [OAK-2486] TokenProviderImpl.createToken should always create valid node [OAK-2488] Node.getMixinNodeTypes can revive deleted node mixins [OAK-2489] Remove useless configPath in embedded SolrServer provider [OAK-2493] DataStore GC: Fix incorrect tests [OAK-2497] Range query with incorrectly formatted date [OAK-2503] DataStore: Cleanup tests [OAK-2508] ACL filtering on spellchecks [OAK-2513] algorithm with O(n!) in mongoMk rebase - not finishing in years [OAK-2515] SolrQueryIndex blindly executes a 2nd query to check there are no more results [OAK-2521] SegmentDataStoreBlobGCTest failing at some places [OAK-2524] Error while configuring analyzer by composition [OAK-2525] SharedDataStoreUtilsTest failing on travis [OAK-2528] Entries in _commitRoot not purged [OAK-2531] Suggest field doesn't get stored if it has only one value [OAK-2535] TARMK Cold Standby allow cleanup on standby instance [OAK-2536] OakSolrConfigurationProviderService used.properties initialization fails [OAK-2540] Session operations null check [OAK-2541] TARMK Cold Standby marks the sync as stopped on first error [OAK-2549] Persistent Cache: support append-only mode [OAK-2557] VersionGC uses way too much memory if there is a large pile of garbage [OAK-2558] Wrong interpretation of SegmentNodeStoreService configuration values [OAK-2559] Lucene index rules should be case insensitive [OAK-2562] DiffCache is inefficient [OAK-2566] PropertyRestriction.isNotNullRestriction does not take "list" into account [OAK-2567] AsyncIndex should update the run status after the merge has completed [OAK-2576] ServiceEvent on each session login/logout [OAK-2577] LuceneSupportTest fails [OAK-2582] RDB: improve memory cache handling [OAK-2584] Row estimator should have a threshold [OAK-2588] MultiDocumentStoreTest.testInvalidateCache failing for Mongo [OAK-2603] Failure in one of the batch in VersionGC might lead to orphaned nodes [OAK-2605] Support for additional encodings needed in ReversedLinesFileReader [OAK-2607] OakSolrConfigurationProviderService wrongly uses ignoredProperties for usedProperties [OAK-2611] Lucene suggester should only be updated if the index is used for suggestions [OAK-2612] Findbugs plugin version should depend on JDK version [OAK-2615] oak-pojosr tests fail [OAK-2616] GCMonitorMBean#getRepositorySize reports incorrect values [OAK-2639] Incorrect check for log level in PerfLogger [OAK-2640] export org.apache.jackrabbit.oak.plugins.atomic [OAK-2642] DocumentNodeStore.dispose() may leave repository in an inconsistent state [OAK-2648] ObservationTest.observationDispose() restarts repository after test finished [OAK-2649] IndexCopier might create empty files in case of error occuring while copying [OAK-2658] Test failures in TarMK standby: Address already in use [OAK-2659] Failed expectations in TarMK standby tests [OAK-2661] Glob restriction test failures on Jenkins [OAK-2666] LMSEstimator update resetting weights [OAK-2670] Online Backup of segment store fails on Windows because the journal file is locked exclusively. [OAK-2672] Possible null pointer dereferences in ExternalLoginModule [OAK-2691] Blob GC throws NPE [OAK-2694] Avoid unneeded unboxing in PropertiesUtil [OAK-2695] DocumentNodeStore.dispatch() may pass null to NodeStateDiff [OAK-2704] ConcurrentAddIT occasionally fail with OakMerge0001 [OAK-2709] Misleading log message from IndexCopier [OAK-2715] ObservationTest benchmark logs warnings about IllegalStateException [OAK-2716] Background operation lock not released when DocumentNodeStore is closed [OAK-2718] NodeStateSolrServersObserver performs complete diff synchronously causing slowness in dispatch [OAK-2720] Misleading traversal warning message while performing query [OAK-2725] Wrong indexed query estimates exceed more than double the actual index entries Tasks [OAK-1455] document oak:unstructured performance advantages [OAK-1533] RdbDocumentStore should use a connection pool [OAK-1536] Add configuration for baselining-maven-plugin [OAK-1678] document atomicity of DS.remove(collection, keys) [OAK-1702] Create a benchmark for Full text search [OAK-1785] Upgrade HttClient version in oak-solr-osgi [OAK-1803] Drop oak-mk-perf [OAK-1896] Move JR2 specific logic from oak-run to separate module [OAK-2034] Update parent pom.xml to latest 2.9 release [OAK-2054] MissingLastRevSeeker optimized only for MongoDS [OAK-2079] Refactor BlobStore creation logic in a BlobStoreFixture [OAK-2082] Analyze repository growth with Lucene index on SegmentMk [OAK-2085] Move CacheStats humanReadableByteCount to Oak Commons IOUtils [OAK-2168] Make SolrIndex implement AdvanceQueryIndex [OAK-2170] Oak 1.1.x : Document new features in security area [OAK-2184] Release 1.1.1 [OAK-2208] MissingLastRevSeeker non MongoDS may fail with OOM [OAK-2352] Release oak-run as part of Oak release [OAK-2431] Avoid wrapping of LuceneIndexProvider with AggregateIndexProvider in tests [OAK-2438] Evaluate support for must(must_not(x)) query with Lucene [OAK-2578] Add Sling OSGi Mocks to parent pom [OAK-2583] Use PerfLogger in DocumentNodeStoreBranch [OAK-2625] Copy Jackrabbit 2 S3 related classes [OAK-2632] Upgrade Jackrabbit dependency to 2.10.0 [OAK-2653] Deprecate ordered index [OAK-2664] Move ProgressNotificationEditor from upgrade module to core [OAK-2693] Retire oak-mk-remote 详细 issues 列表:https://issues.apache.org/jira/browse/OAK 更多内容请看发行说明。 Apache Jackrabbit 是由 Apache Foundation 提供的 JSR-170 的开放源码实现.. 随着内容管理应用程序的日益普及,对用于内容仓库的普通、标准化 API 的需求已凸现出来。Content Repository for Java Technology API (JSR-170) 的目标就是提供这样一个接口。JSR-170 的一个主要优点是,它不绑定到任何特定的底层架构。例如,JSR-170 实现的后端数据存储可以是文件系统、WebDAV 仓库、支持 XML 的系统,甚至还可以是 SQL 数据库。此外,JSR-170 的导出和导入功能允许一个集成器在内容后端与 JCR 实现之间无缝地切换。 Apache Jackrabbit Oak 1.2.0 发布下载地址