Commit Graph

280 Commits

Author SHA1 Message Date
Robert von Burg cc15510753 [New] Added PrivilegeAddUserCommand.setCert() 2019-03-07 14:28:13 +01:00
Robert von Burg e4cad10afc [New] New StringArgument 2019-03-07 14:27:56 +01:00
Robert von Burg 724c106273 [Fix] Fixed formatting of numbers in SQL 2019-03-05 19:06:49 +01:00
Robert von Burg 0d1ab66cb9 [Major] Made GenericReport to be auto closeable 2019-03-05 18:01:09 +01:00
Robert von Burg 7d87589ce2 [Minor] Log when activity is complete and needs archiving 2019-02-22 15:44:54 +01:00
Robert von Burg 21c414ab00 [Major] runAs*() now throws Exception 2018-12-18 14:30:37 +01:00
Robert von Burg 15a03928e2 [Major] Refactored StrolchXmlHelper 2018-12-12 10:58:13 +01:00
Robert von Burg 22883faa0d [Major] Implemented Control REST Service 2018-12-04 09:00:00 +01:00
Robert von Burg 84cf1471ea [New] Added privileges for viewable reports 2018-11-08 10:48:23 +01:00
Robert von Burg 34d53d5d56 [Fix] Ignore duplicate calls in SimpleDurationExecutionTimer for same Locator 2018-10-23 15:26:54 +02:00
Robert von Burg 038dc62d8d [New] Update existing sessions when modifying roles and users 2018-10-16 13:34:43 +02:00
Robert von Burg ced8c42c57 [Major] Implemented persisting of OperationsLog 2018-10-15 11:06:45 +02:00
Robert von Burg 1c6d873e5c [New] added ArchiveExecutedActivitiesJob 2018-10-05 13:31:33 +02:00
Robert von Burg b6819c4b47 [Major] Removed serializable and reformatted all code 2018-10-05 09:17:13 +02:00
Robert von Burg 0c287b917a [Minor] use tx.findParameterOnHierarchy() in GenericReport 2018-10-04 19:05:04 +02:00
Robert von Burg c8d23d0393 [Fix] lock action's resource early by locator to stop race condition 2018-09-12 10:29:45 +02:00
Reto Breitenmoser 4a751412ca [Fix] switched params for sorting (desc,asc) 2018-09-11 14:46:48 +02:00
Robert von Burg e4a91526d8 [Minor] make sure objectType param exists in GenericReport 2018-09-11 09:11:12 +02:00
Robert von Burg 91167cfccd [Major] Clean up of the services to add, update, remove root elements 2018-09-10 12:51:38 +02:00
Robert von Burg 9b8e91d0a5 [New] Added REST API for Reports 2018-09-07 10:17:37 +02:00
Robert von Burg 966fbf6f69 [Fix] Fixed counter in reports 2018-09-06 20:27:54 +02:00
Robert von Burg 1ed1d57880 [Fix] Fixed calculating size, by peeking the stream 2018-09-06 19:46:46 +02:00
Robert von Burg 96180ce91e [Major] Cleanup services to add/update/remove resources/orders/activities 2018-09-05 17:48:12 +02:00
Robert von Burg 7677d27442 [Fix] Fixed behavior of IsIn and Contains ReportFilters 2018-08-30 13:08:59 +02:00
Robert von Burg 13f180fe6d [New] GenericReport: sorting of filter criteria and hiding of them 2018-08-29 13:12:45 +02:00
Robert von Burg bce72f76f6 [Fix] Fixed log output of SetActionTo* commands 2018-08-27 10:21:35 +02:00
Robert von Burg 844bb670b4 [New] Added ExecutionPolicy.runAsAgentWithResult() 2018-08-23 10:51:07 +02:00
Robert von Burg 15db21b45e [Major] Call validate() in EventBasedExecutionHandler and lock action/activie 2018-08-23 10:50:51 +02:00
Reto Breitenmoser f05b02e956 [New] added Contains Report Filter 2018-08-21 10:18:00 +02:00
Reto Breitenmoser 2ddc98fe04 [New] added isIn Report Filter 2018-08-20 21:32:25 +02:00
Robert von Burg 0c8f0df318 [New] Added getter for underlying ReportPolicy in Report 2018-08-16 13:37:11 +02:00
Robert von Burg 374cd77d6d [New] Added JavaDoc to GenericReport 2018-08-13 17:46:01 +02:00
Robert von Burg f1f689b8ca [New] Added exception to OperationsLog 2018-08-07 13:54:17 +02:00
Robert von Burg e644b43e2c [Major] Refactored Operations Log 2018-08-03 14:13:46 +02:00
Robert von Burg 060e3f21ad [New] Allow to reference object in report 2018-07-13 12:19:23 +02:00
Robert von Burg 2d7ade06a8 [Minor] Find dependency by String as well as Interpretation and UOM 2018-07-03 15:26:32 +02:00
Robert von Burg ea4bfa8a6a [Minor] Report takes the container from the TX 2018-06-30 20:41:04 +02:00
Robert von Burg e61a4f94f1 [Fix] clone activity before modifying in EventBasedExecutionHandler 2018-06-28 16:23:31 +02:00
Robert von Burg 466838d73b [New] Implemented LessThan and now(Period) filter in reports 2018-06-27 11:12:46 +02:00
Robert von Burg c052911d71 [Major] Refactored ReportFilterPolicy for easier extension 2018-06-26 18:30:29 +02:00
Robert von Burg 1c2d048c45 [Major] Only use tx.get*Map() if you really need it! 2018-06-22 13:14:14 +02:00
Robert von Burg d3375455d6 [Minor] catch exception on stop in StrolchComponents 2018-06-21 17:54:02 +02:00
Robert von Burg d535bf9a5a [Minor] Handle wrong type of join parameter in GenericReport 2018-06-20 15:04:55 +02:00
Robert von Burg fa9d0afacf [Fix] Don't toString columnValues in GenericReport before necessary 2018-05-29 10:04:28 +02:00
Robert von Burg 87d9b83f38 [Fix] Don't toString columnValues in GenericReport before necessary 2018-05-29 09:48:07 +02:00
Robert von Burg f8ea8998b1 [Minor] Fixed JavaDoc due to doclint errors 2018-04-04 16:02:45 +02:00
Robert von Burg 5b6183319c [Fix] don't persist set password if don't have privilege 2018-03-29 16:56:24 +02:00
Robert von Burg 9ccaf5392a [Minor] Persist roles and users after changes 2018-03-20 14:30:12 +01:00
Robert von Burg 6d7e473564 [Major] Implemented user modification in inspector 2018-03-16 17:17:59 +01:00
Robert von Burg 20cd71ab6a [Minor] Use ? extends StrolchRootElement in GenericReport 2018-03-08 18:07:11 +01:00
Robert von Burg 676bb9c11e [Fix] Fixed broken tests 2018-02-28 09:04:49 +01:00
Robert von Burg c66f7c2805 [Major] Implement StrolchElement.isReadOnly() and .setReadOnly()
Modifying a read only element causes an exception. Retrieving elements from the TX, or directly from the ElementMap returns a clone, so nothing changes there. But elements returned by a query will have their readOnly flag set, thus if these are modified, then they need to be cloned first.
2018-02-27 14:46:23 +01:00
Robert von Burg 475c719859 [Major] Reworked visitors: StrolchElement.accept(StrolchElementVisitor) 2018-02-09 09:49:51 +01:00
Robert von Burg 50c379d06d [Major] Using executor pools with names in StrolchAgent 2017-12-19 14:54:57 +01:00
Robert von Burg 04f4fed0ba [New] Added toJson() to ServiceResult, ModelStatistics 2017-11-29 16:56:36 +01:00
Robert von Burg 4513de79af [Minor] Log error in SimpleExecution.java.toError(LogMessage) 2017-11-21 18:04:21 +01:00
Robert von Burg 93e099f101 [New] Adding value changes to actions on execution 2017-11-07 07:40:31 +01:00
Robert von Burg b05c3db748 [Fix] Allow missing join to not crash report on filter of said join 2017-11-02 17:53:49 +01:00
Robert von Burg d21785edd0 [Fix] Allow to archive activities in state CLOSED 2017-10-31 10:55:47 +01:00
Robert von Burg b0ef4ff50d [New] Allow to handle missing columns 2017-10-27 19:22:22 +02:00
Robert von Burg 7c15a8d7c5 [New] Added ExecutionHandler.archiveActivity() 2017-10-27 09:20:32 +02:00
Robert von Burg 3bcd2075d3 [Fix] filter to only StringParameters in joining of GenericReport 2017-10-18 16:33:56 +02:00
Robert von Burg c0bf2ae428 [Major] Refactored GenericReport into Policies for extension 2017-10-18 13:11:39 +02:00
Robert von Burg 7dd6aa8afc [Minor] logger fix in Migrations 2017-10-12 16:13:59 +02:00
Robert von Burg c7fc11f563 [Fix] Fixed reservation problem in concurrent execution 2017-10-09 12:31:02 +02:00
Robert von Burg 2c5dddd893 [Major] rename add/update/remove methods in StrolchTransaction 2017-10-03 11:41:30 +02:00
Robert von Burg 2cb799dfb4 [Major] Removed the need for javax.xml.bind.* imports. Using gson 2017-09-29 15:57:21 +02:00
Robert von Burg 80a1e4af62 [Fix] Fixed not committing after archiving activity 2017-09-19 15:19:29 +02:00
Robert von Burg d9db935bbb [Fix] Fixed wrong value order in CSV export 2017-09-13 15:28:40 +02:00
Robert von Burg 9801e8e543 [Fix] Fixed race condition in XmlExportModelCommand 2017-08-30 16:31:24 +02:00
Robert von Burg 0aca2e517c [Minor] stop future when stopping ExecutorService 2017-08-23 10:59:47 +02:00
Robert von Burg b3adf8dfa5 [Major] Implemented new ToErrorReservationExecution 2017-08-18 17:42:02 +02:00
Robert von Burg c1522fc1e7 [New] EventBasedExecutionHandler can now restart in-exec Activity 2017-08-09 11:31:36 +02:00
Robert von Burg cfe8664ddc [Minor] Allow to set Action to ERROR, if already in ERROR 2017-08-09 11:31:10 +02:00
Robert von Burg c0cc6f57cb [Major] Added add, update and remove methods to TX for elements
Moved add, update and remove commands to agent package
2017-07-24 13:51:17 +02:00
Robert von Burg a214853e94 [Major] Inspector can now update StrolchElements from JSON/XML 2017-07-05 15:07:51 +02:00
Robert von Burg a7fc27627f [New] GenericReport can now do ordering 2017-06-27 08:45:26 +02:00
Robert von Burg 9b92d2fdbc [Major] Refactored LogMessage to use ResourceBundle, instead of bundleId 2017-06-14 17:58:13 +02:00
Robert von Burg 08631498dc [Major] Creating LogMessages for exceptions in Migrations, TX, Execution 2017-06-14 15:54:58 +02:00
Robert von Burg 6dfdcf6a04 [New] Added SimpleExecution methods with LogMessage 2017-06-14 12:53:47 +02:00
Robert von Burg 6171e53ff4 [New] Implemented simple OperationsLog to storing messages 2017-06-14 12:53:08 +02:00
Robert von Burg 5bf7cd8b72 [Major] Changed State machine implementation 2017-06-13 10:26:21 +02:00
Robert von Burg 5471a3176b [Fix] Fix able to restart error actions by setting to STOPPED first 2017-06-12 21:48:33 +02:00
Robert von Burg 3e2e21da6d [Fix] Fixed re-executing ERRORed Action 2017-06-09 16:11:22 +02:00
Robert von Burg b8b0806e12 [New] Now StrolchTimedState compact only if boolean supplied 2017-06-08 14:33:59 +02:00
Robert von Burg ffbbe3c4bb [New] ExecutionHandler.triggerExecution(realm) is now public 2017-06-07 15:53:52 +02:00
Robert von Burg 2470b02a10 [New] Added StringServiceArgument 2017-06-01 12:42:07 +02:00
Robert von Burg 58a3afb3e7 [Minor] Fix logging error in XmlExportModelService 2017-06-01 10:10:41 +02:00
Robert von Burg 4c9e66876a [Major] Privilege passwords are now salted! 2017-05-22 14:37:48 +02:00
Robert von Burg 1354a89f72 [Fix] Fixed issues where remaining actions on Activity aren't executed
This ocurred because of settings remaining unneeded Actions to state
CLOSED, and thus execution was not continued.
2017-05-19 10:55:57 +02:00
Robert von Burg 3622339896 [Major] Total refactoring of StrolchElementVisitor hierarchy 2017-05-17 09:20:27 +02:00
Robert von Burg 42c623cea6 [Major] Added Service.getArgumentInstance() 2017-05-16 15:18:38 +02:00
Robert von Burg 2ed8c8dc5f [New] Implemented RemoveActivityArchival policy 2017-05-14 16:32:59 +02:00
Robert von Burg 24b7f1d2bc [New] Update the order state of activity by Type and Id reference 2017-05-14 15:33:23 +02:00
Robert von Burg 76fb797102 [New] Added ConfirmationPolicy and ActivityArchivalPolicy 2017-05-14 11:42:37 +02:00
Robert von Burg 3dcd4aafaf [New] Added ActivityCreationPolicy 2017-05-09 17:34:52 +02:00
Robert von Burg ade6b5374d [Fix] EventBasedExecutionHandler now executes next action in same TX 2017-05-09 12:43:32 +02:00
Robert von Burg 358f4eff63 [Minor] Small change in ParameterizedElement 2017-05-04 20:45:44 +02:00
Robert von Burg 5d907dc6db [Minor] Added exception handling in EventBasedExecutionHandler 2017-05-04 15:48:39 +02:00
Robert von Burg b700bdf270 [New] Allow to hide objectType from report filter criteria 2017-05-03 16:06:56 +02:00
Robert von Burg 5f1f4af7b0 [Major] GenericReport now supports filter policies
The first two are:
- GreaterThan for FloatParameters
- Equals for strings
2017-05-03 15:32:20 +02:00
Robert von Burg d1a392f025 [Major] Changed the behaviour of the EventBasedExecutionHandler
Now execution is always performed asynchronously for each Action and an
Activity should be added to the ExecutionHandler by calling
.addForExecution(), so that it is executed later even if an action
couldn't be executed to it being reserved (for instance).
2017-04-22 19:25:27 +02:00
Robert von Burg ffe7c2ae0f [New] Added GenericReport.hasDateRangeSelector() 2017-04-13 14:41:07 +02:00
Robert von Burg c835ef2735 [Minor] Cleaned up use of new FileInputStream 2017-04-11 11:04:46 +02:00
Reto Breitenmoser d469a035fb added commitOnClose statement and unit test 2017-03-28 22:19:55 +02:00
Reto Breitenmoser 23b12631d0 if the resource doesn't exist add otherwise update 2017-03-28 21:51:26 +02:00
Robert von Burg 537c6ea8d0 [Fix] Properly initialize GenericReport 2017-03-27 14:39:03 +02:00
Robert von Burg a982097d4f [Minor] added GenericReport.getOrderedColumnKeys() 2017-03-27 14:04:39 +02:00
Robert von Burg 3935a425e0 [Minor] Simplified GenericReport implementation 2017-03-27 11:51:53 +02:00
Robert von Burg bc52cdabda [Minor] Also allow to pass a Set for filter 2017-03-24 11:25:56 +01:00
Robert von Burg 22892671a5 [New] Added searching of column parameter in GenericReport
If a column definition exists as follows:
  <Parameter Id="minQuantity" Name="Min Quantity" Type="String"
