blob: 3242edf9a312b8f6e2708c5f6c7474641303324f [file] [log] [blame]
Release Notes -- Apache Jackrabbit -- Version 1.4
Introduction
------------
Apache Jackrabbit is a fully conforming implementation of the Content
Repository for Java Technology API (JCR). A content repository is a
hierarchical content store with support for structured and unstructured
content, full text search, versioning, transactions, observation, and
more. Typical applications that use content repositories include content
management, document management, and records management systems.
Apache Jackrabbit 1.4 is an incremental feature release. While
remaining compatible with previous releases, Jackrabbit 1.4 introduces
a number of new features, improvements and fixes to known issues. The
most notable new features in this releases are the new object mapping
and service provider components for JCR. The Jackrabbit content
repository implementation has been enhanced with a new storage model
for binary content, a much improved query and indexing system, and
many fixes and improvements especially for concurrent access. Many
smaller improvements and bug fixes are also included all over the
codebase.
See the Apache Jackrabbit website at http://jackrabbit.apache.org/ for
more information.
Release Contents
----------------
The release consists of a single source archive and a number of
pre-compiled binary component archives.
* Jackrabbit source code (jackrabbit-1.4-src.jar)
The main source archive contains a "jackrabbit-1.4-src" directory
with the full released source code and build environment. Use the
following commands (or the equivalent in your system) to build all
the released components with Maven 2 and Java 1.4:
$ jar xf jackrabbit-1.4-src.jar
$ cd jackrabbit-1.4-src
$ mvn install
The OCM components require Java 5 or higher, and you need to
build them separately:
$ (cd jackrabbit-ocm; mvn install)
$ (cd jackrabbit-ocm-nodemanagement; mvn install)
The components contained in the released source archive are listed below
(with the pre-compiled binary archives in parenthesis):
* Jackrabbit API (jackrabbit-api-1.4.jar)
Interface extensions that Apache Jackrabbit supports in
addition to the standard JCR API.
* Jackrabbit JCR Commons (jackrabbit-jcr-commons-1.4.jar)
General-purpose classes for use with the JCR API.
* Jackrabbit JCR Tests (jackrabbit-jcr-tests-1.4.jar)
Set of JCR API test cases designed for testing the compliance
of an implementation. Note that this is not the official JCR TCK!
* Jackrabbit Core (jackrabbit-core-1.4.jar)
Core of the Apache Jackrabbit content repository implementation.
* Jackrabbit Text Extractors (jackrabbit-text-extractors-1.4.jar)
Text extractor classes that allow Jackrabbit to extract text content
from binary properties for full text indexing.
* Jackrabbit JCR-RMI (jackrabbit-jcr-rmi-1.4.jar)
RMI network layer for the JCR API.
* Jackrabbit WebDAV Library (jackrabbit-webdav-1.4.jar)
Interfaces and common utility classes used for building a
WebDAV server or client.
* Jackrabbit JCR Server (jackrabbit-jcr-server-1.4.jar)
WebDAV servlet implementations based on JCR.
* Jackrabbit JCR Servlets (jackrabbit-jcr-servlet-1.4.jar)
Set of servlets and other classes designed to make it easier to use
Jackrabbit and other JCR content repositories in web applications.
* Jackrabbit Repository Classloader (jackrabbit-classloader-1.4.jar)
Java classloader for loading classes from JCR content repositories.
* Jackrabbit Web Application (jackrabbit-webapp-1.4.war)
Deployable Jackrabbit installation with WebDAV support for JCR.
* Jackrabbit JCA Resource Adapter (jackrabbit-jca-1.4.rar)
J2EE Connector Architecture (JCA) resource adapter for Jackrabbit.
* Jackrabbit SPI (jackrabbit-spi-1.4.jar)
The SPI defines a layer within a JSR-170 implementation that separates
the transient space from the persistent layer.
* Jackrabbit SPI Commons (jackrabbit-spi-commons-1.4.jar)
This component contains generic utility classes that might be used
to build an SPI implementation.
* Jackrabbit SPI2JCR (jackrabbit-spi2jcr-1.4.jar)
This component contains a SPI implementation wrapping around an
implementation of JSR-170.
* Jackrabbit JCR2SPI (jackrabbit-jcr2spi-1.4.jar)
This component contains an implementation of the JSR-170 API and
covers the functionality that is not delegated to the SPI
implementation.
* Jackrabbit OCM (jackrabbit-ocm-1.4.jar)
Object-Content mapping tool for persisting and accessing Java objects
in a JCR content repository.
* Jackrabbit OCM Node Management (jackrabbit-ocm-nodemanagement-1.4.jar)
This component simplifies registration of node types and namespaces
referenced in OCM mapping descriptors.
All files contain a README.txt file with more information. Note that
external runtime dependencies are only included for the war and rar
archives. Other dependencies can be downloaded either manually or
automatically using the Maven build system.
Each release file is accompanied by SHA1 and MD5 checksums and a PGP
signature. The public key used for the signatures can be found
in the KEYS file located in the parent directory.
Upgrading to Jackrabbit 1.4
---------------------------
Apache Jackrabbit 1.4 is fully compatible with the previous 1.x releases.
A previous Apache Jackrabbit 1.x installation can be upgraded by replacing
the relevant jar files with the new versions and adding some new dependencies.
No changes to repository contents are needed.
Jackrabbit 1.4 introduces the SPI layer described above, and in addition to
it's earlier dependencies the jackrabbit-core component now also needs the
jackrabbit-spi and jackrabbit-spi-commons components in the classpath.
A number of classes in jackrabbit-jcr-commons have been deprecated, and you
should check for the suggested replacements if you use those classes in your
applications.
The Lucene dependency was upgraded to 2.2.0, and so you need to upgrade
also the lucene-core jar file in your classpath when upgrading
jackrabbit-core. No index file changes are needed.
Repository configuration has been extended with a number of options for
storage, locking and indexing strategies. However, no changes to existing
configuration files are needed unless you want to enable these new features.
A minor behavioural change to queries containing XPath "not(@property)"
constraints was made to make Jackrabbit better conform with the JCR
specification. In Jackrabbit 1.3 and before such constraint would match
empty multi-valued properties, but in Jackrabbit 1.4 the contraint is true
only if the property does not exist.
Upgrading to Jackrabbit 1.3
---------------------------
Apache Jackrabbit 1.3 is fully compatible with the previous 1.x releases.
A previous Apache Jackrabbit 1.x installation can be upgraded by replacing
the relevant jar files with the new versions. No changes to repository
contents are needed.
See below for a more detailed description of the structural changes in
the Apache Jackrabbit 1.2 release.
Upgrading to Jackrabbit 1.2
---------------------------
The most notable effect of the component restructuring in the 1.2 release
was that the previous jackrabbit-core component has been split in three
pieces: jackrabbit-api, jackrabbit-jcr-commons, and jackrabbit-core. Thus
you need to replace the previous jackrabbit-core-1.x.jar file with the
three new jar archives.
The structure of the WebDAV components have also changed. WebDAV support
now consists of the webapp component jackrabbit-webapp and the libraries
jackrabbit-webdav and jackrabbit-jcr-server.
The Apache Lucene dependency used for full text indexing has been upgraded
to version 2.0 in this release. Lucene 2.0 is able to continue using
existing index files, but you can also manually recreate the index with
Lucene 2.0 extensions by removing the "index" directories of a closed
repository. Jackrabbit will automatically re-index content when the
repository is next started.
Also the Apache Derby dependency has been upgraded to version 10.2.
Like Lucene, the new Derby version can keep using existing database files.
New repositories and workspaces will however be created using extensions
and improvements introduced in the 10.2 version.
Changes and known issues in this release
----------------------------------------
All the changes (new features, improvements, bug fixes) and known issues
in Apache Jackrabbit 1.4 are listed below. The listing is organized by
Jackrabbit component and by issue type. The issue identifier and title
is listed for each change and known issue.
You can look up individual issues for more details in the Jackrabbit
issue tracker at
http://issues.apache.org/jira/browse/JCR
Note that some issues may appear more than once in the list below, as
they may affect more than one component. Generic issues that affect all
or most components are listed first under the label "jackrabbit".
jackrabbit
New features
[JCR-995] Release the OCM component
[JCR-1070] Promotion of SPI from Contrib
Improvements
[JCR-902] Put JavaDoc resources in src/main/javadoc
[JCR-903] Put resource files in java/{main,test}/resources
[JCR-957] Set jcr and servlet-api dependency scope to provided
[JCR-979] Extend apache parent pom for Apache wide configuration
[JCR-988] Configure the maven build for IDE project generation for ...
[JCR-1283] Add missing license headers
jackrabbit-api
Improvements
[JCR-1097] Move the XASession interface to jackrabbit-api
jackrabbit-classloader
No changes
jackrabbit-core
New features
[JCR-202] Add configuration options for search manager
[JCR-857] Basic support for fn:name()
[JCR-889] Add bundle support for PostgreSQL
[JCR-901] Support synonym searches
[JCR-906] Introduce similarity function
[JCR-907] Create HTML excerpt provider
[JCR-926] Global data store for binaries
[JCR-989] Modify LazyQueryResultImpl to allow resultFetchSize to be ...
[JCR-1073] Add getTotalSize() to QueryResults
[JCR-1079] Extend the IndexingConfiguration to allow configuration ...
[JCR-1112] CacheManager interval between recalculation of cache sizes ...
[JCR-1154] Database Data Store
[JCR-1184] Introduce spellchecker functionality based on content in ...
[JCR-1276] A Property and a Node Can Have the Same Name
[JCR-1295] Tablespace (Filegroup) support for MS SQL Server
[JCR-1304] Support system properties in ${...} vars in XML config files
Improvements
[JCR-314] Fine grained locking in SharedItemStateManager
[JCR-564] Remove geronimo JTA as a runtime dependency
[JCR-688] Improve name resolution
[JCR-691] Let NameException extend RepositoryException
[JCR-788] Upgrade to Lucene 2.2
[JCR-860] Add relative path parameter to rep:excerpt()
[JCR-863] Use FileLock for locking instead of empty file
[JCR-887] DateField class should be public
[JCR-896] Unnecessary parsing of Name value
[JCR-898] Improve excerpt fragments
[JCR-920] rep:excerpt() should also work on properties
[JCR-927] DatabaseJournal needs connection reestablishment logic
[JCR-928] NodeTypeManagerImpl.hasNodeType should allow unknown prefixes
[JCR-940] add db connection autoConnect for BundleDbPersistenceManager.
[JCR-943] SQL Server support in clustering module
[JCR-948] Support for JNDI configuration of BundleDbPersistenceManager
[JCR-949] PostgreSQL support in clustering module
[JCR-967] Only search the index for the "jcr:system" tree if needed
[JCR-968] Add support for tablespaces to Oracle related classes
[JCR-974] Manage Lucene FieldCaches per index segment
[JCR-975] NodeImpl.checkin() calls save() three times
[JCR-976] Misleading exception message when re-index fails
[JCR-982] Each TransactionContext creates new thread
[JCR-992] Improve Performance of DescendantSelfAxisQuery
[JCR-1041] Avoid using BitSets in ChildAxisQuery to minimize memory usage
[JCR-1042] Disable norms for untokenized fields to reduce memory ...
[JCR-1057] Log at debug level rather that info in CacheManager
[JCR-1061] Allow extendability of RepositoryImpl.WorkspaceInfo
[JCR-1063] Disable consistency check per default
[JCR-1064] Optimize queries that check for the existence of a property
[JCR-1066] Exclude system index for queries that restrict the result ...
[JCR-1084] Maintan a stable ordering of properties in xml export
[JCR-1085] Remove unused LuceneQueryBuilder.createQuery() method
[JCR-1093] Separate initial index creation from MultiIndex construction
[JCR-1097] Move the XASession interface to jackrabbit-api
[JCR-1111] Accesss to version history results in reading all versions ...
[JCR-1114] Remove QueryResultImpl and rename LazyQueryResultImpl to ...
[JCR-1116] Database persistence managers: log database and driver ...
[JCR-1138] Data store garbage collection
[JCR-1156] DatabaseJournal refactoring for subclassing capability
[JCR-1162] Improve logging in NodeTypeRegistry.persistCustomNodeTypeDefs
[JCR-1169] Distribution of commons classes
[JCR-1175] Test cases for all FileSystem implementations
[JCR-1178] Rethrow exception with cause in BundleDbPersistenceManager
[JCR-1181] Use common base classes in jackrabbit-core and jcr2spi
[JCR-1182] Put everything in jackrabbit-spi-commons under ...
[JCR-1203] Reorganize test suites
[JCR-1209] NodeImpl.checkout() calls save() two times
[JCR-1213] UUIDDocId cache does not work properly because of ...
[JCR-1214] DocId.UUIDDocId should not have a string attr uuid
[JCR-1221] IndexMerger blocks client threads when obsolete index ...
[JCR-1222] Index nodes in parallel
[JCR-1225] ReadOnlyIndexReaders are re-created on every access
[JCR-1229] Remove build.xml from jackrabbit-core
[JCR-1234] CachingMultiReader has inconsistent name
[JCR-1238] Change default value for maxMergeDocs
[JCR-1241] NodeIndexer creates unnecessary string representation of Name ...
[JCR-1251] DescendantSelfAxisQuery creates too many object instances
[JCR-1252] BundleFsPersistenceManager: remove deprecated settings
[JCR-1266] Use creation tick instead of weak references in DocNumberCache
[JCR-1273] Unnecessary parsing of Name value
[JCR-1278] Add configuration path to SynonymProvider
[JCR-1283] Use bundle persistence in default configuration
[JCR-1291] Missing class JNDIDatabaseJournal
[JCR-1297] Set svn:eol-style on ddl files
[JCR-1299] Default configuration not suitable for demo web application
Bug fixes
[JCR-674] String properties with invalid XML characters export as ...
[JCR-832] BundleDBPersistenceManager does not free blobStore resources
[JCR-1013] Connection.setAutoCommit(...) fails if connection is managed ...
[JCR-1148] NullPointerException in ItemState
[JCR-1167] Paths not correct after reordering children
[JCR-1170] Repository lock keeps file open
[JCR-1176] MemoryFileSystem is different from other FileSystems
[JCR-1179] Event filtering by path not working as specified
[JCR-1185] building trunk fails with javacc plugin version 2.2
[JCR-1197] Node.restore() may throw InvalidItemStateException
[JCR-1217] Aggregate include ignored if no primaryType set
[JCR-1235] o.a.j.core.integration.PrepareTestRepository fails on 2nd and ...
[JCR-1240] Index segments are only committed on close
[JCR-1246] In DatabasePersistenceManager.store(), if the exception is ...
[JCR-1250] When adding a large (100MB) binary to the DbDataStore, it ...
[JCR-1254] DatabaseJournal commits twice inside a transaction, causing an ...
[JCR-1265] Lower-Case Search-Function works with Upper-Case Searchstring
[JCR-1270] CompactNodeTypeDefReader does not recognise MIXIN ORDERABLE ...
[JCR-1271] NullPointerException when iterating over properties
[JCR-1272] Property.getValue() throws RepositoryException with internal error
[JCR-1274] ItemStateCache in SharedItemStateManager not properly ...
[JCR-1277] ConnectionRecoveryManager is created twice in DBDataStore init ...
[JCR-1298] Wrong schemaObjectPrefix parameter in default repository.xml
[JCR-1302] ArrayHits does not end properly when skipTo doesn't find document
Known issues
[JCR-43] Restore on nodes creates same-name-sibling of ...
[JCR-320] BinaryValue equals fails for two objects with ...
[JCR-392] Querying element by number does not work
[JCR-435] Node.update() does not work correct for SNS
[JCR-449] inconsistency in internal version items during commits
[JCR-517] Reserved status of namespace jcr not enforced
[JCR-522] XPath parser too tolerant
[JCR-537] Failure to remove a versionable node
[JCR-538] failing Node.checkin() or Node.checkout() might leave ...
[JCR-566] Versioning bug with restore and transactions
[JCR-575] unicode escapes in files generated by JJTree
[JCR-591] XPath position function does not work
[JCR-639] Allow modification of OPV=IGNORE items even if parent ...
[JCR-643] Own AccessManager + VersionManager : AccessDenied problem
[JCR-690] Nodes' and properties' names with invalid XML ...
[JCR-709] ArrayStoreException is thrown when jcr:deref() is used ...
[JCR-777] Order by clause using child axis does not throw ...
[JCR-843] XPath does not work with sub-axes
[JCR-908] Unable to properly restore a previous version of a node that ...
[JCR-932] Lossy SQL parsing
[JCR-935] ConcurrentModificationException during logout (cont'd)
[JCR-936] Using Oracle bundle PM throws SQL exception (cannot insert NULL)
[JCR-983] fn:upper accepted in too many places
[JCR-1002] QueryManager does not throw exception if property name ...
[JCR-1046] Non-versionable children of a versionable node should not ...
[JCR-1075] Error with predicate in query with multiple jcr:deref()
[JCR-1117] Bundle cache is not rolled back when the storage of a ...
[JCR-1135] boolean value constraints exposed in custom format
[JCR-1173] Session scoped lock has no effect on other cluster nodes
[JCR-1187] Asking a property twice for it's stream returns the same ...
[JCR-1211] QueryManager does not throw exception if jcr:deref is used in ...
[JCR-1223] Occasional NPE on node checkin
[JCR-1227] Restore of empty multivalue property always changes property ...
[JCR-1248] ParseException if search string ends with '!'
[JCR-1275] NullPointerException in AbstractVersionManager....
[JCR-1288] query parser doesn't handle relative XPath expressions
jackrabbit-jca
Improvements
[JCR-987] Deploy JCA JAR file to maven repository
[JCR-1203] Reorganize test suites
Known issues
[JCR-607] Importing XML at root level using a session from JCA ...
[JCR-609] Empty custom_nodetypes.xml after restart
[JCR-769] Unable to login with two different Credentials to the same ...
[JCR-861] Connector should support LocalTransaction as well as XATransaction
[JCR-1035] Jackrabbit JCA - The client can bypass the managed connection ...
[JCR-1077] Changelog not persisted during two phase commit in prepare phase
jackrabbit-jcr-commons
New features
[JCR-1259] Utility code for filtering and packaging trees
Improvements
[JCR-742] Abstract JCR base classes
[JCR-896] Unnecessary parsing of Name value
[JCR-969] better error for unknown date formats
[JCR-997] ValueFactory is not extensible
[JCR-1152] SPI implementations currently need to provide ...
[JCR-1169] Distribution of commons classes
[JCR-1206] UUID generation: SecureRandom should be used by default
[JCR-1258] Add path encoding to ISO9075
[JCR-1273] Unnecessary parsing of Name value
Bug fixes
[JCR-674] String properties with invalid XML characters export as ...
[JCR-1167] Paths not correct after reordering children
[JCR-1292] Deprecated classes point to wrong replacements ...
jackrabbit-jcr-rmi
Improvements
[JCR-958] Use jackrabbit-jcr-commons in jackrabbit-jcr-rmi
[JCR-953] Support for transactions when using JCR over RMI.
[JCR-959] Remove @author tags in jackrabbit-jcr-rmi
Bug fixes
[JCR-1226] ServerQuery does not use RemoteAdapterFactory for creating ...
jackrabbit-jcr-server
New features
[JCR-388] add support for RFC 3253 to the simple server
[JCR-1188] WebDAV: Allow for Extensions of MimeResolver in the ...
Improvements
[JCR-723] OpenDocument files missing in mimetypes.properties
[JCR-852] Change Log-Level in DefaultIOListener
[JCR-1172] Better MimeType Handling
[JCR-1210] WebDAV: pack AbstractWebdavServlet with the ...
[JCR-1230] Jcr-Server: useful output upon GET to root- and ...
[JCR-1262] Deprecated AbstractWebdavServlet should be empty and extend ...
[JCR-1263] Move SimpleWebdavServlet to jcr-server and make it abstract
[JCR-1268] Move JCRWebdavServerServlet to jcr-server and make it abstrat
jackrabbit-jcr-servlet
New features
[JCR-956] Reusable Repository access and bind servlets
Improvements
[JCR-419] Request for other RMI binding options in ...
jackrabbit-jcr-tests
Improvements
[JCR-817] TCK vs available property types
[JCR-822] TCK: Transfer of lock token should be tested using ...
[JCR-947] XMLReader logs fatal error to system out
[JCR-1143] NullPointerException in ClassDescriptor
[JCR-1224] Release references to JCR items in tearDown
Bug fixes
[JCR-1134] bad assumptions in VersionHistoryTest.testInitallyGetAll...
[JCR-1168] broken test in AddEventListener
Known issues
[JCR-509] TCK:NodeTest#testNodeIdentity fails if versioning ...
[JCR-714] TCK: Test root path not escaped when used in XPath queries
[JCR-752] Test cases leak sessions
[JCR-759] handling of namespace registrations in AbstractJCRTest
[JCR-1094] TCK assumes that repository does not automatically add mixins ...
[JCR-1102] bad test assumptions in SQLJoinTest
[JCR-1129] bad test assumptions in versioning tests
[JCR-1130] bad test assumptions in TextNodeTest with respect to ...
[JCR-1161] Export test cases fail with Java 5 on Mac OS X
[JCR-1164] Bad test assumptions in observation tests
[JCR-1307] TCK: Attribute values may be normalized in document view exports
jackrabbit-jcr2spi
New features
[JCR-999] SPI: provide batch read functionality
[JCR-1009] JCR2SPI: add JNDI support
Improvements
[JCR-996] Name and Path interfaces in SPI
[JCR-1000] JCR2SPI: remove duplicate item states
[JCR-1001] SPI: prefer 'Iterator' instead of specialized subclasses
[JCR-1004] SPI: Add RepositoryService.getQNodeTypeDefinition
[JCR-1017] Favour QValue.getPath() over getString() where appropriate
[JCR-1018] introduce QValue.getCalendar()
[JCR-1020] Use repository service wide namespace cache
[JCR-1022] Reduce calls to RepositoryService.getRepositoryDescriptors()
[JCR-1023] Only load item definition when required
[JCR-1024] Only load root node definition when required
[JCR-1027] SPI: change param order with RepositoryService.createBatch
[JCR-1030] Introduce QNodeTypeDefinition cache per userId
[JCR-1031] RowIteratorImpl should make use of QueryResultRow.getValues()
[JCR-1032] Clean caches in node type registry on session logout
[JCR-1108] JCR2SPI: error level logging when cleaning up session locks
[JCR-1150] JCR2SPI: several performance improvements pointed out by ...
[JCR-1151] avoid converting property values to strings
[JCR-1152] SPI implementations currently need to provide ...
[JCR-1153] remove support for event bundle IDs
[JCR-1159] SPI: improve description of locking methods on RepositoryService
[JCR-1166] JCR2SPI does not provide actual size on RangeIterator.getSize()
[JCR-1169] Distribution of commons classes
[JCR-1181] Use common base classes in jackrabbit-core and jcr2spi
[JCR-1182] Put everything in jackrabbit-spi-commons under ...
[JCR-1200] allow SPI implementation to compute default values for ...
[JCR-1204] Redesign SPI observation
[JCR-1231] Jcr2Spi: Unneeded call to getPropertyInfo upon creating a new ...
[JCR-1244] No need for NodeReferences in jcr2spi
[JCR-1267] Unreachable catch block for NameException in ValueConstraint.java
Bug fixes
[JCR-674] String properties with invalid XML characters export as ...
[JCR-1029] CLONE -Handling of multiple residual prop defs in ...
[JCR-1036] JCR2SPI; setProperty(name, date-string) fails when property ...
[JCR-1040] JCR2SPI: remove node operation missing in submitted SPI batch
[JCR-1056] JCR2SPI: improve ItemDefinitionProviderImpl.getMatching...
[JCR-1086] JCR2SPI: Workspace.getImportHandler creates a handler ...
[JCR-1103] JCR2SPI: VersionManagerImpl.getVersionableNodeEntry uses ...
[JCR-1131] JCR2SPI NodeEntryImpl throws NPE during reorderNodes
[JCR-1133] JCR2SPI: VersionHistoryImpl.getQLabels() needs to skip ...
[JCR-1149] JCR2SPI: several broken equals() comparisons
[JCR-1160] JCR2SPI: test regression for WorkspaceMoveReferenceableTest...
[JCR-1183] JCR2SPI: potential race condition in event listener registration
[JCR-1245] JCR2SPI: Use namespace decl. present in imported xml to ...
[JCR-1296] Exception may get lost in WorkspaceManager....
Known issues
[JCR-1293] ReorderReferencableSNSTest failure
jackrabbit-spi
New features
[JCR-999] SPI: provide batch read functionality
Improvements
[JCR-851] Handling of binary properties (streams) in QValue interface
[JCR-996] Name and Path interfaces in SPI
[JCR-1000] JCR2SPI: remove duplicate item states
[JCR-1001] SPI: prefer 'Iterator' instead of specialized subclasses
[JCR-1004] SPI: Add RepositoryService.getQNodeTypeDefinition
[JCR-1018] introduce QValue.getCalendar()
[JCR-1027] SPI: change param order with RepositoryService.createBatch
[JCR-1151] avoid converting property values to strings
[JCR-1153] remove support for event bundle IDs
[JCR-1155] Wrong link in javadoc of QNodeTypeDefinition
[JCR-1159] SPI: improve description of locking methods on RepositoryService
[JCR-1190] QValueFactory improvements
[JCR-1200] allow SPI implementation to compute default values for ...
[JCR-1204] Redesign SPI observation
jackrabbit-spi-commons
Improvements
[JCR-851] Handling of binary properties (streams) in QValue interface
[JCR-996] Name and Path interfaces in SPI
[JCR-1003] Use inheritance rather than delegation for SPI ValueFactoryImpl
[JCR-1007] Move common implementations of SPI interfaces to ...
[JCR-1017] Favour QValue.getPath() over getString() where appropriate
[JCR-1018] introduce QValue.getCalendar()
[JCR-1027] SPI: change param order with RepositoryService.createBatch
[JCR-1151] avoid converting property values to strings
[JCR-1152] SPI implementations currently need to provide ...
[JCR-1153] remove support for event bundle IDs
[JCR-1169] Distribution of commons classes
[JCR-1182] Put everything in jackrabbit-spi-commons under ...
[JCR-1190] QValueFactory improvements
[JCR-1200] allow SPI implementation to compute default values for ...
Bug fixes
[JCR-1179] Event filtering by path not working as specified
[JCR-1280] Path.equals does not work for other Path implementations
jackrabbit-spi2jcr
New features
[JCR-999] SPI: provide batch read functionality
[JCR-1009] JCR2SPI: add JNDI support
Improvements
[JCR-996] Name and Path interfaces in SPI
[JCR-1000] JCR2SPI: remove duplicate item states
[JCR-1001] SPI: prefer 'Iterator' instead of specialized subclasses
[JCR-1004] SPI: Add RepositoryService.getQNodeTypeDefinition
[JCR-1007] Move common implementations of SPI interfaces to ...
[JCR-1027] SPI: change param order with RepositoryService.createBatch
[JCR-1153] remove support for event bundle IDs
[JCR-1157] Expose namespace registry via workspace instead via session ...
[JCR-1159] SPI: improve description of locking methods on RepositoryService
[JCR-1169] Distribution of commons classes
[JCR-1182] Put everything in jackrabbit-spi-commons under ...
[JCR-1204] Redesign SPI observation
Bug fixes
[JCR-1010] Test failures with spi2jcr in AddEventListenerTest
[JCR-1147] spi2jcr: RepositoryServiceImpl.getRootId returns bad NodeId
jackrabbit-text-extractors
Improvements
[JCR-1247] Add Warnlog on Extraction Failure
jackrabbit-webapp
New features
[JCR-388] add support for RFC 3253 to the simple server
[JCR-946] Create a sample search page
[JCR-961] Add workspace population tool
[JCR-1184] Introduce spellchecker functionality based on content in ...
[JCR-1188] WebDAV: Allow for Extensions of MimeResolver in the ...
[JCR-1289] Error reporting page for jackrabbit-webapp
Improvements
[JCR-924] Use the Jackrabbit RMI extensions by default in jackrabbit-webapp
[JCR-1016] [PATCH] Allow RepositoryAccessServlet to get the Repository ...
[JCR-1193] war missing jcr jar
[JCR-1210] WebDAV: pack AbstractWebdavServlet with the ...
[JCR-1220] WebApp: Ease first access for new users looking for a WebDAV ...
[JCR-1268] Move JCRWebdavServerServlet to jcr-server and make it abstract
[JCR-1283] Use bundle persistence in default configuration
[JCR-1287] jackrabbit-webapp facelift
Known issues
[JCR-1301] Trouble undeploying jackrabbit-webapp from Tomcat
jackrabbit-webdav
Improvements
[JCR-1210] WebDAV: pack AbstractWebdavServlet with the ...
Bug fixes
[JCR-1264] IfHeader: Incorrect test for parsing keyword "not" in parseIfList
Known issues
[JCR-406] If header evaluation compliance problems
jackrabbit-ocm
New features
[JCR-1106] Add simple query method to ObjectContentManager
Improvements
[JCR-922] jcr mapping layer (OCM) should expose lock owner
[JCR-930] [OCM] rename o.a.j.ocm.persistence.PersistenceManager to ...
[JCR-1107] ObjectIterator may return null, which is not readily ...
[JCR-1113] Refactor the Mapper & DescriptotReader classes
[JCR-1115] Remove dependency on Jackrabbit-core
[JCR-1119] SimpleFieldsHelper emits a lot warnings
[JCR-1144] Investigate ways to compile the refactored jcr-mapping for ...
[JCR-1145] ObjectConverterImpl.getObject(Session, Class, String) may ...
[JCR-1199] Remove dependency to log4j
[JCR-1281] Move ocm documentation to jackrabbit-site
[JCR-1282] Publish the jackrabbit-ocm DTD
Bug fixes
[JCR-864] Bug in UtilDateTypeConverterImpl
[JCR-1044] NTCollectionConverterImpl throws a null pointer exception ...
[JCR-1054] Duplicate attribute in BeanDescriptor and CollectionDescriptor
[JCR-1143] NullPointerException in ClassDescriptor
[JCR-1198] Issue while loading list of classes at that path itself
[JCR-1285] ObjectContentManagerImpl.getObject(Query) throws ...
Known issues
[JCR-1286] FilterImpl.getStringValue() does not use custom converter ...
jackrabbit-ocm-nodemanagement
Improvements
[JCR-1025] Node Type Management subproject : Default namespace should ...