From c6b496d80fd88ef1aebcc7cad21f90f5fc6ce759 Mon Sep 17 00:00:00 2001
From: scott snyder <scott.snyder@cern.ch>
Date: Thu, 20 Apr 2017 18:05:45 +0200
Subject: [PATCH] Tests for using symlinks with hive.

Former-commit-id: 5b456f84e9d4472a9df3109400773cf2d8985928
---
 .../DataModelRunTests/CMakeLists.txt          |  10 +
 .../share/xAODTestSymlinks1.ref               | 126 +++++++++++
 .../share/xAODTestSymlinks1MT.ref             | 175 ++++++++++++++++
 .../share/xAODTestSymlinks1MT_jo.py           |  10 +
 .../share/xAODTestSymlinks1_jo.py             |  71 +++++++
 .../share/xAODTestSymlinks2.ref               | 158 ++++++++++++++
 .../share/xAODTestSymlinks2MT.ref             | 195 ++++++++++++++++++
 .../share/xAODTestSymlinks2MT_jo.py           |  10 +
 .../share/xAODTestSymlinks2_jo.py             |  80 +++++++
 .../DataModelRunTests/test/post.sh            |   4 +
 .../DataModelTestDataCommon/CMakeLists.txt    |  15 +-
 .../DataModelTestDataCommon_entries.cxx       |  16 ++
 .../DataModelTestDataCommon_load.cxx          |  15 ++
 .../src/xAODTestReadSymlink.cxx               |  45 ++++
 .../src/xAODTestReadSymlink.h                 |  60 ++++++
 .../DataModelTestDataRead/CMakeLists.txt      |   8 +-
 .../DataModelTestDataReadCnv/CMakeLists.txt   |   2 +-
 .../DataModelTestDataReadCnv/src/CCnv.cxx     |   5 +
 .../DataModelTestDataReadCnv/src/CCnv.h       |  27 +++
 .../DataModelTestDataWrite/CMakeLists.txt     |   8 +-
 .../DataModelTestDataWriteCnv/CMakeLists.txt  |   2 +-
 21 files changed, 1028 insertions(+), 14 deletions(-)
 create mode 100644 Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1.ref
 create mode 100644 Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1MT.ref
 create mode 100644 Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1MT_jo.py
 create mode 100644 Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1_jo.py
 create mode 100644 Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2.ref
 create mode 100644 Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2MT.ref
 create mode 100644 Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2MT_jo.py
 create mode 100644 Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2_jo.py
 create mode 100644 Control/DataModelTest/DataModelTestDataCommon/src/components/DataModelTestDataCommon_entries.cxx
 create mode 100644 Control/DataModelTest/DataModelTestDataCommon/src/components/DataModelTestDataCommon_load.cxx
 create mode 100644 Control/DataModelTest/DataModelTestDataCommon/src/xAODTestReadSymlink.cxx
 create mode 100644 Control/DataModelTest/DataModelTestDataCommon/src/xAODTestReadSymlink.h
 create mode 100644 Control/DataModelTest/DataModelTestDataReadCnv/src/CCnv.cxx
 create mode 100644 Control/DataModelTest/DataModelTestDataReadCnv/src/CCnv.h

