diff options
-rw-r--r-- | default.cfg | 1 | ||||
-rw-r--r-- | pom.xml | 5 | ||||
-rw-r--r-- | src/org/traccar/BasePipelineFactory.java | 2 | ||||
-rw-r--r-- | src/org/traccar/BaseProtocolDecoder.java | 2 | ||||
-rw-r--r-- | src/org/traccar/ServerManager.java | 7 | ||||
-rw-r--r-- | src/org/traccar/TrackerEventHandler.java | 2 | ||||
-rw-r--r-- | src/org/traccar/database/DataManager.java (renamed from src/org/traccar/model/DatabaseDataManager.java) | 152 | ||||
-rw-r--r-- | src/org/traccar/database/NamedParameterStatement.java (renamed from src/org/traccar/helper/NamedParameterStatement.java) | 117 | ||||
-rw-r--r-- | src/org/traccar/helper/AdvancedConnection.java | 61 | ||||
-rw-r--r-- | src/org/traccar/http/WebServer.java | 48 | ||||
-rw-r--r-- | src/org/traccar/model/DataManager.java | 37 | ||||
-rw-r--r-- | src/org/traccar/protocol/ApelProtocolDecoder.java | 10 | ||||
-rw-r--r-- | src/org/traccar/protocol/ProgressProtocolDecoder.java | 20 | ||||
-rw-r--r-- | test/org/traccar/helper/TestDataManager.java | 18 |
14 files changed, 135 insertions, 347 deletions
diff --git a/default.cfg b/default.cfg index a684f7631..4983bac16 100644 --- a/default.cfg +++ b/default.cfg @@ -7,7 +7,6 @@ <!-- Global configuration --> <!--<entry key='database.driverFile'>/home/user/Documents/traccar/hsqldb.jar</entry>--> <entry key='database.driver'>org.h2.Driver</entry> - <entry key='database.dataSource'>org.h2.jdbcx.JdbcDataSource</entry> <entry key='database.url'>jdbc:h2:/home/user/Documents/traccar/target/database</entry> <entry key='database.user'>sa</entry> <entry key='database.password'></entry> @@ -35,6 +35,11 @@ <version>9.3-1102-jdbc4</version> </dependency> <dependency> + <groupId>com.mchange</groupId> + <artifactId>c3p0</artifactId> + <version>0.9.2.1</version> + </dependency> + <dependency> <groupId>io.netty</groupId> <artifactId>netty</artifactId> <version>3.9.2.Final</version> diff --git a/src/org/traccar/BasePipelineFactory.java b/src/org/traccar/BasePipelineFactory.java index e1f1e10e5..83207b91f 100644 --- a/src/org/traccar/BasePipelineFactory.java +++ b/src/org/traccar/BasePipelineFactory.java @@ -23,7 +23,7 @@ import org.jboss.netty.handler.logging.LoggingHandler; import org.jboss.netty.handler.timeout.IdleStateHandler; import org.traccar.geocode.ReverseGeocoder; import org.traccar.helper.Log; -import org.traccar.model.DataManager; +import org.traccar.database.DataManager; /** * Base pipeline factory diff --git a/src/org/traccar/BaseProtocolDecoder.java b/src/org/traccar/BaseProtocolDecoder.java index 447bf364b..e23367278 100644 --- a/src/org/traccar/BaseProtocolDecoder.java +++ b/src/org/traccar/BaseProtocolDecoder.java @@ -22,7 +22,7 @@ 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.model.DataManager; +import org.traccar.database.DataManager; /** * Base class for protocol decoders diff --git a/src/org/traccar/ServerManager.java b/src/org/traccar/ServerManager.java index 7c085d0be..2d3788720 100644 --- a/src/org/traccar/ServerManager.java +++ b/src/org/traccar/ServerManager.java @@ -40,8 +40,7 @@ import org.traccar.geocode.NominatimReverseGeocoder; import org.traccar.geocode.ReverseGeocoder; import org.traccar.helper.Log; import org.traccar.http.WebServer; -import org.traccar.model.DataManager; -import org.traccar.model.DatabaseDataManager; +import org.traccar.database.DataManager; import org.traccar.protocol.*; /** @@ -99,7 +98,7 @@ public class ServerManager { Log.setupLogger(properties); } - dataManager = new DatabaseDataManager(properties); + dataManager = new DataManager(properties); initGeocoder(properties); @@ -178,7 +177,7 @@ public class ServerManager { // Initialize web server if (Boolean.valueOf(properties.getProperty("http.enable"))) { - webServer = new WebServer(properties); + webServer = new WebServer(properties, dataManager.getDataSource()); } } diff --git a/src/org/traccar/TrackerEventHandler.java b/src/org/traccar/TrackerEventHandler.java index 5387074dc..878b3ba70 100644 --- a/src/org/traccar/TrackerEventHandler.java +++ b/src/org/traccar/TrackerEventHandler.java @@ -20,7 +20,7 @@ import org.jboss.netty.channel.*; import org.jboss.netty.handler.timeout.IdleStateAwareChannelHandler; import org.jboss.netty.handler.timeout.IdleStateEvent; import org.traccar.helper.Log; -import org.traccar.model.DataManager; +import org.traccar.database.DataManager; import org.traccar.model.Position; /** diff --git a/src/org/traccar/model/DatabaseDataManager.java b/src/org/traccar/database/DataManager.java index f8d8806a7..27f4cb5c2 100644 --- a/src/org/traccar/model/DatabaseDataManager.java +++ b/src/org/traccar/database/DataManager.java @@ -13,30 +13,40 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.traccar.model; +package org.traccar.database; +import com.mchange.v2.c3p0.ComboPooledDataSource; import java.io.File; import java.io.StringReader; import java.net.URL; import java.net.URLClassLoader; import java.sql.*; import java.util.*; +import javax.sql.DataSource; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; -import org.traccar.helper.AdvancedConnection; import org.traccar.helper.DriverDelegate; import org.traccar.helper.Log; -import org.traccar.helper.NamedParameterStatement; +import org.traccar.model.Device; +import org.traccar.model.Position; import org.xml.sax.InputSource; /** * Database abstraction class */ -public class DatabaseDataManager implements DataManager { +public class DataManager { - public DatabaseDataManager(Properties properties) throws Exception { - initDatabase(properties); + public DataManager(Properties properties) throws Exception { + if (properties != null) { + initDatabase(properties); + } + } + + private DataSource dataSource; + + public DataSource getDataSource() { + return dataSource; } /** @@ -65,45 +75,57 @@ public class DatabaseDataManager implements DataManager { Class.forName(driver); } } - - // Connect database - String url = properties.getProperty("database.url"); - String user = properties.getProperty("database.user"); - String password = properties.getProperty("database.password"); - AdvancedConnection connection = new AdvancedConnection(url, user, password); + + // Initialize data source + ComboPooledDataSource ds = new ComboPooledDataSource(); + ds.setDriverClass(properties.getProperty("database.driver")); + ds.setJdbcUrl(properties.getProperty("database.url")); + ds.setUser(properties.getProperty("database.user")); + ds.setPassword(properties.getProperty("database.password")); + ds.setIdleConnectionTestPeriod(600); + ds.setTestConnectionOnCheckin(true); + dataSource = ds; // Load statements from configuration String query; query = properties.getProperty("database.selectDevice"); if (query != null) { - queryGetDevices = new NamedParameterStatement(connection, query); + queryGetDevices = new NamedParameterStatement(query); } query = properties.getProperty("database.insertPosition"); if (query != null) { - queryAddPosition = new NamedParameterStatement(connection, query); + queryAddPosition = new NamedParameterStatement(query); } query = properties.getProperty("database.updateLatestPosition"); if (query != null) { - queryUpdateLatestPosition = new NamedParameterStatement(connection, query); + queryUpdateLatestPosition = new NamedParameterStatement(query); } } - @Override public synchronized List<Device> getDevices() throws SQLException { List<Device> deviceList = new LinkedList<Device>(); if (queryGetDevices != null) { - queryGetDevices.prepare(); - ResultSet result = queryGetDevices.executeQuery(); - while (result.next()) { - Device device = new Device(); - device.setId(result.getLong("id")); - device.setImei(result.getString("imei")); - deviceList.add(device); + Connection connection = dataSource.getConnection(); + try { + PreparedStatement statement = queryGetDevices.prepare(connection); + try { + ResultSet result = statement.executeQuery(); + while (result.next()) { + Device device = new Device(); + device.setId(result.getLong("id")); + device.setImei(result.getString("imei")); + deviceList.add(device); + } + } finally { + statement.close(); + } + } finally { + connection.close(); } } @@ -115,7 +137,6 @@ public class DatabaseDataManager implements DataManager { */ private Map<String, Device> devices; - @Override public Device getDeviceByImei(String imei) throws SQLException { if (devices == null || !devices.containsKey(imei)) { @@ -128,49 +149,61 @@ public class DatabaseDataManager implements DataManager { return devices.get(imei); } - @Override public synchronized Long addPosition(Position position) throws SQLException { if (queryAddPosition != null) { - queryAddPosition.prepare(Statement.RETURN_GENERATED_KEYS); - - queryAddPosition = assignVariables(queryAddPosition, position); - - queryAddPosition.executeUpdate(); - - ResultSet result = queryAddPosition.getGeneratedKeys(); - if (result != null && result.next()) { - return result.getLong(1); + Connection connection = dataSource.getConnection(); + try { + PreparedStatement statement = queryAddPosition.prepare(connection, Statement.RETURN_GENERATED_KEYS); + try { + assignVariables(queryAddPosition, statement, position); + statement.executeUpdate(); + + ResultSet result = statement.getGeneratedKeys(); + if (result != null && result.next()) { + return result.getLong(1); + } + } finally { + statement.close(); + } + } finally { + connection.close(); } } return null; } - @Override public void updateLatestPosition(Position position, Long positionId) throws SQLException { if (queryUpdateLatestPosition != null) { - queryUpdateLatestPosition.prepare(); - - queryUpdateLatestPosition = assignVariables(queryUpdateLatestPosition, position); - queryUpdateLatestPosition.setLong("id", positionId); - - queryUpdateLatestPosition.executeUpdate(); + Connection connection = dataSource.getConnection(); + try { + PreparedStatement statement = queryUpdateLatestPosition.prepare(connection); + try { + assignVariables(queryUpdateLatestPosition, statement, position); + queryUpdateLatestPosition.setLong(statement, "id", positionId); + statement.executeUpdate(); + } finally { + statement.close(); + } + } finally { + connection.close(); + } } } - private NamedParameterStatement assignVariables(NamedParameterStatement preparedStatement, Position position) throws SQLException { + private void assignVariables(NamedParameterStatement nps, PreparedStatement ps, Position position) throws SQLException { - preparedStatement.setLong("device_id", position.getDeviceId()); - preparedStatement.setTimestamp("time", position.getTime()); - preparedStatement.setBoolean("valid", position.getValid()); - preparedStatement.setDouble("altitude", position.getAltitude()); - preparedStatement.setDouble("latitude", position.getLatitude()); - preparedStatement.setDouble("longitude", position.getLongitude()); - preparedStatement.setDouble("speed", position.getSpeed()); - preparedStatement.setDouble("course", position.getCourse()); - preparedStatement.setString("address", position.getAddress()); - preparedStatement.setString("extended_info", position.getExtendedInfo()); + nps.setLong(ps, "device_id", position.getDeviceId()); + nps.setTimestamp(ps, "time", position.getTime()); + nps.setBoolean(ps, "valid", position.getValid()); + nps.setDouble(ps, "altitude", position.getAltitude()); + nps.setDouble(ps, "latitude", position.getLatitude()); + nps.setDouble(ps, "longitude", position.getLongitude()); + nps.setDouble(ps, "speed", position.getSpeed()); + nps.setDouble(ps, "course", position.getCourse()); + nps.setString(ps, "address", position.getAddress()); + nps.setString(ps, "extended_info", position.getExtendedInfo()); // DELME: Temporary compatibility support XPath xpath = XPathFactory.newInstance().newXPath(); @@ -178,25 +211,22 @@ public class DatabaseDataManager implements DataManager { InputSource source = new InputSource(new StringReader(position.getExtendedInfo())); String index = xpath.evaluate("/info/index", source); if (!index.isEmpty()) { - preparedStatement.setLong("id", Long.valueOf(index)); + nps.setLong(ps, "id", Long.valueOf(index)); } else { - preparedStatement.setLong("id", null); + nps.setLong(ps, "id", null); } source = new InputSource(new StringReader(position.getExtendedInfo())); String power = xpath.evaluate("/info/power", source); if (!power.isEmpty()) { - preparedStatement.setDouble("power", Double.valueOf(power)); + nps.setDouble(ps, "power", Double.valueOf(power)); } else { - preparedStatement.setLong("power", null); + nps.setLong(ps, "power", null); } } catch (XPathExpressionException e) { Log.warning("Error in XML: " + position.getExtendedInfo(), e); - preparedStatement.setLong("id", null); - preparedStatement.setLong("power", null); + nps.setLong(ps, "id", null); + nps.setLong(ps, "power", null); } - - return preparedStatement; - } } diff --git a/src/org/traccar/helper/NamedParameterStatement.java b/src/org/traccar/database/NamedParameterStatement.java index f66d8c4dd..850462b2c 100644 --- a/src/org/traccar/helper/NamedParameterStatement.java +++ b/src/org/traccar/database/NamedParameterStatement.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.traccar.helper; +package org.traccar.database; import java.sql.*; import java.util.*; @@ -21,43 +21,15 @@ import java.util.Date; public class NamedParameterStatement { - /** - * Native statement - */ - private PreparedStatement statement; - - /** - * Index mapping - */ private final Map<String, List<Integer>> indexMap; - /** - * Query string - */ private final String parsedQuery; - /** - * Database connection - */ - private final AdvancedConnection connection; - - private int autoGeneratedKeys; - - private boolean failed; - - /** - * Initialize statement - */ - public NamedParameterStatement(AdvancedConnection connection, String query) { - + public NamedParameterStatement(String query) { indexMap = new HashMap<String, List<Integer>>(); parsedQuery = parse(query, indexMap); - this.connection = connection; } - /** - * Parse query - */ static String parse(String query, Map<String, List<Integer>> paramMap) { int length = query.length(); @@ -111,80 +83,15 @@ public class NamedParameterStatement { return parsedQuery.toString(); } - public void reset(boolean resetConnection) throws SQLException { - if (statement != null) { - statement.close(); - statement = null; - } - if (resetConnection) { - connection.reset(); - } - statement = connection.getInstance().prepareStatement(parsedQuery, autoGeneratedKeys); - failed = false; - } - - public void prepare(int autoGeneratedKeys) throws SQLException { - this.autoGeneratedKeys = autoGeneratedKeys; - try { - if (statement == null) { - reset(false); - } else if (failed || statement.getWarnings() != null) { - reset(true); - } - } catch (SQLException firstError) { - try { - reset(true); - } catch (SQLException secondError) { - Log.warning(secondError); - failed = true; - throw secondError; - } - } - } - - public void prepare() throws SQLException { - prepare(Statement.NO_GENERATED_KEYS); - } - - /** - * Execute query with result - */ - public ResultSet executeQuery() throws SQLException { - try { - return statement.executeQuery(); - } catch (SQLException error) { - failed = true; - throw error; - } - } - - /** - * Executes query without result - */ - public int executeUpdate() throws SQLException { - try { - return statement.executeUpdate(); - } catch (SQLException error) { - failed = true; - throw error; - } - } - - /** - * Return generated keys - */ - public ResultSet getGeneratedKeys() throws SQLException { - return statement.getGeneratedKeys(); + public PreparedStatement prepare(Connection connection, int autoGeneratedKeys) throws SQLException { + return connection.prepareStatement(parsedQuery, autoGeneratedKeys); } - /** - * Immediately closes the statement - */ - public void close() throws SQLException { - statement.close(); + public PreparedStatement prepare(Connection connection) throws SQLException { + return prepare(connection, Statement.NO_GENERATED_KEYS); } - public void setInt(String name, Integer value) throws SQLException { + public void setInt(PreparedStatement statement, String name, Integer value) throws SQLException { List<Integer> indexList = indexMap.get(name); if (indexList != null) for (Integer index: indexList) { @@ -196,7 +103,7 @@ public class NamedParameterStatement { } } - public void setLong(String name, Long value) throws SQLException { + public void setLong(PreparedStatement statement, String name, Long value) throws SQLException { List<Integer> indexList = indexMap.get(name); if (indexList != null) for (Integer index: indexList) { @@ -208,7 +115,7 @@ public class NamedParameterStatement { } } - public void setBoolean(String name, Boolean value) throws SQLException { + public void setBoolean(PreparedStatement statement, String name, Boolean value) throws SQLException { List<Integer> indexList = indexMap.get(name); if (indexList != null) for (Integer index: indexList) { @@ -220,7 +127,7 @@ public class NamedParameterStatement { } } - public void setDouble(String name, Double value) throws SQLException { + public void setDouble(PreparedStatement statement, String name, Double value) throws SQLException { List<Integer> indexList = indexMap.get(name); if (indexList != null) for (Integer index: indexList) { @@ -232,7 +139,7 @@ public class NamedParameterStatement { } } - public void setTimestamp(String name, Date value) throws SQLException { + public void setTimestamp(PreparedStatement statement, String name, Date value) throws SQLException { List<Integer> indexList = indexMap.get(name); if (indexList != null) for (Integer index: indexList) { @@ -244,7 +151,7 @@ public class NamedParameterStatement { } } - public void setString(String name, String value) throws SQLException { + public void setString(PreparedStatement statement, String name, String value) throws SQLException { List<Integer> indexList = indexMap.get(name); if (indexList != null) for (Integer index: indexList) { diff --git a/src/org/traccar/helper/AdvancedConnection.java b/src/org/traccar/helper/AdvancedConnection.java deleted file mode 100644 index c0126974b..000000000 --- a/src/org/traccar/helper/AdvancedConnection.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2012 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.helper; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.SQLException; - -public class AdvancedConnection { - - /** - * Database connection - */ - private Connection connection; - - /** - * Connection attributes - */ - private String url; - private String user; - private String password; - - public AdvancedConnection(String url, String user, String password) { - this.url = url; - this.user = user; - this.password = password; - } - - public final void reset() throws SQLException { - if (connection != null) { - connection.close(); - connection = null; - } - if (user != null && password != null) { - connection = DriverManager.getConnection(url, user, password); - } else { - connection = DriverManager.getConnection(url); - } - } - - public Connection getInstance() throws SQLException { - if (connection == null) { - reset(); - } - return connection; - } - -} diff --git a/src/org/traccar/http/WebServer.java b/src/org/traccar/http/WebServer.java index 2745cd7b8..9a7cb9e4e 100644 --- a/src/org/traccar/http/WebServer.java +++ b/src/org/traccar/http/WebServer.java @@ -1,5 +1,5 @@ /* - * Copyright 2012 Anton Tananaev (anton.tananaev@gmail.com) + * Copyright 2012 - 2014 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. @@ -15,10 +15,7 @@ */ package org.traccar.http; -import java.io.File; import java.net.InetSocketAddress; -import java.net.URL; -import java.net.URLClassLoader; import java.util.Properties; import javax.naming.Context; import javax.naming.InitialContext; @@ -34,41 +31,7 @@ public class WebServer { private Server server; - private void initDataSource(Properties properties) { - try { - - Context context = new InitialContext(); - - String dataSourceClass = properties.getProperty("database.dataSource"); - if (dataSourceClass != null) { - - Class clazz; - - String driverFile = properties.getProperty("database.driverFile"); - if (driverFile != null) { - URL url = new URL("jar:file:" + new File(driverFile).getAbsolutePath() + "!/"); - URLClassLoader cl = new URLClassLoader(new URL[] { url }); - clazz = Class.forName(dataSourceClass, true, cl); - } else { - clazz = Class.forName(dataSourceClass); - } - - if (clazz != null) { - DataSource ds = (DataSource) clazz.newInstance(); - clazz.getMethod("setURL", String.class).invoke(ds, properties.getProperty("database.url")); - clazz.getMethod("setUser", String.class).invoke(ds, properties.getProperty("database.user")); - clazz.getMethod("setPassword", String.class).invoke(ds, properties.getProperty("database.password")); - - context.bind("java:/DefaultDS", ds); - } - } - - } catch (Exception error) { - Log.warning(error); - } - } - - public WebServer(Properties properties) { + public WebServer(Properties properties, DataSource dataSource) { String address = properties.getProperty("http.address"); Integer port = Integer.valueOf(properties.getProperty("http.port", "8082")); if (address == null) { @@ -77,7 +40,12 @@ public class WebServer { server = new Server(new InetSocketAddress(address, port)); } - initDataSource(properties); + try { + Context context = new InitialContext(); + context.bind("java:/DefaultDS", dataSource); + } catch (Exception error) { + Log.warning(error); + } WebAppContext webapp = new WebAppContext(); webapp.setContextPath("/"); diff --git a/src/org/traccar/model/DataManager.java b/src/org/traccar/model/DataManager.java deleted file mode 100644 index f0bfdb50d..000000000 --- a/src/org/traccar/model/DataManager.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2012 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.model; - -import java.util.List; - -/** - * Data manager - */ -public interface DataManager { - - /** - * Manage devices - */ - public List<Device> getDevices() throws Exception; - public Device getDeviceByImei(String imei) throws Exception; - - /** - * Manage positions - */ - public Long addPosition(Position position) throws Exception; - public void updateLatestPosition(Position position, Long positionId) throws Exception; - -} diff --git a/src/org/traccar/protocol/ApelProtocolDecoder.java b/src/org/traccar/protocol/ApelProtocolDecoder.java index 9ffc473c7..54b112b59 100644 --- a/src/org/traccar/protocol/ApelProtocolDecoder.java +++ b/src/org/traccar/protocol/ApelProtocolDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright 2013 Anton Tananaev (anton.tananaev@gmail.com) + * Copyright 2013 - 2014 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. @@ -17,11 +17,9 @@ package org.traccar.protocol; import java.nio.ByteOrder; import java.nio.charset.Charset; -import java.sql.ResultSet; import java.util.Calendar; import java.util.LinkedList; import java.util.List; -import java.util.Properties; import java.util.TimeZone; import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffers; @@ -29,10 +27,8 @@ import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.ChannelHandlerContext; import org.traccar.BaseProtocolDecoder; import org.traccar.ServerManager; -import org.traccar.helper.AdvancedConnection; import org.traccar.helper.Crc; import org.traccar.helper.Log; -import org.traccar.helper.NamedParameterStatement; import org.traccar.model.ExtendedInfoFormatter; import org.traccar.model.Position; @@ -77,7 +73,7 @@ public class ApelProtocolDecoder extends BaseProtocolDecoder { private static final String HEX_CHARS = "0123456789ABCDEF"; private void loadLastIndex() { - try { + /*try { Properties p = getServerManager().getProperties(); if (p.contains("database.selectLastIndex")) { AdvancedConnection connection = new AdvancedConnection( @@ -91,7 +87,7 @@ public class ApelProtocolDecoder extends BaseProtocolDecoder { } } } catch(Exception error) { - } + }*/ } private void sendSimpleMessage(Channel channel, short type) { diff --git a/src/org/traccar/protocol/ProgressProtocolDecoder.java b/src/org/traccar/protocol/ProgressProtocolDecoder.java index c4a4d5e6f..85680c039 100644 --- a/src/org/traccar/protocol/ProgressProtocolDecoder.java +++ b/src/org/traccar/protocol/ProgressProtocolDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright 2012 - 2013 Anton Tananaev (anton.tananaev@gmail.com) + * Copyright 2012 - 2014 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. @@ -17,11 +17,9 @@ package org.traccar.protocol; import java.nio.ByteOrder; import java.nio.charset.Charset; -import java.sql.ResultSet; import java.util.Calendar; import java.util.LinkedList; import java.util.List; -import java.util.Properties; import java.util.TimeZone; import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffers; @@ -29,9 +27,7 @@ import org.jboss.netty.channel.Channel; import org.jboss.netty.channel.ChannelHandlerContext; import org.traccar.BaseProtocolDecoder; import org.traccar.ServerManager; -import org.traccar.helper.AdvancedConnection; import org.traccar.helper.Log; -import org.traccar.helper.NamedParameterStatement; import org.traccar.model.ExtendedInfoFormatter; import org.traccar.model.Position; @@ -63,11 +59,8 @@ public class ProgressProtocolDecoder extends BaseProtocolDecoder { private static final String HEX_CHARS = "0123456789ABCDEF"; - /** - * Hack to load last index from database - */ private void loadLastIndex() { - try { + /*try { Properties p = getServerManager().getProperties(); if (p.contains("database.selectLastIndex")) { AdvancedConnection connection = new AdvancedConnection( @@ -81,7 +74,7 @@ public class ProgressProtocolDecoder extends BaseProtocolDecoder { } } } catch(Exception error) { - } + }*/ } /** @@ -100,13 +93,8 @@ public class ProgressProtocolDecoder extends BaseProtocolDecoder { } } - /** - * Decode message - */ @Override - protected Object decode( - ChannelHandlerContext ctx, Channel channel, Object msg) - throws Exception { + protected Object decode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { ChannelBuffer buf = (ChannelBuffer) msg; int type = buf.readUnsignedShort(); diff --git a/test/org/traccar/helper/TestDataManager.java b/test/org/traccar/helper/TestDataManager.java index 9e8147b05..a54c1f7a3 100644 --- a/test/org/traccar/helper/TestDataManager.java +++ b/test/org/traccar/helper/TestDataManager.java @@ -1,16 +1,16 @@ package org.traccar.helper; import java.util.List; -import org.traccar.model.DataManager; +import org.traccar.database.DataManager; import org.traccar.model.Device; import org.traccar.model.Position; -public class TestDataManager implements DataManager { +public class TestDataManager extends DataManager { - @Override - public List getDevices() { - return null; + public TestDataManager() throws Exception { + super(null); } + @Override public Device getDeviceByImei(String imei) { Device device = new Device(); @@ -18,11 +18,5 @@ public class TestDataManager implements DataManager { device.setImei("123456789012345"); return device; } - @Override - public Long addPosition(Position position) { - return null; - } - @Override - public void updateLatestPosition(Position position, Long positionId) throws Exception { - } + } |