From 43ada810fbf5ce499b6886349392bbfc1a715c71 Mon Sep 17 00:00:00 2001 From: Strolch GitHub Actions Build Date: Fri, 11 Nov 2022 07:35:56 +0000 Subject: [PATCH] [AUTO] New version of website --- docs/404.html | 2 +- docs/api/index.html | 8 ++++---- docs/blog/index.html | 8 ++++---- docs/blog/post-00001/index.html | 8 ++++---- docs/blog/post-00002/index.html | 8 ++++---- docs/blog/post-00003/index.html | 8 ++++---- docs/blog/post-00004/index.html | 8 ++++---- docs/blog/post-00005/index.html | 8 ++++---- docs/blog/post-00006/index.html | 8 ++++---- docs/blog/post-00007/index.html | 8 ++++---- docs/blog/post-00008/index.html | 8 ++++---- docs/blog/post-00009/index.html | 8 ++++---- docs/blog/post-00010/index.html | 8 ++++---- docs/blog/post-00011/index.html | 8 ++++---- docs/blog/post-00012/index.html | 8 ++++---- docs/blog/post-00013/index.html | 8 ++++---- docs/blog/post-00014/index.html | 8 ++++---- docs/blog/post-00015/index.html | 8 ++++---- docs/blog/post-00016/index.html | 8 ++++---- docs/blog/post-00017/index.html | 8 ++++---- docs/blog/post-00018/index.html | 6 +++--- docs/categories/index.html | 6 +++--- docs/development/building/index.html | 8 ++++---- docs/development/converting-existing/index.html | 8 ++++---- docs/development/index.html | 6 +++--- docs/development/main-class-app/index.html | 8 ++++---- docs/development/maven-archetypes/index.html | 8 ++++---- docs/development/prerequisites/index.html | 8 ++++---- docs/development/web-app/index.html | 8 ++++---- docs/documentation/architecture/index.html | 8 ++++---- docs/documentation/components/index.html | 8 ++++---- docs/documentation/do-and-donts/index.html | 6 +++--- docs/documentation/index.html | 8 ++++---- docs/documentation/model/index.html | 8 ++++---- docs/documentation/observers/index.html | 8 ++++---- docs/documentation/policies/index.html | 8 ++++---- docs/documentation/priviles/index.html | 8 ++++---- docs/documentation/queries/index.html | 8 ++++---- docs/documentation/realms/index.html | 8 ++++---- docs/documentation/reports/index.html | 8 ++++---- docs/documentation/runtime-configuration/index.html | 8 ++++---- docs/documentation/searches/index.html | 8 ++++---- docs/documentation/services-and-commands/index.html | 8 ++++---- docs/documentation/transactions/index.html | 8 ++++---- docs/documentation/versioning/index.html | 8 ++++---- docs/download/index.html | 8 ++++---- docs/history/index.html | 6 +++--- docs/index.html | 6 +++--- docs/plc/architecture/index.html | 8 ++++---- docs/plc/example-set-up/index.html | 8 ++++---- docs/plc/index.html | 8 ++++---- docs/tags/index.html | 6 +++--- docs/tutorial/configuration/index.html | 8 ++++---- docs/tutorial/crud-book/index.html | 8 ++++---- docs/tutorial/index.html | 8 ++++---- docs/tutorial/model/index.html | 8 ++++---- 56 files changed, 214 insertions(+), 214 deletions(-) diff --git a/docs/404.html b/docs/404.html index b09af30..e8940c5 100644 --- a/docs/404.html +++ b/docs/404.html @@ -1 +1 @@ -404 Page not found

Error

Woops. Looks like this page doesn't exist ¯\_(ツ)_/¯.

Go to homepage

Page not found!

\ No newline at end of file +404 Page not found

Error

Woops. Looks like this page doesn't exist ¯\_(ツ)_/¯.

Go to homepage

Page not found!

\ No newline at end of file diff --git a/docs/api/index.html b/docs/api/index.html index 3ded897..393a3cc 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -1,7 +1,7 @@ -API - Strolch

API

Overview

The Strolch API revolves around the StrolchTransaction object. The main concept is to implement your use cases in Service implementations. You open a transaction using the openTx(String)-method and then perform the use case by adding your Command instances to the transaction.

Transactions are opened on a StrolchRealm. The realms are used to @@ -129,4 +129,4 @@ accessed from the ComponentContainer:

}
   }
 }
-
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/blog/index.html b/docs/blog/index.html index 3ca7278..e55f3a0 100644 --- a/docs/blog/index.html +++ b/docs/blog/index.html @@ -1,7 +1,7 @@ -Blog - Strolch

Blog

About

The official Strolch blog with news, ideas, and thoughts on using Strolch.

Strolch is an open source component based software agent written in Java and can be compared, in a light sense, with the Java EE stack: Strolch takes care of persistence, implements Services for use cases, Commands as re-usable algorithms -and has a parameterized data model.

Entries

\ No newline at end of file +and has a parameterized data model.

Entries

\ No newline at end of file diff --git a/docs/blog/post-00001/index.html b/docs/blog/post-00001/index.html index 003116c..71b0f84 100644 --- a/docs/blog/post-00001/index.html +++ b/docs/blog/post-00001/index.html @@ -1,5 +1,5 @@ -Release 1.0.0-RC1 - Strolch

Release 1.0.0-RC1

Release 1.0.0-RC1

With the Go-Live of a Strolch-based application around the corner, it is time to release Version 1.0.0 of Strolch. To this affect we have now released version 1.0.0-RC1 which can be downloaded on the download page.


Story

Strolch as a component based software agent has been two years in the making. The concepts in Strolch have been taken from a proprietary planning, scheduling and controlling software agent, which was, and is been, used in industrial automation, logistics and production. Strolch was created to bring the concepts, which were working well for small teams to go-live with large projects in short to medium time-frames to the open source world.

Strolch was completely rewritten using the key concepts of a parameterized object model and a component based agent but remembering which clutches the original implementation had, thus trying to eradicate those without bringing in new ones. It might not be perfect in version 1.0.0, but it is a starting point form which to carry on from.

Features

Strolch isn’t feature complete by a long shot, but it sure has got many features which make it useable in a concrete project, thus making sure it is not vaporware =)

The following is a list of key features, many of which were driven by concrete project requirements:

  • Separate containers for models (mandates)
  • Parameterized model with full CRUD for Resource and Order objects
  • Timed values on Resources to map values by time
  • Built-in versioning of model - configurable by Realm
  • Transparent runtime modes: TRANSIENT, CACHED, TRANSACTIONAL*
  • Service and Command pattern for reusing functionality
  • XML File based persistence layer*
  • PostgreSQL persistence layer*
  • Querying using a fluent API
  • Services to import and export a model to XML
  • Integrated authentication and authorization to validate user privileges using Privilege
  • Ready to use Observer pattern
  • (currently) Read-only REST API to access the agent model remotely
  • Configurable environments
  • Opt-in audit trail (including read access, and the audits themselves)
  • Basic components required to communicate with external devices using TCP/IP
  • With the light weight implementation, where there are basically no third party libraries required for the normal runtime, Strolch has a minimal foot print which allows it to run on small devices for instance a BeagleBone Black. Using the in-memory mode, it is an easy feat to set up test environments with little to no further requirements than the JVM.

Future

So what is planned for the future? Although Strolch has quite a few interesting features, it is by no way feature complete. The greatest wish is for Strolch to become a community driven platform, so many new features will arise in the future, but at least one major future feature which will be tackled in the near future and will certainly drive the next major release is a planning and scheduling engine using a Gantt chart to visualize the schedule.

The planning engine will use the timed values on Resources extensively to create a planning engine on which Workflows can be placed and allowing to detect violations and bottlenecks.

An extension of the planning of the scheduling engine will allow more than just placing Workflows on Resources, but actually searching groups of Resources for a time slot of when to place tasks. This will allow to use capacity constraints to plan and schedule workflows using different algorithms, and respecting calendars etc.

Further time will be spent on giving Strolch it’s own UI. Currently the idea is to use Google’s Polymer to implement the UI, thus creating reusable widgets that can be used in projects.

Take it for a spin

So, now the important part is for new users to start using Strolch for their own projects. Go ahead, check out the Downloads page for the latest release and then checkout the two tutorial applications to get yourself up to speed!

Don’t hesitate to send us feedback or questions, we will be delighted to help you get your Strolch-based application up and running, or provide feedback to your concerns!

Developers

Robert von Burg +Release 1.0.0-RC1 - Strolch

Release 1.0.0-RC1

Release 1.0.0-RC1

With the Go-Live of a Strolch-based application around the corner, it is time to release Version 1.0.0 of Strolch. To this affect we have now released version 1.0.0-RC1 which can be downloaded on the download page.


Story

Strolch as a component based software agent has been two years in the making. The concepts in Strolch have been taken from a proprietary planning, scheduling and controlling software agent, which was, and is been, used in industrial automation, logistics and production. Strolch was created to bring the concepts, which were working well for small teams to go-live with large projects in short to medium time-frames to the open source world.

Strolch was completely rewritten using the key concepts of a parameterized object model and a component based agent but remembering which clutches the original implementation had, thus trying to eradicate those without bringing in new ones. It might not be perfect in version 1.0.0, but it is a starting point form which to carry on from.

Features

Strolch isn’t feature complete by a long shot, but it sure has got many features which make it useable in a concrete project, thus making sure it is not vaporware =)

