package net.johnewart.gearman.server.config; import com.codahale.metrics.MetricRegistry; import net.johnewart.gearman.common.interfaces.JobHandleFactory; import net.johnewart.gearman.engine.core.JobManager; import net.johnewart.gearman.engine.core.UniqueIdFactory; import net.johnewart.gearman.engine.queue.factories.JobQueueFactory; import net.johnewart.gearman.engine.queue.factories.MemoryJobQueueFactory; import net.johnewart.gearman.engine.storage.NoopExceptionStorageEngine; import net.johnewart.gearman.engine.util.LocalJobHandleFactory; import net.johnewart.gearman.engine.util.LocalUniqueIdFactory; import net.johnewart.gearman.server.util.JobQueueMonitor; import net.johnewart.gearman.server.util.SnapshottingJobQueueMonitor; import java.net.InetAddress; import java.net.UnknownHostException; // Sane defaults. public class DefaultServerConfiguration extends GearmanServerConfiguration { private final JobManager jobManager; private final JobQueueFactory jobQueueFactory; private final JobQueueMonitor jobQueueMonitor; private final JobHandleFactory jobHandleFactory; private final UniqueIdFactory uniqueIdFactory; private final MetricRegistry registry; public DefaultServerConfiguration() { this.registry = new MetricRegistry(); this.jobHandleFactory = new LocalJobHandleFactory(getHostName()); this.jobQueueFactory = new MemoryJobQueueFactory(registry); this.uniqueIdFactory = new LocalUniqueIdFactory(); this.jobManager = new JobManager(jobQueueFactory, jobHandleFactory, uniqueIdFactory, new NoopExceptionStorageEngine(), getQueueMetrics()); this.jobQueueMonitor = new SnapshottingJobQueueMonitor(getQueueMetrics()); } @Override public int getPort() { return 4730; } @Override public int getHttpPort() { return 8080; } @Override public boolean isSSLEnabled() { return false; } @Override public boolean isDebugging() { return false; } @Override public String getHostName() { try { return InetAddress.getLocalHost().getHostName(); } catch (UnknownHostException e) { return "localhost"; } } @Override public JobQueueFactory getJobQueueFactory() { return jobQueueFactory; } @Override public JobManager getJobManager() { return jobManager; } @Override public JobQueueMonitor getJobQueueMonitor() { return jobQueueMonitor; } @Override public JobHandleFactory getJobHandleFactory() { return jobHandleFactory; } @Override public UniqueIdFactory getUniqueIdFactory() { return uniqueIdFactory; } }