Skip to content

Commit 271a1c9

Browse files
committed
Merge remote-tracking branch 'remotes/origin/master' into concepts-mapping
2 parents 49cef23 + df5175c commit 271a1c9

File tree

69 files changed

+2191
-366
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+2191
-366
lines changed

.editorconfig

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# EditorConfig is awesome: https://EditorConfig.org
2+
3+
# top-most EditorConfig file
4+
root = true
5+
6+
[*]
7+
indent_style = tab
8+
indent_size = 2
9+
end_of_line = crlf
10+
charset = utf-8
11+
trim_trailing_whitespace = false
12+
insert_final_newline = false

pom.xml

+61-34
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
1+
<project xmlns="http://maven.apache.org/POM/4.0.0"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
33

44
<modelVersion>4.0.0</modelVersion>
55

@@ -28,7 +28,7 @@
2828

2929
<commons-fileupload.version>1.5</commons-fileupload.version>
3030

31-
<circe.version>1.11.2</circe.version>
31+
<circe.version>1.12.0</circe.version>
3232
<jersey.version>2.14</jersey.version>
3333
<SqlRender.version>1.16.1</SqlRender.version>
3434
<hive-jdbc.version>3.1.2</hive-jdbc.version>
@@ -122,7 +122,7 @@
122122
<security.ad.system.password></security.ad.system.password>
123123
<security.ad.searchFilter>(&amp;(objectClass=person)(cn=%s))</security.ad.searchFilter>
124124
<security.ad.ignore.partial.result.exception>true</security.ad.ignore.partial.result.exception>
125-
<security.ad.result.count.limit>30000</security.ad.result.count.limit> <!-- 0 means no limit -->
125+
<security.ad.result.count.limit>30000</security.ad.result.count.limit> <!-- 0 means no limit -->
126126
<security.ad.default.import.group>public</security.ad.default.import.group>
127127
<security.ad.searchString>(&amp;(objectClass=person)(userPrincipalName=%s))</security.ad.searchString>
128128
<security.ad.userMapping.displaynameAttr>displayname</security.ad.userMapping.displaynameAttr>
@@ -191,8 +191,8 @@
191191
<!-- If defaultGlobalReadPermissions is set to true (default), then all users can see every artifact. -->
192192
<!-- If it is set to false, WebAPI will filter out the artifacts that a user does not explicitly have -->
193193
<!-- read permissions to -->
194-
<security.defaultGlobalReadPermissions>true</security.defaultGlobalReadPermissions>
195-
194+
<security.defaultGlobalReadPermissions>true</security.defaultGlobalReadPermissions>
195+
196196
<!-- EMBEDDED SERVER CONFIGURATION (ServerProperties) -->
197197
<server.port>8080</server.port>
198198
<server.ssl.key-store></server.ssl.key-store>
@@ -216,7 +216,7 @@
216216
<jasypt.encryptor.enabled>false</jasypt.encryptor.enabled>
217217
<jasypt.encryptor.password></jasypt.encryptor.password>
218218
<jasypt.encryptor.algorithm>PBEWithMD5AndDES</jasypt.encryptor.algorithm>
219-
219+
220220
<!-- ORGANIZATION SETTINGS -->
221221
<organization.name>OHDSI</organization.name>
222222

@@ -236,6 +236,10 @@
236236
<logging.level.org.hibernate>info</logging.level.org.hibernate>
237237
<logging.level.org.apache.shiro>warn</logging.level.org.apache.shiro>
238238

239+
<!-- Spring Cache properties -->
240+
<spring.cache.type>jcache</spring.cache.type>
241+
242+
<!-- Spring Batch -->
239243
<spring.batch.taskExecutor.corePoolSize>10</spring.batch.taskExecutor.corePoolSize>
240244
<spring.batch.taskExecutor.maxPoolSize>20</spring.batch.taskExecutor.maxPoolSize>
241245
<spring.batch.taskExecutor.queueCapacity>2147483647</spring.batch.taskExecutor.queueCapacity>
@@ -272,6 +276,7 @@
272276
<cache.jobs.count>3</cache.jobs.count>
273277
<!-- Achilles cache -->
274278
<cache.achilles.usePersonCount>true</cache.achilles.usePersonCount>
279+
<cache.webapi.enabled>true</cache.webapi.enabled>
275280

