Commit Graph

264 Commits

Author SHA1 Message Date
Robert von Burg 825f8de64d [Major] simplified API for fluent API in StrolchSearch
No matter how hard you try, you can't have an API be good the first round
2018-03-27 14:58:54 +02:00
Robert von Burg 5befc47268 [Minor] Code cleanup in TransientElementMap 2018-03-27 14:14:59 +02:00
Robert von Burg 0c61d563f5 [Minor] Add forEach method on SearchResult 2018-03-26 16:30:39 +02:00
Robert von Burg 77ea06d781 [Major] simplified API for fluent API in StrolchSearch 2018-03-26 14:49:05 +02:00
Robert von Burg a53c9a0e46 [Major] simplified API for fluent API in StrolchSearch 2018-03-26 14:48:12 +02:00
Robert von Burg 277a57dda3 [Minor] Cache PrivilegeContext in StrolchTransaction 2018-03-23 17:11:35 +01:00
Robert von Burg 86b65f8697 [Major] Removed petitparser, using StrolchSearch in REST API 2018-03-20 07:46:28 +01:00
Robert von Burg fee696a5ef [Fix] Fixed compile errors 2018-03-14 10:10:01 +01:00
Robert von Burg 73744d0931 [Fix] Fixed compile errors 2018-03-14 09:33:50 +01:00
Robert von Burg 50fbafde45 [Major] Implemented GenericSearch for internal use 2018-03-14 09:04:07 +01:00
Robert von Burg 9bd0d43f50 [Major] Better generics support in Search API, includin ExpressionBuilder 2018-03-14 08:09:29 +01:00
Robert von Burg 75d79544af [Major] Implemented new search API using Streams 2018-03-13 17:51:24 +01:00
Robert von Burg d3b5fa5128 [Major] Moved query classes to li.strolch.agent 2018-03-12 18:13:46 +01:00
Robert von Burg 44bb21a43f [Fix] DefaultLockHandler uses ConcurrentHashMap 2018-03-10 15:17:30 +01:00
Robert von Burg 7e30e0c78d [Minor] Use tx ind InMemoryElementListener instead of ElementMaps 2018-03-09 12:45:23 +01:00
Robert von Burg 42c500d677 [Minor] clear cache when flushing 2018-03-09 10:49:00 +01:00
Robert von Burg 5fcf08e4eb [New] Added tx.clearCache() 2018-03-09 10:27:28 +01:00
Robert von Burg 742e436a93 [Major] Implemented caching of data in AbstractTransaction 2018-03-08 18:07:11 +01:00
Robert von Burg caeed3d670 [Minor] Fix in TransientElementMap.java 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 315879ebe1 [Major] (Re-)Implemented XML Persistence 2018-02-27 09:00:26 +01:00
Robert von Burg 8e4a1c7ac3 [Fix] Set initial version when updating in TransientElementMap 2018-02-20 12:04:11 +01:00
Robert von Burg a2a0645f3b [Minor] Log exceptions of StrolchSystemAction 2018-02-20 09:47:35 +01:00
Robert von Burg aac4ad2fd9 [Fix] Swapped enableDelayedObserverUpdates 2018-02-13 17:59:01 +01:00
Robert von Burg f3ea159052 [Major] RIP transactional mode 2018-02-09 22:16:34 +01:00
Robert von Burg 0d42defd2a [Major] Reworked visitors: StrolchElement.accept(StrolchElementVisitor) 2018-02-09 11:32:50 +01:00
Robert von Burg a5f9d655b8 [Fix] Remove version of parsed files in inspector 2018-02-02 11:56:41 +01:00
Robert von Burg ba115b70c4 [Fix] Remove version of parsed files in inspector 2018-02-02 11:50:00 +01:00
Robert von Burg a7a33e4e0c [Minor] logger change in TransientRealm 2018-01-10 18:27:05 +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 6328827f9e [Minor] Fixed logging in CachedElementMap 2017-12-07 11:01:12 +01:00
Robert von Burg 04f4fed0ba [New] Added toJson() to ServiceResult, ModelStatistics 2017-11-29 16:56:36 +01:00
Robert von Burg 2d60a352b4 [Fix] Fix not allow to re-add removed element with versioning enabled 2017-11-01 10:15:21 +01:00
Robert von Burg 49d5e41fe5 [Minor] Also log for which parameter the element was not found 2017-10-27 09:20:04 +02:00
Robert von Burg d44da5b587 [New] Added StrolchEnum.keySet() 2017-10-25 09:41:07 +02:00
Reto Breitenmoser b89aa885d4 [Minor] set new creation date for template orders 2017-10-21 21:04:19 +02:00
Robert von Burg c0bf2ae428 [Major] Refactored GenericReport into Policies for extension 2017-10-18 13:11:39 +02:00
Robert von Burg 394c3735e3 [New] Added StrolchTransaction.getResourceFor(Action) 2017-10-12 16:12:39 +02:00
Robert von Burg 5c5a3afbbc [Fix] re-run add model change commands in TX, as commands create new 2017-10-10 12:06:37 +02:00
Reto Breitenmoser 4adac09ab5 [Minor] set username from certificate 2017-10-09 21:44:49 +02:00
Reto Breitenmoser 283a78bdfa [Minor] added authenticateSingleSignOn method 2017-10-08 21:19:30 +02:00
Robert von Burg adf53dd49f [Major] Implemented SingleSignOn facility for Privilege 2017-10-06 16:59:22 +02:00
Robert von Burg 4087608e1a [Fix] Throw Exception on programmer mistake if no commitOnClose with + 2017-10-05 09:54:42 +02:00
Robert von Burg 45a385920d [Fix] Fixed NPE in AbstractTransaction.needsCommit() 2017-10-04 14:27:13 +02:00
Robert von Burg dad2f35b16 [Major] Multiple changes to StrolchTransaction:
New:
- needsCommit() -> return true if objects or commands are registered
- hasResource()
- hasOrder()
- hasActivity()

