TSK-850: reconfigured taskana-spring-example

This commit is contained in:
Mustapha Zorgati 2019-05-06 10:02:43 +02:00 committed by Holger Hagen
parent 12bf92384e
commit 407f4db3e5
6 changed files with 56 additions and 61 deletions

View File

@ -1,50 +1,40 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>pro.taskana</groupId>
<artifactId>taskana-spring-example</artifactId> <artifactId>taskana-spring-example</artifactId>
<version>1.1.3-SNAPSHOT</version>
<name>${project.groupId}:${project.artifactId}</name>
<description>The Taskana Spring sample application.</description>
<parent> <parent>
<groupId>org.springframework.boot</groupId> <artifactId>taskana-lib-parent</artifactId>
<artifactId>spring-boot-starter-parent</artifactId> <groupId>pro.taskana</groupId>
<version>2.0.2.RELEASE</version> <version>1.1.2-SNAPSHOT</version>
<relativePath/> <relativePath>..</relativePath>
</parent> </parent>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> <version>${version.spring-boot}</version>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId> <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency> <version>${version.spring-boot}</version>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<version>${version.spring-boot}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>pro.taskana</groupId> <groupId>pro.taskana</groupId>
<artifactId>taskana-spring</artifactId> <artifactId>taskana-spring</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>junit</groupId> <groupId>junit</groupId>
<artifactId>junit</artifactId> <artifactId>junit</artifactId>
@ -57,17 +47,20 @@
<version>1.3</version> <version>1.3</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.194</version>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
<!-- Package as an executable jar/war -->
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
<version>${version.spring-boot}</version>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
<name>${project.groupId}:${project.artifactId}</name>
<url>http://taskana.pro</url>
<description>The Taskana Spring sample application.</description>
</project> </project>

View File

