[Major] New blog post, refactoring blog path

This commit is contained in:
Robert von Burg 2021-07-15 01:24:35 +02:00
parent 3250030621
commit 2605fe4e4a
22 changed files with 127 additions and 16 deletions

View File

@ -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.

View File

@ -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`.

View File

@ -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!

View File

@ -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).

View File

@ -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
---

View File

@ -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/)

View File

@ -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
<IncludeFile file="Include1.xml"/>
<Order Id="@test1" Name="Test Order" Type="Order">
<Version Version="0" CreatedBy="test" CreatedAt="2012-11-30T18:12:05.628+01:00" Deleted="false"/>
<Version Version="0" CreatedBy="test" Created="2012-11-30T18:12:05.628+01:00" UpdatedBy="test" Updated="2012-11-30T18:12:05.628+01:00" Deleted="false"/>
<ParameterBag Id="@bag01" Name="Test Bag" Type="TestBag">
<Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true"/>
</ParameterBag>
@ -247,7 +247,7 @@ xsi:schemaLocation="https://strolch.li/xsd/StrolchModel-1.6.xsd StrolchModel-1.6
</Order>
<Resource Id="MyTestResource" Name="Test Name" Type="TestType">
<Version Version="0" CreatedBy="test" CreatedAt="2012-11-30T18:12:05.628+01:00" Deleted="false"/>
<Version Version="0" CreatedBy="test" Created="2012-11-30T18:12:05.628+01:00" UpdatedBy="test" Updated="2012-11-30T18:12:05.628+01:00" Deleted="false"/>
<ParameterBag Id="@bag01" Name="Test Bag 01" Type="TestBag">
<Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true"/>
</ParameterBag>
@ -264,7 +264,7 @@ xsi:schemaLocation="https://strolch.li/xsd/StrolchModel-1.6.xsd StrolchModel-1.6
</Resource>
<Activity Id="activity_1" Name="Activity" Type="parentType" TimeOrdering="Series">
<Version Version="0" CreatedBy="test" CreatedAt="2012-11-30T18:12:05.628+01:00" Deleted="false"/>
<Version Version="0" CreatedBy="test" Created="2012-11-30T18:12:05.628+01:00" UpdatedBy="test" Updated="2012-11-30T18:12:05.628+01:00" Deleted="false"/>
<ParameterBag Id="@bag01" Name="Test Bag" Type="TestBag">
<Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true"/>
</ParameterBag>

View File

@ -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
<project>
<properties>
<strolch.version>1.6.100</strolch.version>
</properties>
<dependencies>
<dependency>
<groupId>li.strolch</groupId>
<artifactId>li.strolch.bom</artifactId>
<type>pom</type>
<version>${strolch.version}</version>
<scope>import</scope>
</dependency>
</dependencies>
</project>
```
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.

View File

@ -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 }}</a>
{{- /* Strip trailing space. */ -}}