Skip to content

Commit c34bdb7

Browse files
Revert "add adbserver plugin and setup publication (#611)"
This reverts commit df165a9.
1 parent df165a9 commit c34bdb7

File tree

71 files changed

+46
-715
lines changed

Some content is hidden

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

71 files changed

+46
-715
lines changed

.cirrus.yml

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,8 @@ check_android_30_task:
1010
kvm: true
1111
cpu: 8
1212
memory: 24G
13-
# xfce4 somehow helps to pass "Geolocation" test
14-
install_de_script: |
15-
export DEBIAN_FRONTEND=noninteractive
16-
apt-get update
17-
apt-get install xfce4 -y
18-
apt-get purge -y pm-utils xscreensaver*
19-
apt-get install xvfb -y
20-
start_de_background_script: |
21-
Xvfb :99 -screen 0 1000x1000x16 &
22-
sleep 5
23-
startxfce4
13+
start_adb_server_background_script:
14+
java -jar artifacts/adbserver-desktop.jar || true
2415
accept_licenses_script:
2516
echo yes | sdkmanager --licenses
2617
install_emulator_script:
@@ -42,7 +33,7 @@ check_android_30_task:
4233
-no-snapshot
4334
-no-window
4435
assemble_instrumented_tests_script:
45-
cd samples && ./gradlew assembleDebugAndroidTest
36+
./gradlew -PCI=true assembleDebugAndroidTest
4637
wait_for_avd_script:
4738
adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 3; done; input keyevent 82'
4839
configure_avd_script: |
@@ -54,9 +45,7 @@ check_android_30_task:
5445
start_logcat_background_script:
5546
adb logcat > log.log
5647
run_tests_script:
57-
cd samples && ./gradlew connectedDebugAndroidTest
58-
# After we do "adb root" connection is closed for a moment. So first attempt to pull screenshots usually fails
59-
# That's why we make 5 attempts to pull folders
48+
./gradlew -PCI=true connectedDebugAndroidTest
6049
always:
6150
stop_logcat_script: |
6251
if [[ $(adb devices | awk 'NR>1 {print $1}') =~ "emulator.*" ]]; then

adb-server/adb-server-common/src/main/java/com/kaspersky/adbserver/common/log/LoggerFactory.kt

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.kaspersky.adbserver.common.log
22