Interpretation="Resource-Ref" Uom="Storage"
Value="$search:parent:Bags/parameters/minQuantity" />
  
Then a search is done by looking on this element, and all "parent"
elements where the parent relation is defined by the parameter with the
id "parent". The first instance of the Parameter "minQuantity" is used
as the value for the report.
2017-03-22 14:55:54 +01:00
Robert von Burg 1c4decd578 [Fix] Don't add a null value to the rows in GenericReport 2017-03-22 13:55:31 +01:00
Robert von Burg 9c45bf2ec3 [New] GenericReport: DateRange filter, incl. $id, $type, $date, $state 2017-03-21 15:34:10 +01:00
Robert von Burg 332463f8a9 [New] Added GenericReport.generateFilterCriteria()
This allows the UI to show filter facets based on the actual data
2017-03-21 08:23:29 +01:00
Robert von Burg b0e57d6425 [New] Added filtering to GenericReport 2017-03-21 07:51:13 +01:00
Robert von Burg 30ad0fcaa8 [New] Added new generic report creator
Create a Report as follows:

<Resource Id="stockReport" Name="Stock Report" Type="Report">

  <ParameterBag Id="parameters" Name="parameters" Type="Parameters">
    <Parameter Id="objectType" Name="Object Type" Type="String"
Interpretation="Resource-Ref" Uom="Slot" Value="Slot" />
  </ParameterBag>

  <ParameterBag Id="columns" Name="Display Columns" Type="Display">
    <Parameter Id="location" Name="Location" Type="String"
