View Directory | Revision Log | View Changeset
/hippo/experimental/repository-client-api/tags/Release_REPOSITORY_CLIENT_API_1.07.00
Revision 4846 - Directory Listing - [select for diffs]
Modified Fri Feb 2 15:46:25 2007 UTC (13 years, 8 months ago) by wgrevink
Copied from: experimental/repository-client-api/trunk revision 4845
Diff to previous 4845
WCL-1

release repository-client-api 1.07.00
Revision 4845 - Directory Listing - [select for diffs]
Modified Fri Feb 2 15:44:56 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4839
WCL-1

Prepare for release
Revision 4839 - Directory Listing - [select for diffs]
Modified Fri Feb 2 14:40:22 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4836
WCL-1

Added getFacet(name) to FacetCollection
Revision 4836 - Directory Listing - [select for diffs]
Modified Fri Feb 2 13:16:56 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4834
WCL-1

Added Facets to webdav service
Revision 4834 - Directory Listing - [select for diffs]
Modified Fri Feb 2 11:59:32 2007 UTC (13 years, 8 months ago) by jreijn
Original Path: experimental/repository-client-api/trunk
Diff to previous 4833
WCL-1: Add PUT method to repository client api
Revision 4833 - Directory Listing - [select for diffs]
Modified Fri Feb 2 11:58:57 2007 UTC (13 years, 8 months ago) by jreijn
Original Path: experimental/repository-client-api/trunk
Diff to previous 4832
WCL-1: Add PUT method to repository client api
Revision 4832 - Directory Listing - [select for diffs]
Modified Fri Feb 2 11:52:51 2007 UTC (13 years, 8 months ago) by jreijn
Original Path: experimental/repository-client-api/trunk
Diff to previous 4829
WCL-1: Add PUT method to repository client api
Revision 4829 - Directory Listing - [select for diffs]
Modified Fri Feb 2 11:12:19 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4823
WCL-1

Added Facets result binding + test
Revision 4823 - Directory Listing - [select for diffs]
Modified Thu Feb 1 10:57:07 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4797
WCL-1

Implemented correct caching for the fetchDocumentById(), fetchMetadataById() and fetchContentById() methods in the WebdavService.

This implementation is much simpler than the proposed implementation using a dedicated ID cache with references to the 'real' cache.
The problem with that solution is that it introduces a new level of complexity (two tightly coupled cache instances) that can 
potentially be the source of a whole new category of bugs and instability. Even if the two caches are based on the same instance, it 
remains that a new and potentially problematic concept -'reference to a cache entry in a cache entry'- is introduced.

This implementation reuses existing concepts and is based on the following two observations:
1)A fetch..ById() method in the WebdavService allways binds the result of the inbuilt find-by-id dasl in order to retrieve the 
DocumentPath to the Document to be fetched. This means that we DO have the DocumentPath at our disposal during the execute of 
a fetch..ById() method.
2)We have the NOPCachingService at our disposal which enables us to do anything without the real cache knowing about it.

To cut a long story short, here's the code:

	public Document fetchDocumentById(String documentId) throws ClientException {
		assertDocumentIdIsEnabled();
		
		WebdavCacheKey key = new WebdavCacheKey(config, documentId, "ID-DOCUMENT");
		Object result = cache.get(key);
		if (result == null) {
			CachingService nullCache = new NOPCachingService();
			DocumentPath path = documentFactory.resolvePath(nullCache, documentId);
			if (path != null) {
				result = documentFactory.fetchDocument(nullCache, path);
				store(cache, key, result, path);
			}
		}
		return (Document) result;
	}

	private void store(CachingService cache, WebdavCacheKey key, Object object, DocumentPath path) throws ClientException {
		if (object == null) {
			return;
		}
		try {
			EventValidity eventValidity = new EventValidityImpl(path.getDocumentPath());
			CachedResponse cr = new CachedResponseImpl(eventValidity, object);
			cache.store(key, cr);
		} catch (IOException e) {
			throw new ClientException("Exception while caching the response", e);
		}
	}

The JMSEventCacheTest contains some tests to verify that this actually does what we want: Te cache entry is evicted only on a change event 
on the Document itself: testFindDocumentById(), testFindMetadataById() and testFindContentById()


Some more refactorings:
*) Removed getPath() method from interface CacheKey, it is webdav-eventcaching specific and doesn't belong in this general interface. 
   It's webdav-clientlib implementation (WebdavCacheKey) still has it and it is only used inside this lib.
*) Split up huge method in BindingFactory into several smaller methods: no functional change, just cleaning up.
*) Fixed compilation error in JMSEventCacheTest that was introduced by yesterday's change in constructing a JCSDefaultCache()
Revision 4797 - Directory Listing - [select for diffs]
Modified Mon Jan 29 14:53:12 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4785
WCL-1

