git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: csv data format with ordered maps


Thx, In newer camel versions it is indeed public. Unfortunately, I
can't upgrade right now

2018-03-07 16:45 GMT+01:00 Claus Ibsen-2 [via Camel]
<ml+s465427n5818251h55@xxxxxxxxxxxxx>:
> Hi
>
> I logged a ticket and implemented this
> https://issues.apache.org/jira/browse/CAMEL-12332
>
> The CsvRecordConverter is a public interface from camel-csv. You can
> implement your own, and configure on the dataformat
>
> On Wed, Mar 7, 2018 at 4:26 PM, Dennis Holunder <[hidden email]> wrote:
>
>> But you could make CsvRecordConverter public, so I could implement the
>> mapper myself. Or you implement converting of CSVRecord to
>> LinkedHashMap, shouldn't be a big deal
>>
>> 2018-03-07 16:17 GMT+01:00 Claus Ibsen-2 [via Camel]
>> <[hidden email]>:
>>> Hi
>>>
>>> Ah okay that is unfortunately in the commons-csv implementation. You
>>> would need to report this to them.
>>>
>>> Sadly there is no way to get the mapping on CSVRecord so we can get
>>> the column headers (we could maybe do some reflection as workaround).
>>>
>>> On Wed, Mar 7, 2018 at 3:29 PM, Dennis Holunder <[hidden email]> wrote:
>>>
>>>> in camel-csv component
>>>> CsvRecordConverters.mapConverter().convertRecord(CSVRecord record)
>>>>
>>>> it calls CSVRecord.toMap() which returns HashMap but CSVRecord is in
>>>> org.apache.commons.csv
>>>>
>>>> would be great if you could change it.
>>>>
>>>>
>>>>
>>>>
>>>> 2018-03-07 13:13 GMT+01:00 Claus Ibsen-2 [via Camel]
>>>> <[hidden email]>:
>>>>> Hi
>>>>>
>>>>> Can you point to where it creates HashMap, maybe we can change that to
>>>>> LinkedHashMap.
>>>>>
>>>>> On Wed, Mar 7, 2018 at 12:08 PM, Dennis Holunder <[hidden email]>
>>>>> wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I need a CSV record mapper which would use maps, but ordered ones,
>>>>>> because I need the name of the first header field. Current
>>>>>> implementation creates HashMaps, where the original order is lost.
>>>>>>
>>>>>> I tried to implement my own CsvRecordConverter to produce ordered map,
>>>>>> but the interface is not public. This is not expected,
>>>>>> CsvDataFormat.setRecordConverter has a public setter accepting this
>>>>>> interface.
>>>>>>
>>>>>> Any workarounds?
>>>>>>
>>>>>> Den
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Claus Ibsen
>>>>> -----------------
>>>>> http://davsclaus.com @davsclaus
>>>>> Camel in Action 2: https://www.manning.com/ibsen2
>>>>>
>>>>>
>>>>> ________________________________
>>>>> If you reply to this email, your message will be added to the
>>>>> discussion
>>>>> below:
>>>>>
>>>>>
>>>>> http://camel.465427.n5.nabble.com/csv-data-format-with-ordered-maps-tp5818212p5818215.html
>>>>> To unsubscribe from Camel, click here.
>>>>> NAML
>>>
>>>
>>>
>>> --
>>> Claus Ibsen
>>> -----------------
>>> http://davsclaus.com @davsclaus
>>> Camel in Action 2: https://www.manning.com/ibsen2
>>>
>>>
>>> ________________________________
>>> If you reply to this email, your message will be added to the discussion
>>> below:
>>>
>>> http://camel.465427.n5.nabble.com/csv-data-format-with-ordered-maps-tp5818212p5818245.html
>>> To unsubscribe from Camel, click here.
>>> NAML
>
>
>
> --
> Claus Ibsen
> -----------------
> http://davsclaus.com @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>
>
> ________________________________
> If you reply to this email, your message will be added to the discussion
> below:
> http://camel.465427.n5.nabble.com/csv-data-format-with-ordered-maps-tp5818212p5818251.html
> To unsubscribe from Camel, click here.
> NAML



( ! ) Warning: include(msgfooter.php): failed to open stream: No such file or directory in /var/www/git/apache-camel-users/msg03130.html on line 187
Call Stack
#TimeMemoryFunctionLocation
10.0007368664{main}( ).../msg03130.html:0

( ! ) Warning: include(): Failed opening 'msgfooter.php' for inclusion (include_path='.:/var/www/git') in /var/www/git/apache-camel-users/msg03130.html on line 187
Call Stack
#TimeMemoryFunctionLocation
10.0007368664{main}( ).../msg03130.html:0