When to use the deployment descriptor annotation or programmatic configuration