Skip to content

Commit 845aa0c

Browse files
Modified build spec to update palette
Added DataManipulation package as dependency
1 parent f0d1525 commit 845aa0c

File tree

2 files changed

+56
-13
lines changed

2 files changed

+56
-13
lines changed

Configuration Manager.vipb

+56-13
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
<VI_Package_Builder_Settings Version="0.6" Created_Date="2018-06-04 19:50:03" Modified_Date="2018-06-06 06:48:41" Creator="Francois Normandin" Comments="" ID="06f51ec3df6a4d8372f26833433c7c66">
1+
<VI_Package_Builder_Settings Version="0.6" Created_Date="2018-06-04 19:50:03" Modified_Date="2018-07-08 17:04:31" Creator="Francois Normandin" Comments="" ID="f880995910e9ce73801a331ea1a61fbf">
22
<Library_General_Settings>
33
<Package_File_Name>LabVIEW_Open_Source_lib_Configuration_Manager</Package_File_Name>
4-
<Library_Version>1.0.0.3</Library_Version>
4+
<Library_Version>1.0.0.4</Library_Version>
55
<Auto_Increment_Version>false</Auto_Increment_Version>
66
<Library_Source_Folder>source</Library_Source_Folder>
77
<Library_Output_Folder>_built-packages</Library_Output_Folder>
@@ -16,7 +16,10 @@
1616
<Target>LabVIEW</Target>
1717
</Library_General_Settings>
1818
<Advanced_Settings>
19-
<Package_Dependencies/>
19+
<Package_Dependencies>
20+
<External_Dependencies>labview_open_source_lib_data_manipulation &gt;= 1.0.0.1</External_Dependencies>
21+
<Direct_Dependencies>labview_open_source_lib_data_manipulation-1.0.0.1</Direct_Dependencies>
22+
</Package_Dependencies>
2023
<Custom_Action_VIs>
2124
<Pre-Build_VI/>
2225
<Post-Build_VI/>
@@ -31,11 +34,23 @@
3134
<Description>Configuration Manager is an interface for managing configuration data.
3235
User are expected to extend the core to provide concrete implementation for disk of database persistency.
3336

