From c7654e93a53bff88507e07a550385ac3ed08978c Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Tue, 31 Mar 2015 22:12:18 +0200 Subject: [PATCH] Added a Strolch 1.0.0 blog entry. --- li.strolch.website/www.strolch.li/blog.html | 76 +++++++++++++++++---- 1 file changed, 64 insertions(+), 12 deletions(-) diff --git a/li.strolch.website/www.strolch.li/blog.html b/li.strolch.website/www.strolch.li/blog.html index 02e0d622f..fa8a52318 100644 --- a/li.strolch.website/www.strolch.li/blog.html +++ b/li.strolch.website/www.strolch.li/blog.html @@ -58,20 +58,71 @@
+ +
+

Strolch Release 1.0.0

+ + + +

Finally Version 1.0.0 of Strolch has been released and can be downloaded + immediately.

+
+

Before 1.0.0 could be released, some major changes were decided, all driven by the first big project + using Strolch as its underlying stack. Those changes were minor, and really major, but should make + Strolch better and was important for the first release.

+ +

Here is a list of the most interesting changes:

+
    +
  • Java 8 - Strolch was ported to Java 8. This gives a lot of cool features: The stream API, + lambdas, the new time API, etc. +
  • +
  • TX refactoring: Strolch transactions are instances of Closeable so that they are + closed using a try-with-resource block in Java7. The change that was required was to not auto + commit. Now a TX is read-only and one has to set the auto commit as the last statement. See this + commit for more information. +
  • +
  • Added a tx.flush() to allow an implementation to flush part of a transaction, this + feature is vital to perform parts of a transaction before deciding if the TX should be + committed. +
  • +
  • Fixed the issue where data store mode CACHED performed TRANSACTIONAL + queries, instead of staying in-memory. +
  • +
  • ParameterSelection.stringListSelection() uses a StringMatchMode + instead of just equals()
  • +
  • ParameterSelection.dateRangeSelection() uses a DateRange instead of + just equals()
  • +
  • Added the MigrationsHandler to use to perform code migrations of production data + bases where data shouldn't go lost. +
  • +
  • And many more...
  • +
+ +

Strolch 1.1.0 is already in development and can also be downloaded from the download page Here you + can see the current change list on GitHub. For instance + heavy work has been done to implement privilege management by adding a REST API. Looking forward to + a wonderful next Strolch release.

+ +
+ +

DurationParameter and other minor changes: Release 1.0.0-RC4

-

New DurationParameter and additional minor changes: Release of 1.0.0-RC4 which can be +

New DurationParameter and additional minor changes: Release of 1.0.0-RC4 which can be downloaded on the download page.


While implementing a use case in a Strolch based application it was detected that an essential - parameter type was missing, the DurationParameter. This parameter currently stores the value - as a long in memory and serializes to ISO8601. - As soon as we move Strolch to Java8, we will change this to use the Period class in the new - Java8 date and time API.

+ parameter type was missing, the DurationParameter. This parameter currently stores the + value as a long in memory and serializes to ISO8601. As soon as we move + Strolch to Java8, we will change this to use the Period class in the new Java8 date and + time API.

In addition to the new parameter, a couple of other changes were made:

    @@ -109,16 +160,17 @@

    Migrating a database for Strolch is mostly a one time thing. The object model in Strolch is quite static, so there is seldom a need to migrate the database. Domain specific changes, i.e. new Resources, or adding Parameters to Resources, is not a schema change. Thus, instead of going the way - other frameworks go, e.g. Ruby on Rails, we built the data initialization right into the PersistenceHandler. + other frameworks go, e.g. Ruby on Rails, we built the data initialization right into the PersistenceHandler.

    -

    Now if the PostgreSQL PersistenceHandler creates the schema, then it might also initialize the - minimal set of data. For this to work, the PersistenceHandler checks if the flags allowSchemaCreation, - allowSchemaDrop and allowDbInitOnSchemaCreate. If those flags are enabled, and the - schema was created during initialization, then the database is also initialized with the contents of - the XML file configured under key dataStoreFile of the relevant Realm.

    +

    Now if the PostgreSQL PersistenceHandler creates the schema, then it might also + initialize the minimal set of data. For this to work, the PersistenceHandler checks if + the flags allowSchemaCreation, allowSchemaDrop and allowDbInitOnSchemaCreate. + If those flags are enabled, and the schema was created during initialization, then the database is + also initialized with the contents of the XML file configured under key dataStoreFile + of the relevant Realm.

    -

    The database initialization is done as a system user action which must have the name db_initializer. +

    The database initialization is done as a system user action which must have the name db_initializer. This is another fail-safe, so that on a production system, this user can simply be deleted.

    So, Strolch 1.0.0-RC3 is out the door, go ahead and try it out.