diff --git a/api-2.4/src/test/java/org/openmrs/module/initializer/api/BillableServicesLoaderIntegrationTest.java b/api-2.4/src/test/java/org/openmrs/module/initializer/api/BillableServicesLoaderIntegrationTest.java index b64d78202..440b428cf 100644 --- a/api-2.4/src/test/java/org/openmrs/module/initializer/api/BillableServicesLoaderIntegrationTest.java +++ b/api-2.4/src/test/java/org/openmrs/module/initializer/api/BillableServicesLoaderIntegrationTest.java @@ -21,7 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; -public class BillableServicesLoaderIntegrationTest extends DomainBaseModuleContextSensitive_2_4_test { +public class BillableServicesLoaderIntegrationTest extends DomainBaseModuleContextSensitive_2_4_Test { @Autowired @Qualifier("conceptService") diff --git a/api-2.4/src/test/java/org/openmrs/module/initializer/api/CashPointsLoaderIntegrationTest.java b/api-2.4/src/test/java/org/openmrs/module/initializer/api/CashPointsLoaderIntegrationTest.java index d81b6d7b9..c183899be 100644 --- a/api-2.4/src/test/java/org/openmrs/module/initializer/api/CashPointsLoaderIntegrationTest.java +++ b/api-2.4/src/test/java/org/openmrs/module/initializer/api/CashPointsLoaderIntegrationTest.java @@ -16,7 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; -public class CashPointsLoaderIntegrationTest extends DomainBaseModuleContextSensitive_2_4_test { +public class CashPointsLoaderIntegrationTest extends DomainBaseModuleContextSensitive_2_4_Test { @Autowired @Qualifier("locationService") diff --git a/api-2.4/src/test/java/org/openmrs/module/initializer/api/DomainBaseModuleContextSensitive_2_4_test.java b/api-2.4/src/test/java/org/openmrs/module/initializer/api/DomainBaseModuleContextSensitive_2_4_Test.java similarity index 91% rename from api-2.4/src/test/java/org/openmrs/module/initializer/api/DomainBaseModuleContextSensitive_2_4_test.java rename to api-2.4/src/test/java/org/openmrs/module/initializer/api/DomainBaseModuleContextSensitive_2_4_Test.java index 8f92eb699..e9e30e839 100644 --- a/api-2.4/src/test/java/org/openmrs/module/initializer/api/DomainBaseModuleContextSensitive_2_4_test.java +++ b/api-2.4/src/test/java/org/openmrs/module/initializer/api/DomainBaseModuleContextSensitive_2_4_Test.java @@ -19,9 +19,9 @@ * This allows to perform Spring context sensitive tests when Data Filter API is a dependency. In * that case it is necessary for each context sensitive test to update the search index. */ -public abstract class DomainBaseModuleContextSensitive_2_4_test extends DomainBaseModuleContextSensitiveTest { +public abstract class DomainBaseModuleContextSensitive_2_4_Test extends DomainBaseModuleContextSensitiveTest { - public DomainBaseModuleContextSensitive_2_4_test() { + public DomainBaseModuleContextSensitive_2_4_Test() { super(); { Module mod = new Module("", "billing", "", "", "", "1.1.0"); diff --git a/api-2.4/src/test/java/org/openmrs/module/initializer/api/PaymentModesLoaderIntegrationTest.java b/api-2.4/src/test/java/org/openmrs/module/initializer/api/PaymentModesLoaderIntegrationTest.java index d76953357..604cf4f37 100644 --- a/api-2.4/src/test/java/org/openmrs/module/initializer/api/PaymentModesLoaderIntegrationTest.java +++ b/api-2.4/src/test/java/org/openmrs/module/initializer/api/PaymentModesLoaderIntegrationTest.java @@ -12,7 +12,7 @@ import org.openmrs.module.initializer.api.billing.PaymentModesLoader; import org.springframework.beans.factory.annotation.Autowired; -public class PaymentModesLoaderIntegrationTest extends DomainBaseModuleContextSensitive_2_4_test { +public class PaymentModesLoaderIntegrationTest extends DomainBaseModuleContextSensitive_2_4_Test { @Autowired private IPaymentModeService paymentModeService; diff --git a/api/src/main/java/org/openmrs/module/initializer/api/CsvParser.java b/api/src/main/java/org/openmrs/module/initializer/api/CsvParser.java index cc952bfc3..bae0fba69 100644 --- a/api/src/main/java/org/openmrs/module/initializer/api/CsvParser.java +++ b/api/src/main/java/org/openmrs/module/initializer/api/CsvParser.java @@ -189,10 +189,6 @@ public List getLines() { * @return The resulting CsvParserResult instance. */ public CsvFailingLines process(List lines) { - // Save cached objects to avoid losing them prematurely by other Parsers - // See DisplaysCsvParser#save(OpenmrsObject) - Context.flushSession(); - Context.clearSession(); CsvFailingLines result = new CsvFailingLines(); int saved = 0; @@ -209,8 +205,11 @@ public CsvFailingLines process(List lines) { } catch (Exception e) { result.addFailingLine(new CsvLine(getHeaderLine(), line), e); - if (instance != null) { - Context.evictFromSession(instance); + if (instance != null && instance.getId() != null) { + try { + Context.evictFromSession(instance); + } + catch (Exception hibernateError) {} } } } diff --git a/api/src/main/java/org/openmrs/module/initializer/api/display/DisplaysCsvParser.java b/api/src/main/java/org/openmrs/module/initializer/api/display/DisplaysCsvParser.java index bf6dda597..6ef5a1f60 100644 --- a/api/src/main/java/org/openmrs/module/initializer/api/display/DisplaysCsvParser.java +++ b/api/src/main/java/org/openmrs/module/initializer/api/display/DisplaysCsvParser.java @@ -38,7 +38,9 @@ public OpenmrsObject bootstrap(CsvLine line) throws IllegalArgumentException { public OpenmrsObject save(OpenmrsObject instance) { // Clearing object from session to prevent possibly saving it later on. // See CsvParser#process(List) - Context.clearSession(); + if (instance != null && instance.getId() != null) { + Context.evictFromSession(instance); + } return instance; } } diff --git a/api/src/main/java/org/openmrs/module/initializer/api/idgen/CommonIdentifierSourceLineProcessor.java b/api/src/main/java/org/openmrs/module/initializer/api/idgen/CommonIdentifierSourceLineProcessor.java index 53f4be013..fc984efb7 100644 --- a/api/src/main/java/org/openmrs/module/initializer/api/idgen/CommonIdentifierSourceLineProcessor.java +++ b/api/src/main/java/org/openmrs/module/initializer/api/idgen/CommonIdentifierSourceLineProcessor.java @@ -1,5 +1,6 @@ package org.openmrs.module.initializer.api.idgen; +import org.openmrs.PatientIdentifierType; import org.openmrs.annotation.OpenmrsProfile; import org.openmrs.module.idgen.service.IdentifierSourceService; import org.openmrs.module.initializer.api.CsvLine; @@ -20,6 +21,10 @@ public CommonIdentifierSourceLineProcessor(IdentifierSourceService idgenService) @Override public IdgenSourceWrapper fill(IdgenSourceWrapper instance, CsvLine line) throws IllegalArgumentException { + PatientIdentifierType idType = getPatientIdentifierType(line.getString(HEADER_IDTYPE)); + if (idType == null) { + throw new IllegalArgumentException("No identifier type found for '" + line.get(HEADER_IDTYPE) + "'"); + } instance.getIdentifierSource().setIdentifierType(getPatientIdentifierType(line.getString(HEADER_IDTYPE))); instance.getIdentifierSource().setName(line.getString(HEADER_NAME)); instance.getIdentifierSource().setDescription(line.getString(HEADER_DESC)); diff --git a/api/src/main/java/org/openmrs/module/initializer/api/idgen/autogen/AutoGenerationOptionLineProcessor.java b/api/src/main/java/org/openmrs/module/initializer/api/idgen/autogen/AutoGenerationOptionLineProcessor.java index fb966c95c..e527dff26 100644 --- a/api/src/main/java/org/openmrs/module/initializer/api/idgen/autogen/AutoGenerationOptionLineProcessor.java +++ b/api/src/main/java/org/openmrs/module/initializer/api/idgen/autogen/AutoGenerationOptionLineProcessor.java @@ -13,7 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; -@OpenmrsProfile(modules = { "idgen:4.6.0" }) +@OpenmrsProfile(modules = { "idgen:*" }) public class AutoGenerationOptionLineProcessor extends BaseLineProcessor { final public static String IDENTIFIER_TYPE = "identifier type"; @@ -49,12 +49,19 @@ public AutoGenerationOption fill(AutoGenerationOption option, CsvLine line) thro // Fill identifier type { String identifierTypeRef = line.get(IDENTIFIER_TYPE, true); - option.setIdentifierType(Utils.fetchPatientIdentifierType(identifierTypeRef, ps)); + PatientIdentifierType idType = Utils.fetchPatientIdentifierType(identifierTypeRef, ps); + if (idType == null) { + throw new IllegalArgumentException("No identifier type found for '" + identifierTypeRef + "'"); + } + option.setIdentifierType(idType); } // Fill identifier source { String identifierSourceRef = line.get(IDENTIFIER_SOURCE, true); IdentifierSource source = iss.getIdentifierSourceByUuid(identifierSourceRef); + if (source == null) { + throw new IllegalArgumentException("No identifier source found for '" + identifierSourceRef + "'"); + } option.setSource(source); } // Fill location diff --git a/validator/pom.xml b/validator/pom.xml index 79dd34532..6952698a7 100644 --- a/validator/pom.xml +++ b/validator/pom.xml @@ -14,15 +14,16 @@ Validator project for Initializer - 4.1.4.RELEASE - 2.3.6 + 2.6.9 2.0.6 1.7.2 - 1.15.3 + 1.17.6 1.9.0 1.6.0 1.1.0 + 2.2.0 + 2.3.0 @@ -70,13 +71,6 @@ jar - - ch.vorburger.mariaDB4j - mariaDB4j - 2.4.0 - jar - - org.apache.httpcomponents httpclient @@ -87,11 +81,19 @@ mysql mysql-connector-java - 5.1.45 - jar + 8.0.30 runtime + jar + + com.mysql + mysql-connector-mxj + 5.0.11 + runtime + jar + + org.hsqldb sqltool @@ -146,13 +148,6 @@ openmrs-api ${openmrsPlatformVersion} jar - - - - org.slf4j - slf4j-api - - @@ -160,13 +155,6 @@ openmrs-api test-jar ${openmrsPlatformVersion} - - - - org.slf4j - slf4j-api - - @@ -174,6 +162,12 @@ openmrs-test ${openmrsPlatformVersion} pom + + + org.powermock + powermock-api-mockito2 + + @@ -351,6 +345,22 @@ runtime jar + + + org.openmrs.module + fhir2-api-2.5 + ${fhir2Version} + runtime + jar + + + + org.openmrs.module + fhir2-api-2.6 + ${fhir2Version} + runtime + jar + org.openmrs.module @@ -377,11 +387,12 @@ - org.testcontainers - mysql - ${mysqlTestContainerVersion} + org.testcontainers + mysql + ${mysqlTestContainerVersion} + jar - + org.openmrs.module exti18n-api @@ -389,7 +400,7 @@ runtime jar - + org.openmrs.module stockmanagement-api @@ -397,7 +408,7 @@ runtime jar - + org.openmrs.module emrapi-api @@ -405,6 +416,34 @@ runtime jar + + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + 2.10.1 + + + + com.fasterxml.jackson.core + jackson-databind + 2.10.5.1 + + + + org.yaml + snakeyaml + 1.24 + runtime + jar + + + + org.liquibase.ext + liquibase-compat + jar + runtime + 4.0.0-beta2 + @@ -485,7 +524,48 @@ moduleApplicationContext.xml + + log4j2.xml + src/main/resources/log4j2.xml + + + hibernate.default.properties + src/main/resources/hibernate.default.properties + + + + + *:* + + META-INF/org/apache/logging/log4j/core/config/plugins/Log4j2Plugins.dat + + + + *:* + + log4j2.xml + + + + org.liquibase:liquibase-core + + META-INF/services/liquibase.servicelocator.ServiceLocator + + + + org.openmrs.module:initializer-validator + + META-INF/services/liquibase.servicelocator.ServiceLocator + + + + *:* + + hibernate.default.properties + + + diff --git a/validator/src/main/java/org/openmrs/module/initializer/validator/ConfigurationTester.java b/validator/src/main/java/org/openmrs/module/initializer/validator/ConfigurationTester.java index 585467bb6..474c684a0 100644 --- a/validator/src/main/java/org/openmrs/module/initializer/validator/ConfigurationTester.java +++ b/validator/src/main/java/org/openmrs/module/initializer/validator/ConfigurationTester.java @@ -13,7 +13,6 @@ import static org.openmrs.module.initializer.validator.Validator.cmdLine; import java.io.File; -import java.io.IOException; import java.lang.reflect.Field; import java.net.URISyntaxException; import java.nio.file.Paths; @@ -25,6 +24,9 @@ import java.util.Properties; import java.util.stream.Stream; +import org.hibernate.cfg.Environment; +import org.hibernate.dialect.MySQL5Dialect; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.annotation.Rollback; @@ -34,86 +36,48 @@ import org.dbunit.database.DatabaseConnection; import org.dbunit.database.IDatabaseConnection; import org.dbunit.ext.mysql.MySqlDataTypeFactory; -import org.hibernate.cfg.Environment; -import org.hibernate.dialect.MySQLDialect; import org.hsqldb.cmdline.SqlFile; import org.junit.After; -import org.junit.AfterClass; import org.junit.Assert; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import org.openmrs.api.context.Context; +import org.openmrs.api.context.ContextAuthenticationException; +import org.openmrs.api.context.UsernamePasswordCredentials; +import org.openmrs.liquibase.ChangeSetExecutorCallback; import org.openmrs.module.DaemonToken; +import org.openmrs.module.Module; import org.openmrs.module.ModuleFactory; import org.openmrs.module.initializer.Domain; import org.openmrs.module.initializer.DomainBaseModuleContextSensitiveTest; import org.openmrs.module.openconceptlab.OpenConceptLabActivator; +import org.openmrs.test.SkipBaseSetup; import org.openmrs.test.TestUtil; import org.openmrs.util.DatabaseUpdater; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.testcontainers.containers.MySQLContainer; -import ch.vorburger.exec.ManagedProcessException; @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) public class ConfigurationTester extends DomainBaseModuleContextSensitiveTest { protected static final Logger log = LoggerFactory.getLogger(ConfigurationTester.class); - private static MySQLContainer mysqlContainer = new MySQLContainer("mysql:5.7.31"); - private static ConfigurableApplicationContext storedApplicationContext; private String configDirPath; private String cielFilePath; - protected String getAppDataDirPath() { - return Paths.get(configDirPath).getParent().toString(); - } - - @BeforeClass - public static void setupMySqlDb() throws IOException { - mysqlContainer.withDatabaseName("openmrs"); - mysqlContainer.withUsername("root"); - mysqlContainer.withPassword(""); - mysqlContainer.withCommand("mysqld --character-set-server=utf8 --collation-server=utf8_general_ci"); - mysqlContainer.start(); - - } - - protected void setupDatabaseProps(Properties props) throws ManagedProcessException, URISyntaxException { - props.setProperty(Environment.DIALECT, MySQLDialect.class.getName()); - String url = "jdbc:mysql://localhost:DATABASE_PORT/openmrs?autoReconnect=true&sessionVariables=default_storage_engine%3DInnoDB&useUnicode=true&characterEncoding=UTF-8&useSSL=false"; - url = url.replaceAll("DATABASE_PORT", String.valueOf(mysqlContainer.getMappedPort(3306))); - props.setProperty(Environment.URL, url); - - props.setProperty(Environment.USER, "root"); - props.setProperty(Environment.PASS, ""); - props.setProperty("initializer.log.enabled", "true"); - // disable hibernate indexing during searches to avoid LazyInitializationExceptions - // on indexed entities after test execution - props.setProperty("hibernate.search.indexing_strategy", "manual"); - - // automatically create the tables defined in the hbm files - props.setProperty(Environment.HBM2DDL_AUTO, "update"); + @Override + public Boolean useInMemoryDatabase() { + return false; } - @Override - public Properties getRuntimeProperties() { - if (runtimeProperties == null) { - runtimeProperties = TestUtil.getRuntimeProperties(getWebappName()); - } - - try { - setupDatabaseProps(runtimeProperties); - } - catch (ManagedProcessException | URISyntaxException e) { - log.error("mariaDB4j could not be setup properly, reverting to OpenMRS defaults.", e); - runtimeProperties = super.getRuntimeProperties(); + protected String getAppDataDirPath() { + if (configDirPath == null) { + configDirPath = cmdLine.getOptionValue(ARG_CONFIG_DIR); } - return runtimeProperties; + return Paths.get(configDirPath).getParent().toString(); } @Override @@ -121,14 +85,6 @@ public void updateSearchIndex() { // to prevent Data Filter's 'Illegal Record Access' } - @Override - protected IDatabaseConnection setupDatabaseConnection(Connection connection) throws DatabaseUnitException { - IDatabaseConnection dbUnitConn = new DatabaseConnection(connection); - DatabaseConfig config = dbUnitConn.getConfig(); - config.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new MySqlDataTypeFactory()); - return dbUnitConn; - } - @Override protected void turnOnDBConstraints(Connection connection) throws SQLException { PreparedStatement ps = connection.prepareStatement("SET FOREIGN_KEY_CHECKS=1;"); @@ -154,8 +110,11 @@ public void clearSessionAfterEachTest() { public ConfigurationTester() throws Exception { super(); - - configDirPath = cmdLine.getOptionValue(ARG_CONFIG_DIR); + { + Module mod = new Module("", "queue", "", "", "", "1.0.0"); + mod.setFile(new File("")); + ModuleFactory.getStartedModulesMap().put(mod.getModuleId(), mod); + } if (cmdLine.hasOption(ARG_CIEL_FILE)) { cielFilePath = cmdLine.getOptionValue(ARG_CIEL_FILE); } @@ -171,10 +130,7 @@ public ConfigurationTester() throws Exception { if (!cmdLine.hasOption(ARG_CHECKSUMS)) { getRuntimeProperties().put(PROPS_SKIPCHECKSUMS, "true"); } - // Setting up initial core database - DatabaseUpdater.executeChangelog("liquibase-schema-only.xml", null); - DatabaseUpdater.executeChangelog("liquibase-core-data.xml", null); - DatabaseUpdater.executeChangelog("liquibase-update-to-latest.xml", null); + DatabaseUpdater.executeChangelog("liquibase-core-data.xml", (ChangeSetExecutorCallback) null); } @Before @@ -211,19 +167,11 @@ public void prepareOcl() { new OpenConceptLabActivator().setDaemonToken(daemonToken); } - @Override - public void baseSetupWithStandardDataAndAuthentication() throws SQLException { - // Open a session if needed - if (!Context.isSessionOpen()) { - Context.openSession(); - } - authenticate(); - Context.clearSession(); - } - @Test + @SkipBaseSetup @Rollback(false) public void loadConfiguration() throws Exception { + Context.authenticate(new UsernamePasswordCredentials("admin", "test")); super.getConnection().setAutoCommit(true); getService().loadUnsafe(true, Validator.unsafe); Context.flushSession(); @@ -243,13 +191,13 @@ public void conclude() throws URISyntaxException { storedApplicationContext = (ConfigurableApplicationContext) applicationContext; } - @AfterClass - public static void tearDownAfterClass() throws Exception { - if (null != mysqlContainer) { - mysqlContainer.stop(); - } - if (null != storedApplicationContext) { - storedApplicationContext.close(); - } + public Properties getRuntimeProperties() { + + // Override MySQL Dialect for compatibility purposes + Properties runtimeProperties = super.getRuntimeProperties(); + runtimeProperties.setProperty(Environment.DIALECT, MySQL5Dialect.class.getName()); + runtimeProperties.setProperty(Environment.HBM2DDL_AUTO, "update"); + + return runtimeProperties; } } diff --git a/validator/src/main/java/org/openmrs/module/initializer/validator/Validator.java b/validator/src/main/java/org/openmrs/module/initializer/validator/Validator.java index 2b276c1ee..411ffb064 100644 --- a/validator/src/main/java/org/openmrs/module/initializer/validator/Validator.java +++ b/validator/src/main/java/org/openmrs/module/initializer/validator/Validator.java @@ -37,6 +37,9 @@ import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.openmrs.module.initializer.Domain; +import org.openmrs.module.initializer.api.logging.InitializerLogConfigurator; +import org.openmrs.module.initializer.api.logging.InitializerLogConfigurator2_0; +import org.openmrs.module.initializer.api.logging.InitializerLogConfigurator2_4; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -170,22 +173,16 @@ public static Path getLogFilePath() { } public static void setupLog4j() { - org.apache.log4j.Logger.getRootLogger().setLevel(level); - - org.apache.log4j.Logger.getLogger("org.openmrs").setLevel(level); - org.apache.log4j.Logger.getLogger("org.openmrs.api").setLevel(level); - - org.apache.log4j.Logger inizLogger = org.apache.log4j.Logger.getLogger("org.openmrs.module.initializer"); - inizLogger.setLevel(org.apache.log4j.Level.INFO); // this is to focus the Inititalizer log file to the most relevant messages - if (logFilePath != null) { - try { - inizLogger.addAppender(new org.apache.log4j.FileAppender( - new PatternLayout("%p - %C{1}.%M(%L) |%d{ISO8601}| %m%n"), logFilePath.toString())); - } - catch (IOException e) { - log.error("The validator log file appender could not be setup because of: ", e); - } + InitializerLogConfigurator logConfigurator; + try { + Class.forName("org.apache.logging.log4j.LogManager"); + logConfigurator = new InitializerLogConfigurator2_4(); } + catch (ClassNotFoundException | LinkageError e) { + logConfigurator = new InitializerLogConfigurator2_0(); + } + + logConfigurator.setupLogging(level, logFilePath); } /** diff --git a/validator/src/main/resources/hibernate.default.properties b/validator/src/main/resources/hibernate.default.properties new file mode 100644 index 000000000..ceeac7ec6 --- /dev/null +++ b/validator/src/main/resources/hibernate.default.properties @@ -0,0 +1,42 @@ +# Default (overridable) with runtime properties file + +# Connection Properties --> +hibernate.connection.username=test +hibernate.connection.password=test +hibernate.connection.driver_class=com.mysql.cj.jdbc.Driver +hibernate.connection.url=jdbc:mysql://localhost:3306/openmrs?autoReconnect=true + +# Hibernate specific connection/debug properties +hibernate.show_sql=false +hibernate.format_sql=true +hibernate.lazy=true +hibernate.dialect=org.hibernate.dialect.MySQLDialect + +# Hibernate specific connection pool properties +hibernate.c3p0.max_size=50 +hibernate.c3p0.min_size=0 +hibernate.c3p0.timeout=100 +hibernate.c3p0.max_statements=0 +hibernate.c3p0.idle_test_period=3000 +hibernate.c3p0.acquire_increment=1 + +# Hibernate debugging options +hibernate.generate_statistics=true +hibernate.cache.use_structured_entries=false + +#Hibernate second level cache +hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory +hibernate.cache.use_second_level_cache=false + +hibernate.cache.use_query_cache=false + +hibernate.search.default.directory_provider=filesystem +hibernate.search.default.indexBase=%APPLICATION_DATA_DIRECTORY%/lucene/indexes +hibernate.search.default.locking_strategy=single + +hibernate.jdbc.batch_size=50 +hibernate.order_inserts=true +hibernate.order_updates=true + +#For Backward Compatibility of Sequences after Hibernate 5 +hibernate.id.new_generator_mappings=false diff --git a/validator/src/main/resources/log4j2.xml b/validator/src/main/resources/log4j2.xml new file mode 100644 index 000000000..478cf73e9 --- /dev/null +++ b/validator/src/main/resources/log4j2.xml @@ -0,0 +1,34 @@ + + + + + + + %p - %C{1}.%M(%L) |%d{ISO8601}| %m%n + + + + + + + + + + + + + + + + diff --git a/validator/src/test/java/org/openmrs/module/initializer/validator/ValidatorTest.java b/validator/src/test/java/org/openmrs/module/initializer/validator/ValidatorTest.java index 668463bcc..c10f511f1 100644 --- a/validator/src/test/java/org/openmrs/module/initializer/validator/ValidatorTest.java +++ b/validator/src/test/java/org/openmrs/module/initializer/validator/ValidatorTest.java @@ -1,6 +1,5 @@ package org.openmrs.module.initializer.validator; -import static groovy.json.internal.Charsets.UTF_8; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -35,9 +34,9 @@ public void test_trimCielSql() throws URISyntaxException, IOException { File trimmedCielFile = Validator.trimCielSqlFile(cielFile); // verify - String trimmedSql = readFile(trimmedCielFile.getAbsolutePath(), UTF_8); + String trimmedSql = readFile(trimmedCielFile.getAbsolutePath(), Charset.forName("UTF-8")); File expectedFile = new File(getClass().getClassLoader().getResource("trimmed_ciel_excerpt.txt").toURI()); - String expectedSql = readFile(expectedFile.getAbsolutePath(), UTF_8); + String expectedSql = readFile(expectedFile.getAbsolutePath(), Charset.forName("UTF-8")); assertEquals(expectedSql, trimmedSql); }