buildbot success in ASF Buildbot on oak-trunk

2012-07-04 Thread buildbot
The Buildbot has detected a restored build on builder oak-trunk while building 
ASF Buildbot.
Full details are available at:
 http://ci.apache.org/builders/oak-trunk/builds/80

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: osiris_ubuntu

Build Reason: forced: by IRC user  on channel #asftest: testing date 
fix
Build Source Stamp: HEAD
Blamelist: 

Build succeeded!

sincerely,
 -The Buildbot





[jira] [Comment Edited] (OAK-114) MicroKernel API: specify retention policy for old revisions

2012-07-04 Thread Jukka Zitting (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406637#comment-13406637
 ] 

Jukka Zitting edited comment on OAK-114 at 7/4/12 5:53 PM:
---

bq. i can't follow this argument

Here's a snippet of code that illustrates Michael's point:

{code}
String revision = mk.getHeadRevision();
mk.commit(...);  // Could occur in another thread
TimeUnit.MINUTES.sleep(5);   // Could be any delay <10mins, or no delay at 
all
mk.getNodes("/", revision, ...);
{code}

Say the {{revision}} returned from the first call was committed something like 
an hour ago. Then by the time the {{getNodes}} call is reached it can be that 
the garbage collector has already removed that revision since it's already 
older than 10 minutes and it isn't anymore the latest revision in the 
repository.

If that problem isn't fixed, a client can't make any reasonable assumptions 
about how long it can expect a particular revision to stay alive. The only way 
for a client to guarantee that it can see a given revision for at least the 
next 10 minutes would be for it to directly commit that revision, but that's 
definitely not something we want read-only clients to be doing.

  was (Author: jukkaz):
bq. i can't follow this argument

Here's a snippet of code that illustrates Michael's point:

{code}
String revision = mk.getHeadRevision();
mk.commit(...);  // Could occur in another thread
TimeUnit.MINUTES.sleep(5);   // Could be any delay <10mins, or no delay at 
all
mk.getNodes("/", revision, ...);
{code}

Say the {{revision}} returned from the first call was committed something like 
an hour ago. Then by the time the {{getNodes}} call is reached it can be that 
the garbage collector has already removed that revision since it's already 
older than 10ms and it isn't the latest revision in the repository.

If that problem isn't fixed, a client can't make any reasonable assumptions 
about how long it can expect a particular revision to stay alive. The only way 
for a client to guarantee that it can see a given revision for at least the 
next 10 minutes would be for it to directly commit that revision, but that's 
definitely not something we want read-only clients to be doing.
  
> MicroKernel API: specify retention policy for old revisions
> ---
>
> Key: OAK-114
> URL: https://issues.apache.org/jira/browse/OAK-114
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: mk
>Reporter: Stefan Guggisberg
>Assignee: Stefan Guggisberg
> Attachments: OAK-114.patch
>
>
> the MicroKernel API javadoc should specify the minimal guaranteed retention 
> period for old revisions. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (OAK-114) MicroKernel API: specify retention policy for old revisions

2012-07-04 Thread Jukka Zitting (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406637#comment-13406637
 ] 

Jukka Zitting commented on OAK-114:
---

bq. i can't follow this argument

Here's a snippet of code that illustrates Michael's point:

{code}
String revision = mk.getHeadRevision();
mk.commit(...);  // Could occur in another thread
TimeUnit.MINUTES.sleep(5);   // Could be any delay <10mins, or no delay at 
all
mk.getNodes("/", revision, ...);
{code}

Say the {{revision}} returned from the first call was committed something like 
an hour ago. Then by the time the {{getNodes}} call is reached it can be that 
the garbage collector has already removed that revision since it's already 
older than 10ms and it isn't the latest revision in the repository.

If that problem isn't fixed, a client can't make any reasonable assumptions 
about how long it can expect a particular revision to stay alive. The only way 
for a client to guarantee that it can see a given revision for at least the 
next 10 minutes would be for it to directly commit that revision, but that's 
definitely not something we want read-only clients to be doing.

> MicroKernel API: specify retention policy for old revisions
> ---
>
> Key: OAK-114
> URL: https://issues.apache.org/jira/browse/OAK-114
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: mk
>Reporter: Stefan Guggisberg
>Assignee: Stefan Guggisberg
> Attachments: OAK-114.patch
>
>
> the MicroKernel API javadoc should specify the minimal guaranteed retention 
> period for old revisions. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




Re: Notes from the Oakathon

2012-07-04 Thread Carsten Ziegeler
2012/7/4 Jukka Zitting :
> Hi,
>
>
> It came up as a potential option that Sling might be interested in.
>
> For example, many Sling components are currently having a hard time
> with the JCR observation feature, and giving them access to lower
> level features in Oak (or alternatively implementing the relevant
> Sling features directly as an Oak plugin) could simplify things a lot.

>From the peanut gallery: I'm not aware of problems with the JCR API in Sling

>
> Another potential Sling extension would be a custom Oak index provider
> for optimizing the kinds of queries Sling uses.

