snapshot copy from api.jdo