Interpretation="Resource-Ref" Uom="Location" Value="$name" />
    <Parameter Id="storage" Name="Storage" Type="String"
Interpretation="Resource-Ref" Uom="Storage" Value="$name" />
    <Parameter Id="section" Name="Section" Type="String"
Interpretation="Resource-Ref" Uom="Section" Value="$name" />
    <Parameter Id="slot" Name="Slot" Type="String"
Interpretation="Resource-Ref" Uom="Slot" Value="$name" />
    <Parameter Id="product" Name="Product" Type="String"
Interpretation="Resource-Ref" Uom="Product" Value="$name" />
    <Parameter Id="quantity" Name="Quantity" Type="String"
Interpretation="Resource-Ref" Uom="Slot"
Value="Bags/parameters/quantity" />
    <Parameter Id="maxQuantity" Name="Quantity" Type="String"
Interpretation="Resource-Ref" Uom="Slot"
Value="Bags/parameters/maxQuantity" />
  </ParameterBag>

  <ParameterBag Id="joins" Name="Joins" Type="Joins">
    <Parameter Id="Product" Name="Product" Type="String"
Interpretation="Resource-Ref" Uom="Product" Value="Slot" />
    <Parameter Id="Section" Name="Section" Type="String"
Interpretation="Resource-Ref" Uom="Section" Value="Slot" />
    <Parameter Id="Storage" Name="Storage" Type="String"
