FFPOJO Framework Overview

942 views

Published on

This presentation is an overview about FFPOJO Project, a pojo based text file parser library for Java applications.

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

FFPOJO Framework Overview

  1. 1. Gilberto Augusto Holms<br />gibaholms85@gmail.com<br />@gibaholms<br />http://gibaholms.wordpress.com/<br />FFPOJO Framework Overview<br />Revision: 01<br />
  2. 2. About me...<br />Gilberto Augusto Holms<br /><ul><li>Java and SOA Architect
  3. 3. Expertise: Java, EAI, SOA, BPEL, BPM, Oracle FusionMiddleware
  4. 4. Interests: OpenSource, Artificial Intelligence, Innovation
  5. 5. Twitter: @gibaholms
  6. 6. Blog: http://gibaholms.wordpress.com/
  7. 7. SCJA, SCJP, SCWCD, SCBCD, SCDJWS, OCE WLP 10g</li></li></ul><li>Text Files and Tabular Information<br /><ul><li>Mostcommonandoldway for informationexchange
  8. 8. Platformindependent
  9. 9. ASCII Format
  10. 10. Fastaccess to data (no types, protocolsor envelopes)
  11. 11. Simple to create
  12. 12. Simple to consume
  13. 13. Lightweight
  14. 14. Widelyusedtoday</li></li></ul><li>CommonTroubles<br /><ul><li>A lotofparsingcode, less business code
  15. 15. Hard to maintain
  16. 16. Littlechange to layout  big change to code
  17. 17. Encouragesprocedural approach
  18. 18. Code replication
  19. 19. Lackofstandards
  20. 20. Easy to makemistakes
  21. 21. Hard to test
  22. 22. A big mess</li></li></ul><li>FFPOJO Framework<br /><ul><li>Abstraction
  23. 23. Standardization
  24. 24. Simplicity
  25. 25. Cleanliness
  26. 26. Maintainability
  27. 27. ObjectOriented approach
  28. 28. Additionalfeatures</li></li></ul><li>FFPOJO Framework – AdditionalFeatures<br /><ul><li>Supportsdelimited, positionalandmixed layout files
  29. 29. Annotations and/or XML mappings, with overridding
  30. 30. Metadatainformationcaching (performance)
  31. 31. Manyabstractionlevels (string, file, processor)
  32. 32. Customtyping (“decorators”)
  33. 33. File Writerand File Readerobjectabstractions
  34. 34. Optional use of NIO
  35. 35. Complex files support, with Header, BodyandFooterconcepts
  36. 36. Can work on “push” style (processorconcept)
  37. 37. Built-inmultithreadingsupport
  38. 38. Lightweight (no extra API dependencies)</li></li></ul><li>Easy to Use<br /><ul><li>Create a record POJO andannotate it (positionalordelimited)
  39. 39. Annotate POJO getterstoo
  40. 40. Makeyour parses (lowlevelexample, string abstraction)</li></ul>@PositionalRecord<br />publicstaticclassCustomer {<br />private String name;<br />private String email;<br /> ...<br />@PositionalField(initialPosition = 6, finalPosition = 25)<br />public String getName() {<br />returnname;<br />}<br />...<br />@PositionalField(initialPosition = 26, finalPosition = 55)<br />public String getEmail() {<br />returnemail;<br />}<br />while ( (line = reader.readLine()) != null) {<br />Customercust = ffpojo.createFromText(Customer.class, line);<br />}<br />Text-To-Pojo<br />Pojo-To-Text<br />String line = ffpojo.parseToText(customer);<br />
  41. 41. <ul><li>FFPOJO Project Site: https://github.com/gibaholms/ffpojo/
  42. 42. Authors Blog: http://gibaholms.wordpress.com/
  43. 43. AuthorsTwitter: @gibaholms</li></ul>Thanks !<br />gibaholms85@gmail.com<br />More InformationandSamples<br />

×