Zitat von Andrea Aime <[email protected]>:
> 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.
You have the choice,
XStream xstream = new XStream(new DomDriver());
>
>>
>> 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.
Bought , should I prepare a patch for
setKnownLastModified(long lastModified)
Cheers
>
> 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
>
> -------------------------------------------------------
>
----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.
------------------------------------------------------------------------------
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