The following is a list of key features, many of which were driven by concrete project requirements:

  • Separate containers for models (mandates)
  • Parameterized model with full CRUD for Resource and Order objects
  • Timed values on Resources to map values by time
  • Built-in versioning of model - configurable by Realm
  • Transparent runtime modes: TRANSIENT, CACHED, TRANSACTIONAL*
  • Service and Command pattern for reusing functionality
  • XML File based persistence layer*
  • PostgreSQL persistence layer*
  • Querying using a fluent API
  • Services to import and export a model to XML
  • Integrated authentication and authorization to validate user privileges using Privilege
  • Ready to use Observer pattern
  • (currently) Read-only REST API to access the agent model remotely
  • Configurable environments
  • Opt-in audit trail (including read access, and the audits themselves)
  • Basic components required to communicate with external devices using TCP/IP
  • With the light weight implementation, where there are basically no third party libraries required for the normal runtime, Strolch has a minimal foot print which allows it to run on small devices for instance a BeagleBone Black. Using the in-memory mode, it is an easy feat to set up test environments with little to no further requirements than the JVM.

Future

So what is planned for the future? Although Strolch has quite a few interesting features, it is by no way feature complete. The greatest wish is for Strolch to become a community driven platform, so many new features will arise in the future, but at least one major future feature which will be tackled in the near future and will certainly drive the next major release is a planning and scheduling engine using a Gantt chart to visualize the schedule.

The planning engine will use the timed values on Resources extensively to create a planning engine on which Workflows can be placed and allowing to detect violations and bottlenecks.

An extension of the planning of the scheduling engine will allow more than just placing Workflows on Resources, but actually searching groups of Resources for a time slot of when to place tasks. This will allow to use capacity constraints to plan and schedule workflows using different algorithms, and respecting calendars etc.

Further time will be spent on giving Strolch it’s own UI. Currently the idea is to use Google’s Polymer to implement the UI, thus creating reusable widgets that can be used in projects.

Take it for a spin

So, now the important part is for new users to start using Strolch for their own projects. Go ahead, check out the Downloads page for the latest release and then checkout the two tutorial applications to get yourself up to speed!

Don’t hesitate to send us feedback or questions, we will be delighted to help you get your Strolch-based application up and running, or provide feedback to your concerns!

Developers

Robert von Burg Reto Breitenmoser -Dr. Martin Smock

*Currently Transactional mode is missing concrete implementation for querying for the XML persistence

\ No newline at end of file +Dr. Martin Smock

*Currently Transactional mode is missing concrete implementation for querying for the XML persistence

\ No newline at end of file diff --git a/docs/blog/post-00002/index.html b/docs/blog/post-00002/index.html index 1210c3e..87d05ae 100644 --- a/docs/blog/post-00002/index.html +++ b/docs/blog/post-00002/index.html @@ -1,6 +1,6 @@ -Release 1.0.0-RC2 - Strolch

Release 1.0.0-RC2

Release 1.0.0-RC2

Scratch that RC1, here is the brand new 1.0.0-RC2 which can be downloaded on the +Release 1.0.0-RC2 - Strolch

Release 1.0.0-RC2

Release 1.0.0-RC2

Scratch that RC1, here is the brand new 1.0.0-RC2 which can be downloaded on the download page.


So, as expected there were a few bugs, for instance the Strolch tutorial apps didn’t start, so now i fixed those and released an RC2. Go get it and give it a -try!

\ No newline at end of file +try!

\ No newline at end of file diff --git a/docs/blog/post-00003/index.html b/docs/blog/post-00003/index.html index 8e96a0a..6ac01cc 100644 --- a/docs/blog/post-00003/index.html +++ b/docs/blog/post-00003/index.html @@ -1,6 +1,6 @@ -DB Initialization: Release 1.0.0-RC3 - Strolch

DB Initialization: Release 1.0.0-RC3

DB Initialization: Release 1.0.0-RC3

Important feature Database Initialization added: Release of 1.0.0-RC3 which can +DB Initialization: Release 1.0.0-RC3 - Strolch

DB Initialization: Release 1.0.0-RC3

DB Initialization: Release 1.0.0-RC3

Important feature Database Initialization added: Release of 1.0.0-RC3 which can be downloaded on the download page.


When living continuous integration and continuous delivery, it is vital that things like database migrations and initialization are performed in a controlled, but automatic way.

A Strolch-based application is using the PostgreSQL persistence layer. The @@ -19,4 +19,4 @@ 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. 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.

\ No newline at end of file +this user can simply be deleted.

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

\ No newline at end of file diff --git a/docs/blog/post-00004/index.html b/docs/blog/post-00004/index.html index 8f2b86e..0616b96 100644 --- a/docs/blog/post-00004/index.html +++ b/docs/blog/post-00004/index.html @@ -1,9 +1,9 @@ -DurationParameter and other minor changes: Release 1.0.0-RC4 - Strolch

DurationParameter and other minor changes: Release 1.0.0-RC4

DurationParameter and other minor changes: Release 1.0.0-RC4

New DurationParameter and additional minor changes: Release of 1.0.0-RC4 which +DurationParameter and other minor changes: Release 1.0.0-RC4 - Strolch

DurationParameter and other minor changes: Release 1.0.0-RC4

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

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

  • 32c1785 [Major] Added Session timeout handling
  • d55371e [Minor] fixed component version descriptions
  • c1cdfbb [Bugfix] added missing cloning of StringSetTimedState in Resources
  • 8f50a15 [Major] changed XML format of time value of TimedStates to be ISO8601
  • 5fbbe50 [Bugfix] fix NPE when cloning Resources with no state vars
  • b77f4b2 [New] added TimeVariable.clear()-method
  • Updated sub-module ch.eitchnet.utils to 906d24d
  • Updated sub-module ch.eitchnet.privilege to aa16887

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

\ No newline at end of file +Period class in the new Java8 date and time API.

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

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

\ No newline at end of file diff --git a/docs/blog/post-00005/index.html b/docs/blog/post-00005/index.html index 5514fb4..d7b294b 100644 --- a/docs/blog/post-00005/index.html +++ b/docs/blog/post-00005/index.html @@ -1,6 +1,6 @@ -Strolch Release 1.0.0 - Strolch

Strolch Release 1.0.0

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 +Strolch Release 1.0.0 - Strolch

Strolch Release 1.0.0

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 @@ -17,4 +17,4 @@ data bases where data shouldn’t go lost.
  • And many more…
  • < 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.

\ No newline at end of file +REST API. Looking forward to a wonderful next Strolch release.

\ No newline at end of file diff --git a/docs/blog/post-00006/index.html b/docs/blog/post-00006/index.html index 44be813..15d220a 100644 --- a/docs/blog/post-00006/index.html +++ b/docs/blog/post-00006/index.html @@ -1,10 +1,10 @@ -Strolch Documentation - Strolch

Strolch Documentation

Strolch Documentation

Any good software has some decent documentation explaining concepts, best +Strolch Documentation - Strolch

Strolch Documentation

Strolch Documentation

Any good software has some decent documentation explaining concepts, best practices and gives examples.


So this post is to announce that there is now a new page on Strolch’s website with a bit of documentation. This first documentation explains the Strolch runtime and some of the do and don’t in Strolch code.

Bear with us, writing documentation takes time and can be outdated quickly, so we will make an effort to keep everything up to date and add more documentation, but this is a start.

So go ahead and read the documentation , and if you haven’t already, also read the rest of the website which should give some more insight into the what, why -and how of Strolch.

\ No newline at end of file +and how of Strolch.

\ No newline at end of file diff --git a/docs/blog/post-00007/index.html b/docs/blog/post-00007/index.html index 6cd7c99..cca4677 100644 --- a/docs/blog/post-00007/index.html +++ b/docs/blog/post-00007/index.html @@ -1,6 +1,6 @@ -Activities: Beginning of the planning engine - Strolch

Activities: Beginning of the planning engine

Activities: Beginning of the planning engine

The ground work of the Strolch planning engine has been laid.


One of the core ideas in building Strolch was to create a planning engine. The +Activities: Beginning of the planning engine - Strolch

Activities: Beginning of the planning engine

Activities: Beginning of the planning engine

The ground work of the Strolch planning engine has been laid.


One of the core ideas in building Strolch was to create a planning engine. The planning engine would work in combination of Order objects representing customer orders, Resource objects representing machines, human resources, etc., and Activity/Action hierarchies defining a workflow.

With the latest couple of commits to Strolch we have now added Activities and a @@ -16,4 +16,4 @@ model so that UIs can be built to visualize the over-use of Resources.

In apply the changes onto a Resource, but to actually search the Resource for time slots when the value changes would not violate any constraints applied to the resource.

We are very much looking forward to these new features. Stay tuned for your -updates - even though they do take their time to arrive =).

\ No newline at end of file +updates - even though they do take their time to arrive =).

\ No newline at end of file diff --git a/docs/blog/post-00008/index.html b/docs/blog/post-00008/index.html index db3482b..6a6cc2a 100644 --- a/docs/blog/post-00008/index.html +++ b/docs/blog/post-00008/index.html @@ -1,6 +1,6 @@ -Strolch Update - Strolch

Strolch Update

Strolch Update

Long due update on Strolch development.


Although we have been rather quiet in the last couple of months, anyone viewing +Strolch Update - Strolch

Strolch Update

Strolch Update

Long due update on Strolch development.


Although we have been rather quiet in the last couple of months, anyone viewing Strolch’s commit log, will see that we certainly didn’t halt Strolch development.

