Opened 9 years ago
Last modified 9 years ago
#2409 closed defect
Dependent plugins of programmable items cannot be determined through serialization — at Version 1
Reported by: | abeham | Owned by: | abeham |
---|---|---|---|
Priority: | medium | Milestone: | HeuristicLab 3.3.12 |
Component: | Hive.Client | Version: | 3.3.11 |
Keywords: | Cc: |
Description (last modified by abeham)
We have an issue with programmable items that are sent to HIVE.
These items may use classes from plugins that are not dependencies of the plugin where the programmable item is contained in. These classes may not appear in the serialized representation of the programmable item. Thus the HIVE client does not know that these plugins need to be included.
The solution is to introduce an interface IProgrammableItem in HeuristicLab.Core which is then implemented by all programmable items that currently exist. The Hive client has to check whether such a type is present and in that case send all loaded plugins to Hive.
The discussed alternative solution was to introduce a method in that interface that would return all referenced plugins from the compiled assembly. The downside is that we may lose that information, e.g. when serializing those items to a .hl file. If we restore that file later and send it to HIVE we would have to recompile all of the items to recover that information which is not possible due to the slow compilation process. This could be mitigated by having a common base class that extracts that information from the compiled assembly. Ticket #2410 describes the implementation of a common base class.