276281
<!-- Build info -->
277282
<buildinfo.atlas.milestone.id>47</buildinfo.atlas.milestone.id>
@@ -298,6 +303,7 @@
298303
<audit.trail.log.file>/tmp/atlas/audit/audit.log</audit.trail.log.file>
299304
<audit.trail.log.extraFile>/tmp/atlas/audit/audit-extra.log</audit.trail.log.extraFile>
300305
</properties>
306+
301307
<build>
302308
<finalName>WebAPI</finalName>
303309
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
@@ -368,8 +374,8 @@
368374
<!-- only include properties to speed up plugin -->
369375
<!-- ref: https://github.com/git-commit-id/git-commit-id-maven-plugin/issues/462 -->
370376
<includeOnlyProperties>
371-
<includeOnlyProperty>git.branch</includeOnlyProperty>
372-
<includeOnlyProperty>git.commit.id.abbrev</includeOnlyProperty>
377+
<includeOnlyProperty>git.branch</includeOnlyProperty>
378+
<includeOnlyProperty>git.commit.id.abbrev</includeOnlyProperty>
373379
</includeOnlyProperties>
374380
</configuration>
375381
</plugin>
@@ -483,7 +489,7 @@
483489
</execution>
484490
</executions>
485491
<configuration>
486-
<licence>cHJvamVjdHxvcmcub2hkc2kuV2ViQVBJfDIwMjUtMDEtMDF8ZmFsc2V8LTEjTUN3Q0ZDZkowMkZrVmVSeVlBazZVbTBmNThIbE15SjRBaFEwcVZyRUZuamZMTzJ0KzFtR3E3U3lMMkFESHc9PQ==</licence>
492+
<licence>cHJvamVjdHxvcmcub2hkc2kuV2ViQVBJfDIwMzAtMDEtMDF8ZmFsc2V8LTEjTUN3Q0ZDOEFFWEdzU0lISUJiMzBBWC9WazlGcmdPME1BaFI4MVM5bkViQUpXN0tiWE9zR1NpRFlPam5zaXc9PQ==</licence>
487493
<restModel>
488494
<httpStatusCodes>
489495
<httpStatusCode>
@@ -575,6 +581,7 @@
575581
</dependency>
576582
</dependencies>
577583
</dependencyManagement>
584+
578585
<dependencies>
579586
<dependency>
580587
<groupId>com.fasterxml.jackson.core</groupId>
@@ -742,6 +749,10 @@
742749
<scope>provided</scope>
743750
</dependency>
744751
<dependency>
752+
<groupId>javax.cache</groupId>
753+
<artifactId>cache-api</artifactId>
754+
<version>1.1.1</version>
755+
</dependency> <dependency>
745756
<groupId>org.ohdsi.sql</groupId>
746757
<artifactId>SqlRender</artifactId>
747758
<version>${SqlRender.version}</version>
@@ -769,11 +780,22 @@
769780
<artifactId>json-smart</artifactId>
770781
<version>2.4.9</version>
771782
</dependency>
783+
<dependency>
784+
<groupId>net.minidev</groupId>
785+
<artifactId>asm</artifactId>
786+
<version>1.0.2</version>
787+
<scope>test</scope>
788+
</dependency>
772789
<dependency>
773790
<groupId>org.apache.commons</groupId>
774791
<artifactId>commons-lang3</artifactId>
775792
<version>3.12.0</version>
776793
</dependency>
794+
<dependency>
795+
<groupId>org.apache.commons</groupId>
796+
<artifactId>commons-text</artifactId>
797+
<version>1.10.0</version>
798+
</dependency>
777799
<dependency>
778800
<groupId>org.flywaydb</groupId>
779801
<artifactId>flyway-core</artifactId>
@@ -802,12 +824,12 @@
802824
<artifactId>jackson-databind</artifactId>
803825
</exclusion>
804826
<exclusion>
805-
<groupId>org.slf4j</groupId>
806-
<artifactId>slf4j-log4j12</artifactId>
827+
<groupId>org.slf4j</groupId>
828+
<artifactId>slf4j-log4j12</artifactId>
807829
</exclusion>
808830
<exclusion>
809-
<groupId>log4j</groupId>
810-
<artifactId>log4j</artifactId>
831+
<groupId>log4j</groupId>
832+
<artifactId>log4j</artifactId>
811833
</exclusion>
812834
</exclusions>
813835
</dependency>
@@ -1153,7 +1175,7 @@
11531175
<version>${pac4j.version}</version>
11541176
<exclusions>
11551177
<exclusion>
1156-
<groupId>com.fasterxml.jackson.core</groupId>
1178+
<groupId>com.fasterxml.jackson.core</groupId>
11571179
<artifactId>jackson-databind</artifactId>
11581180
</exclusion>
11591181
</exclusions>
@@ -1189,6 +1211,10 @@
11891211
<version>1.1.7</version>
11901212
</dependency>
11911213
<dependency>
1214+
<groupId>org.ehcache</groupId>
1215+
<artifactId>ehcache</artifactId>
1216+
<version>3.9.11</version>
1217+
</dependency> <dependency>
11921218
<groupId>com.opentable.components</groupId>
11931219
<artifactId>otj-pg-embedded</artifactId>
11941220
<version>0.13.1</version>
@@ -1199,12 +1225,12 @@
11991225
<artifactId>spring-boot-starter-test</artifactId>
12001226
<version>${spring.boot.version}</version>
12011227
<scope>test</scope>
1202-
<exclusions>
1203-
<exclusion>
1204-
<groupId>com.vaadin.external.google</groupId>
1205-
<artifactId>android-json</artifactId>
1206-
</exclusion>
1207-
</exclusions>
1228+
<exclusions>
1229+
<exclusion>
1230+
<groupId>com.vaadin.external.google</groupId>
1231+
<artifactId>android-json</artifactId>
1232+
</exclusion>
1233+
</exclusions>
12081234
</dependency>
12091235
<dependency>
12101236
<groupId>org.dbunit</groupId>
@@ -1225,12 +1251,13 @@
12251251
<scope>test</scope>
12261252
</dependency>
12271253
<dependency>
1228-
<groupId>com.github.mjeanroy</groupId>
1229-
<artifactId>dbunit-plus</artifactId>
1230-
<version>2.0.1</version>
1231-
<scope>test</scope>
1254+
<groupId>com.github.mjeanroy</groupId>
1255+
<artifactId>dbunit-plus</artifactId>
1256+
<version>2.0.1</version>
1257+
<scope>test</scope>
12321258
</dependency>
12331259
</dependencies>
1260+
12341261
<profiles>
12351262
<profile>
12361263
<id>webapi-oracle</id>
@@ -1323,17 +1350,17 @@
13231350
lower(email) = lower(?)</security.db.datasource.authenticationQuery>
13241351
</properties>
13251352
<repositories>
1326-
<repository>
1353+
<repository>
13271354
<id>ohdsi.snapshots</id>
13281355
<name>repo.ohdsi.org-snapshots</name>
13291356
<url>https://repo.ohdsi.org/nexus/content/repositories/snapshots</url>
13301357
<releases>
13311358
<enabled>false</enabled>
13321359
</releases>
1333-
<snapshots>
1360+
<snapshots>
13341361
<enabled>true</enabled>
1335-
</snapshots>
1336-
</repository>
1362+
</snapshots>
1363+
</repository>
13371364
</repositories>
13381365
</profile>
13391366
<profile>
@@ -1406,7 +1433,7 @@
14061433
<impala.enabled>true</impala.enabled>
14071434
<impala.driver.version>2.6.15</impala.driver.version>
14081435
<!-- Impala JDBC driver path -->
1409-
<impala.classpath>...path/to/impala/jdbc/drivers...</impala.classpath>
1436+
<impala.classpath>...path/to/impala/jdbc/drivers...</impala.classpath>
14101437
</properties>
14111438
<dependencies>
14121439
<dependency>
@@ -1511,9 +1538,9 @@
15111538
<version>v2-rev20220326-1.32.1</version>
15121539
</dependency>
15131540
<dependency>
1514-
<groupId>com.google.cloud</groupId>
1515-
<artifactId>google-cloud-bigquery</artifactId>
1516-
<version>1.2.15</version>
1541+
<groupId>com.google.cloud</groupId>
1542+
<artifactId>google-cloud-bigquery</artifactId>
1543+
<version>1.2.15</version>
15171544
</dependency>
15181545
<dependency>
15191546
<groupId>com.google.http-client</groupId>
@@ -1822,7 +1849,7 @@
18221849
<id>webapi-snowflake</id>
18231850
<properties>
18241851
<snowflake.enabled>true</snowflake.enabled>
1825-
<snowflake.driver.version>3.13.22</snowflake.driver.version>
1852+
<snowflake.driver.version>3.20.0</snowflake.driver.version>
18261853
</properties>
18271854
<dependencies>
18281855
<dependency>

