Hi

Yeah please take a look at the GenericFileExclusiveReadLockStrategy
and see if you can implement it as a implementation of this interface?
Then it can be added into camel 2.0 as an other option to choose.

But beware that the code in trunk is currently have 2 file components.
FileComponent is the old one that is currently active
NewFileComponent is the new one temporary there side by side until its
rock solid and can replace the FileComponent.

The trick is that you can modify the file component file
Index: src/main/resources/META-INF/services/org/apache/camel/component/file
===================================================================
--- src/main/resources/META-INF/services/org/apache/camel/component/file
       (revision 739943)
+++ src/main/resources/META-INF/services/org/apache/camel/component/file
       (working copy)
@@ -15,5 +15,5 @@
 # limitations under the License.
 #

-class=org.apache.camel.component.file.FileComponent
-strategy.factory.class=org.apache.camel.component.file.strategy.FileProcessStrategyFactory
\ No newline at end of file
+class=org.apache.camel.component.file.NewFileComponent
+strategy.factory.class=org.apache.camel.component.file.strategy.NewFileProcessStrategyFactory
\ No newline at end of file

Where you just use the NewFileComponent and the New factory.


On Mon, Feb 2, 2009 at 3:54 PM, Aaron Crickenberger
<aaron.crickenber...@intalgent.com> wrote:
> On a slightly related tangent, I'm partly responsible for the hackish code
> in FileConsumer's (old) isUnchanged() method (
> https://issues.apache.org/activemq/browse/CAMEL-250).
>
> Camel 1.5's exclusiveReadLock feature is unfortunately still picking up
> files too early, so I have to fall back to the deprecated behavior.  This
> happens regardless of the file processing strategy (delete, rename, etc.)
> Is there any chance the hackish double-polling stuff can be put back in to
> 2.0 as a non-default file locking strategy?  I can take a crack at it, I
> just wasn't sure if the code was still in flux.
>
> - aaron
>
> On Mon, Feb 2, 2009 at 4:44 AM, Claus Ibsen <claus.ib...@gmail.com> wrote:
>
>> On Fri, Jan 30, 2009 at 5:40 PM, Aaron Crickenberger
>> <aaron.crickenber...@intalgent.com> wrote:
>> > I would hesitate if only because requiring a particular header seems off,
>> > are there other components that do the same?
>> >
>> > I haven't looked much at Camel 2.0's code, but it looks like camel-1.x's
>> > file component's "expression" property could support both scenarios.  Use
>> a
>> > default ${id} expression, but allow user to configure w/ a ${in.header}
>> > expression that barks if the header's not present, no?
>> That is correct.
>>
>> Thanks for the feedback. We will leave it as is.
>>
>> >
>> > - aaron
>> >
>> > On Fri, Jan 30, 2009 at 9:49 AM, James Strachan <
>> james.strac...@gmail.com>wrote:
>> >
>> >> So long as files are written in some directory and they are unique and
>> >> preserve order - does it matter if they are generated (from the
>> >> message ID say) or the user explicitly gives some name? Like Jon I'd
>> >> be tempted ot leave the default behaviour?
>> >>
>> >> 2009/1/30 Claus Ibsen <claus.ib...@gmail.com>:
>> >> > Hi
>> >> >
>> >> > As some of you know the file component have had a major refactor ...
>> >> > actually you can nearly consider it as a rewrite in Camel 2.0.
>> >> >
>> >> > This mail is about a few remaining issues I want to give a heads up
>> >> > upon and feedback:
>> >> >
>> >> >
>> >> > Force a filename to be provided when wring a file
>> >> > ====================================
>> >> >
>> >> > I want to force file producer always requiring a header value with the
>> >> > filename to write.
>> >> > What we have in Camel 1.x is that if no filename header is provided it
>> >> > will fallback to use the message id as the filename.
>> >> >
>> >> > For me that has no use, as its kinda like telling a database here is
>> >> > some data store it somewhere, without providing, schema, table, column
>> >> > names.
>> >> >
>> >> > So I want it to reject writing a file and report an exception that the
>> >> > filename is missing.
>> >> >
>> >> > The file language supports you if you want to use the message id as
>> >> > the filename. Just set the header value as: ${id}
>> >> >
>> >> > And also remove option: ignoreFileNameHeader
>> >> >
>> >> >
>> >> > Thoughts?
>> >> >
>> >> > --
>> >> > Claus Ibsen
>> >> > Apache Camel Committer
>> >> >
>> >> > Open Source Integration: http://fusesource.com
>> >> > Blog: http://davsclaus.blogspot.com/
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> James
>> >> -------
>> >> http://macstrac.blogspot.com/
>> >>
>> >> Open Source Integration
>> >> http://fusesource.com/
>> >>
>> >
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>>
>



-- 
Claus Ibsen
Apache Camel Committer

Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/

Reply via email to