@ -19,6 +19,9 @@ import pro.taskana.exceptions.TaskNotFoundException;
import pro.taskana.exceptions.WorkbasketAlreadyExistException; import pro.taskana.exceptions.WorkbasketAlreadyExistException;
import pro.taskana.exceptions.WorkbasketNotFoundException; import pro.taskana.exceptions.WorkbasketNotFoundException;
/**
* TODO.
*/
@Component @Component
@Transactional @Transactional
public class ExampleBootstrap { public class ExampleBootstrap {

View File

@ -18,7 +18,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
import pro.taskana.configuration.SpringTaskanaEngineConfiguration; import pro.taskana.configuration.SpringTaskanaEngineConfiguration;
/** /**
* Class to set /load configuration for Taskana Library * Class to set /load configuration for Taskana Library.
* *
*/ */
@Configuration @Configuration
@ -28,6 +28,9 @@ public class TaskanaConfig {
@Value("${taskana.schemaName:TASKANA}") @Value("${taskana.schemaName:TASKANA}")
private String schemaName; private String schemaName;
/**
* TODO.
*/
@Profile("inmemorydb") @Profile("inmemorydb")
@Configuration @Configuration
@PropertySource("classpath:customdb.properties") @PropertySource("classpath:customdb.properties")
@ -44,7 +47,8 @@ public class TaskanaConfig {
@Bean @Bean
@Primary @Primary
public DataSource dataSource(DataSourceProperties properties) { public DataSource dataSource(DataSourceProperties properties) {
DataSource dataSource = properties.initializeDataSourceBuilder().build(); DataSource dataSource = properties.
initializeDataSourceBuilder().build();
// if TaskanaEngineImpl runs with SpringManagedTransactionFactory, then // if TaskanaEngineImpl runs with SpringManagedTransactionFactory, then
// there is no need to wrap the dataSource into TransactionAwareDataSourceProxy ... // there is no need to wrap the dataSource into TransactionAwareDataSourceProxy ...
// return new TransactionAwareDataSourceProxy(dataSource); // return new TransactionAwareDataSourceProxy(dataSource);

View File

@ -5,14 +5,15 @@ import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
/** /**
* Class to start an Application to test Taskana * Class to start an Application to test Taskana.
* *
*/ */
@SpringBootApplication @SpringBootApplication
@Import(TaskanaConfig.class) @Import(TaskanaConfig.class)
@SuppressWarnings("checkstyle:hideutilityclassconstructor")
public class TaskanaConfigTestApplication { public class TaskanaConfigTestApplication {
public static void main(String[] args) { public static void main(String[] args) {
new SpringApplicationBuilder(TaskanaConfigTestApplication.class).run(args); new SpringApplicationBuilder(TaskanaConfigTestApplication.class).run(args);
} }
} }

View File

@ -8,7 +8,6 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull; import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat; import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.internal.verification.VerificationModeFactory.atLeastOnce; import static org.mockito.internal.verification.VerificationModeFactory.atLeastOnce;
@ -35,6 +34,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.classic.spi.LoggingEvent; import ch.qos.logback.classic.spi.LoggingEvent;
import ch.qos.logback.core.Appender; import ch.qos.logback.core.Appender;
import pro.taskana.exceptions.DomainNotFoundException; import pro.taskana.exceptions.DomainNotFoundException;
@ -43,7 +43,6 @@ import pro.taskana.exceptions.NotAuthorizedException;
import pro.taskana.exceptions.TaskanaException; import pro.taskana.exceptions.TaskanaException;
import pro.taskana.exceptions.WorkbasketAlreadyExistException; import pro.taskana.exceptions.WorkbasketAlreadyExistException;
import pro.taskana.exceptions.WorkbasketNotFoundException; import pro.taskana.exceptions.WorkbasketNotFoundException;
import pro.taskana.history.HistoryEventProducer;
import pro.taskana.impl.TaskImpl; import pro.taskana.impl.TaskImpl;
import pro.taskana.impl.TaskanaEngineImpl; import pro.taskana.impl.TaskanaEngineImpl;
import pro.taskana.impl.WorkbasketImpl; import pro.taskana.impl.WorkbasketImpl;
@ -63,27 +62,31 @@ import pro.taskana.transaction.TaskanaTransactionProvider;
public class TaskanaTransactionIntTest { public class TaskanaTransactionIntTest {
private static final int POOL_TIME_TO_WAIT = 50; private static final int POOL_TIME_TO_WAIT = 50;
@Autowired
private TestRestTemplate restTemplate;
@Autowired
private DataSource dataSource;
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private TaskanaEngine taskanaEngine;
@Autowired @Autowired
TaskanaTransactionProvider<Object> springTransactionProvider; TaskanaTransactionProvider<Object> springTransactionProvider;
@Autowired
private TestRestTemplate restTemplate;
@Autowired
private DataSource dataSource;
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
private TaskanaEngine taskanaEngine;
@Captor @Captor
private ArgumentCaptor<LoggingEvent> captorLoggingEvent; private ArgumentCaptor<LoggingEvent> captorLoggingEvent;
@Mock @Mock
private Appender mockAppender; private Appender<ILoggingEvent> mockAppender;
private static ObjectReference createDefaultObjRef() {
ObjectReference objRef = new ObjectReference();
objRef.setCompany("company");
objRef.setSystem("system");
objRef.setSystemInstance("instance");
objRef.setType("type");
objRef.setValue("value");
return objRef;
}
@Before @Before
public void before() { public void before() {
@ -324,14 +327,4 @@ public class TaskanaTransactionIntTest {
task.setPrimaryObjRef(createDefaultObjRef()); task.setPrimaryObjRef(createDefaultObjRef());
return task; return task;
} }
private static ObjectReference createDefaultObjRef() {
ObjectReference objRef = new ObjectReference();
objRef.setCompany("company");
objRef.setSystem("system");
objRef.setSystemInstance("instance");
objRef.setType("type");
objRef.setValue("value");
return objRef;
}
} }

View File

@ -24,6 +24,7 @@
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId> <artifactId>spring-tx</artifactId>
<version>${version.spring}</version> <version>${version.spring}</version>
<scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>