aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/ServerManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/traccar/ServerManager.java')
-rw-r--r--src/org/traccar/ServerManager.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/org/traccar/ServerManager.java b/src/org/traccar/ServerManager.java
index 953428b8f..9b1e2650d 100644
--- a/src/org/traccar/ServerManager.java
+++ b/src/org/traccar/ServerManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012 - 2016 Anton Tananaev (anton@traccar.org)
+ * Copyright 2012 - 2017 Anton Tananaev (anton@traccar.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,12 +23,15 @@ import java.nio.charset.StandardCharsets;
import java.util.Enumeration;
import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
public class ServerManager {
private final List<TrackerServer> serverList = new LinkedList<>();
+ private final Map<String, BaseProtocol> protocolList = new ConcurrentHashMap<>();
public ServerManager() throws Exception {
@@ -64,10 +67,15 @@ public class ServerManager {
if (BaseProtocol.class.isAssignableFrom(protocolClass)) {
BaseProtocol baseProtocol = (BaseProtocol) protocolClass.newInstance();
initProtocolServer(baseProtocol);
+ protocolList.put(baseProtocol.getName(), baseProtocol);
}
}
}
+ public BaseProtocol getProtocol(String name) {
+ return protocolList.get(name);
+ }
+
public void start() {
for (TrackerServer server: serverList) {
server.start();