[Major] New blog post, refactoring blog path
This commit is contained in:
parent
3250030621
commit
2605fe4e4a
|
@ -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
|
While implementing a use case in a Strolch based application it was detected
|
||||||
that an essential parameter type was missing, the `DurationParameter`. This
|
that an essential parameter type was missing, the `DurationParameter`. This
|
||||||
parameter currently stores the value as a long in memory and serializes to
|
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
|
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.
|
`Period` class in the new Java8 date and time API.
|
||||||
|
|
|
@ -46,7 +46,7 @@ Further new features and changes are:
|
||||||
* Added audits for login/logout of users.
|
* Added audits for login/logout of users.
|
||||||
* Added audits for changes to privilege management.
|
* Added audits for changes to privilege management.
|
||||||
* PostgreSQL persistence layer now
|
* PostgreSQL persistence layer now
|
||||||
uses [HikariCP](https://github.com/brettwooldridge/HikariCP "{target='_blank'}")
|
uses [HikariCP](https://github.com/brettwooldridge/HikariCP)
|
||||||
for connection pooling.
|
for connection pooling.
|
||||||
* Implemented a performance test project
|
* Implemented a performance test project
|
||||||
* Added new Parameters of type `IntegerList`, `FloatList` and `LongList`.
|
* Added new Parameters of type `IntegerList`, `FloatList` and `LongList`.
|
|
@ -20,7 +20,7 @@ how models are searched. Thus the search API was born.
|
||||||
Go check out the [Strolch Search](/documentation/searches) documentation and
|
Go check out the [Strolch Search](/documentation/searches) documentation and
|
||||||
then go rewrite your searches =)).
|
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!
|
those juicy changes!
|
||||||
|
|
||||||
|
|
|
@ -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).
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,9 @@
|
||||||
title: 'XXXXX'
|
title: 'XXXXX'
|
||||||
description: 'XXXXX'
|
description: 'XXXXX'
|
||||||
weight: -9999999
|
weight: -9999999
|
||||||
|
date: 2021-01-01T00:00:00+01:00
|
||||||
|
LastModifierDisplayName: "Robert von Burg"
|
||||||
|
LastModifierEmail: "eitch@eitchnet.ch"
|
||||||
draft: true
|
draft: true
|
||||||
---
|
---
|
||||||
|
|
|
@ -10,7 +10,11 @@ To start developing Strolch you need an installed:
|
||||||
|
|
||||||
## Building Strolch
|
## 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
|
```shell
|
||||||
git clone https://github.com/strolch-li/strolch.git
|
git clone https://github.com/strolch-li/strolch.git
|
||||||
|
@ -18,7 +22,7 @@ cd strolch
|
||||||
mvn clean install -DskipTests
|
mvn clean install -DskipTests
|
||||||
```
|
```
|
||||||
|
|
||||||
{{% notice tip %}}
|
{{% notice warning %}}
|
||||||
Note: To run the tests you will need to configure the PostgreSQL Databases. See
|
Note: To run the tests you will need to configure the PostgreSQL Databases. See
|
||||||
the README in the module.
|
the README in the module.
|
||||||
{{% /notice %}}
|
{{% /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
|
or, far more interesting, start developing your projects using the Strolch
|
||||||
agent.
|
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
|
## Creating a Strolch App
|
||||||
|
|
||||||
To create your own Strolch App, you can use Maven's archetype generation. There
|
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
|
the Strolch runtime, and the second is to create a Java Web App, which is the
|
||||||
usual way to run Strolch runtimes.
|
usual way to run Strolch runtimes.
|
||||||
|
|
||||||
{{% notice tip %}}
|
{{% notice warning %}}
|
||||||
Note: you need to have installed Strolch to your local maven repo, otherwise the
|
Note: you need to have installed Strolch to your local maven repo, otherwise the
|
||||||
archetype won't be available.
|
archetype won't be available.
|
||||||
{{% /notice %}}
|
{{% /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:
|
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
|
```shell
|
||||||
mvn archetype:generate \
|
mvn archetype:generate \
|
||||||
-DarchetypeGroupId=li.strolch \
|
-DarchetypeGroupId=li.strolch \
|
||||||
|
@ -70,7 +92,7 @@ npm install
|
||||||
gulp
|
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 %}}
|
again call npm install inside the webapp folder. {{% /notice %}}
|
||||||
|
|
||||||
#### Building the WAR
|
#### Building the WAR
|
||||||
|
@ -89,6 +111,10 @@ Happy coding =))
|
||||||
The following shows the maven command to create the new maven project. Note that
|
The following shows the maven command to create the new maven project. Note that
|
||||||
you should replace the placeholders in the brackets:
|
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
|
```shell
|
||||||
mvn archetype:generate \
|
mvn archetype:generate \
|
||||||
-DarchetypeGroupId=li.strolch \
|
-DarchetypeGroupId=li.strolch \
|
||||||
|
@ -120,8 +146,7 @@ Happy coding =))
|
||||||
|
|
||||||
The following tools are used to develop Strolch and Strolch-based projects:
|
The following tools are used to develop Strolch and Strolch-based projects:
|
||||||
|
|
||||||
* [IntelliJ](https://www.jetbrains.com/idea/download/#section=linux "{target='_blank'}")
|
* [IntelliJ](https://www.jetbrains.com/idea/download/#section=linux)
|
||||||
* [Apache Maven](https://maven.apache.org/ "{target='_blank'}")
|
* [Apache Maven](https://maven.apache.org/)
|
||||||
* [Git SCM](http://git-scm.com/ "{target='_blank'}")
|
* [Git SCM](http://git-scm.com/)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -216,11 +216,11 @@ try (StrolchTransaction tx = runtimeMock.openUserTx(certificate, true)) {
|
||||||
```
|
```
|
||||||
|
|
||||||
{{% notice tip %}}
|
{{% 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 %}}
|
||||||
|
|
||||||
{{% notice tip %}}
|
{{% 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 %}}
|
{{% /notice %}}
|
||||||
|
|
||||||
Here is an example of all the possible elements in Strolch:
|
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"/>
|
<IncludeFile file="Include1.xml"/>
|
||||||
|
|
||||||
<Order Id="@test1" Name="Test Order" Type="Order">
|
<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">
|
<ParameterBag Id="@bag01" Name="Test Bag" Type="TestBag">
|
||||||
<Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true"/>
|
<Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true"/>
|
||||||
</ParameterBag>
|
</ParameterBag>
|
||||||
|
@ -247,7 +247,7 @@ xsi:schemaLocation="https://strolch.li/xsd/StrolchModel-1.6.xsd StrolchModel-1.6
|
||||||
</Order>
|
</Order>
|
||||||
|
|
||||||
<Resource Id="MyTestResource" Name="Test Name" Type="TestType">
|
<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">
|
<ParameterBag Id="@bag01" Name="Test Bag 01" Type="TestBag">
|
||||||
<Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true"/>
|
<Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true"/>
|
||||||
</ParameterBag>
|
</ParameterBag>
|
||||||
|
@ -264,7 +264,7 @@ xsi:schemaLocation="https://strolch.li/xsd/StrolchModel-1.6.xsd StrolchModel-1.6
|
||||||
</Resource>
|
</Resource>
|
||||||
|
|
||||||
<Activity Id="activity_1" Name="Activity" Type="parentType" TimeOrdering="Series">
|
<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">
|
<ParameterBag Id="@bag01" Name="Test Bag" Type="TestBag">
|
||||||
<Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true"/>
|
<Parameter Id="@param1" Name="Boolean Param" Type="Boolean" Value="true"/>
|
||||||
</ParameterBag>
|
</ParameterBag>
|
||||||
|
|
|
@ -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
|
Strolch is also built on [Jenkins](https://ci.4trees.ch/), so you can see if the
|
||||||
latest version passes all tests.
|
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.
|
||||||
|
|
|
@ -11,6 +11,9 @@
|
||||||
{{- printf " %s=%q" $k $v | safeHTMLAttr -}}
|
{{- printf " %s=%q" $k $v | safeHTMLAttr -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{ if gt (strings.Count "http" (.Destination | safeURL)) 0}}
|
||||||
|
target="_blank"
|
||||||
|
{{ end }}
|
||||||
>{{ .Text | safeHTML }}</a>
|
>{{ .Text | safeHTML }}</a>
|
||||||
|
|
||||||
{{- /* Strip trailing space. */ -}}
|
{{- /* Strip trailing space. */ -}}
|
Loading…
Reference in New Issue