speedment

Speedment is a Stream ORM Java Toolkit and Runtime

APACHE-2.0 License

Stars
2.1K

Bot releases are hidden (Show)

speedment - 3.0.8 Forest

Published by minborg over 7 years ago

New Features

This release contains the following new features:

  • Count will now benefit from all other Optimizers

Example Stream count optimization

countries.stream()
     .filter(Country.ISO3.greaterThan("B"))
     .filter(Country.ISO3.isNotEmpty())
     .sorted(Country.ISO3.comparator().reversed())
     .sorted(Country.ISO3.comparator())
     .skip(2)
     .skip(1)
     .limit(10)
     .count(),

will be rendered to :

SELECT count(*) from (
    SELECT `id`,`abbrevation`,`name`,`full_name`,`iso3`,`number`,`region`
        FROM `speedment_test`.`country` 
    WHERE 
        (`speedment_test`.`country`.`iso3` > ? COLLATE utf8_bin) AND 
        (`speedment_test`.`country`.`iso3` <> '') 
    ORDER BY `speedment_test`.`country`.`iso3` ASC 
    LIMIT ? OFFSET ?
) AS A, values:[B, 10, 3]

Fixed bugs


#369 Verify Speedment with Java9
#263 Tool: Remove FontAwesome Dependency
#384 Consumed Streams can be re-used
#421 Add package-info.java files to new packages
#426 count() optimization does not take other optimizers into account
#385 Override asFunction() in primitive classes like IntGetter and LongGetter

speedment - 3.0.7 Forest

Published by minborg over 7 years ago

New Features

This release contains the following new features:

  • SQL Rendering of LIMIT giving improved performance.
  • SQL Rendering of Predicates composed with the .or AND .and operators
  • Added TypeMapper for Blob to byte array
  • Improved performance with immutable predicates

Example of the imposed Stream optimizer

countries.stream()
     .filter(Country.ISO3.greaterThan("B"))
     .filter(Country.ISO3.isNotEmpty())
     .sorted(Country.ISO3.comparator().reversed())
     .sorted(Country.ISO3.comparator())
     .skip(2)
     .skip(1)
     .limit(10),

will be rendered to :

SELECT `id`,`abbrevation`,`name`,`full_name`,`iso3`,`number`,`region`
    FROM `speedment_test`.`country` 
WHERE 
    (`speedment_test`.`country`.`iso3` > ? COLLATE utf8_bin) AND 
    (`speedment_test`.`country`.`iso3` <> '') 
ORDER BY `speedment_test`.`country`.`iso3` ASC 
LIMIT ? OFFSET ?, values:[B, 10, 3]

Note how consecutive skips are added and how redundant comparators that refer to the same column are eliminated.

Fixed bugs


#404 Port don't update in GUI
#412 Update and Delete may succeed without error, even if nothing was changed
#403 Java9: Test Stream::takeWhile and Stream::dropWhile
#417 How to deal with crowded tables (a.k.a actual tables on production systems)
#411 Generated fields and primary key fields are not in ordinalPosition order
#418 Make AbstractPredicate immutable
#413 Add limit() to the stream optimizer FilterSortedSkipOptimizer
#390 Java9: Allow Stream::iterator and Stream::spliterator in Speedment Streams
#389 Optimize Predicate::or SQL rendering
#195 Predicate combination improvement request

speedment - 3.0.6 Forest

Published by minborg over 7 years ago

New Features

This release contains the following new features:

  • SQL Rendering of more advanced Streams with filter, sorted and skip operators.
  • MySQL is using COLLATION instead of BINARY improving performance for String column searches.
  • MySQL added support for geometric columns
  • Re-styled tool (UI)

Example of the new Stream optimizer

countries.stream()
     .filter(Country.ISO3.greaterThan("B"))
     .filter(Country.ISO3.isNotEmpty())
     .sorted(Country.ISO3.comparator().reversed())
     .sorted(Country.ISO3.comparator())
     .skip(2)
     .skip(1),

