class DSpaceServiceManager implements ServiceManagerSystem {

    public <T> List<T> getServicesByType(Class<T> type) {
        checkRunning();
        if (type == null) {
            throw new IllegalArgumentException("type cannot be null");
        }
        HashSet<T> set = new HashSet<T>();
        for (ServiceManagerSystem sms : serviceManagers) {
            try {
                set.addAll( sms.getServicesByType(type) );
            } catch (Exception e) {
                // keep going
            }
        }
        // put the set into a list for easier access and sort it
        List<T> services = new ArrayList<T>(set);
        Collections.sort(services, new ServiceManagerUtils.ServiceComparator());
        return services;
    }

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

}