Bump version after release
Revision 4785 - Directory Listing - [select for diffs]
Modified Mon Jan 29 14:11:43 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4780
WCL-1

Renamed documentMetadata.getID() -> documentMetadata.getId()
Revision 4780 - Directory Listing - [select for diffs]
Modified Mon Jan 29 13:44:57 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4769
WCL-1

Prepare for release
Revision 4769 - Directory Listing - [select for diffs]
Modified Mon Jan 29 12:54:39 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4765
WCL-1

Renamed documentMetadata.getUID() to documentMetadata.getID();
Revision 4765 - Directory Listing - [select for diffs]
Modified Mon Jan 29 11:28:06 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4758
WCL-1

1)Removed targetPath parameter from fetchDocumentById, fetchMetadataById and fetchContentById in webdav service
=> the fetch...ById methods now allways search the entire repository from the filesPath (preview or live) downwards.
2)Small optimailzation: moved searchbyid dasl template loading to static initializer
Revision 4758 - Directory Listing - [select for diffs]
Modified Fri Jan 26 16:30:45 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4741
WCL-1

Added fetchDocumentById, fetchMetadataById and fetchContentById to webdav service
Revision 4741 - Directory Listing - [select for diffs]
Modified Fri Jan 26 09:08:08 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4724
WCL-1

Added  project.xml.md5 to svn:ignore for cachemanager, repository-client-api and repository-update-notifier
Revision 4724 - Directory Listing - [select for diffs]
Modified Thu Jan 25 13:29:36 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4671
WCL-1

1)Added fetchMetadata(path) to webdav service
2)Renamed executeGet(path) to fetchContent() in webdav service

Revision 4671 - Directory Listing - [select for diffs]
Modified Tue Jan 23 16:19:30 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4661
WCL-1

Bump versions after release
Revision 4661 - Directory Listing - [select for diffs]
Modified Tue Jan 23 15:56:27 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4656
WCL-1

prepare for release

Revision 4656 - Directory Listing - [select for diffs]
Modified Tue Jan 23 15:44:23 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4638
WCL-1

Added service layer to cachemanager and repository-update-notifier

webdav-clientlib, cachemanager and repository-update-notifier now all implement repository-client-api,
cachemanager-api and repository-update-notifier-api become obsolete.



Revision 4638 - Directory Listing - [select for diffs]
Modified Mon Jan 22 11:06:14 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4594
WCL-1

Implemented new interface/implementation naming convention.

interface -> no pre/postfix
implementation => impl postfix


Revision 4594 - Directory Listing - [select for diffs]
Modified Tue Jan 16 16:40:10 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4528
WCL-1

First implementation of the WebdavService

Revision 4528 - Directory Listing - [select for diffs]
Modified Fri Jan 12 16:24:55 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4517
HIPDOC-21

Bump version of cachemanager-api, cachemanager, repository-client-api, webdav-clientlib and jsf-repository-browser




Revision 4517 - Directory Listing - [select for diffs]
Modified Fri Jan 12 15:37:57 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4513
HIPDOC-21

Bump version for next release





Revision 4513 - Directory Listing - [select for diffs]
Modified Fri Jan 12 15:34:41 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4503
HIPDOC-21

Updated documentation





Revision 4503 - Directory Listing - [select for diffs]
Modified Fri Jan 12 11:35:32 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4465
HIPDOC-21

Added IDocumentPath/DocumentPath with methods:
	public String getNamespace();
	public String getFilesPath();
	public String getRootPath();
	public String getRelativePath();
	public String getDocumentPath();

IDocument/Document now returns a IDocumentPath iso a String for the Document path

Removed SearchResultFactory, moved fetch.. method to DocumentFactory

Simplified cachekey computing, there is no need for crc calculation on a stream since the dasl is eventually converted to a string anyway 

Added SearchPerformanceTest for gaining insight in the speed






