Opened 10 years ago

Closed 10 years ago

Last modified 9 years ago

#506 closed enhancement (done)

New persistence exploration

Reported by: epitzer Owned by: epitzer
Priority: medium Milestone: HeuristicLab 3.3.0
Component: Persistence Version: 3.2
Keywords: Cc:

Description

Exploration of new possibilities to re-implement serialization in HeuristicLab.

  • Simplify usage for developers, i.e. attribute [Storable].
  • Reduce memory usage by replacing the DOM based parser with something else (see #277)

Change History (64)

comment:1 Changed 10 years ago by epitzer

  • Status changed from new to assigned

Created new Branch with initial implementation of AutoStorable attribute (r1274).

comment:2 Changed 10 years ago by epitzer

last comment should reference revision r1247

comment:3 Changed 10 years ago by epitzer

Evaluation of .NET native serialization (r1248).

comment:4 Changed 10 years ago by epitzer

Full serialization from object tree to XML. No de-serialization yet. (r1264)

comment:5 Changed 10 years ago by epitzer

Complete serialisation/deserialization cycle. (r1274)

Custom serialization poses one important problem: Either the custom serializer can instantiate the object (necessary for e.g. arrays) but its sub-components cannot reference it or a more complex mechanism has to be created.

comment:6 Changed 10 years ago by epitzer

Cleaner distinction between custom serialization and composite serialization. (r1276)

comment:7 Changed 10 years ago by epitzer

Configurable de-serializers. (r1279)

comment:8 Changed 10 years ago by epitzer

Split classes into more files. (r1280)

comment:9 Changed 10 years ago by epitzer

Proper deserialization of parent references. (r1281)

comment:10 Changed 10 years ago by epitzer

Serialization of double values. (r1312)

comment:11 Changed 10 years ago by epitzer

Serialization of multi dimensional arrays. (r1313)

comment:12 Changed 10 years ago by epitzer

added primitive serializers for bool and DateTime. (r1315) added compound serializers for KeyValuePair and IDictionary. (r1316) refactoring of serializers & update of serializer tests. (r1317)

comment:13 Changed 10 years ago by epitzer

added default constructors that include all serializers from the persistence assembly. (r1318)

comment:14 Changed 10 years ago by epitzer

fix ArraySerializer for Array datatype. (r1319)

comment:15 Changed 10 years ago by epitzer

store actual type information instead of declared type. (r1320)

comment:16 Changed 10 years ago by epitzer

automatic cloning with the help of Storable attributes and ICompoundSerializers. (r1321)

comment:17 Changed 10 years ago by epitzer

cached cloning. (r1322)

comment:18 Changed 10 years ago by epitzer

More compact XML Formatting (no empty names, referencable primitives, compact arrays & lists). (r1330)

comment:19 Changed 10 years ago by epitzer

Include storable attributes of base classes. (r1331)

comment:20 Changed 10 years ago by epitzer

Enable object instantiation using non-public default constructors. (r1332)

comment:21 Changed 10 years ago by epitzer

Initialize non-serialized values with specified default values. (r1336)

comment:22 Changed 10 years ago by epitzer

split off test case, include assembly names, format empty variable names (r1338)

comment:23 Changed 10 years ago by epitzer

support for compositve value types (r1339)

comment:24 Changed 10 years ago by epitzer

renamce primitive serializers to formatters and compound/custom serializers to decomposers. (r1348)

comment:25 Changed 10 years ago by epitzer

Central persistence configuration class. (r1349)

comment:26 Changed 10 years ago by epitzer

Implement a type cache. (r1355)

comment:27 Changed 10 years ago by epitzer

Unify token classes for parsing and formatting, make format specification mandatory. (r1356)

comment:28 Changed 10 years ago by epitzer

Pluginification and major refactoring. (r1357)

comment:29 Changed 10 years ago by epitzer

Better formatting configuration interface. (r1358)

comment:30 Changed 10 years ago by epitzer

Externalize tag names for XML formatting/parsing. (r1359)

comment:31 Changed 10 years ago by epitzer

Scrap Storable-based cloning & reorganize namespaces. (r1360)

comment:32 Changed 10 years ago by epitzer

Split all classes into their own file (r1361)

comment:33 Changed 10 years ago by epitzer

Add serializer class information to type cache. (r1362)

comment:34 Changed 10 years ago by epitzer

Convenience method for XML serialization and de-serizliation. (r1363)

comment:35 Changed 10 years ago by epitzer

Simple GUI configuration for decomposers. (r1373)

comment:36 Changed 10 years ago by epitzer

Almost complete GUI for persistence configuration. (r1382)

comment:37 Changed 10 years ago by epitzer

Complete GUI for persistence configuration. (r1398)

comment:38 Changed 10 years ago by epitzer

Deposit GUI-generated Configuration object at ConfigurationService. (r1400)

comment:39 Changed 10 years ago by epitzer

Initialize GUI with current configuration form ConfigurationService. (r1401)

comment:40 Changed 10 years ago by epitzer

New attribute for legitimately empty but storable classes. (r1404)

comment:41 Changed 10 years ago by epitzer

Add empty storable class attributes to classes (r1405)

comment:42 Changed 10 years ago by epitzer

Incorporate settings infrastructure. (r1406)

comment:43 Changed 10 years ago by epitzer

Abstract base class for formats to ensure comparability. (r1407)

comment:44 Changed 10 years ago by epitzer

Added Type decomposer for serialization of Type objects. (r1408)

comment:45 Changed 10 years ago by epitzer

Include decomposer configuration in dynamically created tab pages for every persistence configuration. (r1414)

comment:46 Changed 10 years ago by epitzer

Don't crash if user configuration cannot be loaded. (r1418)

comment:47 Changed 10 years ago by epitzer

Implement persistence of storables as decomposer. (r1419)

comment:48 Changed 10 years ago by epitzer

Remove old storable persistence mechanism. (r1420)

comment:49 Changed 10 years ago by epitzer

Remove unnecessary class attributes. (r1421)

comment:50 Changed 10 years ago by epitzer

New extension method to obtain a full name without version information an public key token. (r1422)

comment:51 Changed 10 years ago by epitzer

Add missing file StorableDecomposer.cs (should belong to r1419) (r1423)

comment:52 Changed 10 years ago by epitzer

Use version invariant assembly qualified name and update plug-in assembly name. (r1425)

comment:53 Changed 10 years ago by epitzer

Bug fix type names for interfaces don't work with version invariant type names. (r1427)

comment:54 Changed 10 years ago by epitzer

Refactoring of Generator interface. (r1428)

comment:55 Changed 10 years ago by epitzer

View-only serializer for debugging purposes. (r1429)

comment:56 Changed 10 years ago by epitzer

Fix nasty copy&paste bug. (r1433)

comment:57 Changed 10 years ago by epitzer

Almost complete solution for correctly handling parent references. (r1434)

Currently enumerables can cause problems if they contain references to parents that have not yet been constructed. A potential delay of the add procedure will re-order the elements. Therefore, we currently have two array decomposers: a safe version that will never re-order enumerables but may fail on uninstantiated parents and a robust version that might re-order elements.

comment:58 Changed 10 years ago by epitzer

Properly deserialize enumerables with parent references, use single Setter delegate, fix id references of primitive values. (r1435)

comment:59 Changed 10 years ago by epitzer

Cleanup DeSerializer code. (r1437)

comment:60 Changed 10 years ago by epitzer

Include lower bounds in serialized arrays. (r1438)

comment:61 Changed 10 years ago by epitzer

  • Resolution set to fixed
  • Status changed from assigned to closed

merge persistence exploration branch into trunk as HL plugin. (r1454)

comment:62 Changed 10 years ago by swagner

  • Summary changed from New Persistence Exploration to New persistence exploration

comment:63 Changed 9 years ago by swagner

  • Milestone changed from Iteration 2 to Current

Milestone Iteration 2 deleted

comment:12 Changed 9 years ago by swagner

  • Milestone changed from Current to HeuristicLab 3.3.0

Milestone Current deleted

Note: See TracTickets for help on using tickets.