package org.dicadeveloper.weplantaforest.admin.dev; import javax.annotation.PostConstruct; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.dicadeveloper.weplantaforest.admin.treeType.TreeTypeRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component; @Component @Profile("dev") public class DataInjector { protected final Log LOG = LogFactory.getLog(DataInjector.class.getName()); protected DatabasePopulator _databasePopulator; private TreeTypeRepository _treeTypeRepository; @Autowired public DataInjector(TreeTypeRepository treeTypeRepository, DatabasePopulator databasePopulator) { _treeTypeRepository = treeTypeRepository; _databasePopulator = databasePopulator; } @PostConstruct private void inject() { Runnable treeInjector = new Runnable() { @Override public void run() { // TODO jz: Thinking about giving this an extra state table in // the db (like db.populates=v23) if (!_treeTypeRepository.existsAtAll()) { int treeCount = 15000; _databasePopulator.insertUsers() .insertDefaultTreeTypes() .insertProjects() .insertProjectArticles() .insertCarts() .insertProjectImages() .addMainImagesToProjectFolder() .addProjectImages() .createMainSliderImages(); ; LOG.info("Finished injecting " + treeCount + " trees "); } else { LOG.info("No entities will be injected."); } } }; Thread thread = new Thread(treeInjector); thread.start(); } }