Real World Java EE Patterns: Rethinking Best Practices