Releases: strolch-li/strolch
First Official Release
Get your download at: http://www.strolch.li/downloads.html
Changes against 1.0.0-RC4:
[Major] Strolch now requires Java8
- due to stricter Java8 JavaDoc lint, deactivate strict mode for JavaDoc
[Major] Refactored how a TX is closed
- So sadly just auto closing a TX using try-resource from Java7 is a bad idea.
- Doing that leads to problems when an exception is thrown, then the close is called (duh) but this leads to commit being called.
- Since the Java language does not offer a decent way to detect if the close is being called in the context of an exception i was forced to add a tx.commitOnClose() and tx.rollbackOnClose().
- The default is that when a TX is opened, then the close strategy is rollback; the API user must call tx.commitOnClose() before the TX is closed by the braces, or as late as possible, to make sure that if an exception is thrown the transaction is rolled back, and not committed.
- The API was also extended with a tx.fail(msg):StrolchTransactionException so that if the implementor detects an unrecoverable error, one can write: throw tx.fail(“my reason”);
- This was sadly an unavoidable late 1.0.0 change
[Major] added new feature tx.flush()
- Now if you need to perform commands to carry on in your transaction, you can simply use the tx.flush()-method.
- Should something go wrong, then even after a tx.flush() one can call throw tx.fail("Reason") or tx.rollbackOnClose()
[Major] fixed issue with CACHED not querying inmemory
- this was a big issue as the query was delegated by the TX to the persistence handler, which meant that the current element map types (cached, transactional, etc.) were ignored. Move the doQuery to the element maps, and this lead to also reimplementing the way the cached element maps work: they now use an in memory dao, instead of MapOfMaps
[Major] changed ParameterSelection implementation
- stringListSelection() uses contains, instead of equals now
- dateRangeSelection() uses a date range object now
[Major] refactored DbSchemaVersionCheck and added version parsing
- Now we can use Version to see if current version is greater than
- Fixed bug where version checking didn't check for app
- TODO is still open to handle migration with intermediary steps
[Major] updated expected db_version to 0.2.1 (PostgreSQL)
- add an app column to db_version table
[Major] refactored PostgreSQL DB schema validation
- Now moved all generic schema generation code to ch.eitchnet.utils so it can be used by other projects
[New] added StrolchTransaction.setSuppressDoNothingLogging()
[New] Added TransactionCloseStrategy.DO_NOTHING
- added a new closing strategy which is now the default closing strategy. This effectively makes a new transaction read only
[New] added tx.getCertificate()
[New] added tx.get_()-methods with assertExists boolean
- now a user can always use that flag to guarantee the element exists
[New] Added tx.getTemplate_(), documented TX, added StrolchLockException
[New] Added tx.auditFrom()
- this allows to quickly create a new Audit which uses the details from the current TX. This TX can then be added to the auditTrail for persisting
[New] added tx.get*By() with assertExists flags
[New] Added new MigrationsHandler to migrate the model
- Add the new MigrationsHandler as a StrolchComponent
- add migrations/data//n.n.n.xml files
- and your migration will run
- allow a project to add migrations to be run in a post initializer etc.
[New] Refactored XML import and export model
- added allowInclude for recursive parsing of xml importing
- ModelStatistics is now JAXB capable
- added handling of absolute paths
[New] added XmlModelSaxStreamReader
[New] added Iso8601DateAdapter for JAXB (un)marshalling of ISO8601 dates
[New] Refactored XML import and export model
- added allowInclude for recursive parsing of xml importing
- ModelStatistics is now JAXB capable
- added handling of absolute paths
[New] Added new ServiceExecutionHandler
- The ServiceExecutionHandler is used to execute long running service without needing singletons
[New] added StrolchElement.isRootElement()
[New] added ListParameter.isValueEmpty()
[New] Added ListParameter.clearValue()
[New] Added new StrolchAccessDeniedException for use in ServiceHandler
- Now if you add the DefaultServiceHandler property 'throwOnPrivilegeFail' and set it to true, then the service handler will throw a StrolchAccessDeniedException which in combination with the StrolchRestfulExceptionMapper allows rest services to quickly determine if the error was because the user does not have access to the requested resource.
- Same goes for performing queries in AbstractTransaction only there instead of throwing a privilege exception, we now also throw a StrolchAccessDeniedException
[New] Added LoginResult.getRoles(), modified logs
- also log user when performing service calls
- also log user when committing TX
[New] Added writing of TimedStates in StrolchElementToSaxVisitor
[New] rest logging configuration: 'restLogging' 'restLoggingEntity', 'restTracing' 'restTracingThreshold'
[Bugfix] Fixed wrong parsing of StringListParameter string value
[Bugfix] fixed bug where certificate.lastAccess was not set after login
- Implemented base structure for planning and scheduling on resources
[Bugfix] fixed writing time of TimeValue to XML
[Bugfix] fixed bug on AbstractToSaxWriterVisitor writing timestates
[Bugfix] fixed bug where Migrations didn't handle missing realm
- If a code migration is run programmatically, then in some migrations shouldn't fail if a realm is missing -> the realm might not be available in a certain environment
[Bugfix] fixed broken migrations in multiple realms
[Bugfix] fixed handlinge of missing migrations directory
[Bugfix] fixed not adding firstname and last name to sys user cert
[Bugfix] fixed bug in RuntimeConfiguration
- the methods getConfigFile and getDataFile() didn't properly evaluate if they should throw an exception if a directory or file does not exist
[Bugfix] fixed bug where StrolchComponent controllers aren't properly stopped
- this occurred for controllers which had dependencies of other dependencies
[Bugfix] fixed not unlocked objects after TX
- When a TX is closed, all locked objects are unlocked. The but originated from multiple commands being performed for the same object, thus the object was locked multiple times i.e. the lock counter was >1. Now added a releaseLock() method which is called by the TX when the TX is closed so that the lock counter is really 0 and the lock is released.
- Added tests for this situation
- documented the LockHandler
[Bugfix] fixed minor TX logging issue
[Bugfix] fixed missing timestamps from postgresql dates
- fixed broken tests
[Bugfix] fixed missing timestamps from postgresql dates
[Bugfix] fixed not setting new Impl for component, when overridden
- Now when you set a new Impl for a component, then the dependencies are also replaced
[Bugfix] swapped input parameters for match method
[Bugfix] fixed PostgreSqlQueryVisitor due to querying orders in resource
- This only happened when the query had a ParameterSelection
[Minor] Fixing broken tests
[Minor] better logging in AuthenicationRequestFilter
[Minor] StrolchElementQuery fields are now protected
[Minor] added further test in QueryTest for param
[Minor] Locator constructors are private use Locator.valueOf()
[Minor] don't log CurrentMigrationVersionQuery queries
[Minor] Updated ch.eitchnet.utils submodule
[Minor] Updated ch.eitchnet.utils submodule
[Minor] minor exception message changes on refP
[Minor] changed test to check for versions with qualifier
[Minor] removed all tx.commitOnClose() for read only TXs
[Minor] removed all tx.commitOnClose() for read only TXs
[Minor] don't log multiple times the exception on failed service
[Minor] added cache mode setting for rest http header (defaults to no-cache)
[Minor] better logging in TX
[Minor] Added logging of realm and app when checking db schema
[Minor] removed logging of controller names, duplicated in DepAnalyzer
[Minor] fixed broken tests due to change in privilege handling
[Minor] don't return default locale, if none is passed by HTTP client
[Minor] removed the setting of the locale from HTTP Headers
[Minor] don't send whole strack trace to client
[Minor] adding environment in logging when setting up container
[Minor] adding environment in logging when setting up container
[Minor] removed useless logger in ConfigurationSaxParser
[Minor] allow dataInitialization if schemaDrop is disabled
[Minor] AuthenicationRequestFilter and AuthenticationService changes
- Now we check that the authorization header always exists except for the AuthenticationService.login
Release Candidate 4
1.0.0-RC4 [Project] bumped version from 1.0.0-SNAPSHOT to 1.0.0-RC4
Release Candidate 2
1.0.0-RC2 [Project] bumped version from 1.0.0-SNAPSHOT to 1.0.0-RC2
Release Candidate 1
1.0.0-RC1 [Project] bumped version from 1.0.0-SNAPSHOT to 1.0.0-RC1