33
import com.kaspersky.adbserver.common.log.filterlog.FullLoggerOptimiser
4-
import com.kaspersky.adbserver.common.log.fulllogger.FullLogger
54
import com.kaspersky.adbserver.common.log.fulllogger.FullLoggerSystemImpl
65
import com.kaspersky.adbserver.common.log.logger.DesktopLogger
76
import com.kaspersky.adbserver.common.log.logger.LogLevel
@@ -13,12 +12,8 @@ import com.kaspersky.adbserver.common.log.logger.LoggerImpl
1312
*/
1413
object LoggerFactory {
1514

16-
fun getDesktopLogger(
17-
logLevel: LogLevel,
18-
desktopName: String,
19-
fullLogger: FullLogger = FullLoggerSystemImpl(logLevel, desktopName, null)
20-
): DesktopLogger {
21-
val logger = getCommonLogger(logLevel, desktopName, fullLogger = fullLogger)
15+
fun getDesktopLogger(logLevel: LogLevel, desktopName: String): DesktopLogger {
16+
val logger = getCommonLogger(logLevel, desktopName)
2217
return DesktopLogger(logger, logLevel, desktopName)
2318
}
2419

@@ -31,12 +26,8 @@ object LoggerFactory {
3126
fun getDeviceLogger(logLevel: LogLevel): Logger =
3227
getCommonLogger(logLevel)
3328

34-
private fun getCommonLogger(
35-
logLevel: LogLevel,
36-
desktopName: String? = null,
37-
deviceName: String? = null,
38-
fullLogger: FullLogger = FullLoggerSystemImpl(logLevel, desktopName, deviceName)
39-
): Logger {
29+
private fun getCommonLogger(logLevel: LogLevel, desktopName: String? = null, deviceName: String? = null): Logger {
30+
val fullLogger = FullLoggerSystemImpl(logLevel, desktopName, deviceName)
4031
val fullLoggerWrapper =
4132
if (logLevel == LogLevel.DEBUG) FullLoggerOptimiser(originalFullLogger = fullLogger, generateLogs = true) else fullLogger
4233
return LoggerImpl(fullLoggerWrapper)

adb-server/adb-server-common/src/main/java/com/kaspersky/adbserver/common/log/fulllogger/FullLogger.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.kaspersky.adbserver.common.log.fulllogger
22

33
import com.kaspersky.adbserver.common.log.logger.LogLevel
44

5-
interface FullLogger {
5+
internal interface FullLogger {
66

77
fun log(
88
logLevel: LogLevel? = null,

adb-server/adbserver-desktop/src/main/java/com/kaspersky/adbserver/desktop/AdbCommandPerformer.kt

Lines changed: 0 additions & 21 deletions
This file was deleted.

adb-server/adbserver-desktop/src/main/java/com/kaspersky/adbserver/desktop/CmdCommandPerformer.kt

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,10 @@ package com.kaspersky.adbserver.desktop
22

33
import com.kaspersky.adbserver.common.api.CommandResult
44
import com.kaspersky.adbserver.common.api.ExecutorResultStatus
5-
import java.io.File
6-
import java.nio.file.Path
75
import java.util.concurrent.TimeUnit
86

9-
/**
10-
* @param workingDir - working directory used to execute any cmd command if null when use default process working directory
11-
*/
12-
class CmdCommandPerformer(
13-
private val desktopName: String,
14-
private val workingDir: Path? = null
7+
internal class CmdCommandPerformer(
8+
private val desktopName: String
159
) {
1610

1711
companion object {
@@ -23,8 +17,7 @@ class CmdCommandPerformer(
2317
*/
2418
fun perform(command: String): CommandResult {
2519
val serviceInfo = "The command was executed on desktop=$desktopName"
26-
val workingDir = workingDir?.toFile() ?: File(".")
27-
val process = Runtime.getRuntime().exec(command, emptyArray(), workingDir)
20+
val process = Runtime.getRuntime().exec(command)
2821
try {
2922
if (process.waitFor(EXECUTION_TIMEOUT_SECONDS, TimeUnit.SECONDS)) {
3023
val exitCode = process.exitValue()

adb-server/adbserver-desktop/src/main/java/com/kaspersky/adbserver/desktop/CommandExecutorImpl.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import java.lang.UnsupportedOperationException
1010

1111
internal class CommandExecutorImpl(
1212
private val cmdCommandPerformer: CmdCommandPerformer,
13-
private val adbCommandPerformer: AdbCommandPerformer,
1413
private val deviceName: String,
1514
private val adbServerPort: String?,
1615
private val logger: Logger,
@@ -21,9 +20,9 @@ internal class CommandExecutorImpl(
2120
return when (command) {
2221
is CmdCommand -> cmdCommandPerformer.perform(command.body)
2322
is AdbCommand -> {
24-
val adbCommand = "${ adbServerPort?.let { "-P $adbServerPort " } ?: "" }-s $deviceName ${command.body}"
25-
logger.d("The created adbCommand=adb $adbCommand")
26-
adbCommandPerformer.perform(adbCommand)
23+
val adbCommand = "$adbPath ${ adbServerPort?.let { "-P $adbServerPort " } ?: "" }-s $deviceName ${command.body}"
24+
logger.d("The created adbCommand=$adbCommand")
25+
cmdCommandPerformer.perform(adbCommand)
2726
}
2827
else -> throw UnsupportedOperationException("The command=$command is unsupported command")
2928
}

adb-server/adbserver-desktop/src/main/java/com/kaspersky/adbserver/desktop/Desktop.kt

Lines changed: 6 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,10 @@ package com.kaspersky.adbserver.desktop
33
import com.kaspersky.adbserver.common.api.ExecutorResultStatus
44
import com.kaspersky.adbserver.common.log.LoggerFactory
55
import com.kaspersky.adbserver.common.log.logger.DesktopLogger
6-
import java.util.concurrent.atomic.AtomicBoolean
76
import java.util.regex.Pattern
8-
import kotlin.concurrent.thread
97

10-
class Desktop(
8+
internal class Desktop(
119
private val cmdCommandPerformer: CmdCommandPerformer,
12-
private val adbCommandPerformer: AdbCommandPerformer,
1310
private val presetEmulators: List<String>,
1411
private val adbServerPort: String?,
1512
private val logger: DesktopLogger,
@@ -18,52 +15,20 @@ class Desktop(
1815

1916
companion object {
2017
private const val PAUSE_MS = 500L
21-
private val DEVICE_PATTERN = Pattern.compile("^([a-zA-Z0-9\\-:.]+)(\\s+)(device)")
2218
}
2319

2420
private val devices: MutableCollection<DeviceMirror> = mutableListOf()
25-
private var isRunning = AtomicBoolean(false)
2621

27-
/**
28-
* Start Desktop server.
29-
* Blocking current thread while server working
30-
* @throws IllegalStateException - if server already running
31-
*/
32-
fun startDevicesObservingSync() {
33-
if (!isRunning.compareAndSet(false, true)) error("Desktop already running")
34-
startDevicesObservingInternal()
35-
}
36-
37-
/**
38-
* Start Desktop server asynchronously
39-
* @throws IllegalStateException - if server already running
40-
*/
41-
fun startDevicesObservingAsync() {
42-
if (!isRunning.compareAndSet(false, true)) error("Desktop already running")
43-
thread {
44-
startDevicesObservingInternal()
45-
}
46-
}
47-
48-
/**
49-
* Stop Desktop server
50-
* @throws IllegalStateException - if server already stopped
51-
*/
52-
fun stopDevicesObserving() {
53-
if (!isRunning.compareAndSet(true, false)) error("Desktop already stopped")
54-
}
55-
56-
private fun startDevicesObservingInternal() {
22+
fun startDevicesObserving() {
5723
logger.d("start")
58-
while (isRunning.get()) {
24+
while (true) {
5925
val namesOfAttachedDevicesByAdb = getAttachedDevicesByAdb()
6026
namesOfAttachedDevicesByAdb.forEach { deviceName ->
6127
if (devices.find { client -> client.deviceName == deviceName } == null) {
6228
logger.i("New device has been found: $deviceName. Initialize connection to the device...")
6329
val deviceMirror =
6430
DeviceMirror.create(
6531
cmdCommandPerformer,
66-
adbCommandPerformer,
6732
deviceName,
6833
adbServerPort,
6934
LoggerFactory.getDesktopLoggerReflectingDevice(logger, deviceName),
@@ -84,22 +49,18 @@ class Desktop(
8449
}
8550
Thread.sleep(PAUSE_MS)
8651
}
87-
88-
devices.forEach { client ->
89-
client.stopConnectionToDevice()
90-
}
91-
devices.clear()
9252
}
9353

9454
private fun getAttachedDevicesByAdb(): List<String> {
95-
val commandResult = adbCommandPerformer.perform("devices")
55+
val pattern = Pattern.compile("^([a-zA-Z0-9\\-:.]+)(\\s+)(device)")
56+
val commandResult = cmdCommandPerformer.perform("$adbPath devices")
9657
if (commandResult.status != ExecutorResultStatus.SUCCESS) {
9758
return emptyList()
9859
}
9960
val adbDevicesCommandResult: String = commandResult.description
10061
return adbDevicesCommandResult.lines()
10162
.asSequence()
102-
.map { DEVICE_PATTERN.matcher(it) }
63+
.map { pattern.matcher(it) }
10364
.filter { matcher -> matcher.find() }
10465
.map { matcher -> matcher.group(1) }
10566
.filter { foundEmulator -> presetEmulators.isEmpty() || presetEmulators.contains(foundEmulator) }

adb-server/adbserver-desktop/src/main/java/com/kaspersky/adbserver/desktop/DeviceMirror.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ internal class DeviceMirror private constructor(
2222

2323
fun create(
2424
cmdCommandPerformer: CmdCommandPerformer,
25-
adbCommandPerformer: AdbCommandPerformer,
2625
deviceName: String,
2726
adbServerPort: String?,
2827
logger: Logger,
@@ -32,7 +31,6 @@ internal class DeviceMirror private constructor(
3231
DesktopDeviceSocketConnectionFactory.getSockets(DesktopDeviceSocketConnectionType.FORWARD)
3332
val commandExecutor = CommandExecutorImpl(
3433
cmdCommandPerformer,
35-
adbCommandPerformer,
3634
deviceName,
3735
adbServerPort,
3836
logger,

adb-server/adbserver-desktop/src/main/java/com/kaspersky/adbserver/desktop/Main.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,8 @@ import kotlinx.cli.ArgType
77
import kotlinx.cli.default
88
import kotlinx.cli.delimiter
99
import java.lang.management.ManagementFactory
10-
import java.nio.file.Path
1110

1211
private const val DESKTOP = "Desktop-"
13-
private const val ERROR_EXIT_CODE = -1
14-
1512
// It is assumed that adb is preinstall and available by "adb" keyword
1613
private const val DEFAULT_ADB_PATH = "adb"
1714

@@ -54,16 +51,14 @@ internal fun main(args: Array<String>) {
5451
desktopLogger.i("Desktop started with arguments: emulators=$emulators, adbServerPort=$port, adbPath=$adbPath")
5552

5653
val cmdCommandPerformer = CmdCommandPerformer(desktopName)
57-
val adbCommandPerformer = AdbCommandPerformer(Path.of(adbPath), cmdCommandPerformer)
5854
val desktop = Desktop(
5955
cmdCommandPerformer = cmdCommandPerformer,
60-
adbCommandPerformer = adbCommandPerformer,
6156
presetEmulators = emulators,
6257
adbServerPort = port,
6358
logger = desktopLogger,
6459
adbPath = adbPath
6560
)
66-
desktop.startDevicesObservingSync()
61+
desktop.startDevicesObserving()
6762
}
6863

6964
private fun getDesktopName(): String {
File renamed without changes.

0 commit comments

Comments
 (0)