import org.springframework.beans.BeansException;
import org.springframework.beans.FatalBeanException;
import org.springframework.util.Assert;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;public classBeanCopyUtils extends org.springframework.beans.BeanUtils{public static voidcopyBean(Object source, Object target) throws BeansException {
Assert.notNull(source,"Source must not be null");
Assert.notNull(target,"Target must not be null");
Class> actualEditable =target.getClass();
PropertyDescriptor[] targetPds=getPropertyDescriptors(actualEditable);for(PropertyDescriptor targetPd : targetPds) {if (targetPd.getWriteMethod() != null) {
PropertyDescriptor sourcePd=getPropertyDescriptor(source.getClass(), targetPd.getName());if (sourcePd != null && so