While this might make sense, that wouldn't be tied to Sling but any
client of OAK.

Carsten

-- 
Carsten Ziegeler
cziege...@apache.org


[jira] [Commented] (OAK-114) MicroKernel API: specify retention policy for old revisions

2012-07-04 Thread JIRA

[ 
https://issues.apache.org/jira/browse/OAK-114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406622#comment-13406622
 ] 

Michael Dürig commented on OAK-114:
---

BTW: why is 10 minutes the correct value?

> MicroKernel API: specify retention policy for old revisions
> ---
>
> Key: OAK-114
> URL: https://issues.apache.org/jira/browse/OAK-114
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: mk
>Reporter: Stefan Guggisberg
>Assignee: Stefan Guggisberg
> Attachments: OAK-114.patch
>
>
> the MicroKernel API javadoc should specify the minimal guaranteed retention 
> period for old revisions. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (OAK-114) MicroKernel API: specify retention policy for old revisions

2012-07-04 Thread JIRA

[ 
https://issues.apache.org/jira/browse/OAK-114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406619#comment-13406619
 ] 

Michael Dürig commented on OAK-114:
---

bq. i can't follow this argument. with my proposal a client is minimally 
guaranteed to be able to read revisions no older than N minutes.

Yes and that guarantee is IMO too weak.

> MicroKernel API: specify retention policy for old revisions
> ---
>
> Key: OAK-114
> URL: https://issues.apache.org/jira/browse/OAK-114
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: mk
>Reporter: Stefan Guggisberg
>Assignee: Stefan Guggisberg
> Attachments: OAK-114.patch
>
>
> the MicroKernel API javadoc should specify the minimal guaranteed retention 
> period for old revisions. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (OAK-114) MicroKernel API: specify retention policy for old revisions

2012-07-04 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406611#comment-13406611
 ] 

Stefan Guggisberg commented on OAK-114:
---

> there is a race for example between MicroKernel.getRevisionHistory and 
> MicroKernel.getNodes: whatever the fixed retention time might be, when the 
> garbage collector runs after the first but before the second call, the latter 
> will fail.

i can't follow this argument. with my proposal a client is minimally guaranteed 
to be able to read revisions no older than N minutes.

> MicroKernel API: specify retention policy for old revisions
> ---
>
> Key: OAK-114
> URL: https://issues.apache.org/jira/browse/OAK-114
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: mk
>Reporter: Stefan Guggisberg
>Assignee: Stefan Guggisberg
> Attachments: OAK-114.patch
>
>
> the MicroKernel API javadoc should specify the minimal guaranteed retention 
> period for old revisions. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (OAK-114) MicroKernel API: specify retention policy for old revisions

2012-07-04 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406609#comment-13406609
 ] 

Stefan Guggisberg commented on OAK-114:
---

> Would it be possible to change "for at least 10 minutes" to "for at least 10 
> minutes since last access"?

the 'extend lease model', apart from introducing complex state management 
requirements in the microkernel,  would e.g. allow misbehaved clients to 
compromise the stability of the mk. a client could force the mk to keep old 
revisions for ever and prevent vital gc cycles.

i therefore don't think that we should allow clients to (explicitly or 
implicitly) extend the life span
of a specific revision.

> MicroKernel API: specify retention policy for old revisions
> ---
>
> Key: OAK-114
> URL: https://issues.apache.org/jira/browse/OAK-114
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: mk
>Reporter: Stefan Guggisberg
>Assignee: Stefan Guggisberg
> Attachments: OAK-114.patch
>
>
> the MicroKernel API javadoc should specify the minimal guaranteed retention 
> period for old revisions. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Resolved] (OAK-161) Refactor Tree#getChildStatus