sample_settings.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,12 @@
6161
<security.maxLoginAttempts>3</security.maxLoginAttempts>
6262
<security.duration.initial>10</security.duration.initial>
6363
<security.duration.increment>10</security.duration.increment>
64-
<security.db.datasource.schema>${datasource.ohdsi.schema}</security.db.datasource.schema>
64+
<security.db.datasource.schema>atlas_security</security.db.datasource.schema>
6565
<security.db.datasource.url>${datasource.url}</security.db.datasource.url>
6666
<security.db.datasource.driverClassName>${datasource.driverClassName}</security.db.datasource.driverClassName>
6767
<security.db.datasource.username>${datasource.username}</security.db.datasource.username>
6868
<security.db.datasource.password>${datasource.password}</security.db.datasource.password>
69-
<security.db.datasource.authenticationQuery>select password from ${security.db.datasource.schema}.users where lower(email) = lower(?)</security.db.datasource.authenticationQuery>
69+
<security.db.datasource.authenticationQuery>select password,firstName,middleName,lastName from ${security.db.datasource.schema}.users where username = ?</security.db.datasource.authenticationQuery>
7070
</properties>
7171
</profile>
7272
</profiles>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package org.ohdsi.webapi;
2+
3+
import org.springframework.cache.annotation.EnableCaching;
4+
import org.springframework.context.annotation.Configuration;
5+
6+
@Configuration
7+
@EnableCaching
8+
public class CacheConfig {
9+
10+
}

