Add support for natively supplied FeatureLocking

Description

ContentFeatureStore assumes that every subclass of ContentDataStore uses the InProcessLockingManager as it's locking manager. This prevents subclasses from supplying their own FeatureLocking implementation. In the attached patch, this assumption has been relaxed using the same design pattern that allows ContentDataStore subclasses to supply their own filter, retype and reprojection capabilities.

Environment

None

Activity

Show:
codehaus
April 10, 2015, 3:26 PM

CodeHaus Comment From: kengu - Time: Sun, 16 Oct 2011 11:01:52 -0500
---------------------
I guess I was waiting for additional approval, and I guess I just got that I'll do a another "mvn clean install -Dall" just to confirm that the changes still pass all unit test commit it.

codehaus
April 10, 2015, 3:26 PM

CodeHaus Comment From: aaime - Time: Sat, 15 Oct 2011 08:29:41 -0500
---------------------
Being the review positive I guess you can just go and commit Kenneth?

Or you're still waiting for futher dicussion/someone else to commit it?

codehaus
April 10, 2015, 3:26 PM

CodeHaus Comment From: jdeolive - Time: Sun, 2 Oct 2011 21:23:19 -0500
---------------------
Looks good to me. When I took ContentDataStore in order to use it with jdbc ng datastores locking natively was something i intentionally did not really consider since I did really have a use case. But this looks nice, follows the existing patterns and fits in well. nice work Kenneth.

codehaus
April 10, 2015, 3:26 PM

CodeHaus Comment From: aaime - Time: Sun, 2 Oct 2011 05:02:47 -0500
---------------------
Adding Justin to the mix, he was the last to do heavy modifications to ContentDataStore

codehaus
April 10, 2015, 3:26 PM

CodeHaus Comment From: kengu - Time: Sun, 11 Sep 2011 18:44:12 -0500
---------------------
The setFeatureLock(FeatureLock) method in ContentFeatureStore (extends FeatureLocking), is final. This is not that pratical when implementing native feature locking. Added therefore the protected method processLock(FeatureLock) which is only called if canLock() return true. This allow subclasses of ContentFeatureStore to intercept the assignment, doing configuration work required when the lock changes.

Fixed

Assignee

Unassigned

Reporter

codehaus

Triage

None

Components

Fix versions

Priority

Medium