diff --git a/Control/DataModelTest/DataModelRunTests/CMakeLists.txt b/Control/DataModelTest/DataModelRunTests/CMakeLists.txt
index 49df0b2be64..1d60c31652f 100644
--- a/Control/DataModelTest/DataModelRunTests/CMakeLists.txt
+++ b/Control/DataModelTest/DataModelRunTests/CMakeLists.txt
@@ -77,3 +77,13 @@ datamodel_run_test (xAODRootTestRead2
 datamodel_run_test (ByteStreamTestWrite)
 datamodel_run_test (ByteStreamTestRead DEPENDS ByteStreamTestWrite)
 
+datamodel_run_test (xAODTestSymlinks1)
+datamodel_run_test (xAODTestSymlinks1MT
+                    COMMAND "athena.py --thread=1")
+
+datamodel_run_test (xAODTestSymlinks2
+                    DEPENDS xAODTestWrite)
+datamodel_run_test (xAODTestSymlinks2MT
+                    COMMAND "athena.py --thread=1"
+                    DEPENDS xAODTestWrite)
+
diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1.ref
new file mode 100644
index 00000000000..3e4b0530943
--- /dev/null
+++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1.ref
@@ -0,0 +1,126 @@
+Thu Apr 20 20:18:35 CEST 2017
+Preloading tcmalloc_minimal.so
+Py:Athena            INFO including file "AthenaCommon/Preparation.py"
+Py:Athena            INFO using release [WorkDir-22.0.0] [x86_64-slc6-gcc62-opt] [atlas-work3g/725f3a42d9] -- built on [2017-04-20T1906]
+Py:Athena            INFO including file "AthenaCommon/Bootstrap.py"
+Py:Athena            INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
+Py:Athena            INFO executing ROOT6Setup
+[?1034hPy:Athena            INFO including file "AthenaCommon/Execution.py"
+Py:Athena            INFO including file "DataModelRunTests/xAODTestSymlinks1_jo.py"
+Py:ConfigurableDb    INFO Read module info for 5294 configurables from 15 genConfDb files
+Py:ConfigurableDb    INFO No duplicates have been found: that's good !
+Py:Athena            INFO including file "AthenaCommon/runbatch.py"
+ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
+ApplicationMgr    SUCCESS 
+====================================================================================================================================
+                                                   Welcome to ApplicationMgr (GaudiCoreSvc v28r1)
+                                          running on lxplus005.cern.ch on Thu Apr 20 20:18:47 2017
+====================================================================================================================================
+ApplicationMgr       INFO Successfully loaded modules : AthenaServices
+ApplicationMgr       INFO Application Manager Configured successfully
+ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
+StatusCodeSvc        INFO initialize
+AthDictLoaderSvc     INFO in initialize...
+AthDictLoaderSvc     INFO acquired Dso-registry
+ClassIDSvc           INFO  getRegistryEntries: read 2307 CLIDRegistry entries for module ALL
+ChronoStatSvc        INFO  Number of skipped events for MemStat-1
+CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
+CoreDumpSvc          INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) 
+AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 5682 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 52 CLIDRegistry entries for module ALL
+MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+AthenaPoolCnvSvc     INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00
+PoolSvc              INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.xml) [ok]
+PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
+PoolSvc              INFO Frontier compression level set to 5
+DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2017-04-18T2225/Athena/22.0.0/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc         INFO Total of 10 servers found for host lxplus005.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
+PoolSvc              INFO Successfully setup replica sorting algorithm
+PoolSvc              INFO Setting up APR FileCatalog and Streams
+PoolSvc              INFO POOL WriteCatalog is xmlcatalog_file:PoolFileCatalog.xml
+DbSession Info     Open     DbSession    
+Domain[ROOT_All] Info >   Access   DbDomain     READ      [ROOT_All] 
+PoolSvc              INFO Re-initializing PoolSvc
+ClassIDSvc           INFO  getRegistryEntries: read 867 CLIDRegistry entries for module ALL
+HistogramPersis...WARNING Histograms saving not required.
+EventSelector        INFO  Enter McEventSelector Initialization 
+AthenaEventLoopMgr   INFO Setup EventSelector service EventSelector
+ApplicationMgr       INFO Application Manager Initialized successfully
+ApplicationMgr       INFO Application Manager Started successfully
+EventPersistenc...   INFO Added successfully Conversion service:McCnvSvc
+AthenaEventLoopMgr   INFO   ===>>>  start of run 0    <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #0, run #0 0 events processed so far  <<<===
+ClassIDSvc           INFO  getRegistryEntries: read 104 CLIDRegistry entries for module ALL
+xAODTestReadSym...   INFO C (as AuxElement): 1000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #0, run #0 1 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #1, run #0 1 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 2000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #1, run #0 2 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #2, run #0 2 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 3000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #2, run #0 3 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #3, run #0 3 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 4000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #3, run #0 4 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #4, run #0 4 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 5000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #4, run #0 5 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #5, run #0 5 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 6000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #5, run #0 6 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #6, run #0 6 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 7000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #6, run #0 7 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #7, run #0 7 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 8000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #7, run #0 8 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #8, run #0 8 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 9000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #8, run #0 9 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #9, run #0 9 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 10000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #9, run #0 10 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #10, run #0 10 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 11000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #0 11 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #11, run #0 11 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 12000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #0 12 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #12, run #0 12 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 13000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #0 13 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #13, run #0 13 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 14000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #0 14 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #14, run #0 14 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 15000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #0 15 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #15, run #0 15 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 16000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #0 16 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #16, run #0 16 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 17000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #0 17 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #17, run #0 17 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 18000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #0 18 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #18, run #0 18 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 19000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #0 19 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #19, run #0 19 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 20000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #0 20 events processed so far  <<<===
+Domain[ROOT_All] Info >   Deaccess DbDomain     READ      [ROOT_All] 
+ApplicationMgr       INFO Application Manager Stopped successfully
+IncidentProcAlg1     INFO Finalize
+IncidentProcAlg2     INFO Finalize
+EventSelector        INFO finalize
+AthDictLoaderSvc     INFO in finalize...
+ToolSvc              INFO Removing all tools created by ToolSvc
+ChronoStatSvc.f...   INFO  Service finalized successfully 
+ApplicationMgr       INFO Application Manager Finalized successfully
+ApplicationMgr       INFO Application Manager Terminated successfully
+Py:Athena            INFO leaving with code 0: "successful run"
+CORAL/Services/ConnectionService Info Deleting the ConnectionPool
diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1MT.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1MT.ref
new file mode 100644
index 00000000000..85e4e24bba8
--- /dev/null
+++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1MT.ref
@@ -0,0 +1,175 @@
+Thu Apr 20 20:24:37 CEST 2017
+Preloading tcmalloc_minimal.so
+Py:Athena            INFO including file "AthenaCommon/Preparation.py"
+Py:Athena            INFO using release [WorkDir-22.0.0] [x86_64-slc6-gcc62-opt] [atlas-work3g/725f3a42d9] -- built on [2017-04-20T1906]
+Py:Athena            INFO including file "AthenaCommon/Bootstrap.py"
+Py:Athena            INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
+Py:Athena            INFO executing ROOT6Setup
+[?1034hPy:Athena            INFO configuring AthenaHive with [1] concurrent threads
+Py:Athena            INFO including file "AthenaCommon/Execution.py"
+Py:Athena            INFO including file "DataModelRunTests/xAODTestSymlinks1MT_jo.py"
+Py:Athena            INFO including file "DataModelRunTests/xAODTestSymlinks1_jo.py"
+Py:ConfigurableDb    INFO Read module info for 5294 configurables from 15 genConfDb files
+Py:ConfigurableDb    INFO No duplicates have been found: that's good !
+Py:Athena            INFO including file "AthenaCommon/runbatch.py"
+ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
+MessageSvc           INFO Activating in a separate thread
+ApplicationMgr    SUCCESS 
+====================================================================================================================================
+                                                   Welcome to ApplicationMgr (GaudiCoreSvc v28r1)
+                                          running on lxplus005.cern.ch on Thu Apr 20 20:24:50 2017
+====================================================================================================================================
+ApplicationMgr       INFO Successfully loaded modules : AthenaServices
+ApplicationMgr       INFO Application Manager Configured successfully
+ApplicationMgr                                     INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
+AthDictLoaderSvc                                   INFO in initialize...
+AthDictLoaderSvc                                   INFO acquired Dso-registry
+ClassIDSvc                                         INFO  getRegistryEntries: read 2745 CLIDRegistry entries for module ALL
+ChronoStatSvc                                      INFO  Number of skipped events for MemStat-1
+CoreDumpSvc                                        INFO install f-a-t-a-l handler... (flag = -1)
+CoreDumpSvc                                        INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) 
+AthenaHiveEventLoopMgr                             INFO Initializing AthenaHiveEventLoopMgr - package version AthenaServices-00-00-00
+MetaDataSvc                                        INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+AthenaPoolCnvSvc                                   INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00
+PoolSvc                                            INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.xml) [ok]
+PoolSvc                                            INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
+PoolSvc                                            INFO Frontier compression level set to 5
+DBReplicaSvc                                       INFO Frontier server at (serverurl=http://atlasfrontier-local.cern.ch:8000/atlr)(serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://lcgft-atlas.gridpp.rl.ac.uk:3128/frontierATLAS)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca-proxy-meyrin.cern.ch:3128)(proxyurl=http://ca-proxy-wigner.cern.ch:3128) will be considered for COOL data
+DBReplicaSvc                                       INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2017-04-18T2225/Athena/22.0.0/InstallArea/x86_64-slc6-gcc62-opt/share/dbreplica.config
+DBReplicaSvc                                       INFO Total of 10 servers found for host lxplus005.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
+PoolSvc                                            INFO Successfully setup replica sorting algorithm
+PoolSvc                                            INFO Setting up APR FileCatalog and Streams
+PoolSvc                                            INFO POOL WriteCatalog is xmlcatalog_file:PoolFileCatalog.xml
+DbSession Info     Open     DbSession    
+Domain[ROOT_All] Info >   Access   DbDomain     READ      [ROOT_All] 
+PoolSvc                                            INFO Re-initializing PoolSvc
+ClassIDSvc                                         INFO  getRegistryEntries: read 6549 CLIDRegistry entries for module ALL
+ClassIDSvc                                         INFO  getRegistryEntries: read 52 CLIDRegistry entries for module ALL
+SGInputLoader                                      INFO Will preload the following DataObjects:
+ThreadPoolSvc                                      INFO no thread init tools attached
+ForwardSchedulerSvc                                INFO Activating scheduler in a separate thread
+ForwardSchedulerSvc                                INFO Waiting for ForwardSchedulerSvc to activate
+ForwardSchedulerSvc                                INFO Start checking the actionsQueue
+ForwardSchedulerSvc                             WARNING Property MaxEventsInFlight was set. This works but it's deprecated. Please migrate your code options files.
+ForwardSchedulerSvc                                INFO Found 8 algorithms
+ForwardSchedulerSvc                                INFO outputs:
+('DMTest::C','cinfo')
+('SG::AuxElement','cinfo')
+('DMTest::CVec','cvec')
+
+ForwardSchedulerSvc                                INFO Data Dependencies for Algorithms:
+  BeginIncFiringAlg
+      none
+  IncidentProcAlg1
+      none
+  SGInputLoader
+      none
+  xAODTestWriteCVec
+    o INPUT  ('EventInfo','McEventInfo')
+    o OUTPUT ('DMTest::CVec','cvec')
+  xAODTestWriteCInfo
+    o INPUT  ('EventInfo','McEventInfo')
+    o INPUT  ('DMTest::CVec','cvec')
+    o OUTPUT ('SG::AuxElement','cinfo')
+    o OUTPUT ('DMTest::C','cinfo')
+  xAODTestReadSymlink
+    o INPUT  ('SG::AuxElement','cinfo')
+  EndIncFiringAlg
+      none
+  IncidentProcAlg2
+      none
+ForwardSchedulerSvc                                INFO Will attribute the following unmet INPUT dependencies to "SGInputLoader/SGInputLoader" Algorithm
+   o ('EventInfo','McEventInfo')    required by Algorithm: 
+       * xAODTestWriteCVec
+       * xAODTestWriteCInfo
+ForwardSchedulerSvc                                INFO Concurrency level information:
+ForwardSchedulerSvc                                INFO  o Number of events in flight:  'MaxEventsInFlight':1
+ForwardSchedulerSvc                                INFO  o Number of algorithms in flight:  'MaxAlgosInFlight':1
+ForwardSchedulerSvc                                INFO  o TBB thread pool size:  'ThreadPoolSize':1
+HistogramPersistencySvc                         WARNING Histograms saving not required.
+EventSelector                                      INFO  Enter McEventSelector Initialization 
+AthenaHiveEventLoopMgr                             INFO Setup EventSelector service EventSelector
+ApplicationMgr                                     INFO Application Manager Initialized successfully
+ApplicationMgr                                     INFO Application Manager Started successfully
+AthenaHiveEventLoopMgr                             INFO Starting loop on events
+EventPersistencySvc                                INFO Added successfully Conversion service:McCnvSvc
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start of run 0    <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #0, run #0 on slot 0,  0 events processed so far  <<<===
+ClassIDSvc                              0   0      INFO  getRegistryEntries: read 104 CLIDRegistry entries for module ALL
+xAODTestReadSymlink                     0   0      INFO C (as AuxElement): 1000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #0, run #0 on slot 0,  1 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #1, run #0 on slot 0,  1 events processed so far  <<<===
+xAODTestReadSymlink                     1   0      INFO C (as AuxElement): 2000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #1, run #0 on slot 0,  2 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #2, run #0 on slot 0,  2 events processed so far  <<<===
+xAODTestReadSymlink                     2   0      INFO C (as AuxElement): 3000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #2, run #0 on slot 0,  3 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #3, run #0 on slot 0,  3 events processed so far  <<<===
+xAODTestReadSymlink                     3   0      INFO C (as AuxElement): 4000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #3, run #0 on slot 0,  4 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #4, run #0 on slot 0,  4 events processed so far  <<<===
+xAODTestReadSymlink                     4   0      INFO C (as AuxElement): 5000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #4, run #0 on slot 0,  5 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #5, run #0 on slot 0,  5 events processed so far  <<<===
+xAODTestReadSymlink                     5   0      INFO C (as AuxElement): 6000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #5, run #0 on slot 0,  6 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #6, run #0 on slot 0,  6 events processed so far  <<<===
+xAODTestReadSymlink                     6   0      INFO C (as AuxElement): 7000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #6, run #0 on slot 0,  7 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #7, run #0 on slot 0,  7 events processed so far  <<<===
+xAODTestReadSymlink                     7   0      INFO C (as AuxElement): 8000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #7, run #0 on slot 0,  8 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #8, run #0 on slot 0,  8 events processed so far  <<<===
+xAODTestReadSymlink                     8   0      INFO C (as AuxElement): 9000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #8, run #0 on slot 0,  9 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #9, run #0 on slot 0,  9 events processed so far  <<<===
+xAODTestReadSymlink                     9   0      INFO C (as AuxElement): 10000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #9, run #0 on slot 0,  10 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #10, run #0 on slot 0,  10 events processed so far  <<<===
+xAODTestReadSymlink                     10  0      INFO C (as AuxElement): 11000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #10, run #0 on slot 0,  11 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #11, run #0 on slot 0,  11 events processed so far  <<<===
+xAODTestReadSymlink                     11  0      INFO C (as AuxElement): 12000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #11, run #0 on slot 0,  12 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #12, run #0 on slot 0,  12 events processed so far  <<<===
+xAODTestReadSymlink                     12  0      INFO C (as AuxElement): 13000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #12, run #0 on slot 0,  13 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #13, run #0 on slot 0,  13 events processed so far  <<<===
+xAODTestReadSymlink                     13  0      INFO C (as AuxElement): 14000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #13, run #0 on slot 0,  14 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #14, run #0 on slot 0,  14 events processed so far  <<<===
+xAODTestReadSymlink                     14  0      INFO C (as AuxElement): 15000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #14, run #0 on slot 0,  15 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #15, run #0 on slot 0,  15 events processed so far  <<<===
+xAODTestReadSymlink                     15  0      INFO C (as AuxElement): 16000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #15, run #0 on slot 0,  16 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #16, run #0 on slot 0,  16 events processed so far  <<<===
+xAODTestReadSymlink                     16  0      INFO C (as AuxElement): 17000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #16, run #0 on slot 0,  17 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #17, run #0 on slot 0,  17 events processed so far  <<<===
+xAODTestReadSymlink                     17  0      INFO C (as AuxElement): 18000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #17, run #0 on slot 0,  18 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #18, run #0 on slot 0,  18 events processed so far  <<<===
+xAODTestReadSymlink                     18  0      INFO C (as AuxElement): 19000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #18, run #0 on slot 0,  19 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #19, run #0 on slot 0,  19 events processed so far  <<<===
+xAODTestReadSymlink                     19  0      INFO C (as AuxElement): 20000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #19, run #0 on slot 0,  20 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO ---> Loop Finished (seconds): 0.0441599
+Domain[ROOT_All] Info >   Deaccess DbDomain     READ      [ROOT_All] 
+ApplicationMgr                                     INFO Application Manager Stopped successfully
+IncidentProcAlg1                                   INFO Finalize
+SGInputLoader                                      INFO Finalizing SGInputLoader...
+IncidentProcAlg2                                   INFO Finalize
+EventSelector                                      INFO finalize
+ForwardSchedulerSvc                                INFO Joining Scheduler thread
+ForwardSchedulerSvc                     19  0      INFO Terminating thread-pool resources
+TimelineSvc                                        INFO Outputting timeline with 160 entries to file  'TimelineFile':timeline.csv
+EventDataSvc                                       INFO Finalizing EventDataSvc - package version StoreGate-00-00-00
+AthDictLoaderSvc                                   INFO in finalize...
+ToolSvc                                            INFO Removing all tools created by ToolSvc
+ChronoStatSvc.finalize()                           INFO  Service finalized successfully 
+ApplicationMgr                                     INFO Application Manager Finalized successfully
+ApplicationMgr                                     INFO Application Manager Terminated successfully
+Py:Athena            INFO leaving with code 0: "successful run"
+CORAL/Services/ConnectionService Info Deleting the ConnectionPool
diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1MT_jo.py b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1MT_jo.py
new file mode 100644
index 00000000000..c950c9d30f5
--- /dev/null
+++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1MT_jo.py
@@ -0,0 +1,10 @@
+#
+# $Id$
+#
+# File: DataModelRunTests/share/xAODTestSymlinks1MT_jo.py
+# Author: snyder@bnl.gov
+# Date: Apr 2017
+# Purpose: Test syminks and hive.
+#
+
+include ('DataModelRunTests/xAODTestSymlinks1_jo.py')
diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1_jo.py b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1_jo.py
new file mode 100644
index 00000000000..b2fcac96491
--- /dev/null
+++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks1_jo.py
@@ -0,0 +1,71 @@
+#
+# $Id$
+#
+# File: DataModelRunTests/share/xAODTestSymlinks1_jo.py
+# Author: snyder@bnl.gov
+# Date: Apr 2017
+# Purpose: Test syminks and hive.
+#
+
+## basic job configuration (for generator)
+import AthenaCommon.AtlasUnixGeneratorJob
+
+## get a handle to the default top-level algorithm sequence
+from AthenaCommon.AlgSequence import AlgSequence
+topSequence = AlgSequence()
+
+## get a handle to the ServiceManager
+from AthenaCommon.AppMgr import ServiceMgr as svcMgr
+
+## get a handle to the ApplicationManager
+from AthenaCommon.AppMgr import theApp
+
+#--------------------------------------------------------------
+# Load POOL support
+#--------------------------------------------------------------
+import AthenaPoolCnvSvc.WriteAthenaPool
+
+
+
+#--------------------------------------------------------------
+# Event related parameters
+#--------------------------------------------------------------
+theApp.EvtMax = 20
+
+
+#--------------------------------------------------------------
+# Set up the algorithm.
+#--------------------------------------------------------------
+
+from AthenaCommon.ConcurrencyFlags import jobproperties as jp
+nThreads = jp.ConcurrencyFlags.NumThreads()
+if nThreads >= 1:
+  svcMgr.ForwardSchedulerSvc.CheckDependencies = True
+  svcMgr.ForwardSchedulerSvc.DataLoaderAlg = 'SGInputLoader'
+
+  from SGComps.SGCompsConf import SGInputLoader
+  topSequence += SGInputLoader( OutputLevel=INFO, ShowEventDump=False )
+
+
+from DataModelTestDataCommon.DataModelTestDataCommonConf import \
+     DMTest__xAODTestReadSymlink
+from DataModelTestDataWrite.DataModelTestDataWriteConf import \
+     DMTest__xAODTestWriteCVec, \
+     DMTest__xAODTestWriteCInfo
+topSequence += DMTest__xAODTestWriteCVec ("xAODTestWriteCVec")
+topSequence += DMTest__xAODTestWriteCInfo ("xAODTestWriteCInfo")
+topSequence += DMTest__xAODTestReadSymlink ("xAODTestReadSymlink", Key='cinfo')
+
+
+#--------------------------------------------------------------
+# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
+#--------------------------------------------------------------
+svcMgr.MessageSvc.OutputLevel = 3
+svcMgr.MessageSvc.debugLimit  = 100000
+svcMgr.ClassIDSvc.OutputLevel = 3
+
+# No stats printout
+ChronoStatSvc = Service( "ChronoStatSvc" )
+ChronoStatSvc.ChronoPrintOutTable = FALSE
+ChronoStatSvc.PrintUserTime       = FALSE
+ChronoStatSvc.StatPrintOutTable   = FALSE
diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2.ref
new file mode 100644
index 00000000000..35e97761a04
--- /dev/null
+++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2.ref
@@ -0,0 +1,158 @@
+Fri Apr  7 03:45:19 CEST 2017
+Preloading tcmalloc_minimal.so
+Py:Athena            INFO including file "AthenaCommon/Preparation.py"
+Py:Athena            INFO using release [AthenaWorkDir-22.0.0] [x86_64-slc6-gcc62-dbg] [mt-sss/4765e91ead] -- built on [2017-04-07T0230]
+Py:Athena            INFO including file "AthenaCommon/Bootstrap.py"
+Py:Athena            INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
+Py:Athena            INFO executing ROOT6Setup
+[?1034hPy:Athena            INFO including file "AthenaCommon/Execution.py"
+Py:Athena            INFO including file "DataModelRunTests/xAODTestSymlinks2_jo.py"
+Py:ConfigurableDb    INFO Read module info for 5290 configurables from 30 genConfDb files
+Py:ConfigurableDb    INFO No duplicates have been found: that's good !
+Py:Athena            INFO including file "AthenaCommon/runbatch.py"
+ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
+ApplicationMgr    SUCCESS 
+====================================================================================================================================
+                                                   Welcome to ApplicationMgr (GaudiCoreSvc v28r1)
+                                          running on lxplus042.cern.ch on Fri Apr  7 03:45:41 2017
+====================================================================================================================================
+ApplicationMgr       INFO Successfully loaded modules : AthenaServices
+ApplicationMgr       INFO Application Manager Configured successfully
+ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
+StatusCodeSvc        INFO initialize
+AthDictLoaderSvc     INFO in initialize...
+AthDictLoaderSvc     INFO acquired Dso-registry
+ClassIDSvc           INFO  getRegistryEntries: read 8862 CLIDRegistry entries for module ALL
+ChronoStatSvc        INFO  Number of skipped events for MemStat-1
+CoreDumpSvc          INFO install f-a-t-a-l handler... (flag = -1)
+CoreDumpSvc          INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) 
+AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
+ClassIDSvc           INFO  getRegistryEntries: read 358 CLIDRegistry entries for module ALL
+MetaDataSvc          INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+AthenaPoolCnvSvc     INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00
+PoolSvc              INFO Initializing PoolSvc - package version PoolSvc-00-00-00
+PoolSvc              INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.xml) [ok]
+PoolSvc              INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
+PoolSvc              INFO Frontier compression level set to 5
+DBReplicaSvc         INFO Frontier server at (serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://aiatlas036.cern.ch:8000/atlr)(serverurl=http://aiatlas034.cern.ch:8000/atlr)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(serverurl=http://ccfrontier01.in2p3.fr:23128/ccin2p3-AtlasFrontier)(serverurl=http://ccfrontier05.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca20.cern.ch:3128)(proxyurl=http://ca17.cern.ch:3128)(proxyurl=http://atlast0fsquid.cern.ch:3128)(proxyurl=http://atlassquid1.cern.ch:3128)(proxyurl=http://atlassquid2.cern.ch:3128)(proxyurl=http://atlassquid4.cern.ch:3128) will be considered for COOL data
+DBReplicaSvc         INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2017-04-05T2225/Athena/22.0.0/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config
+DBReplicaSvc         INFO Total of 10 servers found for host lxplus042.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
+PoolSvc              INFO Successfully setup replica sorting algorithm
+PoolSvc              INFO Setting up APR FileCatalog and Streams
+PoolSvc              INFO POOL WriteCatalog is xmlcatalog_file:PoolFileCatalog.xml
+DbSession Info     Open     DbSession    
+Domain[ROOT_All] Info >   Access   DbDomain     READ      [ROOT_All] 
+PoolSvc              INFO Re-initializing PoolSvc
+EventSelector        INFO reinitialization...
+EventSelector        INFO EventSelection with query 
+RootCollection Info Opening Collection File xaoddata.root in mode: READ
+RootCollection Info File xaoddata.root opened
+Domain[ROOT_All] Info ->  Access   DbDatabase   READ      [ROOT_All] C99A5126-381F-7F4F-B568-3D70CAC1AC25
+Domain[ROOT_All] Info                           xaoddata.root
+RootDatabase.open Info xaoddata.root File version:60802
+ImplicitCollection Info Opened the implicit collection with connection string "PFN:xaoddata.root"
+ImplicitCollection Info and a name "POOLContainer(DataHeader)"
+PoolSvc              INFO Failed to find container MetaDataHdrDataHeader to get Token.
+EventPersistenc...   INFO Added successfully Conversion service:AthenaPoolCnvSvc
+EventSelector        INFO Initializing EventSelector - package version EventSelectorAthenaPool-00-00-00
+EventSelector        INFO reinitialization...
+EventSelector        INFO EventSelection with query 
+RootCollection Info Opening Collection File xaoddata.root in mode: READ
+RootCollection Info File xaoddata.root opened
+ImplicitCollection Info Opened the implicit collection with connection string "PFN:xaoddata.root"
+ImplicitCollection Info and a name "POOLContainer(DataHeader)"
+AthenaPoolAddre...   INFO Initializing AthenaPoolAddressProviderSvc - package version EventSelectorAthenaPool-00-00-00
+HistogramPersis...WARNING Histograms saving not required.
+AthenaEventLoopMgr   INFO Setup EventSelector service EventSelector
+ApplicationMgr       INFO Application Manager Initialized successfully
+xaoddata.root Info Database being retired...
+Domain[ROOT_All] Info ->  Deaccess DbDatabase   READ      [ROOT_All] C99A5126-381F-7F4F-B568-3D70CAC1AC25
+RootCollection Info Opening Collection File xaoddata.root in mode: READ
+RootCollection Info File xaoddata.root opened
+DbSession Info     Open     DbSession    
+Domain[ROOT_All] Info >   Access   DbDomain     READ      [ROOT_All] 
+Domain[ROOT_All] Info ->  Access   DbDatabase   READ      [ROOT_All] C99A5126-381F-7F4F-B568-3D70CAC1AC25
+Domain[ROOT_All] Info                           xaoddata.root
+RootDatabase.open Info xaoddata.root File version:60802
+ImplicitCollection Info Opened the implicit collection with connection string "PFN:xaoddata.root"
+ImplicitCollection Info and a name "POOLContainer(DataHeader)"
+ApplicationMgr       INFO Application Manager Started successfully
+PoolSvc              INFO Failed to find container MetaDataHdrDataHeader to get Token.
+ClassIDSvc           INFO  getRegistryEntries: read 1067 CLIDRegistry entries for module ALL
+AthenaPoolConve...   INFO massageEventInfo: unable to get OverrideRunNumberFromInput property from EventSelector 
+AthenaEventLoopMgr   INFO   ===>>>  start of run 0    <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #0, run #0 0 events processed so far  <<<===
+ClassIDSvc           INFO  getRegistryEntries: read 11 CLIDRegistry entries for module ALL
+xAODTestReadSym...   INFO C (as AuxElement): 1000
+ClassIDSvc           INFO  getRegistryEntries: read 48 CLIDRegistry entries for module ALL
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #0, run #0 1 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #1, run #0 1 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 2000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #1, run #0 2 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #2, run #0 2 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 3000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #2, run #0 3 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #3, run #0 3 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 4000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #3, run #0 4 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #4, run #0 4 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 5000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #4, run #0 5 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #5, run #0 5 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 6000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #5, run #0 6 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #6, run #0 6 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 7000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #6, run #0 7 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #7, run #0 7 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 8000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #7, run #0 8 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #8, run #0 8 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 9000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #8, run #0 9 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #9, run #0 9 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 10000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #9, run #0 10 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #10, run #0 10 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 11000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #0 11 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #11, run #0 11 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 12000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #0 12 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #12, run #0 12 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 13000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #0 13 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #13, run #0 13 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 14000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #0 14 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #14, run #0 14 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 15000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #0 15 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #15, run #0 15 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 16000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #0 16 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #16, run #0 16 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 17000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #0 17 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #17, run #0 17 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 18000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #0 18 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #18, run #0 18 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 19000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #0 19 events processed so far  <<<===
+AthenaEventLoopMgr   INFO   ===>>>  start processing event #19, run #0 19 events processed so far  <<<===
+xAODTestReadSym...   INFO C (as AuxElement): 20000
+AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #0 20 events processed so far  <<<===
+xaoddata.root Info Database being retired...
+Domain[ROOT_All] Info ->  Deaccess DbDatabase   READ      [ROOT_All] C99A5126-381F-7F4F-B568-3D70CAC1AC25
+ApplicationMgr       INFO Application Manager Stopped successfully
+IncidentProcAlg1     INFO Finalize
+IncidentProcAlg2     INFO Finalize
+Domain[ROOT_All] Info >   Deaccess DbDomain     READ      [ROOT_All] 
+AthDictLoaderSvc     INFO in finalize...
+ToolSvc              INFO Removing all tools created by ToolSvc
+ChronoStatSvc.f...   INFO  Service finalized successfully 
+ApplicationMgr       INFO Application Manager Finalized successfully
+ApplicationMgr       INFO Application Manager Terminated successfully
+Py:Athena            INFO leaving with code 0: "successful run"
+CORAL/Services/ConnectionService Info Deleting the ConnectionPool
diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2MT.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2MT.ref
new file mode 100644
index 00000000000..fd1c6f485f6
--- /dev/null
+++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2MT.ref
@@ -0,0 +1,195 @@
+Fri Apr  7 03:44:23 CEST 2017
+Preloading tcmalloc_minimal.so
+Py:Athena            INFO including file "AthenaCommon/Preparation.py"
+Py:Athena            INFO using release [AthenaWorkDir-22.0.0] [x86_64-slc6-gcc62-dbg] [mt-sss/4765e91ead] -- built on [2017-04-07T0230]
+Py:Athena            INFO including file "AthenaCommon/Bootstrap.py"
+Py:Athena            INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
+Py:Athena            INFO executing ROOT6Setup
+[?1034hPy:Athena            INFO configuring AthenaHive with [1] concurrent threads
+Py:Athena            INFO including file "AthenaCommon/Execution.py"
+Py:Athena            INFO including file "DataModelRunTests/xAODTestSymlinks2MT_jo.py"
+Py:Athena            INFO including file "DataModelRunTests/xAODTestSymlinks2_jo.py"
+Py:ConfigurableDb    INFO Read module info for 5290 configurables from 30 genConfDb files
+Py:ConfigurableDb    INFO No duplicates have been found: that's good !
+Py:Athena            INFO including file "AthenaCommon/runbatch.py"
+ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
+MessageSvc           INFO Activating in a separate thread
+ApplicationMgr    SUCCESS 
+====================================================================================================================================
+                                                   Welcome to ApplicationMgr (GaudiCoreSvc v28r1)
+                                          running on lxplus042.cern.ch on Fri Apr  7 03:44:44 2017
+====================================================================================================================================
+ApplicationMgr       INFO Successfully loaded modules : AthenaServices
+ApplicationMgr       INFO Application Manager Configured successfully
+ApplicationMgr                                     INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
+AthDictLoaderSvc                                   INFO in initialize...
+AthDictLoaderSvc                                   INFO acquired Dso-registry
+ClassIDSvc                                         INFO  getRegistryEntries: read 9237 CLIDRegistry entries for module ALL
+ChronoStatSvc                                      INFO  Number of skipped events for MemStat-1
+CoreDumpSvc                                        INFO install f-a-t-a-l handler... (flag = -1)
+CoreDumpSvc                                        INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) 
+AthenaHiveEventLoopMgr                             INFO Initializing AthenaHiveEventLoopMgr - package version AthenaServices-00-00-00
+MetaDataSvc                                        INFO Initializing MetaDataSvc - package version AthenaServices-00-00-00
+AthenaPoolCnvSvc                                   INFO Initializing AthenaPoolCnvSvc - package version AthenaPoolCnvSvc-00-00-00
+PoolSvc                                            INFO Initializing PoolSvc - package version PoolSvc-00-00-00
+PoolSvc                                            INFO io_register[PoolSvc](xmlcatalog_file:PoolFileCatalog.xml) [ok]
+PoolSvc                                            INFO Set connectionsvc retry/timeout/IDLE timeout to  'ConnectionRetrialPeriod':300/ 'ConnectionRetrialTimeOut':3600/ 'ConnectionTimeOut':5 seconds with connection cleanup disabled
+PoolSvc                                            INFO Frontier compression level set to 5
+DBReplicaSvc                                       INFO Frontier server at (serverurl=http://atlasfrontier-ai.cern.ch:8000/atlr)(serverurl=http://aiatlas036.cern.ch:8000/atlr)(serverurl=http://aiatlas034.cern.ch:8000/atlr)(serverurl=http://ccfrontier.in2p3.fr:23128/ccin2p3-AtlasFrontier)(serverurl=http://ccfrontier01.in2p3.fr:23128/ccin2p3-AtlasFrontier)(serverurl=http://ccfrontier05.in2p3.fr:23128/ccin2p3-AtlasFrontier)(proxyurl=http://ca-proxy.cern.ch:3128)(proxyurl=http://ca20.cern.ch:3128)(proxyurl=http://ca17.cern.ch:3128)(proxyurl=http://atlast0fsquid.cern.ch:3128)(proxyurl=http://atlassquid1.cern.ch:3128)(proxyurl=http://atlassquid2.cern.ch:3128)(proxyurl=http://atlassquid4.cern.ch:3128) will be considered for COOL data
+DBReplicaSvc                                       INFO Read replica configuration from /cvmfs/atlas-nightlies.cern.ch/repo/sw/master/2017-04-05T2225/Athena/22.0.0/InstallArea/x86_64-slc6-gcc62-dbg/share/dbreplica.config
+DBReplicaSvc                                       INFO Total of 10 servers found for host lxplus042.cern.ch [ATLF ATLAS_COOLPROD atlas_dd ATLAS_CONFIG INT8R INTR ATONR_COOL ATONR_CONF DEVDB11 ATLF ]
+PoolSvc                                            INFO Successfully setup replica sorting algorithm
+PoolSvc                                            INFO Setting up APR FileCatalog and Streams
+PoolSvc                                            INFO POOL WriteCatalog is xmlcatalog_file:PoolFileCatalog.xml
+DbSession Info     Open     DbSession    
+Domain[ROOT_All] Info >   Access   DbDomain     READ      [ROOT_All] 
+PoolSvc                                            INFO Re-initializing PoolSvc
+EventSelector                                      INFO reinitialization...
+EventSelector                                      INFO EventSelection with query 
+RootCollection Info Opening Collection File xaoddata.root in mode: READ
+RootCollection Info File xaoddata.root opened
+Domain[ROOT_All] Info ->  Access   DbDatabase   READ      [ROOT_All] C99A5126-381F-7F4F-B568-3D70CAC1AC25
+Domain[ROOT_All] Info                           xaoddata.root
+RootDatabase.open Info xaoddata.root File version:60802
+ImplicitCollection Info Opened the implicit collection with connection string "PFN:xaoddata.root"
+ImplicitCollection Info and a name "POOLContainer(DataHeader)"
+PoolSvc                                            INFO Failed to find container MetaDataHdrDataHeader to get Token.
+EventPersistencySvc                                INFO Added successfully Conversion service:AthenaPoolCnvSvc
+EventSelector                                      INFO Initializing EventSelector - package version EventSelectorAthenaPool-00-00-00
+EventSelector                                      INFO reinitialization...
+EventSelector                                      INFO EventSelection with query 
+RootCollection Info Opening Collection File xaoddata.root in mode: READ
+RootCollection Info File xaoddata.root opened
+ImplicitCollection Info Opened the implicit collection with connection string "PFN:xaoddata.root"
+ImplicitCollection Info and a name "POOLContainer(DataHeader)"
+AthenaPoolAddressProviderSvc                       INFO Initializing AthenaPoolAddressProviderSvc - package version EventSelectorAthenaPool-00-00-00
+ClassIDSvc                                         INFO  getRegistryEntries: read 1425 CLIDRegistry entries for module ALL
+SGInputLoader                                      INFO Will preload the following DataObjects:
+ThreadPoolSvc                                      INFO no thread init tools attached
+ForwardSchedulerSvc                                INFO Activating scheduler in a separate thread
+ForwardSchedulerSvc                                INFO Waiting for ForwardSchedulerSvc to activate
+ForwardSchedulerSvc                                INFO Start checking the actionsQueue
+ForwardSchedulerSvc                             WARNING Property MaxEventsInFlight was set. This works but it's deprecated. Please migrate your code options files.
+ForwardSchedulerSvc                                INFO Found 6 algorithms
+ForwardSchedulerSvc                                INFO outputs:
+
+ForwardSchedulerSvc                                INFO Data Dependencies for Algorithms:
+  BeginIncFiringAlg
+      none
+  IncidentProcAlg1
+      none
+  SGInputLoader
+      none
+  xAODTestReadSymlink
+    o INPUT  ('SG::AuxElement','cinfo')
+  EndIncFiringAlg
+      none
+  IncidentProcAlg2
+      none
+ForwardSchedulerSvc                                INFO Will attribute the following unmet INPUT dependencies to "SGInputLoader/SGInputLoader" Algorithm
+   o ('SG::AuxElement','cinfo')    required by Algorithm: 
+       * xAODTestReadSymlink
+ForwardSchedulerSvc                                INFO Concurrency level information:
+ForwardSchedulerSvc                                INFO  o Number of events in flight:  'MaxEventsInFlight':1
+ForwardSchedulerSvc                                INFO  o Number of algorithms in flight:  'MaxAlgosInFlight':1
+ForwardSchedulerSvc                                INFO  o TBB thread pool size:  'ThreadPoolSize':1
+HistogramPersistencySvc                         WARNING Histograms saving not required.
+AthenaHiveEventLoopMgr                             INFO Setup EventSelector service EventSelector
+ApplicationMgr                                     INFO Application Manager Initialized successfully
+xaoddata.root Info Database being retired...
+Domain[ROOT_All] Info ->  Deaccess DbDatabase   READ      [ROOT_All] C99A5126-381F-7F4F-B568-3D70CAC1AC25
+RootCollection Info Opening Collection File xaoddata.root in mode: READ
+RootCollection Info File xaoddata.root opened
+DbSession Info     Open     DbSession    
+Domain[ROOT_All] Info >   Access   DbDomain     READ      [ROOT_All] 
+Domain[ROOT_All] Info ->  Access   DbDatabase   READ      [ROOT_All] C99A5126-381F-7F4F-B568-3D70CAC1AC25
+Domain[ROOT_All] Info                           xaoddata.root
+RootDatabase.open Info xaoddata.root File version:60802
+ImplicitCollection Info Opened the implicit collection with connection string "PFN:xaoddata.root"
+ImplicitCollection Info and a name "POOLContainer(DataHeader)"
+ApplicationMgr                                     INFO Application Manager Started successfully
+AthenaHiveEventLoopMgr                             INFO Starting loop on events
+PoolSvc                                            INFO Failed to find container MetaDataHdrDataHeader to get Token.
+AthenaPoolConverter                                INFO massageEventInfo: unable to get OverrideRunNumberFromInput property from EventSelector 
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start of run 0    <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #0, run #0 on slot 0,  0 events processed so far  <<<===
+ClassIDSvc                              0   0      INFO  getRegistryEntries: read 11 CLIDRegistry entries for module ALL
+xAODTestReadSymlink                     0   0      INFO C (as AuxElement): 1000
+ClassIDSvc                              0   0      INFO  getRegistryEntries: read 48 CLIDRegistry entries for module ALL
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #0, run #0 on slot 0,  1 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #1, run #0 on slot 0,  1 events processed so far  <<<===
+xAODTestReadSymlink                     1   0      INFO C (as AuxElement): 2000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #1, run #0 on slot 0,  2 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #2, run #0 on slot 0,  2 events processed so far  <<<===
+xAODTestReadSymlink                     2   0      INFO C (as AuxElement): 3000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #2, run #0 on slot 0,  3 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #3, run #0 on slot 0,  3 events processed so far  <<<===
+xAODTestReadSymlink                     3   0      INFO C (as AuxElement): 4000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #3, run #0 on slot 0,  4 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #4, run #0 on slot 0,  4 events processed so far  <<<===
+xAODTestReadSymlink                     4   0      INFO C (as AuxElement): 5000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #4, run #0 on slot 0,  5 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #5, run #0 on slot 0,  5 events processed so far  <<<===
+xAODTestReadSymlink                     5   0      INFO C (as AuxElement): 6000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #5, run #0 on slot 0,  6 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #6, run #0 on slot 0,  6 events processed so far  <<<===
+xAODTestReadSymlink                     6   0      INFO C (as AuxElement): 7000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #6, run #0 on slot 0,  7 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #7, run #0 on slot 0,  7 events processed so far  <<<===
+xAODTestReadSymlink                     7   0      INFO C (as AuxElement): 8000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #7, run #0 on slot 0,  8 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #8, run #0 on slot 0,  8 events processed so far  <<<===
+xAODTestReadSymlink                     8   0      INFO C (as AuxElement): 9000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #8, run #0 on slot 0,  9 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #9, run #0 on slot 0,  9 events processed so far  <<<===
+xAODTestReadSymlink                     9   0      INFO C (as AuxElement): 10000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #9, run #0 on slot 0,  10 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #10, run #0 on slot 0,  10 events processed so far  <<<===
+xAODTestReadSymlink                     10  0      INFO C (as AuxElement): 11000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #10, run #0 on slot 0,  11 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #11, run #0 on slot 0,  11 events processed so far  <<<===
+xAODTestReadSymlink                     11  0      INFO C (as AuxElement): 12000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #11, run #0 on slot 0,  12 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #12, run #0 on slot 0,  12 events processed so far  <<<===
+xAODTestReadSymlink                     12  0      INFO C (as AuxElement): 13000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #12, run #0 on slot 0,  13 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #13, run #0 on slot 0,  13 events processed so far  <<<===
+xAODTestReadSymlink                     13  0      INFO C (as AuxElement): 14000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #13, run #0 on slot 0,  14 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #14, run #0 on slot 0,  14 events processed so far  <<<===
+xAODTestReadSymlink                     14  0      INFO C (as AuxElement): 15000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #14, run #0 on slot 0,  15 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #15, run #0 on slot 0,  15 events processed so far  <<<===
+xAODTestReadSymlink                     15  0      INFO C (as AuxElement): 16000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #15, run #0 on slot 0,  16 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #16, run #0 on slot 0,  16 events processed so far  <<<===
+xAODTestReadSymlink                     16  0      INFO C (as AuxElement): 17000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #16, run #0 on slot 0,  17 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #17, run #0 on slot 0,  17 events processed so far  <<<===
+xAODTestReadSymlink                     17  0      INFO C (as AuxElement): 18000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #17, run #0 on slot 0,  18 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #18, run #0 on slot 0,  18 events processed so far  <<<===
+xAODTestReadSymlink                     18  0      INFO C (as AuxElement): 19000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #18, run #0 on slot 0,  19 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO   ===>>>  start processing event #19, run #0 on slot 0,  19 events processed so far  <<<===
+xAODTestReadSymlink                     19  0      INFO C (as AuxElement): 20000
+AthenaHiveEventLoopMgr                             INFO   ===>>>  done processing event #19, run #0 on slot 0,  20 events processed so far  <<<===
+AthenaHiveEventLoopMgr                             INFO ---> Loop Finished (seconds): 0.533476
+xaoddata.root Info Database being retired...
+Domain[ROOT_All] Info ->  Deaccess DbDatabase   READ      [ROOT_All] C99A5126-381F-7F4F-B568-3D70CAC1AC25
+ApplicationMgr                                     INFO Application Manager Stopped successfully
+IncidentProcAlg1                                   INFO Finalize
+SGInputLoader                                      INFO Finalizing SGInputLoader...
+IncidentProcAlg2                                   INFO Finalize
+ForwardSchedulerSvc                                INFO Joining Scheduler thread
+ForwardSchedulerSvc                     19  0      INFO Terminating thread-pool resources
+TimelineSvc                                        INFO Outputting timeline with 120 entries to file  'TimelineFile':timeline.csv
+EventDataSvc                                       INFO Finalizing EventDataSvc - package version StoreGate-00-00-00
+Domain[ROOT_All] Info >   Deaccess DbDomain     READ      [ROOT_All] 
+AthDictLoaderSvc                                   INFO in finalize...
+ToolSvc                                            INFO Removing all tools created by ToolSvc
+ChronoStatSvc.finalize()                           INFO  Service finalized successfully 
+ApplicationMgr                                     INFO Application Manager Finalized successfully
+ApplicationMgr                                     INFO Application Manager Terminated successfully
+Py:Athena            INFO leaving with code 0: "successful run"
+CORAL/Services/ConnectionService Info Deleting the ConnectionPool
diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2MT_jo.py b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2MT_jo.py
new file mode 100644
index 00000000000..556b3860ea0
--- /dev/null
+++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2MT_jo.py
@@ -0,0 +1,10 @@
+#
+# $Id$
+#
+# File: DataModelRunTests/share/xAODTestSymlinks2MT_jo.py
+# Author: snyder@bnl.gov
+# Date: Apr 2017
+# Purpose: Test syminks and hive.
+#
+
+include ('DataModelRunTests/xAODTestSymlinks2_jo.py')
diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2_jo.py b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2_jo.py
new file mode 100644
index 00000000000..c87673b7f52
--- /dev/null
+++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestSymlinks2_jo.py
@@ -0,0 +1,80 @@
+#
+# $Id$
+#
+# File: DataModelRunTests/share/xAODTestSymlinks2_jo.py
+# Author: snyder@bnl.gov
+# Date: Apr 2017
+# Purpose: Test syminks and hive.
+#
+
+## basic job configuration (for generator)
+import AthenaCommon.AtlasUnixStandardJob
+
+## get a handle to the default top-level algorithm sequence
+from AthenaCommon.AlgSequence import AlgSequence
+topSequence = AlgSequence()
+
+## get a handle to the ServiceManager
+from AthenaCommon.AppMgr import ServiceMgr as svcMgr
+
+## get a handle to the ApplicationManager
+from AthenaCommon.AppMgr import theApp
+
+#--------------------------------------------------------------
+# Load POOL support
+#--------------------------------------------------------------
+import AthenaPoolCnvSvc.ReadAthenaPool
+
+
+#--------------------------------------------------------------
+# Define input
+#--------------------------------------------------------------
+svcMgr.EventSelector.InputCollections        = [ "xaoddata.root" ]
+
+
+#--------------------------------------------------------------
+# Event related parameters
+#--------------------------------------------------------------
+theApp.EvtMax = 20
+
+
+#--------------------------------------------------------------
+# Set up the algorithm.
+#--------------------------------------------------------------
+
+from AthenaCommon.ConcurrencyFlags import jobproperties as jp
+nThreads = jp.ConcurrencyFlags.NumThreads()
+if nThreads >= 1:
+  svcMgr.ForwardSchedulerSvc.CheckDependencies = True
+  svcMgr.ForwardSchedulerSvc.DataLoaderAlg = 'SGInputLoader'
+
+  from SGComps.SGCompsConf import SGInputLoader
+  topSequence += SGInputLoader( OutputLevel=INFO, ShowEventDump=False )
+
+
+from DataModelTestDataCommon.DataModelTestDataCommonConf import \
+     DMTest__xAODTestReadSymlink
+topSequence += DMTest__xAODTestReadSymlink ("xAODTestReadSymlink", Key='cinfo')
+
+
+# Note: can't autoload these.
+import ROOT
+import cppyy
+cppyy.loadDictionary("libDataModelTestDataCommonDict")
+cppyy.loadDictionary("libDataModelTestDataReadDict")
+ROOT.DMTest.B
+ROOT.DMTest.setConverterLibrary ('libDataModelTestDataReadCnvPoolCnv.so')
+
+
+#--------------------------------------------------------------
+# Set output level threshold (2=DEBUG, 3=INFO, 4=WARNING, 5=ERROR, 6=FATAL )
+#--------------------------------------------------------------
+svcMgr.MessageSvc.OutputLevel = 3
+svcMgr.MessageSvc.debugLimit  = 100000
+svcMgr.ClassIDSvc.OutputLevel = 3
+
+# No stats printout
+ChronoStatSvc = Service( "ChronoStatSvc" )
+ChronoStatSvc.ChronoPrintOutTable = FALSE
+ChronoStatSvc.PrintUserTime       = FALSE
+ChronoStatSvc.StatPrintOutTable   = FALSE
diff --git a/Control/DataModelTest/DataModelRunTests/test/post.sh b/Control/DataModelTest/DataModelRunTests/test/post.sh
index 8a2a07bb29d..b6c9c397f88 100755
--- a/Control/DataModelTest/DataModelRunTests/test/post.sh
+++ b/Control/DataModelTest/DataModelRunTests/test/post.sh
@@ -186,6 +186,10 @@ PP="$PP"'|has different type than the branch'
 
 # Gaudi changes
 PP="$PP"'|INFO massageEventInfo:'
+PP="$PP"'|Loop Finished'
+
+# Hive ordering.
+PP="$PP"'|Terminating thread-pool resources'
 
 
 
diff --git a/Control/DataModelTest/DataModelTestDataCommon/CMakeLists.txt b/Control/DataModelTest/DataModelTestDataCommon/CMakeLists.txt
index da584aacb5a..1f65b503480 100644
--- a/Control/DataModelTest/DataModelTestDataCommon/CMakeLists.txt
+++ b/Control/DataModelTest/DataModelTestDataCommon/CMakeLists.txt
@@ -15,24 +15,31 @@ atlas_depends_on_subdirs( PUBLIC
                           GaudiKernel
                           PRIVATE
                           Control/AthLinks
+                          Control/StoreGate
+                          Control/AthenaBaseComps
                           Trigger/TrigDataAccess/TrigSerializeCnvSvc )
 
 # External dependencies:
 find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread )
 
 # Component(s) in the package:
-atlas_add_library( DataModelTestDataCommon
+atlas_add_library( DataModelTestDataCommonLib
                    src/*.cxx
                    PUBLIC_HEADERS DataModelTestDataCommon
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
                    LINK_LIBRARIES AthContainers SGTools xAODCore xAODTrigger GaudiKernel
-                   PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthLinks )
+                   PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthLinks StoreGateLib AthenaBaseComps )
+
+atlas_add_component( DataModelTestDataCommon
+                     src/components/*.cxx
+                     INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
+                     LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks DataModelAthenaPoolLib SGTools xAODCore GaudiKernel AthenaBaseComps AthenaKernel CxxUtils StoreGateLib SGtests TrigSteeringEvent DataModelTestDataCommonLib )
 
 atlas_add_dictionary( DataModelTestDataCommonDict
                       DataModelTestDataCommon/DataModelTestDataCommonDict.h
                       DataModelTestDataCommon/selection.xml
                       INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                      LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers SGTools xAODCore xAODTrigger GaudiKernel AthLinks DataModelTestDataCommon
+                      LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers SGTools xAODCore xAODTrigger GaudiKernel AthLinks DataModelTestDataCommonLib
                       NO_ROOTMAP_MERGE
                       EXTRA_FILES src/dict/*.cxx
                       ELEMENT_LINKS DMTest::BAuxVec DMTest::CVec_v1 )
@@ -42,4 +49,4 @@ atlas_add_sercnv_library ( DataModelTestDataCommonSerCnv
   FILES DataModelTestDataCommon/CVec.h DataModelTestDataCommon/CView.h DataModelTestDataCommon/CAuxContainer.h
   TYPES_WITH_NAMESPACE DMTest::CVec DMTest::CView DMTest::CAuxContainer
   INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} 
-  LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers SGTools xAODCore xAODTrigger GaudiKernel AthLinks TrigSerializeCnvSvcLib DataModelTestDataCommon )
+  LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers SGTools xAODCore xAODTrigger GaudiKernel AthLinks TrigSerializeCnvSvcLib DataModelTestDataCommonLib )
diff --git a/Control/DataModelTest/DataModelTestDataCommon/src/components/DataModelTestDataCommon_entries.cxx b/Control/DataModelTest/DataModelTestDataCommon/src/components/DataModelTestDataCommon_entries.cxx
new file mode 100644
index 00000000000..aa3c7ed559f
--- /dev/null
+++ b/Control/DataModelTest/DataModelTestDataCommon/src/components/DataModelTestDataCommon_entries.cxx
@@ -0,0 +1,16 @@
+/*
+ * Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration.
+ */
+
+// $Id$
+/**
+ * @file DataModeltestDataCommon/src/components/DataModelTestDataCommon_entries.cxx
+ * @author snyder@bnl.gov
+ * @date Apr, 2017
+ * @brief Gaudi algorithm factory declarations.
+ */
+
+#include "GaudiKernel/DeclareFactoryEntries.h"
+#include "../xAODTestReadSymlink.h"
+
+DECLARE_NAMESPACE_ALGORITHM_FACTORY(DMTest, xAODTestReadSymlink)
diff --git a/Control/DataModelTest/DataModelTestDataCommon/src/components/DataModelTestDataCommon_load.cxx b/Control/DataModelTest/DataModelTestDataCommon/src/components/DataModelTestDataCommon_load.cxx
new file mode 100644
index 00000000000..ae5ccddd06a
--- /dev/null
+++ b/Control/DataModelTest/DataModelTestDataCommon/src/components/DataModelTestDataCommon_load.cxx
@@ -0,0 +1,15 @@
+/*
+ * Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration.
+ */
+
+// $Id$
+/**
+ * @file/src/components/DataModelTestDataCommon_load.cxx
+ * @author snyder@bnl.gov
+ * @date Apr, 2017
+ * @brief Gaudi shared lib loading declaration.
+ */
+
+#include "GaudiKernel/LoadFactoryEntries.h"
+
+LOAD_FACTORY_ENTRIES( DataModelTestDataCommon )
diff --git a/Control/DataModelTest/DataModelTestDataCommon/src/xAODTestReadSymlink.cxx b/Control/DataModelTest/DataModelTestDataCommon/src/xAODTestReadSymlink.cxx
new file mode 100644
index 00000000000..aebed797353
--- /dev/null
+++ b/Control/DataModelTest/DataModelTestDataCommon/src/xAODTestReadSymlink.cxx
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration.
+ */
+
+// $Id$
+/**
+ * @file DataModelTestDataCommon/src/xAODTestReadSymlink.cxx
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Apr, 2017
+ * @brief Test reading via a symlink.
+ */
+
+
+#include "xAODTestReadSymlink.h"
+#include "StoreGate/ReadHandle.h"
+
+
+namespace DMTest {
+
+
+xAODTestReadSymlink::xAODTestReadSymlink (const std::string &name, ISvcLocator *pSvcLocator)
+  : AthReentrantAlgorithm (name, pSvcLocator)
+{
+  declareProperty ("Key", m_objKey);
+}
+
+
+StatusCode xAODTestReadSymlink::initialize()
+{
+  ATH_CHECK( m_objKey.initialize() );
+  return StatusCode::SUCCESS;
+}
+
+
+StatusCode xAODTestReadSymlink::execute_r (const EventContext& ctx) const
+{
+  SG::ReadHandle<SG::AuxElement> c (m_objKey, ctx);
+
+  static const SG::AuxElement::Accessor<int> anInt ("anInt");
+  ATH_MSG_INFO( "C (as AuxElement): " << anInt (*c) );
+  return StatusCode::SUCCESS;
+}
+
+
+} // namespace DMTest
diff --git a/Control/DataModelTest/DataModelTestDataCommon/src/xAODTestReadSymlink.h b/Control/DataModelTest/DataModelTestDataCommon/src/xAODTestReadSymlink.h
new file mode 100644
index 00000000000..9c793a39295
--- /dev/null
+++ b/Control/DataModelTest/DataModelTestDataCommon/src/xAODTestReadSymlink.h
@@ -0,0 +1,60 @@
+// This file's extension implies that it's C, but it's really -*- C++ -*-.
+
+/*
+ * Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration.
+ */
+
+// $Id$
+/**
+ * @file DataModelTestDataCommon/src/xAODTestReadSymlink.h
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Apr, 2017
+ * @brief Test reading via a symlink.
+ */
+
+
+#ifndef DATAMODELTESTDATACOMMON_XAODTESTREADSYMLINK_H
+#define DATAMODELTESTDATACOMMON_XAODTESTREADSYMLINK_H
+
+
+#include "AthenaBaseComps/AthReentrantAlgorithm.h"
+#include "StoreGate/ReadHandleKey.h"
+#include "AthContainers/AuxElement.h"
+
+
+namespace DMTest {
+
+
+class xAODTestReadSymlink
+  : public AthReentrantAlgorithm
+{
+public:
+  /**
+   * @brief Constructor.
+   * @param name The algorithm name.
+   * @param svc The service locator.
+   */
+  xAODTestReadSymlink (const std::string &name, ISvcLocator *pSvcLocator);
+
+
+  /**
+   * @brief Algorithm initialization; called at the beginning of the job.
+   */
+  virtual StatusCode initialize() override;
+
+
+  /**
+   * @brief Algorithm event processing.
+   */
+  virtual StatusCode execute_r (const EventContext& ctx) const override;
+
+
+private:
+  SG::ReadHandleKey<SG::AuxElement> m_objKey;
+};
+
+
+} // namespace DMTest
+
+
+#endif // not DATAMODELTESTDATACOMMON_XAODTESTREADSYMLINK_H
diff --git a/Control/DataModelTest/DataModelTestDataRead/CMakeLists.txt b/Control/DataModelTest/DataModelTestDataRead/CMakeLists.txt
index b962d213858..761282dd6a1 100644
--- a/Control/DataModelTest/DataModelTestDataRead/CMakeLists.txt
+++ b/Control/DataModelTest/DataModelTestDataRead/CMakeLists.txt
@@ -32,19 +32,19 @@ atlas_add_library( DataModelTestDataReadLib
                    src/*.cxx
                    PUBLIC_HEADERS DataModelTestDataRead
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                   LINK_LIBRARIES AthContainers AthLinks DataModelTestDataCommon SGTools GaudiKernel DataModelAthenaPoolLib StoreGateLib SGtests TrigSteeringEvent TrigNavigationLib
+                   LINK_LIBRARIES AthContainers AthLinks DataModelTestDataCommonLib SGTools GaudiKernel DataModelAthenaPoolLib StoreGateLib SGtests TrigSteeringEvent TrigNavigationLib
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps AthenaKernel CxxUtils xAODCore )
 
 atlas_add_component( DataModelTestDataRead
                      src/components/*.cxx
                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                     LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks DataModelAthenaPoolLib DataModelTestDataCommon SGTools GaudiKernel AthenaBaseComps AthenaKernel CxxUtils StoreGateLib SGtests xAODCore TrigSteeringEvent DataModelTestDataReadLib )
+                     LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks DataModelAthenaPoolLib DataModelTestDataCommonLib SGTools GaudiKernel AthenaBaseComps AthenaKernel CxxUtils StoreGateLib SGtests xAODCore TrigSteeringEvent DataModelTestDataReadLib )
 
 atlas_add_dictionary( DataModelTestDataReadDict
                       DataModelTestDataRead/DataModelTestDataReadDict.h
                       DataModelTestDataRead/selection.xml
                       INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                      LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks DataModelAthenaPoolLib DataModelTestDataCommon SGTools GaudiKernel AthenaBaseComps AthenaKernel CxxUtils StoreGateLib SGtests xAODCore DataModelTestDataReadLib
+                      LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks DataModelAthenaPoolLib DataModelTestDataCommonLib SGTools GaudiKernel AthenaBaseComps AthenaKernel CxxUtils StoreGateLib SGtests xAODCore DataModelTestDataReadLib
                       NO_ROOTMAP_MERGE
                       EXTRA_FILES src/dict/*.cxx
                       ELEMENT_LINKS DataVector<DMTest::B> )
@@ -54,4 +54,4 @@ atlas_add_sercnv_library ( DataModelTestDataReadSerCnv
   FILES DataModelTestDataRead/HVec.h DataModelTestDataRead/HView.h DataModelTestDataRead/HAuxContainer.h
   TYPES_WITH_NAMESPACE DMTest::HVec DMTest::HView DMTest::HAuxContainer
   INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} 
-  LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers SGTools xAODCore xAODTrigger GaudiKernel AthLinks TrigSerializeCnvSvcLib DataModelTestDataCommon DataModelTestDataReadLib )
+  LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers SGTools xAODCore xAODTrigger GaudiKernel AthLinks TrigSerializeCnvSvcLib DataModelTestDataCommonLib DataModelTestDataReadLib )
diff --git a/Control/DataModelTest/DataModelTestDataReadCnv/CMakeLists.txt b/Control/DataModelTest/DataModelTestDataReadCnv/CMakeLists.txt
index 8016ca4f8f3..b47fbba44e9 100644
--- a/Control/DataModelTest/DataModelTestDataReadCnv/CMakeLists.txt
+++ b/Control/DataModelTest/DataModelTestDataReadCnv/CMakeLists.txt
@@ -21,5 +21,5 @@ atlas_add_poolcnv_library( DataModelTestDataReadCnvPoolCnv
                            src/*.cxx
                            FILES DataModelTestDataRead/BVec.h DataModelTestDataRead/BDer.h DataModelTestDataRead/DVec.h DataModelTestDataRead/DDer.h DataModelTestDataRead/ELVec.h DataModelTestDataRead/G.h DataModelTestDataRead/GVec.h DataModelTestDataRead/GAuxContainer.h DataModelTestDataRead/H.h DataModelTestDataRead/HVec.h DataModelTestDataRead/HAuxContainer.h DataModelTestDataRead/HView.h DataModelTestDataCommon/BAux.h DataModelTestDataCommon/BAuxVec.h DataModelTestDataCommon/BAuxStandalone.h DataModelTestDataCommon/C.h DataModelTestDataCommon/CVec.h DataModelTestDataCommon/CAuxContainer.h DataModelTestDataCommon/CView.h DataModelTestDataCommon/CVecWithData.h DataModelTestDataCommon/CInfoAuxContainer.h DataModelTestDataCommon/CTrigAuxContainer.h
                            TYPES_WITH_NAMESPACE DMTest::BVec DMTest::DVec DMTest::DDer DMTest::BDer DMTest::ELVec DMTest::BAux DMTest::BAuxVec DMTest::BAuxStandalone DMTest::C DMTest::CVec DMTest::CAuxContainer DMTest::G DMTest::GVec DMTest::GAuxContainer DMTest::CVecWithData DMTest::CInfoAuxContainer DMTest::CTrigAuxContainer DMTest::CView DMTest::H DMTest::HVec DMTest::HAuxContainer DMTest::HView
-                           LINK_LIBRARIES AthenaPoolUtilities AthenaKernel DataModelTestDataCommon DataModelTestDataReadLib AthenaPoolCnvSvcLib )
+                           LINK_LIBRARIES AthenaPoolUtilities AthenaKernel DataModelTestDataCommonLib DataModelTestDataReadLib AthenaPoolCnvSvcLib )
 
diff --git a/Control/DataModelTest/DataModelTestDataReadCnv/src/CCnv.cxx b/Control/DataModelTest/DataModelTestDataReadCnv/src/CCnv.cxx
new file mode 100644
index 00000000000..fbcf9df43ee
--- /dev/null
+++ b/Control/DataModelTest/DataModelTestDataReadCnv/src/CCnv.cxx
@@ -0,0 +1,5 @@
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// Dummy source file so that cmake will know this is a custom converter.
diff --git a/Control/DataModelTest/DataModelTestDataReadCnv/src/CCnv.h b/Control/DataModelTest/DataModelTestDataReadCnv/src/CCnv.h
new file mode 100644
index 00000000000..8f2b628701d
--- /dev/null
+++ b/Control/DataModelTest/DataModelTestDataReadCnv/src/CCnv.h
@@ -0,0 +1,27 @@
+// This file's extension implies that it's C, but it's really -*- C++ -*-.
+
+/*
+  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+*/
+
+// $Id$
+/**
+ * @file DataModelTestDataReadCnv/src/CCnv.h
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Apr, 2016
+ * @brief POOL coverter for C.
+ */
+
+
+#ifndef DATAMODELTESTDATAREADCNV_CCNV_H
+#define DATAMODELTESTDATAREADCNV_CCNV_H
+
+
+#include "DataModelTestDataCommon/C.h"
+#include "AthenaPoolCnvSvc/T_AthenaPoolxAODCnv.h"
+
+
+typedef T_AthenaPoolxAODCnv<DMTest::C> CCnv;
+
+
+#endif // not DATAMODELTESTDATAREADCNV_CCNV_H
diff --git a/Control/DataModelTest/DataModelTestDataWrite/CMakeLists.txt b/Control/DataModelTest/DataModelTestDataWrite/CMakeLists.txt
index b43ef7397e4..ecae489ead1 100644
--- a/Control/DataModelTest/DataModelTestDataWrite/CMakeLists.txt
+++ b/Control/DataModelTest/DataModelTestDataWrite/CMakeLists.txt
@@ -34,19 +34,19 @@ atlas_add_library( DataModelTestDataWriteLib
                    src/*.cxx
                    PUBLIC_HEADERS DataModelTestDataWrite
                    PRIVATE_INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                   LINK_LIBRARIES AthContainers AthLinks DataModelTestDataCommon SGTools xAODCore GaudiKernel DataModelAthenaPoolLib StoreGateLib SGtests TrigNavigationLib EventInfo TrigSteeringEvent
+                   LINK_LIBRARIES AthContainers AthLinks DataModelTestDataCommonLib SGTools xAODCore GaudiKernel DataModelAthenaPoolLib StoreGateLib SGtests TrigNavigationLib EventInfo TrigSteeringEvent
                    PRIVATE_LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaBaseComps AthenaKernel CxxUtils )
 
 atlas_add_component( DataModelTestDataWrite
                      src/components/*.cxx
                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                     LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks DataModelAthenaPoolLib DataModelTestDataCommon SGTools xAODCore GaudiKernel AthenaBaseComps AthenaKernel CxxUtils StoreGateLib SGtests TrigSteeringEvent DataModelTestDataWriteLib )
+                     LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks DataModelAthenaPoolLib DataModelTestDataCommonLib SGTools xAODCore GaudiKernel AthenaBaseComps AthenaKernel CxxUtils StoreGateLib SGtests TrigSteeringEvent DataModelTestDataWriteLib )
 
 atlas_add_dictionary( DataModelTestDataWriteDict
                       DataModelTestDataWrite/DataModelTestDataWriteDict.h
                       DataModelTestDataWrite/selection.xml
                       INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-                      LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks DataModelAthenaPoolLib DataModelTestDataCommon SGTools xAODCore GaudiKernel AthenaBaseComps AthenaKernel CxxUtils StoreGateLib SGtests DataModelTestDataWriteLib
+                      LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks DataModelAthenaPoolLib DataModelTestDataCommonLib SGTools xAODCore GaudiKernel AthenaBaseComps AthenaKernel CxxUtils StoreGateLib SGtests DataModelTestDataWriteLib
                       NO_ROOTMAP_MERGE
                       EXTRA_FILES src/dict/*.cxx
                       ELEMENT_LINKS DataVector<DMTest::B> )
@@ -57,4 +57,4 @@ atlas_add_sercnv_library ( DataModelTestDataWriteSerCnv
   FILES DataModelTestDataWrite/HVec.h DataModelTestDataWrite/HView.h DataModelTestDataWrite/HAuxContainer.h
   TYPES_WITH_NAMESPACE DMTest::HVec DMTest::HView DMTest::HAuxContainer
   INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
-  LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers SGTools xAODCore xAODTrigger GaudiKernel AthLinks TrigSerializeCnvSvcLib DataModelTestDataCommon DataModelTestDataWriteLib )
+  LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers SGTools xAODCore xAODTrigger GaudiKernel AthLinks TrigSerializeCnvSvcLib DataModelTestDataCommonLib DataModelTestDataWriteLib )
diff --git a/Control/DataModelTest/DataModelTestDataWriteCnv/CMakeLists.txt b/Control/DataModelTest/DataModelTestDataWriteCnv/CMakeLists.txt
index 786bd960e9a..104f8b02fb7 100644
--- a/Control/DataModelTest/DataModelTestDataWriteCnv/CMakeLists.txt
+++ b/Control/DataModelTest/DataModelTestDataWriteCnv/CMakeLists.txt
@@ -20,5 +20,5 @@ atlas_add_poolcnv_library( DataModelTestDataWriteCnvPoolCnv
                            src/*.cxx
                            FILES DataModelTestDataWrite/BVec.h DataModelTestDataWrite/BDer.h DataModelTestDataWrite/DVec.h DataModelTestDataWrite/DDer.h DataModelTestDataWrite/ELVec.h DataModelTestDataWrite/G.h DataModelTestDataWrite/GVec.h DataModelTestDataWrite/GAuxContainer.h DataModelTestDataWrite/H.h DataModelTestDataWrite/HVec.h DataModelTestDataWrite/HAuxContainer.h DataModelTestDataWrite/HView.h DataModelTestDataCommon/BAux.h DataModelTestDataCommon/BAuxVec.h DataModelTestDataCommon/BAuxStandalone.h DataModelTestDataCommon/C.h DataModelTestDataCommon/CVec.h DataModelTestDataCommon/CAuxContainer.h DataModelTestDataCommon/CView.h DataModelTestDataCommon/CVecWithData.h DataModelTestDataCommon/CInfoAuxContainer.h DataModelTestDataCommon/CTrigAuxContainer.h
                            TYPES_WITH_NAMESPACE DMTest::BVec DMTest::DVec DMTest::DDer DMTest::BDer DMTest::ELVec DMTest::BAux DMTest::BAuxVec DMTest::BAuxStandalone DMTest::C DMTest::CVec DMTest::CAuxContainer DMTest::G DMTest::GVec DMTest::GAuxContainer DMTest::CVecWithData DMTest::CInfoAuxContainer DMTest::CTrigAuxContainer DMTest::CView DMTest::H DMTest::HVec DMTest::HAuxContainer DMTest::HView
-                           LINK_LIBRARIES AthenaPoolUtilities DataModelTestDataCommon DataModelTestDataWriteLib AthenaPoolCnvSvcLib )
+                           LINK_LIBRARIES AthenaPoolUtilities DataModelTestDataCommonLib DataModelTestDataWriteLib AthenaPoolCnvSvcLib )
 
-- 
GitLab