will be rendered to :

SELECT `id`,`abbrevation`,`name`,`full_name`,`iso3`,`number`,`region`
    FROM `speedment_test`.`country` 
WHERE 
    (`speedment_test`.`country`.`iso3` > ? COLLATE utf8_bin) AND 
    (`speedment_test`.`country`.`iso3` <> '') 
ORDER BY `speedment_test`.`country`.`iso3` ASC 
LIMIT 223372036854775807 OFFSET ?, values:[B, 3]

Note how consecutive skips are added and how redundant comparators that refer to the same column are eliminated.

Fixed bugs


#399 Count Pipeline not Always Optimized
#378 Logger formatting error
#387 Speedment Plugin does not use proper JSON file location

speedment - 3.0.5 Forest

Published by minborg over 7 years ago

New Features

This release contains the following new features:

  • Added support for UNSIGNED SQL datatypes
  • New LogType that can log handling of Connections

Fixed bugs


#370 Error building Speedment in JDK 9
#362 Out of range value for column (UNSIGNED)
#336 withSchema() does not work
#372 withConnectionUrl() does not work
#291 Speedment with TomEE

speedment - 3.0.4 Forest

Published by minborg over 7 years ago

New Features

This release contains the following new features:

  • Update to latest PostgrSQL driver (42.0.0)
  • Optimized Sql Adapter read from ResultSet code generation
  • Improved FieldComparator implementations
  • Improved documentation on Blob and Clob handling (Wiki)

Fixed bugs


#361 FieldComparator is not immutable
#288 Stale Blob and Clob
#272 Static imports to the same package gets removed by CodeGen
#358 FieldComparator.reversed() should always return a FieldComparator
#234 Spurious fail in test
#356 NullPointerException when "reloading" in GUI(TOOL)
#339 Reload database fails
#355 NullPointerException when not including ".withPassword("1234")"
#353 Wrong Port is used when connecting to MySql database
#313 Optimize SqlAdapter code generation
#238 Indeterministic order of generated interface methods
#348 Tests fail if executed from Travis server
#345 Got exception when generating new table in existing database MariaDB

speedment - 3.0.3 Forest

Published by minborg over 7 years ago

New Features

This release contains the following new features:

  • Simplified configuration of Speedment Maven Plugin. No JDBC dependency needed
  • Improved WIKI and Tutorials
  • Improved error diagnostics for Speedment Maven Plugin. Exceptions shown in log
  • Print out which .json-file configuration was saved to
  • Better naming of Injector methods
  • Injector: Act on multiple components before they are built
  • Json: Show line and column number when encountering error while deserializing
  • Json: Show unicode codepoint when encountering illegal character in Json

Fixed bugs


#332 Better naming of Injector methods
#328 Json: Error parsing negative numbers
#319 Very large ResultSets can result in out of memory
#330 Methods like withSchema() does not take effect
#320 Old MySQL driver is used even if 6.0.x is specified
#321 Tool saves config even if an issue was discovered bug fixed
#322 A Timer thread prevents the Speedment instance from being closed automatically
#315 Can't connect without a password
#316 Exceptions in AbstractDbmsMetadataHandler are not thrown
#314 Some API packages lack documentation

speedment - 3.0.2 Forest

Published by minborg over 7 years ago

New Features

This release contains the following new features:

  • New configuration tag in the POM for configuring the speedment maven plugin
  • New TypeMappers:
    • Double to Float
    • Long to Int
    • Long to Short
    • Long to Byte
    • Int to Short
    • Int to Byte
    • Short to byte
  • Support for MySQL JDBC connector version 6.x
  • Prettier code output from the code generator

Fixed bugs