34-
This package contains a generic API for configuration data access. It includes a Collection class for multiple configurations and it includes a Cache class which provides in-memory configuration management.</Description>
37+
This package contains a generic API for configuration data access. It includes a Collection class for multiple configurations and it includes a Cache class which provides in-memory configuration management.
38+
39+
*********
40+
The ConfigurationManager project is aimed at providing the backbone for framework-agnostic configuration management. Developers can override data source, provide their own serialization/deserialization algorithms, encoding or encryption. It is meant to be used as an injectable configuration management tool where the developer chooses at runtime what is the configuration supported, thus allowing unit testing with dependency-injected configuration states, while accessing configuration from remote locations or local file in a production context.
41+
42+
This library proposes an abstract ConfigManager class and supplements it with a Cache ConfigManager (provides in-memory support) and a Collection ConfigManager (which aggregates an array of ConfigManagers). The CacheManager is a singleton in any given application instance (context). When merging managers into a Collection (or merging collections into a single one), the Cache managers are kept as a singleton. The Cache manager cannot be distributed over a network or shared in multiple application instances on the same machine. A distributed cache manager would be a specific type of manager that the developer can instantiate (it would act as a normal Config Manager).
43+
44+
Examples of Configuration Managers could be CfgManager.INI, CfgManager.mySQL, CfgManager.XML, etc.
45+
46+
During "Read" operations, the Collection of ConfigManagers is scanned until all elements have been found. If all elements are found in the first manager, it will not continue searching the other managers. Cache manager is always the last, unless the node specifies that it should be used preferably. On a successful read, the Cache manager is updated (Write) with the latest value.
47+
48+
During "Write" operations, the elements will be written in the first manager of the Collection, and Cache will be updated.</Description>
3549
<Copyright/>
3650
<Packager/>
3751
<URL/>
38-
<Release_Notes>Initial release - Configuration Manager with Collection and Cache support</Release_Notes>
52+
<Release_Notes>Adding Variant Read and Write support (flattens/unflattens variants to/from Key Value Pairs)
53+
This package now depends on LVOS DataManipulation package.</Release_Notes>
3954
</Description>
4055
<Destinations>
4156
<Toolkit_VIs>
@@ -312,7 +327,35 @@ This package contains a generic API for configuration data access. It includes a
312327
<Path>source\Advanced</Path>
313328
<VI_Title/>
314329
</Items_Data>
315-
<GUID>808B7DC185CF339F783E55F972A0D4DF</GUID>
330+
<Items_Data>
331+
<Type>Item</Type>
332+
<Sub_Palette_Index>-1</Sub_Palette_Index>
333+
<NameSub_Menu_Name>Write(Variant).vi</NameSub_Menu_Name>
334+
<Short_Name/>
335+
<is_Merge_VI>false</is_Merge_VI>
336+
<Position>
337+
<Row>3</Row>
338+
<Column>3</Column>
339+
</Position>
340+
<Icon>00000000</Icon>
341+
<Path>source\Manager\Write(Variant).vi</Path>
342+
<VI_Title/>
343+
</Items_Data>
344+
<Items_Data>
345+
<Type>Item</Type>
346+
<Sub_Palette_Index>-1</Sub_Palette_Index>
347+
<NameSub_Menu_Name>Read(Variant).vi</NameSub_Menu_Name>
348+
<Short_Name/>
349+
<is_Merge_VI>false</is_Merge_VI>
350+
<Position>
351+
<Row>3</Row>
352+
<Column>2</Column>
353+
</Position>
354+
<Icon>00000000</Icon>
355+
<Path>source\Manager\Read(Variant).vi</Path>
356+
<VI_Title/>
357+
</Items_Data>
358+
<GUID>F3FF291614BE58D24291B011C941655D</GUID>
316359
</Functions_Palette_Data>
317360
<Functions_Palette_Data>
318361
<Parent_Palette_Index>7</Parent_Palette_Index>
@@ -361,7 +404,7 @@ This package contains a generic API for configuration data access. It includes a
361404
<Path>source\Encoding\Encode.vi</Path>
362405
<VI_Title/>
363406
</Items_Data>
364-
<GUID>79FC6BED936BD6612BB1CE25BD844B58</GUID>
407+
<GUID>117BE5729F997DEBDFF36869F5DB989E</GUID>
365408
</Functions_Palette_Data>
366409
<Functions_Palette_Data>
367410
<Parent_Palette_Index>7</Parent_Palette_Index>
@@ -410,7 +453,7 @@ This package contains a generic API for configuration data access. It includes a
410453
<Path>source\Encoding.Base64\Encode.vi</Path>
411454
<VI_Title/>
412455
</Items_Data>
413-
<GUID>37718197EBCB17B699D773351B4A9403</GUID>
456+
<GUID>786DFFFFE1007EBA11FEB14636E1AFB8</GUID>
414457
</Functions_Palette_Data>
415458
<Functions_Palette_Data>
416459
<Parent_Palette_Index>7</Parent_Palette_Index>
@@ -459,7 +502,7 @@ This package contains a generic API for configuration data access. It includes a
459502
<Path>source\Encryption\Encrypt.vi</Path>
460503
<VI_Title/>
461504
</Items_Data>
462-
<GUID>CDA425607F084180454BA822FD762A08</GUID>
505+
<GUID>F3A962892D3C144E64FF08F67F199ECF</GUID>
463506
</Functions_Palette_Data>
464507
<Functions_Palette_Data>
465508
<Parent_Palette_Index>0</Parent_Palette_Index>
@@ -564,7 +607,7 @@ This package contains a generic API for configuration data access. It includes a
564607
<Path>source\Manager\Write Serializer.vi</Path>
565608
<VI_Title/>
566609
</Items_Data>
567-
<GUID>F48C5908CE3EDC03FF9F96CA819DD323</GUID>
610+
<GUID>C4FA08C910E32FBF56B9ED6E132D3802</GUID>
568611
</Functions_Palette_Data>
569612
<Functions_Palette_Data>
570613
<Parent_Palette_Index>7</Parent_Palette_Index>
@@ -613,7 +656,7 @@ This package contains a generic API for configuration data access. It includes a
613656
<Path>source\Serializer\UnMarshall.vi</Path>
614657
<VI_Title/>
615658
</Items_Data>
616-
<GUID>EC9347FFB24C5F425FBC2DD30C054751</GUID>
659+
<GUID>B5A35B5F3E1D6873FCA47864098700BB</GUID>
617660
</Functions_Palette_Data>
618661
<Functions_Palette_Data>
619662
<Parent_Palette_Index>0</Parent_Palette_Index>
@@ -662,7 +705,7 @@ This package contains a generic API for configuration data access. It includes a
662705
<Path>source\Collection\Create Collection.vi</Path>
663706
<VI_Title/>
664707
</Items_Data>
665-
<GUID>D64BAD861B05B0505B6CD194E8A74FB4</GUID>
708+
<GUID>4CF0198703108636C7D7B1D71C3FC38A</GUID>
666709
</Functions_Palette_Data>
667710
<Functions_Palette_Data>
668711
<Parent_Palette_Index>0</Parent_Palette_Index>
@@ -739,7 +782,7 @@ This package contains a generic API for configuration data access. It includes a
739782
<Path>source\Serializer</Path>
740783
<VI_Title/>
741784
</Items_Data>
742-
<GUID>32BC41928BD03EE908869F293B0E9911</GUID>
785+
<GUID>525981189EC3F42E43BAEBDCD68500CE</GUID>
743786
</Functions_Palette_Data>
744787
</Library_Palette_Definition>
745788
</VI_Package_Builder_Settings>

Configuration Manager.vipc

304 KB
Binary file not shown.

0 commit comments

Comments
 (0)