Skip to content
This repository was archived by the owner on Oct 18, 2024. It is now read-only.

Commit ab101fb

Browse files
committed
fix: migrate to SLF4J and Logback logging implementations
1 parent 940c7b0 commit ab101fb

File tree

409 files changed

+2729
-2725
lines changed

Some content is hidden

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

409 files changed

+2729
-2725
lines changed

.idea/inspectionProfiles/Project_Default.xml

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

actions/src/main/java/com/itsaky/androidide/actions/internal/DefaultActionsRegistry.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import com.itsaky.androidide.actions.ActionsRegistry
2626
import com.itsaky.androidide.actions.FillMenuParams
2727
import com.itsaky.androidide.actions.OnActionClickListener
2828
import com.itsaky.androidide.actions.locations.CodeActionsMenu
29-
import com.itsaky.androidide.utils.ILogger
3029
import com.itsaky.androidide.utils.withStopWatch
3130
import kotlinx.coroutines.CoroutineName
3231
import kotlinx.coroutines.CoroutineScope
@@ -35,6 +34,7 @@ import kotlinx.coroutines.Job
3534
import kotlinx.coroutines.launch
3635
import kotlinx.coroutines.plus
3736
import kotlinx.coroutines.withContext
37+
import org.slf4j.LoggerFactory
3838
import java.util.concurrent.ConcurrentHashMap
3939

