------------------------------------------------------------------------------- Version 1.2.2: Announcements: 1. CommentGenerator interface has changed 2. Ibator is now built with Maven 3. Added support for iBATIS version 3 Bugs: 1. Fixed NPE when no DAOs are generated 2. Fixed IBATIS-579 - don't allow column names with spaces to break across lines 3. Fixed NPE and incorrect calculation in generated equals when certain fields are null - thanks to Benjamin Klatt for finding this bug 4. Fixed IBATIS-601 - improper validation of 5. Fixed IBATIS-609 - incorrect parsing of Java generic types 6. Fixed spelling error LONCVARCHAR->LONGVARCHAR (thanks Allard) 7. Fixed IBATIS-731 - change name of primary key variable to avoid conflicts 8. Fixed IBATIS-699 - Overwrite unmergeable XML files if enabled 9. Fixed issue where insertSelective failed if there is a sequence generating the primary key (issue only with iBATIS3) Enhancements: 1. IBATIS-569 - Make it easier to override IbatorRules in plugins 2. IBATIS-571 - Added "autoDelimitKeywords" support to 3. IBATIS-577 - Define SQL fragments for column lists. Thanks to Iwao AVE! for the idea and the initial patch 4. Added some additional command line arguments 5. Added logging 6. Added Case Insensitive LIKE example Plugin 7. Added delimitAllCoumns to table configurations 8. Added page describing some of PostgreSQL idiosyncracies with Ibator 9. IBATIS-586 - Added the ability to specify nested property elements on columnOverrides (thanks to Dan Turkenkopf for the idea and a nice initial patch) 10. Gather column comments during introspection 11. IBATIS-592 - Additional attributes for SqlMaps 12. Fixed addCriterionforJDBC* methods so that they all do a null check 13. Fixed IbatorRunner so that configuration errors are shown (thanks to Karel Rank) 14. Added XML ids to changeable attributes on introspected table, also change the XML merger so that the XML ids no longer need to contain the prefix "ibatorgenerated_" 15. Many refactorings to make way for iBATIS3 16. IBATIS-605 - Added Informix Dialect 17. Added ability to set annotations on method parameters 18. Addedd support for "distinct" on select by example methods 19. Added new "or" method to example classes 20. Added new "useCompoundPropertyNames" property on 21. Further improved extensibility of the example classes 22. EqulasHashCodePlugin now generates far superior methods ------------------------------------------------------------------------------- Version 1.2.1: Bugs: 1. Fixed IbatorObjectFactory so that it will find internal classes on the context classloader. 2. Fixed IBATIS-565 - ill formed comment in the SqlMapConfigPlugin. Enhancements: 1. Modified plugin methods for model fields, getters, and setters so that the plugin will know which type of class (Primary Key, Base Record, or Record with BLOBs) is being generated. 2. Added methods to IntrospectedTable to get/set attributes. This allows plugin classes to maintain table based state between plugin calls. 3. Added "initialized" method to the plugin API. This allows plugins to alter some of the fundamental code generation items (like the name of a generated class, for example). 4. Added an example plugin to show usage of the "initialized" method. ------------------------------------------------------------------------------- Version 1.2.0: Renamed to Ibator Bugs: 1. Fixed the JavaTypeResolver so that an unsupported data type can be overridden by configuration. 2. Fixed IBATIS-523 - bug in EqualsHashCodePlugin 3. Fixed IBATIS-542 - upgrade build to Ant 1.7.1 Enhancements: 1. Ibator now includes a plugin machanism that you can use to extend or modify code generated by Ibator. In most cases, you should be able to write plugins to replace any custom classes that subclass one of ibator's built-in generators. Plugins are now the preferred method for extending Ibator and we recommend that you do not extend Ibator's built in generators unless absolutely necessary. 2. Major refactoring of Ibator internals. This has changed the interface for overriding any of the supplied Ibator generators. 3. Added support for runtimeCatalog and runtimeSchema properties to the table configuration. Thanks to Dan Turkenkopf for the idea and the patch! 4. New method - insertSelective Changes: 1. JSE 5.0 or greater is required 2. Changed and centralized classloading - moved the from the element to , removed the rootClasspath property from 3. Changed API on the JavaTypeResolver interface 4. Removed Legacy generator set 5. Removed after generation hook methods in favor of the new ibator plugin mechanism. 6. elements now require an id ------------------------------------------------------------------------------- Version 1.1.0: Bugs - 1. corner case where the new "by example" methods fail if a criteria class has been added to the list, but there are no criteria set 2. trimStrings on JavaModelGenerator not working 3. Fix the XML file merger so that entities are preserved 4. Fixed the configuration parser so that it correctly deals with external entities 5. IBATIS-434 - Incorrect default mapping for BIT datatype 6. Fixed bug where Abator generated incorrect properties for certain database columns (for example, if the column name is I_NAME) Enhancements - 1. IBATIS-348 - escape column names with $ or #, and ignore special characters for generated Java properties by default 2. Add "clear" method to generated example classes in the Java2/Java5 generator sets 3. Add support for "ignoreQualifiersAtRuntime" and "runtimeTableName" on the
configuration - this makes it easier to deal with tables that are behind public aliases. 4. Added support for persisting a configuration to XML - this to enable a graphical editor in the future 5. Add afterXXXGenerationHook() methods in all generators to enable adding extra Java code or XML elements to any generated object. This will make it easier to create customized generators 6. Added SYBASE database dialect for generated keys 7. Added the ability to specify that resultMaps should use column indexes rather than column name. This is necessary in poorly designed tables where column names differ only in case. This may also improve performance. 8. Added the ability to work with delimited names in database tables or columns. 9. API change to allow generating with selected contexts rather than the entire config file. 10. API change to allow generating with selected tables rather than the entire config file. 11. Exposed new support for selecting tables and/or contexts to the command line and the Ant task 12. IBATIS-414 - make the Example and Criteria classes extendable 13. Added countByExample generated method 14. Added updateByExample generated method 15. Java2 is now the default generator set 16. IBATIS-470 - make legacy DAOs extendable 17. IBATIS-468 - add 18. Added DB2 Main Frame database dialect for generated keys 19. Allow rootClass and rootInterface to be specified at the table level 20. Allowed specifying a type (pre or post) for the generatedKey element. 21. Added a comment generator interface 22. Abator will not generate model properties that would override properties in a rootClass. Thanks to Ashok Madhavan for the beginnings of this code. ------------------------------------------------------------------------------- Version 1.0.0: 1. Major refactoring of code generators to use new DOM classes. This makes adding and extending code generators much easier. 2. Added a new set of code generators that take advantage of iBATIS' new support for nested iterate tags. 3. Added another new set of code generators that take advantage of iBATIS' new support for nested iterate tags, and builds code that uses many JSE 5.0 features including parameterized types and annotations. 4. Added support for "alias" on table configuration 5. Fixed the XML file merger so that extraneous blank lines in an XML merge are removed 6. Major overhaul and improvement of the documentation 7. Added a typeHandler attribute to 8. Added exampleMethodVisibility as a property for the DAO generator 9. Added methodNameCalculator as a property for the DAO generator 10. Added the ability to specify wildcards for schema and/or tableName in
11. Added the ability to suppress type warning messages in a JSE 5.0 environment 12. Added the ability to specify different types of domain models 13. Added the "verbose" attribute to the Ant task 14. Allowed the Ant task to accept a property set 15. Added a element to the XML configuration For full details, see the user's guide at doc\index.html in this distribution - then look at the "What's New" page. ------------------------------------------------------------------------------- Version 0.6.5: 1. Added support for specifying rootClass for the model objects and rootInterface for the DAO interface. To use, specify the "rootClass" optional property on the element, or the "rootInterface" optional property on the element. For example: Note that Abator uses these values "as is" - no checking is done to validate their existence or validity. 2. Refactored code generation rules and added better documentation for the rules (see new org.apache.ibatis.abator.internal.rules package) 3. Ensure that property names are valid for iBATIS even if the user specifies "useActualColumnNames" 4. Added JDBC types for DATE and TIME fields to the mapping properties in the by example where clause fragment 5. Externalized all message strings 6. Abator will now survive if the JDBC driver does not support the getPrimaryKeys() function - but with reduced function ------------------------------------------------------------------------------- Version 0.6.1: 1. Added support for running Abator from the command line 2. Fixed bug: NPE when specifies an unknown column 3. Fixed bug: getExampleParms method in generated DAO can grow so enormous that it can't be compiled. The fix is to break it into smaller methods. 4. Implemented an "iBATIS-like" Ant build ------------------------------------------------------------------------------- Version 0.6.0: 1. Restructured as a standalone JAR file with no Eclipse dependencies 2. Added an Ant task 3. Added support for wrapping primitive data types in the "by example" methods 4. Removed dependency on JDOM 5. Greatly improved extensibility of the default code generators 6. Added support for discovering the case sensitivity of the database in regard to table names. ------------------------------------------------------------------------------- Version 0.5.0: Initial Release - as an Eclipse plugin only