#309 Make it possible to configure Injector parameters in the pom.xml
#307 Injector.inject() does not set @Config-parameters
#306 Make classloader configurable in injector
#305 Can't use project as dependency in speedment-maven-plugin
#300 UI warns when schema is named "Speedment" enhancement fixed
#299 Error when outputting to log
#297 SqlAdapter is generated with compilation error when using custom primitive TypeMapper
#295 Bug where injector is not run until after decorators have been applied to translators
#294 CodeGen: Make it possible to override methods in Enum Constants
#289 postgresql autoIncrement bug
#286 count() is optimized when there is a filter with a general lambda predicate in the pipeline
#279 ApplicationBuilder, with-configs should use identifier
#221 org.postgresql.util.PSQLException: Bad value for type long
#261 JavaLanguageNamer missing JavaDoc
#259 Compability issue with later versions of MySQL connector
#28 .equals and .equalsIgnoreCase in SQL does not match correctly

speedment - 3.0.1 Forest

Published by minborg about 8 years ago

This release contains the following new features:

None

Fixed bugs:

#276 spring-generator-plugin generated Beans creates manager via app.managerOf

speedment - 3.0.0 Forest

Published by Pyknic about 8 years ago

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

speedment - 3.0.0-EA2 Forest

Published by minborg about 8 years ago

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 for runtime

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

JDBC type can be seen in the UI when clicking a column

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.

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

Fixed bugs:

#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
#189 Add getDescription() to the Component interface
#181 Use Java 8 Instant for time mapping

speedment - 3.0.0-EA Forest

Published by minborg about 8 years ago

This release contains the following new features:

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 for runtime

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

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.

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

Fixed bugs:


#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
#189 Add getDescription() to the Component interface
#181 Use Java 8 Instant for time mapping

speedment - 2.3.7 Hamilton

Published by minborg about 8 years ago

his release contains the following new features:

Fixed bugs:


#236 Speedment crashes in latest version of Java

speedment - 2.3.6 Hamilton

Published by minborg about 8 years ago

This release contains the following new features:

Fixed bugs:


notBetween became between

speedment - 2.3.5 Hamilton

Published by minborg over 8 years ago

This release contains the following new features:

Added a new TypeMapper for Integer (0|1) to Boolean

Fixed bugs:


#219 column "PUBLIC" of relation "ADINFO" does not exist (prevented PostgreSQL tables to be updated)

speedment - 2.3.4 Hamilton

Published by minborg over 8 years ago

This release contains the following new features:

None

Fixed bugs:


#210 Json fileld are not named correctly
#207 Generated newEntityFrom()-method in manager contains disabled columns
#206 Dbms Port can only be spinned, not set
#204 ManagerImpl does not take disabled columns into account
#199 Code is generated when you press Return-key
#192 Make sure all translators use builder pattern
#96 CodeGen importer removes static member imports
#95 Static imports in CodeGen with the same package name are filtered away

speedment - 2.3.3 Hamilton

Published by minborg over 8 years ago

This release contains the following new features:

Responsibility for entity copy moved to manager

Fixed bugs:


None

API version: 2.3

speedment - 2.3.2 Hamilton

Published by minborg over 8 years ago

This release contains the following new features:

  • Support for creating NClob, Blob and Clob from a manager
  • BigDecimalToDouble mapper
  • New predicates notStartsWith(), notEndsWith(), notContains() and notBetween()
  • User configurable parallel strategy exposed in ParallelStrategy::of

Fixed bugs:


#193 java: code too large
#180 Generated copy()-method erases the original entity
#172 Report progress in UI for each Column rather than each Table
#170 When referencing an inner class, config file will use dollar sign ($) instead of dot (.)
#168 Dbms doesn't have a Java Alias
#167 If a project name contains a space, it should be removed in package names
#166 Auto-field preview isn't visible until you toggle it
#165 If a company name contains a space, the previewed package name will be wrong
#164 Company Name isn't used in generated code
#148 If you press "Reload" and write the wrong password, the entire project is cleared
#145 EntitySupport() fails for 2 digit entity names

API version: 2.3

speedment - 2.3.1 Hamilton

Published by minborg over 8 years ago

This release contains the following new features:

