Merge remote-tracking branch 'refs/remotes/origin/develop' into develop
Conflicts: ch.eitchnet.utils
This commit is contained in:
commit
f236779697
|
@ -1 +1 @@
|
|||
Subproject commit fe1216eb12b41d052cb69d53a582992afa831c51
|
||||
Subproject commit a67df72f3f9b795796896889c2dbe1cf8561ccd2
|
|
@ -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) {
|
||||
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
logger.info(sb.toString());
|
||||
}
|
||||
|
||||
|
|
|
@ -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<String> dependencies) {
|
||||
this.dependencies = dependencies;
|
||||
}
|
||||
|
||||
public void addDependency(String dependency) {
|
||||
this.dependencies.add(dependency);
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ public class NameSelector<T extends StrolchElement> implements Selector<T> {
|
|||
@Override
|
||||
public boolean select(T element) {
|
||||
String name = element.getName();
|
||||
return this.matchMode.matches(this.name, name);
|
||||
return this.matchMode.matches(name, this.name);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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));
|
||||
|
||||
// <Component>
|
||||
// <name>ServiceHandler</name>
|
||||
// <api>li.strolch.service.api.ServiceHandler</api>
|
||||
// <impl>li.strolch.service.YetAnotherServiceHandler</impl>
|
||||
// <depends>RealmHandler</depends>
|
||||
// <Properties>
|
||||
// <bar>foo</bar>
|
||||
// </Properties>
|
||||
// </Component>
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -190,6 +190,21 @@ public class InMemoryQueryTest {
|
|||
assertEquals(1, result.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldQueryByName() {
|
||||
|
||||
List<Resource> 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<Resource> result = dao.doQuery(ballQuery, new NoStrategyResourceVisitor());
|
||||
assertEquals(1, result.size());
|
||||
}
|
||||
|
||||
private Resource getBallResource() {
|
||||
Resource res1 = new Resource("childrensBall", "Ball 1", "Ball");
|
||||
ParameterBag bag = new ParameterBag("parameters", "Ball Details", "Parameters");
|
||||
|
|
|
@ -68,6 +68,17 @@
|
|||
<foo>noob</foo>
|
||||
</Properties>
|
||||
</Component>
|
||||
|
||||
<Component>
|
||||
<name>ServiceHandler</name>
|
||||
<api>li.strolch.service.api.ServiceHandler</api>
|
||||
<impl>li.strolch.service.YetAnotherServiceHandler</impl>
|
||||
<depends>RealmHandler</depends>
|
||||
<depends>PrivilegeHandler</depends>
|
||||
<Properties>
|
||||
<bar>foo</bar>
|
||||
</Properties>
|
||||
</Component>
|
||||
</env>
|
||||
|
||||
</StrolchConfiguration>
|
|
@ -15,10 +15,10 @@
|
|||
*/
|
||||
package li.strolch.persistence.postgresql;
|
||||
|
||||
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;
|
||||
|
@ -94,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();
|
||||
|
@ -113,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();
|
||||
|
@ -174,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()) {
|
||||
|
@ -278,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;
|
||||
|
@ -315,14 +315,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 +335,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;
|
||||
|
|
|
@ -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<Order> 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<Order> 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);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 <eitch@eitchnet.ch>
|
||||
|
@ -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$
|
||||
|
|
|
@ -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 <eitch@eitchnet.ch>
|
||||
|
@ -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$
|
||||
|
|
Loading…
Reference in New Issue