package de.otto.edison.mongo.configuration; import com.mongodb.client.MongoDatabase; import de.otto.edison.jobs.repository.JobMetaRepository; import de.otto.edison.jobs.repository.JobRepository; import de.otto.edison.mongo.jobs.MongoJobMetaRepository; import de.otto.edison.mongo.jobs.MongoJobRepository; import org.slf4j.Logger; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import static org.slf4j.LoggerFactory.getLogger; @Configuration @ConditionalOnClass(name = "de.otto.edison.jobs.configuration.JobsConfiguration") public class MongoJobsConfiguration { private static final Logger LOG = getLogger(MongoJobsConfiguration.class); @Bean public JobRepository jobRepository(final MongoDatabase mongoDatabase, final @Value("${edison.jobs.collection.jobinfo:jobinfo}") String collectionName) { LOG.info("==============================="); LOG.info("Using MongoJobRepository with %s MongoDatabase impl.", mongoDatabase.getClass().getSimpleName()); LOG.info("==============================="); return new MongoJobRepository(mongoDatabase, collectionName); } @Bean public JobMetaRepository jobMetaRepository(final MongoDatabase mongoDatabase, final @Value("${edison.jobs.collection.jobmeta:jobmeta}") String collectionName) { LOG.info("==============================="); LOG.info("Using MongoJobMetaRepository with %s MongoDatabase impl.", mongoDatabase.getClass().getSimpleName()); LOG.info("==============================="); return new MongoJobMetaRepository(mongoDatabase, collectionName); } }