Skip to content

SimpleFlatMapper v1.4.1

Arnaud Roger edited this page Feb 1, 2015 · 3 revisions

SimpleFlatMapper provides fast and easy to use mapper for

It also provides one of the fastest csv parser available.

v1.4.1

Issues 1.4.1

Issues 1.4.0

Csv

  • Joda DateTime, LocalDate, LocalTime, LocalDateTime supports
  • can provide on CellValueReaderFactory
  • can specify CsvColumnDefinition via a predicate
CsvMapperFactory
    .newInstance()
    .addColumnDefinition(
        (k) -> k.getName().endsWith("_date"), 
        CsvColumnDefinition.dateFormatDefinition("yyyyMMdd")
    ).newMapper(MyObject.class)
  • add convenience method to override the headers
CsvParser
    .mapTo(String.class, String.class)
    .overrideWithDefaultHeaders()
    .iterate(new StringReader("key,value\nvalue1,value2"));

CsvParser.mapTo(String.class, String.class)
    .defaultHeaders()
    .iterate(new StringReader("value1,value2"));

JdbcMapper

  • Joda DateTime, LocalDate, LocalTime, LocalDateTime supports
  • can specify CsvColumnDefinition via a predicate
JdbcMapperFactory
    .newInstance()
    .addColumnDefinition(
        (k) -> k.getName().endsWith("_date"), 
        columnDefinition)
    ).newMapper(MyObject.class)

v1.3.0

Issues

CsvMapper

  • allow for field customisation date format or custom reader
CsvMapperFactory
    .newInstance()
    .addColumnDefinition("date", CsvColumnDefinition.dateFormatDefinition("yyyyMMdd")
    .newMapper(MyClass.class);

CsvMapperFactory.newInstance()
    .newBuilder(MyClass.class)
    .addMapping("date", CsvColumnDefinition.dateFormatDefinition("yyyyMMdd")
    .mapper();
  • support tuple on the csv dsl
CsvParser.mapTo(String.class, Date.class).stream(reader);

JdbcMapper

  • allow for getter customisation
JdbcMapperFactory.newInstance().addCustomGetter("id", getter).newMapper(MyClass.class);

Mapping

  • support java lang type as root object
CsvParser.mapTo(String.class).stream(reader);

Sql2o integration

Query query = sql2o.open().createQuery("select * from table");
query.setResultSetHandlerFactoryBuilder(new SfmResultSetHandlerFactoryBuilder());
List<DbObject> dbObjects = query.executeAndFetch(DbObject.class);

v1.2.0

Issues

CsvMapper

Reflection

  • detect class loader visibility issues automatically
  • fix issue with instantiator cache

Osgi

  • remove osgi services and activator as now class loader issue automatically detected
  • disable asm in osgi as classloader issue of bundles being refresh it's not worth it for now

JdbcMapper

  • allow change of row handler error handler

v1.1.0

Issues

  • tuple support
  • support generic type resolution
  • index discovery
  • customizable separator and quote character for csv parser
  • unescaping is now responsibility of the parser
  • easier api to use the csv parser directly
  • more stable performance accross csv size and version

v1.0.0

  • move buffer index to charconsumer in csv parser

v1.0.0rc2

  • add streams and iterator to csvparser
  • provide own impl of spliterator for faster streams
  • refactor skip and limit for csv for faster parsing and easier maintenance

v1.0.0b3

  • add streams and iterator to jdbc and csv
  • add JPA @Column support

v1.0.0b2

  • support for array of object
  • support mapping sql Array to List

v1.0.0b1

  • add Jooq Integration
  • add support for all resultset return types.
  • restructure the packages to make javadoc more readable
  • move mapper readme content to their own package

v0.9.14

  • JdbcMapper if a column is map to a property of object, it will try to look for one argument constructor that matches the column type.
  • CsvMapper if a column is map to a property of object, it will use a one argument constructor if it's the only constructor.

v0.9.12

  • CsvMapper remove performance degradation with TieredCompilation

v0.9.11

CsvMapper

  • improve performance of unescaping.
  • support CR CRLF and LF for end of line.
  • handle space in header name.
  • fix miss mapping issue when a mapping error occured.
  • change default parser buffer size

v0.9.8

  • Asm
  • fix concurrency issue that triggered LinkageError
  • JdbcMapper
  • increase perf to outperform Roma with the static mapper
  • change benchmark to match roma result set loop
  • fix for custom field mapping and primitive
  • CsvMapper
  • add dynamic csv mapper that configure it self based on the row
  • add support for aliases and custom readers
  • ability to customized date format
  • add a Parsing Context to store the DateFormat per parsing.
  • remove byte array based parsing as benchmark so it would only be rarely lead to perf gain
  • fix for custom mapper
  • simplify parsing code

v0.9.4

  • CsvMapper
  • non boxing mapping
  • constructor injection
  • inner object
  • direct byte parsing

v0.9.3

  • extract common part of MapperBuilder
  • add Query DSL Jdbc support
  • move test to orm-benchmark
Clone this wiki locally