N1 Grid Service Provisioning System 5.0 XML Schema Reference Guide

<componentRef> Element Changes

The following table shows the changes that can be made to the <componentRef> element and indicates whether each change is install compatible or call compatible.

Type of Change 

Install Compatible 

Call Compatible 

Nonfinal to final 

Yes [A derived component might exist that already defines the component reference with a more restrictive access mode or otherwise incompatible difference. In such a case, a change would make the derived component invalid. A new nonabstract component reference can be added to a component type if no derived component has already defined a component reference that has the same name.]

Yes 

Final to nonfinal 

Yes 

Yes 

Nonabstract to abstract 

No 

Yes 

Abstract to nonabstract 

Yes 

Yes 

Change the installMode attribute

No 

No 

Add a new component reference 

Yes, [Adding a nested component is technically possible. An existing installation would be treated as if it had been installed without the nested component. Because any functionality that might depend on the installation could break, this change should only be made if the component can function safely without the nested component. Otherwise, it should be treated as being a change that is not install compatible.]

Yes 

Remove or rename a nested <componentRef>

No 

No 

Remove or rename a top-level <componentRef>

No 

No 

Add, modify, or remove arguments from a nested component's <argList>

No 

Yes 

Add, modify, or remove arguments from a top-level component's <argList>

Yes [You cannot determine whether this component was the component that actually installed the top-level component. Therefore, this component cannot rely on the top-level component having variables that correspond to the <argList> values.]

Yes 

New type instance of the original  

No 

Yes 

Original type instance of the new  

No 

No 

New type that is unrelated to the original  

No 

No 

New type that is install compatible with the original  

Yes 

Yes 

New type that is call compatible with the original  

No 

Yes 

New nested component instance of the original  

No 

Yes 

Original nested component instance of the new  

No 

No 

New nested component that is unrelated to the original  

No 

No 

New nested component that is install compatible with the original  

Yes 

Yes 

New nested component that is call compatible with the original  

No 

Yes