From aee258bc9ad21b6900f7e0ea92ff1c817ab222e7 Mon Sep 17 00:00:00 2001 From: Reto Breitenmoser Date: Mon, 5 Jan 2015 22:25:57 +0100 Subject: [PATCH 1/9] [Bugfix] swapped input parameters for match method --- .../runtime/query/inmemory/NameSelector.java | 2 +- .../runtime/query/inmemory/InMemoryQueryTest.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/li.strolch.agent/src/main/java/li/strolch/runtime/query/inmemory/NameSelector.java b/li.strolch.agent/src/main/java/li/strolch/runtime/query/inmemory/NameSelector.java index 044600ae6..0d5526580 100644 --- a/li.strolch.agent/src/main/java/li/strolch/runtime/query/inmemory/NameSelector.java +++ b/li.strolch.agent/src/main/java/li/strolch/runtime/query/inmemory/NameSelector.java @@ -35,7 +35,7 @@ public class NameSelector implements Selector { @Override public boolean select(T element) { String name = element.getName(); - return this.matchMode.matches(this.name, name); + return this.matchMode.matches(name, this.name); } /** diff --git a/li.strolch.agent/src/test/java/li/strolch/runtime/query/inmemory/InMemoryQueryTest.java b/li.strolch.agent/src/test/java/li/strolch/runtime/query/inmemory/InMemoryQueryTest.java index 07d0d9904..238d9a3a5 100644 --- a/li.strolch.agent/src/test/java/li/strolch/runtime/query/inmemory/InMemoryQueryTest.java +++ b/li.strolch.agent/src/test/java/li/strolch/runtime/query/inmemory/InMemoryQueryTest.java @@ -189,6 +189,21 @@ public class InMemoryQueryTest { List result = dao.doQuery(ballQuery, new NoStrategyResourceVisitor()); assertEquals(1, result.size()); } + + @Test + public void shouldQueryByName() { + + List resources = getResources(); + resources.add(getBallResource()); + InMemoryResourceDao dao = new InMemoryResourceDao(); + dao.saveAll(resources); + + ResourceQuery ballQuery = new ResourceQuery(new StrolchTypeNavigation("Ball")); + ballQuery.with(new NameSelection("ball ", StringMatchMode.CONTAINS_CASE_INSENSITIVE)); + + List result = dao.doQuery(ballQuery, new NoStrategyResourceVisitor()); + assertEquals(1, result.size()); + } private Resource getBallResource() { Resource res1 = new Resource("childrensBall", "Ball 1", "Ball"); From 4c631ad07f2298b992b3d6dd43da1cd8dc85c194 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Fri, 9 Jan 2015 00:28:09 +0100 Subject: [PATCH 2/9] [Minor] removed logging of controller names, duplicated in DepAnalyzer --- .../java/li/strolch/agent/impl/ComponentContainerImpl.java | 2 -- .../li/strolch/agent/impl/ComponentDependencyAnalyzer.java | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/li.strolch.agent/src/main/java/li/strolch/agent/impl/ComponentContainerImpl.java b/li.strolch.agent/src/main/java/li/strolch/agent/impl/ComponentContainerImpl.java index a2605efd7..0ae5554cd 100644 --- a/li.strolch.agent/src/main/java/li/strolch/agent/impl/ComponentContainerImpl.java +++ b/li.strolch.agent/src/main/java/li/strolch/agent/impl/ComponentContainerImpl.java @@ -135,8 +135,6 @@ public class ComponentContainerImpl implements ComponentContainer { componentMap.put(apiClass, strolchComponent); controllerMap.put(componentName, new ComponentController(strolchComponent)); - String msg = "Initialized component {0} with API {1} and impl {2}."; //$NON-NLS-1$ - logger.info(MessageFormat.format(msg, componentName, api, impl)); } catch (NoSuchMethodException e) { diff --git a/li.strolch.agent/src/main/java/li/strolch/agent/impl/ComponentDependencyAnalyzer.java b/li.strolch.agent/src/main/java/li/strolch/agent/impl/ComponentDependencyAnalyzer.java index 45eaa8ef5..c312f7d35 100644 --- a/li.strolch.agent/src/main/java/li/strolch/agent/impl/ComponentDependencyAnalyzer.java +++ b/li.strolch.agent/src/main/java/li/strolch/agent/impl/ComponentDependencyAnalyzer.java @@ -153,7 +153,8 @@ public class ComponentDependencyAnalyzer { } String inset = StringHelper.normalizeLength(" ", depth * 2, false, ' '); //$NON-NLS-1$ for (ComponentController controller : components) { - logger.info(inset + controller.getComponent().getName()); + logger.info(inset + controller.getComponent().getName() + ": " + + controller.getComponent().getClass().getName()); logDependencies(depth + 1, controller.getDownstreamDependencies()); } } From ee741b5e18a5fcafe86306a8450be780b5dc8ab0 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Fri, 9 Jan 2015 01:05:48 +0100 Subject: [PATCH 3/9] [Bugfix] fixed not setting new Impl for component, when overridden - Now when you set a new Impl for a component, then the dependencies are also replaced --- .../configuration/ConfigurationSaxParser.java | 8 +++++++ .../ConfigurationParserTest.java | 22 +++++++++++++++++++ .../config/StrolchConfiguration.xml | 11 ++++++++++ 3 files changed, 41 insertions(+) diff --git a/li.strolch.agent/src/main/java/li/strolch/runtime/configuration/ConfigurationSaxParser.java b/li.strolch.agent/src/main/java/li/strolch/runtime/configuration/ConfigurationSaxParser.java index f64d6e659..134d71465 100644 --- a/li.strolch.agent/src/main/java/li/strolch/runtime/configuration/ConfigurationSaxParser.java +++ b/li.strolch.agent/src/main/java/li/strolch/runtime/configuration/ConfigurationSaxParser.java @@ -452,6 +452,10 @@ public class ConfigurationSaxParser extends DefaultHandler { if (thisComponentBuilder == null) { this.componentBuilders.add(otherComponentBuilder); } else { + if (StringHelper.isNotEmpty(otherComponentBuilder.getImpl())) { + thisComponentBuilder.setImpl(otherComponentBuilder.getImpl()); + thisComponentBuilder.setDependencies(otherComponentBuilder.getDependencies()); + } thisComponentBuilder.getProperties().putAll(otherComponentBuilder.getProperties()); } } @@ -552,6 +556,10 @@ public class ConfigurationSaxParser extends DefaultHandler { return this.dependencies; } + public void setDependencies(Set dependencies) { + this.dependencies = dependencies; + } + public void addDependency(String dependency) { this.dependencies.add(dependency); } diff --git a/li.strolch.agent/src/test/java/li/strolch/runtime/configuration/ConfigurationParserTest.java b/li.strolch.agent/src/test/java/li/strolch/runtime/configuration/ConfigurationParserTest.java index 64bdea36e..f0d5d0d85 100644 --- a/li.strolch.agent/src/test/java/li/strolch/runtime/configuration/ConfigurationParserTest.java +++ b/li.strolch.agent/src/test/java/li/strolch/runtime/configuration/ConfigurationParserTest.java @@ -78,6 +78,7 @@ public class ConfigurationParserTest { assertEquals("li.strolch.runtime.privilege.DefaultStrolchPrivilegeHandler", privilegeHandlerConfiguration.getImpl()); assertEquals(1, privilegeHandlerConfiguration.getPropertyKeys().size()); + assertEquals(1, privilegeHandlerConfiguration.getDependencies().size()); assertTrue(privilegeHandlerConfiguration.getDependencies().contains("PersistenceHandler")); assertEquals("PrivilegeConfig.xml", privilegeHandlerConfiguration.getString("privilegeConfigFile", null)); @@ -178,5 +179,26 @@ public class ConfigurationParserTest { assertEquals(2, realmHandlerConfiguration.getPropertyKeys().size()); assertEquals("EMPTY", realmHandlerConfiguration.getString("dataStoreMode", null)); assertEquals("noob", realmHandlerConfiguration.getString("foo", null)); + + // + // ServiceHandler + // li.strolch.service.api.ServiceHandler + // li.strolch.service.YetAnotherServiceHandler + // RealmHandler + // + // foo + // + // + ComponentConfiguration serviceHandlerConfiguration = strolchConfiguration + .getComponentConfiguration("ServiceHandler"); + assertNotNull("Should have created a ServiceHandler Configuration", serviceHandlerConfiguration); + assertEquals("ServiceHandler", serviceHandlerConfiguration.getName()); + assertEquals("li.strolch.service.api.ServiceHandler", serviceHandlerConfiguration.getApi()); + assertEquals("li.strolch.service.YetAnotherServiceHandler", serviceHandlerConfiguration.getImpl()); + assertEquals(2, serviceHandlerConfiguration.getDependencies().size()); + assertTrue(serviceHandlerConfiguration.getDependencies().contains("RealmHandler")); + assertTrue(serviceHandlerConfiguration.getDependencies().contains("PrivilegeHandler")); + assertEquals(1, serviceHandlerConfiguration.getPropertyKeys().size()); + assertEquals("foo", serviceHandlerConfiguration.getString("bar", null)); } } diff --git a/li.strolch.agent/src/test/resources/configtest/config/StrolchConfiguration.xml b/li.strolch.agent/src/test/resources/configtest/config/StrolchConfiguration.xml index db199a0cc..426ad172c 100644 --- a/li.strolch.agent/src/test/resources/configtest/config/StrolchConfiguration.xml +++ b/li.strolch.agent/src/test/resources/configtest/config/StrolchConfiguration.xml @@ -68,6 +68,17 @@ noob + + + ServiceHandler + li.strolch.service.api.ServiceHandler + li.strolch.service.YetAnotherServiceHandler + RealmHandler + PrivilegeHandler + + foo + + \ No newline at end of file From 6e265c755b53b23f0f9ab79098c1967d3852aef2 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Fri, 9 Jan 2015 12:34:05 +0100 Subject: [PATCH 4/9] [Major] refactored DbSchemaVersionCheck and added version parsing - Now we can use Version to see if current version is greater than - Fixed bug where version checking didn't check for app - TODO is still open to handle migration with intermediary steps --- ch.eitchnet.utils | 2 +- .../postgresql/dao/test/CachedDaoTest.java | 3 ++- .../postgresql/dao/test/DbMigrationTest.java | 11 +++++------ .../service/test/AbstractRealmServiceTest.java | 3 ++- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/ch.eitchnet.utils b/ch.eitchnet.utils index 3f6f9950f..07b574dba 160000 --- a/ch.eitchnet.utils +++ b/ch.eitchnet.utils @@ -1 +1 @@ -Subproject commit 3f6f9950f856dd995ca1d3581aabe30ba3db910e +Subproject commit 07b574dba13ae7ca1000737dc799f6fd3885bd35 diff --git a/li.strolch.persistence.postgresql/src/test/java/li/strolch/persistence/postgresql/dao/test/CachedDaoTest.java b/li.strolch.persistence.postgresql/src/test/java/li/strolch/persistence/postgresql/dao/test/CachedDaoTest.java index aa46c0f91..7e1057abe 100644 --- a/li.strolch.persistence.postgresql/src/test/java/li/strolch/persistence/postgresql/dao/test/CachedDaoTest.java +++ b/li.strolch.persistence.postgresql/src/test/java/li/strolch/persistence/postgresql/dao/test/CachedDaoTest.java @@ -30,6 +30,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import ch.eitchnet.db.DbSchemaVersionCheck; +import ch.eitchnet.utils.Version; import ch.eitchnet.utils.helper.StringHelper; public class CachedDaoTest extends AbstractModelTest { @@ -65,7 +66,7 @@ public class CachedDaoTest extends AbstractModelTest { } public static void dropSchema(String dbUrl, String dbUsername, String dbPassword) throws Exception { - String dbVersion = DbSchemaVersionCheck.getExpectedDbVersion(PostgreSqlPersistenceHandler.SCRIPT_PREFIX, + Version dbVersion = DbSchemaVersionCheck.getExpectedDbVersion(PostgreSqlPersistenceHandler.SCRIPT_PREFIX, PostgreSqlPersistenceHandler.class); logger.info(MessageFormat.format("Dropping schema for expected version {0}", dbVersion)); String sql = DbSchemaVersionCheck.getSql(PostgreSqlPersistenceHandler.SCRIPT_PREFIX, diff --git a/li.strolch.persistence.postgresql/src/test/java/li/strolch/persistence/postgresql/dao/test/DbMigrationTest.java b/li.strolch.persistence.postgresql/src/test/java/li/strolch/persistence/postgresql/dao/test/DbMigrationTest.java index 4c5c8f79b..3ad34b7fa 100644 --- a/li.strolch.persistence.postgresql/src/test/java/li/strolch/persistence/postgresql/dao/test/DbMigrationTest.java +++ b/li.strolch.persistence.postgresql/src/test/java/li/strolch/persistence/postgresql/dao/test/DbMigrationTest.java @@ -23,7 +23,6 @@ import static li.strolch.persistence.postgresql.dao.test.CachedDaoTest.dropSchem import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; -import java.sql.Statement; import java.text.MessageFormat; import li.strolch.persistence.postgresql.PostgreSqlPersistenceHandler; @@ -34,6 +33,7 @@ import org.junit.Test; import ch.eitchnet.db.DbException; import ch.eitchnet.db.DbSchemaVersionCheck; +import ch.eitchnet.utils.Version; /** * @author Robert von Burg @@ -56,17 +56,16 @@ public class DbMigrationTest { DbSchemaVersionCheck dbCheck = new DbSchemaVersionCheck(scriptPrefix, ctxClass, allowSchemaCreation, allowSchemaMigration, allowSchemaDrop); - try (Connection con = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD); - Statement st = con.createStatement();) { + try (Connection con = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD)) { // DROP 0.2.1 - dbCheck.dropSchema(StrolchConstants.DEFAULT_REALM, "0.2.1", st); + dbCheck.dropSchema(con, StrolchConstants.DEFAULT_REALM, Version.valueOf("0.2.1")); // CREATE 0.2.0 - dbCheck.createSchema(StrolchConstants.DEFAULT_REALM, "0.2.0", st); + dbCheck.createSchema(con, StrolchConstants.DEFAULT_REALM, Version.valueOf("0.2.0")); // MIGRATE 0.2.1 - dbCheck.migrateSchema(StrolchConstants.DEFAULT_REALM, "0.2.1", st); + dbCheck.migrateSchema(con, StrolchConstants.DEFAULT_REALM, Version.valueOf("0.2.1")); } catch (SQLException e) { String msg = "Failed to open DB connection to URL {0} due to: {1}"; //$NON-NLS-1$ diff --git a/li.strolch.service/src/test/java/li/strolch/service/test/AbstractRealmServiceTest.java b/li.strolch.service/src/test/java/li/strolch/service/test/AbstractRealmServiceTest.java index 5fb328ada..5a574206c 100644 --- a/li.strolch.service/src/test/java/li/strolch/service/test/AbstractRealmServiceTest.java +++ b/li.strolch.service/src/test/java/li/strolch/service/test/AbstractRealmServiceTest.java @@ -38,6 +38,7 @@ import org.junit.Before; import ch.eitchnet.db.DbSchemaVersionCheck; import ch.eitchnet.privilege.model.Certificate; +import ch.eitchnet.utils.Version; /** * @author Robert von Burg @@ -77,7 +78,7 @@ public abstract class AbstractRealmServiceTest { } public static void dropSchema(String dbUrl, String dbUsername, String dbPassword) throws Exception { - String dbVersion = DbSchemaVersionCheck.getExpectedDbVersion(PostgreSqlPersistenceHandler.SCRIPT_PREFIX, + Version dbVersion = DbSchemaVersionCheck.getExpectedDbVersion(PostgreSqlPersistenceHandler.SCRIPT_PREFIX, PostgreSqlPersistenceHandler.class); String sql = DbSchemaVersionCheck.getSql(PostgreSqlPersistenceHandler.SCRIPT_PREFIX, PostgreSqlPersistenceHandler.class, dbVersion, "drop"); //$NON-NLS-1$ From 4cd51e4ee2c057a5f7512a4e81ab59496fce8e63 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Fri, 9 Jan 2015 12:42:11 +0100 Subject: [PATCH 5/9] [Major] refactored DbSchemaVersionCheck and added version parsing - Now we can use Version to see if current version is greater than - Fixed bug where version checking didn't check for app - TODO is still open to handle migration with intermediary steps --- ch.eitchnet.utils | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch.eitchnet.utils b/ch.eitchnet.utils index 07b574dba..fc7c2d660 160000 --- a/ch.eitchnet.utils +++ b/ch.eitchnet.utils @@ -1 +1 @@ -Subproject commit 07b574dba13ae7ca1000737dc799f6fd3885bd35 +Subproject commit fc7c2d6600f0635faea4782ae6242b6d0236e22e From 1d274828439dfa8b5f3c664ff1b3d3eeab706247 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Fri, 9 Jan 2015 12:59:58 +0100 Subject: [PATCH 6/9] [Minor] Added logging of realm and app when checking db schema --- ch.eitchnet.utils | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch.eitchnet.utils b/ch.eitchnet.utils index fc7c2d660..5a05bc835 160000 --- a/ch.eitchnet.utils +++ b/ch.eitchnet.utils @@ -1 +1 @@ -Subproject commit fc7c2d6600f0635faea4782ae6242b6d0236e22e +Subproject commit 5a05bc835d76be02c41a54f16d4493155da4669d From e7e7fe978b9e1f1b460544d7da7361785c58e00b Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Fri, 9 Jan 2015 13:37:22 +0100 Subject: [PATCH 7/9] [Bugfix] fixed missing timestamps from postgresql dates --- .../persistence/postgresql/PostgreSqlAuditDao.java | 9 +++++---- .../persistence/postgresql/PostgreSqlOrderDao.java | 6 +++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/li.strolch.persistence.postgresql/src/main/java/li/strolch/persistence/postgresql/PostgreSqlAuditDao.java b/li.strolch.persistence.postgresql/src/main/java/li/strolch/persistence/postgresql/PostgreSqlAuditDao.java index ad80954b2..e1601224d 100644 --- a/li.strolch.persistence.postgresql/src/main/java/li/strolch/persistence/postgresql/PostgreSqlAuditDao.java +++ b/li.strolch.persistence.postgresql/src/main/java/li/strolch/persistence/postgresql/PostgreSqlAuditDao.java @@ -19,6 +19,7 @@ import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; +import java.sql.Timestamp; import java.text.MessageFormat; import java.util.ArrayList; import java.util.Calendar; @@ -315,14 +316,14 @@ public class PostgreSqlAuditDao implements AuditDao { ps.setString(2, audit.getUsername()); ps.setString(3, audit.getFirstname()); ps.setString(4, audit.getLastname()); - ps.setDate(5, new Date(audit.getDate().getTime()), Calendar.getInstance()); + ps.setTimestamp(5, new Timestamp(audit.getDate().getTime()), Calendar.getInstance()); ps.setString(6, audit.getElementType()); ps.setString(7, audit.getElementAccessed()); if (audit.getNewVersion() == null) ps.setDate(8, null); else - ps.setDate(8, new Date(audit.getNewVersion().getTime()), Calendar.getInstance()); + ps.setTimestamp(8, new Timestamp(audit.getNewVersion().getTime()), Calendar.getInstance()); ps.setString(9, audit.getAction()); ps.setString(10, audit.getAccessType().name()); @@ -335,10 +336,10 @@ public class PostgreSqlAuditDao implements AuditDao { audit.setUsername(resultSet.getString(2)); audit.setFirstname(resultSet.getString(3)); audit.setLastname(resultSet.getString(4)); - audit.setDate(resultSet.getDate(5)); + audit.setDate(resultSet.getTimestamp(5)); audit.setElementType(resultSet.getString(6)); audit.setElementAccessed(resultSet.getString(7)); - audit.setNewVersion(resultSet.getDate(8)); + audit.setNewVersion(resultSet.getTimestamp(8)); audit.setAction(resultSet.getString(9)); audit.setAccessType(AccessType.valueOf(resultSet.getString(10))); return audit; diff --git a/li.strolch.persistence.postgresql/src/main/java/li/strolch/persistence/postgresql/PostgreSqlOrderDao.java b/li.strolch.persistence.postgresql/src/main/java/li/strolch/persistence/postgresql/PostgreSqlOrderDao.java index d5268098b..fbf7740c5 100644 --- a/li.strolch.persistence.postgresql/src/main/java/li/strolch/persistence/postgresql/PostgreSqlOrderDao.java +++ b/li.strolch.persistence.postgresql/src/main/java/li/strolch/persistence/postgresql/PostgreSqlOrderDao.java @@ -17,11 +17,11 @@ package li.strolch.persistence.postgresql; import java.io.IOException; import java.io.InputStream; -import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.SQLXML; +import java.sql.Timestamp; import java.text.MessageFormat; import java.util.ArrayList; import java.util.Calendar; @@ -107,7 +107,7 @@ public class PostgreSqlOrderDao extends PostgresqlDao implements OrderDao preparedStatement.setString(2, order.getName()); preparedStatement.setString(3, order.getType()); preparedStatement.setString(4, order.getState().name()); - preparedStatement.setDate(5, new Date(order.getDate().getTime()), Calendar.getInstance()); + preparedStatement.setTimestamp(5, new Timestamp(order.getDate().getTime()), Calendar.getInstance()); SQLXML sqlxml = createSqlXml(order, preparedStatement); preparedStatement.setSQLXML(6, sqlxml); @@ -137,7 +137,7 @@ public class PostgreSqlOrderDao extends PostgresqlDao implements OrderDao preparedStatement.setString(1, order.getName()); preparedStatement.setString(2, order.getType()); preparedStatement.setString(3, order.getState().name()); - preparedStatement.setDate(4, new Date(order.getDate().getTime()), Calendar.getInstance()); + preparedStatement.setTimestamp(4, new Timestamp(order.getDate().getTime()), Calendar.getInstance()); preparedStatement.setString(6, order.getId()); SQLXML sqlxml = createSqlXml(order, preparedStatement); From 7d8516952b245e2ed242568a2c602a8d81aeee43 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Fri, 9 Jan 2015 13:48:14 +0100 Subject: [PATCH 8/9] [Bugfix] fixed missing timestamps from postgresql dates - fixed broken tests --- .../postgresql/PostgreSqlAuditDao.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/li.strolch.persistence.postgresql/src/main/java/li/strolch/persistence/postgresql/PostgreSqlAuditDao.java b/li.strolch.persistence.postgresql/src/main/java/li/strolch/persistence/postgresql/PostgreSqlAuditDao.java index e1601224d..7db25ac21 100644 --- a/li.strolch.persistence.postgresql/src/main/java/li/strolch/persistence/postgresql/PostgreSqlAuditDao.java +++ b/li.strolch.persistence.postgresql/src/main/java/li/strolch/persistence/postgresql/PostgreSqlAuditDao.java @@ -15,7 +15,6 @@ */ package li.strolch.persistence.postgresql; -import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; @@ -95,8 +94,8 @@ public class PostgreSqlAuditDao implements AuditDao { String sql = "select count(*) from " + TABLE_NAME + " where " + DATE + " between ? and ?"; //$NON-NLS-1$ try (PreparedStatement statement = this.tx.getConnection().prepareStatement(sql)) { - statement.setDate(1, new Date(dateRange.getFromDate().getTime()), Calendar.getInstance()); - statement.setDate(2, new Date(dateRange.getToDate().getTime()), Calendar.getInstance()); + statement.setTimestamp(1, new Timestamp(dateRange.getFromDate().getTime()), Calendar.getInstance()); + statement.setTimestamp(2, new Timestamp(dateRange.getToDate().getTime()), Calendar.getInstance()); try (ResultSet result = statement.executeQuery()) { result.next(); @@ -114,8 +113,8 @@ public class PostgreSqlAuditDao implements AuditDao { try (PreparedStatement statement = this.tx.getConnection().prepareStatement(sql)) { statement.setString(1, type); - statement.setDate(2, new Date(dateRange.getFromDate().getTime()), Calendar.getInstance()); - statement.setDate(3, new Date(dateRange.getToDate().getTime()), Calendar.getInstance()); + statement.setTimestamp(2, new Timestamp(dateRange.getFromDate().getTime()), Calendar.getInstance()); + statement.setTimestamp(3, new Timestamp(dateRange.getToDate().getTime()), Calendar.getInstance()); try (ResultSet result = statement.executeQuery()) { result.next(); @@ -175,8 +174,8 @@ public class PostgreSqlAuditDao implements AuditDao { try (PreparedStatement statement = this.tx.getConnection().prepareStatement(sql)) { statement.setString(1, type); - statement.setDate(2, new Date(dateRange.getFromDate().getTime()), Calendar.getInstance()); - statement.setDate(3, new Date(dateRange.getToDate().getTime()), Calendar.getInstance()); + statement.setTimestamp(2, new Timestamp(dateRange.getFromDate().getTime()), Calendar.getInstance()); + statement.setTimestamp(3, new Timestamp(dateRange.getToDate().getTime()), Calendar.getInstance()); try (ResultSet result = statement.executeQuery()) { while (result.next()) { @@ -279,8 +278,8 @@ public class PostgreSqlAuditDao implements AuditDao { try (PreparedStatement preparedStatement = this.tx.getConnection().prepareStatement(sql)) { preparedStatement.setString(1, type); - preparedStatement.setDate(2, new Date(dateRange.getFromDate().getTime()), Calendar.getInstance()); - preparedStatement.setDate(3, new Date(dateRange.getToDate().getTime()), Calendar.getInstance()); + preparedStatement.setTimestamp(2, new Timestamp(dateRange.getFromDate().getTime()), Calendar.getInstance()); + preparedStatement.setTimestamp(3, new Timestamp(dateRange.getToDate().getTime()), Calendar.getInstance()); int modCount = preparedStatement.executeUpdate(); return modCount; From cfde0fa8b7d3665c43892d8968653e4b918e0556 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Sun, 11 Jan 2015 18:41:52 +0100 Subject: [PATCH 9/9] [Bugfix] fixed minor TX logging issue --- .../li/strolch/persistence/api/AbstractTransaction.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/li.strolch.agent/src/main/java/li/strolch/persistence/api/AbstractTransaction.java b/li.strolch.agent/src/main/java/li/strolch/persistence/api/AbstractTransaction.java index 35e8f3733..5b73c4d35 100644 --- a/li.strolch.agent/src/main/java/li/strolch/persistence/api/AbstractTransaction.java +++ b/li.strolch.agent/src/main/java/li/strolch/persistence/api/AbstractTransaction.java @@ -516,13 +516,16 @@ public abstract class AbstractTransaction implements StrolchTransaction { sb.append(StringHelper.formatNanoDuration(txDuration)); sb.append(", close="); //$NON-NLS-1$ sb.append(StringHelper.formatNanoDuration(closeDuration)); + if (isAuditTrailEnabled()) { sb.append(", auditTrail="); //$NON-NLS-1$ sb.append(StringHelper.formatNanoDuration(auditTrailDuration)); } - if (observerUpdateDuration > 0L) + + if (isObserverUpdatesEnabled()) { sb.append(", updates="); //$NON-NLS-1$ - sb.append(StringHelper.formatNanoDuration(observerUpdateDuration)); + sb.append(StringHelper.formatNanoDuration(observerUpdateDuration)); + } logger.info(sb.toString()); }