org.infinispan.distexec.mapreduce.spi.MapReduceTaskLifecycleService Maven / Gradle / Ivy
package org.infinispan.distexec.mapreduce.spi;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.ServiceConfigurationError;
import org.infinispan.Cache;
import org.infinispan.commons.util.ServiceFinder;
import org.infinispan.distexec.mapreduce.Mapper;
import org.infinispan.distexec.mapreduce.Reducer;
import org.infinispan.util.logging.Log;
import org.infinispan.util.logging.LogFactory;
public final class MapReduceTaskLifecycleService {
private static final Log log = LogFactory.getLog(MapReduceTaskLifecycleService.class);
private static MapReduceTaskLifecycleService service;
private List lifecycles;
private MapReduceTaskLifecycleService() {
lifecycles = new ArrayList();
for (MapReduceTaskLifecycle l : ServiceFinder.load(MapReduceTaskLifecycle.class)) {
lifecycles.add(l);
}
}
public static synchronized MapReduceTaskLifecycleService getInstance() {
if (service == null) {
service = new MapReduceTaskLifecycleService();
}
return service;
}
public void onPreExecute(Mapper mapper, Cache inputCache) {
try {
for (MapReduceTaskLifecycle l : lifecycles) {
l.onPreExecute(mapper, inputCache);
}
} catch (ServiceConfigurationError serviceError) {
log.errorReadingProperties(new IOException(
"Could not properly load and instantiate DistributedTaskLifecycle service ",
serviceError));
}
}
public void onPostExecute(Mapper mapper) {
try {
for (MapReduceTaskLifecycle l : lifecycles) {
l.onPostExecute(mapper);
}
} catch (ServiceConfigurationError serviceError) {
log.errorReadingProperties(new IOException(
"Could not properly load and instantiate DistributedTaskLifecycle service ",
serviceError));
}
}
public void onPreExecute(Reducer reducer, Cache, ?> inputCache) {
try {
for (MapReduceTaskLifecycle l : lifecycles) {
l.onPreExecute(reducer, inputCache);
}
} catch (ServiceConfigurationError serviceError) {
log.errorReadingProperties(new IOException(
"Could not properly load and instantiate DistributedTaskLifecycle service ",
serviceError));
}
}
public void onPostExecute(Reducer reducer) {
try {
for (MapReduceTaskLifecycle l : lifecycles) {
l.onPostExecute(reducer);
}
} catch (ServiceConfigurationError serviceError) {
log.errorReadingProperties(new IOException(
"Could not properly load and instantiate DistributedTaskLifecycle service ",
serviceError));
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy