On Thu, Jun 9, 2011 at 10:47 AM, <[email protected]> wrote:
> Please read below
>
> Zitat von Andrea Aime <[email protected]>:
>
>> On Thu, Jun 9, 2011 at 6:37 AM, <[email protected]> wrote:
>>>
>>> This is more a design question:
>>>
>>> FileWatcher checks for external modifications of a file. But if
>>> tgeoserver code is writing the content of this file itself, how can I
>>> tell the FileWatcher NOT to indicate that the file is modified forcing
>>> an additional reload.
>>>
>>> Proposals
>>>
>>> 1) add a method
>>>
>>> setKnownLastModified(long lastModified)
>>>
>>> 2) add a method
>>>
>>> write(T object)
>>>
>>> which deserializes the object and adjusts the internal last modified
>>> timestamp.
>>>
>>> Proposal 2 has another advantage. It is possible to detect conflicts
>>> if the file was changed externally and internally, throwing a proper
>>> IOException.
>>>
>>> What do you think ?.
>>
>>
>> The first is probably more generic, does not require a case by case
>> subclass,
>> but I'm wondering if this is an early optimization case.
>> Are the files in question so expensive to reload, or the expected
>> change rate of the file very high?
>>
>> Cheers
>> Andrea
>>
> In my case it is reading an XML file of unknown size, parsing, building a
> DOM and validate the DOM against an XML Schema.
Oh, I thought you were using xstream, which does not build a DOM,
uses a pull parser which is faster.
>
> Another Idea which does not hurt:
>
> class WirteableFileWatcher<T> extends FileWatcher<T> {
> public write(T object) trhows IOException() {
> // code
> }
> }
Still prefer the file watcher to be notified. Otherwise it's no
more a file watcher but an almost full persistence subsystem
(if you write, why not read too while you're at it?).
The persistence subsystem could be built using the file watcher
services as a delegate.
Cheers
Andrea
--
-------------------------------------------------------
Ing. Andrea Aime
GeoSolutions S.A.S.
Tech lead
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 962313
http://www.geo-solutions.it
http://geo-solutions.blogspot.com/
http://www.youtube.com/user/GeoSolutionsIT
http://www.linkedin.com/in/andreaaime
http://twitter.com/geowolf
-------------------------------------------------------
------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel