What if you need only 1 exchange for the entire flatpack file? >> That's my idea because the content of the file must be processed as a >> whole
Header row1 row2 row3 ... row n Trailer and the information of the header/trailer are precious. Moreover, the definition of the file's structure (defining in a XML file) has no sense if the component create a message/line because in this case, flatpack must process globally the file. So, is it possible to adapt the behavior of the component to process all the content of the file ? Claus Ibsen wrote: > > Hi > > I see the current behaviour of the flatpack component is to create an > exchange for each line in the flatpack file. > > What if you need only 1 exchange for the entire flatpack file? > Before you say, you can use the aggregator, then yes but then I am not > sure when the total count so I can actually not aggregate them all. > > What if there was an option to specify if you want: > Option a) 1 exchange only with a List of Map with the data > Option b) as now 1 exchange pr. row with a Map as the data > > The atom component has a similar feature where you can configure either > option A or B. > > With this option it's easier for end-users to get what they want. Also if > possible we should have a total row count on the message as a header > option if possible. So you will now the current sequence and the total > number of rows, in the exchange you get. > > > > Med venlig hilsen > > Claus Ibsen > ...................................... > Silverbullet > Skovsgårdsvænget 21 > 8362 Hørning > Tlf. +45 2962 7576 > Web: www.silverbullet.dk > > -----Original Message----- > From: James Strachan [mailto:[EMAIL PROTECTED] > Sent: 15. juli 2008 20:52 > To: [email protected] > Subject: Re: Component to read FixedLength file ? > > FWIW I've just checked in a FlatpackDataFormat; which is a tad easier > to use. The downside is the data format kinda has to turn the DataSet > into a List of Maps to make it easier to work with; but at least the > routes are a bit simpler. e.g. this is from the > DelimitedWithUnmarshalTest (the convertBodyTo is not required > currently) > > <camelContext xmlns="http://activemq.apache.org/camel/schema/spring"> > <route> > <from uri="file://src/test/data/delim?noop=true"/> > <unmarshal ref="delimitedFormat"/> > <splitter> > <simple>in.body</simple> > <convertBodyTo type="java.util.Map"/> > <to uri="mock:results"/> > </splitter> > </route> > </camelContext> > > <bean id="delimitedFormat" > class="org.apache.camel.component.flatpack.FlatpackDataFormat"> > <property name="definition" value="INVENTORY-Delimited.pzmap.xml"/> > </bean> > > 2008/7/15 James Strachan <[EMAIL PROTECTED]>: >> Yeah - I did ponder if it should be a dataformat or a component; or >> maybe even both. The bit I wasn't sure about was flatpack really just >> provides an iterator over rows of the file; I wasn't sure if this >> properly matched the dataformat model of marshalling or unmarshalling >> a payload (which currently assumes that unmarshalling generates a >> single result). >> >> Maybe we need to enhance the dataformat concept to work with this use >> case too? >> >> So maybe if we want to process each row of a file we do something like... >> >> from("file://whatnot"). >> >> unmarshall().flatpack().fixed("locationOftheXMLConfigurationfile.pzmap.xml"). >> split().body(). >> to("whatever"); >> >> where the split().body() would do the iteration over each DataSet? >> >> >> 2008/7/15 Claus Ibsen <[EMAIL PROTECTED]>: >>> Hi >>> >>> Yes I thought also at first it was a dataformat ;) But how James created >>> it it works as if it is a dataformat. You just have to do it in to..from >>> from..to steps. >>> >>> >>> from("file://c:/test").to("flatpack:foo: >>> locationOftheXMLConfigurationfile.pzmap.xml"); >>> >>> from("flatpack:foo").to("whatever you want"); >>> >>> As a component it gets more attention, as people can find it on the >>> component list. The dataformats are kinda hidden in the wiki >>> documentation. >>> Maybe they need a "dataformat" top menu as well ;) >>> >>> Med venlig hilsen >>> >>> Claus Ibsen >>> ...................................... >>> Silverbullet >>> Skovsgårdsvænget 21 >>> 8362 Hørning >>> Tlf. +45 2962 7576 >>> Web: www.silverbullet.dk >>> >>> -----Original Message----- >>> From: cmoulliard [mailto:[EMAIL PROTECTED] >>> Sent: 15. juli 2008 09:32 >>> To: [email protected] >>> Subject: Re: Component to read FixedLength file ? >>> >>> >>> Many thanks. >>> >>> I will test the integration of this component within Camel. >>> >>> Remark : I'm a little confused about how Flatpack has been integrated. >>> The >>> project has been integrated like a component but from my point of view, >>> it >>> should be integrated (for consistency reason) like a Dataformat. Because >>> like the other framework/technology implemented in Camel (JAXB, Artix, >>> XStream, ....), they transform the content from a format (XML, CSV, ...) >>> into another format (Collection of Java objects) >>> >>> E.g. >>> >>> DataFormat flatpack = new >>> DataFormat("locationOftheXMLConfigurationfile.pzmap.xml.xml") >>> >>> from("file:///c:/test") >>> .unmarshall(flatpack) >>> .to("whatever you want") >>> >>> Regards, >>> >>> Charles >>> >>> >>> >>> James.Strachan wrote: >>>> >>>> BTW trunk has an early spike of a flatpack component. Needs more work, >>>> but there's a basic fixed-width reader example there for the curious >>>> >>>> 2008/7/14 James Strachan <[EMAIL PROTECTED]>: >>>>> I've raised a JIRA to track this... >>>>> https://issues.apache.org/activemq/browse/CAMEL-717 >>>>> >>>>> 2008/7/14 James Strachan <[EMAIL PROTECTED]>: >>>>>> 2008/7/14 cmoulliard <[EMAIL PROTECTED]>: >>>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> Is there a component expected to read fixedlength files in Camel >>>>>>> like >>>>>>> flatpack (http://flatpack.sourceforge.net/) allow to do it ? >>>>>> >>>>>> It should be pretty easy to write a flatpack component. >>>>>> >>>>>> there's a commercial tool called Artix Data Services which comes with >>>>>> a nice design UI that does this with Camel... >>>>>> http://activemq.apache.org/camel/artix-data-services.html >>>>>> >>>>>> but it'd be nice to have an OSS option :) >>>>>> >>>>>> -- >>>>>> James >>>>>> ------- >>>>>> http://macstrac.blogspot.com/ >>>>>> >>>>>> Open Source Integration >>>>>> http://open.iona.com >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> James >>>>> ------- >>>>> http://macstrac.blogspot.com/ >>>>> >>>>> Open Source Integration >>>>> http://open.iona.com >>>>> >>>> >>>> >>>> >>>> -- >>>> James >>>> ------- >>>> http://macstrac.blogspot.com/ >>>> >>>> Open Source Integration >>>> http://open.iona.com >>>> >>>> >>> >>> >>> ----- >>> Enterprise Architect >>> >>> Xpectis >>> 12, route d'Esch >>> L-1470 Luxembourg >>> >>> Phone +352 25 10 70 470 >>> Mobile +352 621 45 36 22 >>> >>> e-mail : [EMAIL PROTECTED] >>> web site : www.xpectis.com >>> -- >>> View this message in context: >>> http://www.nabble.com/Component-to-read-FixedLength-file---tp18444614s22882p18459545.html >>> Sent from the Camel - Users mailing list archive at Nabble.com. >>> >>> >> >> >> >> -- >> James >> ------- >> http://macstrac.blogspot.com/ >> >> Open Source Integration >> http://open.iona.com >> > > > > -- > James > ------- > http://macstrac.blogspot.com/ > > Open Source Integration > http://open.iona.com > > ----- Enterprise Architect Xpectis 12, route d'Esch L-1470 Luxembourg Phone +352 25 10 70 470 Mobile +352 621 45 36 22 e-mail : [EMAIL PROTECTED] web site : www.xpectis.com -- View this message in context: http://www.nabble.com/Component-to-read-FixedLength-file---tp18444614s22882p18488887.html Sent from the Camel - Users mailing list archive at Nabble.com.
