Tuukka Lehtonen [Mon, 6 Nov 2017 10:53:36 +0000 (12:53 +0200)]
Fixed migrating import temporary folder creation to prevent name overlap
Previously model imports could fail if they were small and contained one
or more shared libraries imported at the same time because the imports
could be done within the same second which triggered the folder name
overlap.
Tuukka Lehtonen [Sun, 5 Nov 2017 11:52:32 +0000 (13:52 +0200)]
Some fixes/cleanup for cluster table size caching logic.
The previous code was not keeping the cached size properly up-to-date
which resulted in the DB client thinking that the consumer cluster
memory size is larger than it actually is and eventually winding up in a
state where the LRU importanceMap is constantly almost empty and the
code keeps throwing away clusters whenever the next cluster is loaded
due the misconception of used cluster memory.
The code is still not perfect/totally functional - I was still able to
get the thrashing situation to reproduce with A6 model imports, but not
as heavily as originally. I was able to import models with much more
initial conditions stored than previously without these changes.
Tuukka Lehtonen [Fri, 3 Nov 2017 06:50:24 +0000 (08:50 +0200)]
DefaultMouseListener was added twice in GraphExplorerComposite
Changed ExpandNodeHandler double click action to perform its search for
editor adapters based on the input object provided in the double click
event instead of the NodeContext potentially contained by the input
object. This makes it use the same logic as OpenDefaultEditor adapter.
Tuukka Lehtonen [Thu, 2 Nov 2017 14:52:34 +0000 (16:52 +0200)]
Allow overriding issue hidden-ness/hiding logic in inheriting ontologies
Changed the way issues are modelled by adding two new
function-properties: hider & hidden. hider is used to change the
hidden-state of issues and hidden is used to query the state. This
allows e.g. fully variable-based dynamic issue hierarchies to support
hiding as well.
Previously the code performed the script validation directly in the DB
listener thread, which is essentially QueryThread-0 without putting the
related ReadGraph into the current SCLContext while doing so. This
caused the validation code to crash because the validation code tries to
start a new database transaction from within the transaction thread
calling the listener.
The solution schedules the validation to a BUILD priority Job thread.
Tuukka Lehtonen [Thu, 2 Nov 2017 12:56:16 +0000 (14:56 +0200)]
Fixed databoard set binding getAll indexing bug
All *SetBindings were missing a simple i++ increment which caused
serialization of a TreeSet<..> structure to fail with NPE when the set
contained more than 1 elements.
Tuukka Lehtonen [Fri, 27 Oct 2017 13:06:18 +0000 (16:06 +0300)]
Fixed org.simantics.lz4 to use bundle data area when running in OSGi
Previously org.simantics.lz4 would always extract the native LZ4 dynamic
library to java.io.tmpdir which is plain stupid. Now when running in
OSGi environment, we simply extract the file once to the data area and
reuse it from there.
Further development could even use the MD5 sum of the lz4 DLL to extract
every version of the DLL only once to java.io.tmpdir but I'm saving this
for later.
Jussi Koskela [Thu, 26 Oct 2017 09:50:35 +0000 (12:50 +0300)]
Collect model dependencies in reversed topological order
The Previous implementation did not produce reversed topological order
for the following dependencies: Model->A, Model->B, A->B, if B was by
chance visited before A.
Tuukka Lehtonen [Sat, 21 Oct 2017 10:19:15 +0000 (13:19 +0300)]
Skip archive creation for P2-repository builds
There is no point in creating an archive of the P2
repositories created for repository and product builds.
This shaves a few seconds off of the total SDK build time.
jsimomaa [Mon, 16 Oct 2017 20:31:41 +0000 (23:31 +0300)]
Cluster loading problem fix made by Antti
It was possible that at first a proxy cluster was created and that was
used after the initial cluster was created. Therefore ensure that
proxied clusters are actually loaded. More technical details from Antti
Tuukka Lehtonen [Wed, 11 Oct 2017 12:07:35 +0000 (15:07 +0300)]
Added qualifier to org.simantics.sdk version
This change was required to make the Simatnics SDK contents update after
the SDK contents are changed in some way. Otherwise local bundle pools
will not get updated easily.
Tuukka Lehtonen [Wed, 11 Oct 2017 10:39:39 +0000 (13:39 +0300)]
Added .qualifier to feature version to force the features to update
The contents of the features have changed in the past but the version of
the feature has not updated so users' local bundle pools still contain
old version so the feature bundle.
This touches org.apache.lucene4 and com.lowagie.text features.
Antti Villberg [Thu, 11 May 2017 13:19:58 +0000 (16:19 +0300)]
Support using a DB baseline for faster program startup.
Use by specifying the JVM argument
-Dorg.simantics.db.baseline=<path to baseline zip file>
where the baseline zip file must contain two directories:
* db/ which contains the initial database version
* .metadata/.plugins/org.simantics.db.indexing which contains the
initial database index
During baseline initialization, the specified zip file is extracted
directly at the root of the workspace directory.
The baseline file is hard-linked/copied under the workspace root as a
file called `.baseline`. If this file exists, it indicates that the
workspace has already been initialized from a baseline archive and
should not be initialized/updated anymore.
Limitations:
* Automatic ontology updates or installation of new ontology plugins is
disabled when a database baseline is in use.