package org.hibernate.search.test.service; import java.util.Properties; import org.hibernate.search.spi.BuildContext; import org.hibernate.search.spi.ServiceProvider; /** * @author Emmanuel Bernard */ public class MyServiceProvider implements ServiceProvider<MyService> { private static volatile boolean active = false; private static volatile boolean simulateCircularDependency = false; private MyService foo; public void start(Properties properties, BuildContext context) { foo = new MyService(); active = true; if ( simulateCircularDependency ) { context.getServiceManager().requestService( MyServiceProvider.class, context ); } } public MyService getService() { return foo; } public void stop() { foo = null; active = false; } public static boolean isActive() { return active; } public static void resetActive() { active = false; } public static void setSimulateCircularDependency(boolean simulateCircularDependency) { MyServiceProvider.simulateCircularDependency = simulateCircularDependency; } }