class DSpaceServiceManager implements ServiceManagerSystem {

    public <T> T getServiceByName(String name, Class<T> type) {
        checkRunning();
        if (type == null) {
            throw new IllegalArgumentException("type cannot be null");
        }
        T service = null;
        for (ServiceManagerSystem sms : serviceManagers) {
            try {
                service = sms.getServiceByName(name, type);
                if (service != null) {
                    break;
                }
            } catch (Exception e) {
                // keep going
            }
        }
        // need to check the service mixin manager if not found
        if (service == null 
                && name != null) {
            for (ServiceManagerSystem sms : serviceManagers) {
                if (service == null) {
                    service = sms.getServiceByName(name, type);
                }
            }
        }
        return service;
    }

    public  DSpaceServiceManager(DSpaceConfigurationService configurationService);
    protected  DSpaceServiceManager(DSpaceConfigurationService configurationService, String... springXmlConfigFiles);

}