We have been hard at work, using Strolch in projects, which required many new features and fixes. The commit log shows as of today over 180 commits since the @@ -14,4 +14,4 @@ for connection pooling.

  • Implemented a performance test project
  • A planning engine functionality of Strolch.
  • Adding the persisting and reloading of user sessions, so that a new start of Strolch does not logout users.
  • Implemented to JSON visitors for all root elements.
  • So, although we’ve been rather quiet on the blog and on social media, we have not been quiet in Strolch’s development. We are planning to release version -1.1.0 soon, so stay tuned!

    \ No newline at end of file +1.1.0 soon, so stay tuned!

    \ No newline at end of file diff --git a/docs/blog/post-00009/index.html b/docs/blog/post-00009/index.html index 3af3888..067b00b 100644 --- a/docs/blog/post-00009/index.html +++ b/docs/blog/post-00009/index.html @@ -1,8 +1,8 @@ -Release 1.2.0 - Strolch

    Release 1.2.0

    Release 1.2.0

    Release of Strolch 1.2.0


    A few months ago we informed of the soon to be released version 1.1.0. Well, we +Release 1.2.0 - Strolch

    Release 1.2.0

    Release 1.2.0

    Release of Strolch 1.2.0


    A few months ago we informed of the soon to be released version 1.1.0. Well, we decided to jump to 1.2.0 because we did some refactorings. All the eitchnet projects have been melted into Strolch and thus now it’s all one nice package. This will result in simpler development and less constraints on APIs between the two projects.

    Other than that, not much changed, but we are continually working on Strolch, so -go grab your latest copy and have fun coding!

    \ No newline at end of file +go grab your latest copy and have fun coding!

    \ No newline at end of file diff --git a/docs/blog/post-00010/index.html b/docs/blog/post-00010/index.html index a2373cc..cb4c904 100644 --- a/docs/blog/post-00010/index.html +++ b/docs/blog/post-00010/index.html @@ -1,6 +1,6 @@ -Versioning of objects - Strolch

    Versioning of objects

    Versioning of objects

    Opt-In versioning of objects


    A major new feature has landed in Strolch. Now, using opt-in, it is possible to +Versioning of objects - Strolch

    Versioning of objects

    Versioning of objects

    Opt-In versioning of objects


    A major new feature has landed in Strolch. Now, using opt-in, it is possible to have all changes to the object model be versioned. This means that any change to Order, Resource or Activity is automatically versioned and one can then revert to this version later on.

    This will make it far easier to implement undo operations in applications since @@ -8,4 +8,4 @@ it is an inherent part of the lifecycle of objects in Strolch.

    Since Strol option is opt-in.

    A side affect of this new feature is that we have for the time being not ported the XML persistence layer. If this is required, then someone drop us a note and we’ll check on it.

    So now go ahead and add <enableVersioning>true</enableVersioning> to your Realm -so that versioning is enabled.

    \ No newline at end of file +so that versioning is enabled.

    \ No newline at end of file diff --git a/docs/blog/post-00011/index.html b/docs/blog/post-00011/index.html index 75e9724..72374cd 100644 --- a/docs/blog/post-00011/index.html +++ b/docs/blog/post-00011/index.html @@ -1,9 +1,9 @@ -Strolch now on Maven Central - Strolch

    Strolch now on Maven Central

    Strolch now on Maven Central

    Release Version 1.3.0 released and deployed to Maven Central


    We have released a new version of Strolch so that you can now go and use the the +Strolch now on Maven Central - Strolch

    Strolch now on Maven Central

    Strolch now on Maven Central

    Release Version 1.3.0 released and deployed to Maven Central


    We have released a new version of Strolch so that you can now go and use the the latest features in Strolch.

    Further we have now deployed Strolch to Maven Central, so it is easier than ever to use Strolch in your projects. No need to download first or use a special repository - just define the dependencies as you would any other dependency.

    Some of the new features:

    • Marshallers for JSON
    • Versioning built into Strolch
    • Implemented password reset API for Privilege
    • New Component MailHandler
    • New ToFlatJsonVisitor for simple marshalling in REST APIs
    • Added CRUD Commands and Services for Activities
    • Further additional bugfixes

    Strolch has also been moved to another organisation on GitHub, so if you’re compiling Strolch from source, please update your GIT remote -configurations.

    Have fun using the latest and greatest version of Strolch!

    \ No newline at end of file +configurations.

    Have fun using the latest and greatest version of Strolch!

    \ No newline at end of file diff --git a/docs/blog/post-00012/index.html b/docs/blog/post-00012/index.html index f3d47dd..c270791 100644 --- a/docs/blog/post-00012/index.html +++ b/docs/blog/post-00012/index.html @@ -1,6 +1,6 @@ -Wow, the many changes! - Strolch

    Wow, the many changes!

    Wow, the many changes!

    So many changes, and so long no update - not good!


    Oh boy, have we forgotten to update you all on the latest awesome features in +Wow, the many changes! - Strolch

    Wow, the many changes!

    Wow, the many changes!

    So many changes, and so long no update - not good!


    Oh boy, have we forgotten to update you all on the latest awesome features in Strolch! There are over 123 commits since the last tag 1.3.0, so that alone merits a new blog post.

    Currently the latest tag is 1.5.5, but this version is actually already quite @@ -24,4 +24,4 @@ a StrolchJs re Strolch specific things are handled e.g. querying the authenticated user’s roles etc.

    The release of the next Strolch version isn’t defined yet, as we are internally building a project on all these changes and with the release 1.0.0 of that -project (which will be soon), we shall perform the next release of Strolch.

    Until then, happy coding!

    \ No newline at end of file +project (which will be soon), we shall perform the next release of Strolch.

    Until then, happy coding!

    \ No newline at end of file diff --git a/docs/blog/post-00013/index.html b/docs/blog/post-00013/index.html index a55761c..f15b714 100644 --- a/docs/blog/post-00013/index.html +++ b/docs/blog/post-00013/index.html @@ -1,7 +1,7 @@ -Strolch Searches - Strolch

    Strolch Searches

    Strolch Searches

    Strolch queries are deprecated!


    Strolch has had once again many changes, and fixes etc. One important thing to +Strolch Searches - Strolch

    Strolch Searches

    Strolch Searches

    Strolch queries are deprecated!


    Strolch has had once again many changes, and fixes etc. One important thing to note is that we have removed support for transactional mode and have rewritten how models are searched. Thus the search API was born.

    Go check out the Strolch Search documentation and then go rewrite your searches =)).

    Strolch tag 1.6.51 has all -those juicy changes!

    \ No newline at end of file +those juicy changes!

    \ No newline at end of file diff --git a/docs/blog/post-00014/index.html b/docs/blog/post-00014/index.html index 10abc5c..b0cfa23 100644 --- a/docs/blog/post-00014/index.html +++ b/docs/blog/post-00014/index.html @@ -1,6 +1,6 @@ -Strolch Reports - Strolch

    Strolch Reports

    Strolch Reports

    Strolch can do reports!


    A feature we haven’t written about yet is the report API. Strolch has it’s own +Strolch Reports - Strolch

    Strolch Reports

    Strolch Reports

    Strolch can do reports!


    A feature we haven’t written about yet is the report API. Strolch has it’s own API to generate reports of data, and since we have a generic model, we use Resource of type Report to define them.

    Go check out the documentation and then enjoy using this easy way to deliver the -reports your peers require.

    \ No newline at end of file +reports your peers require.

    \ No newline at end of file diff --git a/docs/blog/post-00015/index.html b/docs/blog/post-00015/index.html index 3fe1858..889c979 100644 --- a/docs/blog/post-00015/index.html +++ b/docs/blog/post-00015/index.html @@ -1,10 +1,10 @@ -Release of Strolch 1.6.100 - Strolch

    Release of Strolch 1.6.100

    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 +Release of Strolch 1.6.100 - Strolch

    Release of Strolch 1.6.100

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

    \ No newline at end of file +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.

    \ No newline at end of file diff --git a/docs/blog/post-00016/index.html b/docs/blog/post-00016/index.html index 21f0e09..c8ac3ec 100644 --- a/docs/blog/post-00016/index.html +++ b/docs/blog/post-00016/index.html @@ -1,4 +1,4 @@ -Strolch PLC now also on Maven Central - Strolch

    Strolch PLC now also on Maven Central

    Strolch PLC now also on Maven Central

    Strolch PLC version 1.0.7 has been deployed to Maven Central for easier integration into your projects


    To more easily use Strolch PLC in your project, we have now deployed the latest Strolch PLC version to Maven Central. -This version 1.0.7 depends on Strolch version 1.6.100.

    Enjoy coding!

    \ No newline at end of file +Strolch PLC now also on Maven Central - Strolch

    Strolch PLC now also on Maven Central

    Strolch PLC now also on Maven Central

    Strolch PLC version 1.0.7 has been deployed to Maven Central for easier integration into your projects


    To more easily use Strolch PLC in your project, we have now deployed the latest Strolch PLC version to Maven Central. +This version 1.0.7 depends on Strolch version 1.6.100.

    Enjoy coding!

    \ No newline at end of file diff --git a/docs/blog/post-00017/index.html b/docs/blog/post-00017/index.html index 280a6d6..3122c6e 100644 --- a/docs/blog/post-00017/index.html +++ b/docs/blog/post-00017/index.html @@ -1,6 +1,6 @@ -Strolch 1.8.5 and PLC 1.2.2 are out - Strolch

    Strolch 1.8.5 and PLC 1.2.2 are out

    Strolch 1.8.5 and PLC 1.2.2 are out

    JDK 17 ready!


    Unbelievable, but the entire 1.7.x branch was never blogged about or deployed to Maven. We did do quite a few releases +Strolch 1.8.5 and PLC 1.2.2 are out - Strolch

    Strolch 1.8.5 and PLC 1.2.2 are out

    Strolch 1.8.5 and PLC 1.2.2 are out

    JDK 17 ready!


    Unbelievable, but the entire 1.7.x branch was never blogged about or deployed to Maven. We did do quite a few releases of the Java 11 version, but never got around to releasing to Maven.

    Now we have released the 1.8.x branch of Strolch and deployed to Maven Central.

    The 1.8.x branch requires JDK 17, but is still on Tomcat 9.x. We will create a new branch for Tomcat 10.x and release -that at a later date.

    We also just released the Strolch PLC 1.2.x branch. This branch uses Strolch 1.8.x and is production ready.

    So, Strolch 1.8.5 is out the door, go ahead and try it out.

    \ No newline at end of file +that at a later date.

    We also just released the Strolch PLC 1.2.x branch. This branch uses Strolch 1.8.x and is production ready.

    So, Strolch 1.8.5 is out the door, go ahead and try it out.

    \ No newline at end of file diff --git a/docs/blog/post-00018/index.html b/docs/blog/post-00018/index.html index 30afefc..aed7508 100644 --- a/docs/blog/post-00018/index.html +++ b/docs/blog/post-00018/index.html @@ -1,3 +1,3 @@ -Strolch PLC 1.2.3 released - Strolch

    Strolch PLC 1.2.3 released

    Strolch PLC 1.2.3 released

    Strolch PLC version 1.2.3 has been deployed to Maven Central'


    This is a maintenance release, as 1.2.2 pointed to Strolch 1.8.4 which was not released to Maven Central.

    \ No newline at end of file +Strolch PLC 1.2.3 released - Strolch

    Strolch PLC 1.2.3 released

    Strolch PLC 1.2.3 released

    Strolch PLC version 1.2.3 has been deployed to Maven Central'


    This is a maintenance release, as 1.2.2 pointed to Strolch 1.8.4 which was not released to Maven Central.

    \ No newline at end of file diff --git a/docs/categories/index.html b/docs/categories/index.html index 6859c06..b5c906c 100644 --- a/docs/categories/index.html +++ b/docs/categories/index.html @@ -1,3 +1,3 @@ -Categories - Strolch

    category :: -Categories

      \ No newline at end of file +Categories - Strolch

      category :: +Categories

        \ No newline at end of file diff --git a/docs/development/building/index.html b/docs/development/building/index.html index a682992..ea8ce4b 100644 --- a/docs/development/building/index.html +++ b/docs/development/building/index.html @@ -1,6 +1,6 @@ -Building Strolch - Strolch

        Building Strolch

        Building Strolch

        Note: You don’t have to build Strolch if you want to use the +Building Strolch - Strolch

        Building Strolch

        Building Strolch

        Note: You don’t have to build Strolch if you want to use the version on Maven central. If you need a snapshot version, the release you want isn’t on Maven central or you want to use the Strolch Maven archetypes, then go ahead and build Strolch.

        Building Strolch is just a few lines:

        git clone https://github.com/strolch-li/strolch.git
         cd strolch
        @@ -9,4 +9,4 @@ mvn clean install -DskipTests
         the README in the module.

        After running the Maven build, you will have a full build of all Strolch modules. Now you can start modifying the modules, and add your own features, or, far more interesting, start developing your projects using the Strolch -agent.

        \ No newline at end of file +agent.

        \ No newline at end of file diff --git a/docs/development/converting-existing/index.html b/docs/development/converting-existing/index.html index d5cf5f0..589a9ee 100644 --- a/docs/development/converting-existing/index.html +++ b/docs/development/converting-existing/index.html @@ -1,5 +1,5 @@ -Converting Existing App - Strolch

        Converting Existing App

        Converting an existing application

        You can convert an existing application to a Strolch agent, but this might be a +Converting Existing App - Strolch

        Converting Existing App

        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.

        Note: Beware to select the archetype pertaining to your use case:

        \ No newline at end of file +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.

        Note: Beware to select the archetype pertaining to your use case:

        \ No newline at end of file diff --git a/docs/development/index.html b/docs/development/index.html index 83ceab0..02dc9e2 100644 --- a/docs/development/index.html +++ b/docs/development/index.html @@ -1,4 +1,4 @@ -Development - Strolch
        \ No newline at end of file diff --git a/docs/development/main-class-app/index.html b/docs/development/main-class-app/index.html index 6d59243..c0554be 100644 --- a/docs/development/main-class-app/index.html +++ b/docs/development/main-class-app/index.html @@ -1,6 +1,6 @@ -Main Class App - Strolch

        Main Class App

        Creating a Strolch App

        The following shows the maven command to create the new maven project using Strolch’s main maven archetype. Note that +Main Class App - Strolch

        Main Class App

        Creating a Strolch App

        The following shows the maven command to create the new maven project using Strolch’s main maven archetype. Note that you should replace the placeholders in the brackets:

        Note: you need to have the Strolch Maven archetypes installed to your local maven repo, otherwise the following command will fail.

        mvn archetype:generate \
           -DarchetypeGroupId=li.strolch \
        @@ -13,4 +13,4 @@ following command will fail.

        You change into the directory of the new project and then build the project by calling:

        cd <my-artifactId>
         mvn clean package
         

        Start the program using:

        mvn exec:java
        -

        Happy coding =))

        \ No newline at end of file +

        Happy coding =))

        \ No newline at end of file diff --git a/docs/development/maven-archetypes/index.html b/docs/development/maven-archetypes/index.html index 579b441..b97b10e 100644 --- a/docs/development/maven-archetypes/index.html +++ b/docs/development/maven-archetypes/index.html @@ -1,8 +1,8 @@ -Maven Archetypes - Strolch

        Maven Archetypes

        Maven Archetypes

        Maven offers archetypes to generate new projects. Strolch offers the following archetypes, to create new projects:

        Then follow one of the next steps to create the type of application you want.

        \ No newline at end of file diff --git a/docs/development/prerequisites/index.html b/docs/development/prerequisites/index.html index 20eec8a..df687c9 100644 --- a/docs/development/prerequisites/index.html +++ b/docs/development/prerequisites/index.html @@ -1,6 +1,6 @@ -Prerequisites - Strolch

        Prerequisites

        Prerequisites

        To start developing Strolch you need an installed:

        • Java JDK 17
        • Apache Maven 3.x

        You can install these using the awesome SDKMAN!:

        $ curl -s "https://get.sdkman.io" | bash
        +Prerequisites - Strolch

        Prerequisites

        Prerequisites

        To start developing Strolch you need an installed:

        • Java JDK 17
        • Apache Maven 3.x

        You can install these using the awesome SDKMAN!:

        $ curl -s "https://get.sdkman.io" | bash
         source "$HOME/.sdkman/bin/sdkman-init.sh"
         sdk version
         
        @@ -17,4 +17,4 @@ Maven home: /home/user/.sdkman/candidates/maven/current
         Java version: 17.0.4, vendor: Eclipse Adoptium, runtime: /home/user/.sdkman/candidates/java/17.0.4-tem
         Default locale: en_US, platform encoding: UTF-8
         OS name: "linux", version: "5.18.11-051811-generic", arch: "amd64", family: "unix"
        -
        \ No newline at end of file +
        \ No newline at end of file diff --git a/docs/development/web-app/index.html b/docs/development/web-app/index.html index 5339658..53c94a8 100644 --- a/docs/development/web-app/index.html +++ b/docs/development/web-app/index.html @@ -1,6 +1,6 @@ -Web App - Strolch

        Web App

        Prerequisites

        To start developing web-based Strolch apps you need the following:

        \ No newline at end of file diff --git a/docs/documentation/architecture/index.html b/docs/documentation/architecture/index.html index d637b3a..4297f0b 100644 --- a/docs/documentation/architecture/index.html +++ b/docs/documentation/architecture/index.html @@ -1,6 +1,6 @@ -Architecture - Strolch

        Architecture

        Architecture

        Birds View

        A Strolch agent’s architecture can be seen as a simple three-tier architecture. +Architecture - Strolch

        Architecture

        Architecture

        Birds View

        A Strolch agent’s architecture can be seen as a simple three-tier architecture. The presentation layer is mostly a web frontend, where the communication with the agent is done via REST API calls.

        The agent itself implements the business logic using Services, Commands, Queries etc.

        The agent can communicate with other 3rd systems using any API, where it is @@ -16,4 +16,4 @@ thus behave differently, depending on the element being accessed.

      • Transa model and are the central API for the developer.
      • Privileges → Strolch is user agnostic and any action, i.e. Service, Query, etc. is authorized against the authenticated user.
      • Observers → modifications to the model are propagated to listeners using the observer pattern.
      • Audits → Every access (read, modify) of the model are audited
      • Versioning → modifications to objects are versioned and thus can be rolled -back at a later time.
      • \ No newline at end of file +back at a later time.
        \ No newline at end of file diff --git a/docs/documentation/components/index.html b/docs/documentation/components/index.html index eb52228..9578ca8 100644 --- a/docs/documentation/components/index.html +++ b/docs/documentation/components/index.html @@ -1,6 +1,6 @@ -Components - Strolch

        Components

        Components

        A Strolch agent can be easily extended with arbitrary components. An agent +Components - Strolch

        Components

        Components

        A Strolch agent can be easily extended with arbitrary components. An agent is basically a container for classes extending StrolchComponent with a life cycle. These classes mostly implement an interface which describes the operations that are supported by the component.

        The following represents a list of the most used components:

        • RealmHandler: li.strolch.agent.impl.DefaultRealmHandler
        • PrivilegeHandler: li.strolch.runtime.privilege.DefaultStrolchPrivilegeHandler
        • EnumHandler: li.strolch.runtime.query.enums.DefaultEnumHandler
        • PolicyHandler: li.strolch.policy.DefaultPolicyHandler
        • ServiceHandler: li.strolch.service.api.DefaultServiceHandler
        • StrolchSessionHandler: li.strolch.rest.DefaultStrolchSessionHandler
        • PersistenceHandler: multiple implementations
        • PostInitializer: project specific implementation
        • MailHandler: li.strolch.handler.mail.SmtpMailHandler

        A component has a life-cycle, which is governed by the Agent’s own life-cycle. @@ -65,4 +65,4 @@ E.g from inside a Service:

        .sendMail("My Subject", "Hello World", "test@test.ch");
             }
         }
        -
        \ No newline at end of file +
        \ No newline at end of file diff --git a/docs/documentation/do-and-donts/index.html b/docs/documentation/do-and-donts/index.html index da84c17..eaf9b9c 100644 --- a/docs/documentation/do-and-donts/index.html +++ b/docs/documentation/do-and-donts/index.html @@ -1,3 +1,3 @@ -Do and Don't - Strolch

        Do and Don't

        This page discusses things you should and shouldn’t do when using Strolch

        The following is a simple list of do’s and don’ts:

        • 1 Service per use-case, should mostly delegate to Commands.

        • Commands implement use-cases or parts of it, and are thus reusable.

        • Subclass ResourceSearch, OrderSearch and ActivitySearch when implementing use-case specific search - this allows privilege checking.

        • One Transaction at a time - no TX inside of another TX.

        • Commands are added to TXs and performed on close: tx.addCommand(Command) and then tx.commitOnClose()

        • Only access ElementMaps if really no other way, mostly use tx.get*By(), tx.findBy() and searches - if a specific get is missing, then add the method to StrolchTransaction and send a pull request!

        • Use tx.stream*() methods to iterate over all elements, if you don’t want to use a search.

        • Don’t write logic in REST API beans. Delegate to other services, making your code reusable!

        • Marshall to JSON using the StrolchElementToJsonVisitor.

        • Unmarshall JSON using FromFlatJsonVisitor or if needed StrolchElementFromJsonVisitor

        • References between objects is done by adding a ParameterBag with the id relations to the object and then StringParameters with the value being the ID, the UOM set to the type of element being referenced and the Interpretation set to the class type being referenced.

        • Very seldom and sparingly use tx.flush() if you need to perform first some work and then as late as possible call tx.commitOnClose()

          The flush()-method flushes everything, i.e. rollback isn’t possible anymore.

        \ No newline at end of file +Do and Don't - Strolch

        Do and Don't

        This page discusses things you should and shouldn’t do when using Strolch

        The following is a simple list of do’s and don’ts:

        • 1 Service per use-case, should mostly delegate to Commands.

        • Commands implement use-cases or parts of it, and are thus reusable.

        • Subclass ResourceSearch, OrderSearch and ActivitySearch when implementing use-case specific search - this allows privilege checking.

        • One Transaction at a time - no TX inside of another TX.

        • Commands are added to TXs and performed on close: tx.addCommand(Command) and then tx.commitOnClose()

        • Only access ElementMaps if really no other way, mostly use tx.get*By(), tx.findBy() and searches - if a specific get is missing, then add the method to StrolchTransaction and send a pull request!

        • Use tx.stream*() methods to iterate over all elements, if you don’t want to use a search.

        • Don’t write logic in REST API beans. Delegate to other services, making your code reusable!

        • Marshall to JSON using the StrolchElementToJsonVisitor.

        • Unmarshall JSON using FromFlatJsonVisitor or if needed StrolchElementFromJsonVisitor

        • References between objects is done by adding a ParameterBag with the id relations to the object and then StringParameters with the value being the ID, the UOM set to the type of element being referenced and the Interpretation set to the class type being referenced.

        • Very seldom and sparingly use tx.flush() if you need to perform first some work and then as late as possible call tx.commitOnClose()

          The flush()-method flushes everything, i.e. rollback isn’t possible anymore.

        \ No newline at end of file diff --git a/docs/documentation/index.html b/docs/documentation/index.html index a519d38..aeb4490 100644 --- a/docs/documentation/index.html +++ b/docs/documentation/index.html @@ -1,6 +1,6 @@ -Documentation - Strolch

        Documentation

        Overview

        Strolch’s documentation has only just begun, but as more and more details of the implementation in Strolch are fixed, more documentation can be created and -will be available here.

        Currently we have the following topics of discussion:

        \ No newline at end of file +will be available here.

        Currently we have the following topics of discussion:

        \ No newline at end of file diff --git a/docs/documentation/model/index.html b/docs/documentation/model/index.html index d8b8111..ed6428d 100644 --- a/docs/documentation/model/index.html +++ b/docs/documentation/model/index.html @@ -1,6 +1,6 @@ -Model - Strolch

        Model

        Model

        Before we dive into the entire model, let’s show an example and how it would +Model - Strolch

        Model

        Model

        Before we dive into the entire model, let’s show an example and how it would be modelled in Strolch and use in Strolch:

        Strolch model example

        The model has four entities, which will be modelled using 3 Resources and 1 Order object. The objects have numerous fields and the following relationships:

        • Bidirectional between Article <-> Product
        • Unidirectional from Order -> Article
        • Unidirectional from Order -> Customer

        A possible model would look as follows:

        <?xml version="1.0" encoding="UTF-8" ?>
         <StrolchModel xmlns="https://strolch.li/xsd/StrolchModel-1.6.xsd">
         
        @@ -284,4 +284,4 @@ listing will perform simple operations:

        </Activity>
         
         </StrolchModel>
        -
        \ No newline at end of file +
        \ No newline at end of file diff --git a/docs/documentation/observers/index.html b/docs/documentation/observers/index.html index 00c8dd7..a169145 100644 --- a/docs/documentation/observers/index.html +++ b/docs/documentation/observers/index.html @@ -1,6 +1,6 @@ -Observers - Strolch

        Observers

        Observers

        All changes done in a Strolch transaction are recorded and then propagated to +Observers - Strolch

        Observers

        Observers

        All changes done in a Strolch transaction are recorded and then propagated to any registered observers.

        The observer feature is opt-in and is configured for each realm. In the StrolchConfiguration.xml file enable observers by adding the enableObserverUpdates property per realm:

        <StrolchConfiguration>
        @@ -49,4 +49,4 @@ ObserverHandler of the realm itself:

        });
         	}
         }
        -
        \ No newline at end of file +
        \ No newline at end of file diff --git a/docs/documentation/policies/index.html b/docs/documentation/policies/index.html index 3269d7b..67b5af7 100644 --- a/docs/documentation/policies/index.html +++ b/docs/documentation/policies/index.html @@ -1,6 +1,6 @@ -Policies - Strolch

        Policies

        Policies

        Policies are an integral part when writing business logic in Strolch. In many +Policies - Strolch

        Policies

        Policies

        Policies are an integral part when writing business logic in Strolch. In many cases it would suffice to write all such logic in Services and Commands, but as soon as behaviour can change, depending on the element being accessed, then this would quickly lead to many if/else blocks.

        Since writing large if/else blocks is not maintanable in the long run, Strolch @@ -67,4 +67,4 @@ policies is defined, e.g.:

        return ServiceResult.success();
         	}
         }
        -
        \ No newline at end of file +
        \ No newline at end of file diff --git a/docs/documentation/priviles/index.html b/docs/documentation/priviles/index.html index d88bd2a..bbacdb0 100644 --- a/docs/documentation/priviles/index.html +++ b/docs/documentation/priviles/index.html @@ -1,6 +1,6 @@ -Privileges - Strolch

        Privileges

        Privileges

        No framework is complete without user management and privilege validation. The +Privileges - Strolch

        Privileges

        Privileges

        No framework is complete without user management and privilege validation. The basic form would be Users and Roles, and then validating that an authenticated user has a given role. In Strolch we go a step further: A User has roles assigned, and each role has a set of Privileges. The privileges can overlap, a @@ -70,4 +70,4 @@ used when modifying an authenticated user, i.e. killing a session, or modifying its current state, e.g. locale etc.

      • Internal: UsernameFromCertificateWithSameOrganisationPrivilege → Same as UsernameFromCertificatePrivilege but expects the authenticated user to have a property organisation and validates that the user being modified is in the -same organisation.
      • Note: As a rule, the sequence is AllAllowed → Allow → Deny → default deny

        \ No newline at end of file +same organisation.

        Note: As a rule, the sequence is AllAllowed → Allow → Deny → default deny

        \ No newline at end of file diff --git a/docs/documentation/queries/index.html b/docs/documentation/queries/index.html index c2f03ee..13d330f 100644 --- a/docs/documentation/queries/index.html +++ b/docs/documentation/queries/index.html @@ -1,6 +1,6 @@ -Queries - Strolch

        Queries

        Queries

        The Query API is deprecated and the search API should be used instead.

        As is custom for every framework, querying the model must be possible. Strolch +Queries - Strolch

        Queries

        Queries

        The Query API is deprecated and the search API should be used instead.

        As is custom for every framework, querying the model must be possible. Strolch queries are implemented using the StrolchQuery interface and one of its concrete implementations: ResourceQuery, OrderQuery, ActivityQuery.

        A Strolch element always has two identifiers: Type and Id. The type is important as it classifies an element. So if a car and a house would be modelled in @@ -58,4 +58,4 @@ classes provide the most used scenarios:

        • OrderById
        • OrderByNam List<Resource> cars = tx.doQuery(query); } -
        \ No newline at end of file +
        \ No newline at end of file diff --git a/docs/documentation/realms/index.html b/docs/documentation/realms/index.html index 04d9d9e..03635e5 100644 --- a/docs/documentation/realms/index.html +++ b/docs/documentation/realms/index.html @@ -1,6 +1,6 @@ -Realms - Strolch

        Realms

        Realms

        Realms implement multi-tenant capabilities. A Strolch agent can have an +Realms - Strolch

        Realms

        Realms

        Realms implement multi-tenant capabilities. A Strolch agent can have an arbitrary number of realms configured and each realm has its own persistence configuration, allowing to separate mandates completely.

        A realm can run in one of the following modes:

        • EMPTY This is a transient data store mode, where no model changes are @@ -83,4 +83,4 @@ should use the StrolchTransaction object, instead of accessing the } } } -
        \ No newline at end of file +
        \ No newline at end of file diff --git a/docs/documentation/reports/index.html b/docs/documentation/reports/index.html index 5b7d5a8..01e0827 100644 --- a/docs/documentation/reports/index.html +++ b/docs/documentation/reports/index.html @@ -1,6 +1,6 @@ -Reports - Strolch

        Reports

        Reports

        Since Strolch has a generic model, it was rather straight forward to create a +Reports - Strolch

        Reports

        Reports

        Since Strolch has a generic model, it was rather straight forward to create a simple API for writing reports. In Strolch a report is defined by using its own model, i.e. a Report is a Resource of type Report.

        A report consists of the following parts:

        • policy definition, thus allowing extensions
        • basic configuration like base object type, order direction, etc.
        • column definitions
        • joins
        • ordering definition
        • filters

        An example of a report is as follows:

        
         <Resource Id="stockReport" Name="Stock Report" Type="Report">
        @@ -156,4 +156,4 @@ List<JsonObject>
             .filter("Product", "product01") //
             .dateRange(dateRange) //
             .doReportAsJson()
        -

        Note: See the GenericReportTest for examples.

        \ No newline at end of file +

        Note: See the GenericReportTest for examples.

        \ No newline at end of file diff --git a/docs/documentation/runtime-configuration/index.html b/docs/documentation/runtime-configuration/index.html index c101d3a..e1af8f5 100644 --- a/docs/documentation/runtime-configuration/index.html +++ b/docs/documentation/runtime-configuration/index.html @@ -1,6 +1,6 @@ -Runtime Configuration - Strolch

        Runtime Configuration

        Runtime Configuration

        A Strolch runtime configuration comprises two parts: a configuration part, and +Runtime Configuration - Strolch

        Runtime Configuration

        Runtime Configuration

        A Strolch runtime configuration comprises two parts: a configuration part, and a model part. The configuration are files located in the ..config/ folder, and the model are files located in the ../data folder.

        In an absolute minimal configuration, the Strolch runtime requires the following folder structure:

        • ../config/
          • ../StrolchConfiguration.xml → configures the Strolch agent
          • ../PrivilegeConfig.xml → configures user management
          • ../PrivilegeUsers.xml → contains the users in an XML based user management file
          • ../PrivilegeRoles.xml → contains the roles and privileges in an XML based user management

        StrolchConfiguration.xml

        The StrolchConfiguration.xml file configures the Strolch agent. The StrolchConfiguration.xml defines the following:

        • <StrolchConfiguration> root element
        • <env id="xxx"> different environments with the possibility of having a @@ -108,4 +108,4 @@ String environment = StrolchEnvironmentthis.agent.setup(environment, new File(realPath)); this.agent.initialize(); this.agent.start(); -
        \ No newline at end of file +
        \ No newline at end of file diff --git a/docs/documentation/searches/index.html b/docs/documentation/searches/index.html index 87155aa..b4720ad 100644 --- a/docs/documentation/searches/index.html +++ b/docs/documentation/searches/index.html @@ -1,6 +1,6 @@ -Searches - Strolch

        Searches

        Searches

        As is custom for every framework, querying, or searching, the model must be +Searches - Strolch

        Searches

        Searches

        As is custom for every framework, querying, or searching, the model must be possible. Strolch searches are implemented using the StrolchSearch class and one of its concrete implementations: ResourceSearch, OrderSearch, ActivitySearch.

        A Strolch element always has two identifiers: Type and Id. The type is @@ -50,4 +50,4 @@ use a strolch search, add it to the role of the user in PrivilegeRoles.xml </Allow> <!-- internal used for when the search is done in an internal service --> <Allow>li.strolch.bookshop.search.BookSearch</Allow> </Privilege> -

        \ No newline at end of file +
        \ No newline at end of file diff --git a/docs/documentation/services-and-commands/index.html b/docs/documentation/services-and-commands/index.html index b7880d1..aff3d16 100644 --- a/docs/documentation/services-and-commands/index.html +++ b/docs/documentation/services-and-commands/index.html @@ -1,6 +1,6 @@ -Services and Commands - Strolch

        Services and Commands

        Services and Commands

        Services are written to implement a specific use-case. Commands are written to +Services and Commands - Strolch

        Services and Commands

        Services and Commands

        Services are written to implement a specific use-case. Commands are written to implement re-usable parts of a use-case. The use-case can be abstract e.g., AddResourceService or very specific e.g. CreatePatientService.

        Should the use-case be re-usable in different scenarios, then commands should implement the logic, and the services should then execute the commands. E.g. @@ -75,4 +75,4 @@ perform the task of adding a new Order. Note how:

        • the Service opens t } } } -
        \ No newline at end of file +
        \ No newline at end of file diff --git a/docs/documentation/transactions/index.html b/docs/documentation/transactions/index.html index 89ce78d..f41e90b 100644 --- a/docs/documentation/transactions/index.html +++ b/docs/documentation/transactions/index.html @@ -1,6 +1,6 @@ -Transactions - Strolch

        Transactions

        Transactions

        Strolch Transactions play a central role in a Strolch agent. A transaction is +Transactions - Strolch

        Transactions

        Transactions

        Strolch Transactions play a central role in a Strolch agent. A transaction is opened for a realm, and grants access to the model of the agent. Transactions are implemented as a Java try-with-resources by implementing the AutoCloseable @@ -56,4 +56,4 @@ define if the TX should commit, or not:

          if (tx.needsCommit())
             tx.commitOnClose();
         }
        -
        \ No newline at end of file +
        \ No newline at end of file diff --git a/docs/documentation/versioning/index.html b/docs/documentation/versioning/index.html index 3392440..472cb48 100644 --- a/docs/documentation/versioning/index.html +++ b/docs/documentation/versioning/index.html @@ -1,6 +1,6 @@ -Versioning - Strolch

        Versioning

        Versioning

        One of Strolch’s features that sets it apart from other frameworks, is that +Versioning - Strolch

        Versioning

        Versioning

        One of Strolch’s features that sets it apart from other frameworks, is that versioning is baked into Strolch’s fabric. The feature is opt-in, as it is not required in all projects, but it only needs enabling, for all modifications to objects to be versioned, so that rollbacks can be done when needed.

        The feature is enabled for each realm. In the StrolchConfiguration.xml file @@ -36,4 +36,4 @@ any references on an element to other elements will also be restored. As long as the relationship is to the same element, then this is not an issue, but should the relationship have changed, then it this must be handled and the user performing a revert be allowed to decided which element to reference in the -reverted version.

        \ No newline at end of file +reverted version.

        \ No newline at end of file diff --git a/docs/download/index.html b/docs/download/index.html index b18126e..602da88 100644 --- a/docs/download/index.html +++ b/docs/download/index.html @@ -1,7 +1,7 @@ -Download - Strolch

        Download

        Download

        Strolch is on Maven central , but if the latest version is not there, then build it locally. A guide can be found on the development page.

        Strolch is also built on Jenkins, so you can see if the @@ -24,4 +24,4 @@ latest version passes all tests.

        Include a </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 on how to turn your project into a Strolch agent.

        \ No newline at end of file +or only include the dependencies you really want, e.g. model, etc.

        After including the dependency, checkout development on how to turn your project into a Strolch agent.

        \ No newline at end of file diff --git a/docs/history/index.html b/docs/history/index.html index deb7dce..e277f14 100644 --- a/docs/history/index.html +++ b/docs/history/index.html @@ -1,3 +1,3 @@ -History - Strolch

        History

        Overview

        Strolch is an open source component based software agent written in Java and can be compared, in a light sense, with the Java EE stack: Strolch takes care of persistence, implements Services for use cases, Commands as re-usable algorithms and has a parameterized data model.

        Strolch has an intrinsic understanding for mandates, which are called realms so that a single agent can be used to implement applications with multiple users/customers for instance in SaaS environments.

        The parameterized data model consists of three top level objects, Resources, Orders and Activities. These objects can have any number of ParameterBags which in turn can have any number of Parameters on them. This allows for a very dynamic modelling of data structures including modification at run time. Multiple ready to use Parameter types are already implemented which handle the primitive types in Java including ListParameters for collections of these primitive types.

        One of the main features of the Strolch agent, is that persistence is handled transparently and the user must not be worried about databases and the likes. Currently there are two implementations for persisting the Strolch model, a PostgreSQL and an XML file persistence. Currently both persistence layers persist the data by converting to XML and storing it into the database. The XML file persistence stores each object in its own file.

        The agent itself has a small memory footprint and requires very few components to start. For the agent to be useful it needs additional functionality which is implemented in StrolchComponents. Each component is registered via its Java interface on the agent and is bound to the life cycle of the agent. When the agent is started, these components can be retrieved and used to perform any number of functionalities. This is the preferred way to extend the Strolch agent. There are a number of components already implemented, e.g. the ServiceHandler which executes Services in a controlled fashion and can validate authorized access to these services.

        No software product is complete without a system for authentication and authorization. Strolch implements this by using the Privilege framework which has been written by Robert von Burg. The standard ServiceHandler detects the existence of the PrivilegeHandler and then validates that the user has authorization to perform the service. This framework is implemented as its own Strolch component, thus can be retrieved at any time during execution to perform fine grained and special authorization validation.

        Motivation

        A question often asked is why create Strolch. What are its benefits in contrast to using Java SE with an OR-Mapper like Hibernate, or using Java EE on JBoss or Glassfish? Especially since many of the features existing in those stacks needed to be re-created in Strolch.

        The first answer to this question is that those systems are often overly complicated and bloated. Java SE with Hibernate certainly is a viable option when it comes to being light-weightier but Hibernate, even though it is supposed to, often fails to truly help remove the need to really understand an RDBMS. Often enough Hibernate will just get in the way of the most important part of development: writing the business code. Being an OR-Mapper which is supposed to implement all the nitty-gritty details of an RDBMS system, Hibernate, and JPA for that matter, still often has the developer go back to understanding these details.

        Strolch tries a different approach to persistence. Instead of writing pojos/entities, Strolch’s model has the concept that each element’s attributes are part of a composition pattern: each attribute is its own object and thus can be dynamically changed at runtime, but also makes persistence of such an element generic. Instead of having fixed attributes for a concrete class, these parameters are stored in a map and are accessed through the parameter’s ID.

        Assigning an ID to an attribute for accessing of course brings its own downsides, i.e. the parameter might simply not be there, when being accessed. This is certainly an issue that the developer must handle, when implementing a project using Strolch, but allows the developer to not need to worry about persistence, as this is generically handled.

        Since the persistence is generically handled, and Strolch stays lightweight on its requirements at runtime, the developer can quickly get down to what is important for business value: Writing the business logic and the presentation layer. Here too Strolch tries to help the developer by bringing in concepts which are easy to follow: Use cases are implemented as Services, and re-usable business logic is put into Commands.

        There will be reasons against using Strolch, as there will be against using the Java EE stack, or an OR-Mapper or even the Java ecosystem for that fact. Important is to note, that the concepts behind Strolch are nothing new, but have been implemented in at least two previous proprietary products. Since those products are not accessible to the public, it was decided that a re-implementation might be of use to the programming community at large.

        Currently, there is at least one company using Strolch in a commercial project which helps drive Strolch’s development and further motivates its existence.

        Strolch is an open source project and licensed under the Apache License 2.0.

        ##Technology -Strolch is written in Java and is programmed against the JDK 8. Strolch runs on any JRE 8 compliant environment. Strolch is tested on the Oracle JRE 8.

        \ No newline at end of file +History - Strolch

        History

        Overview

        Strolch is an open source component based software agent written in Java and can be compared, in a light sense, with the Java EE stack: Strolch takes care of persistence, implements Services for use cases, Commands as re-usable algorithms and has a parameterized data model.

        Strolch has an intrinsic understanding for mandates, which are called realms so that a single agent can be used to implement applications with multiple users/customers for instance in SaaS environments.

        The parameterized data model consists of three top level objects, Resources, Orders and Activities. These objects can have any number of ParameterBags which in turn can have any number of Parameters on them. This allows for a very dynamic modelling of data structures including modification at run time. Multiple ready to use Parameter types are already implemented which handle the primitive types in Java including ListParameters for collections of these primitive types.

        One of the main features of the Strolch agent, is that persistence is handled transparently and the user must not be worried about databases and the likes. Currently there are two implementations for persisting the Strolch model, a PostgreSQL and an XML file persistence. Currently both persistence layers persist the data by converting to XML and storing it into the database. The XML file persistence stores each object in its own file.

        The agent itself has a small memory footprint and requires very few components to start. For the agent to be useful it needs additional functionality which is implemented in StrolchComponents. Each component is registered via its Java interface on the agent and is bound to the life cycle of the agent. When the agent is started, these components can be retrieved and used to perform any number of functionalities. This is the preferred way to extend the Strolch agent. There are a number of components already implemented, e.g. the ServiceHandler which executes Services in a controlled fashion and can validate authorized access to these services.

        No software product is complete without a system for authentication and authorization. Strolch implements this by using the Privilege framework which has been written by Robert von Burg. The standard ServiceHandler detects the existence of the PrivilegeHandler and then validates that the user has authorization to perform the service. This framework is implemented as its own Strolch component, thus can be retrieved at any time during execution to perform fine grained and special authorization validation.

        Motivation

        A question often asked is why create Strolch. What are its benefits in contrast to using Java SE with an OR-Mapper like Hibernate, or using Java EE on JBoss or Glassfish? Especially since many of the features existing in those stacks needed to be re-created in Strolch.

        The first answer to this question is that those systems are often overly complicated and bloated. Java SE with Hibernate certainly is a viable option when it comes to being light-weightier but Hibernate, even though it is supposed to, often fails to truly help remove the need to really understand an RDBMS. Often enough Hibernate will just get in the way of the most important part of development: writing the business code. Being an OR-Mapper which is supposed to implement all the nitty-gritty details of an RDBMS system, Hibernate, and JPA for that matter, still often has the developer go back to understanding these details.

        Strolch tries a different approach to persistence. Instead of writing pojos/entities, Strolch’s model has the concept that each element’s attributes are part of a composition pattern: each attribute is its own object and thus can be dynamically changed at runtime, but also makes persistence of such an element generic. Instead of having fixed attributes for a concrete class, these parameters are stored in a map and are accessed through the parameter’s ID.

        Assigning an ID to an attribute for accessing of course brings its own downsides, i.e. the parameter might simply not be there, when being accessed. This is certainly an issue that the developer must handle, when implementing a project using Strolch, but allows the developer to not need to worry about persistence, as this is generically handled.

        Since the persistence is generically handled, and Strolch stays lightweight on its requirements at runtime, the developer can quickly get down to what is important for business value: Writing the business logic and the presentation layer. Here too Strolch tries to help the developer by bringing in concepts which are easy to follow: Use cases are implemented as Services, and re-usable business logic is put into Commands.

        There will be reasons against using Strolch, as there will be against using the Java EE stack, or an OR-Mapper or even the Java ecosystem for that fact. Important is to note, that the concepts behind Strolch are nothing new, but have been implemented in at least two previous proprietary products. Since those products are not accessible to the public, it was decided that a re-implementation might be of use to the programming community at large.

        Currently, there is at least one company using Strolch in a commercial project which helps drive Strolch’s development and further motivates its existence.

        Strolch is an open source project and licensed under the Apache License 2.0.

        ##Technology +Strolch is written in Java and is programmed against the JDK 8. Strolch runs on any JRE 8 compliant environment. Strolch is tested on the Oracle JRE 8.

        \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index f863ddb..1a4d2ff 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,5 +1,5 @@ -Strolch Overview - Strolch
        navigation

        Strolch Overview

        Strolch is framework for developing Software. It’s main features are:

        • Complete persisted data model:
          • Parameters and values by time
          • Resources, Orders with arbitrary parameter grouping
          • Activity/Action hierarchy with arbitrary depth
          • Policies for delegation
          • JSON as well as XML transformation
          • Locator API
        • Transactions with pessimistic locking and optional read-locking
        • Search API
        • Component based
        • Deeply integrated privilege handling
        • Fully in-memory
        • Persisted auditing, versioning, operations log
        • DAOs for file system or PostgreSQL, easily extended
        • Execution framework
        • Service / Command oriented
        • Reporting API configured by Resource objects
        • REST API for data access
        • WebComponents UI for
          • Inspector
          • Users
          • Roles
          • Operations Log
          • Login Screen
          • Jobs
        • runs on plain old Java SE

        Strolch Intro

        It is a different framework to Spring and other similar type of Java +Strolch Overview - Strolch

        navigation

        Strolch Overview

        Strolch is framework for developing Software. It’s main features are:

        • Complete persisted data model:
          • Parameters and values by time
          • Resources, Orders with arbitrary parameter grouping
          • Activity/Action hierarchy with arbitrary depth
          • Policies for delegation
          • JSON as well as XML transformation
          • Locator API
        • Transactions with pessimistic locking and optional read-locking
        • Search API
        • Component based
        • Deeply integrated privilege handling
        • Fully in-memory
        • Persisted auditing, versioning, operations log
        • DAOs for file system or PostgreSQL, easily extended
        • Execution framework
        • Service / Command oriented
        • Reporting API configured by Resource objects
        • REST API for data access
        • WebComponents UI for
          • Inspector
          • Users
          • Roles
          • Operations Log
          • Login Screen
          • Jobs
        • runs on plain old Java SE

        Strolch Intro

        It is a different framework to Spring and other similar type of Java frameworks, as the model is defined as an abstract model, where you always have the same three types of objects: Resources, Orders and Activities. The fields are mapped as Parameter objects, of which the @@ -25,4 +25,4 @@ reasons to improve and extend the framework. There is a Polymer Inspector component which makes it easy to see and manipulate the actual data. The new Search API makes it really easy to query your data.

        Yes, Strolch is different, but the concept has come out of the planning and execution segment, and has been refined over the years until it has -become what it is today.

        API

        Check out the API page to see how to use Strolch.

        More to motivation etc.

        \ No newline at end of file +become what it is today.

        API

        Check out the API page to see how to use Strolch.

        More to motivation etc.

        \ No newline at end of file diff --git a/docs/plc/architecture/index.html b/docs/plc/architecture/index.html index ade09b0..c67745e 100644 --- a/docs/plc/architecture/index.html +++ b/docs/plc/architecture/index.html @@ -1,6 +1,6 @@ -Architecture - Strolch

        Architecture

        Architecture

        Overview

        Strolch PLC Architecture Overview

        The Strolch PLC architecture sees the Strolch Agent as the server, managing +Architecture - Strolch

        Architecture

        Architecture

        Overview

        Strolch PLC Architecture Overview

        The Strolch PLC architecture sees the Strolch Agent as the server, managing logical devices, i.e. multiple sensors and actors together and thus deciding on further steps. With this architecture multiple PLCs can be combined in one agent for flow control.

        PLC Architecture

        Strolch PLC Architecture

        On the agent side the two main classes are the PlcGwServerHandler and the @@ -12,4 +12,4 @@ can be directly extended.

        On the PLC side, the PlcGwClientHandlerPlcHandler initializes the model and connections. The Plc class is Strolch agnostic and manages the connections and notifies PlcListener instances on changes coming from the underlying connections. The PlcService implementations -implement business logic, and can also be notified on updates from connections.

        \ No newline at end of file +implement business logic, and can also be notified on updates from connections.

        \ No newline at end of file diff --git a/docs/plc/example-set-up/index.html b/docs/plc/example-set-up/index.html index f77b99a..9ef5311 100644 --- a/docs/plc/example-set-up/index.html +++ b/docs/plc/example-set-up/index.html @@ -1,6 +1,6 @@ -Example Set-Up - Strolch

        Example Set-Up

        Example Set-Up

        This example setup describes the movement of containers over conveyors. The +Example Set-Up - Strolch

        Example Set-Up

        Example Set-Up

        This example setup describes the movement of containers over conveyors. The conveyors have motors which can be started and stopped by a GPIO output pin controlled on a Raspberry Pi and each conveyor has a light barrier to detect the occupancy of a container and the Raspberry Pi detects this on GPIO input pins.

        Further at each conveyor location is a barcode reader to read the ID of a @@ -43,4 +43,4 @@ Stop All send telegrams to the PLC, thus showing how the server would communicat new li.strolch.plc.core.PlcService services by extending the class and then registering the service in CustomPlcServiceInitializer.

        See the example StartupPlcService.

        Server

        On the server side, to register for notifications from the PLC, one would implement li.strolch.plc.gw.server.PlcGwService services and register them on the PlcHandler in -the PostInitializer class.

        See the example ModePlcSrvService.

        \ No newline at end of file +the PostInitializer class.

        See the example ModePlcSrvService.

        \ No newline at end of file diff --git a/docs/plc/index.html b/docs/plc/index.html index 3e9c4f7..85e5ab3 100644 --- a/docs/plc/index.html +++ b/docs/plc/index.html @@ -1,8 +1,8 @@ -PLC - Strolch

        PLC

        Overview

        Using Strolch as a PLC has certain advantages and disadvantages. The following is a list of advantages:

        • Same programming model and language for server and PLC
        • PLC has the same privilege handling as in Strolch
        • Simulating down to the PLC level is easily possible for easier testing of server logic

        Of course using the Java language as a PLC has its limitations, we have manage to use it for customers and are satisfied with the result. What follows is a -description in how to set up your own Strolch based PLC.

        Checkout the code at GitHub

        Strolch PLC is also deployed to Maven Central. Current version is 1.2.2 and is using Strolch version 1.8.5.

        Currently, we have the following topics of discussion:

        \ No newline at end of file +description in how to set up your own Strolch based PLC.

        Checkout the code at GitHub

        Strolch PLC is also deployed to Maven Central. Current version is 1.2.2 and is using Strolch version 1.8.5.

        Currently, we have the following topics of discussion:

        \ No newline at end of file diff --git a/docs/tags/index.html b/docs/tags/index.html index 63055a2..0ad7b14 100644 --- a/docs/tags/index.html +++ b/docs/tags/index.html @@ -1,3 +1,3 @@ -Tags - Strolch

        tag :: -Tags

          \ No newline at end of file +Tags - Strolch

          tag :: +Tags

            \ No newline at end of file diff --git a/docs/tutorial/configuration/index.html b/docs/tutorial/configuration/index.html index 6c8ccc9..9569590 100644 --- a/docs/tutorial/configuration/index.html +++ b/docs/tutorial/configuration/index.html @@ -1,6 +1,6 @@ -Configuration - Strolch

            Configuration

            Configuration

            Let’s start by creating a new Apache Maven project. We’ll need a POM with the +Configuration - Strolch

            Configuration

            Configuration

            Let’s start by creating a new Apache Maven project. We’ll need a POM with the proper dependencies. We expect you to be familiar with Apache Maven, so we’ll just show you a working POM file:

            pom.xml

            <?xml version="1.0"?>
             <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            @@ -716,4 +716,4 @@ you should see the following in the logs:

            This log tells us the name of the app as defined in the StrolchConfiguration.xml file as well as which environment was loaded. Further we can see that 8 components were configured and started.

            This concludes the initial setup of a new Strolch project. We can now go ahead -and start building the business logic.

            \ No newline at end of file +and start building the business logic.

            \ No newline at end of file diff --git a/docs/tutorial/crud-book/index.html b/docs/tutorial/crud-book/index.html index ea6877e..ca9287e 100644 --- a/docs/tutorial/crud-book/index.html +++ b/docs/tutorial/crud-book/index.html @@ -1,6 +1,6 @@ -CRUD Book - Strolch

            CRUD Book

            Preparation

            Since Books are central to the bookshop, we’ll first create the CRUD REST API +CRUD Book - Strolch

            CRUD Book

            Preparation

            Since Books are central to the bookshop, we’ll first create the CRUD REST API for them. The API will be as follows:

            GET ../rest/books?query=,offset=,limit=
             GET ../rest/books/{id}
             POST ../rest/books
            @@ -412,4 +412,4 @@ privilege to perform the action.

            The book services are quite simple, easy to implement them in the service layer. Thus should a service be required to be performed by an integration layer, then they can simply call the services, since the input is defined and validation is done there (i.e. NOT in the REST -API).

            This concludes the CRUD of books.

            \ No newline at end of file +API).

            This concludes the CRUD of books.

            \ No newline at end of file diff --git a/docs/tutorial/index.html b/docs/tutorial/index.html index 7878445..70b1ae1 100644 --- a/docs/tutorial/index.html +++ b/docs/tutorial/index.html @@ -1,8 +1,8 @@ -Tutorial - Strolch

            Tutorial

            Let’s build a bookshop!

            In this tutorial we will build a book store using Strolch. This book store will be without a UI, but we will do everything using REST APIs, which should make it easy to add a UI later using whatever framework suits one most.

            The book store will have the following features:

            • The store owner can add, update and remove books
            • The store owner can edit the stock quantity
            • Users can view a list of books
            • Users can add books to a virtual cart
            • Users can create and verify an account using an e-mail address
            • Users can submit an order for the books in their cart
            • The store owner can see the orders by state (pending, preparing, sent)
            • The store owner can update the state of an order (preparing, sent)
            • Notify the user when the order is sent

            The code to the book can be downloaded from GitHub and will be updated -as this tutorial is updated.

            The tutorial consists of the following parts:

            \ No newline at end of file +as this tutorial is updated.

            The tutorial consists of the following parts:

            \ No newline at end of file diff --git a/docs/tutorial/model/index.html b/docs/tutorial/model/index.html index 3117b17..d0e0ca7 100644 --- a/docs/tutorial/model/index.html +++ b/docs/tutorial/model/index.html @@ -1,6 +1,6 @@ -Model - Strolch

            Model

            Model

            Looking back at our functionality, we can list the following entities that need +Model - Strolch

            Model

            Model

            Looking back at our functionality, we can list the following entities that need to be modelled (We’ll go into detail further down):

            • Book → books can be orderd
            • UserCart → we want to store the cart of the user
            • Account → we need to know where to send the orders
            • PurchaseOrder → we need to know what was ordered and keep track of its state
            • FromStock → we want to use activities to implement the process of an order

            In Strolch we model entities by defining the element as a template. Thus in the templates.xml file we can add the templates with the following content:

            Book

            
             <Resource Id="Book" Name="Book Template" Type="Template">
            @@ -117,4 +117,4 @@ referencing an ExecutionPolicy implementation.
          • ConfirmationPolicy< of an action being performed on this resource by referencing an ConfirmationPolicy implementation.
          • Currently these resources reference policies which don’t exist. We will resolve this issue later, when we implement the execution of the activity.

            This concludes the model definition. In the next step we’ll start creating -services and commands for our model.

            \ No newline at end of file +services and commands for our model.

            \ No newline at end of file