Limitations When Using FastSwap

Preparing Applications and Modules for Deployment 3-11

3.6.6 Limitations When Using FastSwap

The following limitations apply when using FastSwap deployment: ■ Java reflection results do not include newly added fields and methods and include removed fields and methods. As a result, use of the reflection API on the modified classes can result in undesired behavior. ■ Changing the hierarchy of an already existing class is not supported by FastSwap. For example, either a changing the list of implemented interfaces of a class; or b changing the superclass of a class, is not supported. Remove constants No Addremove methods No Anonymous Inner Class Addremove fields NA Not supported by the Java language Addremove methods No Static Inner Class Same supported changes a–g listed in Instance Yes Member Inner Classes non-static inner classes Same supported changes a–g listed in Instance Yes Local Inner Classes Same supported changes a–g listed in Instance Yes Java Interface Add method Yes Java Reflection Access existing fieldsmethods Yes Access new methods No New methods are not seen using Reflection and some synthetic methods are exposed. Access new fields No New fields are not seen using Reflection. Annotations on Classes Add or remove methodfield annotations No Annotation Type Add or remove methodsattributes No Exception Classes Same supported changes a–g listed in Instance Yes EJB Interface Addremove methods No Changes to EJB interfaces involve Reflection, which is not fully supported. EJB 3.0 SessionMDB EJB Implementation Class Addremove methods No Any support classes referenced by the EJB classes can be modified. Addremove fields No EJB 3.0 EntityBean Addremove methods No Any support classes referenced by the EJB classes can be modified. Addremove fields No EJB Interceptors Addremove methods No Any support classes referenced by the EJB classes can be modified. Addremove fields No Table 3–1 Cont. Supported Application Types and Changes Scope Java Change Type Supported Notes 3-12 Deploying Applications to Oracle WebLogic Server ■ Addition or removal of Java annotations is not supported by FastSwap, since this is tied to the reflection changes mentioned above. ■ Addition or removal of methods on EJB Interfaces is not supported by FastSwap since an EJB Compilation step is required to reflect the changes at run time. ■ Addition or removal of constants from Enums is not supported. ■ Addition or removal of the finalize method is not supported. ■ When you change a field name, the object state is not retained. This type of change occurs as follows: the field with the old name is deleted and a field with the new name is added. As such, any state in the old field is not carried over to the renamed field. You should expect an instance value to be reset when you change a field name.

3.6.7 Handling Unsupported FastSwap Changes