Interpretation="Resource-Ref" Uom="Storage" Value="Section" />
    <Parameter Id="Location" Name="Location" Type="String"
Interpretation="Resource-Ref" Uom="Location" Value="Storage" />
  </ParameterBag>

</Resource>

This creates a report for objects of type Slot, where a Join is done on
multiple objects:
  Slot
    -> Product
    -> Section
         -> Storage
               -> Location

Thus the columns can then be fetched from different joing objects. The
joing is done by searching for a Parameter on the joined object on the
ParameterBag "relations". See the example XML on how this is done.

Or ask eitch@eitchnet.ch to write a proper documentation =))

Filtering is missing, and will be added later
2017-03-20 19:27:59 +01:00
Robert von Burg e0149cc4b0 [Major] Removed many visitors and implemented proper visitor pattern... 2017-03-02 16:52:50 +01:00
Robert von Burg 89739717f2 [Major] Refactored LockHandler to use Locator
This is required because in certain instances it is important to lock
the object before retrieving it, otherwise if, for instance in
execution, we would need to fetch, lock and re-fetch to be sure we have
the latest object.

In moste of the Update*Commands this is not important as we perform a
list commit wins, where the client wants their version to be persisted.
Later a optimistic locking can be performed in that the given version
must be the latest, otherwise an exception would be thrown
2017-02-22 12:14:23 +01:00
Robert von Burg 111a75c034 [Fix] Lock activities during execution! 2017-02-21 18:48:24 +01:00
Robert von Burg 5c8ccabd7f [New] Added new ReservationExection to reserve resources 2017-02-20 17:32:44 +01:00
Robert von Burg 99989de8b4 [New] Added StringMapResult to use as a ServiceResult 2017-02-20 09:17:18 +01:00
Robert von Burg 757300e955 [Fix] Don't delete other user's files! 2017-02-17 22:52:49 +01:00
Robert von Burg 9041bf9fb5 [New] Added new StringMapArgument for StrolchServices 2017-02-16 11:15:08 +01:00
Robert von Burg de1d569efd [Minor] Moved PrivilegeAddUserService to command, added tests 2017-01-31 14:20:14 +01:00
Robert von Burg 5cdffcc450 [New] Implemented StrolchTransaction.setSuppressAuditsForAudits() 2017-01-31 11:24:27 +01:00
Robert von Burg 02a8f9d3ef [Minor] Added JavaDoc to execution policies 2017-01-23 16:44:14 +01:00
Robert von Burg 13a7c83d96 [New] Added new SimpleExecution and DurationExecution extends it 2017-01-20 10:23:47 +01:00
Robert von Burg e7cf9bad6d [Fix] Fixed undo logic for general commands
Should a command be undone, then some commands performed an undo,
although they didn't perform their work, this led to an inconsistent
data model. I.e. AddResourceCommand would fail because the resource
already existed and an undo would lead to the existing object being
removed
2016-11-03 13:35:29 +01:00
Robert von Burg bff0215510 [Major] Refactored the DurationExecutionTimer to not be singleton
Once again it is clear how bad singletons are. One test killed the
timer, thus all other tests failed. Now the DelayedExecutionTimer is
retrieved from the ExecutionHandler and is called DelayedExecutionTimer
with a default implementation of SimpleDurationExecutionTimer
instantiated by the EventBasedExecutionHandler
2016-10-11 14:59:52 +02:00
Robert von Burg b775c00f4d [Major] Implemented ExecutionDuration and fixed deep execution
Using the DurationExecution:

<Activity Id="produceBicycle" Name="Activity" Type="ToStock" 
        TimeOrdering="Series">
  <ParameterBag Name="objectives" Id="Objectives" Type="Objectives">
    <Parameter Name="Duration" Id="duration" Value="PT0.01S" 
          Type="Duration" />
  </ParameterBag>
  <Action Id="produce" Name="Produce" ResourceId="bicycle" 
          ResourceType="Product" Type="Produce" />
</Activity>

IActivityElement now has a new method .findParameter() to search up the
activity hierarchy to find the element
2016-10-06 20:38:06 +02:00
Robert von Burg 811b71f543 [Major] Implemented EventBasedExecutionHandler
Now all Actions are executed, as long as Execution is done through the
ExecutionHandler
2016-09-30 16:35:16 +02:00
Robert von Burg dd227c65d0 [Major] Refactored SystemAction in privileges
Simplified the API, removed the privileged user - now always use the
agent system user for running system actions. One method has no return
value and one has a return value. Now it is easy to perform a system
action using:

    runAsAgent(ctx -> {
      // do work			
    });

    String result = runAsAgentWithResult(ctx -> {
      // do work
      return "done";
    });

    // execute a SystemAction
    runAsAgent(action);

    // execute a SystemActionWithResult
    String result = runAsAgentWithResult(actionWithResult);