2012-07-04 Thread JIRA

 [ 
https://issues.apache.org/jira/browse/OAK-161?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Dürig resolved OAK-161.
---

   Resolution: Fixed
Fix Version/s: 0.4

Fixed at revision 1357314

> Refactor Tree#getChildStatus
> 
>
> Key: OAK-161
> URL: https://issues.apache.org/jira/browse/OAK-161
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: core
>Reporter: angela
>Assignee: Michael Dürig
> Fix For: 0.4
>
>
> as discussed today Tree#getChildStatus is a bit problematic from my point 
> of view as it requires the parent Tree to be always accessible. as discussed 
> and stated multiple times in the past that may not be always the case.
> a part from the drawback it offers once we have access control in place
> it doesn't work for the root node, which doesn't have a parent by definition.
> therefore i would suggest to refactor the method to Tree#getStatus and make it
> an implementation detail if the status is stored with the parent or the tree
> itself.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




Re: Notes from the Oakathon

2012-07-04 Thread Jukka Zitting
Hi,

On Wed, Jul 4, 2012 at 5:35 PM, Stefan Guggisberg
 wrote:
> On Wed, Jul 4, 2012 at 2:37 PM, Michael Dürig  wrote:
>> - HTTP bindings (OAK-103, OAK-104)
>>   * Provide extension points for Sling to hook into. (See also the
>
> i don't remember any discussions that sling should be using
> an alternative interface to access the repository. IMO
> sling should only use the jcr api.

It came up as a potential option that Sling might be interested in.

For example, many Sling components are currently having a hard time
with the JCR observation feature, and giving them access to lower
level features in Oak (or alternatively implementing the relevant
Sling features directly as an Oak plugin) could simplify things a lot.

Another potential Sling extension would be a custom Oak index provider
for optimizing the kinds of queries Sling uses.

BR,

Jukka Zitting


Re: Notes from the Oakathon

2012-07-04 Thread Stefan Guggisberg
On Wed, Jul 4, 2012 at 2:37 PM, Michael Dürig  wrote:
>
> Hi,
>
> Last week some of us met for another small Oakathon in Basel. Below is a
> list of topics that where touched and worked on and the related Jira issues.
> Any additional input is appreciated.
>
> - Observation (OAK-144):
>   * Observation events don't report every single event but rather a
> consolidated view at a given time (basically a a diff). Rational:
> performance on heavy write systems, (order of) individual events not
> clear/different for different cluster nodes in clustered setup.
>   * Implement user data support on a best effort basis. In a clustered setup
> this can't be supported. See also
> http://markmail.org/message/osxupy3twc3pyild
>   * oak-core should provide lightweight mechanism for clients to discover
> changes. oak-jcr can use this to implement JCR observation on top and trade
> off performance implications as needed.
>
> - Internal value handling
>   * To reduce GC overhead we should try to keep the number of small objects
> down
>   * Possibly merge CoreValue into PropertyState
>   * Use flyweight instances for common values/properties
>
> - HTTP bindings (OAK-103, OAK-104)
>   * Provide extension points for Sling to hook into. (See also the

i don't remember any discussions that sling should be using
an alternative interface to access the repository. IMO
sling should only use the jcr api.

cheers
stefan

> discussion on @oak-dev: http://markmail.org/message/tzpbxf5zduybezya.)
>
> - Full text index (OAK-154)
>   * Added an initial Lucene index stored under /jcr:system/oak:lucene in the
> repository (final location(s) TBD)
>   * Index updates in a CommitEditor hook, so the index is always up to date
> with latest content changes
> + TODO: How to postpone time-consuming indexing operations like full
> text extraction
> + TODO: How to merge conflicts in the search index?
>   * Basic QueryIndexProvider allows the existing query engine to leverage
> the Lucene index
> + TODO: Integrate with the rest of the build
>
> - Merge/rebase logic handling (OAK-157)
>   * The Lucene index work encountered some issues with the way we handle the
> merge/rebase operations
>   * Need to look deeper into that over the next few weeks
>
> Michael


[jira] [Commented] (OAK-167) Caching NodeStore implementation

2012-07-04 Thread Stefan Guggisberg (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-167?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406581#comment-13406581
 ] 

Stefan Guggisberg commented on OAK-167:
---

> Such a NodeStore implementation could also be used to better isolate the 
> current caching logic behind uncommitted changes.

wouldn't that ideally the transient space, i.e. oak-jcr?

> Caching NodeStore implementation
> 
>
> Key: OAK-167
> URL: https://issues.apache.org/jira/browse/OAK-167
> Project: Jackrabbit Oak
>  Issue Type: New Feature
>  Components: core
>Reporter: Jukka Zitting
>
> For remote MicroKernel implementations and other cases where local caching of 
> content is needed it would be useful to have a NodeStore implementation that 
> maintains a simple in-memory or on-disk cache of frequently accessed content. 
> Such a NodeStore implementation could also be used to better isolate the 
> current caching logic behind uncommitted changes.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (OAK-167) Caching NodeStore implementation

2012-07-04 Thread Jukka Zitting (JIRA)
Jukka Zitting created OAK-167:
-

 Summary: Caching NodeStore implementation
 Key: OAK-167
 URL: https://issues.apache.org/jira/browse/OAK-167
 Project: Jackrabbit Oak
  Issue Type: New Feature
  Components: core
Reporter: Jukka Zitting


For remote MicroKernel implementations and other cases where local caching of 
content is needed it would be useful to have a NodeStore implementation that 
maintains a simple in-memory or on-disk cache of frequently accessed content. 

Such a NodeStore implementation could also be used to better isolate the 
current caching logic behind uncommitted changes.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Resolved] (OAK-164) Replace Tree.remove(String) with Tree.remove()

2012-07-04 Thread JIRA

 [ 
https://issues.apache.org/jira/browse/OAK-164?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Dürig resolved OAK-164.
---

   Resolution: Fixed
Fix Version/s: 0.4

Fixed at revision 1357275

> Replace Tree.remove(String) with Tree.remove()
> --
>
> Key: OAK-164
> URL: https://issues.apache.org/jira/browse/OAK-164
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Dürig
>Assignee: Michael Dürig
> Fix For: 0.4
>
>
> Access to through the parent node is problematic wrt. to access control. So 
> instead of removing a child node from a parent, a node should be removed 
> directly. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Resolved] (OAK-166) Add Tree.isRoot() method instead of relying on Tree.getParent() == null

2012-07-04 Thread JIRA

 [ 
https://issues.apache.org/jira/browse/OAK-166?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Dürig resolved OAK-166.
---

   Resolution: Fixed
Fix Version/s: 0.4

Fixed at revision 1357271

> Add Tree.isRoot() method instead of relying on Tree.getParent() == null
> ---
>
> Key: OAK-166
> URL: https://issues.apache.org/jira/browse/OAK-166
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: core
>Reporter: Michael Dürig
>Assignee: Michael Dürig
> Fix For: 0.4
>
>
> Access to through the parent node is problematic wrt. to access control. So 
> instead of relying on {{Tree.getParent() == null}} to check for root, we 
> should rather have a method {{Tree.isRoot()}}.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (OAK-166) Add Tree.isRoot() method instead of relying on Tree.getParent() == null

2012-07-04 Thread JIRA
Michael Dürig created OAK-166:
-

 Summary: Add Tree.isRoot() method instead of relying on 
Tree.getParent() == null
 Key: OAK-166
 URL: https://issues.apache.org/jira/browse/OAK-166
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: core
Reporter: Michael Dürig
Assignee: Michael Dürig


Access to through the parent node is problematic wrt. to access control. So 
instead of relying on {{Tree.getParent() == null}} to check for root, we should 
rather have a method {{Tree.isRoot()}}.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (OAK-114) MicroKernel API: specify retention policy for old revisions

2012-07-04 Thread Jukka Zitting (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406536#comment-13406536
 ] 

Jukka Zitting commented on OAK-114:
---

The "last access" amendment would solve also Michael's concern if we define 
"access" as the revision id being returned from or passed to one of the MK 
methods.

> MicroKernel API: specify retention policy for old revisions
> ---
>
> Key: OAK-114
> URL: https://issues.apache.org/jira/browse/OAK-114
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: mk
>Reporter: Stefan Guggisberg
>Assignee: Stefan Guggisberg
> Attachments: OAK-114.patch
>
>
> the MicroKernel API javadoc should specify the minimal guaranteed retention 
> period for old revisions. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (OAK-165) NodeDelegate should not use Tree.getChild() but rather Root.getTree()

2012-07-04 Thread Jukka Zitting (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-165?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406535#comment-13406535
 ] 

Jukka Zitting commented on OAK-165:
---

I understand where this is coming from (access control), but I'm concerned that 
as a result we now have to repeatedly resolve the full path every time we want 
to access something. In practice all the relevant information will already be 
cached in memory, so it may not be that much of a problem, but we're still 
adding path parsing and resolution steps to a place where they wouldn't really 
be necessary.

> NodeDelegate should not use Tree.getChild() but rather Root.getTree()
> -
>
> Key: OAK-165
> URL: https://issues.apache.org/jira/browse/OAK-165
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: jcr
> Environment: {{Tree.getChild()}} is problematic wrt. to access 
> control. {{Root.getTree()}} should be used instead. 
>Reporter: Michael Dürig
>Assignee: Michael Dürig
> Fix For: 0.4
>
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Resolved] (OAK-165) NodeDelegate should not use Tree.getChild() but rather Root.getTree()

2012-07-04 Thread JIRA

 [ 
https://issues.apache.org/jira/browse/OAK-165?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Dürig resolved OAK-165.
---

   Resolution: Fixed
Fix Version/s: 0.4

Fixed at revision 1357267

> NodeDelegate should not use Tree.getChild() but rather Root.getTree()
> -
>
> Key: OAK-165
> URL: https://issues.apache.org/jira/browse/OAK-165
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: jcr
> Environment: {{Tree.getChild()}} is problematic wrt. to access 
> control. {{Root.getTree()}} should be used instead. 
>Reporter: Michael Dürig
>Assignee: Michael Dürig
> Fix For: 0.4
>
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Resolved] (OAK-153) Split the CommitHook interface

2012-07-04 Thread Jukka Zitting (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-153?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting resolved OAK-153.
---

   Resolution: Fixed
Fix Version/s: 0.4

The missing bits are back in place as of revision 1357240. Resolving as fixed.

> Split the CommitHook interface
> --
>
> Key: OAK-153
> URL: https://issues.apache.org/jira/browse/OAK-153
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: core
>Reporter: Jukka Zitting
>Assignee: Jukka Zitting
> Fix For: 0.4
>
>
> The {{CommitHook}} interface has two methods, {{beforeCommit()}} and 
> {{afterCommit()}}, since the symmetry originally seemed like a good idea. 
> However, in practice these methods are not really so symmetric after all.
> For example, unlike {{afterCommit()}} the {{beforeCommit()}} method may end 
> up being called multiple times for a given changeset if it needs to be 
> repeatedly rebased or otherwise revised before it can be committed. There 
> isn't even any guarantee that a particular changeset on which 
> {{beforeCommit()}} has been called ever gets committed. And on the other hand 
> there are good reasons to avoid calling {{afterCommit()}} on each and every 
> commit that has been made. Instead it could be called only every now and then 
> to cover larger sets of changes.
> Thus I'd like to split the {{CommitHook}} interface to two parts that I'd 
> tentatively call {{CommitEditor}} and {{Observer}}.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (OAK-114) MicroKernel API: specify retention policy for old revisions

2012-07-04 Thread Jukka Zitting (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406516#comment-13406516
 ] 

Jukka Zitting commented on OAK-114:
---

Would it be possible to change "for at least 10 minutes" to "for at least 10 
minutes since last access"? That would make life easier for things like large 
export processes that may want to stream out potentially gigabytes of data from 
the repository.

> MicroKernel API: specify retention policy for old revisions
> ---
>
> Key: OAK-114
> URL: https://issues.apache.org/jira/browse/OAK-114
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: mk
>Reporter: Stefan Guggisberg
>Assignee: Stefan Guggisberg
> Attachments: OAK-114.patch
>
>
> the MicroKernel API javadoc should specify the minimal guaranteed retention 
> period for old revisions. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (OAK-114) MicroKernel API: specify retention policy for old revisions

2012-07-04 Thread Stefan Guggisberg (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-114?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stefan Guggisberg updated OAK-114:
--

Attachment: OAK-114.patch

patch with a first proposal (10-minutes guaranteed retention period for head 
revisions)

> MicroKernel API: specify retention policy for old revisions
> ---
>
> Key: OAK-114
> URL: https://issues.apache.org/jira/browse/OAK-114
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: mk
>Reporter: Stefan Guggisberg
>Assignee: Stefan Guggisberg
> Attachments: OAK-114.patch
>
>
> the MicroKernel API javadoc should specify the minimal guaranteed retention 
> period for old revisions. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (OAK-165) NodeDelegate should not use Tree.getChild() but rather Root.getTree()

2012-07-04 Thread JIRA
Michael Dürig created OAK-165:
-

 Summary: NodeDelegate should not use Tree.getChild() but rather 
Root.getTree()
 Key: OAK-165
 URL: https://issues.apache.org/jira/browse/OAK-165
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: jcr
 Environment: {{Tree.getChild()}} is problematic wrt. to access 
control. {{Root.getTree()}} should be used instead. 
Reporter: Michael Dürig
Assignee: Michael Dürig




--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (OAK-164) Replace Tree.remove(String) with Tree.remove()

2012-07-04 Thread JIRA
Michael Dürig created OAK-164:
-

 Summary: Replace Tree.remove(String) with Tree.remove()
 Key: OAK-164
 URL: https://issues.apache.org/jira/browse/OAK-164
 Project: Jackrabbit Oak
  Issue Type: Improvement
  Components: core
Reporter: Michael Dürig
Assignee: Michael Dürig


Access to through the parent node is problematic wrt. to access control. So 
instead of removing a child node from a parent, a node should be removed 
directly. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




Notes from the Oakathon

2012-07-04 Thread Michael Dürig


Hi,

Last week some of us met for another small Oakathon in Basel. Below is a 
list of topics that where touched and worked on and the related Jira 
issues. Any additional input is appreciated.


- Observation (OAK-144):
  * Observation events don't report every single event but rather a 
consolidated view at a given time (basically a a diff). Rational: 
performance on heavy write systems, (order of) individual events not 
clear/different for different cluster nodes in clustered setup.
  * Implement user data support on a best effort basis. In a clustered 
setup this can't be supported. See also 
http://markmail.org/message/osxupy3twc3pyild
  * oak-core should provide lightweight mechanism for clients to 
discover changes. oak-jcr can use this to implement JCR observation on 
top and trade off performance implications as needed.


- Internal value handling
  * To reduce GC overhead we should try to keep the number of small 
objects down

  * Possibly merge CoreValue into PropertyState
  * Use flyweight instances for common values/properties

- HTTP bindings (OAK-103, OAK-104)
  * Provide extension points for Sling to hook into. (See also the 
discussion on @oak-dev: http://markmail.org/message/tzpbxf5zduybezya.)


- Full text index (OAK-154)
  * Added an initial Lucene index stored under /jcr:system/oak:lucene 
in the repository (final location(s) TBD)
  * Index updates in a CommitEditor hook, so the index is always up to 
date with latest content changes
+ TODO: How to postpone time-consuming indexing operations like 
full text extraction

+ TODO: How to merge conflicts in the search index?
  * Basic QueryIndexProvider allows the existing query engine to 
leverage the Lucene index

+ TODO: Integrate with the rest of the build

- Merge/rebase logic handling (OAK-157)
  * The Lucene index work encountered some issues with the way we 
handle the merge/rebase operations

  * Need to look deeper into that over the next few weeks

Michael


[jira] [Commented] (OAK-163) Move the JCR TCK back to the integrationTesting profile

2012-07-04 Thread Jukka Zitting (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406438#comment-13406438
 ] 

Jukka Zitting commented on OAK-163:
---

bq. http://ci.apache.org/builders/oak-trunk fails since quite a while now and 
no one bothers to have a look.

Not true. I caught that one right after the CI build stated failing: 
http://markmail.org/message/zhg7ilg7a2dg7s4z.

Of course the issue with Buildbot still isn't resolved, but we have the Travis 
build as a backup.

> Move the JCR TCK back to the integrationTesting profile
> ---
>
> Key: OAK-163
> URL: https://issues.apache.org/jira/browse/OAK-163
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: jcr
>Reporter: Jukka Zitting
>Priority: Minor
>  Labels: tck
> Attachments: 
> 0001-OAK-163-Move-the-JCR-TCK-back-to-the-integrationTest.patch
>
>
> In revision 1325811 the JCR TCK tests were moved from the integrationTesting 
> profile to a normal build. However, since then the execution time of the TCK 
> has grown to 3+ minutes, which is more than the rest of the Oak build 
> combined. To keep the build time down to at most a couple of minutes, I'd 
> like to move the TCK run back to the integrationTesting profile where it will 
> get executed only when explicitly requested (typically manually before a 
> commit or after one in a CI build).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (OAK-163) Move the JCR TCK back to the integrationTesting profile

2012-07-04 Thread Jukka Zitting (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406436#comment-13406436
 ] 

Jukka Zitting commented on OAK-163:
---

bq. Hasn't been always reliable.

People are still expected to run the TCK before committing new stuff, so the CI 
build is just a failsafe for cases when that didn't happen. And if the CI build 
also fails to catch the problem, other committers will soon enough encounter 
the build failure. A test failure won't last long before being detected.

bq. Developer might not see it in time (end-of-day, vacation) or not paying 
attention.

We manage the codebase collectively, so anyone who sees a build failure is free 
to revert the commit that broke the build. Personally I much rather spend a few 
extra minutes reverting the occasional breaking change than having all my 
builds take longer.

I'd also be fine with a solution that I can selectively enable only on my 
machine to keep only fast tests in the default build, but I don't know a clean 
way of doing that. It's easier to selectively add bits to the build than to 
take them away.

See also OAK-53 where we already discussed the "long build" problem earlier.

> Move the JCR TCK back to the integrationTesting profile
> ---
>
> Key: OAK-163
> URL: https://issues.apache.org/jira/browse/OAK-163
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: jcr
>Reporter: Jukka Zitting
>Priority: Minor
>  Labels: tck
> Attachments: 
> 0001-OAK-163-Move-the-JCR-TCK-back-to-the-integrationTest.patch
>
>
> In revision 1325811 the JCR TCK tests were moved from the integrationTesting 
> profile to a normal build. However, since then the execution time of the TCK 
> has grown to 3+ minutes, which is more than the rest of the Oak build 
> combined. To keep the build time down to at most a couple of minutes, I'd 
> like to move the TCK run back to the integrationTesting profile where it will 
> get executed only when explicitly requested (typically manually before a 
> commit or after one in a CI build).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (OAK-163) Move the JCR TCK back to the integrationTesting profile

2012-07-04 Thread JIRA

[ 
https://issues.apache.org/jira/browse/OAK-163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406432#comment-13406432
 ] 

Michael Dürig commented on OAK-163:
---

bq. There's a risk that people won't run the TCK before checking in, causing 
loss of cycles for somebody else later on.

In my experience this is not only a risk but common practice. And the CI server 
doesn't seem to help either. http://ci.apache.org/builders/oak-trunk fails 
since quite a while now and no one bothers to have a look.

Having long build times is inconvenient agreed. But failing the build for all 
others is a very bad trade off. Optimally:

* everyone runs the integration tests before checkin unless there is very good 
reasons to believe nothing will break

* the CI infrastructure would be reliable

* everyone watches the CI server and fixes broken builds caused by self.

Until we have that, I suggest we'd turn the process around and add an option to 
smoke test like we had it in OAK-53 before it was reverted. 

> Move the JCR TCK back to the integrationTesting profile
> ---
>
> Key: OAK-163
> URL: https://issues.apache.org/jira/browse/OAK-163
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: jcr
>Reporter: Jukka Zitting
>Priority: Minor
>  Labels: tck
> Attachments: 
> 0001-OAK-163-Move-the-JCR-TCK-back-to-the-integrationTest.patch
>
>
> In revision 1325811 the JCR TCK tests were moved from the integrationTesting 
> profile to a normal build. However, since then the execution time of the TCK 
> has grown to 3+ minutes, which is more than the rest of the Oak build 
> combined. To keep the build time down to at most a couple of minutes, I'd 
> like to move the TCK run back to the integrationTesting profile where it will 
> get executed only when explicitly requested (typically manually before a 
> commit or after one in a CI build).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (OAK-163) Move the JCR TCK back to the integrationTesting profile

2012-07-04 Thread Julian Reschke (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406419#comment-13406419
 ] 

Julian Reschke commented on OAK-163:


bq. That's what we have the CI build for.

Downsides: Hasn't been always reliable. Problem is found only after checkin. 
Developer might not see it in time (end-of-day, vacation) or not paying 
attention. Etc.

> Move the JCR TCK back to the integrationTesting profile
> ---
>
> Key: OAK-163
> URL: https://issues.apache.org/jira/browse/OAK-163
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: jcr
>Reporter: Jukka Zitting
>Priority: Minor
>  Labels: tck
> Attachments: 
> 0001-OAK-163-Move-the-JCR-TCK-back-to-the-integrationTest.patch
>
>
> In revision 1325811 the JCR TCK tests were moved from the integrationTesting 
> profile to a normal build. However, since then the execution time of the TCK 
> has grown to 3+ minutes, which is more than the rest of the Oak build 
> combined. To keep the build time down to at most a couple of minutes, I'd 
> like to move the TCK run back to the integrationTesting profile where it will 
> get executed only when explicitly requested (typically manually before a 
> commit or after one in a CI build).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (OAK-163) Move the JCR TCK back to the integrationTesting profile

2012-07-04 Thread Jukka Zitting (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406401#comment-13406401
 ] 

Jukka Zitting commented on OAK-163:
---

bq. There's a risk that people won't run the TCK before checking in, causing 
loss of cycles for somebody else later on.

That's what we have the CI build for.

> Move the JCR TCK back to the integrationTesting profile
> ---
>
> Key: OAK-163
> URL: https://issues.apache.org/jira/browse/OAK-163
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: jcr
>Reporter: Jukka Zitting
>Priority: Minor
>  Labels: tck
> Attachments: 
> 0001-OAK-163-Move-the-JCR-TCK-back-to-the-integrationTest.patch
>
>
> In revision 1325811 the JCR TCK tests were moved from the integrationTesting 
> profile to a normal build. However, since then the execution time of the TCK 
> has grown to 3+ minutes, which is more than the rest of the Oak build 
> combined. To keep the build time down to at most a couple of minutes, I'd 
> like to move the TCK run back to the integrationTesting profile where it will 
> get executed only when explicitly requested (typically manually before a 
> commit or after one in a CI build).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (OAK-163) Move the JCR TCK back to the integrationTesting profile

2012-07-04 Thread Julian Reschke (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406398#comment-13406398
 ] 

Julian Reschke commented on OAK-163:


There's a risk that people *won't* run the TCK before checking in, causing loss 
of cycles for somebody else later on.

Also, running with integrationTesting is so slow for jackrabbit that most 
people won't wait for it to finish before checking in. So what may be right for 
OAK definitively is not right for Jackrabbit.

> Move the JCR TCK back to the integrationTesting profile
> ---
>
> Key: OAK-163
> URL: https://issues.apache.org/jira/browse/OAK-163
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: jcr
>Reporter: Jukka Zitting
>Priority: Minor
>  Labels: tck
> Attachments: 
> 0001-OAK-163-Move-the-JCR-TCK-back-to-the-integrationTest.patch
>
>
> In revision 1325811 the JCR TCK tests were moved from the integrationTesting 
> profile to a normal build. However, since then the execution time of the TCK 
> has grown to 3+ minutes, which is more than the rest of the Oak build 
> combined. To keep the build time down to at most a couple of minutes, I'd 
> like to move the TCK run back to the integrationTesting profile where it will 
> get executed only when explicitly requested (typically manually before a 
> commit or after one in a CI build).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




Re: ConcurrentModificationException during gc run

2012-07-04 Thread Dominique Pfister
Hi Michi,

Yes, Tom experienced the same issue yesterday. I'm gonna have a look.

Thanks
Dominique

On Jul 4, 2012, at 11:23 AM, Michael Dürig wrote:

> 
> Hi,
> 
> I got a ConcurrentModificationException while checking the 0.3 release. 
> This didn't cause any test case to fail but was printed to the console.
> 
> Michael
> 
> Running org.apache.jackrabbit.oak.jcr.JcrTckTest
> java.util.ConcurrentModificationException
>   at java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1100)
>   at java.util.TreeMap$EntryIterator.next(TreeMap.java:1136)
>   at java.util.TreeMap$EntryIterator.next(TreeMap.java:1131)
>   at 
> org.apache.jackrabbit.mk.store.DefaultRevisionStore.markBranches(DefaultRevisionStore.java:561)
>   at 
> org.apache.jackrabbit.mk.store.DefaultRevisionStore.gc(DefaultRevisionStore.java:497)
>   at 
> org.apache.jackrabbit.mk.store.DefaultRevisionStore$2.run(DefaultRevisionStore.java:159)
>   at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>   at 
> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>   at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>   at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>   at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
>   at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>   at java.lang.Thread.run(Thread.java:680)



[jira] [Updated] (OAK-163) Move the JCR TCK back to the integrationTesting profile

2012-07-04 Thread Jukka Zitting (JIRA)

 [ 
https://issues.apache.org/jira/browse/OAK-163?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jukka Zitting updated OAK-163:
--

Attachment: 0001-OAK-163-Move-the-JCR-TCK-back-to-the-integrationTest.patch

The attached patch implements the proposed change.

Relevant build times (on my computer) after the patch is applied:

* 1:22 for {{mvn clean install -DskipTests}}
* 2:01 for {{mvn clean install}} 
* 6:01 for {{mvn clean install -PintegrationTesting}}

Build time without the patch:

* 5:01 for {{mvn clean install}}

> Move the JCR TCK back to the integrationTesting profile
> ---
>
> Key: OAK-163
> URL: https://issues.apache.org/jira/browse/OAK-163
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: jcr
>Reporter: Jukka Zitting
>Priority: Minor
>  Labels: tck
> Attachments: 
> 0001-OAK-163-Move-the-JCR-TCK-back-to-the-integrationTest.patch
>
>
> In revision 1325811 the JCR TCK tests were moved from the integrationTesting 
> profile to a normal build. However, since then the execution time of the TCK 
> has grown to 3+ minutes, which is more than the rest of the Oak build 
> combined. To keep the build time down to at most a couple of minutes, I'd 
> like to move the TCK run back to the integrationTesting profile where it will 
> get executed only when explicitly requested (typically manually before a 
> commit or after one in a CI build).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




ConcurrentModificationException during gc run

2012-07-04 Thread Michael Dürig


Hi,

I got a ConcurrentModificationException while checking the 0.3 release. 
This didn't cause any test case to fail but was printed to the console.


Michael

Running org.apache.jackrabbit.oak.jcr.JcrTckTest
java.util.ConcurrentModificationException
at java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1100)
at java.util.TreeMap$EntryIterator.next(TreeMap.java:1136)
at java.util.TreeMap$EntryIterator.next(TreeMap.java:1131)
	at 
org.apache.jackrabbit.mk.store.DefaultRevisionStore.markBranches(DefaultRevisionStore.java:561)
	at 
org.apache.jackrabbit.mk.store.DefaultRevisionStore.gc(DefaultRevisionStore.java:497)
	at 
org.apache.jackrabbit.mk.store.DefaultRevisionStore$2.run(DefaultRevisionStore.java:159)

at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at 
java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)

at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
	at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
	at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
	at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
	at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

at java.lang.Thread.run(Thread.java:680)


Re: [VOTE] Release Apache Jackrabbit Oak 0.3

2012-07-04 Thread Michael Dürig




Please vote on releasing this package as Apache Jackrabbit Oak 0.3.
The vote is open for the next 72 hours and passes if a majority of at
least three +1 Jackrabbit PMC votes are cast.

 [ ] +1 Release this package as Apache Jackrabbit Oak 0.3
 [ ] -1 Do not release this package because...


+1

Michael


[jira] [Commented] (OAK-163) Move the JCR TCK back to the integrationTesting profile

2012-07-04 Thread Jukka Zitting (JIRA)

[ 
https://issues.apache.org/jira/browse/OAK-163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13406377#comment-13406377
 ] 

Jukka Zitting commented on OAK-163:
---

I'd like to change that in Jackrabbit trunk as well, there the default build 
already takes >10 minutes for me. That's enough time for a coffee break for 
each build of the codebase.

A long build time is a drain on productivity as to get a deployable build 
artifact (runnable jar, OSGi bundle, etc.) you need to run the build. When 
working on some non-trivial issue, I typically have to build the codebase at 
least a half a dozen times before the changes are ready to be committed. 
There's little point having long-running tests included in such intermediate 
builds, but it would still be useful to have a basic set of fast and simple 
sanity checks run on the code to catch any obvious mistakes beyond just compile 
failures.

Currently I'm using {{mvn clean install -DskipTests}} for such intermediate 
builds, which is hardly ideal as a) that disables all tests, and b) requires 
more typing than the default build.

Instead I'd like the default build (that's executed most often) to be lean and 
fast (with unit tests ideally not taking much more time than it took to compile 
the relevant code), and have a separate integration test build ({{mvn clean 
install -PintegrationTesting}}) for more complete verification of changes 
before committing them.

If people prefer to have all tests run on each build, we could still support 
that use case on a per-user basis by having the {{integrationTesting}} profile 
be automatically activated on something like the presence of an 
{{OAK_INTEGRATION_TESTING}} environment variable.

> Move the JCR TCK back to the integrationTesting profile
> ---
>
> Key: OAK-163
> URL: https://issues.apache.org/jira/browse/OAK-163
> Project: Jackrabbit Oak
>  Issue Type: Improvement
>  Components: jcr
>Reporter: Jukka Zitting
>Priority: Minor
>  Labels: tck
>
> In revision 1325811 the JCR TCK tests were moved from the integrationTesting 
> profile to a normal build. However, since then the execution time of the TCK 
> has grown to 3+ minutes, which is more than the rest of the Oak build 
> combined. To keep the build time down to at most a couple of minutes, I'd 
> like to move the TCK run back to the integrationTesting profile where it will 
> get executed only when explicitly requested (typically manually before a 
> commit or after one in a CI build).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira