Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,17 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>io.smallrye</groupId>
<artifactId>jandex-maven-plugin</artifactId>
<version>3.2.7</version>
<executions>
<execution>
<id>make-index</id>
<goals><goal>jandex</goal></goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.qmino</groupId>
<artifactId>miredot-plugin</artifactId>
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/org/ohdsi/webapi/CacheConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;

@Configuration
@Lazy(false)
@EnableCaching
public class CacheConfig {

Expand Down
2 changes: 2 additions & 0 deletions src/main/java/org/ohdsi/webapi/DataAccessConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Primary;
import org.springframework.core.env.Environment;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
Expand All @@ -36,6 +37,7 @@
*
*/
@Configuration
@Lazy(false)
@EnableTransactionManagement
@EnableJpaRepositories(repositoryFactoryBeanClass = EntityGraphJpaRepositoryFactoryBean.class)
public class DataAccessConfig {
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/org/ohdsi/webapi/FlywayConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import com.zaxxer.hikari.HikariDataSource;


Expand All @@ -19,6 +20,7 @@
* Java-based migrations can access Spring beans via the static ApplicationContextHolder.
*/
@Configuration
@Lazy(false)
@ConditionalOnProperty(prefix = "spring.flyway", name = "enabled", matchIfMissing = true)
public class FlywayConfig {

Expand Down
2 changes: 2 additions & 0 deletions src/main/java/org/ohdsi/webapi/JobConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.Primary;
import org.springframework.core.task.TaskExecutor;
import org.springframework.jdbc.core.JdbcTemplate;
Expand All @@ -36,6 +37,7 @@
* Spring Batch 5.x configuration for Java 21 / Spring Boot 3.2
*/
@Configuration
@Lazy(false)
@EnableBatchProcessing
public class JobConfig {

Expand Down
10 changes: 5 additions & 5 deletions src/main/java/org/ohdsi/webapi/JobInvalidator.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@
import org.springframework.batch.core.repository.JobRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;
import org.springframework.transaction.support.TransactionTemplate;

import jakarta.annotation.PostConstruct;
import java.util.Calendar;

import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.EventListener;

@Component
@DependsOn("flyway")
public class JobInvalidator {

private static final Logger log = LoggerFactory.getLogger(JobInvalidator.class);
Expand All @@ -37,8 +37,8 @@ public JobInvalidator(JobRepository repository,
this.jobExecutionDao = jobExecutionDao;
}

@PostConstruct
private void invalidateGenerations() {
@EventListener(ApplicationReadyEvent.class)
public void invalidateGenerations() {
transactionTemplateRequiresNew.execute(s -> {
jobExecutionDao.getRunningJobExecutions().forEach(this::invalidationJobExecution);
return null;
Expand Down
24 changes: 0 additions & 24 deletions src/main/java/org/ohdsi/webapi/LogConfiguration.java

This file was deleted.

2 changes: 2 additions & 0 deletions src/main/java/org/ohdsi/webapi/SchedulerConfiguration.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@
import com.cronutils.model.definition.CronDefinitionBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;

import static com.cronutils.model.CronType.QUARTZ;

@Configuration
@Lazy(false)
public class SchedulerConfiguration {

@Bean
Expand Down
15 changes: 2 additions & 13 deletions src/main/java/org/ohdsi/webapi/ShiroConfiguration.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,24 +9,21 @@
import org.apache.shiro.web.servlet.AbstractShiroFilter;
import org.ohdsi.webapi.shiro.AtlasWebSecurityManager;
import org.ohdsi.webapi.shiro.lockout.*;
import org.ohdsi.webapi.shiro.management.DataSourceAccessBeanPostProcessor;
import org.ohdsi.webapi.shiro.management.DisabledSecurity;
import org.ohdsi.webapi.shiro.management.Security;
import org.ohdsi.webapi.shiro.management.datasource.DataSourceAccessParameterResolver;
import org.ohdsi.webapi.shiro.realms.JwtAuthRealm;
import org.ohdsi.webapi.shiro.subject.WebDelegatingRunAsSubjectFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.context.annotation.Lazy;

import jakarta.servlet.Filter;
import java.util.Map;
Expand All @@ -37,6 +34,7 @@
*/

@Configuration
@Lazy(false)
public class ShiroConfiguration {

private static final Logger log = LoggerFactory.getLogger(ShiroConfiguration.class);
Expand All @@ -47,8 +45,6 @@ public class ShiroConfiguration {
private long initialDuration;
@Value("${security.duration.increment}")
private long increment;
@Value("${spring.aop.proxy-target-class:false}")
private Boolean proxyTargetClass;
@Autowired
protected ApplicationEventPublisher eventPublisher;

Expand Down Expand Up @@ -121,13 +117,6 @@ public LockoutStrategy lockoutStrategy() {
return new ExponentLockoutStrategy(initialDuration, increment, maxLoginAttempts);
}

@Bean
@ConditionalOnMissingBean(value = DisabledSecurity.class)
public DataSourceAccessBeanPostProcessor dataSourceAccessBeanPostProcessor(DataSourceAccessParameterResolver parameterResolver) {

return new DataSourceAccessBeanPostProcessor(parameterResolver, proxyTargetClass);
}

/**
* Register the Shiro filter with the servlet container.
* This is necessary for Spring Boot to properly apply the filter to all requests.
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,10 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.WebApplicationContext;

import jakarta.annotation.PostConstruct;
import java.io.Serializable;

import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.EventListener;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
Expand Down Expand Up @@ -106,8 +108,8 @@ public PermissionService(
this.conversionService = conversionService;
}

@PostConstruct
private void postConstruct() {
@EventListener(ApplicationReadyEvent.class)
public void postConstruct() {

this.repositories = new Repositories(appContext);

Expand Down
16 changes: 10 additions & 6 deletions src/main/java/org/ohdsi/webapi/service/CDMResultsService.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,9 @@
import org.springframework.batch.core.job.builder.SimpleJobBuilder;
import org.springframework.batch.core.repository.JobRepository;
import org.springframework.batch.core.step.builder.StepBuilder;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.DependsOn;
import org.springframework.core.convert.ConversionService;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
Expand All @@ -52,8 +50,11 @@
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.EventListener;
import org.springframework.web.server.ResponseStatusException;

import jakarta.annotation.PostConstruct;
import java.util.AbstractMap.SimpleEntry;
import java.util.ArrayList;
import java.util.Collection;
Expand All @@ -79,8 +80,7 @@
*/
@RestController
@RequestMapping("/cdmresults")
@DependsOn({"jobInvalidator", "flyway"})
public class CDMResultsService extends AbstractDaoService implements InitializingBean {
public class CDMResultsService extends AbstractDaoService {
private final Logger logger = LoggerFactory.getLogger(CDMResultsService.class);

private static final String CONCEPT_COUNT_SQL = "/resources/cdmresults/sql/getConceptRecordCount.sql";
Expand Down Expand Up @@ -135,9 +135,13 @@ public class CDMResultsService extends AbstractDaoService implements Initializin
@Autowired
private ConversionService conversionService;

@Override
public void afterPropertiesSet() throws Exception {
@PostConstruct
public void initQueryRunner() {
queryRunner.init(this.getSourceDialect(), objectMapper);
}

@EventListener(ApplicationReadyEvent.class)
public void onApplicationReady() {
warmCaches();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,17 @@
import org.springframework.batch.repeat.exception.ExceptionHandler;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.DependsOn;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.support.TransactionTemplate;

import jakarta.annotation.PostConstruct;

import java.util.Arrays;

import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.event.EventListener;
import java.util.Calendar;
import java.util.List;
import java.util.Objects;
Expand All @@ -57,7 +57,6 @@
import static org.ohdsi.webapi.Constants.Params.DEMOGRAPHIC_STATS;

@Component
@DependsOn("flyway")
public class CohortGenerationService extends AbstractDaoService implements GeneratesNotification {

private final CohortDefinitionRepository cohortDefinitionRepository;
Expand Down Expand Up @@ -193,7 +192,7 @@ private JobParametersBuilder getJobParametersBuilder(Source source, CohortDefini
return builder;
}

@PostConstruct
@EventListener(ApplicationReadyEvent.class)
public void init(){

invalidateCohortGenerations();
Expand Down

This file was deleted.

This file was deleted.

11 changes: 0 additions & 11 deletions src/main/java/org/ohdsi/webapi/shiro/annotations/SourceId.java

This file was deleted.

11 changes: 0 additions & 11 deletions src/main/java/org/ohdsi/webapi/shiro/annotations/SourceKey.java

This file was deleted.

Loading