Revision 4465 - Directory Listing - [select for diffs]
Modified Thu Jan 11 12:36:21 2007 UTC (13 years, 8 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4451
HIPDOC-21

Mainly cosmetic changes:

Added dependency to cachemanager-api in cachemanager project.xml
Added dependency to cachemanager-api and cachemanager in webdav-clientlib project.xml
Added .project, .classpath and target to .svnignore for cachemanager and cachemanager-api
Added NOTICE and LICENCE files
Removed unused imports
Removed unused local variables
Added serialversionUID for Serialized classes
Removed accidentally checked in class files
Removed eclipse generated TODO comments





Revision 4451 - Directory Listing - [select for diffs]
Modified Thu Jan 11 10:31:43 2007 UTC (13 years, 8 months ago) by aschrijvers
Original Path: experimental/repository-client-api/trunk
Diff to previous 4450
added relativeUri()

HIPDOC-21
Revision 4450 - Directory Listing - [select for diffs]
Modified Thu Jan 11 10:30:01 2007 UTC (13 years, 8 months ago) by aschrijvers
Original Path: experimental/repository-client-api/trunk
Diff to previous 4394
fix 2sax handler

HIPDOC-21
Revision 4394 - Directory Listing - [select for diffs]
Modified Thu Jan 4 13:37:08 2007 UTC (13 years, 9 months ago) by aschrijvers
Original Path: experimental/repository-client-api/trunk
Diff to previous 4353
HIPDOC-21

moved serializable to interfaces
Revision 4353 - Directory Listing - [select for diffs]
Modified Thu Dec 28 10:36:33 2006 UTC (13 years, 9 months ago) by adouma
Original Path: experimental/repository-client-api/trunk
Diff to previous 4345
HIPDOC-21: bumb to next developer version
Revision 4345 - Directory Listing - [select for diffs]
Modified Thu Dec 28 10:08:58 2006 UTC (13 years, 9 months ago) by adouma
Original Path: experimental/repository-client-api/trunk
Diff to previous 4343
HIPDOC-21: prepare for release
Revision 4343 - Directory Listing - [select for diffs]
Modified Thu Dec 28 10:04:58 2006 UTC (13 years, 9 months ago) by adouma
Original Path: experimental/repository-client-api/trunk
Diff to previous 4336
HIPDOC-21: adding maven:site generation properties and JavaDocs menu item
Revision 4336 - Directory Listing - [select for diffs]
Modified Wed Dec 27 10:42:34 2006 UTC (13 years, 9 months ago) by adouma
Original Path: experimental/repository-client-api/trunk
Diff to previous 4298
HIPDOC-21: correcting svn:eol-style to native and adding svn:keywords "Id"
Revision 4298 - Directory Listing - [select for diffs]
Modified Thu Dec 21 15:45:56 2006 UTC (13 years, 9 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4284
HIPDOC-21

API:
1> Removed IDocumentFactory and IDocumentCollectionFactory from API, they are too much webdav specific and not really nessessary.
2> IDocumentMetadata: Replaced method iterator() (returning an iterator of Map.Entry instances) with method propertyNames() (returning a Set of Strings)

JSF sample:
1> Split up monolithic tree.jsp into multiple jsp's
2> Implemented details pane as a TabbedPane
3> now there are two tabs: one for content and one for properties



Revision 4284 - Directory Listing - [select for diffs]
Modified Tue Dec 19 10:39:17 2006 UTC (13 years, 9 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4277
HIPDOC-21

Set version of repository-client-api, webdav-clientlib and jsf-repository-browser back to -dev on trunk after release.

Revision 4277 - Directory Listing - [select for diffs]
Modified Tue Dec 19 10:05:09 2006 UTC (13 years, 9 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4273
HIPDOC-21

Prepare for release

Revision 4273 - Directory Listing - [select for diffs]
Modified Tue Dec 19 09:37:49 2006 UTC (13 years, 9 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4261
HIPDOC-21

Introduced IDocumentFactory and IDocumentCollectionFactory
Revision 4261 - Directory Listing - [select for diffs]
Modified Mon Dec 18 17:14:02 2006 UTC (13 years, 9 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4258
HIPDOC-21

Changed API after consulting with Patrick

Revision 4258 - Directory Listing - [select for diffs]
Modified Mon Dec 18 13:39:26 2006 UTC (13 years, 9 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4251
HIPDOC-21

Set version of repositoy-client-api, webdav-clientlib and jsf-repository-browser back to -dev on trunk after release.

Revision 4251 - Directory Listing - [select for diffs]
Modified Mon Dec 18 13:06:59 2006 UTC (13 years, 9 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4248
HIPDOC-21

Prepare for release

Revision 4248 - Directory Listing - [select for diffs]
Modified Mon Dec 18 12:58:41 2006 UTC (13 years, 9 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4192
HIPDOC-21

Finalize API, update documentation

Revision 4192 - Directory Listing - [select for diffs]
Modified Fri Dec 15 15:42:09 2006 UTC (13 years, 9 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4189
HIPDOC-21

*)Removed getResponseAsJdom, it cannot be exposed in the repository-client-api because that module shouldn't have any dependencies.

As requested by Ard:
*)Added getResponseAsSaxContentHandler to IRawResponse/WebdavResponse
*)Added set/getContent to IResource/WebdavResource so that it becomes possible to construct
 an object containing both content (from a Get) and properties (from a Propfind) 



Revision 4189 - Directory Listing - [select for diffs]
Modified Fri Dec 15 14:45:33 2006 UTC (13 years, 9 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
Diff to previous 4188
HIPDOC-21

Initial import of the repository-client-api


Revision 4188 - Directory Listing - [select for diffs]
Added Fri Dec 15 14:42:07 2006 UTC (13 years, 9 months ago) by wgrevink
Original Path: experimental/repository-client-api/trunk
HIPDOC-21

Trunk for repository-client-api


Convenience Links