Skip to content

Commit 1f56314

Browse files
committed
Load protocols using service loader.
1 parent 9280858 commit 1f56314

File tree

1 file changed

+4
-61
lines changed

1 file changed

+4
-61
lines changed

cli/src/main/java/ch/cyberduck/cli/Terminal.java

Lines changed: 4 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -16,54 +16,25 @@
1616
*/
1717

1818
import ch.cyberduck.core.*;
19-
import ch.cyberduck.core.azure.AzureProtocol;
20-
import ch.cyberduck.core.b2.B2Protocol;
21-
import ch.cyberduck.core.box.BoxProtocol;
22-
import ch.cyberduck.core.brick.BrickProtocol;
2319
import ch.cyberduck.core.cdn.Distribution;
24-
import ch.cyberduck.core.ctera.CteraProtocol;
25-
import ch.cyberduck.core.dav.DAVProtocol;
26-
import ch.cyberduck.core.dav.DAVSSLProtocol;
27-
import ch.cyberduck.core.deepbox.DeepboxProtocol;
28-
import ch.cyberduck.core.dropbox.DropboxProtocol;
2920
import ch.cyberduck.core.editor.DefaultEditorListener;
3021
import ch.cyberduck.core.editor.Editor;
3122
import ch.cyberduck.core.editor.EditorFactory;
3223
import ch.cyberduck.core.exception.AccessDeniedException;
3324
import ch.cyberduck.core.exception.BackgroundException;
3425
import ch.cyberduck.core.exception.NotfoundException;
35-
import ch.cyberduck.core.ftp.FTPProtocol;
36-
import ch.cyberduck.core.ftp.FTPTLSProtocol;
37-
import ch.cyberduck.core.googledrive.DriveProtocol;
38-
import ch.cyberduck.core.googlestorage.GoogleStorageProtocol;
39-
import ch.cyberduck.core.hubic.HubicProtocol;
4026
import ch.cyberduck.core.io.DisabledStreamListener;
41-
import ch.cyberduck.core.irods.IRODSProtocol;
4227
import ch.cyberduck.core.local.Application;
4328
import ch.cyberduck.core.local.ApplicationFinder;
4429
import ch.cyberduck.core.local.ApplicationFinderFactory;
4530
import ch.cyberduck.core.local.TemporaryFileServiceFactory;
4631
import ch.cyberduck.core.logging.LoggerPrintStream;
47-
import ch.cyberduck.core.manta.MantaProtocol;
48-
import ch.cyberduck.core.nextcloud.NextcloudProtocol;
49-
import ch.cyberduck.core.nio.LocalProtocol;
50-
import ch.cyberduck.core.onedrive.OneDriveProtocol;
51-
import ch.cyberduck.core.onedrive.SharepointProtocol;
52-
import ch.cyberduck.core.onedrive.SharepointSiteProtocol;
53-
import ch.cyberduck.core.openstack.SwiftProtocol;
54-
import ch.cyberduck.core.owncloud.OwncloudProtocol;
5532
import ch.cyberduck.core.pool.SessionPool;
5633
import ch.cyberduck.core.preferences.Preferences;
5734
import ch.cyberduck.core.preferences.PreferencesFactory;
58-
import ch.cyberduck.core.s3.S3Protocol;
59-
import ch.cyberduck.core.sds.SDSProtocol;
60-
import ch.cyberduck.core.sftp.SFTPProtocol;
61-
import ch.cyberduck.core.smb.SMBProtocol;
62-
import ch.cyberduck.core.spectra.SpectraProtocol;
6335
import ch.cyberduck.core.ssl.CertificateStoreX509TrustManager;
6436
import ch.cyberduck.core.ssl.DefaultTrustManagerHostnameCallback;
6537
import ch.cyberduck.core.ssl.PreferencesX509KeyManager;
66-
import ch.cyberduck.core.storegate.StoregateProtocol;
6738
import ch.cyberduck.core.threading.DisabledAlertCallback;
6839
import ch.cyberduck.core.threading.DisconnectBackgroundAction;
6940
import ch.cyberduck.core.threading.SessionBackgroundAction;
@@ -103,6 +74,7 @@
10374
import java.util.EnumSet;
10475
import java.util.List;
10576
import java.util.Map;
77+
import java.util.ServiceLoader;
10678
import java.util.concurrent.CountDownLatch;
10779
import java.util.concurrent.ExecutionException;
10880

@@ -135,38 +107,9 @@ public Terminal(final TerminalPreferences defaults, final Options options, final
135107
public Terminal(final ProtocolFactory protocols, final TerminalPreferences defaults, final Options options, final CommandLine input) {
136108
this.protocols = protocols;
137109
this.preferences = defaults.withDefaults(input);
138-
this.protocols.register(
139-
new FTPProtocol(),
140-
new FTPTLSProtocol(),
141-
new SFTPProtocol(),
142-
new DAVProtocol(),
143-
new DAVSSLProtocol(),
144-
new SMBProtocol(),
145-
new SwiftProtocol(),
146-
new S3Protocol(),
147-
new GoogleStorageProtocol(),
148-
new AzureProtocol(),
149-
new IRODSProtocol(),
150-
new SpectraProtocol(),
151-
new B2Protocol(),
152-
new DriveProtocol(),
153-
new HubicProtocol(),
154-
new DropboxProtocol(),
155-
new DropboxProtocol(),
156-
new OneDriveProtocol(),
157-
new SharepointProtocol(),
158-
new SharepointSiteProtocol(),
159-
new LocalProtocol(),
160-
new SDSProtocol(),
161-
new MantaProtocol(),
162-
new StoregateProtocol(),
163-
new BrickProtocol(),
164-
new NextcloudProtocol(),
165-
new OwncloudProtocol(),
166-
new CteraProtocol(),
167-
new BoxProtocol(),
168-
new DeepboxProtocol()
169-
);
110+
for(Protocol p : ServiceLoader.load(Protocol.class)) {
111+
protocols.register(p);
112+
}
170113
this.options = options;
171114
log.info("Parsed options {} from input {}", options, input);
172115
this.input = input;

0 commit comments

Comments
 (0)