Skip to content

Commit d91b327

Browse files
authored
Merge pull request #115 from RADAR-base/release-0.5.1
Release 0.5.1
2 parents 7a30950 + 7d9711b commit d91b327

File tree

16 files changed

+832
-182
lines changed

16 files changed

+832
-182
lines changed

buildSrc/src/main/kotlin/Versions.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
@Suppress("ConstPropertyName", "MemberVisibilityCanBePrivate")
22
object Versions {
3-
const val project = "0.5.0"
3+
const val project = "0.5.1"
44

55
const val java = 11
66
const val kotlin = "1.9.10"
@@ -11,6 +11,8 @@ object Versions {
1111
const val kafka = "$confluent-ce"
1212
const val avro = "1.11.0"
1313

14+
const val managementPortal = "2.0.0"
15+
1416
// From image
1517
const val jackson = "2.14.2"
1618

kafka-connect-fitbit-source/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ dependencies {
66
api("io.confluent:kafka-connect-avro-converter:${Versions.confluent}")
77
api("org.radarbase:radar-schemas-commons:${Versions.radarSchemas}")
88
implementation("org.radarbase:radar-commons-kotlin:${Versions.radarCommons}")
9+
implementation("org.radarbase:oauth-client-util:${Versions.managementPortal}")
910

11+
api("com.squareup.okhttp3:okhttp:${Versions.okhttp}")
1012
implementation(platform("com.fasterxml.jackson:jackson-bom:${Versions.jackson}"))
1113
implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml")
1214
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")

kafka-connect-fitbit-source/src/main/java/org/radarbase/connect/rest/fitbit/FitbitRestSourceConnectorConfig.java

Lines changed: 46 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@
1717

1818
package org.radarbase.connect.rest.fitbit;
1919

20-
import static io.ktor.http.URLUtilsKt.URLBuilder;
2120
import static org.apache.kafka.common.config.ConfigDef.NO_DEFAULT_VALUE;
2221

2322
import java.lang.reflect.InvocationTargetException;
23+
import java.net.MalformedURLException;
24+
import java.net.URL;
2425
import java.nio.charset.StandardCharsets;
2526
import java.nio.file.Path;
2627
import java.nio.file.Paths;
@@ -30,9 +31,9 @@
3031
import java.util.List;
3132
import java.util.Map;
3233

33-
import io.ktor.http.URLParserException;
34-
import io.ktor.http.Url;
3534
import okhttp3.Headers;
35+
import okhttp3.HttpUrl;
36+
3637
import org.apache.kafka.common.config.ConfigDef;
3738
import org.apache.kafka.common.config.ConfigDef.Importance;
3839
import org.apache.kafka.common.config.ConfigDef.NonEmptyString;
@@ -331,6 +332,39 @@ public String toString() {
331332
Width.SHORT,
332333
FITBIT_INTRADAY_HEART_RATE_TOPIC_DISPLAY)
333334

335+
.define(FITBIT_INTRADAY_HEART_RATE_VARIABILITY_TOPIC_CONFIG,
336+
Type.STRING,
337+
FITBIT_INTRADAY_HEART_RATE_VARIABILITY_TOPIC_DEFAULT,
338+
nonControlChar,
339+
Importance.LOW,
340+
FITBIT_INTRADAY_HEART_RATE_VARIABILITY_TOPIC_DOC,
341+
group,
342+
++orderInGroup,
343+
Width.SHORT,
344+
FITBIT_INTRADAY_HEART_RATE_VARIABILITY_TOPIC_DISPLAY)
345+
346+
.define(FITBIT_BREATHING_RATE_TOPIC_CONFIG,
347+
Type.STRING,
348+
FITBIT_BREATHING_RATE_TOPIC_DEFAULT,
349+
nonControlChar,
350+
Importance.LOW,
351+
FITBIT_BREATHING_RATE_TOPIC_DOC,
352+
group,
353+
++orderInGroup,
354+
Width.SHORT,
355+
FITBIT_BREATHING_RATE_TOPIC_DISPLAY)
356+
357+
.define(FITBIT_SKIN_TEMPERATURE_TOPIC_CONFIG,
358+
Type.STRING,
359+
FITBIT_SKIN_TEMPERATURE_TOPIC_DEFAULT,
360+
nonControlChar,
361+
Importance.LOW,
362+
FITBIT_SKIN_TEMPERATURE_TOPIC_DOC,
363+
group,
364+
++orderInGroup,
365+
Width.SHORT,
366+
FITBIT_SKIN_TEMPERATURE_TOPIC_DISPLAY)
367+
334368
.define(FITBIT_RESTING_HEART_RATE_TOPIC_CONFIG,
335369
Type.STRING,
336370
FITBIT_RESTING_HEART_RATE_TOPIC_DEFAULT,
@@ -497,18 +531,18 @@ public Path getFitbitUserCredentialsPath() {
497531
return Paths.get(getString(FITBIT_USER_CREDENTIALS_DIR_CONFIG));
498532
}
499533

500-
public Url getFitbitUserRepositoryUrl() {
534+
public HttpUrl getFitbitUserRepositoryUrl() {
501535
String urlString = getString(FITBIT_USER_REPOSITORY_URL_CONFIG).trim();
502536
if (urlString.charAt(urlString.length() - 1) != '/') {
503537
urlString += '/';
504538
}
505-
try {
506-
return URLBuilder(urlString).build();
507-
} catch (URLParserException ex) {
539+
HttpUrl url = HttpUrl.parse(urlString);
540+
if (url == null) {
508541
throw new ConfigException(FITBIT_USER_REPOSITORY_URL_CONFIG,
509542
getString(FITBIT_USER_REPOSITORY_URL_CONFIG),
510-
"User repository URL " + urlString + " cannot be parsed as URL: " + ex);
543+
"User repository URL " + urlString + " cannot be parsed as URL.");
511544
}
545+
return url;
512546
}
513547

514548
public Headers getClientCredentials() {
@@ -551,17 +585,15 @@ public String getFitbitUserRepositoryClientSecret() {
551585
return getPassword(FITBIT_USER_REPOSITORY_CLIENT_SECRET_CONFIG).value();
552586
}
553587

554-
public Url getFitbitUserRepositoryTokenUrl() {
588+
public URL getFitbitUserRepositoryTokenUrl() {
555589
String value = getString(FITBIT_USER_REPOSITORY_TOKEN_URL_CONFIG);
556590
if (value == null || value.isEmpty()) {
557591
return null;
558592
} else {
559593
try {
560-
return URLBuilder(value).build();
561-
} catch (URLParserException ex) {
562-
throw new ConfigException(FITBIT_USER_REPOSITORY_URL_CONFIG,
563-
getString(FITBIT_USER_REPOSITORY_URL_CONFIG),
564-
"Fitbit user repository token URL " + value + " cannot be parsed as URL: " + ex);
594+
return new URL(getString(FITBIT_USER_REPOSITORY_TOKEN_URL_CONFIG));
595+
} catch (MalformedURLException ex) {
596+
throw new ConfigException("Fitbit user repository token URL is invalid.");
565597
}
566598
}
567599
}

kafka-connect-fitbit-source/src/main/java/org/radarbase/connect/rest/fitbit/user/ServiceUserRepository.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import io.ktor.client.statement.request
3737
import io.ktor.http.ContentType
3838
import io.ktor.http.HttpMethod
3939
import io.ktor.http.HttpStatusCode
40+
import io.ktor.http.URLBuilder
4041
import io.ktor.http.Url
4142
import io.ktor.http.contentLength
4243
import io.ktor.http.contentType
@@ -85,8 +86,8 @@ class ServiceUserRepository : UserRepository {
8586
val containedUsers = config.fitbitUsers.toHashSet()
8687

8788
client = createClient(
88-
baseUrl = config.fitbitUserRepositoryUrl,
89-
tokenUrl = config.fitbitUserRepositoryTokenUrl,
89+
baseUrl = URLBuilder(config.fitbitUserRepositoryUrl.toString()).build(),
90+
tokenUrl = URLBuilder(config.fitbitUserRepositoryTokenUrl.toString()).build(),
9091
clientId = config.fitbitUserRepositoryClientId,
9192
clientSecret = config.fitbitUserRepositoryClientSecret,
9293
)

0 commit comments

Comments
 (0)