package org.safehaus.penrose.management.mapping; import org.safehaus.penrose.management.BaseService; import org.safehaus.penrose.management.PenroseJMXService; import org.safehaus.penrose.mapping.*; import org.safehaus.penrose.partition.Partition; import org.safehaus.penrose.partition.PartitionConfig; import org.safehaus.penrose.partition.PartitionManager; /** * @author Endi Sukma Dewata */ public class MappingService extends BaseService implements MappingServiceMBean { private PartitionManager partitionManager; private String partitionName; private String mappingName; public MappingService( PenroseJMXService jmxService, PartitionManager partitionManager, String partitionName, String mappingName ) throws Exception { this.jmxService = jmxService; this.partitionManager = partitionManager; this.partitionName = partitionName; this.mappingName = mappingName; } public String getObjectName() { return MappingClient.getStringObjectName(partitionName, mappingName); } public Object getObject() { return getMapping(); } public MappingConfig getMappingConfig() throws Exception { return getPartitionConfig().getMappingConfigManager().getMappingConfig(mappingName); } public Mapping getMapping() { Partition partition = getPartition(); if (partition == null) return null; MappingManager mappingManager = partition.getMappingManager(); return mappingManager.getMapping(mappingName); } public PartitionConfig getPartitionConfig() { return partitionManager.getPartitionConfig(partitionName); } public Partition getPartition() { return partitionManager.getPartition(partitionName); } public void start() throws Exception { log.debug("Starting mapping "+partitionName+"/"+ mappingName +"..."); Partition partition = getPartition(); MappingManager mappingManager = partition.getMappingManager(); mappingManager.startMapping(mappingName); log.debug("Mapping started."); } public void stop() throws Exception { log.debug("Stopping mapping "+partitionName+"/"+ mappingName +"..."); Partition partition = getPartition(); MappingManager mappingManager = partition.getMappingManager(); mappingManager.stopMapping(mappingName); log.debug("Mapping stopped."); } public void restart() throws Exception { log.debug("Restarting mapping "+partitionName+"/"+ mappingName +"..."); Partition partition = getPartition(); MappingManager mappingManager = partition.getMappingManager(); mappingManager.stopMapping(mappingName); mappingManager.startMapping(mappingName); log.debug("Mapping restarted."); } }