@Override
 public ProfileResult registerConfiguration(
     String subsystemName,
     String categoryName,
     String configurationName,
     String tag,
     String user,
     int level)
     throws RemoteException {
   return service.registerConfiguration(
       subsystemName, categoryName, configurationName, tag, user, level);
 }
 @Override
 public ConfigProfile getActiveConfigProfile(String subsystemName, String name, String tag)
     throws RemoteException {
   return service.getActiveConfigProfile(subsystemName, name, tag);
 }
 @Override
 public ProfileResult deprecateConfigProfile(String subsystemName, String name, String tag)
     throws RemoteException {
   return service.deprecateConfigProfile(subsystemName, name, tag);
 }
 @Override
 public ProfileResult registerConfigProfile(ConfigProfile newProfile) throws RemoteException {
   return service.registerConfigProfile(newProfile);
 }
 @Override
 public ConfigProfile getNext(ConfigProfile current) throws RemoteException {
   return service.getNext(current);
 }
 @Override
 public SubsystemDescription getActiveSubsystemDescription(String name, String tag)
     throws RemoteException {
   return service.getActiveSubsystemDescription(name, tag);
 }
public class ConfigurationServerModule extends Module implements ConfigurationService {
  ConfigurationServiceImpl service = ConfigurationServiceImpl.ON_DATABASE;
  ConfigurationFacade facade = service.getFacade();

  public ConfigurationServerModule() {
    setName("main");
  }

  public ConfigurationServerModule(ConfigurationServiceImpl service) {
    setName("main");
    this.service = service;
  }

  @Override
  public DescriptionResult registerSubsystemDescription(SubsystemDescription newDescription)
      throws RemoteException {
    return service.registerSubsystemDescription(newDescription);
  }

  @Override
  public DescriptionResult deprecateSubsystemDescription(String subsystemName, String tag)
      throws RemoteException {
    return service.deprecateSubsystemDescription(subsystemName, tag);
  }

  @Override
  public SubsystemDescription getActiveSubsystemDescription(String name, String tag)
      throws RemoteException {
    return service.getActiveSubsystemDescription(name, tag);
  }

  @Override
  public ProfileResult registerConfigProfile(ConfigProfile newProfile) throws RemoteException {
    return service.registerConfigProfile(newProfile);
  }

  @Override
  public ProfileResult registerConfiguration(
      String subsystemName,
      String categoryName,
      String configurationName,
      String tag,
      String user,
      int level)
      throws RemoteException {
    return service.registerConfiguration(
        subsystemName, categoryName, configurationName, tag, user, level);
  }

  @Override
  public ProfileResult deprecateConfigProfile(String subsystemName, String name, String tag)
      throws RemoteException {
    return service.deprecateConfigProfile(subsystemName, name, tag);
  }

  @Override
  public ConfigProfile getActiveConfigProfile(String subsystemName, String name, String tag)
      throws RemoteException {
    return service.getActiveConfigProfile(subsystemName, name, tag);
  }

  @Override
  public ParameterConfiguration modifyParmConf(ParameterConfiguration engineeringModeParm)
      throws RemoteException {
    return service.modifyParmConf(engineeringModeParm);
  }

  @Override
  public ConfigProfile getConfigRunningAt(String subsystemName, long date) throws RemoteException {
    return service.getConfigRunningAt(subsystemName, date);
  }

  @Override
  public String getActiveValueAt(String subsystemName, String parameterPath, long date)
      throws RemoteException {
    return service.getActiveValueAt(subsystemName, parameterPath, date);
  }

  @Override
  public ConfigProfile getConfigValidAt(String subsystemName, String name, String tag, long date)
      throws RemoteException {
    return service.getConfigValidAt(subsystemName, name, tag, date);
  }

  @Override
  public String getValueValidAt(
      String subsystemName, String profileName, String profileTag, String parameterPath, long date)
      throws RemoteException {
    return service.getValueValidAt(subsystemName, profileName, profileTag, parameterPath, date);
  }

  @Override
  public ConfigProfile getPrevious(ConfigProfile current) throws RemoteException {
    return service.getPrevious(current);
  }

  @Override
  public ConfigProfile getNext(ConfigProfile current) throws RemoteException {
    return service.getNext(current);
  }

  @Override
  public SubsystemDescription getPrevious(SubsystemDescription current) throws RemoteException {
    return service.getPrevious(current);
  }

  @Override
  public void createPreparedConfiguration(
      String subsystemName, String configName, String tag, String user) throws RemoteException {
    service.createPreparedConfiguration(subsystemName, configName, tag, user);
  }

  @Override
  public void registerMachineConfiguration(MachineConfiguration machineConfiguration)
      throws RemoteException {
    service.registerMachineConfiguration(machineConfiguration);
  }

  @Override
  public MachineConfiguration getMachineConfiguration(String macAddress) throws RemoteException {
    return service.getMachineConfiguration(macAddress);
  }

  @Override
  public List<?> simpleHQLRequest(String hqlString) throws RemoteException {
    return service.simpleHQLRequest(hqlString);
  }

  // TODO : register run events by listening to Status bus!

}
 @Override
 public String getActiveValueAt(String subsystemName, String parameterPath, long date)
     throws RemoteException {
   return service.getActiveValueAt(subsystemName, parameterPath, date);
 }
 @Override
 public MachineConfiguration getMachineConfiguration(String macAddress) throws RemoteException {
   return service.getMachineConfiguration(macAddress);
 }
 @Override
 public List<?> simpleHQLRequest(String hqlString) throws RemoteException {
   return service.simpleHQLRequest(hqlString);
 }
 @Override
 public void registerMachineConfiguration(MachineConfiguration machineConfiguration)
     throws RemoteException {
   service.registerMachineConfiguration(machineConfiguration);
 }
 @Override
 public void createPreparedConfiguration(
     String subsystemName, String configName, String tag, String user) throws RemoteException {
   service.createPreparedConfiguration(subsystemName, configName, tag, user);
 }
 @Override
 public SubsystemDescription getPrevious(SubsystemDescription current) throws RemoteException {
   return service.getPrevious(current);
 }
 @Override
 public ParameterConfiguration modifyParmConf(ParameterConfiguration engineeringModeParm)
     throws RemoteException {
   return service.modifyParmConf(engineeringModeParm);
 }
 @Override
 public DescriptionResult registerSubsystemDescription(SubsystemDescription newDescription)
     throws RemoteException {
   return service.registerSubsystemDescription(newDescription);
 }
 @Override
 public ConfigProfile getConfigRunningAt(String subsystemName, long date) throws RemoteException {
   return service.getConfigRunningAt(subsystemName, date);
 }
 @Override
 public DescriptionResult deprecateSubsystemDescription(String subsystemName, String tag)
     throws RemoteException {
   return service.deprecateSubsystemDescription(subsystemName, tag);
 }
 @Override
 public ConfigProfile getConfigValidAt(String subsystemName, String name, String tag, long date)
     throws RemoteException {
   return service.getConfigValidAt(subsystemName, name, tag, date);
 }
 @Override
 public String getValueValidAt(
     String subsystemName, String profileName, String profileTag, String parameterPath, long date)
     throws RemoteException {
   return service.getValueValidAt(subsystemName, profileName, profileTag, parameterPath, date);
 }