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
|