/* * Copyright (c) 2015. Bearchoke */ package com.bearchoke.platform.persistence.mongo.axon; import com.mongodb.DBCollection; import org.axonframework.eventstore.mongo.MongoTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.MongoDbFactory; /** * Created by Bjorn Harvold * Date: 1/4/15 * Time: 11:32 AM * Responsibility: */ public class AxonMongoTemplate implements MongoTemplate { private static final String DEFAULT_DOMAINEVENTS_COLLECTION = "domainevents"; private static final String DEFAULT_SNAPSHOTEVENTS_COLLECTION = "snapshotevents"; private final String domainEventsCollectionName; private final String snapshotEventsCollectionName; private final MongoDbFactory mongoDbFactory; private final org.springframework.data.mongodb.core.MongoTemplate mongoTemplate; @Autowired public AxonMongoTemplate(MongoDbFactory mongoDbFactory) { this.mongoDbFactory = mongoDbFactory; this.mongoTemplate = new org.springframework.data.mongodb.core.MongoTemplate(mongoDbFactory); domainEventsCollectionName = DEFAULT_DOMAINEVENTS_COLLECTION; snapshotEventsCollectionName = DEFAULT_SNAPSHOTEVENTS_COLLECTION; } @Override public DBCollection domainEventCollection() { return mongoTemplate.getCollection(domainEventsCollectionName); } @Override public DBCollection snapshotEventCollection() { return mongoTemplate.getCollection(snapshotEventsCollectionName); } }