From: Simon Brandhof Date: Thu, 23 Feb 2017 22:11:37 +0000 (+0100) Subject: MyBatis implements Startable X-Git-Tag: 6.4-RC1~871 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=03acebc23f8902d64efd7689cadb2711f9ac67b3;p=sonarqube.git MyBatis implements Startable --- diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/MyBatis.java b/server/sonar-db-dao/src/main/java/org/sonar/db/MyBatis.java index 64963c43d41..250da1dd1e6 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/MyBatis.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/MyBatis.java @@ -29,6 +29,7 @@ import org.apache.ibatis.session.ExecutorType; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; +import org.sonar.api.Startable; import org.sonar.api.utils.log.Loggers; import org.sonar.db.ce.CeActivityMapper; import org.sonar.db.ce.CeQueueMapper; @@ -120,7 +121,7 @@ import org.sonar.db.user.UserTokenDto; import org.sonar.db.user.UserTokenMapper; import org.sonar.db.webhook.WebhookDeliveryMapper; -public class MyBatis { +public class MyBatis implements Startable { private final Database database; private SqlSessionFactory sessionFactory; @@ -144,7 +145,8 @@ public class MyBatis { } } - public MyBatis start() { + @Override + public void start() { LogFactory.useSlf4jLogging(); MyBatisConfBuilder confBuilder = new MyBatisConfBuilder(database); @@ -249,7 +251,11 @@ public class MyBatis { confBuilder.loadMappers(mappers); sessionFactory = new SqlSessionFactoryBuilder().build(confBuilder.build()); - return this; + } + + @Override + public void stop() { + // nothing to do } @VisibleForTesting diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/MyBatisTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/MyBatisTest.java index cefcb6fdb6f..b8639017123 100644 --- a/server/sonar-db-dao/src/test/java/org/sonar/db/MyBatisTest.java +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/MyBatisTest.java @@ -21,6 +21,7 @@ package org.sonar.db; import org.apache.ibatis.session.Configuration; import org.hamcrest.core.Is; +import org.junit.After; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -43,12 +44,18 @@ public class MyBatisTest { database.stop(); } + private MyBatis underTest = new MyBatis(database); + + @After + public void tearDown() throws Exception { + underTest.stop(); + } + @Test public void shouldConfigureMyBatis() { - MyBatis myBatis = new MyBatis(database); - myBatis.start(); + underTest.start(); - Configuration conf = myBatis.getSessionFactory().getConfiguration(); + Configuration conf = underTest.getSessionFactory().getConfiguration(); assertThat(conf.isUseGeneratedKeys(), Is.is(true)); assertThat(conf.hasMapper(RuleMapper.class), Is.is(true)); assertThat(conf.isLazyLoadingEnabled(), Is.is(false)); @@ -56,10 +63,9 @@ public class MyBatisTest { @Test public void shouldOpenBatchSession() { - MyBatis myBatis = new MyBatis(database); - myBatis.start(); + underTest.start(); - try (DbSession session = myBatis.openSession(false)) { + try (DbSession session = underTest.openSession(false)) { assertThat(session.getConnection(), notNullValue()); assertThat(session.getMapper(RuleMapper.class), notNullValue()); }