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);
|
componentMap.put(apiClass, strolchComponent);
|
||||||
controllerMap.put(componentName, new ComponentController(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) {
|
} catch (NoSuchMethodException e) {
|
||||||
|
|
||||||
|
|
|
@ -153,7 +153,8 @@ public class ComponentDependencyAnalyzer {
|
||||||
}
|
}
|
||||||
String inset = StringHelper.normalizeLength(" ", depth * 2, false, ' '); //$NON-NLS-1$
|
String inset = StringHelper.normalizeLength(" ", depth * 2, false, ' '); //$NON-NLS-1$
|
||||||
for (ComponentController controller : components) {
|
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());
|
logDependencies(depth + 1, controller.getDownstreamDependencies());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -516,13 +516,16 @@ public abstract class AbstractTransaction implements StrolchTransaction {
|
||||||
sb.append(StringHelper.formatNanoDuration(txDuration));
|
sb.append(StringHelper.formatNanoDuration(txDuration));
|
||||||
sb.append(", close="); //$NON-NLS-1$
|
sb.append(", close="); //$NON-NLS-1$
|
||||||
sb.append(StringHelper.formatNanoDuration(closeDuration));
|
sb.append(StringHelper.formatNanoDuration(closeDuration));
|
||||||
|
|
||||||
if (isAuditTrailEnabled()) {
|
if (isAuditTrailEnabled()) {
|
||||||
sb.append(", auditTrail="); //$NON-NLS-1$
|
sb.append(", auditTrail="); //$NON-NLS-1$
|
||||||
sb.append(StringHelper.formatNanoDuration(auditTrailDuration));
|
sb.append(StringHelper.formatNanoDuration(auditTrailDuration));
|
||||||
}
|
}
|
||||||
if (observerUpdateDuration > 0L)
|
|
||||||
|
if (isObserverUpdatesEnabled()) {
|
||||||
sb.append(", updates="); //$NON-NLS-1$
|
sb.append(", updates="); //$NON-NLS-1$
|
||||||
sb.append(StringHelper.formatNanoDuration(observerUpdateDuration));
|
sb.append(StringHelper.formatNanoDuration(observerUpdateDuration));
|
||||||
|
}
|
||||||
logger.info(sb.toString());
|
logger.info(sb.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -452,6 +452,10 @@ public class ConfigurationSaxParser extends DefaultHandler {
|
||||||
if (thisComponentBuilder == null) {
|
if (thisComponentBuilder == null) {
|
||||||
this.componentBuilders.add(otherComponentBuilder);
|
this.componentBuilders.add(otherComponentBuilder);
|
||||||
} else {
|
} else {
|
||||||
|
if (StringHelper.isNotEmpty(otherComponentBuilder.getImpl())) {
|
||||||
|
thisComponentBuilder.setImpl(otherComponentBuilder.getImpl());
|
||||||
|
thisComponentBuilder.setDependencies(otherComponentBuilder.getDependencies());
|
||||||
|
}
|
||||||
thisComponentBuilder.getProperties().putAll(otherComponentBuilder.getProperties());
|
thisComponentBuilder.getProperties().putAll(otherComponentBuilder.getProperties());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -552,6 +556,10 @@ public class ConfigurationSaxParser extends DefaultHandler {
|
||||||
return this.dependencies;
|
return this.dependencies;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setDependencies(Set<String> dependencies) {
|
||||||
|
this.dependencies = dependencies;
|
||||||
|
}
|
||||||
|
|
||||||
public void addDependency(String dependency) {
|
public void addDependency(String dependency) {
|
||||||
this.dependencies.add(dependency);
|
this.dependencies.add(dependency);
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,7 @@ public class NameSelector<T extends StrolchElement> implements Selector<T> {
|
||||||
@Override
|
@Override
|
||||||
public boolean select(T element) {
|
public boolean select(T element) {
|
||||||
String name = element.getName();
|
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",
|
assertEquals("li.strolch.runtime.privilege.DefaultStrolchPrivilegeHandler",
|
||||||
privilegeHandlerConfiguration.getImpl());
|
privilegeHandlerConfiguration.getImpl());
|
||||||
assertEquals(1, privilegeHandlerConfiguration.getPropertyKeys().size());
|
assertEquals(1, privilegeHandlerConfiguration.getPropertyKeys().size());
|
||||||
|
assertEquals(1, privilegeHandlerConfiguration.getDependencies().size());
|
||||||
assertTrue(privilegeHandlerConfiguration.getDependencies().contains("PersistenceHandler"));
|
assertTrue(privilegeHandlerConfiguration.getDependencies().contains("PersistenceHandler"));
|
||||||
assertEquals("PrivilegeConfig.xml", privilegeHandlerConfiguration.getString("privilegeConfigFile", null));
|
assertEquals("PrivilegeConfig.xml", privilegeHandlerConfiguration.getString("privilegeConfigFile", null));
|
||||||
|
|
||||||
|
@ -178,5 +179,26 @@ public class ConfigurationParserTest {
|
||||||
assertEquals(2, realmHandlerConfiguration.getPropertyKeys().size());
|
assertEquals(2, realmHandlerConfiguration.getPropertyKeys().size());
|
||||||
assertEquals("EMPTY", realmHandlerConfiguration.getString("dataStoreMode", null));
|
assertEquals("EMPTY", realmHandlerConfiguration.getString("dataStoreMode", null));
|
||||||
assertEquals("noob", realmHandlerConfiguration.getString("foo", 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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -189,6 +189,21 @@ public class InMemoryQueryTest {
|
||||||
List<Resource> result = dao.doQuery(ballQuery, new NoStrategyResourceVisitor());
|
List<Resource> result = dao.doQuery(ballQuery, new NoStrategyResourceVisitor());
|
||||||
assertEquals(1, result.size());
|
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() {
|
private Resource getBallResource() {
|
||||||
Resource res1 = new Resource("childrensBall", "Ball 1", "Ball");
|
Resource res1 = new Resource("childrensBall", "Ball 1", "Ball");
|
||||||
|
|
|
@ -68,6 +68,17 @@
|
||||||
<foo>noob</foo>
|
<foo>noob</foo>
|
||||||
</Properties>
|
</Properties>
|
||||||
</Component>
|
</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>
|
</env>
|
||||||
|
|
||||||
</StrolchConfiguration>
|
</StrolchConfiguration>
|
|
@ -15,10 +15,10 @@
|
||||||
*/
|
*/
|
||||||
package li.strolch.persistence.postgresql;
|
package li.strolch.persistence.postgresql;
|
||||||
|
|
||||||
import java.sql.Date;
|
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Timestamp;
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
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$
|
String sql = "select count(*) from " + TABLE_NAME + " where " + DATE + " between ? and ?"; //$NON-NLS-1$
|
||||||
try (PreparedStatement statement = this.tx.getConnection().prepareStatement(sql)) {
|
try (PreparedStatement statement = this.tx.getConnection().prepareStatement(sql)) {
|
||||||
|
|
||||||
statement.setDate(1, new Date(dateRange.getFromDate().getTime()), Calendar.getInstance());
|
statement.setTimestamp(1, new Timestamp(dateRange.getFromDate().getTime()), Calendar.getInstance());
|
||||||
statement.setDate(2, new Date(dateRange.getToDate().getTime()), Calendar.getInstance());
|
statement.setTimestamp(2, new Timestamp(dateRange.getToDate().getTime()), Calendar.getInstance());
|
||||||
|
|
||||||
try (ResultSet result = statement.executeQuery()) {
|
try (ResultSet result = statement.executeQuery()) {
|
||||||
result.next();
|
result.next();
|
||||||
|
@ -113,8 +113,8 @@ public class PostgreSqlAuditDao implements AuditDao {
|
||||||
try (PreparedStatement statement = this.tx.getConnection().prepareStatement(sql)) {
|
try (PreparedStatement statement = this.tx.getConnection().prepareStatement(sql)) {
|
||||||
|
|
||||||
statement.setString(1, type);
|
statement.setString(1, type);
|
||||||
statement.setDate(2, new Date(dateRange.getFromDate().getTime()), Calendar.getInstance());
|
statement.setTimestamp(2, new Timestamp(dateRange.getFromDate().getTime()), Calendar.getInstance());
|
||||||
statement.setDate(3, new Date(dateRange.getToDate().getTime()), Calendar.getInstance());
|
statement.setTimestamp(3, new Timestamp(dateRange.getToDate().getTime()), Calendar.getInstance());
|
||||||
|
|
||||||
try (ResultSet result = statement.executeQuery()) {
|
try (ResultSet result = statement.executeQuery()) {
|
||||||
result.next();
|
result.next();
|
||||||
|
@ -174,8 +174,8 @@ public class PostgreSqlAuditDao implements AuditDao {
|
||||||
try (PreparedStatement statement = this.tx.getConnection().prepareStatement(sql)) {
|
try (PreparedStatement statement = this.tx.getConnection().prepareStatement(sql)) {
|
||||||
|
|
||||||
statement.setString(1, type);
|
statement.setString(1, type);
|
||||||
statement.setDate(2, new Date(dateRange.getFromDate().getTime()), Calendar.getInstance());
|
statement.setTimestamp(2, new Timestamp(dateRange.getFromDate().getTime()), Calendar.getInstance());
|
||||||
statement.setDate(3, new Date(dateRange.getToDate().getTime()), Calendar.getInstance());
|
statement.setTimestamp(3, new Timestamp(dateRange.getToDate().getTime()), Calendar.getInstance());
|
||||||
|
|
||||||
try (ResultSet result = statement.executeQuery()) {
|
try (ResultSet result = statement.executeQuery()) {
|
||||||
while (result.next()) {
|
while (result.next()) {
|
||||||
|
@ -278,8 +278,8 @@ public class PostgreSqlAuditDao implements AuditDao {
|
||||||
try (PreparedStatement preparedStatement = this.tx.getConnection().prepareStatement(sql)) {
|
try (PreparedStatement preparedStatement = this.tx.getConnection().prepareStatement(sql)) {
|
||||||
|
|
||||||
preparedStatement.setString(1, type);
|
preparedStatement.setString(1, type);
|
||||||
preparedStatement.setDate(2, new Date(dateRange.getFromDate().getTime()), Calendar.getInstance());
|
preparedStatement.setTimestamp(2, new Timestamp(dateRange.getFromDate().getTime()), Calendar.getInstance());
|
||||||
preparedStatement.setDate(3, new Date(dateRange.getToDate().getTime()), Calendar.getInstance());
|
preparedStatement.setTimestamp(3, new Timestamp(dateRange.getToDate().getTime()), Calendar.getInstance());
|
||||||
|
|
||||||
int modCount = preparedStatement.executeUpdate();
|
int modCount = preparedStatement.executeUpdate();
|
||||||
return modCount;
|
return modCount;
|
||||||
|
@ -315,14 +315,14 @@ public class PostgreSqlAuditDao implements AuditDao {
|
||||||
ps.setString(2, audit.getUsername());
|
ps.setString(2, audit.getUsername());
|
||||||
ps.setString(3, audit.getFirstname());
|
ps.setString(3, audit.getFirstname());
|
||||||
ps.setString(4, audit.getLastname());
|
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(6, audit.getElementType());
|
||||||
ps.setString(7, audit.getElementAccessed());
|
ps.setString(7, audit.getElementAccessed());
|
||||||
|
|
||||||
if (audit.getNewVersion() == null)
|
if (audit.getNewVersion() == null)
|
||||||
ps.setDate(8, null);
|
ps.setDate(8, null);
|
||||||
else
|
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(9, audit.getAction());
|
||||||
ps.setString(10, audit.getAccessType().name());
|
ps.setString(10, audit.getAccessType().name());
|
||||||
|
@ -335,10 +335,10 @@ public class PostgreSqlAuditDao implements AuditDao {
|
||||||
audit.setUsername(resultSet.getString(2));
|
audit.setUsername(resultSet.getString(2));
|
||||||
audit.setFirstname(resultSet.getString(3));
|
audit.setFirstname(resultSet.getString(3));
|
||||||
audit.setLastname(resultSet.getString(4));
|
audit.setLastname(resultSet.getString(4));
|
||||||
audit.setDate(resultSet.getDate(5));
|
audit.setDate(resultSet.getTimestamp(5));
|
||||||
audit.setElementType(resultSet.getString(6));
|
audit.setElementType(resultSet.getString(6));
|
||||||
audit.setElementAccessed(resultSet.getString(7));
|
audit.setElementAccessed(resultSet.getString(7));
|
||||||
audit.setNewVersion(resultSet.getDate(8));
|
audit.setNewVersion(resultSet.getTimestamp(8));
|
||||||
audit.setAction(resultSet.getString(9));
|
audit.setAction(resultSet.getString(9));
|
||||||
audit.setAccessType(AccessType.valueOf(resultSet.getString(10)));
|
audit.setAccessType(AccessType.valueOf(resultSet.getString(10)));
|
||||||
return audit;
|
return audit;
|
||||||
|
|
|
@ -17,11 +17,11 @@ package li.strolch.persistence.postgresql;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.sql.Date;
|
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.SQLXML;
|
import java.sql.SQLXML;
|
||||||
|
import java.sql.Timestamp;
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
@ -107,7 +107,7 @@ public class PostgreSqlOrderDao extends PostgresqlDao<Order> implements OrderDao
|
||||||
preparedStatement.setString(2, order.getName());
|
preparedStatement.setString(2, order.getName());
|
||||||
preparedStatement.setString(3, order.getType());
|
preparedStatement.setString(3, order.getType());
|
||||||
preparedStatement.setString(4, order.getState().name());
|
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);
|
SQLXML sqlxml = createSqlXml(order, preparedStatement);
|
||||||
preparedStatement.setSQLXML(6, sqlxml);
|
preparedStatement.setSQLXML(6, sqlxml);
|
||||||
|
@ -137,7 +137,7 @@ public class PostgreSqlOrderDao extends PostgresqlDao<Order> implements OrderDao
|
||||||
preparedStatement.setString(1, order.getName());
|
preparedStatement.setString(1, order.getName());
|
||||||
preparedStatement.setString(2, order.getType());
|
preparedStatement.setString(2, order.getType());
|
||||||
preparedStatement.setString(3, order.getState().name());
|
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());
|
preparedStatement.setString(6, order.getId());
|
||||||
|
|
||||||
SQLXML sqlxml = createSqlXml(order, preparedStatement);
|
SQLXML sqlxml = createSqlXml(order, preparedStatement);
|
||||||
|
|
|
@ -30,6 +30,7 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import ch.eitchnet.db.DbSchemaVersionCheck;
|
import ch.eitchnet.db.DbSchemaVersionCheck;
|
||||||
|
import ch.eitchnet.utils.Version;
|
||||||
import ch.eitchnet.utils.helper.StringHelper;
|
import ch.eitchnet.utils.helper.StringHelper;
|
||||||
|
|
||||||
public class CachedDaoTest extends AbstractModelTest {
|
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 {
|
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);
|
PostgreSqlPersistenceHandler.class);
|
||||||
logger.info(MessageFormat.format("Dropping schema for expected version {0}", dbVersion));
|
logger.info(MessageFormat.format("Dropping schema for expected version {0}", dbVersion));
|
||||||
String sql = DbSchemaVersionCheck.getSql(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,
|
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.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.sql.Statement;
|
|
||||||
import java.text.MessageFormat;
|
import java.text.MessageFormat;
|
||||||
|
|
||||||
import li.strolch.persistence.postgresql.PostgreSqlPersistenceHandler;
|
import li.strolch.persistence.postgresql.PostgreSqlPersistenceHandler;
|
||||||
|
@ -34,6 +33,7 @@ import org.junit.Test;
|
||||||
|
|
||||||
import ch.eitchnet.db.DbException;
|
import ch.eitchnet.db.DbException;
|
||||||
import ch.eitchnet.db.DbSchemaVersionCheck;
|
import ch.eitchnet.db.DbSchemaVersionCheck;
|
||||||
|
import ch.eitchnet.utils.Version;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||||
|
@ -56,17 +56,16 @@ public class DbMigrationTest {
|
||||||
DbSchemaVersionCheck dbCheck = new DbSchemaVersionCheck(scriptPrefix, ctxClass, allowSchemaCreation,
|
DbSchemaVersionCheck dbCheck = new DbSchemaVersionCheck(scriptPrefix, ctxClass, allowSchemaCreation,
|
||||||
allowSchemaMigration, allowSchemaDrop);
|
allowSchemaMigration, allowSchemaDrop);
|
||||||
|
|
||||||
try (Connection con = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD);
|
try (Connection con = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD)) {
|
||||||
Statement st = con.createStatement();) {
|
|
||||||
|
|
||||||
// DROP 0.2.1
|
// 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
|
// 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
|
// 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) {
|
} catch (SQLException e) {
|
||||||
String msg = "Failed to open DB connection to URL {0} due to: {1}"; //$NON-NLS-1$
|
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.db.DbSchemaVersionCheck;
|
||||||
import ch.eitchnet.privilege.model.Certificate;
|
import ch.eitchnet.privilege.model.Certificate;
|
||||||
|
import ch.eitchnet.utils.Version;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
* @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 {
|
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);
|
PostgreSqlPersistenceHandler.class);
|
||||||
String sql = DbSchemaVersionCheck.getSql(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,
|
String sql = DbSchemaVersionCheck.getSql(PostgreSqlPersistenceHandler.SCRIPT_PREFIX,
|
||||||
PostgreSqlPersistenceHandler.class, dbVersion, "drop"); //$NON-NLS-1$
|
PostgreSqlPersistenceHandler.class, dbVersion, "drop"); //$NON-NLS-1$
|
||||||
|
|
Loading…
Reference in New Issue