Skip to content
Open
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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,5 @@ docs/use/api/*/**

# Synthea
synthea

.vscode
7 changes: 0 additions & 7 deletions .vscode/extensions.json

This file was deleted.

32 changes: 0 additions & 32 deletions .vscode/settings.json

This file was deleted.

90 changes: 1 addition & 89 deletions buildSrc/src/main/kotlin/Dependencies.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2023-2024 Google LLC
* Copyright 2023-2025 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -41,16 +41,7 @@ object Dependencies {
const val fhirCoreUtilsModule = "ca.uhn.hapi.fhir:org.hl7.fhir.utilities"
const val fhirCoreConvertorsModule = "ca.uhn.hapi.fhir:org.hl7.fhir.convertors"

const val guavaCachingModule = "ca.uhn.hapi.fhir:hapi-fhir-caching-guava"

const val structuresR4 = "$structuresR4Module:${Versions.hapiFhir}"

const val validation = "$validationModule:${Versions.hapiFhir}"
const val validationR4 = "$validationR4Module:${Versions.hapiFhir}"

const val fhirCoreConvertors = "$fhirCoreConvertorsModule:${Versions.hapiFhirCore}"

const val guavaCaching = "$guavaCachingModule:${Versions.hapiFhir}"
}

object Jackson {
Expand All @@ -70,102 +61,23 @@ object Dependencies {
const val jsr310Base = "$datatypeGroup:jackson-datatype-jsr310:${Versions.jackson}"
}

object Retrofit {
const val coreRetrofit = "com.squareup.retrofit2:retrofit:${Versions.retrofit}"
const val gsonConverter = "com.squareup.retrofit2:converter-gson:${Versions.retrofit}"
}

object Mlkit {
const val barcodeScanning =
"com.google.mlkit:barcode-scanning:${Versions.Mlkit.barcodeScanning}"
const val objectDetection =
"com.google.mlkit:object-detection:${Versions.Mlkit.objectDetection}"
const val objectDetectionCustom =
"com.google.mlkit:object-detection-custom:${Versions.Mlkit.objectDetectionCustom}"
}

const val playServicesLocation =
"com.google.android.gms:play-services-location:${Versions.playServicesLocation}"

const val apacheCommonsCompress =
"org.apache.commons:commons-compress:${Versions.apacheCommonsCompress}"

const val desugarJdkLibs = "com.android.tools:desugar_jdk_libs:${Versions.desugarJdkLibs}"
const val fhirUcum = "org.fhir:ucum:${Versions.fhirUcum}"

const val guavaModule = "com.google.guava:guava"
const val guava = "$guavaModule:${Versions.guava}"

const val httpInterceptor = "com.squareup.okhttp3:logging-interceptor:${Versions.http}"
const val http = "com.squareup.okhttp3:okhttp:${Versions.http}"
const val mockWebServer = "com.squareup.okhttp3:mockwebserver:${Versions.http}"

const val jsonToolsPatch = "com.github.java-json-tools:json-patch:${Versions.jsonToolsPatch}"
const val sqlcipher = "net.zetetic:android-database-sqlcipher:${Versions.sqlcipher}"
const val timber = "com.jakewharton.timber:timber:${Versions.timber}"
const val woodstox = "com.fasterxml.woodstox:woodstox-core:${Versions.woodstox}"
const val xerces = "xerces:xercesImpl:${Versions.xerces}"

const val zxing = "com.google.zxing:core:${Versions.zxing}"
const val nimbus = "com.nimbusds:nimbus-jose-jwt:${Versions.nimbus}"

const val androidBenchmarkRunner = "androidx.benchmark.junit4.AndroidBenchmarkRunner"
const val androidJunitRunner = "androidx.test.runner.AndroidJUnitRunner"

// Makes Json assertions where the order of elements, tabs/whitespaces are not important.
const val jsonAssert = "org.skyscreamer:jsonassert:${Versions.jsonAssert}"
const val mockitoKotlin = "org.mockito.kotlin:mockito-kotlin:${Versions.mockitoKotlin}"
const val mockitoInline = "org.mockito:mockito-inline:${Versions.mockitoInline}"
const val robolectric = "org.robolectric:robolectric:${Versions.robolectric}"

// Makes XML assertions where the order of elements, tabs/whitespaces are not important.
const val xmlUnit = "org.xmlunit:xmlunit-core:${Versions.xmlUnit}"

object Versions {
const val apacheCommonsCompress = "1.21"
const val desugarJdkLibs = "2.0.3"
const val caffeine = "2.9.1"
const val fhirUcum = "1.0.3"
const val guava = "32.1.3-android"

const val hapiFhir = "6.8.0"
const val hapiFhirCore = "6.0.22"

const val http = "4.11.0"

// Maximum Jackson libraries (excluding core) version that supports Android API Level 24:
// https://github.com/FasterXML/jackson-databind/issues/3658
const val jackson = "2.13.5"

// Maximum Jackson Core library version that supports Android API Level 24:
const val jacksonCore = "2.15.2"

const val jsonToolsPatch = "1.13"
const val jsonAssert = "1.5.1"
const val retrofit = "2.9.0"
const val gsonConverter = "2.1.0"
const val sqlcipher = "4.5.4"
const val timber = "5.0.1"
const val woodstox = "6.5.1"
const val xerces = "2.12.2"
const val xmlUnit = "2.9.1"

const val zxing = "3.4.1"
const val nimbus = "9.31"

// Test dependencies
const val jacoco = "0.8.10"
const val mockitoKotlin = "3.2.0"
const val mockitoInline = "4.0.0"
const val robolectric = "4.10.3"

object Mlkit {
const val barcodeScanning = "16.1.1"
const val objectDetection = "16.2.3"
const val objectDetectionCustom = "16.3.1"
}

const val playServicesLocation = "21.0.1"
}

fun Configuration.removeIncompatibleDependencies() {
Expand Down
13 changes: 0 additions & 13 deletions buildSrc/src/main/kotlin/Plugins.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,21 +17,9 @@
object Plugins {

object BuildPlugins {
const val androidLib = "com.android.library"
const val application = "com.android.application"
const val benchmark = "androidx.benchmark"
const val dokka = "org.jetbrains.dokka"
const val kotlin = "kotlin"
const val kotlinAndroid = "kotlin-android"
const val kotlinCompose = "org.jetbrains.kotlin.plugin.compose"
const val kotlinKsp = "com.google.devtools.ksp"
const val kotlinSerialization = "org.jetbrains.kotlin.plugin.serialization"
const val mavenPublish = "maven-publish"
const val fladle = "com.osacky.fladle"
const val navSafeArgs = "androidx.navigation.safeargs.kotlin"
const val ruler = "com.spotify.ruler"
const val spotless = "com.diffplug.spotless"
const val androidTest = "com.android.test"
}

// classpath plugins
Expand All @@ -52,7 +40,6 @@ object Plugins {
object Versions {
const val androidGradlePlugin = "8.9.2"
const val benchmarkPlugin = "1.4.0-rc01"
const val dokka = "1.9.20"
const val kspPlugin = "2.1.20-2.0.1"
const val kotlin = "2.1.20"
}
Expand Down
10 changes: 5 additions & 5 deletions catalog/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
plugins {
id(Plugins.BuildPlugins.application)
id(Plugins.BuildPlugins.kotlinAndroid)
id(Plugins.BuildPlugins.navSafeArgs)
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.androidx.navigation.safeargs)
}

configureRuler()
Expand All @@ -15,7 +15,7 @@ android {
targetSdk = Sdk.TARGET_SDK
versionCode = Releases.Catalog.versionCode
versionName = Releases.Catalog.versionName
testInstrumentationRunner = Dependencies.androidJunitRunner
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

buildFeatures { viewBinding = true }
Expand Down Expand Up @@ -44,7 +44,7 @@ dependencies {
androidTestImplementation(libs.androidx.test.espresso.core)
androidTestImplementation(libs.androidx.test.ext.junit)

coreLibraryDesugaring(Dependencies.desugarJdkLibs)
coreLibraryDesugaring(libs.desugar.jdk.libs)

implementation(libs.androidx.appcompat)
implementation(libs.androidx.constraintlayout)
Expand Down
13 changes: 7 additions & 6 deletions common/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import Dependencies.removeIncompatibleDependencies

plugins {
id(Plugins.BuildPlugins.androidLib)
id(Plugins.BuildPlugins.kotlinAndroid)
id(Plugins.BuildPlugins.mavenPublish)
alias(libs.plugins.android.library)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.dokka)
`maven-publish`
jacoco
}

Expand All @@ -22,11 +23,11 @@ android {
configurations { all { removeIncompatibleDependencies() } }

dependencies {
api(Dependencies.HapiFhir.structuresR4)
api(libs.hapi.fhir.structures.r4)

implementation(Dependencies.fhirUcum)
implementation(libs.fhir.ucum)

testImplementation(Dependencies.robolectric)
testImplementation(libs.robolectric)
testImplementation(libs.androidx.test.core)
testImplementation(libs.junit)
testImplementation(libs.kotlin.test.junit)
Expand Down
27 changes: 14 additions & 13 deletions contrib/barcode/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import Dependencies.removeIncompatibleDependencies

plugins {
id(Plugins.BuildPlugins.androidLib)
id(Plugins.BuildPlugins.kotlinAndroid)
id(Plugins.BuildPlugins.mavenPublish)
alias(libs.plugins.android.library)
alias(libs.plugins.kotlin.android)
`maven-publish`
jacoco
alias(libs.plugins.dokka)
}

publishArtifact(Releases.Contrib.Barcode)
Expand All @@ -16,7 +17,7 @@ android {
compileSdk = Sdk.COMPILE_SDK
defaultConfig {
minSdk = Sdk.MIN_SDK
testInstrumentationRunner = Dependencies.androidJunitRunner
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
// Need to specify this to prevent junit runner from going deep into our dependencies
testInstrumentationRunnerArguments["package"] = "com.google.android.fhir.datacapture"
}
Expand Down Expand Up @@ -55,7 +56,7 @@ android {
configurations { all { removeIncompatibleDependencies() } }

dependencies {
androidTestImplementation(Dependencies.mockitoInline)
androidTestImplementation(libs.mockito.inline)
androidTestImplementation(libs.androidx.fragment.testing)
androidTestImplementation(libs.androidx.test.core)
androidTestImplementation(libs.androidx.test.ext.junit)
Expand All @@ -64,21 +65,21 @@ dependencies {
androidTestImplementation(libs.androidx.test.runner)
androidTestImplementation(libs.truth)

coreLibraryDesugaring(Dependencies.desugarJdkLibs)
coreLibraryDesugaring(libs.desugar.jdk.libs)

implementation(project(":datacapture"))
implementation(Dependencies.Mlkit.barcodeScanning)
implementation(Dependencies.Mlkit.objectDetection)
implementation(Dependencies.Mlkit.objectDetectionCustom)
implementation(Dependencies.timber)
implementation(libs.mlkit.barcode.scanning)
implementation(libs.mlkit.obj.detection)
implementation(libs.mlkit.obj.detection.custom)
implementation(libs.timber)
implementation(libs.androidx.appcompat)
implementation(libs.androidx.core)
implementation(libs.androidx.fragment)
implementation(libs.material)

testImplementation(Dependencies.mockitoInline)
testImplementation(Dependencies.mockitoKotlin)
testImplementation(Dependencies.robolectric)
testImplementation(libs.mockito.inline)
testImplementation(libs.mockito.kotlin)
testImplementation(libs.robolectric)
testImplementation(libs.androidx.fragment.testing)
testImplementation(libs.androidx.test.core)
testImplementation(libs.junit)
Expand Down
17 changes: 9 additions & 8 deletions contrib/locationwidget/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
import Dependencies.removeIncompatibleDependencies

plugins {
id(Plugins.BuildPlugins.androidLib)
id(Plugins.BuildPlugins.kotlinAndroid)
id(Plugins.BuildPlugins.mavenPublish)
alias(libs.plugins.android.library)
alias(libs.plugins.kotlin.android)
`maven-publish`
jacoco
alias(libs.plugins.dokka)
}

publishArtifact(Releases.Contrib.LocationWidget)
Expand All @@ -16,7 +17,7 @@ android {
compileSdk = Sdk.COMPILE_SDK
defaultConfig {
minSdk = Sdk.MIN_SDK
testInstrumentationRunner = Dependencies.androidJunitRunner
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
// Need to specify this to prevent junit runner from going deep into our dependencies
testInstrumentationRunnerArguments["package"] = "com.google.android.fhir.datacapture"
}
Expand Down Expand Up @@ -64,17 +65,17 @@ dependencies {
androidTestImplementation(libs.truth)

implementation(project(":datacapture"))
implementation(Dependencies.playServicesLocation)
implementation(Dependencies.timber)
implementation(libs.play.services.location)
implementation(libs.timber)
implementation(libs.androidx.appcompat)
implementation(libs.androidx.core)
implementation(libs.androidx.fragment)
implementation(libs.kotlinx.coroutines.playservices)
implementation(libs.material)

coreLibraryDesugaring(Dependencies.desugarJdkLibs)
coreLibraryDesugaring(libs.desugar.jdk.libs)

testImplementation(Dependencies.robolectric)
testImplementation(libs.robolectric)
testImplementation(libs.androidx.fragment.testing)
testImplementation(libs.junit)
testImplementation(libs.kotlin.test.junit)
Expand Down
Loading
Loading