None

NOTE : If you are upgrading from a Speedment version prior to 2.3.0 then: Because the migration from Groovy to JSON, users need to re-run the UI to read the schema metadata from scratch.Because the layout of the generated files has changed, users are advised to delete generated files generated by previous Speedment version and re-generate all the Java classes from scratch. Speedment no longer depends on JDBC drivers like MySQL and MariaDB. Users with existing projects must therefore add these dependencies directly in the project’s POM.

Fixed bugs:

#162 Autoincrement metadata is not detected for MySQL and MariaDB

API version: 2.3

speedment - 2.3.0 Hamilton

Published by minborg over 8 years ago

This release contains the following new features:

  • New API version (2.3) with increased functionality
  • Project DSL changed from Groovy to JSON
  • Updated UI with improved usability
  • Better mapping of database types (e.g. Boolean and Numbers)
  • OSGi bundle compatibility
  • Faster parallel loading of database metadata
  • Ability to set a custom database connection URL
  • Generated classes are separated from user changeable classes
  • Initial connectivity check with databases
  • Database and database driver version printout on start
  • Better support for JavaEE (JDBC class loading)
  • Pluggable code generation with ability to customize generated code
  • TypeMapping from various time classes to Integer
  • Alias for schemas, tables and column to decouple db names form Java names
  • New archetypes for MySQL, MariaDB and PostgreSQL to easily create projects with correct JDBC dependencies
  • Improved JavaDocs

NOTE 1: Because the migration from Groovy to JSON, users need to re-run the UI to read the schema metadata from scratch.

NOTE 2: Because the layout of the generated files has changed, users are advised to delete generated files generated by previous Speedment version and re-generate all the Java classes from scratch.

NOTE 3: Speedment no longer depends on JDBC drivers like MySQL and MariaDB. Users with existing projects must therefore add these dependencies directly in the project’s POM.

Fixed bugs:

#101 AbstractBaseEntiry.getEntityClass() shows up in some JSON libs
#106 Potential risk for dropped listeners in UI
#108 UI doesn't start when .json file is missing
#110 Port number is not set for auto settings on new project
#111 Icon is not shown on error messages
#112 Wrong file name is used for speedment.json when dir is initially created
#113 getDbmsNameMeaning() not visible in gui
#114 Databases that are plugged in are lost in GUI
#115 Some settings are lost in the UI
#120 Auto-increment columns fails for Postgres
#122 No response is given if a Schema is entered that doesn't exist
#127 PostgreSQL boolean column is mapped to int
#137 Table with exotic names may fail to load its columns
#141 Table with 2 characters results in error in GeneratedImpl class
#142 generated code doesnt work
#144 Underscores (_) are stripped from column name constants
#147 Potential concurrency issue when loading projects
#152 When loading from json-file and pressing Dbms, an exception is thrown

API version: 2.3

speedment - 2.2.3 University Avenue

Published by minborg almost 9 years ago

This release contains the following new features:

  • New UI look-and-feel
  • Support for PostgreSQL database
  • Multi-tenant support
  • Parallel stream support with custom parallel strategies
  • UI plugin support
  • Improved error visualization in UI
  • Schemas and tables can contain space, comma and dots
  • Tables with no primary key can now be used
  • UI will remember tree expansion between runs
  • New "notIn()" column predicate

Performance improvements:

  • Foreign key finders has improved performance

Fixed bugs:
#74 Parallel stream does not work for managers bug
#67 @External param that takes boolean will not work with Boolean bug
#63 Table names that begin with a number isn't allowed bug
#54 Unnecessary imports in generated application file bug enhancement
#44 Schema names that contains dots (.) does not work bug
#20 No specific message in GUI if error during generation bug

API version: 2.2

Package Rankings
Top 8.39% on Repo1.maven.org
Badges
Extracted from project README
Maven Central Javadocs Build Status Hex.pm Join the chat at https://gitter.im/speedment/speedment Analytics
Related Projects