Changes:
- When tx.add(), update() or remove() is called, then get*Template(),  or get*By() check the internal cache and thus e.g. a new resource is immediately available.
- the has*()-methods also check the internal cache, thus the need to get the underlying maps should now no longe be required in normal TX use.
2017-10-04 13:10:20 +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 90a81b6725 [Major] Rename DO_NOTHING as READ_ONLY in StrolchTransaction 2017-10-03 11:37:01 +02:00
Robert von Burg 84d3ca4666 [Minor] Some code cleanup for JDK 9 2017-09-29 16:21:21 +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 4bcddc4e3b [Major] Removed MainStarter.java as never used 2017-09-28 13:32:57 +02:00
Robert von Burg 592fce0e88 [Minor] tx.add*() -> remove check for existing. Need deeper fix 2017-09-27 20:52:10 +02:00
Robert von Burg 3310bb8766 [Minor] Fix compile warnings 2017-09-26 15:01:02 +02:00
Robert von Burg fd4d428000 [New] It is now possible to override a logging
Just add a logback.xml file with the appropriate configuration in the
config folder and it will be loaded automatically.
2017-09-20 17:41:24 +02:00
Robert von Burg 060692a5c1 [Fix] Fixed RuntimeConfiguration.getConfigFile() 2017-09-20 17:40:34 +02:00
Robert von Burg d0aa763f6a [New] Added StrolchJob for recurring jobs 2017-09-15 10:35:37 +02:00
Robert von Burg 4153c9bb14 [Minor] Throw exception if forget to commit 2017-09-08 18:51:23 +02:00
Robert von Burg 97a0c076a4 [Minor] Throw exception if forget to commit 2017-09-08 18:48:53 +02:00
Robert von Burg d2f19dca5d [Minor] Small memory consumption improvement 2017-08-30 16:31:44 +02:00
Robert von Burg 5461d04f4e [New] StrolchAgent now instantiates executor services for async work 2017-08-30 14:34:19 +02:00
Robert von Burg 9e47eb4070 [Fix] Fixed error due to objectFilter noch flushed 2017-08-24 16:44:09 +02:00
Robert von Burg f2cdea3b7d [Major] Changes in LogMessage, not using ID for equals 2017-08-16 11:23:44 +02:00
Robert von Burg 27b6beff03 [Fix] Use certificate username, if firstname and lastname null
- but only for agent users
2017-08-08 14:58:01 +02:00
Robert von Burg c79f1d6ae6 [Fix] Returning 401 if session is invalid, 403 for privilege 2017-07-26 15:15:20 +02:00
Robert von Burg e71b7b018b [Major] Now exposing StrolchTransaction.assertHasPrivilege()
Enforcing privilege checking was a bad idea
2017-07-25 14:12:51 +02:00
Robert von Burg 1183000520 [Major] Implemented privilege checking for DAO
Now the PrivilegeConfig.xml must include:

	<Policies>
		<Policy name="ModelPrivilege"
class="li.strolch.runtime.privilege.ModelPrivilege" />
	</Policies>

