class InitializationLoader {
	
	private static final Logger LOGGER = LoggerFactory.getLogger(InitializationLoader.class);

	@Value("${db.init.data:true}")
    private boolean initDefaultData;

	
	@Inject
	private MerchantConfigurationService merchantConfigurationService;
	
	@Inject
	private InitializationDatabase initializationDatabase;
	
	//@Inject
	//private InitData initData;
	
	@Inject
	private SystemConfigurationService systemConfigurationService;
	
	@Inject
	private WebUserServices userDetailsService;

	@Inject
	protected PermissionService  permissionService;
	
	@Inject
	protected GroupService   groupService;
	
	@Inject
	private CoreConfiguration configuration;
	
	@Inject
	protected MerchantStoreService merchantService;

	
	@PostConstruct
	public void init() {<FILL_FUNCTION_BODY>}




}

		
		try {
			
			//Check flag to populate or not the database
			if(!this.initDefaultData) {
				return;
			}
			
			if (initializationDatabase.isEmpty()) {
				

				//All default data to be created
				
				LOGGER.info(String.format("%s : Shopizer database is empty, populate it....", "sm-shop"));
		
				 initializationDatabase.populate("sm-shop");
				
				 MerchantStore store = merchantService.getByCode(MerchantStore.DEFAULT_STORE);

                  userDetailsService.createDefaultAdmin();
                  MerchantConfig config = new MerchantConfig();
				  config.setAllowPurchaseItems(true);
				  config.setDisplayAddToCartOnFeaturedItems(true);
				  
				  merchantConfigurationService.saveMerchantConfig(config, store);


			}
			
		} catch (Exception e) {
			LOGGER.error("Error in the init method",e);
		}
			
	
<no_super_class>