public synchronized Set findAvailableTransfers()

in commons-transfer/commons-transfer-api/src/main/java/org/apache/archiva/commons/transfer/defaults/DefaultTransferDiscovery.java [48:85]


    public synchronized Set<Transfer> findAvailableTransfers() {
        if (availableTransfers == null) {
            availableTransfers = new HashSet<Transfer>();
            try {
                Enumeration<URL> en = this.getClass().getClassLoader().getResources("META-INF/commons-transfer.properties");
                while (en.hasMoreElements()) {
                    URL url = en.nextElement();
                    Properties props = new Properties();

                    InputStream stream = url.openStream();
                    props.load(stream);

                    String transferProvider = props.getProperty("commons-transfer.provider");

                    if ((transferProvider != null) && (transferProvider.length() > 0)) {
                        try {
                            Class<?> transferclazz = Class.forName(transferProvider);
                            Transfer transfer = (Transfer) transferclazz.newInstance();
                            availableTransfers.add(transfer);
                        } catch (ClassNotFoundException e) {
                            // Class Not Found.
                            e.printStackTrace();
                        } catch (InstantiationException e) {
                            // Cannot create a new Transfer instance.
                            e.printStackTrace();
                        } catch (IllegalAccessException e) {
                            // Cannot create new Transfer instance due to Security settings.
                            e.printStackTrace();
                        }
                    }
                }
            } catch (IOException e) {
                // Issue finding resources.
                e.printStackTrace();
            }
        }
        return availableTransfers;
    }