From 887e8596df39d408ad0295655148764dc0d762c9 Mon Sep 17 00:00:00 2001 From: RazvanP Date: Tue, 13 Feb 2024 17:18:10 +0200 Subject: [PATCH 1/5] fix: transcriber settings precedence --- .../jitsi/jigasi/TranscriptionGateway.java | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java b/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java index 905aa5083..6f56610c7 100644 --- a/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java +++ b/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java @@ -106,8 +106,9 @@ private String getCustomTranscriptionServiceClass(String tenant) REMOTE_TRANSCRIPTION_CONFIG_URL, null); - if (remoteTranscriptionConfigUrl != null) + if (remoteTranscriptionConfigUrl != null && tenant != null) { + logger.info("Retrieving transcriber from remote URL " + remoteTranscriptionConfigUrl + "/" + tenant); String transcriberClass = null; try { @@ -133,24 +134,36 @@ private String getCustomTranscriptionServiceClass(String tenant) } JSONObject obj = new JSONObject(responseBody.toString()); transcriberClass = obj.getString("transcriber"); - if (logger.isDebugEnabled()) - { - logger.debug("Using " + transcriberClass + " as the transcriber class."); - } + logger.info("Using " + transcriberClass + " as the transcriber class."); + conn.disconnect(); + return transcriberClass; + } + else + { + logger.warn("Could not retrieve transcriber from remote URL. Response code: " + responseCode); } conn.disconnect(); - return transcriberClass; } catch (Exception ex) { logger.error("Could not retrieve transcriber from remote URL." + ex); } } - - return JigasiBundleActivator.getConfigurationService() + logger.info("Attempting to retrieve transcriber from local configuration."); + String customTranscriptionServiceClass + = JigasiBundleActivator.getConfigurationService() .getString( CUSTOM_TRANSCRIPTION_SERVICE_PROP, null); + if (customTranscriptionServiceClass != null) + { + logger.info("Using " + customTranscriptionServiceClass + " as the transcriber class."); + } + else + { + logger.info("No custom transcriber class found, falling back to default."); + } + return customTranscriptionServiceClass; } @Override From f610ee960b67747118942d7d9f9b48e0dd4dc79e Mon Sep 17 00:00:00 2001 From: RazvanP Date: Tue, 13 Feb 2024 17:33:10 +0200 Subject: [PATCH 2/5] set connect timeout to 3 seconds --- src/main/java/org/jitsi/jigasi/TranscriptionGateway.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java b/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java index 6f56610c7..a5bacc83a 100644 --- a/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java +++ b/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java @@ -116,6 +116,7 @@ private String getCustomTranscriptionServiceClass(String tenant) HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setRequestProperty("Content-Type", "application/json"); + conn.setConnectTimeout(3000); int responseCode = conn.getResponseCode(); if (responseCode == 200) { From b94769d6421c76fec4de67a0da82b253440663e8 Mon Sep 17 00:00:00 2001 From: RazvanP Date: Tue, 13 Feb 2024 18:55:04 +0200 Subject: [PATCH 3/5] log: move level to debug --- src/main/java/org/jitsi/jigasi/TranscriptionGateway.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java b/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java index a5bacc83a..16b83d578 100644 --- a/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java +++ b/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java @@ -108,11 +108,16 @@ private String getCustomTranscriptionServiceClass(String tenant) if (remoteTranscriptionConfigUrl != null && tenant != null) { - logger.info("Retrieving transcriber from remote URL " + remoteTranscriptionConfigUrl + "/" + tenant); String transcriberClass = null; + String tsConfigUrl = remoteTranscriptionConfigUrl + "/" + tenant; + if (logger.isDebugEnabled()) + { + logger.debug("Retrieving transcriber from remote URL " + tsConfigUrl); + } + try { - URL url = new URL(remoteTranscriptionConfigUrl + "/" + tenant); + URL url = new URL(tsConfigUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setRequestProperty("Content-Type", "application/json"); From 768bb685fb1b20fd258bfc3b71012bc64eec8bc8 Mon Sep 17 00:00:00 2001 From: RazvanP Date: Tue, 13 Feb 2024 22:03:59 +0200 Subject: [PATCH 4/5] Separate checks --- .../jitsi/jigasi/TranscriptionGateway.java | 98 +++++++++---------- 1 file changed, 45 insertions(+), 53 deletions(-) diff --git a/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java b/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java index 16b83d578..5318e316d 100644 --- a/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java +++ b/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java @@ -100,6 +100,7 @@ public void stop() */ private String getCustomTranscriptionServiceClass(String tenant) { + String transcriberClass = null; String remoteTranscriptionConfigUrl = JigasiBundleActivator.getConfigurationService() .getString( @@ -108,68 +109,59 @@ private String getCustomTranscriptionServiceClass(String tenant) if (remoteTranscriptionConfigUrl != null && tenant != null) { - String transcriberClass = null; String tsConfigUrl = remoteTranscriptionConfigUrl + "/" + tenant; - if (logger.isDebugEnabled()) - { - logger.debug("Retrieving transcriber from remote URL " + tsConfigUrl); - } + transcriberClass = getTranscriberFromRemote(tsConfigUrl); + } - try + if (transcriberClass == null) { + transcriberClass + = JigasiBundleActivator.getConfigurationService() + .getString( + CUSTOM_TRANSCRIPTION_SERVICE_PROP, + null); + } + if (transcriberClass != null) { + logger.info("Using " + transcriberClass + " as the transcriber class."); + } + return transcriberClass; + } + + private String getTranscriberFromRemote(String remoteTsConfigUrl) + { + String transcriberClass = null; + if (logger.isDebugEnabled()) + { + logger.debug("Calling " + remoteTsConfigUrl + " to retrieve transcriber."); + } + try + { + URL url = new URL(remoteTsConfigUrl); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestMethod("GET"); + conn.setRequestProperty("Content-Type", "application/json"); + conn.setConnectTimeout(3000); + int responseCode = conn.getResponseCode(); + if (responseCode == 200) { - URL url = new URL(tsConfigUrl); - HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - conn.setRequestMethod("GET"); - conn.setRequestProperty("Content-Type", "application/json"); - conn.setConnectTimeout(3000); - int responseCode = conn.getResponseCode(); - if (responseCode == 200) + BufferedReader inputStream = new BufferedReader( + new InputStreamReader(conn.getInputStream())); + String inputLine; + StringBuilder responseBody = new StringBuilder(); + while ((inputLine = inputStream.readLine()) != null) { - BufferedReader inputStream = new BufferedReader( - new InputStreamReader(conn.getInputStream())); - String inputLine; - StringBuilder responseBody = new StringBuilder(); - while ((inputLine = inputStream.readLine()) != null) - { - responseBody.append(inputLine); - } - inputStream.close(); - if (logger.isDebugEnabled()) - { - logger.debug("Received body " + responseBody); - } - JSONObject obj = new JSONObject(responseBody.toString()); - transcriberClass = obj.getString("transcriber"); - logger.info("Using " + transcriberClass + " as the transcriber class."); - conn.disconnect(); - return transcriberClass; + responseBody.append(inputLine); } - else - { - logger.warn("Could not retrieve transcriber from remote URL. Response code: " + responseCode); - } - conn.disconnect(); - } - catch (Exception ex) - { - logger.error("Could not retrieve transcriber from remote URL." + ex); + inputStream.close(); + JSONObject obj = new JSONObject(responseBody.toString()); + transcriberClass = obj.getString("transcriber"); } + conn.disconnect(); } - logger.info("Attempting to retrieve transcriber from local configuration."); - String customTranscriptionServiceClass - = JigasiBundleActivator.getConfigurationService() - .getString( - CUSTOM_TRANSCRIPTION_SERVICE_PROP, - null); - if (customTranscriptionServiceClass != null) - { - logger.info("Using " + customTranscriptionServiceClass + " as the transcriber class."); - } - else + catch (Exception ex) { - logger.info("No custom transcriber class found, falling back to default."); + logger.error("Could not retrieve transcriber from remote URL." + ex); } - return customTranscriptionServiceClass; + return transcriberClass; } @Override From d967555d6717ade197282582bc01f45eb7d0fb37 Mon Sep 17 00:00:00 2001 From: RazvanP Date: Tue, 13 Feb 2024 22:19:54 +0200 Subject: [PATCH 5/5] Fix codestyle, remove log --- src/main/java/org/jitsi/jigasi/TranscriptionGateway.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java b/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java index 5318e316d..66eef3eab 100644 --- a/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java +++ b/src/main/java/org/jitsi/jigasi/TranscriptionGateway.java @@ -113,16 +113,14 @@ private String getCustomTranscriptionServiceClass(String tenant) transcriberClass = getTranscriberFromRemote(tsConfigUrl); } - if (transcriberClass == null) { + if (transcriberClass == null) + { transcriberClass = JigasiBundleActivator.getConfigurationService() .getString( CUSTOM_TRANSCRIPTION_SERVICE_PROP, null); } - if (transcriberClass != null) { - logger.info("Using " + transcriberClass + " as the transcriber class."); - } return transcriberClass; }