strolch-website/docs/blog/post-00012/index.html

27 lines
16 KiB
HTML

<!doctype html><html lang=en class="js csstransforms3d"><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=generator content="Hugo 0.80.0"><meta name=description content="So many changes, and so long no update - not good!"><meta name=author content="Robert von Burg"><link rel=icon href=/favicon.ico type=image/ico><title>Wow, the many changes! - Strolch</title><link href=/css/nucleus.css?1678977091 rel=stylesheet><link href=/css/fontawesome-all.min.css?1678977091 rel=stylesheet><link href=/css/hybrid.css?1678977091 rel=stylesheet><link href=/css/featherlight.min.css?1678977091 rel=stylesheet><link href=/css/perfect-scrollbar.min.css?1678977091 rel=stylesheet><link href=/css/auto-complete.css?1678977091 rel=stylesheet><link href=/css/atom-one-dark-reasonable.css?1678977091 rel=stylesheet><link href=/css/theme.css?1678977091 rel=stylesheet><link href=/css/hugo-theme.css?1678977091 rel=stylesheet><link href=/css/theme-green.css?1678977091 rel=stylesheet><script src=/js/jquery-3.3.1.min.js?1678977091></script><style>:root #header+#content>#left>#rlblock_left{display:none!important}</style></head><body data-url=/blog/post-00012/><nav id=sidebar><div id=header-wrapper><div id=header><a id=logo href=/><img src=/logo.png></a></div><div class=searchbox><label for=search-by><i class="fas fa-search"></i></label><input data-search-input id=search-by type=search placeholder=Search...>
<span data-search-clear><i class="fas fa-times"></i></span></div><script type=text/javascript src=/js/lunr.min.js?1678977091></script><script type=text/javascript src=/js/auto-complete.js?1678977091></script><script type=text/javascript>var baseurl="https:\/\/strolch.li\/";</script><script type=text/javascript src=/js/search.js?1678977091></script></div><section id=homelinks><ul><li><a class=padding href=/><i class="fas fa-home"></i>Home</a></li></ul></section><div class=highlightable><ul class=topics><li data-nav-id=/api/ title=API class=dd-item><a href=/api/>API</a></li><li data-nav-id=/documentation/ title=Documentation class=dd-item><a href=/documentation/>Documentation</a><ul><li data-nav-id=/documentation/architecture/ title=Architecture class=dd-item><a href=/documentation/architecture/>Architecture</a></li><li data-nav-id=/documentation/model/ title=Model class=dd-item><a href=/documentation/model/>Model</a></li><li data-nav-id=/documentation/do-and-donts/ title="Do and Don't" class=dd-item><a href=/documentation/do-and-donts/>Do and Don't</a></li><li data-nav-id=/documentation/runtime-configuration/ title="Runtime Configuration" class=dd-item><a href=/documentation/runtime-configuration/>Runtime Configuration</a></li><li data-nav-id=/documentation/realms/ title=Realms class=dd-item><a href=/documentation/realms/>Realms</a></li><li data-nav-id=/documentation/components/ title=Components class=dd-item><a href=/documentation/components/>Components</a></li><li data-nav-id=/documentation/services-and-commands/ title="Services and Commands" class=dd-item><a href=/documentation/services-and-commands/>Services and Commands</a></li><li data-nav-id=/documentation/searches/ title=Searches class=dd-item><a href=/documentation/searches/>Searches</a></li><li data-nav-id=/documentation/queries/ title=Queries class=dd-item><a href=/documentation/queries/>Queries</a></li><li data-nav-id=/documentation/transactions/ title=Transactions class=dd-item><a href=/documentation/transactions/>Transactions</a></li><li data-nav-id=/documentation/policies/ title=Policies class=dd-item><a href=/documentation/policies/>Policies</a></li><li data-nav-id=/documentation/observers/ title=Observers class=dd-item><a href=/documentation/observers/>Observers</a></li><li data-nav-id=/documentation/versioning/ title=Versioning class=dd-item><a href=/documentation/versioning/>Versioning</a></li><li data-nav-id=/documentation/reports/ title=Reports class=dd-item><a href=/documentation/reports/>Reports</a></li><li data-nav-id=/documentation/priviles/ title=Privileges class=dd-item><a href=/documentation/priviles/>Privileges</a></li></ul></li><li data-nav-id=/plc/ title=PLC class=dd-item><a href=/plc/>PLC</a><ul><li data-nav-id=/plc/architecture/ title=Architecture class=dd-item><a href=/plc/architecture/>Architecture</a></li><li data-nav-id=/plc/example-set-up/ title="Example Set-Up" class=dd-item><a href=/plc/example-set-up/>Example Set-Up</a></li></ul></li><li data-nav-id=/tutorial/ title=Tutorial class=dd-item><a href=/tutorial/>Tutorial</a><ul><li data-nav-id=/tutorial/configuration/ title=Configuration class=dd-item><a href=/tutorial/configuration/>Configuration</a></li><li data-nav-id=/tutorial/model/ title=Model class=dd-item><a href=/tutorial/model/>Model</a></li><li data-nav-id=/tutorial/crud-book/ title="CRUD Book" class=dd-item><a href=/tutorial/crud-book/>CRUD Book</a></li></ul></li><li data-nav-id=/download/ title=Download class=dd-item><a href=/download/>Download</a></li><li data-nav-id=/development/ title=Development class=dd-item><a href=/development/>Development</a><ul><li data-nav-id=/development/prerequisites/ title=Prerequisites class=dd-item><a href=/development/prerequisites/>Prerequisites</a></li><li data-nav-id=/development/building/ title="Building Strolch" class=dd-item><a href=/development/building/>Building Strolch</a></li><li data-nav-id=/development/maven-archetypes/ title="Maven Archetypes" class=dd-item><a href=/development/maven-archetypes/>Maven Archetypes</a></li><li data-nav-id=/development/web-app/ title="Web App" class=dd-item><a href=/development/web-app/>Web App</a></li><li data-nav-id=/development/main-class-app/ title="Main Class App" class=dd-item><a href=/development/main-class-app/>Main Class App</a></li><li data-nav-id=/development/converting-existing/ title="Converting Existing App" class=dd-item><a href=/development/converting-existing/>Converting Existing App</a></li></ul></li><li data-nav-id=/blog/ title=Blog class="dd-item
parent"><a href=/blog/>Blog</a><ul><li data-nav-id=/blog/post-00018/ title="Strolch PLC 1.2.3 released" class=dd-item><a href=/blog/post-00018/>Strolch PLC 1.2.3 released</a></li><li data-nav-id=/blog/post-00017/ title="Strolch 1.8.5 and PLC 1.2.2 are out" class=dd-item><a href=/blog/post-00017/>Strolch 1.8.5 and PLC 1.2.2 are out</a></li><li data-nav-id=/blog/post-00016/ title="Strolch PLC now also on Maven Central" class=dd-item><a href=/blog/post-00016/>Strolch PLC now also on Maven Central</a></li><li data-nav-id=/blog/post-00015/ title="Release of Strolch 1.6.100" class=dd-item><a href=/blog/post-00015/>Release of Strolch 1.6.100</a></li><li data-nav-id=/blog/post-00014/ title="Strolch Reports" class=dd-item><a href=/blog/post-00014/>Strolch Reports</a></li><li data-nav-id=/blog/post-00013/ title="Strolch Searches" class=dd-item><a href=/blog/post-00013/>Strolch Searches</a></li><li data-nav-id=/blog/post-00012/ title="Wow, the many changes!" class="dd-item active"><a href=/blog/post-00012/>Wow, the many changes!</a></li><li data-nav-id=/blog/post-00011/ title="Strolch now on Maven Central" class=dd-item><a href=/blog/post-00011/>Strolch now on Maven Central</a></li><li data-nav-id=/blog/post-00010/ title="Versioning of objects" class=dd-item><a href=/blog/post-00010/>Versioning of objects</a></li><li data-nav-id=/blog/post-00009/ title="Release 1.2.0" class=dd-item><a href=/blog/post-00009/>Release 1.2.0</a></li><li data-nav-id=/blog/post-00008/ title="Strolch Update" class=dd-item><a href=/blog/post-00008/>Strolch Update</a></li><li data-nav-id=/blog/post-00007/ title="Activities: Beginning of the planning engine" class=dd-item><a href=/blog/post-00007/>Activities: Beginning of the planning engine</a></li><li data-nav-id=/blog/post-00006/ title="Strolch Documentation" class=dd-item><a href=/blog/post-00006/>Strolch Documentation</a></li><li data-nav-id=/blog/post-00005/ title="Strolch Release 1.0.0" class=dd-item><a href=/blog/post-00005/>Strolch Release 1.0.0</a></li><li data-nav-id=/blog/post-00004/ title="DurationParameter and other minor changes: Release 1.0.0-RC4" class=dd-item><a href=/blog/post-00004/>DurationParameter and other minor changes: Release 1.0.0-RC4</a></li><li data-nav-id=/blog/post-00003/ title="DB Initialization: Release 1.0.0-RC3" class=dd-item><a href=/blog/post-00003/>DB Initialization: Release 1.0.0-RC3</a></li><li data-nav-id=/blog/post-00002/ title="Release 1.0.0-RC2" class=dd-item><a href=/blog/post-00002/>Release 1.0.0-RC2</a></li><li data-nav-id=/blog/post-00001/ title="Release 1.0.0-RC1" class=dd-item><a href=/blog/post-00001/>Release 1.0.0-RC1</a></li></ul></li></ul><section id=shortcuts><h3>More</h3><ul><li><a class=padding href=https://strolch.li/tags><i class="fas fa-tags"></i>Tags</a></li><li><a class=padding href=https://github.com/strolch-li><i class="fab fa-github"></i>GitHub project</a></li><li><a rel=me class=padding href=https://mstdn.gsi.li/@eitch target=_blank><i class="fab fa-mastodon"></i>Mastodon</a></li></ul></section><section id=footer><p>Built with <a href=https://github.com/matcornic/hugo-theme-learn target=_blank><i class="fas fa-heart"></i></a>from <a href=https://getgrav.org target=_blank>Grav</a> and <a href=https://gohugo.io/ target=_blank>Hugo</a></p></section></div></nav><section id=body><div id=overlay></div><div class="padding highlightable"><div><div id=top-bar><div id=top-github-link><a class=github-link title="Edit this page" href=https://github.com/strolch-li/strolch-website/tree/develop/content/blog/post-00012.md target=blank><i class="fas fa-code-branch"></i><span id=top-github-link-text>Edit this page</span></a></div><div id=breadcrumbs itemscope itemtype=http://data-vocabulary.org/Breadcrumb><span id=sidebar-toggle-span><a href=# id=sidebar-toggle data-sidebar-toggle><i class="fas fa-bars"></i></a></span><span id=toc-menu><i class="fas fa-list-alt"></i></span><span class=links><a href=/>Strolch Overview</a> > <a href=/blog/>Blog</a> > Wow, the many changes!</span></div><div class=progress><div class=wrapper><nav id=TableOfContents><ul><li><a href=#wow-the-many-changes>Wow, the many changes!</a></li></ul></nav></div></div></div></div><div id=head-tags></div><div id=body-inner><h1>Wow, the many changes!</h1><h2 id=wow-the-many-changes>Wow, the many changes!</h2><p>So many changes, and so long no update - not good!</p><hr><p>Oh boy, have we forgotten to update you all on the latest awesome features in
Strolch! There are
over <a href=https://github.com/strolch-li/strolch/compare/1.3.0...develop target=_blank>123 commits</a>
since the last tag 1.3.0, so that alone merits a new blog post.</p><p>Currently the latest tag is 1.5.5, but this version is actually already quite
old, as it was created on 31. January 2017 and there are 53 new commits ahead of
the tag.</p><p>Enough of all the commits, lets get to the new features:</p><ul><li>Added new generic report creator</li><li>Added Activity.TimeOrdering and updated Model XSD</li><li>Implemented State Model on Activity/Actions</li><li>Implemented execution of Activities</li><li>Implemented EventBasedExecutionHandler</li><li>Added StrolchXmlParser to quickly parse from a file</li><li>Add Activity.remove(String) to remove an element</li><li>Refactored LockHandler to use Locator</li><li>Added Activity.getActionsWithState(State)</li><li>Moved *ToFlat and *FromFlat Json Visitors to strolch model</li><li>Added StrolchElementQuery.internal()</li><li>Added Parameter.clearValue() and list parameters use , as sep</li><li>Json Tags are now in Tags.Json and are drinking camel-case</li><li>Moved PrivilegeAddUserService to command, added tests</li><li>Lots of JavaDoc updates</li><li>Refactored code for REST Inspector to use gson</li><li>Added inspector REST api for activities</li><li>Inspector now has offset/limit for queries</li><li>Added new StringMapArgument for StrolchServices</li><li>Added missing activity observer calls in AbstractTransaction</li><li>Added StringMapResult to use as a ServiceResult</li><li>Removed many visitors and implemented proper visitor pattern&mldr;</li><li>Don&rsquo;t log stack trace if certificate does not exist</li><li>SmtpMailer now understands whitelists for override</li><li>Fixed locator finding for Activity and Action</li><li>Fixed undo logic for general commands</li></ul><p>To summarize, <strong>execution</strong> and <strong>reporting</strong> are the two new features that make
Strolch really awesome! We use execution to perform a number of actions on a
remote device connected to a Strolch agent through WebSockets. This allows
serial and parallel execution of actions and of course locking of concurrently
used resources.</p><p>In an enterprise world reports can never be missed, so we needed an API to
create reports. Of course that API was created in a way that all things are done
in Strolch: generically. Thus a report is created as a Resource, defining the
report object, columns and any relevant joins.</p><p>And one of the really cool things is that we have started with a UI for Strolch.
There is now an <a href=https://github.com/strolch-li/strolch-wc-inspector target=_blank>Inspector</a>
with which the entire data model of a running agent can be seen. This inspector
is built using Polymer and WebComponents and thus can be easily embedded in your
application.</p><p>To facilitate the authentication of a user for the inspector,
an <a href=https://github.com/strolch-li/strolch-wc-auth target=_blank>authentication component</a> was
created as well. And of course i18n can&rsquo;t be forgotten, so there is a component
for <a href=https://github.com/strolch-li/strolch-wc-localize-behavior target=_blank>that</a> too.</p><p>To simplify tasks in a web project, there is also
a <a href=https://github.com/strolch-li/strolchjs target=_blank>StrolchJs</a> repository where certain
Strolch specific things are handled e.g. querying the authenticated user&rsquo;s roles
etc.</p><p>The release of the next Strolch version isn&rsquo;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.</p><p>Until then, happy coding!</p><footer class=footline><i class="fas fa-user"></i><a href=mailto:eitch@eitchnet.ch>Robert von Burg</a> <i class="fas fa-calendar"></i>21/03/2017</div></footer></div></div><div id=navigation><a class="nav nav-prev" href=/blog/post-00013/ title="Strolch Searches"><i class="fa fa-chevron-left"></i></a><a class="nav nav-next" href=/blog/post-00011/ title="Strolch now on Maven Central" style=margin-right:0><i class="fa fa-chevron-right"></i></a></div></section><div style=left:-1000px;overflow:scroll;position:absolute;top:-1000px;border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px><div style=border:none;box-sizing:content-box;height:200px;margin:0;padding:0;width:200px></div></div><script src=/js/clipboard.min.js?1678977091></script><script src=/js/perfect-scrollbar.min.js?1678977091></script><script src=/js/perfect-scrollbar.jquery.min.js?1678977091></script><script src=/js/jquery.sticky.js?1678977091></script><script src=/js/featherlight.min.js?1678977091></script><script src=/js/highlight.pack.js?1678977091></script><script>hljs.initHighlightingOnLoad();</script><script src=/js/modernizr.custom-3.6.0.js?1678977091></script><script src=/js/learn.js?1678977091></script><script src=/js/hugo-learn.js?1678977091></script><script src=/mermaid/mermaid.js?1678977091></script><script>mermaid.initialize({startOnLoad:true});</script><script type=text/javascript>var _paq=window._paq=window._paq||[];_paq.push(["setDocumentTitle",document.domain+"/"+document.title]);_paq.push(["setCookieDomain","*.strolch.li"]);_paq.push(['trackPageView']);_paq.push(['enableLinkTracking']);(function(){var u="https://piwik.eitchnet.ch/";_paq.push(['setTrackerUrl',u+'matomo.php']);_paq.push(['setSiteId','2']);var d=document,g=d.createElement('script'),s=d.getElementsByTagName('script')[0];g.type='text/javascript';g.async=true;g.src=u+'matomo.js';s.parentNode.insertBefore(g,s);})();</script></body></html>