And PrivilegeRoles.xml must include:

	<Role>
		<Privilege name="GetResource" policy="ModelPrivilege">
			<AllAllowed>true</AllAllowed>
		</Privilege>
		<Privilege name="GetOrder" policy="ModelPrivilege">
			<AllAllowed>true</AllAllowed>
		</Privilege>
		<Privilege name="GetActivity" policy="ModelPrivilege">
			<AllAllowed>true</AllAllowed>
		</Privilege>
		<Privilege name="AddResource" policy="ModelPrivilege">
			<AllAllowed>true</AllAllowed>
		</Privilege>
		<Privilege name="AddOrder" policy="ModelPrivilege">
			<AllAllowed>true</AllAllowed>
		</Privilege>
		<Privilege name="AddActivity" policy="ModelPrivilege">
			<AllAllowed>true</AllAllowed>
		</Privilege>
		<Privilege name="UpdateResource" policy="ModelPrivilege">
			<AllAllowed>true</AllAllowed>
		</Privilege>
		<Privilege name="UpdateOrder" policy="ModelPrivilege">
			<AllAllowed>true</AllAllowed>
		</Privilege>
		<Privilege name="UpdateActivity" policy="ModelPrivilege">
			<AllAllowed>true</AllAllowed>
		</Privilege>
		<Privilege name="RemoveResource" policy="ModelPrivilege">
			<AllAllowed>true</AllAllowed>
		</Privilege>
		<Privilege name="RemoveOrder" policy="ModelPrivilege">
			<AllAllowed>true</AllAllowed>
		</Privilege>
		<Privilege name="RemoveActivity" policy="ModelPrivilege">
			<AllAllowed>true</AllAllowed>
		</Privilege>
	</Role>
2017-07-24 20:07: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 e459b561b8 [Major] LogMessage now has an ID which is used in OperationsLog 2017-06-15 13:33:14 +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 0badb0fc01 [Minor] Log duration of state changes in components 2017-06-07 15:53:10 +02:00
Robert von Burg 4c9e66876a [Major] Privilege passwords are now salted! 2017-05-22 14:37:48 +02:00
Robert von Burg d5514e772c [Minor] Fixed deprecation in MainStarter 2017-05-18 15:02:58 +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 3f7c959865 [New] Added new EventCollectingObserverHandler
This observer handler is enabled with the additional boolean
configuration <enableDelayedObserverUpdates> and allows for less updates
to observers as they are cached
2017-05-16 14:29:59 +02:00
Robert von Burg f1216f8825 [Major] Now throwing exception if TX is not committed but has commands 2017-05-16 14:28:32 +02:00
Robert von Burg b68b74aade [Fix] Fixed InMemoryTransaction marked committed on flush 2017-05-09 12:30:53 +02:00
Robert von Burg b302c3f19e [Fix] Fixed wrong exception message when asserting *-Ref parameters 2017-05-08 19:07:51 +02:00
Robert von Burg 96ed97132b [New] StrolchTransaction.findElement() override for allowing null 2017-05-03 15:31:26 +02:00
Robert von Burg 22538dc7fa [Major] New implementation of ObserverHandler for async updates 2017-05-02 16:07:55 +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 c835ef2735 [Minor] Cleaned up use of new FileInputStream 2017-04-11 11:04:46 +02:00
Robert von Burg 6afba02c59 [Major] Implemented querying Activities by state and resolves #3 2017-04-06 10:02:04 +02:00
Robert von Burg fbb2bc85db [Minor] Small logging changes 2017-04-06 08:42:05 +02:00
Robert von Burg 801f792771 [Minor] Added StrolchComponent.openTx() methods 2017-03-29 14:14:25 +02:00
Robert von Burg fa7309cb19 [New] Added StrolchElementQuery.internal() 2017-03-01 01:37:55 +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 5c8ccabd7f [New] Added new ReservationExection to reserve resources 2017-02-20 17:32:44 +01:00
Robert von Burg f086143e82 [Minor] JavaDoc updates for StrolchRealm 2017-02-17 17:37:41 +01:00
Robert von Burg 743709f103 [Fix] Added missing activity observer calls in AbstractTransaction
- also updated JavaDoc of ObserverHandler
- and only perform observer updates if element list are not empty
2017-02-17 17:26:37 +01:00
Robert von Burg 834fab7601 [New] Added StrolchConfiguration.getComponentConfiguration(Class) 2017-02-17 13:38:21 +01:00
Robert von Burg 3770e7b65c [Minor] Give component name, when state change invalid 2017-02-17 13:37:35 +01:00
Robert von Burg 98532d2f88 [Major] locator for a timed state must have TimedState separator 2017-02-02 12:56:21 +01:00
Robert von Burg 5cdffcc450 [New] Implemented StrolchTransaction.setSuppressAuditsForAudits() 2017-01-31 11:24:27 +01:00
Robert von Burg 6bf3ee1509 [New] Added methods on StrolchTransaction and StrolchComponent 2017-01-23 16:42:08 +01:00
Robert von Burg edcef3e755 Merged branch release/1.4.0 into develop 2016-11-03 11:51:11 +01:00
Robert von Burg 8fd4a5e311 [Fix] Fixed InMemoryElementListener because of versioning 2016-10-24 11:08:41 +02:00
Robert von Burg f5fc938124 [Minor] Always log original exception if TX fails 2016-10-24 10:45:06 +02:00
Robert von Burg ba476b2f68 [Minor] Added TODO about .getBy() which returns clone, and querying 2016-10-07 09:38:39 +02:00