2016-09-29 12:26:27 +02:00
Robert von Burg aab5f0b22f [Major] Moved planning services to li.strolch.planning 2016-09-24 19:07:42 +02:00
Robert von Burg 65c02d2cc0 [Major] Implemented first version of Activity execution 2016-09-23 14:20:16 +02:00
Robert von Burg b4bc62d11c [Major] Implemented first version of Activity execution 2016-09-23 14:03:42 +02:00
Robert von Burg d86e23b58f [Fix] Fixed locator finding for Activity and Action 2016-09-23 13:29:02 +02:00
Robert von Burg 5cbbfebf06 [Major] Services now consider Arg realm or user realm 2016-09-22 21:52:36 +02:00
Robert von Burg b7b9d63e79 [Major] Refactored services to use generic Arguments were applicable 2016-09-22 21:06:57 +02:00
Robert von Burg c89a275452 [Major] Planning commands are in planning package 2016-09-22 21:05:13 +02:00
Robert von Burg f8165208b1 [New] Added CRUD Services and Commands for Activities 2016-09-21 12:40:23 +02:00
Robert von Burg 6286949506 [New] Added StrolchRootElement Service Argument and Result classes 2016-09-21 09:48:36 +02:00
Robert von Burg 7269a5f3b1 [New] Added StrolchRootElement Service Argument and Result classes 2016-09-21 09:45:27 +02:00
Robert von Burg 9602313410 [New] Implemented a SmtpMailer and Strolch MailHandler component
SmtpMailer is a singleton and requires properties.

