Closes #2404 - Changes jakarta migration in wildfly
This commit is contained in:
parent
d313551903
commit
b6ab0e3eb1
|
@ -45,8 +45,7 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
<version>${version.mockito-inline}</version>
|
<artifactId>mockito-core</artifactId>
|
||||||
<artifactId>mockito-inline</artifactId>
|
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
|
@ -59,8 +59,7 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
<version>${version.mockito-inline}</version>
|
<artifactId>mockito-core</artifactId>
|
||||||
<artifactId>mockito-inline</artifactId>
|
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
|
@ -66,8 +66,7 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
<version>${version.mockito-inline}</version>
|
<artifactId>mockito-core</artifactId>
|
||||||
<artifactId>mockito-inline</artifactId>
|
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
@ -104,7 +104,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.plugin</groupId>
|
<groupId>org.springframework.plugin</groupId>
|
||||||
<artifactId>spring-plugin-core</artifactId>
|
<artifactId>spring-plugin-core</artifactId>
|
||||||
<version>${version.spring.core}</version>
|
<version>${version.spring.plugin.core}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
@ -19,12 +19,25 @@
|
||||||
<sonar.tests/>
|
<sonar.tests/>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
|
<dependencyManagement>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wildfly.bom</groupId>
|
||||||
|
<artifactId>wildfly-ee</artifactId>
|
||||||
|
<version>${version.wildfly}</version>
|
||||||
|
<scope>import</scope>
|
||||||
|
<type>pom</type>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.jboss.arquillian</groupId>
|
||||||
|
<artifactId>arquillian-bom</artifactId>
|
||||||
|
<version>${version.arquillian}</version>
|
||||||
|
<scope>import</scope>
|
||||||
|
<type>pom</type>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</dependencyManagement>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
|
||||||
<groupId>pro.taskana</groupId>
|
|
||||||
<artifactId>taskana-common-logging</artifactId>
|
|
||||||
<version>${project.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>jakarta.platform</groupId>
|
<groupId>jakarta.platform</groupId>
|
||||||
<artifactId>jakarta.jakartaee-api</artifactId>
|
<artifactId>jakarta.jakartaee-api</artifactId>
|
||||||
|
@ -36,5 +49,171 @@
|
||||||
<artifactId>taskana-cdi</artifactId>
|
<artifactId>taskana-cdi</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!-- TEST dependencies -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>jcl-over-slf4j</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-simple</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.assertj</groupId>
|
||||||
|
<artifactId>assertj-core</artifactId>
|
||||||
|
<version>${version.assertj}</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.awaitility</groupId>
|
||||||
|
<artifactId>awaitility</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.jupiter</groupId>
|
||||||
|
<artifactId>junit-jupiter</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.junit.vintage</groupId>
|
||||||
|
<artifactId>junit-vintage-engine</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>jakarta.servlet</groupId>
|
||||||
|
<artifactId>jakarta.servlet-api</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.h2database</groupId>
|
||||||
|
<artifactId>h2</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.jboss.arquillian.junit</groupId>
|
||||||
|
<artifactId>arquillian-junit-container</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.jboss.shrinkwrap.resolver</groupId>
|
||||||
|
<artifactId>shrinkwrap-resolver-impl-maven</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.jboss.shrinkwrap.resolver</groupId>
|
||||||
|
<artifactId>shrinkwrap-resolver-api-maven</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.wildfly.arquillian</groupId>
|
||||||
|
<artifactId>wildfly-arquillian-container-managed</artifactId>
|
||||||
|
<version>${version.arquillian.managed.wildfly}</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-dependency-plugin</artifactId>
|
||||||
|
<version>${version.maven.dependency}</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>unpack-wildfly</id>
|
||||||
|
<phase>process-test-classes</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>unpack</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<artifactItems>
|
||||||
|
<artifactItem>
|
||||||
|
<groupId>org.wildfly</groupId>
|
||||||
|
<artifactId>wildfly-dist</artifactId>
|
||||||
|
<version>${version.wildfly}</version>
|
||||||
|
<type>zip</type>
|
||||||
|
<overWrite>false</overWrite>
|
||||||
|
<outputDirectory>${project.build.directory}</outputDirectory>
|
||||||
|
</artifactItem>
|
||||||
|
</artifactItems>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>copy-latest-h2-db-driver</id>
|
||||||
|
<phase>process-test-classes</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<artifactItems>
|
||||||
|
<artifactItem>
|
||||||
|
<groupId>com.h2database</groupId>
|
||||||
|
<artifactId>h2</artifactId>
|
||||||
|
<outputDirectory>
|
||||||
|
${project.build.directory}/wildfly-${version.wildfly}/modules/system/layers/base/com/h2database/h2/main
|
||||||
|
</outputDirectory>
|
||||||
|
</artifactItem>
|
||||||
|
</artifactItems>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-resources-plugin</artifactId>
|
||||||
|
<version>${version.maven.resources}</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>copy-h2-module-xml</id>
|
||||||
|
<phase>process-test-classes</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy-resources</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>
|
||||||
|
${project.build.directory}/wildfly-${version.wildfly}/modules/system/layers/base/com/h2database/h2/main
|
||||||
|
</outputDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/test/resources</directory>
|
||||||
|
<includes>
|
||||||
|
<include>module.xml</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>copy-wildfly-config-xml</id>
|
||||||
|
<phase>process-test-classes</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy-resources</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>
|
||||||
|
${project.build.directory}/wildfly-${version.wildfly}/standalone/configuration
|
||||||
|
</outputDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/test/resources</directory>
|
||||||
|
<includes>
|
||||||
|
<include>int-test-standalone.xml</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>jboss</id>
|
||||||
|
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -1,57 +1,77 @@
|
||||||
package pro.taskana.example;
|
package pro.taskana.example;
|
||||||
|
|
||||||
import jakarta.annotation.PostConstruct;
|
|
||||||
import jakarta.ejb.EJB;
|
|
||||||
import jakarta.enterprise.context.ApplicationScoped;
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
import jakarta.enterprise.context.Initialized;
|
|
||||||
import jakarta.enterprise.event.Observes;
|
import jakarta.enterprise.event.Observes;
|
||||||
import pro.taskana.classification.api.exceptions.ClassificationNotFoundException;
|
import jakarta.enterprise.event.Startup;
|
||||||
import pro.taskana.common.api.exceptions.InvalidArgumentException;
|
import jakarta.inject.Inject;
|
||||||
import pro.taskana.task.api.exceptions.AttachmentPersistenceException;
|
import org.slf4j.Logger;
|
||||||
import pro.taskana.task.api.exceptions.InvalidOwnerException;
|
import org.slf4j.LoggerFactory;
|
||||||
import pro.taskana.task.api.exceptions.InvalidTaskStateException;
|
import pro.taskana.classification.api.models.Classification;
|
||||||
import pro.taskana.task.api.exceptions.ObjectReferencePersistenceException;
|
import pro.taskana.common.api.exceptions.TaskanaException;
|
||||||
import pro.taskana.task.api.exceptions.TaskAlreadyExistException;
|
|
||||||
import pro.taskana.task.api.exceptions.TaskNotFoundException;
|
|
||||||
import pro.taskana.task.api.models.Task;
|
import pro.taskana.task.api.models.Task;
|
||||||
import pro.taskana.task.internal.models.ObjectReferenceImpl;
|
import pro.taskana.task.internal.models.ObjectReferenceImpl;
|
||||||
import pro.taskana.workbasket.api.exceptions.NotAuthorizedOnWorkbasketException;
|
import pro.taskana.workbasket.api.WorkbasketType;
|
||||||
import pro.taskana.workbasket.api.exceptions.WorkbasketNotFoundException;
|
import pro.taskana.workbasket.api.models.Workbasket;
|
||||||
|
|
||||||
/** Example Bootstrap Application. */
|
/** Example Bootstrap Application. */
|
||||||
@ApplicationScoped
|
@ApplicationScoped
|
||||||
public class ExampleBootstrap {
|
public class ExampleBootstrap {
|
||||||
|
|
||||||
@EJB private TaskanaEjb taskanaEjb;
|
private static final Logger LOGGER = LoggerFactory.getLogger(ExampleBootstrap.class);
|
||||||
|
|
||||||
@PostConstruct
|
private static final String CDIDOMAIN = "CDIDOMAIN";
|
||||||
public void init(@Observes @Initialized(ApplicationScoped.class) Object init)
|
private static final String CLASSIFICATION_TYPE = "T1";
|
||||||
throws TaskNotFoundException,
|
|
||||||
WorkbasketNotFoundException,
|
private final TaskanaEjb taskanaEjb;
|
||||||
ClassificationNotFoundException,
|
|
||||||
InvalidOwnerException,
|
public ExampleBootstrap() {
|
||||||
TaskAlreadyExistException,
|
this.taskanaEjb = null;
|
||||||
InvalidArgumentException,
|
}
|
||||||
AttachmentPersistenceException,
|
|
||||||
ObjectReferencePersistenceException,
|
@Inject
|
||||||
NotAuthorizedOnWorkbasketException,
|
public ExampleBootstrap(TaskanaEjb taskanaEjb) {
|
||||||
InvalidTaskStateException {
|
this.taskanaEjb = taskanaEjb;
|
||||||
System.out.println("---------------------------> Start App");
|
}
|
||||||
ObjectReferenceImpl objRef = new ObjectReferenceImpl();
|
|
||||||
objRef.setCompany("aCompany");
|
/**
|
||||||
objRef.setSystem("aSystem");
|
* The parameter `@Observes Startup` makes sure that the dependency injection framework calls this
|
||||||
objRef.setSystemInstance("anInstance");
|
* method on system startup. And to do that, it needs to call `@PostConstruct start()` first.
|
||||||
objRef.setType("aType");
|
*
|
||||||
objRef.setValue("aValue");
|
* @param startup just the startup event
|
||||||
Task task = taskanaEjb.getTaskService().newTask(null);
|
* @throws ExampleStartupException in case of task creation fails
|
||||||
task.setPrimaryObjRef(objRef);
|
*/
|
||||||
task = taskanaEjb.getTaskService().createTask(task);
|
public void init(@Observes Startup startup) throws ExampleStartupException {
|
||||||
System.out.println("---------------------------> Task started: " + task.getId());
|
try {
|
||||||
taskanaEjb.getTaskService().claim(task.getId());
|
LOGGER.info("---------------------------> Start App -- {}", startup);
|
||||||
System.out.println(
|
Workbasket workbasket = taskanaEjb.getWorkbasketService().newWorkbasket("KEY", CDIDOMAIN);
|
||||||
"---------------------------> Task claimed: "
|
workbasket.setName("wb");
|
||||||
+ taskanaEjb.getTaskService().getTask(task.getId()).getOwner());
|
workbasket.setType(WorkbasketType.PERSONAL);
|
||||||
taskanaEjb.getTaskService().completeTask(task.getId());
|
workbasket = taskanaEjb.getWorkbasketService().createWorkbasket(workbasket);
|
||||||
System.out.println("---------------------------> Task completed");
|
Classification classification =
|
||||||
|
taskanaEjb
|
||||||
|
.getClassificationService()
|
||||||
|
.newClassification("TEST", CDIDOMAIN, CLASSIFICATION_TYPE);
|
||||||
|
taskanaEjb.getClassificationService().createClassification(classification);
|
||||||
|
ObjectReferenceImpl objRef = new ObjectReferenceImpl();
|
||||||
|
objRef.setCompany("aCompany");
|
||||||
|
objRef.setSystem("aSystem");
|
||||||
|
objRef.setSystemInstance("anInstance");
|
||||||
|
objRef.setType("aType");
|
||||||
|
objRef.setValue("aValue");
|
||||||
|
Task task = taskanaEjb.getTaskService().newTask(workbasket.getId());
|
||||||
|
task.setClassificationKey(classification.getKey());
|
||||||
|
task.setName("BootstrapTask");
|
||||||
|
task.setPrimaryObjRef(objRef);
|
||||||
|
task = taskanaEjb.getTaskService().createTask(task);
|
||||||
|
LOGGER.info("---------------------------> Task started: {}", task.getId());
|
||||||
|
taskanaEjb.getTaskService().claim(task.getId());
|
||||||
|
LOGGER.info(
|
||||||
|
"---------------------------> Task claimed: {}",
|
||||||
|
taskanaEjb.getTaskService().getTask(task.getId()).getOwner());
|
||||||
|
taskanaEjb.getTaskService().completeTask(task.getId());
|
||||||
|
LOGGER.info("---------------------------> Task completed");
|
||||||
|
} catch (TaskanaException e) {
|
||||||
|
throw new ExampleStartupException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
package pro.taskana.example;
|
||||||
|
|
||||||
|
public class ExampleStartupException extends RuntimeException {
|
||||||
|
|
||||||
|
public ExampleStartupException(Throwable cause) {
|
||||||
|
super("Can't bootstrap CDI example application", cause);
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,15 +2,45 @@ package pro.taskana.example;
|
||||||
|
|
||||||
import jakarta.ejb.Stateless;
|
import jakarta.ejb.Stateless;
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
|
import pro.taskana.classification.api.ClassificationService;
|
||||||
import pro.taskana.task.api.TaskService;
|
import pro.taskana.task.api.TaskService;
|
||||||
|
import pro.taskana.workbasket.api.WorkbasketService;
|
||||||
|
|
||||||
/** example Taskana EJB. */
|
/** example Taskana EJB. */
|
||||||
@Stateless
|
@Stateless
|
||||||
public class TaskanaEjb {
|
public class TaskanaEjb {
|
||||||
|
|
||||||
@Inject private TaskService taskService;
|
private final TaskService taskService;
|
||||||
|
|
||||||
|
private final ClassificationService classificationService;
|
||||||
|
|
||||||
|
private final WorkbasketService workbasketService;
|
||||||
|
|
||||||
|
public TaskanaEjb() {
|
||||||
|
this.taskService = null;
|
||||||
|
this.classificationService = null;
|
||||||
|
this.workbasketService = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public TaskanaEjb(
|
||||||
|
TaskService taskService,
|
||||||
|
ClassificationService classificationService,
|
||||||
|
WorkbasketService workbasketService) {
|
||||||
|
this.taskService = taskService;
|
||||||
|
this.classificationService = classificationService;
|
||||||
|
this.workbasketService = workbasketService;
|
||||||
|
}
|
||||||
|
|
||||||
public TaskService getTaskService() {
|
public TaskService getTaskService() {
|
||||||
return taskService;
|
return taskService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ClassificationService getClassificationService() {
|
||||||
|
return classificationService;
|
||||||
|
}
|
||||||
|
|
||||||
|
public WorkbasketService getWorkbasketService() {
|
||||||
|
return workbasketService;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
<beans xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd">
|
||||||
|
</beans>
|
|
@ -1 +1,19 @@
|
||||||
datasource.jndi=java:jboss/datasources/Taskana
|
datasource.jndi=java:jboss/datasources/Taskana
|
||||||
|
taskana.domains=CDIDOMAIN
|
||||||
|
taskana.classification.types=T1
|
||||||
|
taskana.classification.categories.T1=DEFAULT
|
||||||
|
# enable or disable the jobscheduler at all
|
||||||
|
# set it to false and no jobs are running
|
||||||
|
taskana.jobs.scheduler.enabled=true
|
||||||
|
# wait time before the first job run
|
||||||
|
taskana.jobs.scheduler.initialStartDelay=100
|
||||||
|
# sleeping time befor the next job runs
|
||||||
|
taskana.jobs.scheduler.period=1
|
||||||
|
# timeunit for the initial start delay and the sleeping period
|
||||||
|
# Possible values: MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS
|
||||||
|
taskana.jobs.scheduler.periodTimeUnit=HOURS
|
||||||
|
taskana.jobs.cleanup.task.enable=true
|
||||||
|
taskana.jobs.priority.task.enable=true
|
||||||
|
taskana.jobs.cleanup.workbasket.enable=true
|
||||||
|
taskana.jobs.refresh.user.enable=false
|
||||||
|
taskana.jobs.cleanup.history.simple.enable=false
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
Manifest-Version: 1.0
|
|
||||||
Class-Path:
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="
|
|
||||||
http://java.sun.com/xml/ns/javaee
|
|
||||||
http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
|
|
||||||
</beans>
|
|
|
@ -1,4 +0,0 @@
|
||||||
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
|
|
||||||
</web-app>
|
|
|
@ -0,0 +1,111 @@
|
||||||
|
package pro.taskana.example;
|
||||||
|
|
||||||
|
import static org.awaitility.Awaitility.await;
|
||||||
|
import static org.awaitility.Durations.ONE_HUNDRED_MILLISECONDS;
|
||||||
|
import static org.awaitility.Durations.TWO_SECONDS;
|
||||||
|
import static org.hamcrest.CoreMatchers.equalTo;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DriverManager;
|
||||||
|
import java.sql.PreparedStatement;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import org.apache.commons.io.FileUtils;
|
||||||
|
import org.h2.jdbc.JdbcSQLNonTransientConnectionException;
|
||||||
|
import org.h2.jdbc.JdbcSQLSyntaxErrorException;
|
||||||
|
import org.jboss.arquillian.container.test.api.Deployment;
|
||||||
|
import org.jboss.arquillian.junit.Arquillian;
|
||||||
|
import org.jboss.shrinkwrap.api.Archive;
|
||||||
|
import org.jboss.shrinkwrap.api.ShrinkWrap;
|
||||||
|
import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
|
||||||
|
import org.jboss.shrinkwrap.api.spec.JavaArchive;
|
||||||
|
import org.jboss.shrinkwrap.resolver.api.maven.Maven;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
|
@RunWith(Arquillian.class)
|
||||||
|
public class ExampleBootstrapTest {
|
||||||
|
|
||||||
|
@Deployment(testable = false, order = 10)
|
||||||
|
public static Archive<?> createDeployment() throws Exception {
|
||||||
|
EnterpriseArchive deployment = ShrinkWrap.create(EnterpriseArchive.class, "taskana.ear");
|
||||||
|
|
||||||
|
File[] libs =
|
||||||
|
Maven.resolver()
|
||||||
|
.loadPomFromFile("pom.xml")
|
||||||
|
.importCompileAndRuntimeDependencies()
|
||||||
|
.resolve()
|
||||||
|
.withTransitivity()
|
||||||
|
.asFile();
|
||||||
|
deployment.addAsLibraries(libs);
|
||||||
|
|
||||||
|
JavaArchive ejbModule = ShrinkWrap.create(JavaArchive.class, "taskana.jar");
|
||||||
|
ejbModule.addClasses(TaskanaEjb.class, ExampleBootstrap.class, ExampleStartupException.class);
|
||||||
|
ejbModule.addAsResource("taskana.properties");
|
||||||
|
deployment.addAsModule(ejbModule);
|
||||||
|
|
||||||
|
deployment.addAsManifestResource("META-INF/beans.xml", "beans.xml");
|
||||||
|
return deployment;
|
||||||
|
}
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void cleanTaskanaH2DataFolder() throws IOException {
|
||||||
|
// Delete Taskana folder if exists
|
||||||
|
Path taskanaH2Data = Path.of(System.getProperty("user.home"), "taskana-h2-data");
|
||||||
|
if (Files.exists(taskanaH2Data)) {
|
||||||
|
FileUtils.deleteDirectory(taskanaH2Data.toFile());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void should_count_tasks_after_example_cdi_application_was_deployed() throws Exception {
|
||||||
|
// this test method is started that fast that the commit
|
||||||
|
// from pro.taskana.example.ExampleBootstrap.init is not completed
|
||||||
|
// so we need to wait here a bit
|
||||||
|
// https://www.baeldung.com/awaitility-testing
|
||||||
|
await()
|
||||||
|
.atLeast(ONE_HUNDRED_MILLISECONDS)
|
||||||
|
.atMost(TWO_SECONDS)
|
||||||
|
.with()
|
||||||
|
.pollInterval(ONE_HUNDRED_MILLISECONDS)
|
||||||
|
.until(
|
||||||
|
() -> {
|
||||||
|
try {
|
||||||
|
return countTasksByName("BootstrapTask");
|
||||||
|
} catch (JdbcSQLSyntaxErrorException | JdbcSQLNonTransientConnectionException e) {
|
||||||
|
// ignore this Exception, because in the beginning the schema is not created
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
equalTo(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
private Connection getConnection() throws Exception {
|
||||||
|
return DriverManager.getConnection(
|
||||||
|
"jdbc:h2:~/taskana-h2-data/testdb;NON_KEYWORDS=KEY,VALUE;AUTO_SERVER=TRUE;"
|
||||||
|
+ "IGNORECASE=TRUE;LOCK_MODE=0",
|
||||||
|
"sa",
|
||||||
|
"");
|
||||||
|
}
|
||||||
|
|
||||||
|
private int countTasksByName(String taskName) throws Exception {
|
||||||
|
|
||||||
|
Class.forName("org.h2.Driver");
|
||||||
|
int resultCount = 0;
|
||||||
|
try (Connection conn = getConnection();
|
||||||
|
PreparedStatement statement =
|
||||||
|
conn.prepareStatement("SELECT COUNT(ID) FROM TASKANA.TASK WHERE NAME = ?")) {
|
||||||
|
statement.setString(1, taskName);
|
||||||
|
ResultSet rs = statement.executeQuery();
|
||||||
|
|
||||||
|
while (rs.next()) {
|
||||||
|
resultCount = rs.getInt(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return resultCount;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
<arquillian xmlns="http://jboss.org/schema/arquillian"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://jboss.org/schema/arquillian
|
||||||
|
http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
|
||||||
|
<defaultProtocol type="Servlet 6.0"/>
|
||||||
|
<container qualifier="wildfly" default="true">
|
||||||
|
<configuration>
|
||||||
|
<property name="jbossHome">target/wildfly-27.0.1.Final</property>
|
||||||
|
<property name="serverConfig">int-test-standalone.xml</property>
|
||||||
|
<!-- <property name="javaVmArguments">-->
|
||||||
|
<!-- -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y-->
|
||||||
|
<!-- -Djava.util.logging.manager=org.jboss.logmanager.LogManager-->
|
||||||
|
<!-- </property>-->
|
||||||
|
<property name="javaVmArguments">
|
||||||
|
-Djava.util.logging.manager=org.jboss.logmanager.LogManager
|
||||||
|
</property>
|
||||||
|
</configuration>
|
||||||
|
</container>
|
||||||
|
</arquillian>
|
|
@ -0,0 +1,673 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<server xmlns="urn:jboss:domain:20.0">
|
||||||
|
<extensions>
|
||||||
|
<extension module="org.jboss.as.clustering.infinispan"/>
|
||||||
|
<extension module="org.jboss.as.connector"/>
|
||||||
|
<extension module="org.jboss.as.deployment-scanner"/>
|
||||||
|
<extension module="org.jboss.as.ee"/>
|
||||||
|
<extension module="org.jboss.as.ejb3"/>
|
||||||
|
<extension module="org.jboss.as.jaxrs"/>
|
||||||
|
<extension module="org.jboss.as.jdr"/>
|
||||||
|
<extension module="org.jboss.as.jmx"/>
|
||||||
|
<extension module="org.jboss.as.jpa"/>
|
||||||
|
<extension module="org.jboss.as.jsf"/>
|
||||||
|
<extension module="org.jboss.as.logging"/>
|
||||||
|
<extension module="org.jboss.as.mail"/>
|
||||||
|
<extension module="org.jboss.as.naming"/>
|
||||||
|
<extension module="org.jboss.as.pojo"/>
|
||||||
|
<extension module="org.jboss.as.remoting"/>
|
||||||
|
<extension module="org.jboss.as.sar"/>
|
||||||
|
<extension module="org.jboss.as.transactions"/>
|
||||||
|
<extension module="org.jboss.as.webservices"/>
|
||||||
|
<extension module="org.jboss.as.weld"/>
|
||||||
|
<extension module="org.wildfly.extension.batch.jberet"/>
|
||||||
|
<extension module="org.wildfly.extension.bean-validation"/>
|
||||||
|
<extension module="org.wildfly.extension.clustering.ejb"/>
|
||||||
|
<extension module="org.wildfly.extension.clustering.web"/>
|
||||||
|
<extension module="org.wildfly.extension.core-management"/>
|
||||||
|
<extension module="org.wildfly.extension.discovery"/>
|
||||||
|
<extension module="org.wildfly.extension.ee-security"/>
|
||||||
|
<extension module="org.wildfly.extension.elytron"/>
|
||||||
|
<extension module="org.wildfly.extension.elytron-oidc-client"/>
|
||||||
|
<extension module="org.wildfly.extension.health"/>
|
||||||
|
<extension module="org.wildfly.extension.io"/>
|
||||||
|
<extension module="org.wildfly.extension.messaging-activemq"/>
|
||||||
|
<extension module="org.wildfly.extension.metrics"/>
|
||||||
|
<extension module="org.wildfly.extension.microprofile.config-smallrye"/>
|
||||||
|
<extension module="org.wildfly.extension.microprofile.jwt-smallrye"/>
|
||||||
|
<extension module="org.wildfly.extension.microprofile.opentracing-smallrye"/>
|
||||||
|
<extension module="org.wildfly.extension.request-controller"/>
|
||||||
|
<extension module="org.wildfly.extension.security.manager"/>
|
||||||
|
<extension module="org.wildfly.extension.undertow"/>
|
||||||
|
<extension module="org.wildfly.iiop-openjdk"/>
|
||||||
|
</extensions>
|
||||||
|
<management>
|
||||||
|
<audit-log>
|
||||||
|
<formatters>
|
||||||
|
<json-formatter name="json-formatter"/>
|
||||||
|
</formatters>
|
||||||
|
<handlers>
|
||||||
|
<file-handler name="file" formatter="json-formatter" path="audit-log.log"
|
||||||
|
relative-to="jboss.server.data.dir"/>
|
||||||
|
</handlers>
|
||||||
|
<logger log-boot="true" log-read-only="false" enabled="false">
|
||||||
|
<handlers>
|
||||||
|
<handler name="file"/>
|
||||||
|
</handlers>
|
||||||
|
</logger>
|
||||||
|
</audit-log>
|
||||||
|
<management-interfaces>
|
||||||
|
<http-interface http-authentication-factory="management-http-authentication">
|
||||||
|
<http-upgrade enabled="true" sasl-authentication-factory="management-sasl-authentication"/>
|
||||||
|
<socket-binding http="management-http"/>
|
||||||
|
</http-interface>
|
||||||
|
</management-interfaces>
|
||||||
|
<access-control provider="simple">
|
||||||
|
<role-mapping>
|
||||||
|
<role name="SuperUser">
|
||||||
|
<include>
|
||||||
|
<user name="$local"/>
|
||||||
|
</include>
|
||||||
|
</role>
|
||||||
|
</role-mapping>
|
||||||
|
</access-control>
|
||||||
|
</management>
|
||||||
|
<profile>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:logging:8.0">
|
||||||
|
<console-handler name="CONSOLE">
|
||||||
|
<level name="INFO"/>
|
||||||
|
<formatter>
|
||||||
|
<named-formatter name="COLOR-PATTERN"/>
|
||||||
|
</formatter>
|
||||||
|
</console-handler>
|
||||||
|
<periodic-rotating-file-handler name="FILE" autoflush="true">
|
||||||
|
<formatter>
|
||||||
|
<named-formatter name="PATTERN"/>
|
||||||
|
</formatter>
|
||||||
|
<file relative-to="jboss.server.log.dir" path="server.log"/>
|
||||||
|
<suffix value=".yyyy-MM-dd"/>
|
||||||
|
<append value="true"/>
|
||||||
|
</periodic-rotating-file-handler>
|
||||||
|
<logger category="com.arjuna">
|
||||||
|
<level name="WARN"/>
|
||||||
|
</logger>
|
||||||
|
<logger category="io.jaegertracing.Configuration">
|
||||||
|
<level name="WARN"/>
|
||||||
|
</logger>
|
||||||
|
<logger category="pro.taskana">
|
||||||
|
<level name="INFO"/>
|
||||||
|
</logger>
|
||||||
|
<logger category="org.jboss.as.config">
|
||||||
|
<level name="DEBUG"/>
|
||||||
|
</logger>
|
||||||
|
<logger category="sun.rmi">
|
||||||
|
<level name="WARN"/>
|
||||||
|
</logger>
|
||||||
|
<root-logger>
|
||||||
|
<level name="INFO"/>
|
||||||
|
<handlers>
|
||||||
|
<handler name="CONSOLE"/>
|
||||||
|
<handler name="FILE"/>
|
||||||
|
</handlers>
|
||||||
|
</root-logger>
|
||||||
|
<formatter name="PATTERN">
|
||||||
|
<pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
|
||||||
|
</formatter>
|
||||||
|
<formatter name="COLOR-PATTERN">
|
||||||
|
<pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
|
||||||
|
</formatter>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:batch-jberet:3.0">
|
||||||
|
<default-job-repository name="in-memory"/>
|
||||||
|
<default-thread-pool name="batch"/>
|
||||||
|
<job-repository name="in-memory">
|
||||||
|
<in-memory/>
|
||||||
|
</job-repository>
|
||||||
|
<thread-pool name="batch">
|
||||||
|
<max-threads count="10"/>
|
||||||
|
<keepalive-time time="30" unit="seconds"/>
|
||||||
|
</thread-pool>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:bean-validation:1.0"/>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:core-management:1.0"/>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:datasources:7.0">
|
||||||
|
<datasources>
|
||||||
|
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS"
|
||||||
|
enabled="true" use-java-context="true"
|
||||||
|
statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}">
|
||||||
|
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
|
||||||
|
<driver>h2</driver>
|
||||||
|
<security>
|
||||||
|
<user-name>sa</user-name>
|
||||||
|
<password></password>
|
||||||
|
</security>
|
||||||
|
</datasource>
|
||||||
|
<datasource jndi-name="java:jboss/datasources/Taskana"
|
||||||
|
pool-name="TASKANA H2 Datasource"
|
||||||
|
enabled="true"
|
||||||
|
use-java-context="true"
|
||||||
|
statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}">
|
||||||
|
<connection-url>
|
||||||
|
jdbc:h2:~/taskana-h2-data/testdb;NON_KEYWORDS=KEY,VALUE;AUTO_SERVER=TRUE;IGNORECASE=TRUE;LOCK_MODE=0
|
||||||
|
</connection-url>
|
||||||
|
<driver>h2</driver>
|
||||||
|
<security>
|
||||||
|
<user-name>sa</user-name>
|
||||||
|
<password></password>
|
||||||
|
</security>
|
||||||
|
</datasource>
|
||||||
|
<drivers>
|
||||||
|
<driver name="h2" module="com.h2database.h2">
|
||||||
|
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
|
||||||
|
</driver>
|
||||||
|
</drivers>
|
||||||
|
</datasources>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">
|
||||||
|
<deployment-scanner path="deployments" relative-to="jboss.server.base.dir"
|
||||||
|
scan-interval="5000"
|
||||||
|
runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:discovery:1.0"/>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:distributable-ejb:1.0" default-bean-management="default">
|
||||||
|
<infinispan-bean-management name="default" cache-container="ejb" cache="passivation"
|
||||||
|
max-active-beans="10000"/>
|
||||||
|
<local-client-mappings-registry/>
|
||||||
|
<infinispan-timer-management name="persistent" cache-container="ejb" cache="persistent"
|
||||||
|
max-active-timers="10000"/>
|
||||||
|
<infinispan-timer-management name="transient" cache-container="ejb" cache="transient"
|
||||||
|
max-active-timers="10000"/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:distributable-web:3.0" default-session-management="default"
|
||||||
|
default-single-sign-on-management="default">
|
||||||
|
<infinispan-session-management name="default" cache-container="web" granularity="SESSION">
|
||||||
|
<local-affinity/>
|
||||||
|
</infinispan-session-management>
|
||||||
|
<infinispan-single-sign-on-management name="default" cache-container="web" cache="sso"/>
|
||||||
|
<local-routing/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:ee:6.0">
|
||||||
|
<spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>
|
||||||
|
<concurrent>
|
||||||
|
<context-services>
|
||||||
|
<context-service name="default" jndi-name="java:jboss/ee/concurrency/context/default"
|
||||||
|
use-transaction-setup-provider="true"/>
|
||||||
|
</context-services>
|
||||||
|
<managed-thread-factories>
|
||||||
|
<managed-thread-factory name="default"
|
||||||
|
jndi-name="java:jboss/ee/concurrency/factory/default"
|
||||||
|
context-service="default"/>
|
||||||
|
</managed-thread-factories>
|
||||||
|
<managed-executor-services>
|
||||||
|
<managed-executor-service name="default"
|
||||||
|
jndi-name="java:jboss/ee/concurrency/executor/default"
|
||||||
|
context-service="default" hung-task-termination-period="0"
|
||||||
|
hung-task-threshold="60000" keepalive-time="5000"/>
|
||||||
|
</managed-executor-services>
|
||||||
|
<managed-scheduled-executor-services>
|
||||||
|
<managed-scheduled-executor-service name="default"
|
||||||
|
jndi-name="java:jboss/ee/concurrency/scheduler/default"
|
||||||
|
context-service="default"
|
||||||
|
hung-task-termination-period="0"
|
||||||
|
hung-task-threshold="60000" keepalive-time="3000"/>
|
||||||
|
</managed-scheduled-executor-services>
|
||||||
|
</concurrent>
|
||||||
|
<default-bindings context-service="java:jboss/ee/concurrency/context/default"
|
||||||
|
datasource="java:jboss/datasources/ExampleDS"
|
||||||
|
jms-connection-factory="java:jboss/DefaultJMSConnectionFactory"
|
||||||
|
managed-executor-service="java:jboss/ee/concurrency/executor/default"
|
||||||
|
managed-scheduled-executor-service="java:jboss/ee/concurrency/scheduler/default"
|
||||||
|
managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:ee-security:1.0"/>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:ejb3:10.0">
|
||||||
|
<session-bean>
|
||||||
|
<stateless>
|
||||||
|
<bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>
|
||||||
|
</stateless>
|
||||||
|
<stateful default-access-timeout="5000" cache-ref="simple"
|
||||||
|
passivation-disabled-cache-ref="simple"/>
|
||||||
|
<singleton default-access-timeout="5000"/>
|
||||||
|
</session-bean>
|
||||||
|
<mdb>
|
||||||
|
<resource-adapter-ref resource-adapter-name="${ejb.resource-adapter-name:activemq-ra.rar}"/>
|
||||||
|
<bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
|
||||||
|
</mdb>
|
||||||
|
<pools>
|
||||||
|
<bean-instance-pools>
|
||||||
|
<strict-max-pool name="mdb-strict-max-pool" derive-size="from-cpu-count"
|
||||||
|
instance-acquisition-timeout="5"
|
||||||
|
instance-acquisition-timeout-unit="MINUTES"/>
|
||||||
|
<strict-max-pool name="slsb-strict-max-pool" derive-size="from-worker-pools"
|
||||||
|
instance-acquisition-timeout="5"
|
||||||
|
instance-acquisition-timeout-unit="MINUTES"/>
|
||||||
|
</bean-instance-pools>
|
||||||
|
</pools>
|
||||||
|
<caches>
|
||||||
|
<simple-cache name="simple"/>
|
||||||
|
<distributable-cache name="distributable"/>
|
||||||
|
</caches>
|
||||||
|
<async thread-pool-name="default"/>
|
||||||
|
<timer-service thread-pool-name="default" default-data-store="default-file-store">
|
||||||
|
<data-stores>
|
||||||
|
<file-data-store name="default-file-store" path="timer-service-data"
|
||||||
|
relative-to="jboss.server.data.dir"/>
|
||||||
|
</data-stores>
|
||||||
|
</timer-service>
|
||||||
|
<remote cluster="ejb" connectors="http-remoting-connector" thread-pool-name="default">
|
||||||
|
<channel-creation-options>
|
||||||
|
<option name="MAX_OUTBOUND_MESSAGES" value="1234" type="remoting"/>
|
||||||
|
</channel-creation-options>
|
||||||
|
</remote>
|
||||||
|
<thread-pools>
|
||||||
|
<thread-pool name="default">
|
||||||
|
<max-threads count="10"/>
|
||||||
|
<keepalive-time time="60" unit="seconds"/>
|
||||||
|
</thread-pool>
|
||||||
|
</thread-pools>
|
||||||
|
<iiop enable-by-default="false" use-qualified-name="false"/>
|
||||||
|
<default-security-domain value="other"/>
|
||||||
|
<application-security-domains>
|
||||||
|
<application-security-domain name="other" security-domain="ApplicationDomain"/>
|
||||||
|
</application-security-domains>
|
||||||
|
<default-missing-method-permissions-deny-access value="true"/>
|
||||||
|
<statistics enabled="${wildfly.ejb3.statistics-enabled:${wildfly.statistics-enabled:false}}"/>
|
||||||
|
<log-system-exceptions value="true"/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:wildfly:elytron:16.0" final-providers="combined-providers"
|
||||||
|
disallowed-providers="OracleUcrypto">
|
||||||
|
<providers>
|
||||||
|
<aggregate-providers name="combined-providers">
|
||||||
|
<providers name="elytron"/>
|
||||||
|
<providers name="openssl"/>
|
||||||
|
</aggregate-providers>
|
||||||
|
<provider-loader name="elytron" module="org.wildfly.security.elytron"/>
|
||||||
|
<provider-loader name="openssl" module="org.wildfly.openssl"/>
|
||||||
|
</providers>
|
||||||
|
<audit-logging>
|
||||||
|
<file-audit-log name="local-audit" path="audit.log" relative-to="jboss.server.log.dir"
|
||||||
|
format="JSON"/>
|
||||||
|
</audit-logging>
|
||||||
|
<security-domains>
|
||||||
|
<security-domain name="ManagementDomain" default-realm="ManagementRealm"
|
||||||
|
permission-mapper="default-permission-mapper">
|
||||||
|
<realm name="ManagementRealm" role-decoder="groups-to-roles"/>
|
||||||
|
<realm name="local" role-mapper="super-user-mapper"/>
|
||||||
|
</security-domain>
|
||||||
|
<security-domain name="ApplicationDomain" default-realm="ApplicationRealm"
|
||||||
|
permission-mapper="default-permission-mapper">
|
||||||
|
<realm name="ApplicationRealm" role-decoder="groups-to-roles"/>
|
||||||
|
<realm name="local"/>
|
||||||
|
</security-domain>
|
||||||
|
</security-domains>
|
||||||
|
<security-realms>
|
||||||
|
<identity-realm name="local" identity="$local"/>
|
||||||
|
<properties-realm name="ApplicationRealm">
|
||||||
|
<users-properties path="application-users.properties"
|
||||||
|
relative-to="jboss.server.config.dir"
|
||||||
|
digest-realm-name="ApplicationRealm"/>
|
||||||
|
<groups-properties path="application-roles.properties"
|
||||||
|
relative-to="jboss.server.config.dir"/>
|
||||||
|
</properties-realm>
|
||||||
|
<properties-realm name="ManagementRealm">
|
||||||
|
<users-properties path="mgmt-users.properties" relative-to="jboss.server.config.dir"
|
||||||
|
digest-realm-name="ManagementRealm"/>
|
||||||
|
<groups-properties path="mgmt-groups.properties" relative-to="jboss.server.config.dir"/>
|
||||||
|
</properties-realm>
|
||||||
|
</security-realms>
|
||||||
|
<mappers>
|
||||||
|
<simple-permission-mapper name="default-permission-mapper" mapping-mode="first">
|
||||||
|
<permission-mapping>
|
||||||
|
<principal name="anonymous"/>
|
||||||
|
<permission-set name="default-permissions"/>
|
||||||
|
</permission-mapping>
|
||||||
|
<permission-mapping match-all="true">
|
||||||
|
<permission-set name="login-permission"/>
|
||||||
|
<permission-set name="default-permissions"/>
|
||||||
|
</permission-mapping>
|
||||||
|
</simple-permission-mapper>
|
||||||
|
<constant-realm-mapper name="local" realm-name="local"/>
|
||||||
|
<simple-role-decoder name="groups-to-roles" attribute="groups"/>
|
||||||
|
<constant-role-mapper name="super-user-mapper">
|
||||||
|
<role name="SuperUser"/>
|
||||||
|
</constant-role-mapper>
|
||||||
|
</mappers>
|
||||||
|
<permission-sets>
|
||||||
|
<permission-set name="login-permission">
|
||||||
|
<permission class-name="org.wildfly.security.auth.permission.LoginPermission"/>
|
||||||
|
</permission-set>
|
||||||
|
<permission-set name="default-permissions">
|
||||||
|
<permission class-name="org.wildfly.extension.batch.jberet.deployment.BatchPermission"
|
||||||
|
module="org.wildfly.extension.batch.jberet" target-name="*"/>
|
||||||
|
<permission class-name="org.wildfly.transaction.client.RemoteTransactionPermission"
|
||||||
|
module="org.wildfly.transaction.client"/>
|
||||||
|
<permission class-name="org.jboss.ejb.client.RemoteEJBPermission"
|
||||||
|
module="org.jboss.ejb-client"/>
|
||||||
|
</permission-set>
|
||||||
|
</permission-sets>
|
||||||
|
<http>
|
||||||
|
<http-authentication-factory name="management-http-authentication"
|
||||||
|
security-domain="ManagementDomain"
|
||||||
|
http-server-mechanism-factory="global">
|
||||||
|
<mechanism-configuration>
|
||||||
|
<mechanism mechanism-name="DIGEST">
|
||||||
|
<mechanism-realm realm-name="ManagementRealm"/>
|
||||||
|
</mechanism>
|
||||||
|
</mechanism-configuration>
|
||||||
|
</http-authentication-factory>
|
||||||
|
<http-authentication-factory name="application-http-authentication"
|
||||||
|
security-domain="ApplicationDomain"
|
||||||
|
http-server-mechanism-factory="global">
|
||||||
|
<mechanism-configuration>
|
||||||
|
<mechanism mechanism-name="BASIC">
|
||||||
|
<mechanism-realm realm-name="ApplicationRealm"/>
|
||||||
|
</mechanism>
|
||||||
|
</mechanism-configuration>
|
||||||
|
</http-authentication-factory>
|
||||||
|
<provider-http-server-mechanism-factory name="global"/>
|
||||||
|
</http>
|
||||||
|
<sasl>
|
||||||
|
<sasl-authentication-factory name="management-sasl-authentication"
|
||||||
|
sasl-server-factory="configured"
|
||||||
|
security-domain="ManagementDomain">
|
||||||
|
<mechanism-configuration>
|
||||||
|
<mechanism mechanism-name="JBOSS-LOCAL-USER" realm-mapper="local"/>
|
||||||
|
<mechanism mechanism-name="DIGEST-MD5">
|
||||||
|
<mechanism-realm realm-name="ManagementRealm"/>
|
||||||
|
</mechanism>
|
||||||
|
</mechanism-configuration>
|
||||||
|
</sasl-authentication-factory>
|
||||||
|
<sasl-authentication-factory name="application-sasl-authentication"
|
||||||
|
sasl-server-factory="configured"
|
||||||
|
security-domain="ApplicationDomain">
|
||||||
|
<mechanism-configuration>
|
||||||
|
<mechanism mechanism-name="JBOSS-LOCAL-USER" realm-mapper="local"/>
|
||||||
|
<mechanism mechanism-name="DIGEST-MD5">
|
||||||
|
<mechanism-realm realm-name="ApplicationRealm"/>
|
||||||
|
</mechanism>
|
||||||
|
</mechanism-configuration>
|
||||||
|
</sasl-authentication-factory>
|
||||||
|
<configurable-sasl-server-factory name="configured" sasl-server-factory="elytron">
|
||||||
|
<properties>
|
||||||
|
<property name="wildfly.sasl.local-user.default-user" value="$local"/>
|
||||||
|
<property name="wildfly.sasl.local-user.challenge-path"
|
||||||
|
value="${jboss.server.temp.dir}/auth"/>
|
||||||
|
</properties>
|
||||||
|
</configurable-sasl-server-factory>
|
||||||
|
<mechanism-provider-filtering-sasl-server-factory name="elytron"
|
||||||
|
sasl-server-factory="global">
|
||||||
|
<filters>
|
||||||
|
<filter provider-name="WildFlyElytron"/>
|
||||||
|
</filters>
|
||||||
|
</mechanism-provider-filtering-sasl-server-factory>
|
||||||
|
<provider-sasl-server-factory name="global"/>
|
||||||
|
</sasl>
|
||||||
|
<tls>
|
||||||
|
<key-stores>
|
||||||
|
<key-store name="applicationKS">
|
||||||
|
<credential-reference clear-text="password"/>
|
||||||
|
<implementation type="JKS"/>
|
||||||
|
<file path="application.keystore" relative-to="jboss.server.config.dir"/>
|
||||||
|
</key-store>
|
||||||
|
</key-stores>
|
||||||
|
<key-managers>
|
||||||
|
<key-manager name="applicationKM" key-store="applicationKS"
|
||||||
|
generate-self-signed-certificate-host="localhost">
|
||||||
|
<credential-reference clear-text="password"/>
|
||||||
|
</key-manager>
|
||||||
|
</key-managers>
|
||||||
|
<server-ssl-contexts>
|
||||||
|
<server-ssl-context name="applicationSSC" key-manager="applicationKM"/>
|
||||||
|
</server-ssl-contexts>
|
||||||
|
</tls>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:wildfly:elytron-oidc-client:1.0"/>
|
||||||
|
<subsystem xmlns="urn:wildfly:health:1.0" security-enabled="false"/>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:iiop-openjdk:3.0">
|
||||||
|
<orb socket-binding="iiop"/>
|
||||||
|
<initializers security="elytron" transactions="spec"/>
|
||||||
|
<security server-requires-ssl="false" client-requires-ssl="false"/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:infinispan:14.0">
|
||||||
|
<cache-container name="ejb" default-cache="passivation" marshaller="PROTOSTREAM"
|
||||||
|
aliases="sfsb" modules="org.wildfly.clustering.ejb.infinispan">
|
||||||
|
<local-cache name="passivation">
|
||||||
|
<expiration interval="0"/>
|
||||||
|
<file-store passivation="true"/>
|
||||||
|
</local-cache>
|
||||||
|
<local-cache name="persistent">
|
||||||
|
<locking isolation="REPEATABLE_READ"/>
|
||||||
|
<transaction mode="BATCH"/>
|
||||||
|
<expiration interval="0"/>
|
||||||
|
<file-store preload="true"/>
|
||||||
|
</local-cache>
|
||||||
|
<local-cache name="transient">
|
||||||
|
<locking isolation="REPEATABLE_READ"/>
|
||||||
|
<transaction mode="BATCH"/>
|
||||||
|
<expiration interval="0"/>
|
||||||
|
<file-store passivation="true" purge="true"/>
|
||||||
|
</local-cache>
|
||||||
|
</cache-container>
|
||||||
|
<cache-container name="web" default-cache="passivation" marshaller="PROTOSTREAM"
|
||||||
|
modules="org.wildfly.clustering.web.infinispan">
|
||||||
|
<local-cache name="passivation">
|
||||||
|
<expiration interval="0"/>
|
||||||
|
<file-store passivation="true"/>
|
||||||
|
</local-cache>
|
||||||
|
<local-cache name="sso">
|
||||||
|
<expiration interval="0"/>
|
||||||
|
</local-cache>
|
||||||
|
</cache-container>
|
||||||
|
<cache-container name="server" default-cache="default" marshaller="PROTOSTREAM"
|
||||||
|
modules="org.wildfly.clustering.singleton.server">
|
||||||
|
<local-cache name="default">
|
||||||
|
<expiration interval="0"/>
|
||||||
|
</local-cache>
|
||||||
|
</cache-container>
|
||||||
|
<cache-container name="hibernate" marshaller="JBOSS" modules="org.infinispan.hibernate-cache">
|
||||||
|
<local-cache name="entity">
|
||||||
|
<heap-memory size="10000"/>
|
||||||
|
<expiration max-idle="100000"/>
|
||||||
|
</local-cache>
|
||||||
|
<local-cache name="local-query">
|
||||||
|
<heap-memory size="10000"/>
|
||||||
|
<expiration max-idle="100000"/>
|
||||||
|
</local-cache>
|
||||||
|
<local-cache name="timestamps">
|
||||||
|
<expiration interval="0"/>
|
||||||
|
</local-cache>
|
||||||
|
<local-cache name="pending-puts">
|
||||||
|
<expiration max-idle="60000"/>
|
||||||
|
</local-cache>
|
||||||
|
</cache-container>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:io:3.0">
|
||||||
|
<worker name="default"/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:jaxrs:2.0"/>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:jca:6.0">
|
||||||
|
<archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>
|
||||||
|
<bean-validation enabled="true"/>
|
||||||
|
<default-workmanager>
|
||||||
|
<short-running-threads>
|
||||||
|
<core-threads count="50"/>
|
||||||
|
<queue-length count="50"/>
|
||||||
|
<max-threads count="50"/>
|
||||||
|
<keepalive-time time="10" unit="seconds"/>
|
||||||
|
</short-running-threads>
|
||||||
|
<long-running-threads>
|
||||||
|
<core-threads count="50"/>
|
||||||
|
<queue-length count="50"/>
|
||||||
|
<max-threads count="50"/>
|
||||||
|
<keepalive-time time="10" unit="seconds"/>
|
||||||
|
</long-running-threads>
|
||||||
|
</default-workmanager>
|
||||||
|
<cached-connection-manager/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:jdr:1.0"/>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:jmx:1.3">
|
||||||
|
<expose-resolved-model/>
|
||||||
|
<expose-expression-model/>
|
||||||
|
<remoting-connector/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:jpa:1.1">
|
||||||
|
<jpa default-extended-persistence-inheritance="DEEP"/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:jsf:1.1"/>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:mail:4.0">
|
||||||
|
<mail-session name="default" jndi-name="java:jboss/mail/Default">
|
||||||
|
<smtp-server outbound-socket-binding-ref="mail-smtp"/>
|
||||||
|
</mail-session>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:messaging-activemq:14.0">
|
||||||
|
<server name="default">
|
||||||
|
<security elytron-domain="ApplicationDomain"/>
|
||||||
|
<statistics
|
||||||
|
enabled="${wildfly.messaging-activemq.statistics-enabled:${wildfly.statistics-enabled:false}}"/>
|
||||||
|
<security-setting name="#">
|
||||||
|
<role name="guest" send="true" consume="true" create-non-durable-queue="true"
|
||||||
|
delete-non-durable-queue="true"/>
|
||||||
|
</security-setting>
|
||||||
|
<address-setting name="#" dead-letter-address="jms.queue.DLQ"
|
||||||
|
expiry-address="jms.queue.ExpiryQueue" max-size-bytes="10485760"
|
||||||
|
page-size-bytes="2097152" message-counter-history-day-limit="10"/>
|
||||||
|
<http-connector name="http-connector" socket-binding="http" endpoint="http-acceptor"/>
|
||||||
|
<http-connector name="http-connector-throughput" socket-binding="http"
|
||||||
|
endpoint="http-acceptor-throughput">
|
||||||
|
<param name="batch-delay" value="50"/>
|
||||||
|
</http-connector>
|
||||||
|
<in-vm-connector name="in-vm" server-id="0">
|
||||||
|
<param name="buffer-pooling" value="false"/>
|
||||||
|
</in-vm-connector>
|
||||||
|
<http-acceptor name="http-acceptor" http-listener="default"/>
|
||||||
|
<http-acceptor name="http-acceptor-throughput" http-listener="default">
|
||||||
|
<param name="batch-delay" value="50"/>
|
||||||
|
<param name="direct-deliver" value="false"/>
|
||||||
|
</http-acceptor>
|
||||||
|
<in-vm-acceptor name="in-vm" server-id="0">
|
||||||
|
<param name="buffer-pooling" value="false"/>
|
||||||
|
</in-vm-acceptor>
|
||||||
|
<jms-queue name="ExpiryQueue" entries="java:/jms/queue/ExpiryQueue"/>
|
||||||
|
<jms-queue name="DLQ" entries="java:/jms/queue/DLQ"/>
|
||||||
|
<connection-factory name="InVmConnectionFactory" entries="java:/ConnectionFactory"
|
||||||
|
connectors="in-vm"/>
|
||||||
|
<connection-factory name="RemoteConnectionFactory"
|
||||||
|
entries="java:jboss/exported/jms/RemoteConnectionFactory"
|
||||||
|
connectors="http-connector"/>
|
||||||
|
<pooled-connection-factory name="activemq-ra"
|
||||||
|
entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory"
|
||||||
|
connectors="in-vm" transaction="xa"/>
|
||||||
|
</server>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:wildfly:metrics:1.0" security-enabled="false" exposed-subsystems="*"
|
||||||
|
prefix="${wildfly.metrics.prefix:wildfly}"/>
|
||||||
|
<subsystem xmlns="urn:wildfly:microprofile-config-smallrye:2.0"/>
|
||||||
|
<subsystem xmlns="urn:wildfly:microprofile-jwt-smallrye:1.0"/>
|
||||||
|
<subsystem xmlns="urn:wildfly:microprofile-opentracing-smallrye:3.0" default-tracer="jaeger">
|
||||||
|
<jaeger-tracer name="jaeger">
|
||||||
|
<sampler-configuration sampler-type="const" sampler-param="1.0"/>
|
||||||
|
</jaeger-tracer>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:naming:2.0">
|
||||||
|
<remote-naming/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:pojo:1.0"/>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:remoting:5.0">
|
||||||
|
<http-connector name="http-remoting-connector" connector-ref="default"
|
||||||
|
sasl-authentication-factory="application-sasl-authentication"/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:request-controller:1.0"/>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:resource-adapters:6.1"/>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:sar:1.0"/>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:security-manager:1.0">
|
||||||
|
<deployment-permissions>
|
||||||
|
<maximum-set>
|
||||||
|
<permission class="java.security.AllPermission"/>
|
||||||
|
</maximum-set>
|
||||||
|
</deployment-permissions>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:transactions:6.0">
|
||||||
|
<core-environment node-identifier="${jboss.tx.node.id:1}">
|
||||||
|
<process-id>
|
||||||
|
<uuid/>
|
||||||
|
</process-id>
|
||||||
|
</core-environment>
|
||||||
|
<recovery-environment socket-binding="txn-recovery-environment"
|
||||||
|
status-socket-binding="txn-status-manager"/>
|
||||||
|
<coordinator-environment
|
||||||
|
statistics-enabled="${wildfly.transactions.statistics-enabled:${wildfly.statistics-enabled:false}}"/>
|
||||||
|
<object-store path="tx-object-store" relative-to="jboss.server.data.dir"/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:undertow:13.0" default-server="default-server"
|
||||||
|
default-virtual-host="default-host" default-servlet-container="default"
|
||||||
|
default-security-domain="other"
|
||||||
|
statistics-enabled="${wildfly.undertow.statistics-enabled:${wildfly.statistics-enabled:false}}">
|
||||||
|
<byte-buffer-pool name="default"/>
|
||||||
|
<buffer-cache name="default"/>
|
||||||
|
<server name="default-server">
|
||||||
|
<http-listener name="default" socket-binding="http" redirect-socket="https"
|
||||||
|
enable-http2="true"/>
|
||||||
|
<https-listener name="https" socket-binding="https" ssl-context="applicationSSC"
|
||||||
|
enable-http2="true"/>
|
||||||
|
<host name="default-host" alias="localhost">
|
||||||
|
<location name="/" handler="welcome-content"/>
|
||||||
|
<http-invoker http-authentication-factory="application-http-authentication"/>
|
||||||
|
</host>
|
||||||
|
</server>
|
||||||
|
<servlet-container name="default">
|
||||||
|
<jsp-config/>
|
||||||
|
<websockets/>
|
||||||
|
</servlet-container>
|
||||||
|
<handlers>
|
||||||
|
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
|
||||||
|
</handlers>
|
||||||
|
<application-security-domains>
|
||||||
|
<application-security-domain name="other" security-domain="ApplicationDomain"/>
|
||||||
|
</application-security-domains>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:webservices:2.0"
|
||||||
|
statistics-enabled="${wildfly.webservices.statistics-enabled:${wildfly.statistics-enabled:false}}">
|
||||||
|
<wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>
|
||||||
|
<endpoint-config name="Standard-Endpoint-Config"/>
|
||||||
|
<endpoint-config name="Recording-Endpoint-Config">
|
||||||
|
<pre-handler-chain name="recording-handlers"
|
||||||
|
protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">
|
||||||
|
<handler name="RecordingHandler"
|
||||||
|
class="org.jboss.ws.common.invocation.RecordingServerHandler"/>
|
||||||
|
</pre-handler-chain>
|
||||||
|
</endpoint-config>
|
||||||
|
<client-config name="Standard-Client-Config"/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:weld:5.0"/>
|
||||||
|
</profile>
|
||||||
|
<interfaces>
|
||||||
|
<interface name="management">
|
||||||
|
<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
|
||||||
|
</interface>
|
||||||
|
<interface name="public">
|
||||||
|
<inet-address value="${jboss.bind.address:127.0.0.1}"/>
|
||||||
|
</interface>
|
||||||
|
<interface name="unsecure">
|
||||||
|
<inet-address value="${jboss.bind.address.unsecure:127.0.0.1}"/>
|
||||||
|
</interface>
|
||||||
|
</interfaces>
|
||||||
|
<socket-binding-group name="standard-sockets" default-interface="public"
|
||||||
|
port-offset="${jboss.socket.binding.port-offset:0}">
|
||||||
|
<socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
|
||||||
|
<socket-binding name="http" port="${jboss.http.port:8080}"/>
|
||||||
|
<socket-binding name="https" port="${jboss.https.port:8443}"/>
|
||||||
|
<socket-binding name="iiop" interface="unsecure" port="3528"/>
|
||||||
|
<socket-binding name="iiop-ssl" interface="unsecure" port="3529"/>
|
||||||
|
<socket-binding name="management-http" interface="management"
|
||||||
|
port="${jboss.management.http.port:9990}"/>
|
||||||
|
<socket-binding name="management-https" interface="management"
|
||||||
|
port="${jboss.management.https.port:9993}"/>
|
||||||
|
<socket-binding name="txn-recovery-environment" port="4712"/>
|
||||||
|
<socket-binding name="txn-status-manager" port="4713"/>
|
||||||
|
<outbound-socket-binding name="mail-smtp">
|
||||||
|
<remote-destination host="${jboss.mail.server.host:localhost}"
|
||||||
|
port="${jboss.mail.server.port:25}"/>
|
||||||
|
</outbound-socket-binding>
|
||||||
|
</socket-binding-group>
|
||||||
|
</server>
|
|
@ -0,0 +1,28 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<module name="com.h2database.h2" xmlns="urn:jboss:module:1.9">
|
||||||
|
|
||||||
|
<resources>
|
||||||
|
<resource-root path="h2-2.1.214.jar"/>
|
||||||
|
</resources>
|
||||||
|
<dependencies>
|
||||||
|
<module name="java.compiler"/>
|
||||||
|
<module name="java.desktop"/>
|
||||||
|
<module name="java.instrument"/>
|
||||||
|
<module name="java.logging"/>
|
||||||
|
<module name="java.management"/>
|
||||||
|
<module name="java.naming"/>
|
||||||
|
<module name="java.scripting"/>
|
||||||
|
<module name="java.sql"/>
|
||||||
|
<module name="java.transaction.xa"/>
|
||||||
|
<!-- H2 uses Jakarta Servlet to allow apps (in our case deployments) to expose its console as a servlet.
|
||||||
|
WildFly isn't concerning itself with allowing this H2 feature to continue to work in both a
|
||||||
|
javax.* EE namespace and jakarta.* EE namespace environment, so this no longer works out of the box.
|
||||||
|
But, we add an optional dep on a non-existent module as a hook to allow users to get it to work.
|
||||||
|
Users who want this to work can provide a module with the name:slot javax.servlet.api:h2. That module could
|
||||||
|
be a simple alias to the jakarta.servlet.api module the server provides, if that works with this module's
|
||||||
|
H2 artifact. Or the user could provide a non-alias module that packages and exposes the servlet resources H2 needs. -->
|
||||||
|
<module name="javax.servlet.api:h2" optional="true"/>
|
||||||
|
<module name="org.slf4j"/>
|
||||||
|
</dependencies>
|
||||||
|
</module>
|
|
@ -18,7 +18,7 @@
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.wildfly.bom</groupId>
|
<groupId>org.wildfly.bom</groupId>
|
||||||
<artifactId>wildfly-jakartaee8</artifactId>
|
<artifactId>wildfly-ee</artifactId>
|
||||||
<version>${version.wildfly}</version>
|
<version>${version.wildfly}</version>
|
||||||
<scope>import</scope>
|
<scope>import</scope>
|
||||||
<type>pom</type>
|
<type>pom</type>
|
||||||
|
@ -35,33 +35,14 @@
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>pro.taskana</groupId>
|
<groupId>pro.taskana</groupId>
|
||||||
<artifactId>taskana-common-logging</artifactId>
|
<artifactId>taskana-core</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>jakarta.platform</groupId>
|
<groupId>jakarta.platform</groupId>
|
||||||
<artifactId>jakarta.jakartaee-api</artifactId>
|
<artifactId>jakarta.jakartaee-api</artifactId>
|
||||||
<version>${version.jakartaee-api}</version>
|
<version>${version.jakartaee-api}</version>
|
||||||
</dependency>
|
<scope>provided</scope>
|
||||||
<dependency>
|
|
||||||
<groupId>jakarta.enterprise</groupId>
|
|
||||||
<artifactId>jakarta.enterprise.cdi-api</artifactId>
|
|
||||||
<version>${version.jakarta.enterprise.cdi-api}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>jakarta.annotation</groupId>
|
|
||||||
<artifactId>jakarta.annotation-api</artifactId>
|
|
||||||
<version>${version.jakarta.annotation-api}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>jakarta.inject</groupId>
|
|
||||||
<artifactId>jakarta.inject-api</artifactId>
|
|
||||||
<version>${version.jakarta.inject-api}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>pro.taskana</groupId>
|
|
||||||
<artifactId>taskana-core</artifactId>
|
|
||||||
<version>${project.version}</version>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- TEST dependencies -->
|
<!-- TEST dependencies -->
|
||||||
|
@ -119,7 +100,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.wildfly.arquillian</groupId>
|
<groupId>org.wildfly.arquillian</groupId>
|
||||||
<artifactId>wildfly-arquillian-container-managed</artifactId>
|
<artifactId>wildfly-arquillian-container-managed</artifactId>
|
||||||
<version>3.0.1.Final</version>
|
<version>${version.arquillian.managed.wildfly}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
@ -195,6 +176,26 @@
|
||||||
</resources>
|
</resources>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>copy-wildfly-config-xml</id>
|
||||||
|
<phase>process-test-classes</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy-resources</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>
|
||||||
|
${project.build.directory}/wildfly-${version.wildfly}/standalone/configuration
|
||||||
|
</outputDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/test/resources</directory>
|
||||||
|
<includes>
|
||||||
|
<include>int-test-standalone.xml</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
|
@ -203,7 +204,7 @@
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>jboss</id>
|
<id>jboss</id>
|
||||||
<url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url>
|
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
|
||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
package pro.taskana.common.internal;
|
||||||
|
|
||||||
|
public class TaskanaCdiStartupException extends RuntimeException {
|
||||||
|
|
||||||
|
public TaskanaCdiStartupException(Throwable cause) {
|
||||||
|
super("Can't init TaskanaProducers", cause);
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,6 +2,8 @@ package pro.taskana.common.internal;
|
||||||
|
|
||||||
import jakarta.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
import jakarta.enterprise.context.ApplicationScoped;
|
import jakarta.enterprise.context.ApplicationScoped;
|
||||||
|
import jakarta.enterprise.event.Observes;
|
||||||
|
import jakarta.enterprise.event.Startup;
|
||||||
import jakarta.enterprise.inject.Produces;
|
import jakarta.enterprise.inject.Produces;
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -30,10 +32,31 @@ public class TaskanaProducers {
|
||||||
|
|
||||||
private static final String TASKANA_PROPERTIES = "taskana.properties";
|
private static final String TASKANA_PROPERTIES = "taskana.properties";
|
||||||
|
|
||||||
@Inject private TaskanaEngine taskanaEngine;
|
// initalized during post construct
|
||||||
|
|
||||||
private TaskanaConfiguration taskanaConfiguration;
|
private TaskanaConfiguration taskanaConfiguration;
|
||||||
|
|
||||||
|
private final TaskanaEngine taskanaEngine;
|
||||||
|
|
||||||
|
public TaskanaProducers() {
|
||||||
|
this.taskanaEngine = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public TaskanaProducers(TaskanaEngine taskanaEngine) {
|
||||||
|
this.taskanaEngine = taskanaEngine;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The parameter `@Observes Startup` makes sure that the dependency injection framework calls this
|
||||||
|
* method on system startup. And to do that, it needs to call `@PostConstruct start()` first.
|
||||||
|
*
|
||||||
|
* @param startup just the startup event
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
private void forceEagerInitialization(@Observes Startup startup) {
|
||||||
|
LOGGER.info("startup={}", startup);
|
||||||
|
}
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
// Load Properties and get Datasource via Context
|
// Load Properties and get Datasource via Context
|
||||||
|
@ -57,7 +80,7 @@ public class TaskanaProducers {
|
||||||
.initTaskanaProperties()
|
.initTaskanaProperties()
|
||||||
.build();
|
.build();
|
||||||
} catch (NamingException | SQLException | IOException e) {
|
} catch (NamingException | SQLException | IOException e) {
|
||||||
LOGGER.error("Could not start Taskana: ", e);
|
throw new TaskanaCdiStartupException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,3 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<beans xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/beans_4_0.xsd">
|
||||||
xmlns="http://java.sun.com/xml/ns/javaee"
|
|
||||||
xsi:schemaLocation="
|
|
||||||
http://java.sun.com/xml/ns/javaee
|
|
||||||
http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"
|
|
||||||
version="1.2" bean-discovery-mode="all">
|
|
||||||
</beans>
|
</beans>
|
|
@ -1,6 +1,5 @@
|
||||||
package pro.taskana;
|
package pro.taskana;
|
||||||
|
|
||||||
import jakarta.ejb.EJB;
|
|
||||||
import jakarta.inject.Inject;
|
import jakarta.inject.Inject;
|
||||||
import jakarta.ws.rs.DELETE;
|
import jakarta.ws.rs.DELETE;
|
||||||
import jakarta.ws.rs.GET;
|
import jakarta.ws.rs.GET;
|
||||||
|
@ -24,9 +23,21 @@ public class TaskanaCdiTestRestController {
|
||||||
private static final String CDIDOMAIN = "CDIDOMAIN";
|
private static final String CDIDOMAIN = "CDIDOMAIN";
|
||||||
private static final String CLASSIFICATION_TYPE = "T1";
|
private static final String CLASSIFICATION_TYPE = "T1";
|
||||||
|
|
||||||
@EJB private TaskanaEjb taskanaEjb;
|
private final TaskanaEjb taskanaEjb;
|
||||||
|
|
||||||
@Inject private ClassificationService classificationService;
|
private final ClassificationService classificationService;
|
||||||
|
|
||||||
|
public TaskanaCdiTestRestController() {
|
||||||
|
this.taskanaEjb = null;
|
||||||
|
this.classificationService = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public TaskanaCdiTestRestController(
|
||||||
|
TaskanaEjb taskanaEjb, ClassificationService classificationService) {
|
||||||
|
this.taskanaEjb = taskanaEjb;
|
||||||
|
this.classificationService = classificationService;
|
||||||
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
public Response startTask() throws Exception {
|
public Response startTask() throws Exception {
|
||||||
|
|
|
@ -11,11 +11,27 @@ import pro.taskana.workbasket.api.WorkbasketService;
|
||||||
@Stateless
|
@Stateless
|
||||||
public class TaskanaEjb {
|
public class TaskanaEjb {
|
||||||
|
|
||||||
@Inject private TaskService taskService;
|
private final TaskService taskService;
|
||||||
|
|
||||||
@Inject private ClassificationService classificationService;
|
private final ClassificationService classificationService;
|
||||||
|
|
||||||
@Inject private WorkbasketService workbasketService;
|
private final WorkbasketService workbasketService;
|
||||||
|
|
||||||
|
public TaskanaEjb() {
|
||||||
|
this.taskService = null;
|
||||||
|
this.classificationService = null;
|
||||||
|
this.workbasketService = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public TaskanaEjb(
|
||||||
|
TaskService taskService,
|
||||||
|
ClassificationService classificationService,
|
||||||
|
WorkbasketService workbasketService) {
|
||||||
|
this.taskService = taskService;
|
||||||
|
this.classificationService = classificationService;
|
||||||
|
this.workbasketService = workbasketService;
|
||||||
|
}
|
||||||
|
|
||||||
public TaskService getTaskService() {
|
public TaskService getTaskService() {
|
||||||
return taskService;
|
return taskService;
|
||||||
|
|
|
@ -49,14 +49,15 @@ public class TaskanaProducersTest {
|
||||||
File[] libs =
|
File[] libs =
|
||||||
Maven.resolver()
|
Maven.resolver()
|
||||||
.loadPomFromFile("pom.xml")
|
.loadPomFromFile("pom.xml")
|
||||||
.importRuntimeAndTestDependencies()
|
.importCompileAndRuntimeDependencies()
|
||||||
.resolve()
|
.resolve()
|
||||||
.withTransitivity()
|
.withTransitivity()
|
||||||
.asFile();
|
.asFile();
|
||||||
deployment.addAsLibraries(libs);
|
deployment.addAsLibraries(libs);
|
||||||
|
|
||||||
JavaArchive ejbModule = ShrinkWrap.create(JavaArchive.class, "taskana.jar");
|
JavaArchive ejbModule = ShrinkWrap.create(JavaArchive.class, "taskana.jar");
|
||||||
ejbModule.addClasses(TaskanaProducers.class, TaskanaEjb.class);
|
ejbModule.addClasses(
|
||||||
|
TaskanaProducers.class, TaskanaEjb.class, TaskanaCdiStartupException.class);
|
||||||
ejbModule.addAsResource("taskana.properties");
|
ejbModule.addAsResource("taskana.properties");
|
||||||
deployment.addAsModule(ejbModule);
|
deployment.addAsModule(ejbModule);
|
||||||
|
|
||||||
|
|
|
@ -2,22 +2,16 @@
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://jboss.org/schema/arquillian
|
xsi:schemaLocation="http://jboss.org/schema/arquillian
|
||||||
http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
|
http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
|
||||||
<defaultProtocol type="Servlet 3.0"/>
|
<defaultProtocol type="Servlet 6.0"/>
|
||||||
<container qualifier="wildfly" default="true">
|
<container qualifier="wildfly" default="true">
|
||||||
<configuration>
|
<configuration>
|
||||||
<property name="jbossHome">target/wildfly-25.0.1.Final</property>
|
<property name="jbossHome">target/wildfly-27.0.1.Final</property>
|
||||||
<property
|
<property name="serverConfig">int-test-standalone.xml</property>
|
||||||
name="serverConfig">../../../../src/test/resources/int-test-standalone.xml
|
|
||||||
</property>
|
|
||||||
<!-- <property name="javaVmArguments">-->
|
<!-- <property name="javaVmArguments">-->
|
||||||
<!-- - -add-opens java.base/java.util=ALL-UNNAMED-->
|
|
||||||
<!-- -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y-->
|
<!-- -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y-->
|
||||||
<!-- -Dh2.bindAddress=127.0.0.1-->
|
|
||||||
<!-- -Djava.util.logging.manager=org.jboss.logmanager.LogManager-->
|
<!-- -Djava.util.logging.manager=org.jboss.logmanager.LogManager-->
|
||||||
<!-- </property>-->
|
<!-- </property>-->
|
||||||
<property name="javaVmArguments">
|
<property name="javaVmArguments">
|
||||||
--add-opens java.base/java.util=ALL-UNNAMED
|
|
||||||
-Dh2.bindAddress=127.0.0.1
|
|
||||||
-Djava.util.logging.manager=org.jboss.logmanager.LogManager
|
-Djava.util.logging.manager=org.jboss.logmanager.LogManager
|
||||||
</property>
|
</property>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<server xmlns="urn:jboss:domain:18.0">
|
<server xmlns="urn:jboss:domain:20.0">
|
||||||
<extensions>
|
<extensions>
|
||||||
<extension module="org.jboss.as.clustering.infinispan"/>
|
<extension module="org.jboss.as.clustering.infinispan"/>
|
||||||
<extension module="org.jboss.as.connector"/>
|
<extension module="org.jboss.as.connector"/>
|
||||||
|
@ -12,7 +12,6 @@
|
||||||
<extension module="org.jboss.as.jmx"/>
|
<extension module="org.jboss.as.jmx"/>
|
||||||
<extension module="org.jboss.as.jpa"/>
|
<extension module="org.jboss.as.jpa"/>
|
||||||
<extension module="org.jboss.as.jsf"/>
|
<extension module="org.jboss.as.jsf"/>
|
||||||
<extension module="org.jboss.as.jsr77"/>
|
|
||||||
<extension module="org.jboss.as.logging"/>
|
<extension module="org.jboss.as.logging"/>
|
||||||
<extension module="org.jboss.as.mail"/>
|
<extension module="org.jboss.as.mail"/>
|
||||||
<extension module="org.jboss.as.naming"/>
|
<extension module="org.jboss.as.naming"/>
|
||||||
|
@ -24,6 +23,7 @@
|
||||||
<extension module="org.jboss.as.weld"/>
|
<extension module="org.jboss.as.weld"/>
|
||||||
<extension module="org.wildfly.extension.batch.jberet"/>
|
<extension module="org.wildfly.extension.batch.jberet"/>
|
||||||
<extension module="org.wildfly.extension.bean-validation"/>
|
<extension module="org.wildfly.extension.bean-validation"/>
|
||||||
|
<extension module="org.wildfly.extension.clustering.ejb"/>
|
||||||
<extension module="org.wildfly.extension.clustering.web"/>
|
<extension module="org.wildfly.extension.clustering.web"/>
|
||||||
<extension module="org.wildfly.extension.core-management"/>
|
<extension module="org.wildfly.extension.core-management"/>
|
||||||
<extension module="org.wildfly.extension.discovery"/>
|
<extension module="org.wildfly.extension.discovery"/>
|
||||||
|
@ -95,6 +95,9 @@
|
||||||
<logger category="io.jaegertracing.Configuration">
|
<logger category="io.jaegertracing.Configuration">
|
||||||
<level name="WARN"/>
|
<level name="WARN"/>
|
||||||
</logger>
|
</logger>
|
||||||
|
<logger category="pro.taskana">
|
||||||
|
<level name="INFO"/>
|
||||||
|
</logger>
|
||||||
<logger category="org.jboss.as.config">
|
<logger category="org.jboss.as.config">
|
||||||
<level name="DEBUG"/>
|
<level name="DEBUG"/>
|
||||||
</logger>
|
</logger>
|
||||||
|
@ -115,7 +118,7 @@
|
||||||
<pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
|
<pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
|
||||||
</formatter>
|
</formatter>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:batch-jberet:2.0">
|
<subsystem xmlns="urn:jboss:domain:batch-jberet:3.0">
|
||||||
<default-job-repository name="in-memory"/>
|
<default-job-repository name="in-memory"/>
|
||||||
<default-thread-pool name="batch"/>
|
<default-thread-pool name="batch"/>
|
||||||
<job-repository name="in-memory">
|
<job-repository name="in-memory">
|
||||||
|
@ -128,7 +131,7 @@
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:bean-validation:1.0"/>
|
<subsystem xmlns="urn:jboss:domain:bean-validation:1.0"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:core-management:1.0"/>
|
<subsystem xmlns="urn:jboss:domain:core-management:1.0"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:datasources:6.0">
|
<subsystem xmlns="urn:jboss:domain:datasources:7.0">
|
||||||
<datasources>
|
<datasources>
|
||||||
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS"
|
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS"
|
||||||
enabled="true" use-java-context="true"
|
enabled="true" use-java-context="true"
|
||||||
|
@ -167,7 +170,16 @@
|
||||||
runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/>
|
runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:discovery:1.0"/>
|
<subsystem xmlns="urn:jboss:domain:discovery:1.0"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:distributable-web:2.0" default-session-management="default"
|
<subsystem xmlns="urn:jboss:domain:distributable-ejb:1.0" default-bean-management="default">
|
||||||
|
<infinispan-bean-management name="default" cache-container="ejb" cache="passivation"
|
||||||
|
max-active-beans="10000"/>
|
||||||
|
<local-client-mappings-registry/>
|
||||||
|
<infinispan-timer-management name="persistent" cache-container="ejb" cache="persistent"
|
||||||
|
max-active-timers="10000"/>
|
||||||
|
<infinispan-timer-management name="transient" cache-container="ejb" cache="transient"
|
||||||
|
max-active-timers="10000"/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:distributable-web:3.0" default-session-management="default"
|
||||||
default-single-sign-on-management="default">
|
default-single-sign-on-management="default">
|
||||||
<infinispan-session-management name="default" cache-container="web" granularity="SESSION">
|
<infinispan-session-management name="default" cache-container="web" granularity="SESSION">
|
||||||
<local-affinity/>
|
<local-affinity/>
|
||||||
|
@ -209,7 +221,7 @@
|
||||||
managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
|
managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:ee-security:1.0"/>
|
<subsystem xmlns="urn:jboss:domain:ee-security:1.0"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:ejb3:9.0">
|
<subsystem xmlns="urn:jboss:domain:ejb3:10.0">
|
||||||
<session-bean>
|
<session-bean>
|
||||||
<stateless>
|
<stateless>
|
||||||
<bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>
|
<bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>
|
||||||
|
@ -233,13 +245,9 @@
|
||||||
</bean-instance-pools>
|
</bean-instance-pools>
|
||||||
</pools>
|
</pools>
|
||||||
<caches>
|
<caches>
|
||||||
<cache name="simple"/>
|
<simple-cache name="simple"/>
|
||||||
<cache name="distributable" passivation-store-ref="infinispan"
|
<distributable-cache name="distributable"/>
|
||||||
aliases="passivating clustered"/>
|
|
||||||
</caches>
|
</caches>
|
||||||
<passivation-stores>
|
|
||||||
<passivation-store name="infinispan" cache-container="ejb" max-size="10000"/>
|
|
||||||
</passivation-stores>
|
|
||||||
<async thread-pool-name="default"/>
|
<async thread-pool-name="default"/>
|
||||||
<timer-service thread-pool-name="default" default-data-store="default-file-store">
|
<timer-service thread-pool-name="default" default-data-store="default-file-store">
|
||||||
<data-stores>
|
<data-stores>
|
||||||
|
@ -267,7 +275,7 @@
|
||||||
<statistics enabled="${wildfly.ejb3.statistics-enabled:${wildfly.statistics-enabled:false}}"/>
|
<statistics enabled="${wildfly.ejb3.statistics-enabled:${wildfly.statistics-enabled:false}}"/>
|
||||||
<log-system-exceptions value="true"/>
|
<log-system-exceptions value="true"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:wildfly:elytron:14.0" final-providers="combined-providers"
|
<subsystem xmlns="urn:wildfly:elytron:16.0" final-providers="combined-providers"
|
||||||
disallowed-providers="OracleUcrypto">
|
disallowed-providers="OracleUcrypto">
|
||||||
<providers>
|
<providers>
|
||||||
<aggregate-providers name="combined-providers">
|
<aggregate-providers name="combined-providers">
|
||||||
|
@ -416,31 +424,43 @@
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:wildfly:elytron-oidc-client:1.0"/>
|
<subsystem xmlns="urn:wildfly:elytron-oidc-client:1.0"/>
|
||||||
<subsystem xmlns="urn:wildfly:health:1.0" security-enabled="false"/>
|
<subsystem xmlns="urn:wildfly:health:1.0" security-enabled="false"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:iiop-openjdk:2.1">
|
<subsystem xmlns="urn:jboss:domain:iiop-openjdk:3.0">
|
||||||
<orb socket-binding="iiop"/>
|
<orb socket-binding="iiop"/>
|
||||||
<initializers security="elytron" transactions="spec"/>
|
<initializers security="elytron" transactions="spec"/>
|
||||||
<security server-requires-ssl="false" client-requires-ssl="false"/>
|
<security server-requires-ssl="false" client-requires-ssl="false"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:infinispan:13.0">
|
<subsystem xmlns="urn:jboss:domain:infinispan:14.0">
|
||||||
<cache-container name="ejb" default-cache="passivation" marshaller="PROTOSTREAM"
|
<cache-container name="ejb" default-cache="passivation" marshaller="PROTOSTREAM"
|
||||||
aliases="sfsb" modules="org.wildfly.clustering.ejb.infinispan">
|
aliases="sfsb" modules="org.wildfly.clustering.ejb.infinispan">
|
||||||
<local-cache name="passivation">
|
<local-cache name="passivation">
|
||||||
<expiration interval="0"/>
|
<expiration interval="0"/>
|
||||||
<file-store passivation="true" purge="false"/>
|
<file-store passivation="true"/>
|
||||||
|
</local-cache>
|
||||||
|
<local-cache name="persistent">
|
||||||
|
<locking isolation="REPEATABLE_READ"/>
|
||||||
|
<transaction mode="BATCH"/>
|
||||||
|
<expiration interval="0"/>
|
||||||
|
<file-store preload="true"/>
|
||||||
|
</local-cache>
|
||||||
|
<local-cache name="transient">
|
||||||
|
<locking isolation="REPEATABLE_READ"/>
|
||||||
|
<transaction mode="BATCH"/>
|
||||||
|
<expiration interval="0"/>
|
||||||
|
<file-store passivation="true" purge="true"/>
|
||||||
</local-cache>
|
</local-cache>
|
||||||
</cache-container>
|
</cache-container>
|
||||||
<cache-container name="web" default-cache="passivation" marshaller="PROTOSTREAM"
|
<cache-container name="web" default-cache="passivation" marshaller="PROTOSTREAM"
|
||||||
modules="org.wildfly.clustering.web.infinispan">
|
modules="org.wildfly.clustering.web.infinispan">
|
||||||
<local-cache name="passivation">
|
<local-cache name="passivation">
|
||||||
<expiration interval="0"/>
|
<expiration interval="0"/>
|
||||||
<file-store passivation="true" purge="false"/>
|
<file-store passivation="true"/>
|
||||||
</local-cache>
|
</local-cache>
|
||||||
<local-cache name="sso">
|
<local-cache name="sso">
|
||||||
<expiration interval="0"/>
|
<expiration interval="0"/>
|
||||||
</local-cache>
|
</local-cache>
|
||||||
</cache-container>
|
</cache-container>
|
||||||
<cache-container name="server" default-cache="default" marshaller="PROTOSTREAM"
|
<cache-container name="server" default-cache="default" marshaller="PROTOSTREAM"
|
||||||
modules="org.wildfly.clustering.server">
|
modules="org.wildfly.clustering.singleton.server">
|
||||||
<local-cache name="default">
|
<local-cache name="default">
|
||||||
<expiration interval="0"/>
|
<expiration interval="0"/>
|
||||||
</local-cache>
|
</local-cache>
|
||||||
|
@ -464,10 +484,9 @@
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:io:3.0">
|
<subsystem xmlns="urn:jboss:domain:io:3.0">
|
||||||
<worker name="default"/>
|
<worker name="default"/>
|
||||||
<buffer-pool name="default"/>
|
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:jaxrs:2.0"/>
|
<subsystem xmlns="urn:jboss:domain:jaxrs:2.0"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:jca:5.0">
|
<subsystem xmlns="urn:jboss:domain:jca:6.0">
|
||||||
<archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>
|
<archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>
|
||||||
<bean-validation enabled="true"/>
|
<bean-validation enabled="true"/>
|
||||||
<default-workmanager>
|
<default-workmanager>
|
||||||
|
@ -496,13 +515,12 @@
|
||||||
<jpa default-extended-persistence-inheritance="DEEP"/>
|
<jpa default-extended-persistence-inheritance="DEEP"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:jsf:1.1"/>
|
<subsystem xmlns="urn:jboss:domain:jsf:1.1"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:jsr77:1.0"/>
|
|
||||||
<subsystem xmlns="urn:jboss:domain:mail:4.0">
|
<subsystem xmlns="urn:jboss:domain:mail:4.0">
|
||||||
<mail-session name="default" jndi-name="java:jboss/mail/Default">
|
<mail-session name="default" jndi-name="java:jboss/mail/Default">
|
||||||
<smtp-server outbound-socket-binding-ref="mail-smtp"/>
|
<smtp-server outbound-socket-binding-ref="mail-smtp"/>
|
||||||
</mail-session>
|
</mail-session>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:messaging-activemq:13.0">
|
<subsystem xmlns="urn:jboss:domain:messaging-activemq:14.0">
|
||||||
<server name="default">
|
<server name="default">
|
||||||
<security elytron-domain="ApplicationDomain"/>
|
<security elytron-domain="ApplicationDomain"/>
|
||||||
<statistics
|
<statistics
|
||||||
|
@ -544,7 +562,7 @@
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:wildfly:metrics:1.0" security-enabled="false" exposed-subsystems="*"
|
<subsystem xmlns="urn:wildfly:metrics:1.0" security-enabled="false" exposed-subsystems="*"
|
||||||
prefix="${wildfly.metrics.prefix:wildfly}"/>
|
prefix="${wildfly.metrics.prefix:wildfly}"/>
|
||||||
<subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0"/>
|
<subsystem xmlns="urn:wildfly:microprofile-config-smallrye:2.0"/>
|
||||||
<subsystem xmlns="urn:wildfly:microprofile-jwt-smallrye:1.0"/>
|
<subsystem xmlns="urn:wildfly:microprofile-jwt-smallrye:1.0"/>
|
||||||
<subsystem xmlns="urn:wildfly:microprofile-opentracing-smallrye:3.0" default-tracer="jaeger">
|
<subsystem xmlns="urn:wildfly:microprofile-opentracing-smallrye:3.0" default-tracer="jaeger">
|
||||||
<jaeger-tracer name="jaeger">
|
<jaeger-tracer name="jaeger">
|
||||||
|
@ -555,12 +573,12 @@
|
||||||
<remote-naming/>
|
<remote-naming/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:pojo:1.0"/>
|
<subsystem xmlns="urn:jboss:domain:pojo:1.0"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:remoting:4.0">
|
<subsystem xmlns="urn:jboss:domain:remoting:5.0">
|
||||||
<http-connector name="http-remoting-connector" connector-ref="default"
|
<http-connector name="http-remoting-connector" connector-ref="default"
|
||||||
sasl-authentication-factory="application-sasl-authentication"/>
|
sasl-authentication-factory="application-sasl-authentication"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:request-controller:1.0"/>
|
<subsystem xmlns="urn:jboss:domain:request-controller:1.0"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:resource-adapters:6.0"/>
|
<subsystem xmlns="urn:jboss:domain:resource-adapters:6.1"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:sar:1.0"/>
|
<subsystem xmlns="urn:jboss:domain:sar:1.0"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:security-manager:1.0">
|
<subsystem xmlns="urn:jboss:domain:security-manager:1.0">
|
||||||
<deployment-permissions>
|
<deployment-permissions>
|
||||||
|
@ -581,10 +599,11 @@
|
||||||
statistics-enabled="${wildfly.transactions.statistics-enabled:${wildfly.statistics-enabled:false}}"/>
|
statistics-enabled="${wildfly.transactions.statistics-enabled:${wildfly.statistics-enabled:false}}"/>
|
||||||
<object-store path="tx-object-store" relative-to="jboss.server.data.dir"/>
|
<object-store path="tx-object-store" relative-to="jboss.server.data.dir"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:undertow:12.0" default-server="default-server"
|
<subsystem xmlns="urn:jboss:domain:undertow:13.0" default-server="default-server"
|
||||||
default-virtual-host="default-host" default-servlet-container="default"
|
default-virtual-host="default-host" default-servlet-container="default"
|
||||||
default-security-domain="other"
|
default-security-domain="other"
|
||||||
statistics-enabled="${wildfly.undertow.statistics-enabled:${wildfly.statistics-enabled:false}}">
|
statistics-enabled="${wildfly.undertow.statistics-enabled:${wildfly.statistics-enabled:false}}">
|
||||||
|
<byte-buffer-pool name="default"/>
|
||||||
<buffer-cache name="default"/>
|
<buffer-cache name="default"/>
|
||||||
<server name="default-server">
|
<server name="default-server">
|
||||||
<http-listener name="default" socket-binding="http" redirect-socket="https"
|
<http-listener name="default" socket-binding="http" redirect-socket="https"
|
||||||
|
@ -620,7 +639,7 @@
|
||||||
</endpoint-config>
|
</endpoint-config>
|
||||||
<client-config name="Standard-Client-Config"/>
|
<client-config name="Standard-Client-Config"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:weld:4.0"/>
|
<subsystem xmlns="urn:jboss:domain:weld:5.0"/>
|
||||||
</profile>
|
</profile>
|
||||||
<interfaces>
|
<interfaces>
|
||||||
<interface name="management">
|
<interface name="management">
|
||||||
|
|
|
@ -1,13 +1,28 @@
|
||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<module name="com.h2database.h2" xmlns="urn:jboss:module:1.5">
|
<module name="com.h2database.h2" xmlns="urn:jboss:module:1.9">
|
||||||
|
|
||||||
<resources>
|
<resources>
|
||||||
<resource-root path="h2-2.1.214.jar"/>
|
<resource-root path="h2-2.1.214.jar"/>
|
||||||
</resources>
|
</resources>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<module name="jakarta.api"/>
|
<module name="java.compiler"/>
|
||||||
<module name="jakarta.transaction.api"/>
|
<module name="java.desktop"/>
|
||||||
<module name="jakarta.servlet.api" optional="true"/>
|
<module name="java.instrument"/>
|
||||||
|
<module name="java.logging"/>
|
||||||
|
<module name="java.management"/>
|
||||||
|
<module name="java.naming"/>
|
||||||
|
<module name="java.scripting"/>
|
||||||
|
<module name="java.sql"/>
|
||||||
|
<module name="java.transaction.xa"/>
|
||||||
|
<!-- H2 uses Jakarta Servlet to allow apps (in our case deployments) to expose its console as a servlet.
|
||||||
|
WildFly isn't concerning itself with allowing this H2 feature to continue to work in both a
|
||||||
|
javax.* EE namespace and jakarta.* EE namespace environment, so this no longer works out of the box.
|
||||||
|
But, we add an optional dep on a non-existent module as a hook to allow users to get it to work.
|
||||||
|
Users who want this to work can provide a module with the name:slot javax.servlet.api:h2. That module could
|
||||||
|
be a simple alias to the jakarta.servlet.api module the server provides, if that works with this module's
|
||||||
|
H2 artifact. Or the user could provide a non-alias module that packages and exposes the servlet resources H2 needs. -->
|
||||||
|
<module name="javax.servlet.api:h2" optional="true"/>
|
||||||
|
<module name="org.slf4j"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</module>
|
</module>
|
||||||
|
|
|
@ -65,8 +65,7 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
<version>${version.mockito-inline}</version>
|
<artifactId>mockito-core</artifactId>
|
||||||
<artifactId>mockito-inline</artifactId>
|
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
package pro.taskana.example;
|
package pro.taskana.example;
|
||||||
|
|
||||||
import jakarta.annotation.PostConstruct;
|
import jakarta.annotation.PostConstruct;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import pro.taskana.classification.api.models.Classification;
|
import pro.taskana.classification.api.models.Classification;
|
||||||
import pro.taskana.common.api.TaskanaEngine;
|
import pro.taskana.common.api.TaskanaEngine;
|
||||||
|
import pro.taskana.common.api.exceptions.TaskanaException;
|
||||||
import pro.taskana.task.api.TaskService;
|
import pro.taskana.task.api.TaskService;
|
||||||
import pro.taskana.task.api.models.Task;
|
import pro.taskana.task.api.models.Task;
|
||||||
import pro.taskana.task.internal.models.ObjectReferenceImpl;
|
import pro.taskana.task.internal.models.ObjectReferenceImpl;
|
||||||
|
@ -17,40 +20,52 @@ import pro.taskana.workbasket.api.models.Workbasket;
|
||||||
@Transactional
|
@Transactional
|
||||||
public class ExampleBootstrap {
|
public class ExampleBootstrap {
|
||||||
|
|
||||||
@Autowired private TaskService taskService;
|
private static final Logger LOGGER = LoggerFactory.getLogger(ExampleBootstrap.class);
|
||||||
|
|
||||||
@Autowired private TaskanaEngine taskanaEngine;
|
private final TaskService taskService;
|
||||||
|
|
||||||
|
private final TaskanaEngine taskanaEngine;
|
||||||
|
|
||||||
|
public ExampleBootstrap(
|
||||||
|
@Autowired TaskService taskService, @Autowired TaskanaEngine taskanaEngine) {
|
||||||
|
this.taskService = taskService;
|
||||||
|
this.taskanaEngine = taskanaEngine;
|
||||||
|
}
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void test() throws Exception {
|
public void postConstruct() throws Exception {
|
||||||
System.out.println("---------------------------> Start App");
|
try {
|
||||||
|
LOGGER.info("---------------------------> Start App");
|
||||||
|
|
||||||
Workbasket wb = taskanaEngine.getWorkbasketService().newWorkbasket("workbasket", "DOMAIN_A");
|
Workbasket wb = taskanaEngine.getWorkbasketService().newWorkbasket("workbasket", "DOMAIN_A");
|
||||||
wb.setName("workbasket");
|
wb.setName("workbasket");
|
||||||
wb.setType(WorkbasketType.GROUP);
|
wb.setType(WorkbasketType.GROUP);
|
||||||
taskanaEngine.getWorkbasketService().createWorkbasket(wb);
|
taskanaEngine.getWorkbasketService().createWorkbasket(wb);
|
||||||
Classification classification =
|
Classification classification =
|
||||||
taskanaEngine.getClassificationService().newClassification("TEST", "DOMAIN_A", "TASK");
|
taskanaEngine.getClassificationService().newClassification("TEST", "DOMAIN_A", "TASK");
|
||||||
classification.setServiceLevel("P1D");
|
classification.setServiceLevel("P1D");
|
||||||
taskanaEngine.getClassificationService().createClassification(classification);
|
taskanaEngine.getClassificationService().createClassification(classification);
|
||||||
|
|
||||||
Task task = taskanaEngine.getTaskService().newTask(wb.getId());
|
Task task = taskanaEngine.getTaskService().newTask(wb.getId());
|
||||||
task.setName("Spring example task");
|
task.setName("Spring example task");
|
||||||
task.setClassificationKey(classification.getKey());
|
task.setClassificationKey(classification.getKey());
|
||||||
ObjectReferenceImpl objRef = new ObjectReferenceImpl();
|
ObjectReferenceImpl objRef = new ObjectReferenceImpl();
|
||||||
objRef.setCompany("aCompany");
|
objRef.setCompany("aCompany");
|
||||||
objRef.setSystem("aSystem");
|
objRef.setSystem("aSystem");
|
||||||
objRef.setSystemInstance("anInstance");
|
objRef.setSystemInstance("anInstance");
|
||||||
objRef.setType("aType");
|
objRef.setType("aType");
|
||||||
objRef.setValue("aValue");
|
objRef.setValue("aValue");
|
||||||
task.setPrimaryObjRef(objRef);
|
task.setPrimaryObjRef(objRef);
|
||||||
task = taskService.createTask(task);
|
task = taskService.createTask(task);
|
||||||
System.out.println("---------------------------> Task started: " + task.getId());
|
LOGGER.info("---------------------------> Task started: {}", task.getId());
|
||||||
taskService.claim(task.getId());
|
taskService.claim(task.getId());
|
||||||
System.out.println(
|
LOGGER.info(
|
||||||
"---------------------------> Task claimed: "
|
"---------------------------> Task claimed: {}",
|
||||||
+ taskService.getTask(task.getId()).getOwner());
|
taskService.getTask(task.getId()).getOwner());
|
||||||
taskService.forceCompleteTask(task.getId());
|
taskService.forceCompleteTask(task.getId());
|
||||||
System.out.println("---------------------------> Task completed");
|
LOGGER.info("---------------------------> Task completed");
|
||||||
|
} catch (TaskanaException e) {
|
||||||
|
throw new ExampleStartupException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
package pro.taskana.example;
|
||||||
|
|
||||||
|
public class ExampleStartupException extends RuntimeException {
|
||||||
|
|
||||||
|
public ExampleStartupException(Throwable cause) {
|
||||||
|
super("Can't bootstrap Spring example application", cause);
|
||||||
|
}
|
||||||
|
}
|
|
@ -96,8 +96,8 @@ public class TaskanaConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public ExampleBootstrap exampleBootstrap() {
|
public ExampleBootstrap exampleBootstrap(TaskService taskService, TaskanaEngine taskanaEngine) {
|
||||||
return new ExampleBootstrap();
|
return new ExampleBootstrap(taskService, taskanaEngine);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Profile("inmemorydb")
|
@Profile("inmemorydb")
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
package pro.taskana.example;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.ClassOrderer;
|
||||||
|
import org.junit.jupiter.api.Order;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.TestClassOrder;
|
||||||
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
|
import org.springframework.test.context.ActiveProfiles;
|
||||||
|
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||||
|
|
||||||
|
@ExtendWith(SpringExtension.class)
|
||||||
|
@SpringBootTest(
|
||||||
|
classes = TaskanaConfigTestApplication.class,
|
||||||
|
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||||
|
@ActiveProfiles({"inmemorydb", "dev"})
|
||||||
|
@Import({TransactionalJobsConfiguration.class})
|
||||||
|
// This BootstrapTest must be executed before all other tests
|
||||||
|
// especially before TaskanaTransactionIntTest (There is everything deleted...
|
||||||
|
// here we only test the execution of PostConstruct method
|
||||||
|
@TestClassOrder(ClassOrderer.OrderAnnotation.class)
|
||||||
|
@Order(1)
|
||||||
|
class ExampleBootstrapTest {
|
||||||
|
|
||||||
|
@Autowired private JdbcTemplate jdbcTemplate;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void should_count_tasks_after_psotConstruc_method_was_executed() {
|
||||||
|
Integer actualNumberOfTasks = jdbcTemplate.queryForObject(
|
||||||
|
"SELECT COUNT(ID) FROM TASK WHERE NAME = ?",
|
||||||
|
Integer.class,
|
||||||
|
"Spring example task");
|
||||||
|
|
||||||
|
assertThat(actualNumberOfTasks).isEqualTo(1);
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,7 +9,10 @@ import java.util.List;
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
import org.assertj.core.api.ThrowableAssert.ThrowingCallable;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.ClassOrderer;
|
||||||
|
import org.junit.jupiter.api.Order;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.TestClassOrder;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
@ -47,6 +50,8 @@ import pro.taskana.workbasket.internal.models.WorkbasketImpl;
|
||||||
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||||
@ActiveProfiles({"inmemorydb", "dev"})
|
@ActiveProfiles({"inmemorydb", "dev"})
|
||||||
@Import({TransactionalJobsConfiguration.class})
|
@Import({TransactionalJobsConfiguration.class})
|
||||||
|
@TestClassOrder(ClassOrderer.OrderAnnotation.class)
|
||||||
|
@Order(2)
|
||||||
class TaskanaTransactionIntTest {
|
class TaskanaTransactionIntTest {
|
||||||
|
|
||||||
private static final String INTERNAL_SERVER_ERROR_MESSAGE = "Internal Server Error";
|
private static final String INTERNAL_SERVER_ERROR_MESSAGE = "Internal Server Error";
|
||||||
|
@ -59,6 +64,7 @@ class TaskanaTransactionIntTest {
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
void before() {
|
void before() {
|
||||||
|
|
||||||
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
|
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
|
||||||
jdbcTemplate.execute("DELETE FROM TASK");
|
jdbcTemplate.execute("DELETE FROM TASK");
|
||||||
jdbcTemplate.execute("DELETE FROM WORKBASKET");
|
jdbcTemplate.execute("DELETE FROM WORKBASKET");
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
junit.jupiter.testclass.order.default=org.junit.jupiter.api.ClassOrderer$OrderAnnotation
|
||||||
|
|
|
@ -35,8 +35,7 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
<version>${version.mockito-inline}</version>
|
<artifactId>mockito-core</artifactId>
|
||||||
<artifactId>mockito-inline</artifactId>
|
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.testcontainers</groupId>
|
<groupId>org.testcontainers</groupId>
|
||||||
|
|
27
pom.xml
27
pom.xml
|
@ -65,24 +65,21 @@
|
||||||
|
|
||||||
<!-- spring dependencies -->
|
<!-- spring dependencies -->
|
||||||
<version.jakarta.annotation-api>2.1.1</version.jakarta.annotation-api>
|
<version.jakarta.annotation-api>2.1.1</version.jakarta.annotation-api>
|
||||||
<version.spring.core>3.0.0</version.spring.core>
|
<version.spring.plugin.core>3.0.0</version.spring.plugin.core>
|
||||||
<version.spring.boot>3.1.5</version.spring.boot>
|
<version.spring.boot>3.1.5</version.spring.boot>
|
||||||
<version.spring.mybatis>2.1.1</version.spring.mybatis>
|
<version.spring.mybatis>3.0.2</version.spring.mybatis>
|
||||||
|
|
||||||
<!-- wildfly dependencies -->
|
<!-- wildfly dependencies -->
|
||||||
<version.wildfly>25.0.1.Final</version.wildfly>
|
<version.wildfly>27.0.1.Final</version.wildfly>
|
||||||
|
|
||||||
<!-- camunda dependencies -->
|
<!-- camunda dependencies -->
|
||||||
<version.camunda.dmn>7.20.0</version.camunda.dmn>
|
<version.camunda.dmn>7.20.0</version.camunda.dmn>
|
||||||
|
|
||||||
<!-- java ee dependencies -->
|
<!-- java ee dependencies -->
|
||||||
<version.thorntail>2.7.0.Final</version.thorntail>
|
|
||||||
<version.jakartaee-api>10.0.0</version.jakartaee-api>
|
<version.jakartaee-api>10.0.0</version.jakartaee-api>
|
||||||
<version.jakarta.enterprise.cdi-api>4.0.1</version.jakarta.enterprise.cdi-api>
|
|
||||||
<version.jakarta.inject-api>2.0.1</version.jakarta.inject-api>
|
|
||||||
<version.jakarta.servlet>6.0.0</version.jakarta.servlet>
|
<version.jakarta.servlet>6.0.0</version.jakarta.servlet>
|
||||||
<version.arquillian>1.5.0.Final</version.arquillian>
|
<version.arquillian>1.7.1.Final</version.arquillian>
|
||||||
<version.arquillian.managed.wildfly>3.0.1.Final</version.arquillian.managed.wildfly>
|
<version.arquillian.managed.wildfly>5.0.1.Final</version.arquillian.managed.wildfly>
|
||||||
|
|
||||||
<!-- test dependencies -->
|
<!-- test dependencies -->
|
||||||
<version.assertj>3.24.2</version.assertj>
|
<version.assertj>3.24.2</version.assertj>
|
||||||
|
@ -93,7 +90,6 @@
|
||||||
<version.slf4j-test>3.0.1</version.slf4j-test>
|
<version.slf4j-test>3.0.1</version.slf4j-test>
|
||||||
<version.auto-restdocs>2.0.11</version.auto-restdocs>
|
<version.auto-restdocs>2.0.11</version.auto-restdocs>
|
||||||
<version.testcontainers>1.19.0</version.testcontainers>
|
<version.testcontainers>1.19.0</version.testcontainers>
|
||||||
<version.mockito-inline>5.2.0</version.mockito-inline>
|
|
||||||
|
|
||||||
<!-- AspectJ dependencies -->
|
<!-- AspectJ dependencies -->
|
||||||
<version.aspectj-maven-plugin>1.14.0</version.aspectj-maven-plugin>
|
<version.aspectj-maven-plugin>1.14.0</version.aspectj-maven-plugin>
|
||||||
|
@ -101,9 +97,9 @@
|
||||||
|
|
||||||
<!-- Excel to DMN converter dependencies -->
|
<!-- Excel to DMN converter dependencies -->
|
||||||
<version.dmn-xlsx-converter>0.3.0</version.dmn-xlsx-converter>
|
<version.dmn-xlsx-converter>0.3.0</version.dmn-xlsx-converter>
|
||||||
<version.jakarta.xml.bind-api>2.3.3</version.jakarta.xml.bind-api>
|
<version.jakarta.xml.bind-api>4.0.1</version.jakarta.xml.bind-api>
|
||||||
<version.jaxb-core>2.3.0.1</version.jaxb-core>
|
<version.glassfish-jaxb-core>4.0.3</version.glassfish-jaxb-core>
|
||||||
<version.jaxb-impl>2.3.8</version.jaxb-impl>
|
<version.glassfish-jaxb-runtime>4.0.3</version.glassfish-jaxb-runtime>
|
||||||
<version.jakarta.activation>2.1.2</version.jakarta.activation>
|
<version.jakarta.activation>2.1.2</version.jakarta.activation>
|
||||||
|
|
||||||
<!-- database driver versions -->
|
<!-- database driver versions -->
|
||||||
|
@ -128,9 +124,12 @@
|
||||||
<modules>
|
<modules>
|
||||||
<module>common</module>
|
<module>common</module>
|
||||||
<module>lib</module>
|
<module>lib</module>
|
||||||
<module>rest</module>
|
<!--
|
||||||
<!-- History is an optional module. -->
|
History is an optional module but used in taskana-rest-spring-example-wildfly
|
||||||
|
because of that it must be build before the rest module
|
||||||
|
-->
|
||||||
<module>history</module>
|
<module>history</module>
|
||||||
|
<module>rest</module>
|
||||||
<module>ci/taskana-sonar-test-coverage</module>
|
<module>ci/taskana-sonar-test-coverage</module>
|
||||||
<module>routing</module>
|
<module>routing</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.plugin</groupId>
|
<groupId>org.springframework.plugin</groupId>
|
||||||
<artifactId>spring-plugin-core</artifactId>
|
<artifactId>spring-plugin-core</artifactId>
|
||||||
<version>${version.spring.core}</version>
|
<version>${version.spring.plugin.core}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.ldap</groupId>
|
<groupId>org.springframework.ldap</groupId>
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.wildfly.bom</groupId>
|
<groupId>org.wildfly.bom</groupId>
|
||||||
<artifactId>wildfly-jakartaee8</artifactId>
|
<artifactId>wildfly-ee</artifactId>
|
||||||
<version>${version.wildfly}</version>
|
<version>${version.wildfly}</version>
|
||||||
<scope>import</scope>
|
<scope>import</scope>
|
||||||
<type>pom</type>
|
<type>pom</type>
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.plugin</groupId>
|
<groupId>org.springframework.plugin</groupId>
|
||||||
<artifactId>spring-plugin-core</artifactId>
|
<artifactId>spring-plugin-core</artifactId>
|
||||||
<version>${version.spring.core}</version>
|
<version>${version.spring.plugin.core}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>jakarta.servlet</groupId>
|
<groupId>jakarta.servlet</groupId>
|
||||||
|
@ -218,6 +218,26 @@
|
||||||
</resources>
|
</resources>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
|
<execution>
|
||||||
|
<id>copy-wildfly-config-xml</id>
|
||||||
|
<phase>process-test-classes</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>copy-resources</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<outputDirectory>
|
||||||
|
${project.build.directory}/wildfly-${version.wildfly}/standalone/configuration
|
||||||
|
</outputDirectory>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/test/resources</directory>
|
||||||
|
<includes>
|
||||||
|
<include>int-test-standalone.xml</include>
|
||||||
|
</includes>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
<execution>
|
<execution>
|
||||||
<id>copy-documentation-to-static-folder</id>
|
<id>copy-documentation-to-static-folder</id>
|
||||||
<phase>prepare-package</phase>
|
<phase>prepare-package</phase>
|
||||||
|
@ -245,7 +265,7 @@
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>jboss</id>
|
<id>jboss</id>
|
||||||
<url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url>
|
<url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
|
||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -77,7 +77,7 @@ public class AbstractAccTest {
|
||||||
protected String parseServerLog() throws Exception {
|
protected String parseServerLog() throws Exception {
|
||||||
|
|
||||||
// TO-DO: make log4j log into rollingFile from log4j.xml
|
// TO-DO: make log4j log into rollingFile from log4j.xml
|
||||||
File file = new File("target/wildfly-25.0.1.Final/standalone/log/server.log");
|
File file = new File("target/wildfly-27.0.1.Final/standalone/log/server.log");
|
||||||
|
|
||||||
BufferedReader br = new BufferedReader(new FileReader(file));
|
BufferedReader br = new BufferedReader(new FileReader(file));
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ public class TaskanaWildflyTest extends AbstractAccTest {
|
||||||
File[] files =
|
File[] files =
|
||||||
Maven.resolver()
|
Maven.resolver()
|
||||||
.loadPomFromFile("pom.xml")
|
.loadPomFromFile("pom.xml")
|
||||||
.importRuntimeDependencies()
|
.importCompileAndRuntimeDependencies()
|
||||||
.resolve()
|
.resolve()
|
||||||
.withTransitivity()
|
.withTransitivity()
|
||||||
.asFile();
|
.asFile();
|
||||||
|
|
|
@ -57,8 +57,7 @@ public class TaskanaWildflyWithHistoryLoggerEnabledTest extends AbstractAccTest
|
||||||
File[] files =
|
File[] files =
|
||||||
Maven.resolver()
|
Maven.resolver()
|
||||||
.loadPomFromFile("pom.xml")
|
.loadPomFromFile("pom.xml")
|
||||||
.importRuntimeDependencies()
|
.importCompileAndRuntimeDependencies()
|
||||||
.addDependency(historyLoggerDependency)
|
|
||||||
.resolve()
|
.resolve()
|
||||||
.withTransitivity()
|
.withTransitivity()
|
||||||
.asFile();
|
.asFile();
|
||||||
|
|
|
@ -73,7 +73,7 @@ public class TaskanaWildflyWithSimpleHistoryAndHistoryLoggerEnabledTest extends
|
||||||
File[] files =
|
File[] files =
|
||||||
Maven.resolver()
|
Maven.resolver()
|
||||||
.loadPomFromFile("pom.xml")
|
.loadPomFromFile("pom.xml")
|
||||||
.importRuntimeDependencies()
|
.importCompileAndRuntimeDependencies()
|
||||||
.addDependency(simpleHistoryDependency)
|
.addDependency(simpleHistoryDependency)
|
||||||
.addDependency(historyLoggerDependency)
|
.addDependency(historyLoggerDependency)
|
||||||
.resolve()
|
.resolve()
|
||||||
|
|
|
@ -55,14 +55,13 @@ public class TaskanaWildflyWithSimpleHistoryEnabledTest extends AbstractAccTest
|
||||||
DEPENDENCY_VERSION,
|
DEPENDENCY_VERSION,
|
||||||
PackagingType.JAR,
|
PackagingType.JAR,
|
||||||
null);
|
null);
|
||||||
|
|
||||||
MavenDependency simpleHistoryDependency =
|
MavenDependency simpleHistoryDependency =
|
||||||
new MavenDependencyImpl(simpleHistoryCoordinate, ScopeType.TEST, false);
|
new MavenDependencyImpl(simpleHistoryCoordinate, ScopeType.TEST, false);
|
||||||
|
|
||||||
File[] files =
|
File[] files =
|
||||||
Maven.resolver()
|
Maven.resolver()
|
||||||
.loadPomFromFile("pom.xml")
|
.loadPomFromFile("pom.xml")
|
||||||
.importRuntimeDependencies()
|
.importCompileAndRuntimeDependencies()
|
||||||
.addDependency(simpleHistoryDependency)
|
.addDependency(simpleHistoryDependency)
|
||||||
.resolve()
|
.resolve()
|
||||||
.withTransitivity()
|
.withTransitivity()
|
||||||
|
|
|
@ -54,7 +54,7 @@ public class TaskanaWildflyWithUserConfigTest extends AbstractAccTest {
|
||||||
File[] files =
|
File[] files =
|
||||||
Maven.resolver()
|
Maven.resolver()
|
||||||
.loadPomFromFile("pom.xml")
|
.loadPomFromFile("pom.xml")
|
||||||
.importRuntimeDependencies()
|
.importCompileAndRuntimeDependencies()
|
||||||
.resolve()
|
.resolve()
|
||||||
.withTransitivity()
|
.withTransitivity()
|
||||||
.asFile();
|
.asFile();
|
||||||
|
|
|
@ -2,24 +2,18 @@
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://jboss.org/schema/arquillian
|
xsi:schemaLocation="http://jboss.org/schema/arquillian
|
||||||
http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
|
http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
|
||||||
<defaultProtocol type="Servlet 3.0"/>
|
<defaultProtocol type="Servlet 6.0"/>
|
||||||
<container qualifier="jboss" default="true">
|
<container qualifier="wildfly" default="true">
|
||||||
<configuration>
|
<configuration>
|
||||||
<property name="jbossHome">target/wildfly-25.0.1.Final</property>
|
<property name="jbossHome">target/wildfly-27.0.1.Final</property>
|
||||||
<property
|
<property name="serverConfig">int-test-standalone.xml</property>
|
||||||
name="serverConfig">../../../../src/test/resources/int-test-standalone.xml
|
<!-- <property name="javaVmArguments">-->
|
||||||
</property>
|
<!-- --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED-->
|
||||||
<!-- <property name="javaVmArguments">-->
|
<!-- -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y-->
|
||||||
<!-- - -add-opens java.base/java.util=ALL-UNNAMED -->
|
<!-- -Djava.util.logging.manager=org.jboss.logmanager.LogManager-->
|
||||||
<!-- - -add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED -->
|
<!-- </property>-->
|
||||||
<!-- -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y-->
|
|
||||||
<!-- -Dh2.bindAddress=127.0.0.1-->
|
|
||||||
<!-- -Djava.util.logging.manager=org.jboss.logmanager.LogManager-->
|
|
||||||
<!-- </property>-->
|
|
||||||
<property name="javaVmArguments">
|
<property name="javaVmArguments">
|
||||||
--add-opens java.base/java.util=ALL-UNNAMED
|
|
||||||
--add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED
|
--add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED
|
||||||
-Dh2.bindAddress=127.0.0.1
|
|
||||||
-Djava.util.logging.manager=org.jboss.logmanager.LogManager
|
-Djava.util.logging.manager=org.jboss.logmanager.LogManager
|
||||||
</property>
|
</property>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<server xmlns="urn:jboss:domain:18.0">
|
<server xmlns="urn:jboss:domain:20.0">
|
||||||
<extensions>
|
<extensions>
|
||||||
<extension module="org.jboss.as.clustering.infinispan"/>
|
<extension module="org.jboss.as.clustering.infinispan"/>
|
||||||
<extension module="org.jboss.as.connector"/>
|
<extension module="org.jboss.as.connector"/>
|
||||||
|
@ -12,7 +12,6 @@
|
||||||
<extension module="org.jboss.as.jmx"/>
|
<extension module="org.jboss.as.jmx"/>
|
||||||
<extension module="org.jboss.as.jpa"/>
|
<extension module="org.jboss.as.jpa"/>
|
||||||
<extension module="org.jboss.as.jsf"/>
|
<extension module="org.jboss.as.jsf"/>
|
||||||
<extension module="org.jboss.as.jsr77"/>
|
|
||||||
<extension module="org.jboss.as.logging"/>
|
<extension module="org.jboss.as.logging"/>
|
||||||
<extension module="org.jboss.as.mail"/>
|
<extension module="org.jboss.as.mail"/>
|
||||||
<extension module="org.jboss.as.naming"/>
|
<extension module="org.jboss.as.naming"/>
|
||||||
|
@ -24,6 +23,7 @@
|
||||||
<extension module="org.jboss.as.weld"/>
|
<extension module="org.jboss.as.weld"/>
|
||||||
<extension module="org.wildfly.extension.batch.jberet"/>
|
<extension module="org.wildfly.extension.batch.jberet"/>
|
||||||
<extension module="org.wildfly.extension.bean-validation"/>
|
<extension module="org.wildfly.extension.bean-validation"/>
|
||||||
|
<extension module="org.wildfly.extension.clustering.ejb"/>
|
||||||
<extension module="org.wildfly.extension.clustering.web"/>
|
<extension module="org.wildfly.extension.clustering.web"/>
|
||||||
<extension module="org.wildfly.extension.core-management"/>
|
<extension module="org.wildfly.extension.core-management"/>
|
||||||
<extension module="org.wildfly.extension.discovery"/>
|
<extension module="org.wildfly.extension.discovery"/>
|
||||||
|
@ -168,7 +168,7 @@
|
||||||
<pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
|
<pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
|
||||||
</formatter>
|
</formatter>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:batch-jberet:2.0">
|
<subsystem xmlns="urn:jboss:domain:batch-jberet:3.0">
|
||||||
<default-job-repository name="in-memory"/>
|
<default-job-repository name="in-memory"/>
|
||||||
<default-thread-pool name="batch"/>
|
<default-thread-pool name="batch"/>
|
||||||
<job-repository name="in-memory">
|
<job-repository name="in-memory">
|
||||||
|
@ -181,7 +181,7 @@
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:bean-validation:1.0"/>
|
<subsystem xmlns="urn:jboss:domain:bean-validation:1.0"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:core-management:1.0"/>
|
<subsystem xmlns="urn:jboss:domain:core-management:1.0"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:datasources:6.0">
|
<subsystem xmlns="urn:jboss:domain:datasources:7.0">
|
||||||
<datasources>
|
<datasources>
|
||||||
<datasource
|
<datasource
|
||||||
jndi-name="java:jboss/datasources/ExampleDS"
|
jndi-name="java:jboss/datasources/ExampleDS"
|
||||||
|
@ -221,8 +221,7 @@
|
||||||
</xa-datasource-class>
|
</xa-datasource-class>
|
||||||
</driver>
|
</driver>
|
||||||
<driver name="postgresql" module="org.postgresql.postgresql">
|
<driver name="postgresql" module="org.postgresql.postgresql">
|
||||||
<driver-class>org.postgresql.Driver
|
<driver-class>org.postgresql.Driver</driver-class>
|
||||||
</driver-class>
|
|
||||||
</driver>
|
</driver>
|
||||||
</drivers>
|
</drivers>
|
||||||
</datasources>
|
</datasources>
|
||||||
|
@ -233,7 +232,16 @@
|
||||||
runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/>
|
runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:discovery:1.0"/>
|
<subsystem xmlns="urn:jboss:domain:discovery:1.0"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:distributable-web:2.0" default-session-management="default"
|
<subsystem xmlns="urn:jboss:domain:distributable-ejb:1.0" default-bean-management="default">
|
||||||
|
<infinispan-bean-management name="default" cache-container="ejb" cache="passivation"
|
||||||
|
max-active-beans="10000"/>
|
||||||
|
<local-client-mappings-registry/>
|
||||||
|
<infinispan-timer-management name="persistent" cache-container="ejb" cache="persistent"
|
||||||
|
max-active-timers="10000"/>
|
||||||
|
<infinispan-timer-management name="transient" cache-container="ejb" cache="transient"
|
||||||
|
max-active-timers="10000"/>
|
||||||
|
</subsystem>
|
||||||
|
<subsystem xmlns="urn:jboss:domain:distributable-web:3.0" default-session-management="default"
|
||||||
default-single-sign-on-management="default">
|
default-single-sign-on-management="default">
|
||||||
<infinispan-session-management name="default" cache-container="web" granularity="SESSION">
|
<infinispan-session-management name="default" cache-container="web" granularity="SESSION">
|
||||||
<local-affinity/>
|
<local-affinity/>
|
||||||
|
@ -275,7 +283,7 @@
|
||||||
managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
|
managed-thread-factory="java:jboss/ee/concurrency/factory/default"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:ee-security:1.0"/>
|
<subsystem xmlns="urn:jboss:domain:ee-security:1.0"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:ejb3:9.0">
|
<subsystem xmlns="urn:jboss:domain:ejb3:10.0">
|
||||||
<session-bean>
|
<session-bean>
|
||||||
<stateless>
|
<stateless>
|
||||||
<bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>
|
<bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>
|
||||||
|
@ -299,13 +307,9 @@
|
||||||
</bean-instance-pools>
|
</bean-instance-pools>
|
||||||
</pools>
|
</pools>
|
||||||
<caches>
|
<caches>
|
||||||
<cache name="simple"/>
|
<simple-cache name="simple"/>
|
||||||
<cache name="distributable" passivation-store-ref="infinispan"
|
<distributable-cache name="distributable"/>
|
||||||
aliases="passivating clustered"/>
|
|
||||||
</caches>
|
</caches>
|
||||||
<passivation-stores>
|
|
||||||
<passivation-store name="infinispan" cache-container="ejb" max-size="10000"/>
|
|
||||||
</passivation-stores>
|
|
||||||
<async thread-pool-name="default"/>
|
<async thread-pool-name="default"/>
|
||||||
<timer-service thread-pool-name="default" default-data-store="default-file-store">
|
<timer-service thread-pool-name="default" default-data-store="default-file-store">
|
||||||
<data-stores>
|
<data-stores>
|
||||||
|
@ -333,7 +337,7 @@
|
||||||
<statistics enabled="${wildfly.ejb3.statistics-enabled:${wildfly.statistics-enabled:false}}"/>
|
<statistics enabled="${wildfly.ejb3.statistics-enabled:${wildfly.statistics-enabled:false}}"/>
|
||||||
<log-system-exceptions value="true"/>
|
<log-system-exceptions value="true"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:wildfly:elytron:14.0" final-providers="combined-providers"
|
<subsystem xmlns="urn:wildfly:elytron:16.0" final-providers="combined-providers"
|
||||||
disallowed-providers="OracleUcrypto">
|
disallowed-providers="OracleUcrypto">
|
||||||
<providers>
|
<providers>
|
||||||
<aggregate-providers name="combined-providers">
|
<aggregate-providers name="combined-providers">
|
||||||
|
@ -513,31 +517,43 @@
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:wildfly:elytron-oidc-client:1.0"/>
|
<subsystem xmlns="urn:wildfly:elytron-oidc-client:1.0"/>
|
||||||
<subsystem xmlns="urn:wildfly:health:1.0" security-enabled="false"/>
|
<subsystem xmlns="urn:wildfly:health:1.0" security-enabled="false"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:iiop-openjdk:2.1">
|
<subsystem xmlns="urn:jboss:domain:iiop-openjdk:3.0">
|
||||||
<orb socket-binding="iiop"/>
|
<orb socket-binding="iiop"/>
|
||||||
<initializers security="elytron" transactions="spec"/>
|
<initializers security="elytron" transactions="spec"/>
|
||||||
<security server-requires-ssl="false" client-requires-ssl="false"/>
|
<security server-requires-ssl="false" client-requires-ssl="false"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:infinispan:13.0">
|
<subsystem xmlns="urn:jboss:domain:infinispan:14.0">
|
||||||
<cache-container name="ejb" default-cache="passivation" marshaller="PROTOSTREAM"
|
<cache-container name="ejb" default-cache="passivation" marshaller="PROTOSTREAM"
|
||||||
aliases="sfsb" modules="org.wildfly.clustering.ejb.infinispan">
|
aliases="sfsb" modules="org.wildfly.clustering.ejb.infinispan">
|
||||||
<local-cache name="passivation">
|
<local-cache name="passivation">
|
||||||
<expiration interval="0"/>
|
<expiration interval="0"/>
|
||||||
<file-store passivation="true" purge="false"/>
|
<file-store passivation="true"/>
|
||||||
|
</local-cache>
|
||||||
|
<local-cache name="persistent">
|
||||||
|
<locking isolation="REPEATABLE_READ"/>
|
||||||
|
<transaction mode="BATCH"/>
|
||||||
|
<expiration interval="0"/>
|
||||||
|
<file-store preload="true"/>
|
||||||
|
</local-cache>
|
||||||
|
<local-cache name="transient">
|
||||||
|
<locking isolation="REPEATABLE_READ"/>
|
||||||
|
<transaction mode="BATCH"/>
|
||||||
|
<expiration interval="0"/>
|
||||||
|
<file-store passivation="true" purge="true"/>
|
||||||
</local-cache>
|
</local-cache>
|
||||||
</cache-container>
|
</cache-container>
|
||||||
<cache-container name="web" default-cache="passivation" marshaller="PROTOSTREAM"
|
<cache-container name="web" default-cache="passivation" marshaller="PROTOSTREAM"
|
||||||
modules="org.wildfly.clustering.web.infinispan">
|
modules="org.wildfly.clustering.web.infinispan">
|
||||||
<local-cache name="passivation">
|
<local-cache name="passivation">
|
||||||
<expiration interval="0"/>
|
<expiration interval="0"/>
|
||||||
<file-store passivation="true" purge="false"/>
|
<file-store passivation="true"/>
|
||||||
</local-cache>
|
</local-cache>
|
||||||
<local-cache name="sso">
|
<local-cache name="sso">
|
||||||
<expiration interval="0"/>
|
<expiration interval="0"/>
|
||||||
</local-cache>
|
</local-cache>
|
||||||
</cache-container>
|
</cache-container>
|
||||||
<cache-container name="server" default-cache="default" marshaller="PROTOSTREAM"
|
<cache-container name="server" default-cache="default" marshaller="PROTOSTREAM"
|
||||||
modules="org.wildfly.clustering.server">
|
modules="org.wildfly.clustering.singleton.server">
|
||||||
<local-cache name="default">
|
<local-cache name="default">
|
||||||
<expiration interval="0"/>
|
<expiration interval="0"/>
|
||||||
</local-cache>
|
</local-cache>
|
||||||
|
@ -561,10 +577,9 @@
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:io:3.0">
|
<subsystem xmlns="urn:jboss:domain:io:3.0">
|
||||||
<worker name="default"/>
|
<worker name="default"/>
|
||||||
<buffer-pool name="default"/>
|
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:jaxrs:2.0"/>
|
<subsystem xmlns="urn:jboss:domain:jaxrs:2.0"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:jca:5.0">
|
<subsystem xmlns="urn:jboss:domain:jca:6.0">
|
||||||
<archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>
|
<archive-validation enabled="true" fail-on-error="true" fail-on-warn="false"/>
|
||||||
<bean-validation enabled="true"/>
|
<bean-validation enabled="true"/>
|
||||||
<default-workmanager>
|
<default-workmanager>
|
||||||
|
@ -593,13 +608,12 @@
|
||||||
<jpa default-extended-persistence-inheritance="DEEP"/>
|
<jpa default-extended-persistence-inheritance="DEEP"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:jsf:1.1"/>
|
<subsystem xmlns="urn:jboss:domain:jsf:1.1"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:jsr77:1.0"/>
|
|
||||||
<subsystem xmlns="urn:jboss:domain:mail:4.0">
|
<subsystem xmlns="urn:jboss:domain:mail:4.0">
|
||||||
<mail-session name="default" jndi-name="java:jboss/mail/Default">
|
<mail-session name="default" jndi-name="java:jboss/mail/Default">
|
||||||
<smtp-server outbound-socket-binding-ref="mail-smtp"/>
|
<smtp-server outbound-socket-binding-ref="mail-smtp"/>
|
||||||
</mail-session>
|
</mail-session>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:messaging-activemq:13.0">
|
<subsystem xmlns="urn:jboss:domain:messaging-activemq:14.0">
|
||||||
<server name="default">
|
<server name="default">
|
||||||
<security elytron-domain="ApplicationDomain"/>
|
<security elytron-domain="ApplicationDomain"/>
|
||||||
<statistics
|
<statistics
|
||||||
|
@ -641,7 +655,7 @@
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:wildfly:metrics:1.0" security-enabled="false" exposed-subsystems="*"
|
<subsystem xmlns="urn:wildfly:metrics:1.0" security-enabled="false" exposed-subsystems="*"
|
||||||
prefix="${wildfly.metrics.prefix:wildfly}"/>
|
prefix="${wildfly.metrics.prefix:wildfly}"/>
|
||||||
<subsystem xmlns="urn:wildfly:microprofile-config-smallrye:1.0"/>
|
<subsystem xmlns="urn:wildfly:microprofile-config-smallrye:2.0"/>
|
||||||
<subsystem xmlns="urn:wildfly:microprofile-jwt-smallrye:1.0"/>
|
<subsystem xmlns="urn:wildfly:microprofile-jwt-smallrye:1.0"/>
|
||||||
<subsystem xmlns="urn:wildfly:microprofile-opentracing-smallrye:3.0" default-tracer="jaeger">
|
<subsystem xmlns="urn:wildfly:microprofile-opentracing-smallrye:3.0" default-tracer="jaeger">
|
||||||
<jaeger-tracer name="jaeger">
|
<jaeger-tracer name="jaeger">
|
||||||
|
@ -652,12 +666,12 @@
|
||||||
<remote-naming/>
|
<remote-naming/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:pojo:1.0"/>
|
<subsystem xmlns="urn:jboss:domain:pojo:1.0"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:remoting:4.0">
|
<subsystem xmlns="urn:jboss:domain:remoting:5.0">
|
||||||
<http-connector name="http-remoting-connector" connector-ref="default"
|
<http-connector name="http-remoting-connector" connector-ref="default"
|
||||||
sasl-authentication-factory="application-sasl-authentication"/>
|
sasl-authentication-factory="application-sasl-authentication"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:request-controller:1.0"/>
|
<subsystem xmlns="urn:jboss:domain:request-controller:1.0"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:resource-adapters:6.0"/>
|
<subsystem xmlns="urn:jboss:domain:resource-adapters:6.1"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:sar:1.0"/>
|
<subsystem xmlns="urn:jboss:domain:sar:1.0"/>
|
||||||
<subsystem xmlns="urn:jboss:domain:security-manager:1.0">
|
<subsystem xmlns="urn:jboss:domain:security-manager:1.0">
|
||||||
<deployment-permissions>
|
<deployment-permissions>
|
||||||
|
@ -678,10 +692,11 @@
|
||||||
statistics-enabled="${wildfly.transactions.statistics-enabled:${wildfly.statistics-enabled:false}}"/>
|
statistics-enabled="${wildfly.transactions.statistics-enabled:${wildfly.statistics-enabled:false}}"/>
|
||||||
<object-store path="tx-object-store" relative-to="jboss.server.data.dir"/>
|
<object-store path="tx-object-store" relative-to="jboss.server.data.dir"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:undertow:12.0" default-server="default-server"
|
<subsystem xmlns="urn:jboss:domain:undertow:13.0" default-server="default-server"
|
||||||
default-virtual-host="default-host" default-servlet-container="default"
|
default-virtual-host="default-host" default-servlet-container="default"
|
||||||
default-security-domain="other"
|
default-security-domain="other"
|
||||||
statistics-enabled="${wildfly.undertow.statistics-enabled:${wildfly.statistics-enabled:false}}">
|
statistics-enabled="${wildfly.undertow.statistics-enabled:${wildfly.statistics-enabled:false}}">
|
||||||
|
<byte-buffer-pool name="default"/>
|
||||||
<buffer-cache name="default"/>
|
<buffer-cache name="default"/>
|
||||||
<server name="default-server">
|
<server name="default-server">
|
||||||
<http-listener name="default" socket-binding="http" redirect-socket="https"
|
<http-listener name="default" socket-binding="http" redirect-socket="https"
|
||||||
|
@ -690,7 +705,6 @@
|
||||||
enable-http2="true"/>
|
enable-http2="true"/>
|
||||||
<host name="default-host" alias="localhost">
|
<host name="default-host" alias="localhost">
|
||||||
<location name="/" handler="welcome-content"/>
|
<location name="/" handler="welcome-content"/>
|
||||||
<http-invoker security-realm="ApplicationRealm"/>
|
|
||||||
</host>
|
</host>
|
||||||
</server>
|
</server>
|
||||||
<servlet-container name="default">
|
<servlet-container name="default">
|
||||||
|
@ -702,7 +716,7 @@
|
||||||
</handlers>
|
</handlers>
|
||||||
<filters>
|
<filters>
|
||||||
<response-header name="server-header"
|
<response-header name="server-header"
|
||||||
header-name="Server" header-value="WildFly/25"/>
|
header-name="Server" header-value="WildFly/27"/>
|
||||||
<response-header
|
<response-header
|
||||||
name="x-powered-by-header"
|
name="x-powered-by-header"
|
||||||
header-name="X-Powered-By" header-value="Undertow/12"/>
|
header-name="X-Powered-By" header-value="Undertow/12"/>
|
||||||
|
@ -726,7 +740,7 @@
|
||||||
</endpoint-config>
|
</endpoint-config>
|
||||||
<client-config name="Standard-Client-Config"/>
|
<client-config name="Standard-Client-Config"/>
|
||||||
</subsystem>
|
</subsystem>
|
||||||
<subsystem xmlns="urn:jboss:domain:weld:4.0"/>
|
<subsystem xmlns="urn:jboss:domain:weld:5.0"/>
|
||||||
</profile>
|
</profile>
|
||||||
<interfaces>
|
<interfaces>
|
||||||
<interface name="management">
|
<interface name="management">
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
<?xml version='1.0' encoding='UTF-8'?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
<module xmlns="urn:jboss:module:1.1" name="org.postgresql.postgresql">
|
<module name="org.postgresql.postgresql" xmlns="urn:jboss:module:1.9">
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<module name="jakarta.api"/>
|
|
||||||
<module name="jakarta.transaction.api"/>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<resources>
|
<resources>
|
||||||
<resource-root path="postgresql-42.3.8.jar"/>
|
<resource-root path="postgresql-42.6.0.jar"/>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
||||||
|
<!-- don't know why it is still javax, but this is the only way how the postgresql module is loaded -->
|
||||||
|
<dependencies>
|
||||||
|
<module name="javax.api"/>
|
||||||
|
<module name="javax.transaction.api"/>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
</module>
|
</module>
|
||||||
|
|
|
@ -126,7 +126,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.plugin</groupId>
|
<groupId>org.springframework.plugin</groupId>
|
||||||
<artifactId>spring-plugin-core</artifactId>
|
<artifactId>spring-plugin-core</artifactId>
|
||||||
<version>${version.spring.core}</version>
|
<version>${version.spring.plugin.core}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
@ -600,7 +600,7 @@ public class TaskController {
|
||||||
if (!taskRepresentationModel.getAttachments().stream()
|
if (!taskRepresentationModel.getAttachments().stream()
|
||||||
.filter(att -> Objects.nonNull(att.getTaskId()))
|
.filter(att -> Objects.nonNull(att.getTaskId()))
|
||||||
.filter(att -> !att.getTaskId().equals(taskRepresentationModel.getTaskId()))
|
.filter(att -> !att.getTaskId().equals(taskRepresentationModel.getTaskId()))
|
||||||
.collect(Collectors.toList())
|
.toList()
|
||||||
.isEmpty()) {
|
.isEmpty()) {
|
||||||
throw new InvalidArgumentException(
|
throw new InvalidArgumentException(
|
||||||
"An attachments' taskId must be empty or equal to the id of the task it belongs to");
|
"An attachments' taskId must be empty or equal to the id of the task it belongs to");
|
||||||
|
|
|
@ -37,14 +37,14 @@
|
||||||
<version>${version.jakarta.xml.bind-api}</version>
|
<version>${version.jakarta.xml.bind-api}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.sun.xml.bind</groupId>
|
<groupId>org.glassfish.jaxb</groupId>
|
||||||
<artifactId>jaxb-core</artifactId>
|
<artifactId>jaxb-core</artifactId>
|
||||||
<version>${version.jaxb-core}</version>
|
<version>${version.glassfish-jaxb-core}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.sun.xml.bind</groupId>
|
<groupId>org.glassfish.jaxb</groupId>
|
||||||
<artifactId>jaxb-impl</artifactId>
|
<artifactId>jaxb-runtime</artifactId>
|
||||||
<version>${version.jaxb-impl}</version>
|
<version>${version.glassfish-jaxb-runtime}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>jakarta.activation</groupId>
|
<groupId>jakarta.activation</groupId>
|
||||||
|
@ -105,7 +105,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.plugin</groupId>
|
<groupId>org.springframework.plugin</groupId>
|
||||||
<artifactId>spring-plugin-core</artifactId>
|
<artifactId>spring-plugin-core</artifactId>
|
||||||
<version>${version.spring.core}</version>
|
<version>${version.spring.plugin.core}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
Loading…
Reference in New Issue