[jira] Updated: (JCR-927) DatabaseJournal needs connection reestablishment logic
[ https://issues.apache.org/jira/browse/JCR-927?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Guido Jäkel updated JCR-927: Attachment: jackrabbit.log @Dominique: May we please reopen this or re-new it with a new topic? Using V1.4-RC1, the re-connect works for the journal (as a improvement agains V1.3.3), but the re-connect of the FileSystem and PersistanceManager connections still don't come up, again. Therefore, the whole repository becomes unusable. I've attached a long stacktrace. You may contact us via email, if you need some details of configuration. DatabaseJournal needs connection reestablishment logic -- Key: JCR-927 URL: https://issues.apache.org/jira/browse/JCR-927 Project: Jackrabbit Issue Type: Improvement Components: jackrabbit-core Reporter: Hemanta Gupta Assignee: Dominique Pfister Priority: Minor Fix For: 1.4 Attachments: jackrabbit.log, JNDIDatabaseJournal.java The DB based file system and persistence manager implementations have logic for connection reestablishment in case the DB server bounces while the repository is running, but the DB based journal implementation doesn't. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
Re: [OCM] ocm cache
Hi Paddy, On Jan 15, 2008 10:29 PM, Padraic Hannon [EMAIL PROTECTED] wrote: There is a simple OCM cache which I would like to remove or at least make optional. Currently there is already a lot of caching going on within jackrabbit and the current cache implementation for OCM is extremely simplistic. it is a small fix for http://issues.apache.org/jira/browse/JCR-918. This is really a tempory solution to fix this issue. For example, if a node changes under the OCM it has no knowledge of this and the cache is not flushed. Until there is robust support for observation and a more plug-able architecture the OCM cache seems like it is more dangerous than helpful. WDYT? Agree but the current solution is only used per retrieve request in order to solve the infinitive loop issue. We have to review this current/tempory solution to have a more robust cache support. I will review your patch today. Thanks, Christophe paddy
[jira] Created: (JCR-1316) ID Field Descriptor is not inherited as is the case with UUID Field Descriptor
ID Field Descriptor is not inherited as is the case with UUID Field Descriptor -- Key: JCR-1316 URL: https://issues.apache.org/jira/browse/JCR-1316 Project: Jackrabbit Issue Type: Improvement Components: jackrabbit-ocm Affects Versions: 1.3.3 Reporter: Nimesh Muley Fix For: 1.4.1 ID Field descriptor when defined in the base class in jcr-mapping is not inherited. The child class also has to define it again. A patch for the same is attached herewith. Patch is on similar lines of UUID Field Descriptor -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-1316) ID Field Descriptor is not inherited as is the case with UUID Field Descriptor
[ https://issues.apache.org/jira/browse/JCR-1316?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Nimesh Muley updated JCR-1316: -- Attachment: InheritedIDFieldDescriptor.patch Patch to fix this issue. ID Field Descriptor is not inherited as is the case with UUID Field Descriptor -- Key: JCR-1316 URL: https://issues.apache.org/jira/browse/JCR-1316 Project: Jackrabbit Issue Type: Improvement Components: jackrabbit-ocm Affects Versions: 1.3.3 Reporter: Nimesh Muley Fix For: 1.4.1 Attachments: InheritedIDFieldDescriptor.patch ID Field descriptor when defined in the base class in jcr-mapping is not inherited. The child class also has to define it again. A patch for the same is attached herewith. Patch is on similar lines of UUID Field Descriptor -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-872) Cache framework integration
[ https://issues.apache.org/jira/browse/JCR-872?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Thomas Mueller updated JCR-872: --- Description: OCM should work with a cache manager. * The Spring frameworks offer a nice solution to integrate an application with a cache manager (based on AOP). * Which cache framework to use ? oscache, JCS, ... * A more detailled proposal is required was: The PersistenceManager should work with a cache manager. * The Spring frameworks offer a nice solution to integrate an application with a cache manager (based on AOP). * Which cache framework to use ? oscache, JCS, ... * A more detailled proposal is required I was confused because the description said 'the PersistenceManager'. I see this is about OCM. Cache framework integration --- Key: JCR-872 URL: https://issues.apache.org/jira/browse/JCR-872 Project: Jackrabbit Issue Type: Task Components: jackrabbit-ocm Reporter: Christophe Lombart Attachments: observableCache.patch OCM should work with a cache manager. * The Spring frameworks offer a nice solution to integrate an application with a cache manager (based on AOP). * Which cache framework to use ? oscache, JCS, ... * A more detailled proposal is required -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-927) DatabaseJournal needs connection reestablishment logic
[ https://issues.apache.org/jira/browse/JCR-927?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12559398#action_12559398 ] Dominique Pfister commented on JCR-927: --- Hi Guido, if you believe that there are problems with the reconnection logic in FileSystems and PersistanceManagers but not with the one in the DatabaseJournal, I suggest you open a new bug. Kind regards Dominique DatabaseJournal needs connection reestablishment logic -- Key: JCR-927 URL: https://issues.apache.org/jira/browse/JCR-927 Project: Jackrabbit Issue Type: Improvement Components: jackrabbit-core Reporter: Hemanta Gupta Assignee: Dominique Pfister Priority: Minor Fix For: 1.4 Attachments: jackrabbit.log, JNDIDatabaseJournal.java The DB based file system and persistence manager implementations have logic for connection reestablishment in case the DB server bounces while the repository is running, but the DB based journal implementation doesn't. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-872) Cache framework integration
[ https://issues.apache.org/jira/browse/JCR-872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12559411#action_12559411 ] Ian Boston commented on JCR-872: Sorry to interrupt Please don't bind to Hibernate, if you do, every other user if Hibernate will be forced to use the same version of Hibernate or not use Jackrabbit. We (Sakai) already cant use Alfresco for this reason. The same goes for binding directly to any implementation that locks the jvm to a particular version of that jar. We have found the *if* you feel you need a 3rd party caching lib, ehcache is Ok since the API exists, is relatively stable and doesn't require 1001 other jars. That being said, I thought that there were plenty of other cache mechanisms in Jackrabbit that did full management and expiry. Just to give you an idea of the hibernate issues, it binds to specific aop and cglib versions so does spring at the moment Jackrabbit is nice to work with because it doesnt cause any problems in this area. All IMHO :) Cache framework integration --- Key: JCR-872 URL: https://issues.apache.org/jira/browse/JCR-872 Project: Jackrabbit Issue Type: Task Components: jackrabbit-ocm Reporter: Christophe Lombart Attachments: observableCache.patch OCM should work with a cache manager. * The Spring frameworks offer a nice solution to integrate an application with a cache manager (based on AOP). * Which cache framework to use ? oscache, JCS, ... * A more detailled proposal is required -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Created: (JCR-1317) Add a MBean method to programatically create a new Workspace.
Add a MBean method to programatically create a new Workspace. - Key: JCR-1317 URL: https://issues.apache.org/jira/browse/JCR-1317 Project: Jackrabbit Issue Type: Improvement Components: jackrabbit-jcr-rmi Affects Versions: 1.3.3 Reporter: Manuel Duran Priority: Trivial Would be useful to have a mbean method to create a new workspace to use if with a jmx console. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-1312) Get rid of DOM for XML support
[ https://issues.apache.org/jira/browse/JCR-1312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12559414#action_12559414 ] Ian Boston commented on JCR-1312: - Also agree and have some more recent evidence. The benefits of SAX over DOM only become apparent when the DOM tree being created is large enough and hangs arround long enough to get out of the Eden GC if it does and the server is under extrem load, the GC processes will start to dominate and cause performance problems both on memory, and because of memory cpu. Although xpp is lightning fast and has much lower memory requirements than the parser used for both dom and sax, the cost of refactoring may well be excessive. When we rewrote the processing pipelines of a application (sakai) with lots of DOM processing, we also gathered the evidence through detailed profiling before doing anything. It was quite hard to get significant gains under load for fragments of 100 elements that hang around for less than 200ms, is most request cycles. Get rid of DOM for XML support -- Key: JCR-1312 URL: https://issues.apache.org/jira/browse/JCR-1312 Project: Jackrabbit Issue Type: Improvement Components: jackrabbit-webdav Reporter: Felix Meschberger Currently the web dav library uses Xerces and DOM to parse and create XML data. This mechanism is well-known but has two major issues: It is slow and it has a big memory footprint. In order to solve these two issues, I suggest to drop the use of the W3C DOM in webdav in favor of something easier and more straight forward to use. One candidate could be (out of my head and based on my bias towards KXml) KDOM. See also http://www.kxml.org.ww See also JCR-1261 for more discussions on this issue. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-1317) Add a MBean method to programatically create a new Workspace.
[ https://issues.apache.org/jira/browse/JCR-1317?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Manuel Duran updated JCR-1317: -- Attachment: createWorkdpace.patch A patch against 1.3.3 with a functional version of method Add a MBean method to programatically create a new Workspace. - Key: JCR-1317 URL: https://issues.apache.org/jira/browse/JCR-1317 Project: Jackrabbit Issue Type: Improvement Components: jackrabbit-jcr-rmi Affects Versions: 1.3.3 Reporter: Manuel Duran Priority: Trivial Attachments: createWorkdpace.patch Would be useful to have a mbean method to create a new workspace to use if with a jmx console. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-872) Cache framework integration
[ https://issues.apache.org/jira/browse/JCR-872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12559418#action_12559418 ] Kris Kempa commented on JCR-872: I fully agree with Ian: +1 for Ehcache. http://ehcache.sourceforge.net. Cache framework integration --- Key: JCR-872 URL: https://issues.apache.org/jira/browse/JCR-872 Project: Jackrabbit Issue Type: Task Components: jackrabbit-ocm Reporter: Christophe Lombart Attachments: observableCache.patch OCM should work with a cache manager. * The Spring frameworks offer a nice solution to integrate an application with a cache manager (based on AOP). * Which cache framework to use ? oscache, JCS, ... * A more detailled proposal is required -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-1312) Get rid of DOM for XML support
[ https://issues.apache.org/jira/browse/JCR-1312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12559427#action_12559427 ] angela commented on JCR-1312: - felix, what you were saying was: there is a performance/memory problem with DOM + Xerces. you didn't provide any figures so far. If we have a such problem, we should evaluate various possibilities and not just stay with the first proposal (which after all in a first test introduced a NullPointerException with very standard features). implications of possibly replacing DOM and have to admit, that it certainly is not worth it it would be some effort. but that doesn't mean a priori its not worth being evaluated. angela Get rid of DOM for XML support -- Key: JCR-1312 URL: https://issues.apache.org/jira/browse/JCR-1312 Project: Jackrabbit Issue Type: Improvement Components: jackrabbit-webdav Reporter: Felix Meschberger Currently the web dav library uses Xerces and DOM to parse and create XML data. This mechanism is well-known but has two major issues: It is slow and it has a big memory footprint. In order to solve these two issues, I suggest to drop the use of the W3C DOM in webdav in favor of something easier and more straight forward to use. One candidate could be (out of my head and based on my bias towards KXml) KDOM. See also http://www.kxml.org.ww See also JCR-1261 for more discussions on this issue. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-1312) Get rid of DOM for XML support
[ https://issues.apache.org/jira/browse/JCR-1312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12559429#action_12559429 ] Jukka Zitting commented on JCR-1312: I still don't see why we should have the alternative DocumentBuilder implemented within jackrabbit-webapp. JAXP already has a mechanism for specifying which XML parser to use. If there's a better XML parser available, then it should worry about implementing DocumentBuilder and correctly handling all the associated DOM semantics. I don't want to start seeing bug reports about our XML parser. Get rid of DOM for XML support -- Key: JCR-1312 URL: https://issues.apache.org/jira/browse/JCR-1312 Project: Jackrabbit Issue Type: Improvement Components: jackrabbit-webdav Reporter: Felix Meschberger Currently the web dav library uses Xerces and DOM to parse and create XML data. This mechanism is well-known but has two major issues: It is slow and it has a big memory footprint. In order to solve these two issues, I suggest to drop the use of the W3C DOM in webdav in favor of something easier and more straight forward to use. One candidate could be (out of my head and based on my bias towards KXml) KDOM. See also http://www.kxml.org.ww See also JCR-1261 for more discussions on this issue. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-1310) Webdav: Drop xerces dependency
[ https://issues.apache.org/jira/browse/JCR-1310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12559442#action_12559442 ] Jukka Zitting commented on JCR-1310: You mean NamespaceFixingContentHandler? Nice! It's similar to what we did for XML exports in JCR-367 (see especially revision 418750). The problem with serializing DOM trees is that they don't contain explicit xmlns: attributes. Early JAXP transformers (in jdk 1.4) didn't take that into account, they only serialized the attributes included in the DOM. See also JCR-1161 for a somewhat related issue (in Java 5 on Mac xmlns attributes are only generated for namespaces that are actually referenced in the document). I'll see if we could use the NamespaceFixingContentHandler approach here. Webdav: Drop xerces dependency -- Key: JCR-1310 URL: https://issues.apache.org/jira/browse/JCR-1310 Project: Jackrabbit Issue Type: Improvement Components: jackrabbit-webdav Reporter: angela Priority: Minor Attachments: JCR-1261.drop-xerces.patch -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Resolved: (JCR-1237) Change default value for respectDocumentOrder
[ https://issues.apache.org/jira/browse/JCR-1237?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcel Reutegger resolved JCR-1237. --- Resolution: Fixed Fix Version/s: 1.5 I've changed the default for respectDocumentOrder to false. The repository descriptor QUERY_XPATH_DOC_ORDER still returns true. If code relies on results in document order the workspace.xml needs to be adapted when upgrading to 1.5. Committed in revision: 612420 Change default value for respectDocumentOrder - Key: JCR-1237 URL: https://issues.apache.org/jira/browse/JCR-1237 Project: Jackrabbit Issue Type: Improvement Components: jackrabbit-core Reporter: Marcel Reutegger Priority: Minor Fix For: 1.5 The current default value for the search index configuration parameter respectDocumentOrder is true. Almost all applications are not interested in document order, while this default adds significant overhead to query execution because document order information is present in the index but has to be calculated over the complete result set. I propose to change the default value to false and document this change in the 1.4 release notes. If an application relies on document order one can still explicitly set the parameter in the configuration to true. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-1310) Webdav: Drop xerces dependency
[ https://issues.apache.org/jira/browse/JCR-1310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12559452#action_12559452 ] angela commented on JCR-1310: - Nice! = carsten = cocoon. Webdav: Drop xerces dependency -- Key: JCR-1310 URL: https://issues.apache.org/jira/browse/JCR-1310 Project: Jackrabbit Issue Type: Improvement Components: jackrabbit-webdav Reporter: angela Priority: Minor Attachments: JCR-1261.drop-xerces.patch -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
Re: Jackrabbit roadmap
Den 15. jan.. 2008 kl. 09.52 skrev Angela Schreiber: Torgeir Veimo wrote: * Node type management Sorry, meant * Built-in access control Based on this proposal? https://issues.apache.org/jira/browse/JCR-1171 There hasn't been any more comments on that issue for a while. i'm working on jsr 283 access control features and yes i'm using the code from JCR-1171 as basis, but the final code will most certainly be quite different. i will update the issue as soon as i have something to discuss about. Is it possible to say anthing about the progress around this? Since we need this kind of functionality, it would be nice to have some basics in place to start from. Should we wait for you to come up with a proposal or should we start with what's available now? Jo
Re: [ANNOUNCE] Apache Jackrabbit 1.4 released
Hi all, This is my first Jackrabbit release. I would like to take the opportunity to congratulate the Jackrabbit team for their work. Jackrabbit is a very nice project. a BIG Thank also to all OCM committers contributors. It was a great help. Best regards, Christophe On Jan 15, 2008 10:48 PM, Jukka Zitting [EMAIL PROTECTED] wrote: The Apache Jackrabbit community is pleased to announce the release of Apache Jackrabbit version 1.4. The release is available for download at: http://jackrabbit.apache.org/downloads.cgi 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
Re: Jackrabbit roadmap
Jo Størset wrote: Is it possible to say anthing about the progress around this? there is progress and the work has high priority. however, i can't provide you any timeframe... i mean apart from the obvious. Since we need this kind of functionality, it would be nice to have some basics in place to start from. Should we wait for you to come up with a proposal or should we start with what's available now? if i was you, i would wait due to the fact that the code present doesn't have 283 functionality included, is (as far as i know) not thoroughly tested and is likely to change quite a bit. and obviously i fear that i had to answer your questions and deal with bug reports for something that isn't present in the code base ;) sorry for the vague response angela Jo
Re: [ANNOUNCE] Apache Jackrabbit 1.4 released
Great! I put Jukka's annoucement on Dzone to get some attention. Please vote for it: http://www.dzone.com/links/apache_jackrabbit_14_released.html Unfortunately Dzone's having some server problems lately, so it might be that the page is missing CSS and images... Alex Am 15.01.2008 um 22:48 schrieb Jukka Zitting: The Apache Jackrabbit community is pleased to announce the release of Apache Jackrabbit version 1.4. The release is available for download at: http://jackrabbit.apache.org/downloads.cgi 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
Re: IoC configuration for Jackrabbit
On Jan 14, 2008 6:28 PM, Padraic Hannon [EMAIL PROTECTED] wrote: +1 for me as well. I know that jackrabbit tends to stick to apache only libraries, however, if we could re-wire with Spring I think it would be pretty slick and since most people already use it extensively it wouldn't introduce a new technique for people to learn. I think it would also put us a long way forward in making jackrabbit a bit more modular. -1 for introducing dependencies to any particular IoC container product. it should IMO always be possible to run jackrabbit stand-alone. however, i am not against making jackrabbit's configuration more IoC friendly (whatever that means) or some optional IoC container support. cheers stefan -paddy On Jan 14, 2008, at 1:23 AM, David Rauschenbach wrote: +1 for more IoC. We have a lot of code here that is factory wrappers for the proprietary Jackrabbit configuration, plus mock FileSystem implementations where a node type manager is used in a stand-alone fashion. It's all very pre-IoC looking. David -Original Message- From: Jukka Zitting [mailto:[EMAIL PROTECTED] Sent: Sunday, January 13, 2008 7:57 PM To: dev@jackrabbit.apache.org Subject: IoC configuration for Jackrabbit Hi, The current repository.xml configuration file and the related o.a.j.core.config code is quite monolithic and essentially fixes the structure of Jackrabbit internals. For example, almost all notable new features require that you either modify the configuration handling code (clustering, data store, ism locking) or just work around it (indexing). The configuration model also makes us duplicate lots of code. For example, instead of using a single database configuration and an associated class/object, we now need to duplicate database connection code in persistence managers, file systems, cluster journals, and data stores. It's a mess. To fix this, I'd like to make Jackrabbit configuration more IoC-like, eventually making it possible to use an existing IoC library/container to configure Jackrabbit. To make this happen, I'd start by dropping the type-specific SomeConfig classes from o.a.j.core.config and replacing the init(...) methods with setters and more explicit lifecycle management methods. WDYT? This'll probably require some relatively heavy-handed refactoring, changes to the repository.xml structure, and probably some backwards-compatibility code to handle Jackrabbit 1.4 and earlier configuration files, so I won't go forward unless we have a reasonable consensus that the benefits are worth the effort. BR, Jukka Zitting
[jira] Commented: (JCR-1314) Node incorrectly overridden when performing a merge
[ https://issues.apache.org/jira/browse/JCR-1314?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12559532#action_12559532 ] Tobias Bocanegra commented on JCR-1314: --- i think the spec is wrong: in 8.2.10 it says: If N is currently checked-in then: 1) If V' is a successor (to any degree) of V, then the merge result for N is update. 2) If V' is a predecessor (to any degree) of V or if V and V' are identical (i.e., are actually the same version), then the merge result for N is leave. 3) If V is neither a successor of, predecessor of, nor identical with V', then the merge result for N is failed. If N is currently checked-out then: 4) If V' is a predecessor (to any degree) of V or if V and V' are identical (i.e., are actually the same version), then the merge result for N is leave. 1) means, if the version you merge against is newer, do an update 2,4) mean, if the version you merge against is older or same, leave it where as in 8.2.10.1: a) if v' is a successor of v and n is not checked-in doupdate(n, n'). b) else if v is equal to or a predecessor of v' doleave(n). a) means, if the version you merge against is newer and checked-out, do update. which is the same as 1) b) means, if the version you merge against is newer or same, do leave. which is not the same as 2,4) so i think the code is correct. which also makes sense, since you don't want to update to an older version. are you sure you did the merge the right way around ? can you provide a test class ? Node incorrectly overridden when performing a merge --- Key: JCR-1314 URL: https://issues.apache.org/jira/browse/JCR-1314 Project: Jackrabbit Issue Type: Bug Components: versioning Affects Versions: 1.4, 1.5 Reporter: Bob Wieler Priority: Critical The implementation of the merge algorithm provided in the JCR specification is incorrect and can result in nodes being overridden. This can be demonstrated by the following simple steps: 1. Create a repository with a nt:file node containing whatever data (n') 2. Commit the changes to the node to create the initial version (v') 3. Copy the node to a new workspace 4. Edit the node in the second workspace (n) 5. Commit the changes to the second workspace to create the second version (v) 6. Merge the changes from the first workspace into the second workspace According to the JCR specification (from 8.2.10.1): if v' is a successor of v and n is not checked-in doupdate(n, n'). else if v is equal to or a predecessor of v' doleave(n). else dofail(n, v'). In the above example, v' is a predecessor of v so the doupdate(n, n') is not done. v and v' are also not equal and v is not a predecessor of v' so the doleaven(n) is not done. Therefore the dofail(n, v') is what should be called. The code in NodeImpl.java is not however doing what is expected. Line 3337 in NodeImpl.java (subversion revision 611855) has the following: } else if (v.isSame(vp) || v.isMoreRecent(vp)) { // If V' is a predecessor (to any degree) of V or if V and V' are // identical (i.e., are actually the same version), then the merge // result for N is leave. This case can be thought of as the case where // N' is older or the same age as N and therefore N should be left alone. return null; } else { The doMergeTest method returns null (essentially a doleave(n) in the spec algorithm) if v and v' are the same or v' is a predecessor to v - in other words if v and v' are the same or v is a _successor_ to v' - which is exactly the opposite to what the specification requires (if v is equal to or a _predecessor_ of v'). The proper if statement would be to have: } else if (v.isSame(vp) || vp.isMoreRecent(v)) { Unfortunately, this was causing us to lose data when performing a merge. I have updated our version of jackrabbit with the above change and merging now works as expected. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Issue Comment Edited: (JCR-1312) Get rid of DOM for XML support
[ https://issues.apache.org/jira/browse/JCR-1312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12559541#action_12559541 ] fmeschbe edited comment on JCR-1312 at 1/16/08 7:41 AM: - Performance: kXml is about twice as fast as Xerces for both parsing to DOM and serializing from DOM. Memory Footprint: xercesimpl 2.8.1 Impl: 1.2MB kxml 2.2.2: 10KB To be honest: using kxml instead of xerces requires the additional classes I added in the second patch to JCR-1261 [1]. But these are small, and one has even been copied ... To me theses figures are quite impressive. [1] https://issues.apache.org/jira/secure/attachment/12371412/JCR-1261_2.patch was (Author: fmeschbe): Performance: kXml is about twice as fast as Xerces for both parsing and serializing Memory Footprint: xercesimpl 2.8.1 Impl: 1.2MB kxml 2.2.2: 10KB To be honest: using kxml instead of xerces requires the additional classes I added in the second patch to JCR-1261 [1]. But these are small, and one has even been copied ... To me theses figures are quite impressive. [1] https://issues.apache.org/jira/secure/attachment/12371412/JCR-1261_2.patch Get rid of DOM for XML support -- Key: JCR-1312 URL: https://issues.apache.org/jira/browse/JCR-1312 Project: Jackrabbit Issue Type: Improvement Components: jackrabbit-webdav Reporter: Felix Meschberger Currently the web dav library uses Xerces and DOM to parse and create XML data. This mechanism is well-known but has two major issues: It is slow and it has a big memory footprint. In order to solve these two issues, I suggest to drop the use of the W3C DOM in webdav in favor of something easier and more straight forward to use. One candidate could be (out of my head and based on my bias towards KXml) KDOM. See also http://www.kxml.org.ww See also JCR-1261 for more discussions on this issue. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
Re: [jira] Commented: (JCR-1312) Get rid of DOM for XML support
Hi, My experience is that all XML parser are a little bit different. I don't know about you, but I did run into quite many problems because of XML parser incompatibilities. If we always use the same parser we would be sure we always get the same result on all systems. I believe that would be a big advantage, what do you think? Regards, Thomas
[jira] Commented: (JCR-872) Cache framework integration
[ https://issues.apache.org/jira/browse/JCR-872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12559597#action_12559597 ] Padraic Hannon commented on JCR-872: I'm working on ehcache now. I probably was confusing in my statement re. hibernate. I was looking at the hibernate Cache/CacheProvider pattern as starting point for how we might want to create a pluggable infrastructure. I *do not* want to rely on their infrastructure. However, since there stuff is easily configurable I thought it would be good to look at what they did as an example. Cache framework integration --- Key: JCR-872 URL: https://issues.apache.org/jira/browse/JCR-872 Project: Jackrabbit Issue Type: Task Components: jackrabbit-ocm Reporter: Christophe Lombart Attachments: observableCache.patch OCM should work with a cache manager. * The Spring frameworks offer a nice solution to integrate an application with a cache manager (based on AOP). * Which cache framework to use ? oscache, JCS, ... * A more detailled proposal is required -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[OCM] ObjectContentManager and Sessions
While working with the caches and with our own internal content mapping project I have noticed a slight disconnect between how OCM handles sessions and how jackrabbit seems to want to handle them. With the OCM one tends to have a long lived object content manager that is potentially used by multiple threads. This would mean that the session would be re-used across multiple reader and writer threads. See http://markmail.org/message/f5lbenhnmdc2vxhx for details on threading and sessions. I think this points to the need to have sessions opened and closed much like in the hibernate model. To accomplish this I think we should create a ObjectContentManagerFactory which can create the managers so that each thread can get its own copy. When creating a manager the factory could use a session factory much like the one that spring has for JCR (org.springmodules.jcr.JcrSessionFactory). This would allow sessions to be pooled or created as needed and then be passed to ObjectContentManagers. The factory could also preload the mapping classes and other configuration items (like say the cache implementation factory?). The threads could share a cache (if the implementation is EhCache or something intelligent) or the cache could just be a simple hashmap and the assumption would be that the managers are short lived and the cache is there to eliminate the infinite load issue. WDYT? -paddy
[jira] Created: (JCR-1318) Repository Home locked not released despite RepositoryException being thrown.
Repository Home locked not released despite RepositoryException being thrown. - Key: JCR-1318 URL: https://issues.apache.org/jira/browse/JCR-1318 Project: Jackrabbit Issue Type: Bug Components: jackrabbit-core Affects Versions: 1.3.3 Environment: windows vista jdk 5 Reporter: Micah Whitacre When an exception is thrown when calling RepositoryImpl.create(...) a .lock file is created in the repository home directory and not removed despite there no longer being an active connection. If the user attempts to create the repository again (e.g recover from the exception because the url of the repository was temporarily unavailable) a RepositoryException is thrown again indicating that the repository home is locked by another process because there is a .lock file. If a Repository is not successfully created then the repository home should not be locked. The lock is only released when the repository is shutdown but in this case the Repository object is never created successfully for that method to be called. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
Re: [OCM] ObjectContentManager and Sessions
+1 On Jan 16, 2008 6:47 PM, Padraic Hannon [EMAIL PROTECTED] wrote: The factory could also preload the mapping classes and other configuration items (like say the cache implementation factory?). If I understand, there is 3 factories : one for the ObjectcontentManager one for the JCR session one for the Cache impl It is correct ? Christophe
[jira] Commented: (JCR-872) Cache framework integration
[ https://issues.apache.org/jira/browse/JCR-872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12559659#action_12559659 ] Padraic Hannon commented on JCR-872: Please disregard the patch I created. I messed up due to not taking the time to understand what was going on. I am working on revising it now. Cache framework integration --- Key: JCR-872 URL: https://issues.apache.org/jira/browse/JCR-872 Project: Jackrabbit Issue Type: Task Components: jackrabbit-ocm Reporter: Christophe Lombart Attachments: observableCache.patch OCM should work with a cache manager. * The Spring frameworks offer a nice solution to integrate an application with a cache manager (based on AOP). * Which cache framework to use ? oscache, JCS, ... * A more detailled proposal is required -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-872) Cache framework integration
[ https://issues.apache.org/jira/browse/JCR-872?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Padraic Hannon updated JCR-872: --- Attachment: (was: observableCache.patch) Cache framework integration --- Key: JCR-872 URL: https://issues.apache.org/jira/browse/JCR-872 Project: Jackrabbit Issue Type: Task Components: jackrabbit-ocm Reporter: Christophe Lombart OCM should work with a cache manager. * The Spring frameworks offer a nice solution to integrate an application with a cache manager (based on AOP). * Which cache framework to use ? oscache, JCS, ... * A more detailled proposal is required -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Issue Comment Edited: (JCR-872) Cache framework integration
[ https://issues.apache.org/jira/browse/JCR-872?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12559659#action_12559659 ] hannonpi edited comment on JCR-872 at 1/16/08 1:12 PM: - Please disregard the patch I created. I messed up due to not taking the time to understand what was going on. I am going to remove the patch. I thought I was working on a second level cache. The RequestObjectCache is a first level cache which as Christophe pointed out and I didn't follow is basically used only to prevent infinite recursion. was (Author: hannonpi): Please disregard the patch I created. I messed up due to not taking the time to understand what was going on. I am working on revising it now. Cache framework integration --- Key: JCR-872 URL: https://issues.apache.org/jira/browse/JCR-872 Project: Jackrabbit Issue Type: Task Components: jackrabbit-ocm Reporter: Christophe Lombart OCM should work with a cache manager. * The Spring frameworks offer a nice solution to integrate an application with a cache manager (based on AOP). * Which cache framework to use ? oscache, JCS, ... * A more detailled proposal is required -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Resolved: (JCR-1314) Node incorrectly overridden when performing a merge
[ https://issues.apache.org/jira/browse/JCR-1314?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Bob Wieler resolved JCR-1314. - Resolution: Invalid You're right. This is an bug/inconsistency with the the specification. The problem is actually with the fix to JCR-1046 that I supplied with that issue. The problem is that on a leave(n), all of children of n are being updated which is not valid. Only the versionable children of n should be updated. The solution that I proposed for JCR-1046 updates only the versionable children only if the merge result is a failure, not if the merge result is leave. The data in our repository is stored as versionable nt:folder and versionable nt:file nodes with non-versionable nt:resource nodes. The merge result for the versionable nt:file node would be leave, however it would then go about merging all of the non-versionable children of that node, specifically the nt:resource node. As a result, our data, stored primarily in the nt:resource node, would be overridden. One solution would be to change the fix for JCR-1046 to only merge non-versionable children if the merge result is leave or fail. I'm not sure if this is the correct solution to these issues as it becomes very difficult to deal with versioned and non-versioned nodes mixed together. I'm marking this issue as invalid and I'll update JCR-1046 with this information. Node incorrectly overridden when performing a merge --- Key: JCR-1314 URL: https://issues.apache.org/jira/browse/JCR-1314 Project: Jackrabbit Issue Type: Bug Components: versioning Affects Versions: 1.4, 1.5 Reporter: Bob Wieler Priority: Critical The implementation of the merge algorithm provided in the JCR specification is incorrect and can result in nodes being overridden. This can be demonstrated by the following simple steps: 1. Create a repository with a nt:file node containing whatever data (n') 2. Commit the changes to the node to create the initial version (v') 3. Copy the node to a new workspace 4. Edit the node in the second workspace (n) 5. Commit the changes to the second workspace to create the second version (v) 6. Merge the changes from the first workspace into the second workspace According to the JCR specification (from 8.2.10.1): if v' is a successor of v and n is not checked-in doupdate(n, n'). else if v is equal to or a predecessor of v' doleave(n). else dofail(n, v'). In the above example, v' is a predecessor of v so the doupdate(n, n') is not done. v and v' are also not equal and v is not a predecessor of v' so the doleaven(n) is not done. Therefore the dofail(n, v') is what should be called. The code in NodeImpl.java is not however doing what is expected. Line 3337 in NodeImpl.java (subversion revision 611855) has the following: } else if (v.isSame(vp) || v.isMoreRecent(vp)) { // If V' is a predecessor (to any degree) of V or if V and V' are // identical (i.e., are actually the same version), then the merge // result for N is leave. This case can be thought of as the case where // N' is older or the same age as N and therefore N should be left alone. return null; } else { The doMergeTest method returns null (essentially a doleave(n) in the spec algorithm) if v and v' are the same or v' is a predecessor to v - in other words if v and v' are the same or v is a _successor_ to v' - which is exactly the opposite to what the specification requires (if v is equal to or a _predecessor_ of v'). The proper if statement would be to have: } else if (v.isSame(vp) || vp.isMoreRecent(v)) { Unfortunately, this was causing us to lose data when performing a merge. I have updated our version of jackrabbit with the above change and merging now works as expected. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails
[ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Bob Wieler updated JCR-1046: Attachment: (was: jcr1046.diff) Non-versionable children of a versionable node should not be updated when a merge fails --- Key: JCR-1046 URL: https://issues.apache.org/jira/browse/JCR-1046 Project: Jackrabbit Issue Type: Bug Components: versioning Affects Versions: 1.3 Reporter: Bob Wieler Attachments: jcr1046.diff The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge: In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged. The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor. One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation. I will attach a patch file that makes what I think is the required change. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails
[ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12559668#action_12559668 ] Bob Wieler commented on JCR-1046: - The fix I supplied for this should actually only merge non-versionable children if the result of the merge is a fail or a leave, not just if it is a failure. Otherwise, non-versionable children will always be merged regardless of the merge status of the nearest versionable parent. I will update the attached diff with a different proposed fixed. More information on this issue can be found in JCR-1314. Non-versionable children of a versionable node should not be updated when a merge fails --- Key: JCR-1046 URL: https://issues.apache.org/jira/browse/JCR-1046 Project: Jackrabbit Issue Type: Bug Components: versioning Affects Versions: 1.3 Reporter: Bob Wieler Attachments: jcr1046.diff The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge: In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged. The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor. One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation. I will attach a patch file that makes what I think is the required change. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails
[ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Bob Wieler updated JCR-1046: Attachment: jcr1046.diff Updated patch. Non-versionable children of a versionable node should not be updated when a merge fails --- Key: JCR-1046 URL: https://issues.apache.org/jira/browse/JCR-1046 Project: Jackrabbit Issue Type: Bug Components: versioning Affects Versions: 1.3 Reporter: Bob Wieler Attachments: jcr1046.diff The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge: In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged. The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor. One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation. I will attach a patch file that makes what I think is the required change. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Commented: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails
[ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12559687#action_12559687 ] Tobias Bocanegra commented on JCR-1046: --- yes, i think your (latest) patch is correct. thanks for finding this! Non-versionable children of a versionable node should not be updated when a merge fails --- Key: JCR-1046 URL: https://issues.apache.org/jira/browse/JCR-1046 Project: Jackrabbit Issue Type: Bug Components: versioning Affects Versions: 1.3 Reporter: Bob Wieler Assignee: Tobias Bocanegra Attachments: jcr1046.diff The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge: In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged. The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor. One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation. I will attach a patch file that makes what I think is the required change. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Assigned: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails
[ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tobias Bocanegra reassigned JCR-1046: - Assignee: Tobias Bocanegra Non-versionable children of a versionable node should not be updated when a merge fails --- Key: JCR-1046 URL: https://issues.apache.org/jira/browse/JCR-1046 Project: Jackrabbit Issue Type: Bug Components: versioning Affects Versions: 1.3 Reporter: Bob Wieler Assignee: Tobias Bocanegra Attachments: jcr1046.diff The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge: In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged. The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor. One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation. I will attach a patch file that makes what I think is the required change. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-1318) Repository Home locked not released despite RepositoryException being thrown.
[ https://issues.apache.org/jira/browse/JCR-1318?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Micah Whitacre updated JCR-1318: Attachment: JCR_1318_tests.zip Created a testcase which will demonstrate the behavior I'm talking about. Dropping the testcase and the repository.xml in the root of a java project that is setup with jackrabbit 1.3.3 as a dependency and JUnit 4.4 is all that should be needed. As mentioned the behavior you should be seeing is that the first attempt to create a RepositoryImpl will fail because there are no suitable drivers to connect to a database whose URL is jdbc:foo:bar. The second attempt to connect however doesn't fail for the same reason and instead fails because of the .lock file being present. Repository Home locked not released despite RepositoryException being thrown. - Key: JCR-1318 URL: https://issues.apache.org/jira/browse/JCR-1318 Project: Jackrabbit Issue Type: Bug Components: jackrabbit-core Affects Versions: 1.3.3 Environment: windows vista jdk 5 Reporter: Micah Whitacre Attachments: JCR_1318_tests.zip When an exception is thrown when calling RepositoryImpl.create(...) a .lock file is created in the repository home directory and not removed despite there no longer being an active connection. If the user attempts to create the repository again (e.g recover from the exception because the url of the repository was temporarily unavailable) a RepositoryException is thrown again indicating that the repository home is locked by another process because there is a .lock file. If a Repository is not successfully created then the repository home should not be locked. The lock is only released when the repository is shutdown but in this case the Repository object is never created successfully for that method to be called. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Resolved: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails
[ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tobias Bocanegra resolved JCR-1046. --- Resolution: Fixed Fix Version/s: 1.5 fixed as proposed. Non-versionable children of a versionable node should not be updated when a merge fails --- Key: JCR-1046 URL: https://issues.apache.org/jira/browse/JCR-1046 Project: Jackrabbit Issue Type: Bug Components: versioning Affects Versions: 1.3, 1.3.1, 1.3.3, 1.4, 1.5 Reporter: Bob Wieler Assignee: Tobias Bocanegra Fix For: 1.5 Attachments: jcr1046.diff The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge: In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged. The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor. One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation. I will attach a patch file that makes what I think is the required change. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Updated: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails
[ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tobias Bocanegra updated JCR-1046: -- Affects Version/s: 1.5 1.3.1 1.3.3 1.4 Non-versionable children of a versionable node should not be updated when a merge fails --- Key: JCR-1046 URL: https://issues.apache.org/jira/browse/JCR-1046 Project: Jackrabbit Issue Type: Bug Components: versioning Affects Versions: 1.3, 1.3.1, 1.3.3, 1.4, 1.5 Reporter: Bob Wieler Assignee: Tobias Bocanegra Fix For: 1.5 Attachments: jcr1046.diff The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge: In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged. The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor. One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation. I will attach a patch file that makes what I think is the required change. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
Fwd: [continuum] BUILD FAILURE: Apache Jackrabbit - Jackrabbit Core - Build Def: Jackrabbit build with Java 1.4
Hi, Yes, I still need to fix the email notifications... Anyway, it seems like the JCR-1046 fix broke something. BR, Jukka Zitting -- Forwarded message -- From: [EMAIL PROTECTED] [EMAIL PROTECTED] Date: Jan 17, 0008 1:10 AM Subject: [continuum] BUILD FAILURE: Apache Jackrabbit - Jackrabbit Core - Build Def: Jackrabbit build with Java 1.4 To: [EMAIL PROTECTED] Online report : http://jackrabbit.zones.apache.org/continuum/buildResult.action?buildId=1735projectId=6 Build statistics: State: Failed Previous State: Ok Started at: Wed 16 Jan 2008 23:07:42 + Finished at: Wed 16 Jan 2008 23:10:38 + Total time: 2m 55s Build Trigger: Schedule Build Number: 86 Exit code: 1 Building machine hostname: jackrabbit.zones Operating system : SunOS(unknown) Java Home version : java version 1.4.2_06 Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_06-b03) Java HotSpot(TM) Client VM (build 1.4.2_06-b03, mixed mode) Builder version : Maven version: 2.0.7 Java version: 1.4.2_06 OS name: sunos version: 5.10 arch: x86 SCM Changes: Changed: tripod @ Wed 16 Jan 2008 22:48:22 + Comment: JCR-1046 Non-versionable children of a versionable node should not be updated when a merge fails Files changed: /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java ( 612604 ) Dependencies Changes: org.apache.jackrabbit:jackrabbit-api:1.5-SNAPSHOT org.apache.jackrabbit:jackrabbit-jcr-commons:1.5-SNAPSHOT org.apache.jackrabbit:jackrabbit-spi-commons:1.5-SNAPSHOT org.apache.jackrabbit:jackrabbit-spi:1.5-SNAPSHOT org.apache.jackrabbit:jackrabbit-text-extractors:1.5-SNAPSHOT org.apache.jackrabbit:jackrabbit-jcr-tests:1.5-SNAPSHOT org.apache.jackrabbit:jackrabbit:1.5-SNAPSHOT Build Defintion: POM filename: pom.xml Goals: clean deploy Arguments: --batch-mode --non-recursive -DuniqueVersion=false Build Fresh: false Always Build: false Default Build Definition: true Schedule: DEFAULT_SCHEDULE Profile Name: Java 1.4 Description: Jackrabbit build with Java 1.4 Test Summary: Tests: 1262 Failures: 1 Total time: 106.81 Test Failures: JCRAPITest testMergeNodeNonVersionableSubNodeUpdate : junit.framework.AssertionFailedError junit.framework.AssertionFailedError at junit.framework.Assert.fail(Assert.java:47) at junit.framework.Assert.assertTrue(Assert.java:20) at junit.framework.Assert.assertTrue(Assert.java:27) at org.apache.jackrabbit.test.api.version.MergeNonVersionableSubNodeTest.testMergeNodeNonVersionableSubNodeUpdate(MergeNonVersionableSubNodeTest.java:86)
[jira] Updated: (JCR-1318) Repository Home locked not released despite RepositoryException being thrown.
[ https://issues.apache.org/jira/browse/JCR-1318?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Micah Whitacre updated JCR-1318: Attachment: JCR_1318-patch.txt I created a patch based on the 1.3 branch of jackrabbit-core that isn't necessarily pretty but does at least make the testcase i provided repeatedly generate the same stack trace for attempts to create an instance of RepositoryImpl. This could probably be simplified a bit if the shutdown() method was a little bit more tolerant of everything not necessarily being initialized by that point. Repository Home locked not released despite RepositoryException being thrown. - Key: JCR-1318 URL: https://issues.apache.org/jira/browse/JCR-1318 Project: Jackrabbit Issue Type: Bug Components: jackrabbit-core Affects Versions: 1.3.3 Environment: windows vista jdk 5 Reporter: Micah Whitacre Attachments: JCR_1318-patch.txt, JCR_1318_tests.zip When an exception is thrown when calling RepositoryImpl.create(...) a .lock file is created in the repository home directory and not removed despite there no longer being an active connection. If the user attempts to create the repository again (e.g recover from the exception because the url of the repository was temporarily unavailable) a RepositoryException is thrown again indicating that the repository home is locked by another process because there is a .lock file. If a Repository is not successfully created then the repository home should not be locked. The lock is only released when the repository is shutdown but in this case the Repository object is never created successfully for that method to be called. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
Re: [continuum] BUILD FAILURE: Apache Jackrabbit - Jackrabbit Core - Build Def: Jackrabbit build with Java 1.4
ok, i will take a look at it more closely. regards, toby On 1/17/08, Jukka Zitting [EMAIL PROTECTED] wrote: Hi, Yes, I still need to fix the email notifications... Anyway, it seems like the JCR-1046 fix broke something. BR, Jukka Zitting -- Forwarded message -- From: [EMAIL PROTECTED] [EMAIL PROTECTED] Date: Jan 17, 0008 1:10 AM Subject: [continuum] BUILD FAILURE: Apache Jackrabbit - Jackrabbit Core - Build Def: Jackrabbit build with Java 1.4 To: [EMAIL PROTECTED] Online report : http://jackrabbit.zones.apache.org/continuum/buildResult.action?buildId=1735projectId=6 Build statistics: State: Failed Previous State: Ok Started at: Wed 16 Jan 2008 23:07:42 + Finished at: Wed 16 Jan 2008 23:10:38 + Total time: 2m 55s Build Trigger: Schedule Build Number: 86 Exit code: 1 Building machine hostname: jackrabbit.zones Operating system : SunOS(unknown) Java Home version : java version 1.4.2_06 Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_06-b03) Java HotSpot(TM) Client VM (build 1.4.2_06-b03, mixed mode) Builder version : Maven version: 2.0.7 Java version: 1.4.2_06 OS name: sunos version: 5.10 arch: x86 SCM Changes: Changed: tripod @ Wed 16 Jan 2008 22:48:22 + Comment: JCR-1046 Non-versionable children of a versionable node should not be updated when a merge fails Files changed: /jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/NodeImpl.java ( 612604 ) Dependencies Changes: org.apache.jackrabbit:jackrabbit-api:1.5-SNAPSHOT org.apache.jackrabbit:jackrabbit-jcr-commons:1.5-SNAPSHOT org.apache.jackrabbit:jackrabbit-spi-commons:1.5-SNAPSHOT org.apache.jackrabbit:jackrabbit-spi:1.5-SNAPSHOT org.apache.jackrabbit:jackrabbit-text-extractors:1.5-SNAPSHOT org.apache.jackrabbit:jackrabbit-jcr-tests:1.5-SNAPSHOT org.apache.jackrabbit:jackrabbit:1.5-SNAPSHOT Build Defintion: POM filename: pom.xml Goals: clean deploy Arguments: --batch-mode --non-recursive -DuniqueVersion=false Build Fresh: false Always Build: false Default Build Definition: true Schedule: DEFAULT_SCHEDULE Profile Name: Java 1.4 Description: Jackrabbit build with Java 1.4 Test Summary: Tests: 1262 Failures: 1 Total time: 106.81 Test Failures: JCRAPITest testMergeNodeNonVersionableSubNodeUpdate : junit.framework.AssertionFailedError junit.framework.AssertionFailedError at junit.framework.Assert.fail(Assert.java:47) at junit.framework.Assert.assertTrue(Assert.java:20) at junit.framework.Assert.assertTrue(Assert.java:27) at org.apache.jackrabbit.test.api.version.MergeNonVersionableSubNodeTest.testMergeNodeNonVersionableSubNodeUpdate(MergeNonVersionableSubNodeTest.java:86) -- - [EMAIL PROTECTED] --- Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001 Basel T +41 61 226 98 98, F +41 61 226 98 97 --- http://www.day.com ---
[jira] Commented: (JCR-1312) Get rid of DOM for XML support
[ https://issues.apache.org/jira/browse/JCR-1312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12559842#action_12559842 ] Felix Meschberger commented on JCR-1312: Jackrabbit is not an XML parser project. Definitely agreed on that one. Why doesn't kxml come with the DocumentBuilder implementation? Probably, they don't need it. But if you look at the patch, we are discussing three classes: * XmlPullDocumentBuilderFactory: A very simple class backed by a JAXP DocumentBuilderFactory * XmlPullDocumentBuilder: Also very simple, just one method of real complication, of which the most part is taken to guess the streams character encoding * DOM2XmlPullBuilder: The actual builder converting Pull Events to DOM. This class is copied from xmlpull.org * XmlPullDomSerializer: Straight forward and simple as well. IMHO given advantages (memory footprint (1% of Xerces) and performance (40-60% of Xerces)) this is probably a small price to pay :-) Get rid of DOM for XML support -- Key: JCR-1312 URL: https://issues.apache.org/jira/browse/JCR-1312 Project: Jackrabbit Issue Type: Improvement Components: jackrabbit-webdav Reporter: Felix Meschberger Currently the web dav library uses Xerces and DOM to parse and create XML data. This mechanism is well-known but has two major issues: It is slow and it has a big memory footprint. In order to solve these two issues, I suggest to drop the use of the W3C DOM in webdav in favor of something easier and more straight forward to use. One candidate could be (out of my head and based on my bias towards KXml) KDOM. See also http://www.kxml.org.ww See also JCR-1261 for more discussions on this issue. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.
[jira] Reopened: (JCR-1046) Non-versionable children of a versionable node should not be updated when a merge fails
[ https://issues.apache.org/jira/browse/JCR-1046?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tobias Bocanegra reopened JCR-1046: --- apparently some tests fail: CRAPITest testMergeNodeNonVersionableSubNodeUpdate : junit.framework.AssertionFailedError junit.framework.AssertionFailedError at junit.framework.Assert.fail(Assert.java:47) at junit.framework.Assert.assertTrue(Assert.java:20) at junit.framework.Assert.assertTrue(Assert.java:27) at org.apache.jackrabbit.test.api.version.MergeNonVersionableSubNodeTest.testMergeNodeNonVersionableSubNodeUpdate(MergeNonVersionableSubNodeTest.java:86) will investigate if tests are wrong or fix. Non-versionable children of a versionable node should not be updated when a merge fails --- Key: JCR-1046 URL: https://issues.apache.org/jira/browse/JCR-1046 Project: Jackrabbit Issue Type: Bug Components: versioning Affects Versions: 1.3, 1.3.1, 1.3.3, 1.4, 1.5 Reporter: Bob Wieler Assignee: Tobias Bocanegra Fix For: 1.5 Attachments: jcr1046.diff The JCR specification (JSR-170) includes a merge algorithm that is inconsistent with the functionality described elsewhere in the JCR specification. Specifically from JSR-170 section 8.2.10 Merge: In either case, (regardless of whether bestEffort is true or false) for each non-versionable node (including both referenceable and non-referenceable), if the merge result of its nearest versionable ancestor is update, or if it has no versionable ancestor, then it is updated to reflect the state of its corresponding node. Otherwise, it is left unchanged. The algorithm presented in 8.2.10.1 of the specification goes against the above statement as it does not take into consideration the merge result of the nearest versionable ancestor. One solution would be to have the doLeave(n) call that dofail(n, v') calls altered to only perform a merge on the versionable children rather than all of the children. The merging of all children (versionable and non-versionable) should only be done if the nearest parent is not in a failed merge state regardless of whether the failure occurred from the current merge operation or a previous merge operation. I will attach a patch file that makes what I think is the required change. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.