<NME> spring.factories
<BEF> org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.netflix.genie.web.configs.GenieApiAutoConfiguration,\
  com.netflix.genie.web.configs.GenieEventBusAutoConfiguration,\
  com.netflix.genie.web.configs.GenieGRpcServerAutoConfiguration,\
  com.netflix.genie.web.configs.GenieJobWorkflowAutoConfiguration,\
  com.netflix.genie.web.configs.GenieLeadershipAutoConfiguration,\
  com.netflix.genie.web.configs.GenieMailAutoConfiguration,\
  com.netflix.genie.web.configs.GenieServicesAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.aspects.AspectsAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.aws.AWSAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.data.DataAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.events.EventsAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.events.NotificationsAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.health.HealthAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.introspection.IntrospectionAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.properties.converters.PropertyConvertersAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.scripts.ScriptsAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.selectors.SelectorsAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.services.ServicesAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.tasks.TasksAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.tasks.leader.LeaderAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.tasks.node.NodeAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.CachingAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.RetryAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.ValidationAutoConfiguration,\
  com.netflix.genie.web.spring.autoconfigure.ZookeeperAutoConfiguration
org.springframework.boot.env.EnvironmentPostProcessor=\
  com.netflix.genie.web.spring.processors.GenieDefaultPropertiesPostProcessor

<MSG> Make the system more flexible to replacing business logic beans

In the past we've marked many of our business logic classes (the service tier if you will) with `@Service`. This is very nice for quickly wiring up the application but it removes flexibility for extension as it forces a bean of that type to be in the context. This commit moves almost all of our service tier to be conditional beans in auto configuration classes. This will allow people that pull the genie-web module into their builds (including Netflix internally) to override these bean definitions easier to either extend existing functionality or replace it completely. Also with the beans in AutoConfiguration we can disable entire swaths of functionality (e.g. JPA) by just ignoring that auto config.

<DFF> @@ -1,8 +1,10 @@
 org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
   com.netflix.genie.web.configs.GenieApiAutoConfiguration,\
+  com.netflix.genie.web.configs.GenieClusterLoadBalancerAutoConfiguration,\
   com.netflix.genie.web.configs.GenieEventBusAutoConfiguration,\
   com.netflix.genie.web.configs.GenieGRpcServerAutoConfiguration,\
   com.netflix.genie.web.configs.GenieJobWorkflowAutoConfiguration,\
+  com.netflix.genie.web.configs.GenieJpaAutoConfiguration,\
   com.netflix.genie.web.configs.GenieLeadershipAutoConfiguration,\
   com.netflix.genie.web.configs.GenieMailAutoConfiguration,\
   com.netflix.genie.web.configs.GenieServicesAutoConfiguration,\

Make the system more flexible to replacing business logic beans