62 Commits

Author SHA1 Message Date
Britt Park
87b5690fc2 Some cleaning up of the AVMService and derived interfaces.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4624 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-12-16 18:17:18 +00:00
Britt Park
03a93a3cf7 Added a method to AVMService and its dependent services to get an InputStream
directly from a node descriptor.  It's a minor optimization for a few use
scenarios.  It's also convenient for accessing content of historical file
versions directly.  
Another CLT, to list the versions of a store.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4496 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-12-03 03:55:49 +00:00
Britt Park
b8ff632f15 AVM stores are renamable. Beware. Database schema has changed since I needed to
introduce a synthetic primary key into the stores table.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4492 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-12-02 20:03:20 +00:00
Britt Park
23a1a5657d Brought javadocs up to date with current api behavior in AVMService.
Got rid of a redundant and mostly unused method, the createSnapshot()
that takes a List of names.  Adjusted to fit.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@4453 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-11-29 03:04:53 +00:00
Britt Park
75f3c91b12 Another lookup cache checkpoint.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@4407 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-11-21 01:46:55 +00:00
Britt Park
4287b291d4 Added getContentReader and createContentWriter to AVMService. Also added convenience
getDirectoryListingArray() calls which return listings as arrays instead of Maps.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@4377 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-11-16 19:53:42 +00:00
Britt Park
a4e9b2fd6f This is an action to undo a list of changes made in a user sandbox, relative to
the staging sandbox.  Turns out yesterday's revert action isn't quite what is 
wanted for this use case.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@4366 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-11-15 20:40:27 +00:00
Britt Park
2cab072bc1 Provided a getLatestSnapshotID() for AVMService. It returns the latest extant version of
a store.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@4364 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-11-15 15:30:50 +00:00
Britt Park
f501073de5 Added two new fields to VersionRoot (the version record), a short description,
and a long description.  Adjusted signature of createSnapshot(), and update()
to match, and thus actions and tests that needed to be fixed.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@4290 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-11-05 23:41:55 +00:00
Britt Park
2355b9e00f Added a recursive copy method to AVMService. Added basic test for it. However,
for most purposes, createBranch has the same effect at a fraction of the cost.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@4287 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-11-05 15:58:33 +00:00
Britt Park
0fc71b8d68 Checkpoint of WCM workflow package support.
Setting titled and uifacets via AVMService instead of through
AVMNodeService.  1000 file import takes ~5 minutes.  Awful but better 
than before.  


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3995 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-10-02 19:42:56 +00:00
Britt Park
752e46e0f1 In certain circumstances update was not capturing aspects, properties, and
ACLs.  This fixes that.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3979 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-29 21:29:45 +00:00
Britt Park
0b1accf9f9 Added variants to getPaths, which get all HEAD paths for
a node or all HEAD paths for a node in a given store.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3977 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-29 16:12:26 +00:00
Britt Park
8e56ad390c Added missing callbacks to AVMNodeService. This makes things slow.
Have to do something about that.
Added getPaths call to AVMService.  Retrieves all possible paths to a node.
Need to do timing tests.
I believe, the 6th version of a Pair template class. This one's public and 
perhaps when we have time we could use it in place of all the inner class
implementations.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3964 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-28 20:19:48 +00:00
Britt Park
6f565e2be1 Added removeNode(String path) to AVMService as a convenience and to
reduce my shame.  Beefed up path robustness in AVMNodeConverter.SplitBase().
Removed an unneeded import from AVMNodeService.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3862 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-20 13:54:53 +00:00
Britt Park
90d171b913 Moved dangerous helper methods out of AVMService.
Reworked handling of path lookup failures to not throw exceptions
internally, to improve performance of certain layered directory
operations.  Unfortunately there remains at least one scenario,
handling of bulk loads, and promotions of deeply nested directories in
layered contexts, in which performance is considerably less than
ideal. 

