aboutsummaryrefslogtreecommitdiff
path: root/src/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/org')
-rw-r--r--src/org/traccar/BaseProtocolDecoder.java9
-rw-r--r--src/org/traccar/Context.java12
-rw-r--r--src/org/traccar/database/DataManager.java3
-rw-r--r--src/org/traccar/database/IdentityManager.java24
4 files changed, 37 insertions, 11 deletions
diff --git a/src/org/traccar/BaseProtocolDecoder.java b/src/org/traccar/BaseProtocolDecoder.java
index 730c3a54c..61f11367c 100644
--- a/src/org/traccar/BaseProtocolDecoder.java
+++ b/src/org/traccar/BaseProtocolDecoder.java
@@ -16,14 +16,7 @@
package org.traccar;
import java.net.SocketAddress;
-
import org.jboss.netty.channel.Channel;
-import org.jboss.netty.channel.ChannelEvent;
-import org.jboss.netty.channel.ChannelHandlerContext;
-import static org.jboss.netty.channel.Channels.fireMessageReceived;
-import org.jboss.netty.channel.MessageEvent;
-import org.jboss.netty.handler.codec.oneone.OneToOneDecoder;
-
import org.traccar.helper.Log;
import org.traccar.model.Device;
@@ -50,7 +43,7 @@ public abstract class BaseProtocolDecoder extends ExtendedObjectDecoder {
public boolean identify(String uniqueId, Channel channel, SocketAddress remoteAddress, boolean logWarning) {
try {
- Device device = Context.getDataManager().getDeviceByUniqueId(uniqueId);
+ Device device = Context.getIdentityManager().getDeviceByUniqueId(uniqueId);
if (device != null) {
deviceId = device.getId();
Context.getConnectionManager().setActiveDevice(device.getUniqueId(), protocol, channel, remoteAddress);
diff --git a/src/org/traccar/Context.java b/src/org/traccar/Context.java
index 0a4da1172..cc7501c9a 100644
--- a/src/org/traccar/Context.java
+++ b/src/org/traccar/Context.java
@@ -19,6 +19,7 @@ import java.io.FileInputStream;
import java.util.Properties;
import org.traccar.database.ConnectionManager;
import org.traccar.database.DataManager;
+import org.traccar.database.IdentityManager;
import org.traccar.database.PermissionsManager;
import org.traccar.geocode.GisgraphyReverseGeocoder;
import org.traccar.geocode.GoogleReverseGeocoder;
@@ -40,6 +41,12 @@ public class Context {
public static boolean isLoggerEnabled() {
return loggerEnabled;
}
+
+ private static IdentityManager identityManager;
+
+ public static IdentityManager getIdentityManager() {
+ return identityManager;
+ }
private static DataManager dataManager;
@@ -90,6 +97,7 @@ public class Context {
}
dataManager = new DataManager(properties);
+ identityManager = dataManager;
connectionManager = new ConnectionManager();
if (!Boolean.valueOf(properties.getProperty("web.old"))) {
@@ -120,10 +128,10 @@ public class Context {
/**
* Initialize context for unit testing
*/
- public static void init(DataManager dataManager) {
+ public static void init(IdentityManager identityManager) {
properties = new Properties();
- Context.dataManager = dataManager;
connectionManager = new ConnectionManager();
+ Context.identityManager = identityManager;
}
}
diff --git a/src/org/traccar/database/DataManager.java b/src/org/traccar/database/DataManager.java
index dfa2ddf58..c1b769447 100644
--- a/src/org/traccar/database/DataManager.java
+++ b/src/org/traccar/database/DataManager.java
@@ -43,7 +43,7 @@ import org.traccar.model.Position;
import org.traccar.model.Server;
import org.traccar.model.User;
-public class DataManager {
+public class DataManager implements IdentityManager {
private static final long DEFAULT_REFRESH_DELAY = 300;
@@ -116,6 +116,7 @@ public class DataManager {
}
}
+ @Override
public Device getDeviceByUniqueId(String uniqueId) throws SQLException {
if ((new Date().getTime() - devicesLastUpdate > devicesRefreshDelay) || !devices.containsKey(uniqueId)) {
diff --git a/src/org/traccar/database/IdentityManager.java b/src/org/traccar/database/IdentityManager.java
new file mode 100644
index 000000000..c3861ad72
--- /dev/null
+++ b/src/org/traccar/database/IdentityManager.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.traccar.database;
+
+import org.traccar.model.Device;
+
+public interface IdentityManager {
+
+ public Device getDeviceByUniqueId(String uniqueId) throws Exception;
+
+}