Package com.wordpress.salaboy.context.tracking

Source Code of com.wordpress.salaboy.context.tracking.ContextTrackingProvider

/*
* To change this template, choose Tools | Templates and open the template in
* the editor.
*/
package com.wordpress.salaboy.context.tracking;

import com.wordpress.salaboy.model.persistence.EnvironmentConfiguration;

import org.neo4j.kernel.EmbeddedGraphDatabase;
import org.neo4j.test.ImpermanentGraphDatabase;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
*
* @author salaboy
*/
public class ContextTrackingProvider {
   

    private static ContextTrackingService instance;
    private static ApplicationContext context;

    public enum ContextTrackingServiceType {

        EMBEDDED, IN_MEMORY, REST
    };
    public static String defaultDB = "target/db/graph";
    public static final String SERVER_BASE_URL = "http://localhost:7575";
    public static String configFile = "config-beans.xml";
    public static ContextTrackingService getTrackingService() {
        if (instance == null) {
            context = new ClassPathXmlApplicationContext(configFile);
            EnvironmentConfiguration conf = (EnvironmentConfiguration) context.getBean("environmentConf");
            ContextTrackingServiceType type = (ContextTrackingServiceType) conf.get("ContextTrackingService");
            if (type == null) {
                throw new IllegalStateException("Persistence Service Type needs to be specified in spring");
            }
            switch (type) {
                case IN_MEMORY:
                    instance = new ContextTrackingServiceImpl(new ImpermanentGraphDatabase(defaultDB));
                    break;
                case EMBEDDED:
                    instance = new ContextTrackingServiceImpl(new EmbeddedGraphDatabase(defaultDB));
                    break;
                case REST:
                    instance = new ContextTrackingServiceRest(SERVER_BASE_URL);
                    break;
                default:
                    instance = new ContextTrackingServiceImpl(new ImpermanentGraphDatabase(defaultDB));
                    break;

            }


        }

        return instance;
    }


    public static void clear() {
        configFile = "config-beans.xml";
        instance.clear();
        instance = null;
    }
}
TOP

Related Classes of com.wordpress.salaboy.context.tracking.ContextTrackingProvider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.