= Salespoint Framework Changelog
Paul Henke, Andreas Zaschka, Oliver Gierke
:revdate: {localdate}
:linkbase: https://github.com/st-tu-dresden/salespoint/issues/

:numbered!:
[7.2]
== 7.2

Release date: 2019-10-14

- {linkbase}/163[#163] - Relax 1:1 relationship between InventoryItem and Product.
- {linkbase}/216[#216] - Document usage of @LoggedIn annotation.
- {linkbase}/255[#255] - Is Interval open or closed?.
- {linkbase}/276[#276] - Reorganize reference docs.
- {linkbase}/267[#267] - Upgrade to Moduliths 1.0 RC2.
- {linkbase}/259[#259] - Upgrade to Spring Boot 2.2 RC1.
- {linkbase}/254[#254] - Use explicit module names to avoid clashes with user-level projects.
- {linkbase}/257[#257] - Upgrade to Java 11.
- {linkbase}/278[#278] - MonetaryAmountAttributeConverter should report original exception in case the fallback parsing fails.
- {linkbase}/251[#251] - Add Quantity.times(…) to multiply with scalars.
- {linkbase}/190[#190] - "Getters of lazy classes cannot be final" during server start after Update to 6.4.1.
- {linkbase}/221[#221] - Make sure Spring components can be clearly identified in the Javadoc.
- {linkbase}/272[#272] - Let PersistentUserAccountManager consistently work with UnencryptedPassword.
- {linkbase}/273[#273] - Switch to OpenJDK for Travis build.
- {linkbase}/274[#274] - Adapt to changes in configuration properties scanning in Spring Boot 2.2.
- {linkbase}/269[#269] - Make sure AbstractEntity sets isNew flag in @PrePersist.
- {linkbase}/270[#270] - Model (Un)EncryptedPassword explicitly.
- {linkbase}/271[#271] - Lower log output for test cases.
- {linkbase}/265[#265] - Upgrade to Asciidoctor Maven plugin to 2.0.
- {linkbase}/268[#268] - Upgrade to JUnit 5.4.2.
- {linkbase}/266[#266] - Default spring.datasource.generate-unique-name to true.
- {linkbase}/264[#264] - Tweak Lombok setup to exclude generated code from test coverage reports.
- {linkbase}/261[#261] - Add explicit module display names.
- {linkbase}/262[#262] - Upgrade to Lombok Maven Plugin 1.18.6.0.
- {linkbase}/263[#263] - Upgrade Asciidoctor Maven Plugin dependencies.
- {linkbase}/258[#258] - Upgrade to JUnit 5.4.
- {linkbase}/250[#250] - Quantity.isZeroOrNegative() is false for amounts with decimal digits.

:numbered!:
[7.1]
== 7.1

Release date: 2019-01-08

- {linkbase}/247[#247] - Map `Product.categories` eagerly to avoid `LazyInitializationExceptions` from `….toString()`.
- {linkbase}/246[#246] - ChargeLine needs an inheritance strategy defined.
- {linkbase}/245[#245] - Explicitly enable `spring.jpa.open-in-view` to avoid warning.
- {linkbase}/238[#238] - Tweak Travis build to make sure the first build runs the tests as well.
- {linkbase}/239[#239] - Upgrade to Spring Data release train Moore.
- {linkbase}/244[#244] - Upgrade to Spring Boot 2.1.1.
- {linkbase}/243[#243] - `LoggedInHandlerMethodArgumentResolver` not registered anymore.
- {linkbase}/242[#242] - Fix transaction settings for `PersistentUserAccountManager.delete(…)`.
- {linkbase}/241[#241] - Clean up web auto configuration.
- {linkbase}/240[#240] - Add ability to lookup all orders.
- {linkbase}/237[#237] - Make Querydsl dependency non-optional.
- {linkbase}/235[#235] - Move `StringToRoleConverter` into user account module.
- {linkbase}/236[#236] - Add modulith component diagrams to reference documentation.
- {linkbase}/234[#234] - Move AttributeConverter for MonetaryAmount to support package.
- {linkbase}/233[#233] - Upgrade to Moduliths 1.0 M2.
- {linkbase}/232[#232] - Allow lookup of products that are assigned to a set of categories.
- {linkbase}/220[#220] - Improve Javadoc of `Accountancy.add(…)` to include not about the entry's date handling.
- {linkbase}/215[#215] - Create human readable representation in `OrderCompletionReport.toString()`.
- {linkbase}/214[#214] - Configure Maven Source Plugin to attach sources.
- {linkbase}/180[#180] - Documentation section on orders is wrong about the usage of ``ChargeLine``s.
- {linkbase}/228[#228] - Implement `UserAccount.toString()` for easier debugging.
- {linkbase}/222[#222] - Allow login via email address.
- {linkbase}/231[#231] - Wrong Javadoc in `AccountancyEntry(MonetaryAmount, String)`.
- {linkbase}/226[#226] - Add ability to have ``ChargeLine``s that refer to ``OrderLine``s.
- {linkbase}/230[#230] - Publish event on order cancellation and adapt inventory and accountancy accordingly.
- {linkbase}/227[#227] - Prefix columns of `Quantity` to avoid name clashes.
- {linkbase}/229[#229] - Add `.factorypath` to `.gitignore`.
- {linkbase}/225[#225] - Upgrade to Spring Boot 2.1 GA.
- {linkbase}/218[#218] - Allow deleting user accounts.
- {linkbase}/219[#219] - Allow deleting orders.

:numbered!:
[7.0]
== 7.0

Release date: 2018-10-05

- {linkbase}/199[#199] - Re-evalute cascade operations on InventoryItem.
- {linkbase}/197[#197] - Reduce visibility of primary OrderLine constructor.
- {linkbase}/204[#204] - Hide component internals in JavaDoc.
- {linkbase}/207[#207] - Upgrade to Spring Boot 2.1 M4.
- {linkbase}/212[#212] - Upgrade to Moduliths 1.0 M1.
- {linkbase}/208[#208] - Upgrade to JUnit 5.
- {linkbase}/196[#196] - Improve design in Quantity.
- {linkbase}/210[#210] - Integrate Moduliths architecture conventions.
- {linkbase}/211[#211] - Switch repository methods returning Iterables to Streamables.
- {linkbase}/174[#174] - Upgrade to Spring Boot 2.0.
- {linkbase}/205[#205] - Extend copyright years to 2018.
- {linkbase}/206[#206] - Add nullability annotations.

:numbered!:
[6.4-GA]
== 6.4 GA

Release date: 2017-10-03

- {linkbase}172[#172] - Upgrade to Spring Boot 1.5.7.
- {linkbase}173[#173] - Minor polishing in domain model.
- {linkbase}169[#169] - Add Apache License headers.
- {linkbase}170[#170] - Switch to non-JavaDoc-violating references to issues in test cases.
- {linkbase}171[#171] - Upgrade to Moneta 1.1.
- {linkbase}164[#164] - Upgrade to Spring Boot 1.5.
- {linkbase}166[#166] - Upgrade Maven Wagon plugin to 3.0.
- {linkbase}167[#167] - Upgrade Lombok Maven plugin to 1.16.18.0.
- {linkbase}168[#168] - Upgrade Asciidoctor Maven plugin to latest version.
- {linkbase}165[#165] - Upgrade to AssertJ 3.8.

:numbered!:
[6.3.1]
== 6.3.1

Release date: 2016-11-27

- {linkbase}147[#147] - Add link:./salespoint-reference.html#modules.useraccount[section to reference documentation] on which features the `UserAccountManagement` actually provides.
- {linkbase}148[#148] - Add link:./salespoint-reference.html#modules.order.handling-events[section to the reference documentation] on how to write custom event handlers.
- {linkbase}154[#154] - Update JavaDoc of `@LoggedIn` to indicate that usage with a plain UserAccount is possible, too.
- {linkbase}153[#153] - Allow to check `Interval` instances for overlaps.
- {linkbase}152[#152] - Allow `Interval` to be used as JPA embeddable.
- {linkbase}149[#149] - Add link:./api/org/salespointframework/support/RecordingMailSender.html[`MailSender` implementation] that allows to inspect the messages sent.
- {linkbase}150[#150] - Update Sonargraph architecture description after the changes in `Order` events.

:numbered!:
[6.3]
== 6.3

Release date: 2016-10-23

- {linkbase}145[#145] - Improve JavaDoc of Accountancy.
- {linkbase}143[#143] - Quantity should throw more specific exception for operations with incompatible metrics.
- {linkbase}139[#139] - Add JPA 2.1 AttributeConverter for MonetaryAmount.
- {linkbase}140[#140] - Upgrade to Spring Boot 1.4.
- {linkbase}141[#141] - Rename SalespointDataInitializer to DataInitializerInvoker.
- {linkbase}142[#142] - Add method to find items out of stock on Inventory.
- {linkbase}144[#144] - Refactor handling of downstream actions in PersistentOrderManager to use events.
- {linkbase}125[#125] - Improve JavaDoc of ConsoleWritingMailSender.
- {linkbase}119[#119] - Upgrade to Spring Boot 1.3 GA.
- {linkbase}114[#114] - Add example and test on how to extend Inventory.
- {linkbase}115[#115] - Switch to H2 as test database.

:numbered!:
[6.2.1]
== 6.2.1

Release date: 2016-01-05

- {linkbase}136[#136] - Upgrade to Asciidoctor Maven plugin 1.5.3.
- {linkbase}135[#135] - Fix Javadoc on Inventory.
- {linkbase}134[#134] - Upgrade to Spring Boot 1.3.1 to benefit from devtools.
- {linkbase}131[#131] - Improve reference documentation on Money.
- {linkbase}130[#130] - Make sure JavaDoc is correct for Lombok generated methods.
- {linkbase}129[#129] - Add Quantity.toZero().
- {linkbase}126[#126] - Improve JavaDoc of ConsoleWritingMailSender.
- {linkbase}124[#124] - Documentation for updated Role usage.
- {linkbase}120[#120] - Upgrade to Spring Boot 1.3 GA.

:numbered!:
[6.2-GA]
== 6.2 GA

Release date: 2015-10-29

- {linkbase}113[#113] - Upgrade to Spring Boot 1.3 RC1.
- {linkbase}112[#112] - Remove obsolete Thymeleaf tests.
- {linkbase}111[#111] - Update Sonargraph architecture description.
- {linkbase}108[#108] - Remove TODOs from reference documentation.
- {linkbase}107[#107] - Turn Role into value object.
- {linkbase}104[#104] - Create link to the UML class diagram in the technical reference.
- {linkbase}101[#101] - Fixed small typo.
- {linkbase}100[#100] - Update UML diagrams.
- {linkbase}97[#97] - Update UML diagrams in reference documentation.
- {linkbase}67[#67] - Improve documention about Quantity attributes.
- {linkbase}61[#61] - Improve naming of find(…) methods in OrderManager.

:numbered!:
[6.2-RC1]
== 6.2 RC1

Release date: 2015-10-09

- {linkbase}99[#99] - Improve Quantity's toString() method.
- {linkbase}96[#96] - Upgrade to Spring Boot 1.3.
- {linkbase}93[#93] - Upgrade to Spring Boot 1.2.5.
- {linkbase}92[#92] - AccountancyEntry.getDate() should use Optional.
- {linkbase}91[#91] - Upgrade to Spring Security 4.0.1.
- {linkbase}90[#90] - Upgrade to Spring Boot 1.2.4.
- {linkbase}89[#89] - Switch to Moneta for handling of monetary amounts.
- {linkbase}88[#88] - Remove workaround for #87.
- {linkbase}87[#87] - Add temporary workaround for Spring Boot not picking up multiple @EntityScan annotations.
- {linkbase}86[#86] - Upgrade to Spring Data Fowler.
- {linkbase}85[#85] - Upgrade to Spring Security 4.0.
- {linkbase}84[#84] - Upgrade to Spring Boot 1.2.3.
- {linkbase}83[#83] - Switch to official release of Thymeleaf JDK 8 integration.
- {linkbase}9[#9] - Simplify Quantity API.

:numbered!:
[6.1.1]
== 6.1.1

Release date: 2014-12-23

- {linkbase}80[#80] - Add equals(…)  / hashCode() / toString() methods to value objects in payment package.
- {linkbase}76[#76] - SpringSecurityAuthenticationManager should return Optional.empty() if no user is logged in.
- {linkbase}75[#75] - Update architecture description to reflect allowed dependency from orders to inventory.
- {linkbase}74[#74] - Make sure auto-configuration for web and security gets applied.
- {linkbase}72[#72] - Reintroduce CharacterEncodingFilter bean declaration as the default in Boot 1.2.0 doesn't work as advertised.

:numbered!:
[6.1]
== 6.1

Release date: 2014-12-12

- {linkbase}71[#71] - Include Thymeleaf / Spring Security integration library by default.
- {linkbase}70[#70] - JavaDoc should list package protected types.
- {linkbase}69[#69] - PersistentOrderManager needs to invoke save(…) after completing the order.
- {linkbase}62[#62] - Remove deprecated OrderManager.add(…) and update(…) methods.
- {linkbase}57[#57] - Add @EnableSalespoint to simplify bootstrapping of Salespoint applications.
- {linkbase}56[#56] - Upgrade to Spring Boot 1.2.
- {linkbase}52[#52] - Provide component to let Thymeleaf render JDK 8 date formats correctly.
- {linkbase}47[#47] - Reduce visibility of constructors of SalespointIdentifier subtypes.

:numbered!:
[6.0.1]
== 6.0.1

Release date: 2014-12-01

- {linkbase}64[#64] - Subtracting quantities returns invalid result (not a bug).
- {linkbase}63[#63] - Make 6.1 the next development version.
- {linkbase}60[#60] - Unify OrderManager.add(…) and ….update(…).
- {linkbase}59[#59] - Add port-property to MailSenderAutoConfiguration.MailProperties.
- {linkbase}58[#58] - Upgrade to Spring Boot 1.1.9.
- {linkbase}55[#55] - UserAccount is missing an uniqueness constraint on identifier.
- {linkbase}54[#54] - Fix JavaDoc for Catalog.findByName(…).
- {linkbase}53[#53] - Typo in dependency declaration on Salespoint homepage.
- {linkbase}49[#49] - Release version 6.0.1.
- {linkbase}48[#48] - Provide UserAccountManager.findByUsername(…) to avoid leaking internals of UserAccountIdentifier.
- {linkbase}46[#46] - Support private constructors in SalespointIdentifiers.

:numbered!:
[6.0-GA]
== 6.0 GA

Release date: 2014-11-10

- {linkbase}44[#44] - Improve Cart API.
- {linkbase}43[#43] - Remove JPA meta-model types.
- {linkbase}42[#42] - Release version 6.0 GA.
- {linkbase}41[#41] - Enable global method security in SalespointSecurityConfiguration.

:numbered!:
[6.0-RC1]
== 6.0 RC1

Release date: 2014-10-28

- {linkbase}40[#40] - Release version 6.0 RC1.
- {linkbase}39[#39] - Upgrade to Tomcat 8.0.14.
- {linkbase}38[#38] - PersistentOrderManager.commit(…) sorts OrderLines into wrong intermediate collection.
- {linkbase}37[#37] - LoggedInUserAccountArgumentResolver needs to be adapted to work with Optional<UserAccount> only.
- {linkbase}36[#36] - Rename Basket to Cart and polish API.
- {linkbase}35[#35] - Simplify setting up infrastructure to send emails.
- {linkbase}34[#34] - Improve Inventory API.
- {linkbase}33[#33] - Add Maven dependency block to static website.
- {linkbase}32[#32] - Add changelog to website.
- {linkbase}10[#10] - Remove deprecated types where possible.

:numbered!:
[6.0-M1]
== 6.0 M1

Release date: 2014-10-14

- {linkbase}4[#4] - Release 6.0 M1
- {linkbase}30[#30] - Upgrade to Spring Boot 1.1.8
- {linkbase}5[#5] - Renew technical documentation
- {linkbase}13[#13] - Improve design of JpaEntityConverter
- {linkbase}29[#29] - Release 6.0 M1
- {linkbase}18[#18] - Add package-info.java files for packages
- {linkbase}28[#28] - Upgrade to Spring Boot 1.1.7
- {linkbase}17[#17] - Add deployment of artifacts and documentation to project build
- {linkbase}26[#26] - Update Asciidoctor and APT plugin
- {linkbase}25[#25] - Overhaul domain code
- {linkbase}24[#24] - Use Spring Data repositories in inventory and accountancy as well
- {linkbase}14[#14] - Extract BlankWeb into separate repository
- {linkbase}15[#15] - Remove Calendar project and extract Blankweb into separate repository
- {linkbase}16[#16] - Pull up SalespointFramework to become top level project
- {linkbase}22[#22] - Bump version number to 6.0
- {linkbase}19[#19] - Simplify Catalog
- {linkbase}21[#21] - Consolidate packages
- {linkbase}20[#20] - Remove Spielwiese
- {linkbase}11[#11] - Switch to JodaMoney
- {linkbase}1[#1] - Extract Guestbook and VideoShop projects into separate repositories
- {linkbase}6[#6] - Upgrade to Spring Boot 1.1.5
- {linkbase}7[#7] - Simplify time management
- {linkbase}8[#8] - Switch from JodaTime to JDK 8 Date/Time abstractions
- {linkbase}3[#3] - Upgrade to latest Spring Boot and Spring Framework versions
- {linkbase}2[#2] - Setup Asciidoctor Maven build and sample file
