/edison-jobs/src/main/java/de/otto/edison/jobs/configuration/MongoJobsConfiguration.java

https://github.com/otto-de/edison-microservice · Java · 49 lines · 42 code · 7 blank · 0 comment · 0 complexity · 1f5a12c66d61fdc3de33ccf2ee1b40c0 MD5 · raw file

  1. package de.otto.edison.jobs.configuration;
  2. import com.mongodb.client.MongoClient;
  3. import com.mongodb.client.MongoDatabase;
  4. import de.otto.edison.jobs.repository.JobMetaRepository;
  5. import de.otto.edison.jobs.repository.JobRepository;
  6. import de.otto.edison.jobs.repository.mongo.MongoJobMetaRepository;
  7. import de.otto.edison.jobs.repository.mongo.MongoJobRepository;
  8. import de.otto.edison.mongo.configuration.MongoConfiguration;
  9. import de.otto.edison.mongo.configuration.MongoProperties;
  10. import org.slf4j.Logger;
  11. import org.springframework.beans.factory.annotation.Value;
  12. import org.springframework.boot.autoconfigure.AutoConfigureAfter;
  13. import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
  14. import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
  15. import org.springframework.context.annotation.Bean;
  16. import org.springframework.context.annotation.Configuration;
  17. import static org.slf4j.LoggerFactory.getLogger;
  18. @Configuration
  19. @AutoConfigureAfter(MongoConfiguration.class)
  20. @ConditionalOnProperty(prefix = "edison.jobs", name = "mongo.enabled", havingValue = "true", matchIfMissing = true)
  21. @ConditionalOnClass(MongoClient.class)
  22. public class MongoJobsConfiguration {
  23. private static final Logger LOG = getLogger(MongoJobsConfiguration.class);
  24. @Bean
  25. public JobRepository jobRepository(final MongoDatabase mongoDatabase,
  26. final @Value("${edison.jobs.collection.jobinfo:jobinfo}") String collectionName,
  27. final MongoProperties mongoProperties) {
  28. LOG.info("===============================");
  29. LOG.info("Using MongoJobRepository with {} MongoDatabase impl.", mongoDatabase.getClass().getSimpleName());
  30. LOG.info("===============================");
  31. return new MongoJobRepository(mongoDatabase, collectionName, mongoProperties);
  32. }
  33. @Bean
  34. public JobMetaRepository jobMetaRepository(final MongoDatabase mongoDatabase,
  35. final @Value("${edison.jobs.collection.jobmeta:jobmeta}") String collectionName,
  36. final MongoProperties mongoProperties) {
  37. LOG.info("===============================");
  38. LOG.info("Using MongoJobMetaRepository with {} MongoDatabase impl.", mongoDatabase.getClass().getSimpleName());
  39. LOG.info("===============================");
  40. return new MongoJobMetaRepository(mongoDatabase, collectionName, mongoProperties);
  41. }
  42. }