From 2605fe4e4ab711808881c03de6f95ac1393adb88 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Thu, 15 Jul 2021 01:24:35 +0200 Subject: [PATCH] [Major] New blog post, refactoring blog path --- content/{posts => blog}/_index.md | 0 content/{posts => blog}/post-00001.md | 0 content/{posts => blog}/post-00002.md | 0 content/{posts => blog}/post-00003.md | 0 content/{posts => blog}/post-00004.md | 2 +- content/{posts => blog}/post-00005.md | 0 content/{posts => blog}/post-00006.md | 0 content/{posts => blog}/post-00007.md | 0 content/{posts => blog}/post-00008.md | 2 +- content/{posts => blog}/post-00009.md | 0 content/{posts => blog}/post-00010.md | 0 content/{posts => blog}/post-00011.md | 0 content/{posts => blog}/post-00012.md | 0 content/{posts => blog}/post-00013.md | 2 +- content/{posts => blog}/post-00014.md | 0 content/blog/post-00015.md | 50 +++++++++++++++++++ content/{posts => blog}/post-99999.md | 3 ++ content/development/_index.md | 41 ++++++++++++--- content/documentation/model.md | 10 ++-- content/download/_index.md | 30 +++++++++++ layouts/_default/_markup/render-link.html | 3 ++ .../xsd/StrolchModel-1.6.xsd | 0 22 files changed, 127 insertions(+), 16 deletions(-) rename content/{posts => blog}/_index.md (100%) rename content/{posts => blog}/post-00001.md (100%) rename content/{posts => blog}/post-00002.md (100%) rename content/{posts => blog}/post-00003.md (100%) rename content/{posts => blog}/post-00004.md (95%) rename content/{posts => blog}/post-00005.md (100%) rename content/{posts => blog}/post-00006.md (100%) rename content/{posts => blog}/post-00007.md (100%) rename content/{posts => blog}/post-00008.md (96%) rename content/{posts => blog}/post-00009.md (100%) rename content/{posts => blog}/post-00010.md (100%) rename content/{posts => blog}/post-00011.md (100%) rename content/{posts => blog}/post-00012.md (100%) rename content/{posts => blog}/post-00013.md (94%) rename content/{posts => blog}/post-00014.md (100%) create mode 100644 content/blog/post-00015.md rename content/{posts => blog}/post-99999.md (62%) rename {docs/assets => static}/xsd/StrolchModel-1.6.xsd (100%) diff --git a/content/posts/_index.md b/content/blog/_index.md similarity index 100% rename from content/posts/_index.md rename to content/blog/_index.md diff --git a/content/posts/post-00001.md b/content/blog/post-00001.md similarity index 100% rename from content/posts/post-00001.md rename to content/blog/post-00001.md diff --git a/content/posts/post-00002.md b/content/blog/post-00002.md similarity index 100% rename from content/posts/post-00002.md rename to content/blog/post-00002.md diff --git a/content/posts/post-00003.md b/content/blog/post-00003.md similarity index 100% rename from content/posts/post-00003.md rename to content/blog/post-00003.md diff --git a/content/posts/post-00004.md b/content/blog/post-00004.md similarity index 95% rename from content/posts/post-00004.md rename to content/blog/post-00004.md index 5ee938d..a8e13aa 100644 --- a/content/posts/post-00004.md +++ b/content/blog/post-00004.md @@ -17,7 +17,7 @@ can be downloaded on the [download page](/download). 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](http://en.wikipedia.org/wiki/ISO_8601#Durations "{target='_blank'}"). +[ISO8601](http://en.wikipedia.org/wiki/ISO_8601#Durations). 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. diff --git a/content/posts/post-00005.md b/content/blog/post-00005.md similarity index 100% rename from content/posts/post-00005.md rename to content/blog/post-00005.md diff --git a/content/posts/post-00006.md b/content/blog/post-00006.md similarity index 100% rename from content/posts/post-00006.md rename to content/blog/post-00006.md diff --git a/content/posts/post-00007.md b/content/blog/post-00007.md similarity index 100% rename from content/posts/post-00007.md rename to content/blog/post-00007.md diff --git a/content/posts/post-00008.md b/content/blog/post-00008.md similarity index 96% rename from content/posts/post-00008.md rename to content/blog/post-00008.md index abf0cf5..e8f02a4 100644 --- a/content/posts/post-00008.md +++ b/content/blog/post-00008.md @@ -46,7 +46,7 @@ Further new features and changes are: * Added audits for login/logout of users. * Added audits for changes to privilege management. * PostgreSQL persistence layer now - uses [HikariCP](https://github.com/brettwooldridge/HikariCP "{target='_blank'}") + uses [HikariCP](https://github.com/brettwooldridge/HikariCP) for connection pooling. * Implemented a performance test project * Added new Parameters of type `IntegerList`, `FloatList` and `LongList`. diff --git a/content/posts/post-00009.md b/content/blog/post-00009.md similarity index 100% rename from content/posts/post-00009.md rename to content/blog/post-00009.md diff --git a/content/posts/post-00010.md b/content/blog/post-00010.md similarity index 100% rename from content/posts/post-00010.md rename to content/blog/post-00010.md diff --git a/content/posts/post-00011.md b/content/blog/post-00011.md similarity index 100% rename from content/posts/post-00011.md rename to content/blog/post-00011.md diff --git a/content/posts/post-00012.md b/content/blog/post-00012.md similarity index 100% rename from content/posts/post-00012.md rename to content/blog/post-00012.md diff --git a/content/posts/post-00013.md b/content/blog/post-00013.md similarity index 94% rename from content/posts/post-00013.md rename to content/blog/post-00013.md index a253f56..3aa9451 100644 --- a/content/posts/post-00013.md +++ b/content/blog/post-00013.md @@ -20,7 +20,7 @@ how models are searched. Thus the search API was born. Go check out the [Strolch Search](/documentation/searches) documentation and then go rewrite your searches =)). -Strolch tag [1.6.51](http://search.maven.org/#search%7Cga%7C1%7Cstrolch "{target='_blank'}") has all +Strolch tag [1.6.51](http://search.maven.org/#search%7Cga%7C1%7Cstrolch) has all those juicy changes! diff --git a/content/posts/post-00014.md b/content/blog/post-00014.md similarity index 100% rename from content/posts/post-00014.md rename to content/blog/post-00014.md diff --git a/content/blog/post-00015.md b/content/blog/post-00015.md new file mode 100644 index 0000000..a4e8ecd --- /dev/null +++ b/content/blog/post-00015.md @@ -0,0 +1,50 @@ +--- +title: 'Release of Strolch 1.6.100' +description: 'The 100. release of the 1.6 branch and a brand new website!' +weight: -15 +date: 2021-07-14T20:25:11+02:00 +LastModifierDisplayName: "Robert von Burg" +LastModifierEmail: "eitch@eitchnet.ch" +--- + +## Release of Strolch 1.6.100 + +The 100. Strolch release of the 1.6 branch and a brand new website! + +------- + +Ok, so Maven doesn't exactly have 100 releases on it, but even though we have +been quiet on public releases, Strolch has seen many refactorings, fixes, new +features etc. over the past three years of its last release. + +Some notable changes: +* I18n Support for StrolchExceptions. +* Better performance for reports on large joins. +* Move to JDK 11+. +* Refactoring to use of Java 9 LocalDateTime and ZonedDateTime where applicable. +* Added Controllers for better execution handling. +* Significantly simplified the methods to change the model. +* Simpler methods to retrieve relationship entities. +* Updated most libraries to their latest versions. +* Added a DataArchiveHandler to archive entities. +* Added require password change feature, and storing of login and password change history +* LDAP integration +* Added session keep alive +* Search expression simplifications +* New TextParameter for when persisting large values with whitespace and special characters +* Basic Auth for REST APIs, if no UI needed for scripting +* Many additional fixes, tweaks and helper functions + +Another new addition to the Strolch family is [Strolch PLC](/plc). The Strolch +PLC code allows one to use the same model but on a device acting as a soft PLC, +e.g. a Raspberry Pi. This PLC code can then communicate using WebSockets with a +Strolch instance, having quite seamless interaction with Activities which really +shows the potential of using Strolch's model in the shop floor. + +We've been running the Strolch PLC in a mission critical shop floor application +to control conveyors which are filled by a dispensing robot. + +So, Strolch 1.6.100 is out the door, go ahead and [try it out](/development). + + + diff --git a/content/posts/post-99999.md b/content/blog/post-99999.md similarity index 62% rename from content/posts/post-99999.md rename to content/blog/post-99999.md index 1915520..419be66 100644 --- a/content/posts/post-99999.md +++ b/content/blog/post-99999.md @@ -2,6 +2,9 @@ title: 'XXXXX' description: 'XXXXX' weight: -9999999 +date: 2021-01-01T00:00:00+01:00 +LastModifierDisplayName: "Robert von Burg" +LastModifierEmail: "eitch@eitchnet.ch" draft: true --- diff --git a/content/development/_index.md b/content/development/_index.md index ecace03..3091177 100644 --- a/content/development/_index.md +++ b/content/development/_index.md @@ -10,7 +10,11 @@ To start developing Strolch you need an installed: ## Building Strolch -Setting up Strolch is just a few lines: +{{% notice tip %}} Note: You don't have to build Strolch if you want to use the +version on Maven central, but if you need a snapshot version, or the release you +want isn't on central, then go ahead and build Strolch. {{% /notice %}} + +Building Strolch is just a few lines: ```shell git clone https://github.com/strolch-li/strolch.git @@ -18,7 +22,7 @@ cd strolch mvn clean install -DskipTests ``` -{{% notice tip %}} +{{% notice warning %}} Note: To run the tests you will need to configure the PostgreSQL Databases. See the README in the module. {{% /notice %}} @@ -28,6 +32,20 @@ projects. Now you can start modifying the projects, and add your own features, or, far more interesting, start developing your projects using the Strolch agent. +## Converting an existing application + +You can convert an existing application to a Strolch agent, but this might be a +bit daunting in the beginning. If you are planning on doing this, first create a +test application using the maven archetypes, so that you can get a feel for the configuration. + +Once that works, use the archetypes configuration to reconfigure your project to start as a Strolch agent. + +{{% notice warning %}} +Note: Beware to select the archetype pertaining to your use case: + * For a web app use the [li.strolch.mvn.archetype.webapp](/development/#creating-a-java-strolch-web-app) + * For a application with a main method use [li.strolch.mvn.archetype.main](/development/#creating-a-simple-java-strolch-app) +{{% /notice %}} + ## Creating a Strolch App To create your own Strolch App, you can use Maven's archetype generation. There @@ -35,7 +53,7 @@ are two versions, one is a simple Java App which you can use to directly access the Strolch runtime, and the second is to create a Java Web App, which is the usual way to run Strolch runtimes. -{{% notice tip %}} +{{% notice warning %}} Note: you need to have installed Strolch to your local maven repo, otherwise the archetype won't be available. {{% /notice %}} @@ -44,6 +62,10 @@ archetype won't be available. The following shows the maven command to create the new maven project. Note that you should replace the placeholders in the brackets: +{{% notice tip %}} +The code is also available on [GitHub](https://github.com/strolch-li/strolch/tree/develop/li.strolch.mvn.archetype.webapp). +{{% /notice %}} + ```shell mvn archetype:generate \ -DarchetypeGroupId=li.strolch \ @@ -70,7 +92,7 @@ npm install gulp ``` -{{% notice tip %}} Note: Whenever the bower.json is changed then you should +{{% notice warning %}} Note: Whenever the bower.json is changed then you should again call npm install inside the webapp folder. {{% /notice %}} #### Building the WAR @@ -89,6 +111,10 @@ Happy coding =)) The following shows the maven command to create the new maven project. Note that you should replace the placeholders in the brackets: +{{% notice tip %}} +The code is also available on [GitHub](https://github.com/strolch-li/strolch/tree/develop/li.strolch.mvn.archetype.main). +{{% /notice %}} + ```shell mvn archetype:generate \ -DarchetypeGroupId=li.strolch \ @@ -120,8 +146,7 @@ Happy coding =)) The following tools are used to develop Strolch and Strolch-based projects: -* [IntelliJ](https://www.jetbrains.com/idea/download/#section=linux "{target='_blank'}") -* [Apache Maven](https://maven.apache.org/ "{target='_blank'}") -* [Git SCM](http://git-scm.com/ "{target='_blank'}") - +* [IntelliJ](https://www.jetbrains.com/idea/download/#section=linux) +* [Apache Maven](https://maven.apache.org/) +* [Git SCM](http://git-scm.com/) diff --git a/content/documentation/model.md b/content/documentation/model.md index f09a922..34f3256 100644 --- a/content/documentation/model.md +++ b/content/documentation/model.md @@ -216,11 +216,11 @@ try (StrolchTransaction tx = runtimeMock.openUserTx(certificate, true)) { ``` {{% notice tip %}} -Note: Checkout [example-model.xml](https://github.com/strolch-li/strolch/blob/develop/li.strolch.service/src/test/resources/transienttest/data/example-model.xml "{target='_blank'}") and [SimpleModelTest.java](https://github.com/strolch-li/strolch/blob/develop/li.strolch.service/src/test/java/li/strolch/service/SimpleModelTest.java "{target='_blank'}") for these examples. +Note: Checkout [example-model.xml](https://github.com/strolch-li/strolch/blob/develop/li.strolch.service/src/test/resources/transienttest/data/example-model.xml) and [SimpleModelTest.java](https://github.com/strolch-li/strolch/blob/develop/li.strolch.service/src/test/java/li/strolch/service/SimpleModelTest.java) for these examples. {{% /notice %}} {{% notice tip %}} -There is an XML Schema which defines the model in XML: [StrolchModel-1.6.xsd](/assets/xsd/StrolchModel-1.6.xsd "{target='_blank'}") +There is an XML Schema which defines the model in XML: [StrolchModel-1.6.xsd](/xsd/StrolchModel-1.6.xsd "{target='_blank'}") {{% /notice %}} Here is an example of all the possible elements in Strolch: @@ -233,7 +233,7 @@ xsi:schemaLocation="https://strolch.li/xsd/StrolchModel-1.6.xsd StrolchModel-1.6 - + @@ -247,7 +247,7 @@ xsi:schemaLocation="https://strolch.li/xsd/StrolchModel-1.6.xsd StrolchModel-1.6 - + @@ -264,7 +264,7 @@ xsi:schemaLocation="https://strolch.li/xsd/StrolchModel-1.6.xsd StrolchModel-1.6 - + diff --git a/content/download/_index.md b/content/download/_index.md index 850d38b..de000e1 100644 --- a/content/download/_index.md +++ b/content/download/_index.md @@ -12,3 +12,33 @@ found on the [development](/development) page. Strolch is also built on [Jenkins](https://ci.4trees.ch/), so you can see if the latest version passes all tests. + +## Include as Maven dependency + +The easiest way to include strolch in your project is to use the following maven dependency: + +```xml + + + + + 1.6.100 + + + + + li.strolch + li.strolch.bom + pom + ${strolch.version} + import + + + + +``` + +The bom will include all Strolch modules, you can always exclude a dependency, +or only include the dependencies you really want, e.g. model, etc. + +After including the dependency, checkout [development](/development) on how to turn your project into a Strolch agent. diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html index 92a386d..9788641 100644 --- a/layouts/_default/_markup/render-link.html +++ b/layouts/_default/_markup/render-link.html @@ -11,6 +11,9 @@ {{- printf " %s=%q" $k $v | safeHTMLAttr -}} {{- end -}} {{- end -}} +{{ if gt (strings.Count "http" (.Destination | safeURL)) 0}} + target="_blank" +{{ end }} >{{ .Text | safeHTML }} {{- /* Strip trailing space. */ -}} \ No newline at end of file diff --git a/docs/assets/xsd/StrolchModel-1.6.xsd b/static/xsd/StrolchModel-1.6.xsd similarity index 100% rename from docs/assets/xsd/StrolchModel-1.6.xsd rename to static/xsd/StrolchModel-1.6.xsd