@Pyknic Pyknic released this Oct 18, 2016 · 1460 commits to master since this release

Assets 5

This release contains the following new features over 2.3.7:

Reworked API - Entities are stand-alone and does not have to have a Speedment instance - Easier integration with other tools (e.g. gson) and reduced complexity.

Modularized system - Easier to understand and maintain the code and makes it possible to depend on the parts your application need.

Single JAR dependency with runtime-deploy

Support for primitive types in entities. Even for nullable columns, for example using OptionalLong or OptionalInt.

More advanced UI showing warnings and tips as well as an issue dialog to resolve potential config issues

New withLogging() methods for easy SQL logging of database operations

Updated wikis on GitHub

New Maven goals:
clear - Allows the user to remove all generated code from the project (e.g. for versioning)
reload - Makes it possible to re-load metadata from the database with no UI (e.g. command line)

Track changes in generated files using hash codes. This allows protection for manually overridden classes and allows renaming of tables in the UI and they will be appropriately moved to the new location.

Custom packaging: Entities, Managers and Application classes can be placed anywhere individually.

New type system allowing mapping to primitive types, arrays, enums etc.

Fixed bugs:

#274 Remove .stream()-method from Document interface
#271 Improve tests of generated fields
#270 Generated primitive field predicates produce erronous operators
#269 Generated field declaration is too wide
#268 Go through all fonts to make sure only bundles fonts are used
#267 Add checkmarks to active options in the Window menu
#266 Problematic usage of app.configure()
#260 LongForeignKeyFieldImpl does not have trait HasFinder - needed by JsonEncoderImpl.put
#256 Update the Spring plugin to latest version of Spring
#255 Consider making DefaultJavaClassTranslator public in the API
#254 Problematic namespace for runtime shader map
#251 Nullable int foreign key gives error in generated code bug
#250 JDBC type is not seen in Tool
#248 Fix wikis so that they are updated to 3.x
#246 Expose import com.speedment.runtime.internal.stream.parallelstrategy.ConfigurableIteratorSpliterator in the API
#243 JavaDoc not updated to 3.0.0-EA version on github
#242 Remove icon dependencies
#241 SpeedmentVersion and InfoComponent does not always specify the same version
#240 checkDatabaseConnectivity() doesn't actually check connectivity
#237 When using the standard ConnectionPool, stale data can be seen for MySQL
#235 Add way to see what SQL queries are sent in a simple way enhancement fixed
#233 Disable editing of database details by misstake
#232 Decide if nullable column should be Optional or Wrapper in the UI
#231 More String Comparison Operators
#230 Create maven goal that clears any generated files
#229 UI Workspace area should show name of document being edited
#228 Logger listeners might not be transferred to loggers
#227 Investigate if TypeMapperComponent can be moved to Generator
#226 If table starts with protected name, show warning
#225 If alias is not auto and database name is changed, the alias is changed anyway
#223 If translator is removed, a null pointer exception might be thrown during generation
#222 Print better error messages when primary key is missing
#217 Inconsistent label naming in UI and label not shown
#213 Clean up the SpeedmentImpl class
#212 Speedment.get should return Optional
#211 Rethink the listener system
#209 Remove speedment()-method from entities
#208 CodeGen: Interface methods can't have generic types
#203 Cancel button does not work when parsing database metadata
#202 The default database name is not used in the UI
#201 Separate Application into builder and instance
#198 Uncompilable code when using arrays in type mappers
#196 count() does not optimize pipelines with filters
#189 Add getDescription() to the Component interface
#181 Use Java 8 Instant for time mapping