Configure the MailHandler as follows:
<Component>
    <name>MailHandler</name>
    <api>li.strolch.handler.mail.MailHandler</api>
    <impl>li.strolch.handler.mail.SmtpMailHandler</impl>
    <Properties>
        <fromAddr>relayer@eitchnet.ch</fromAddr>
        <fromName>Consilium</fromName>
        <overrideRecipientAddr>eitch@eitchnet.ch</overrideRecipientAddr>
        <overrideRecipientName>Consilium Test</overrideRecipientName>
        <username>relayer@eitchnet.ch</username>
        <password>M5ztAE4a1NWWZBHaUd2ey9aoH</password>
        <auth>true</auth>
        <startTls>true</startTls>
        <host>smtp.gmail.com</host>
        <port>587</port>
    </Properties>
</Component>
2016-09-08 11:19:10 +02:00
Robert von Burg bcc0bf4a10 [Major] Now users can reset their own passwords
- built in User Challenge feature (currently only console)
- extended REST API to allow user to initiate a challenge and then use
the challenge to authenticate for a one time change password session
2016-09-07 14:41:16 +02:00
Robert von Burg 8c4c8e539e [Major] Implemented opt-in versioning
- Implemented marshalling of Version
- Added further tests for marshalled version
- added version in deep equals
- fixing further tests
2016-08-07 17:47:52 +02:00
Robert von Burg 9dc09515e9 [Major] Implemented opt-in versioning
Now all root elements have a version, and if the realm has versioning
enabled, then actions through the ElementMap lead to new versions being
created. There are also methods to revert/undo changes to an object.

Some tests are still failing, this will be fixed later
2016-08-05 20:24:23 +02:00
Robert von Burg 11ba7eb1de [Major] Moved ch.eitchnet to li.strolch 2016-06-26 11:38:41 +02:00
Robert von Burg e2b3e5f7b0 [Minor] removed unnecessary else 2016-02-10 17:48:18 +01:00
Robert von Burg 3502a4adad [Minor] Removed redundant types (diamond operator) 2016-02-10 17:46:50 +01:00
Robert von Burg c37fd20efb [Major] Added persisting and reloading of sessions 2015-10-16 17:21:49 +02:00