4040
/**
@@ -45,13 +45,16 @@ import java.util.concurrent.ConcurrentHashMap
4545
@AutoService(ActionsRegistry::class)
4646
class DefaultActionsRegistry : ActionsRegistry() {
4747

48-
private val log = ILogger.newInstance("DefaultActionsRegistry")
4948
private val actions = ConcurrentHashMap<String, ConcurrentHashMap<String, ActionItem>>()
5049
private val listeners = HashSet<ActionExecListener>()
5150

5251
private val actionsCoroutineScope = CoroutineScope(Dispatchers.Default) +
5352
CoroutineName("DefaultActionsRegistry")
5453

54+
companion object {
55+
private val log = LoggerFactory.getLogger(DefaultActionsRegistry::class.java)
56+
}
57+
5558
init {
5659
registerAction(CodeActionsMenu)
5760
}
@@ -217,7 +220,7 @@ class DefaultActionsRegistry : ActionsRegistry() {
217220
}.also { job ->
218221
job.invokeOnCompletion { error ->
219222
if (error != null) {
220-
log.error("An error occurred when performing action '${action.id}'", error)
223+
log.error("An error occurred when performing action '{}'", action.id, error)
221224
}
222225
}
223226
}

app/build.gradle.kts

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
@file:Suppress("UnstableApiUsage")
22

3+
import ch.qos.logback.core.util.EnvUtil
34
import com.itsaky.androidide.build.config.BuildConfig
5+
import com.itsaky.androidide.desugaring.ch.qos.logback.core.util.DesugarEnvUtil
46
import com.itsaky.androidide.desugaring.utils.JavaIOReplacements.applyJavaIOReplacements
57
import com.itsaky.androidide.plugins.AndroidIDEAssetsPlugin
8+
import kotlin.reflect.jvm.javaMethod
69

710
plugins {
811
id("com.android.application")
@@ -17,6 +20,13 @@ apply {
1720
plugin(AndroidIDEAssetsPlugin::class.java)
1821
}
1922

23+
buildscript {
24+
dependencies {
25+
classpath(libs.logging.logback.core)
26+
classpath(libs.composite.desugaringCore)
27+
}
28+
}
29+
2030
android {
2131
namespace = BuildConfig.packageName
2232

@@ -45,9 +55,20 @@ kapt { arguments { arg("eventBusIndex", "${BuildConfig.packageName}.events.AppEv
4555

4656
desugaring {
4757
replacements {
48-
includePackage("org.eclipse.jgit")
58+
includePackage(
59+
"org.eclipse.jgit",
60+
"ch.qos.logback.classic.util",
61+
)
4962

5063
applyJavaIOReplacements()
64+
65+
// EnvUtil.logbackVersion() uses newer Java APIs like Class.getModule() which is not available
66+
// on Android. We replace the method usage with DesugarEnvUtil.logbackVersion() which
67+
// always returns null
68+
replaceMethod(
69+
EnvUtil::logbackVersion.javaMethod!!,
70+
DesugarEnvUtil::logbackVersion.javaMethod!!
71+
)
5172
}
5273
}
5374

app/src/main/java/com/itsaky/androidide/actions/BaseBuildAction.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ package com.itsaky.androidide.actions
1919

2020
import com.itsaky.androidide.lookup.Lookup
2121
import com.itsaky.androidide.projects.builder.BuildService
22-
import com.itsaky.androidide.utils.ILogger
2322

2423
/**
2524
* Marker class for actions that execute build related tasks.
@@ -28,7 +27,6 @@ import com.itsaky.androidide.utils.ILogger
2827
*/
2928
abstract class BaseBuildAction : EditorActivityAction() {
3029

31-
protected val log: ILogger = ILogger.newInstance(javaClass.simpleName)
3230
protected val buildService: BuildService?
3331
get() = Lookup.getDefault().lookup(BuildService.KEY_BUILD_SERVICE)
3432

app/src/main/java/com/itsaky/androidide/actions/build/QuickRunWithCancellationAction.kt

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import com.itsaky.androidide.utils.resolveAttr
4242
import kotlinx.coroutines.Dispatchers
4343
import kotlinx.coroutines.launch
4444
import kotlinx.coroutines.withContext
45+
import org.slf4j.LoggerFactory
4546
import java.io.File
4647

4748
/**
@@ -55,6 +56,11 @@ import java.io.File
5556
class QuickRunWithCancellationAction(context: Context, override val order: Int) :
5657
BaseBuildAction() {
5758

59+
companion object {
60+
61+
private val log = LoggerFactory.getLogger(QuickRunWithCancellationAction::class.java)
62+
}
63+
5864
init {
5965
label = context.getString(R.string.quick_run_debug)
6066
icon = ContextCompat.getDrawable(context, R.drawable.ic_run_outline)
@@ -130,7 +136,7 @@ class QuickRunWithCancellationAction(context: Context, override val order: Int)
130136
) {
131137

132138
val buildService = this.buildService ?: run {
133-
log.error("Cannot execute task '$taskName'. BuildService not found.")
139+
log.error("Cannot execute task '{}'. BuildService not found.", taskName)
134140
return
135141
}
136142

@@ -143,7 +149,7 @@ class QuickRunWithCancellationAction(context: Context, override val order: Int)
143149
data.getActivity()
144150
?: run {
145151
log.error(
146-
"Cannot execute task '$taskName'. Activity instance not provided in ActionData.")
152+
"Cannot execute task '{}'. Activity instance not provided in ActionData.", taskName)
147153
return
148154
}
149155

@@ -154,17 +160,17 @@ class QuickRunWithCancellationAction(context: Context, override val order: Int)
154160
buildService.executeTasks(taskName).get()
155161
}
156162

157-
log.debug("Task execution result:", result)
163+
log.debug("Task execution result: {}", result)
158164

159165
if (result?.isSuccessful != true) {
160-
log.error("Tasks failed to execute: '$taskName'")
166+
log.error("Tasks failed to execute: '{}'", taskName)
161167
return@launch
162168
}
163169

164170
handleResult(data, result, module, variant)
165171
}.invokeOnCompletion { error ->
166172
if (error != null) {
167-
log.error("Failed to run '$taskName'", error)
173+
log.error("Failed to run '{}'", taskName, error)
168174
}
169175
}
170176
}
@@ -186,7 +192,7 @@ class QuickRunWithCancellationAction(context: Context, override val order: Int)
186192

187193
if (!result.wasEnqueued) {
188194
log.warn(
189-
"Unable to enqueue cancellation request",
195+
"Unable to enqueue cancellation request reason={} reason.message={}",
190196
result.failureReason,
191197
result.failureReason!!.message
192198
)
@@ -210,7 +216,7 @@ class QuickRunWithCancellationAction(context: Context, override val order: Int)
210216
return
211217
}
212218

213-
log.debug("Installing APK(s) for project: '${module.path}' variant: '${variant.name}'")
219+
log.debug("Installing APK(s) for project: '{}' variant: '{}'", module.path, variant.name)
214220

215221
val main = variant.mainArtifact
216222
val outputListingFile = main.assembleTaskOutputListingFile
@@ -219,15 +225,15 @@ class QuickRunWithCancellationAction(context: Context, override val order: Int)
219225
return
220226
}
221227

222-
log.verbose("Parsing metadata")
228+
log.trace("Parsing metadata")
223229
val apkFile = ApkMetadata.findApkFile(outputListingFile)
224230
if (apkFile == null) {
225-
log.error("No apk file specified in output listing file:", outputListingFile)
231+
log.error("No apk file specified in output listing file: {}", outputListingFile)
226232
return
227233
}
228234

229235
if (!apkFile.exists()) {
230-
log.error("APK file specified in output listing file does not exist!", apkFile)
236+
log.error("APK file specified in output listing file does not exist! {}", apkFile)
231237
return
232238
}
233239

@@ -243,7 +249,7 @@ class QuickRunWithCancellationAction(context: Context, override val order: Int)
243249
}
244250

245251
activity.runOnUiThread {
246-
log.debug("Installing APK:", apk)
252+
log.debug("Installing APK: {}", apk)
247253

248254
if (!apk.exists()) {
249255
log.error("APK file does not exist!")

app/src/main/java/com/itsaky/androidide/actions/editor/CopyAction.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
package com.itsaky.androidide.actions.editor
1919

2020
import android.content.Context
21-
import com.itsaky.androidide.resources.R
2221
import com.itsaky.androidide.actions.ActionData
2322
import com.itsaky.androidide.actions.BaseEditorAction
23+
import com.itsaky.androidide.resources.R
2424

2525
/** @author Akash Yadav */
2626
class CopyAction(context: Context, override val order: Int) : BaseEditorAction() {

app/src/main/java/com/itsaky/androidide/actions/editor/ExpandSelectionAction.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,10 @@ package com.itsaky.androidide.actions.editor
1919

2020
import android.content.Context
2121
import androidx.core.content.ContextCompat
22-
import com.itsaky.androidide.resources.R
2322
import com.itsaky.androidide.actions.ActionData
2423
import com.itsaky.androidide.actions.ActionItem
2524
import com.itsaky.androidide.actions.EditorRelatedAction
25+
import com.itsaky.androidide.resources.R
2626

2727
/**
2828
* Expands the current selection using the language server set in editor.

app/src/main/java/com/itsaky/androidide/actions/etc/FindInFileAction.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ package com.itsaky.androidide.actions.etc
1919

2020
import android.content.Context
2121
import androidx.core.content.ContextCompat
22-
import com.itsaky.androidide.resources.R
2322
import com.itsaky.androidide.actions.ActionData
2423
import com.itsaky.androidide.actions.EditorRelatedAction
24+
import com.itsaky.androidide.resources.R
2525

2626
/** @author Akash Yadav */
2727
class FindInFileAction() : EditorRelatedAction() {

app/src/main/java/com/itsaky/androidide/actions/etc/FindInProjectAction.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,11 @@ package com.itsaky.androidide.actions.etc
1919

2020
import android.content.Context
2121
import androidx.core.content.ContextCompat
22-
import com.itsaky.androidide.resources.R
2322
import com.itsaky.androidide.actions.ActionData
2423
import com.itsaky.androidide.actions.EditorActivityAction
2524
import com.itsaky.androidide.actions.markInvisible
2625
import com.itsaky.androidide.projects.IProjectManager
26+
import com.itsaky.androidide.resources.R
2727

2828
/** @author Akash Yadav */
2929
class FindInProjectAction() : EditorActivityAction() {

app/src/main/java/com/itsaky/androidide/actions/etc/LaunchAppAction.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,10 @@ import com.itsaky.androidide.actions.ActionData
2525
import com.itsaky.androidide.actions.EditorActivityAction
2626
import com.itsaky.androidide.actions.markInvisible
2727
import com.itsaky.androidide.actions.openApplicationModuleChooser
28-
import com.itsaky.androidide.builder.model.UNKNOWN_PACKAGE
2928
import com.itsaky.androidide.projects.IProjectManager
30-
import com.itsaky.androidide.utils.ILogger
3129
import com.itsaky.androidide.utils.IntentUtils
3230
import com.itsaky.androidide.utils.flashError
31+
import org.slf4j.LoggerFactory
3332

3433
/**
3534
* An action to launch the already installed application on the device.
@@ -47,7 +46,7 @@ class LaunchAppAction(context: Context, override val order: Int) : EditorActivit
4746
}
4847

4948
companion object {
50-
private val log = ILogger.newInstance("LaunchAppAction")
49+
private val log = LoggerFactory.getLogger(LaunchAppAction::class.java)
5150
}
5251

5352
override fun prepare(data: ActionData) {
@@ -67,7 +66,7 @@ class LaunchAppAction(context: Context, override val order: Int) : EditorActivit
6766
openApplicationModuleChooser(data) { app ->
6867
val variant = app.getSelectedVariant()
6968

70-
log.debug("Selected variant: ${variant?.name}")
69+
log.debug("Selected variant: {}", variant?.name)
7170

7271
if (variant == null) {
7372
flashError(R.string.err_selected_variant_not_found)
@@ -81,7 +80,7 @@ class LaunchAppAction(context: Context, override val order: Int) : EditorActivit
8180
return@openApplicationModuleChooser
8281
}
8382

84-
log.info("Launching application: $applicationId")
83+
log.info("Launching application: {}", applicationId)
8584

8685
val activity = data.requireActivity()
8786
IntentUtils.launchApp(activity, applicationId, logError = false)

0 commit comments

Comments
 (0)