Made AVMService.createBranch() and AVMSyncService.update() perform
implicit snapshots of source tree's stores before proceeding.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3812 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-17 20:05:27 +00:00
Britt Park
f5e509c18b A couple of more special tricks to get better performance out of
AVMSyncService.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3811 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-16 16:11:21 +00:00
Britt Park
14ebe1726f Added two more special purpose calls, to improve flatten performance from
rotten to ok.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3809 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-15 21:26:26 +00:00
Britt Park
dfe49bf51b Introduces a new variant on the link() call that makes the update() call
way faster in the worst case, i.e. tolerable so far.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3808 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-15 20:00:54 +00:00
Britt Park
fc2bfb0315 Checkpoint of AVMSyncService support changes. Fix of AVMNodeConverter not liking
trailing '/'s.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3803 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-15 14:03:22 +00:00
Britt Park
7fd363c599 Added link call to AVMService. It essentially creates a hard link
without the bad aftertaste.  It's needed for the AVMSyncService's
update method which will move new versions of nodes from one AVM
tree to another.  Also a checkpoint for AVMSyncService. One can safely
call compare and get back an empty List of AVMDifferences.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3784 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-13 19:26:11 +00:00
Britt Park
194d96082c Change the behavior of AVMService.getAVMStore() and AVMService.lookup()
methods to return null for not found instead of throwing an exception.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3781 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-13 14:54:25 +00:00
Britt Park
37b5003ae4 Added API methods to query AVM store properties by key pattern.
Cleaned up some warnings in AVMInterpreter.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3765 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-12 05:43:36 +00:00
Britt Park
5e0378deb2 This exposes DeletedNodes through AVMService via calls for lookup
and directory listing that take an includeLinks flag.  Original calls 
(w/o a flag) should have unchanged behavior. 


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3752 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-11 00:00:57 +00:00
Britt Park
8a95b09b98 Added new AVM node type DeletedNode (aka, ghost, tombstone), a marker node for a
node that has been deleted in a version. This makes tree comparisons easier by
resolving the cases in which one wants to know whether a deletions is more or less 
recent than another version of a node.  Along the way got rid of DeletedChild and 
friends including a table in the schema, since DeletedNode takes on all the work
that it performed.
Deleted two illegally named files in Virgin content.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3748 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-10 17:20:35 +00:00
Britt Park
920c487867 Cleanup of ACL reading/writing for PermissionsDaoComponent. All access is
through the AccessControlListDAO interface.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3700 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-06 00:41:41 +00:00
Britt Park
1fd96d13d5 This changes PermissionsDaoComponentImpl to work with NodeRefs instead
of Nodes so that Permissions can be used with AVM nodes.  It needs
to be factored a little bit differently, so consider this a WIP.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3698 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-05 14:17:34 +00:00
Britt Park
0b58cca272 Removed RetryingTransactionHelper and friends. AVMService's transactional
behavior is now declaratively specified.  


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3662 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-03 06:30:05 +00:00
Britt Park
db3c29b45e Moved stuff around to be more Alfresco standard.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3658 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-02 00:45:48 +00:00
Britt Park
5136c45e34 Taught AVM to be aware of the current user for tracking creator,
modifier, etc. AVM nodes can have ACLs. Not used for anything yet.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3657 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-09-01 20:56:11 +00:00
Britt Park
368f01a338 The AVM repository does name validation. Changed internal representation
of AVM NodeRefs to make the Node Browser in the UI happier.  Added minimal
test to ensure that AVM is case insensitive.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3627 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-08-29 17:46:32 +00:00
Britt Park
0606fa3ab6 AVM Nodes are (theoretically) mostly aspect ready. AVMNodeService is
now derived from AbstractNodeServiceImpl to make policy awareness easier.
Moved addDefaultPropertyValues from DbNodeServiceImpl to 
AbstractNodeServiceImpl so AVMNodeService can use it.  A fix for an
NPE that showed up in stress test.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3603 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-08-24 18:36:59 +00:00
Britt Park
d67b926589 Marking of AVM Nodes with Aspects works (according to some minimal tests).
Schema has been updated, DAO written, garbage collection updated to clean
out aspects.  Also some seemingly unnecessary changes in visibility 
declarations to deal with strange intermittent Spring wiring failures in 
one of my tests.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3560 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-08-22 01:22:01 +00:00
Britt Park
c8ddf97f62 Server side implementation of AVM remote interface. Made Serializable
several classes that needed to be.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3489 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-08-14 02:34:39 +00:00
Britt Park
06df2021c8 This changes the AVM service to use ContentService for storage. This gives us,
in theory, AVM working underneath (more or less) NodeService and ContentService.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3481 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-08-10 21:50:34 +00:00
Britt Park
9455745ba8 Added deleteNodeProperties to AVMService interface. Fits in well with NodeService
behavior.  Outline of implementation of AVMNodeService, an AVM based 
implementationof NodeService.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3438 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-07-31 16:38:39 +00:00
Britt Park
6692c7a979 Merged AVMService into the rest of Alfresco. It all comes up in
the same ApplicationContext. Some adjustments to tests needed,
but everything is passing.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3414 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-07-26 13:47:40 +00:00
Britt Park
e5214a5d42 Renamed RetryingTransaction to RetryingTransactionHelper, HibernateRetryingTransaction
to HibernateRetryingTransactionHelper.  Changed propagation mode of AVM transactions to
PROPAGATION_REQUIRED and tweaked to not retry in a transaction that wasn't started
locally.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3389 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-07-24 15:26:27 +00:00
Britt Park
55c4d49fbf Added getDirectoryListingDirect() and getDeleted() to AVMService
interface.  These return respectively those nodes directly
contained by a directory and the names of those nodes that
have been deleted in a directory.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3383 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-07-24 00:35:18 +00:00
Britt Park
beb44ec6ae Big rearrangement of package structure to allow as many classes
and interfaces to be package local as possible.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3381 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-07-23 14:59:28 +00:00
Britt Park
ff042f1988 Made AVMRepository Springable. Modularized Spring configuration a bit.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3380 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-07-22 20:17:51 +00:00
Britt Park
24e1b31567 Added QName indexed properties to AVMRepositories.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3376 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-07-21 21:54:26 +00:00
Britt Park
f15c1b4cc6 Added deleteProperty to service interface.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3375 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-07-21 16:31:36 +00:00
Britt Park
2e3e8f4ad2 Extended Properties to batch updates. This is really a salvage
from an aborted attempt to make basic attributes 
(creator, modifier, owner, modtime etc.) plain Properties.  This resulted
in a 30% performance hit.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3362 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-07-21 08:37:05 +00:00
Britt Park
e2eec832f1 Added QName indexed Properties to AVMNodes.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3357 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-07-19 22:15:09 +00:00
Britt Park
e5eb45da0f Introducing a new API call into AVMService:
LayeringDescriptor getLayeringInfo(version, path);

LayeringDescriptor has three methods:

isBackground() Is the looked up node a background node.
getPathAVMStore() Gets a descriptor for the store the path was looked up in.
getNativeAVMStore() Gets the store that the actual node was found in.



git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3348 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-07-18 19:08:21 +00:00
Britt Park
60cdda3f13 Renamed a few things. What used to be SuperRepository (kind of meaning free name
wasn't it) is now AVMRepository.  What used to be Repository is now AVMStore as it
more closely matches what is meant by a store in Alfresco.  Many adjustments
in ancillary class names, references, and comments followed.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3329 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-07-16 18:19:59 +00:00
Britt Park
1510998f69 Added a leetle bit of logging in a few places.
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3328 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-07-15 17:55:18 +00:00
Britt Park
d0b5b14af1 Refactored persistence for AVM. I'm guessing because I dropped a number of
unnecessary flushes seems about 20% snappier.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3296 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-07-11 09:32:13 +00:00
Britt Park
cdef918e07 Hibernate parts of AVM now based on Spring PlatformTransactionManager
abstraction.  Configurations to match.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/WCM-DEV2/root@3286 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
2006-07-06 02:08:21 +00:00