Considering the scenario where D1 and D2 are deployments 1) D1 will contain A,B and C classes
2) D2 will A and D classes
3) Deployment Ordering is D1 and D2 , assuming the UCL1 and UCL2 getting created for D1 and D2
4) Now the UCL2(D2) needs to load A it will delegate the loading to ULR , the classcache does not contain the A , so the packageMap will be looked for getting the UCL?s which can load A . For this scenario the UCL2 will find that UCL1 and UCL2 can load class A , since the D1 is deployed first so UCL1 will have to load the A and then store in the classcache.
5)Now the A loaded in the classcache comes from the UCL1 .
6)So the A used in the UCL2 are loaded from UCL1 , both UCL1 and UCL2 are siblings ..