src/main/java/org/ohdsi/webapi/JerseyConfig.java

+10-8
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737

3838
import javax.inject.Singleton;
3939
import javax.ws.rs.ext.RuntimeDelegate;
40+
import org.ohdsi.webapi.cache.CacheService;
4041

4142
/**
4243
*
@@ -59,31 +60,32 @@ public JerseyConfig() {
5960
public void afterPropertiesSet() throws Exception {
6061
packages(this.rootPackage);
6162
register(ActivityService.class);
63+
register(CacheService.class);
64+
register(CcController.class);
6265
register(CDMResultsService.class);
6366
register(CohortAnalysisService.class);
6467
register(CohortDefinitionService.class);
6568
register(CohortResultsService.class);
6669
register(CohortService.class);
6770
register(ConceptSetService.class);
71+
register(DDLService.class);
6872
register(EvidenceService.class);
6973
register(FeasibilityService.class);
74+
register(FeatureExtractionService.class);
7075
register(InfoService.class);
7176
register(IRAnalysisResource.class);
7277
register(JobService.class);
78+
register(MultiPartFeature.class);
79+
register(PermissionController.class);
7380
register(PersonService.class);
81+
register(ScriptExecutionController.class);
82+
register(ScriptExecutionCallbackController.class);
7483
register(SourceController.class);
7584
register(SqlRenderService.class);
76-
register(DDLService.class);
85+
register(SSOController.class);
7786
register(TherapyPathResultsService.class);
7887
register(UserService.class);
7988
register(VocabularyService.class);
80-
register(ScriptExecutionController.class);
81-
register(ScriptExecutionCallbackController.class);
82-
register(MultiPartFeature.class);
83-
register(FeatureExtractionService.class);
84-
register(CcController.class);
85-
register(SSOController.class);
86-
register(PermissionController.class);
8789
register(new AbstractBinder() {
8890
@Override
8991
protected void configure() {

src/main/java/org/ohdsi/webapi/achilles/repository/AchillesCacheRepository.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import org.ohdsi.webapi.achilles.domain.AchillesCacheEntity;
44
import org.ohdsi.webapi.source.Source;
5-
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.data.jpa.repository.Modifying;
66
import org.springframework.data.jpa.repository.Query;
77
import org.springframework.data.repository.CrudRepository;
88
import org.springframework.data.repository.query.Param;
@@ -16,4 +16,8 @@ public interface AchillesCacheRepository extends CrudRepository<AchillesCacheEnt
1616

1717
@Query("select ac from AchillesCacheEntity ac where source = :source and cacheName in :names")
1818
List<AchillesCacheEntity> findBySourceAndNames(@Param("source") Source source, @Param("names") List<String> names);
19+
20+
@Modifying
21+
@Query("delete from AchillesCacheEntity where source = :source")
22+
void deleteBySource(@Param("source") Source source);
1923
}

0 commit comments

Comments
 (0)