发布于 2015-07-26 00:02:02 | 216 次阅读 | 评论: 0 | 来源: 网友投递
Apache JackRabbit
Apache JackRabbit是一个开放源码的JSR-170 实现,实现了Level 2,但它还有许多扩展的功能。
Apache JackRabbit是一个开放源码的JSR-170 实现,实现了Level 2,但它还有许多扩展的功能。
Apache Jackrabbit Oak 1.2.3 发布,此版本现已提供下载:
http://jackrabbit.apache.org/downloads.html
Oak 1.2.3 更新内容
--------------------
子任务
[OAK-2410] - [sonar]Some statements not being closed in
RDBDocumentStore
[OAK-2747] - Admin cannot create versions on a locked page by
itself
[OAK-2826] - Refactor ListeneableFutureTask to commons
[OAK-2850] - Flag states from revision of an external change
[OAK-2856] - improve RDB diagnostics
[OAK-2901] - RDBBlobStoreTest should be able to run against
multiple DB types
[OAK-2915] - add (experimental) support for Apache Derby
[OAK-2916] - RDBDocumentStore: use of "GREATEST" in SQL apparently
doesn't have test coverage in unit tests
[OAK-2918] - RDBConnectionHandler: handle failure on setReadOnly()
gracefully
[OAK-2923] - RDB/DB2: change minimal supported version from 10.5
to 10.1, also log decimal version numbers as well
[OAK-2930] - RDBBlob/DocumentStore throws NPE when used after
being closed
[OAK-2931] - RDBDocumentStore: mitigate effects of large query
result sets
[OAK-2938] - Estimation of required memory for compaction is off
[OAK-2940] - RDBDocumentStore: "set" operation on _modified
appears to be implemented as "max"
[OAK-2949] - RDBDocumentStore: no custom SQL needed for GREATEST
[OAK-2950] - RDBDocumentStore: conditional fetch logic is reversed
[OAK-2952] - RDBConnectionHandler: log failures on setReadOnly()
only once
[OAK-2953] - Implement text extractor as part of oak-run
[OAK-2966] - JDBC config for document store tests should be
overridable
[OAK-2982] - BasicDocumentStoreTest: separate actual unit tests
from performance tests
[OAK-2985] - RDBDocumentStore: more diagnostics for long-running
queries
[OAK-2987] - RDBDocumentStore: try PreparedStatement batching
[OAK-2995] - RDB*Store: check transaction isolation level
[OAK-3002] - Optimize docCache and docChildrenCache invalidation
by filtering using journal
[OAK-3009] - RDBDocumentStore: add support for optional additional
index
[OAK-3010] - RDBDocumentStore: remove hardwired "id-is-binary"
flag
[OAK-3096] - RDBDocumentStore: improve diagnostics for failed
batch inserts
[OAK-3108] - RDBDocumentStore: improve diagnostics for failed
inserts/updates caused by long data
[OAK-3114] - RDBDocumentStore: add BDATA DDL information to
startup diagnostics
Bug 修复
[OAK-2401] - SegmentNodeStoreService prone to deadlocks
[OAK-2663] - Unique property index can trigger OOM during upgrade
of large repository
[OAK-2778] - DocumentNodeState is null for revision rx-x-x
[OAK-2799] - OakIndexInput cloned instances are not closed
[OAK-2817] - TARMK Cold Standby cleanup removes too many binary
segments
[OAK-2832] - Test failure: DefaultAnalyzersConfigurationTest
[OAK-2838] - Test failure: OSGiIT
[OAK-2845] - Memory leak in ObserverTracker#removedService
[OAK-2855] - CopyOnReadDirectory mode might delete a valid local
file upon close
[OAK-2860] - RDBBlobStore: seen insert failures due to duplicate
keys
[OAK-2863] - No matching result found with use of relative
property names in fulltext search in some cases
[OAK-2867] - CommitQueue.done() may fail to remove commit
[OAK-2873] - Performance problems with many "or" conditions
[OAK-2874] - [ldap] enable listUsers to work for more than 1000
external users
[OAK-2890] - SegmentBlob does not return blobId for
contentIdentity
[OAK-2903] - Test failures: ldap tests fail on Jenkins
[OAK-2904] - test failures for oak-auth-ldap on Windows
[OAK-2913] - TokenLoginModule should clear state in case of a
login exception
[OAK-2933] - AccessDenied when modifying transiently moved item
with too many ACEs
[OAK-2934] - Certain searches cause lucene index to hit
OutOfMemoryError
[OAK-2951] - Regression: SSL errors with latest ldap client
[OAK-2960] - SegmentNodeStoreService doesn't fully implement a
@Modified method
[OAK-2961] - Async index fails with OakState0001: Unresolved
conflicts in /:async
[OAK-2963] - [Blob GC]: Undeleted blobs also being logged in
deleted count
[OAK-2970] - DocumentNodeStoreService doesn't fully implement a
@Modified method
[OAK-2972] - DocumentNodeStore gets initialized multiple time with
RDB persistence
[OAK-2999] - Index updation fails on updating multivalued property
[OAK-3000] - SimpleExcerptProvider causes OOM for some wildcard
expressions
[OAK-3013] - SQL2 query with union, limit and offset can return
invalid results
[OAK-3019] - VersionablePathHook must not process hidden nodes
[OAK-3020] - Async Update fails after IllegalArgumentException
[OAK-3021] - UserValidator and AccessControlValidator must not
process hidden nodes
[OAK-3023] - Long running MongoDB query may block other threads
[OAK-3026] - test failures for oak-auth-ldap on Windows
[OAK-3028] - Hierarchy conflict detection broken
[OAK-3029] - EmbeddedSolrServerProvider should check if core is /
can be loaded
[OAK-3035] - ReferenceEditor reindex detection broken
[OAK-3053] - Locking issues seen with CopyOnWrite mode enabled
[OAK-3061] - oak-authorization-cug uses wrong parent pom
[OAK-3062] - VersionGC failing on Mongo with
CursorNotFoundException
[OAK-3067] - Lucene IndexCopier should increase
readerRemoteReadCount for new files
[OAK-3081] - SplitOperations may undo committed changes
[OAK-3084] - Commit.applyToDocumentStore(Revision) may rollback
committed changes
[OAK-3089] - LIRS cache: zero size cache causes
IllegalArgumentException
[OAK-3091] - Remove duplicate logback-classic dependency entry
from oak-lucene pom
[OAK-3098] - CopyOnWrite might block Async indexer thread
indefinitely
[OAK-3099] - Revision GC fails when split documents with very long
paths are present
[OAK-3101] - wrong use of jcr:score in Solr when sorting
[OAK-3103] - Stale document in MongoDocumentStore cache
[OAK-3105] - SegmentWriter doesn't properly check the length of
external blob IDs
[OAK-3106] - DocumentStorePerformanceTest collects duplicate ids
to remove
[OAK-3110] - AsyncIndexer fails due to FileNotFoundException
thrown by CopyOnWrite logic
改进
[OAK-1970] - Optimize the diff logic for large number of children
case
[OAK-2016] - Make blob gc max age configurable in
SegmentNodeStoreService
[OAK-2620] - Release merge lock before branch is reset
[OAK-2627] - Optimize equals in AbstractBlob
[OAK-2657] - Repository Upgrade could shut down the source
repository early
[OAK-2685] - Track root state revision when reading the tree
[OAK-2763] - Remove ChangeDispatcher in DocumentNodeStoreBranch
[OAK-2783] - Make LDAP connection pool 'testOnBorrow' configurable
[OAK-2804] - Conditional remove on DocumentStore
[OAK-2809] - Save Lucene directory listing as array property
[OAK-2814] - Refactor the optimize logic regarding path include
and exclude to avoid duplication
[OAK-2822] - Release merge lock in retry loop
[OAK-2823] - Change default for oak.maxLockTryTimeMultiplier
[OAK-2829] - Comparing node states for external changes is too
slow
[OAK-2830] - LIRS cache: avoid concurrent loading of the same
entry if loading is slow
[OAK-2837] - Persistent cache: avoid repeated log message after
closing
[OAK-2841] - Log NodePropBundle id for which no bundle is found
[OAK-2861] - TARMK Cold Standby better binary decoding
[OAK-2865] - Log stats around time spent in extracting text from
binaries
[OAK-2868] - Bypass CommitQueue for branch commits
[OAK-2885] - Enable saveDirListing by default
[OAK-2886] - Exclude image/tiff from text extraction
[OAK-2889] - Ignore "order by jcr:score desc" in the query engine
(for "union" queries)
[OAK-2893] - RepositoryUpgrade.copy() should optionally continue
on errors.
[OAK-2895] - Avoid accessing binary content if the mimeType is
excluded from indexing
[OAK-2897] - Regression - lookupOnValidate does not work
[OAK-2898] - DataStoreBlobStore should expose a buffer input
stream for getInputStream call
[OAK-2912] - Clear the modified and deleted map in PermissionHook
after processing is complete
[OAK-2927] - ReferenceEditor newIds consuming lots of memory
during migration
[OAK-2957] - LIRS cache: config options for segment count and
stack move distance
[OAK-2971] - DocumentNodeStore thread names should carry the
clusterNodeId
[OAK-3011] - Add name of lucene-property index to cost debug log
[OAK-3017] - Log message when a branch is created
[OAK-3024] - NodeStoreFixture: add "getName()" for diagnostics,
allow config of RDB JDBC connection
[OAK-3025] - add test case simulating batched import of nodes
[OAK-3043] - Provide item path with InvalidItemStateException
[OAK-3057] - Simplify debugging conflict related errors
[OAK-3069] - Provide option to eagerly copy the new index files in
CopyOnRead
[OAK-3076] - Compaction should trace log the current processed
path
[OAK-3085] - Add timestamp property to journal entries
[OAK-3088] - IndexUpdate reports at debug level quite verbose
[OAK-3107] - SegmentWriter should be able to store blob IDs longer
than 4096 bytes
新特性
[OAK-2247] - CopyOnWriteDirectory implementation for Lucene for
use in indexing
[OAK-2599] - Allow excluding certain paths from getting indexed
for particular index
[OAK-2882] - Support migration without access to DataStore
[OAK-2892] - Speed up lucene indexing post migration by pre
extracting the text content from binaries
[OAK-2926] - Fast result size estimate
[OAK-2980] - Fast result size estimate in Solr index
任务
[OAK-2846] - Merge missing fixes to 1.2 branch which were made to
1.0 branch
[OAK-2936] - PojoSR should use Felix Connect API instead of pojosr
[OAK-2967] - Merge OAK-2800, OAK-2801, OAK-2692, OAK-2713
[OAK-3041] - Baseline plugin suggests version increase for
unmodified class
[OAK-3044] - Backport OAK-2945 to 1.2 branch
[OAK-3058] - Backport OAK-2872 to 1.0 and 1.2 branches
完整 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 实现之间无缝地切换。