/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.pieshare.service.core;
import java.util.EventListener;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import org.pieshare.service.event.IEventBaseService;
import org.pieshare.service.core.ShutdownEvent;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
*
* @author vauve_000
*/
public class PieService implements IPieService
{
private ExecutorService executorService;
private ApplicationContext context;
private IEventBaseService eventBaseService;
private boolean pieShareRunning;
public PieService()
{
this.pieShareRunning = false;
this.executorService = Executors.newCachedThreadPool();
}
@Override
public boolean isPieShareRunning()
{
return this.pieShareRunning;
}
@Override
public void executeService(Runnable service)
{
this.addShutdownEventListener(service);
this.executorService.execute(service);
}
@Override
public String getPieceptionBindingName()
{
//TODO: change this
return "pieception";
}
@Override
public <T> T getBean(Class<T> type)
{
return context.getBean(type);
}
@Override
public void setApplicationContext(ApplicationContext context)
{
this.context = context;
}
@Override
public String getPieceptionRegistryHost()
{
//TODO: change this
return "pieHost";
}
@Override
public int getPieceptionRegistryPort()
{
//TODO: change this
return 5001;
}
@Override
public void shutdown()
{
this.eventBaseService.fireEvent(ShutdownEvent.class, this);
}
public void setEventBaseService(IEventBaseService service)
{
this.eventBaseService = service;
}
@Override
public void addShutdownEventListener(Object listener)
{
//this.eventBaseService.addEventListener(ShutdownEvent.class, listener);
}
@Override
public void removeShutdownEventListener(Object listener)
{
this.eventBaseService.removeEventListener(ShutdownEvent.class, listener);
}
@Override
public void setPieShareIsRunning()
{
this.pieShareRunning = true;
}
}