Skip to content
This repository was archived by the owner on Aug 1, 2023. It is now read-only.

Commit 18e1684

Browse files
committed
spotless upgrade - trim all lines to 120 max
1 parent a7e72b5 commit 18e1684

File tree

57 files changed

+515
-118
lines changed

Some content is hidden

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

57 files changed

+515
-118
lines changed

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ buildscript {
2626
}
2727

2828
plugins {
29-
id 'com.diffplug.spotless' version '6.12.1'
29+
id 'com.diffplug.spotless' version '6.13.0'
3030
id 'net.ltgt.errorprone' version '3.0.1'
3131
id 'org.springframework.boot' version '2.7.7'
3232
id 'io.spring.dependency-management' version '1.1.0'

devp2p-eth/src/main/kotlin/org/apache/tuweni/devp2p/eth/EthClient.kt

+6-2
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,10 @@ open class EthClient(
8484
reverse: Boolean,
8585
connection: WireConnection
8686
): AsyncResult<List<BlockHeader>> {
87-
logger.info("Requesting headers hash: $blockHash maxHeaders: $maxHeaders skip: $skip reverse: $reverse with uri ${connection.uri()}")
87+
logger.info(
88+
"Requesting headers hash: $blockHash maxHeaders: $maxHeaders skip: $skip reverse: " +
89+
"$reverse with uri ${connection.uri()}"
90+
)
8891
val conn = connectionSelectionStrategy.selectConnection()
8992
val completion = AsyncResult.incomplete<List<BlockHeader>>()
9093
headerRequests.computeIfAbsent(connection.uri() + blockHash.toHexString()) {
@@ -193,7 +196,8 @@ open class EthClient(
193196
fun nodeDataWasRequested(connection: WireConnection): Request<List<Bytes?>>? =
194197
nodeDataRequests[connection.uri()]
195198

196-
fun transactionReceiptsRequested(connection: WireConnection): Request<List<List<TransactionReceipt>>>? = transactionReceiptRequests[connection.uri()]
199+
fun transactionReceiptsRequested(connection: WireConnection): Request<List<List<TransactionReceipt>>>? =
200+
transactionReceiptRequests[connection.uri()]
197201

198202
override suspend fun submitPooledTransaction(vararg tx: Transaction) {
199203
for (t in tx) {

devp2p-eth/src/main/kotlin/org/apache/tuweni/devp2p/eth/EthHandler.kt

+6-1
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,12 @@ internal class EthHandler(
220220
blockHeaderRequest.skip,
221221
blockHeaderRequest.reverse
222222
)
223-
service.send(connection.agreedSubprotocolVersion(ETH62.name()), MessageType.BlockHeaders.code, connection, BlockHeaders(headers).toBytes())
223+
service.send(
224+
connection.agreedSubprotocolVersion(ETH62.name()),
225+
MessageType.BlockHeaders.code,
226+
connection,
227+
BlockHeaders(headers).toBytes()
228+
)
224229
}
225230

226231
private suspend fun handleNewBlockHashes(message: NewBlockHashes) {

devp2p-eth/src/main/kotlin/org/apache/tuweni/devp2p/eth/EthHandler66.kt

+28-5
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,14 @@ internal class EthHandler66(
7272
requestIdentifier,
7373
GetBlockHeaders.read(payload)
7474
)
75+
7576
MessageType.BlockHeaders.code -> handleHeaders(connection, requestIdentifier, BlockHeaders.read(payload))
7677
MessageType.GetBlockBodies.code -> handleGetBlockBodies(
7778
connection,
7879
requestIdentifier,
7980
GetBlockBodies.read(payload)
8081
)
82+
8183
MessageType.BlockBodies.code -> handleBlockBodies(connection, requestIdentifier, BlockBodies.read(payload))
8284
MessageType.NewBlock.code -> handleNewBlock(NewBlock.read(message))
8385
MessageType.GetNodeData.code -> handleGetNodeData(connection, requestIdentifier, GetNodeData.read(payload))
@@ -88,11 +90,13 @@ internal class EthHandler66(
8890
connection,
8991
NewPooledTransactionHashes.read(message)
9092
)
93+
9194
MessageType.GetPooledTransactions.code -> handleGetPooledTransactions(
9295
connection,
9396
requestIdentifier,
9497
GetPooledTransactions.read(payload)
9598
)
99+
96100
MessageType.PooledTransactions.code -> handlePooledTransactions(PooledTransactions.read(payload))
97101
else -> {
98102
logger.warn("Unknown message type {} with request identifier {}", messageType, requestIdentifier)
@@ -106,7 +110,11 @@ internal class EthHandler66(
106110
controller.addNewPooledTransactions(read.transactions)
107111
}
108112

109-
private suspend fun handleGetPooledTransactions(connection: WireConnection, requestIdentifier: Bytes, read: GetPooledTransactions) {
113+
private suspend fun handleGetPooledTransactions(
114+
connection: WireConnection,
115+
requestIdentifier: Bytes,
116+
read: GetPooledTransactions
117+
) {
110118
val tx = controller.findPooledTransactions(read.hashes)
111119
logger.debug("Responding to GetPooledTransactions with {} transactions", tx.size)
112120
service.send(
@@ -144,7 +152,10 @@ internal class EthHandler66(
144152
disconnect = true
145153
}
146154
if (!status.genesisHash.equals(blockchainInfo.genesisHash())) {
147-
EthHandler.logger.info("Peer with different genesisHash ${status.genesisHash} (expected ${blockchainInfo.genesisHash()})")
155+
EthHandler.logger.info(
156+
"Peer with different genesisHash ${status.genesisHash} " +
157+
"(expected ${blockchainInfo.genesisHash()})"
158+
)
148159
disconnect = true
149160
}
150161

@@ -200,7 +211,11 @@ internal class EthHandler66(
200211
controller.addNewTransactionReceipts(connection, requestIdentifier, receipts.transactionReceipts)
201212
}
202213

203-
private suspend fun handleGetReceipts(connection: WireConnection, requestIdentifier: Bytes, getReceipts: GetReceipts) {
214+
private suspend fun handleGetReceipts(
215+
connection: WireConnection,
216+
requestIdentifier: Bytes,
217+
getReceipts: GetReceipts
218+
) {
204219
val receipts = controller.findTransactionReceipts(getReceipts.hashes)
205220
service.send(
206221
EthSubprotocol.ETH66,
@@ -234,7 +249,11 @@ internal class EthHandler66(
234249
controller.addNewBlockBodies(connection, requestIdentifier, message.bodies)
235250
}
236251

237-
private suspend fun handleGetBlockBodies(connection: WireConnection, requestIdentifier: Bytes, message: GetBlockBodies) {
252+
private suspend fun handleGetBlockBodies(
253+
connection: WireConnection,
254+
requestIdentifier: Bytes,
255+
message: GetBlockBodies
256+
) {
238257
if (message.hashes.isEmpty()) {
239258
service.disconnect(connection, DisconnectReason.SUBPROTOCOL_REASON)
240259
return
@@ -255,7 +274,11 @@ internal class EthHandler66(
255274
controller.addNewBlockHeaders(connection, requestIdentifier, headers.headers)
256275
}
257276

258-
private suspend fun handleGetBlockHeaders(connection: WireConnection, requestIdentifier: Bytes, blockHeaderRequest: GetBlockHeaders) {
277+
private suspend fun handleGetBlockHeaders(
278+
connection: WireConnection,
279+
requestIdentifier: Bytes,
280+
blockHeaderRequest: GetBlockHeaders
281+
) {
259282
val headers = controller.findHeaders(
260283
blockHeaderRequest.block,
261284
blockHeaderRequest.maxHeaders,

devp2p/src/main/kotlin/org/apache/tuweni/devp2p/DiscoveryService.kt

+6-1
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,12 @@ internal class CoroutineDiscoveryService constructor(
474474
for (node in ArrayList(nodes)) {
475475
val peer = peerRepository.get(selfEndpoint!!.address, selfEndpoint!!.udpPort, node.nodeId)
476476
if (!results.contains(peer)) {
477-
results.orderedInsert(peer) { a, _ -> targetId.xorDistCmp(a.nodeId.bytesArray(), node.nodeId.bytesArray()) }
477+
results.orderedInsert(peer) { a, _ ->
478+
targetId.xorDistCmp(
479+
a.nodeId.bytesArray(),
480+
node.nodeId.bytesArray()
481+
)
482+
}
478483
results.removeAt(results.lastIndex)
479484
}
480485
}

eth-blockprocessor/src/main/kotlin/org/apache/tuweni/blockprocessor/BlockProcessor.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,8 @@ class BlockProcessor(val chainId: UInt256) {
8989
val txProcessor = TransactionProcessor(vm, hardFork, repository, stateChanges)
9090
val indexKey = RLP.encodeValue(UInt256.valueOf(counter).trimLeadingZeros())
9191
transactionsTrie.put(indexKey, tx.toBytes())
92-
val txResult = txProcessor.execute(tx, timestamp, chainId, parentBlock, gasLimit, gasUsed, allGasUsed, coinbase, bloomFilter)
92+
val txResult =
93+
txProcessor.execute(tx, timestamp, chainId, parentBlock, gasLimit, gasUsed, allGasUsed, coinbase, bloomFilter)
9394
if (txResult.success) {
9495
val receipt = txResult.receipt!!
9596
receiptsTrie.put(indexKey, receipt.toBytes())

eth-blockprocessor/src/main/kotlin/org/apache/tuweni/blockprocessor/TransactionProcessor.kt

+11-2
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,18 @@ import org.apache.tuweni.units.bigints.UInt256
3535
import org.apache.tuweni.units.ethereum.Gas
3636
import org.apache.tuweni.units.ethereum.Wei
3737

38-
data class TransactionProcessorResult(val receipt: TransactionReceipt? = null, val success: Boolean = false, val gasUsed: Gas = Gas.ZERO)
38+
data class TransactionProcessorResult(
39+
val receipt: TransactionReceipt? = null,
40+
val success: Boolean = false,
41+
val gasUsed: Gas = Gas.ZERO
42+
)
3943

40-
class TransactionProcessor(val vm: EthereumVirtualMachine, val hardFork: HardFork, val repository: BlockchainRepository, val stateChanges: TransientStateRepository) {
44+
class TransactionProcessor(
45+
val vm: EthereumVirtualMachine,
46+
val hardFork: HardFork,
47+
val repository: BlockchainRepository,
48+
val stateChanges: TransientStateRepository
49+
) {
4150

4251
fun calculateTransactionCost(payload: Bytes, hardFork: HardFork): Gas {
4352
var zeros = 0

eth-blockprocessor/src/test/kotlin/org/apache/tuweni/blockprocessor/BlockProcessorTest.kt

+20-2
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,26 @@ class BlockProcessorTest {
4242
fun testValidBlockNoTransactions() = runBlocking {
4343
val processor = BlockProcessor(UInt256.ONE)
4444
val repository = BlockchainRepository.inMemory(Genesis.dev())
45-
val result = processor.execute(Genesis.dev().header, Address.ZERO, Gas.valueOf(100), Gas.ZERO, UInt256.ZERO, listOf(), repository, Registry.istanbul, HardFork.HOMESTEAD)
46-
val block = result.block.toBlock(listOf(), Address.ZERO, UInt256.ONE, Instant.now(), Bytes.EMPTY, Genesis.emptyHash, UInt64.random())
45+
val result = processor.execute(
46+
Genesis.dev().header,
47+
Address.ZERO,
48+
Gas.valueOf(100),
49+
Gas.ZERO,
50+
UInt256.ZERO,
51+
listOf(),
52+
repository,
53+
Registry.istanbul,
54+
HardFork.HOMESTEAD
55+
)
56+
val block = result.block.toBlock(
57+
listOf(),
58+
Address.ZERO,
59+
UInt256.ONE,
60+
Instant.now(),
61+
Bytes.EMPTY,
62+
Genesis.emptyHash,
63+
UInt64.random()
64+
)
4765
assertEquals(0, block.body.transactions.size)
4866
}
4967
}

eth-blockprocessor/src/test/kotlin/org/apache/tuweni/blockprocessor/TransactionProcessorTest.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ class BlockProcessorReferenceTest {
8282
private fun findGeneralStateTests(): Stream<Arguments> {
8383
return findTests("/GeneralStateTests/**/*.json").filter {
8484
val testName = it.get()[1] as String
85-
(testName == "randomStatetest553") // || !(testName).contains("loop") || (testName).equals("OverflowGasMakeMoney")
85+
(testName == "randomStatetest553")
8686
}
8787
}
8888

eth-client-ui/src/integrationTest/kotlin/org/apache/tuweni/ethclientui/UIIntegrationTest.kt

+3-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,9 @@ type="memory""""
7171
val response3 = con3.inputStream.readAllBytes()
7272
assertTrue(response3.isNotEmpty())
7373
assertEquals(
74-
"""{"peerCounts":{"default":0},"bestBlocks":{"default":{"hash":"0xa08d1edb37ba1c62db764ef7c2566cbe368b850f5b3762c6c24114a3fd97b87f","number":"0x0000000000000000000000000000000000000000000000000000000000000000"}}}""",
74+
"""{"peerCounts":{"default":0},""" +
75+
""""bestBlocks":{"default":{"hash":"0xa08d1edb37ba1c62db764ef7c2566cbe368b850f5b3762c6c24114a3fd97b87f",""" +
76+
""""number":"0x0000000000000000000000000000000000000000000000000000000000000000"}}}""",
7577
String(response3)
7678
)
7779
ui.stop()

eth-client/src/main/kotlin/org/apache/tuweni/ethclient/EthereumClient.kt

+19-6
Original file line numberDiff line numberDiff line change
@@ -309,10 +309,18 @@ class EthereumClient(
309309
}
310310
).thenRun {
311311
for (sync in config.synchronizers()) {
312-
val syncRepository = storageRepositories[sync.getRepository()] ?: throw IllegalArgumentException("Repository ${sync.getRepository()} missing for synchronizer ${sync.getName()}")
313-
val syncService = rlpxServices[sync.getRlpxService()] ?: throw IllegalArgumentException("Service ${sync.getRlpxService()} missing for synchronizer ${sync.getName()}")
314-
val syncPeerRepository = peerRepositories[sync.getPeerRepository()] ?: throw IllegalArgumentException("Peer repository ${sync.getPeerRepository()} missing for synchronizer ${sync.getName()}")
315-
val adapter = adapters[sync.getRlpxService()] ?: throw IllegalArgumentException("Service ${sync.getRlpxService()} missing for synchronizer ${sync.getName()}")
312+
val syncRepository = storageRepositories[sync.getRepository()] ?: throw IllegalArgumentException(
313+
"Repository ${sync.getRepository()} missing for synchronizer ${sync.getName()}"
314+
)
315+
val syncService = rlpxServices[sync.getRlpxService()] ?: throw IllegalArgumentException(
316+
"Service ${sync.getRlpxService()} missing for synchronizer ${sync.getName()}"
317+
)
318+
val syncPeerRepository = peerRepositories[sync.getPeerRepository()] ?: throw IllegalArgumentException(
319+
"Peer repository ${sync.getPeerRepository()} missing for synchronizer ${sync.getName()}"
320+
)
321+
val adapter = adapters[sync.getRlpxService()] ?: throw IllegalArgumentException(
322+
"Service ${sync.getRlpxService()} missing for synchronizer ${sync.getName()}"
323+
)
316324

317325
when (sync.getType()) {
318326
SynchronizerType.BEST -> {
@@ -351,7 +359,9 @@ class EthereumClient(
351359
}
352360
SynchronizerType.CANONICAL -> {
353361
val fromRepository = storageRepositories.get(sync.getFromRepository())
354-
?: throw IllegalArgumentException("Missing repository for canonical repository ${sync.getFromRepository()}")
362+
?: throw IllegalArgumentException(
363+
"Missing repository for canonical repository ${sync.getFromRepository()}"
364+
)
355365
val canonicalSynchronizer = CanonicalSynchronizer(
356366
repository = syncRepository,
357367
client = syncService.getClient(ETH66) as EthRequestsManager,
@@ -379,7 +389,10 @@ class EthereumClient(
379389
validators[validator.getName()] = chainIdValidator
380390
}
381391
ValidatorType.TRANSACTIONHASH -> {
382-
val transactionsHashValidator = TransactionsHashValidator(from = validator.getFrom(), to = validator.getTo())
392+
val transactionsHashValidator = TransactionsHashValidator(
393+
from = validator.getFrom(),
394+
to = validator.getTo()
395+
)
383396
validators[validator.getName()] = transactionsHashValidator
384397
}
385398
}

eth-client/src/main/kotlin/org/apache/tuweni/ethclient/EthereumClientConfig.kt

+12-2
Original file line numberDiff line numberDiff line change
@@ -358,8 +358,18 @@ class EthereumClientConfig(private var config: Configuration = Configuration.emp
358358
synchronizersSection.addLong("from", 0L, "Start block to sync from", PropertyValidator.isGreaterOrEqual(0L))
359359
synchronizersSection.addLong("to", 0L, "End block to sync to", PropertyValidator.isGreaterOrEqual(0L))
360360
synchronizersSection.addString("repository", "default", "Blockchain repository to use", null)
361-
synchronizersSection.addString("rlpxService", "default", "RLPx service to use for requests with this synchronizer", null)
362-
synchronizersSection.addString("peerRepository", "default", "Peer repository to use for requests with this synchronizer", null)
361+
synchronizersSection.addString(
362+
"rlpxService",
363+
"default",
364+
"RLPx service to use for requests with this synchronizer",
365+
null
366+
)
367+
synchronizersSection.addString(
368+
"peerRepository",
369+
"default",
370+
"Peer repository to use for requests with this synchronizer",
371+
null
372+
)
363373
synchronizersSection.addString("fromRepository", null, "(only for canonical) Repository to sync from", null)
364374

365375
val validatorsSection = SchemaBuilder.create()

eth-client/src/main/kotlin/org/apache/tuweni/ethclient/WireConnectionPeerRepositoryAdapter.kt

+5-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,11 @@ class WireConnectionPeerRepositoryAdapter(val peerRepository: EthereumPeerReposi
8686
fun get(ethereumConnection: EthereumConnection): WireConnection {
8787
val conn = connections[ethereumConnection.identity().id()]
8888
if (conn == null) {
89-
logger.info("Connection ${ethereumConnection.identity().id()} not found, present are: ${connections.keys.joinToString(",")}}")
89+
logger.info(
90+
"Connection ${
91+
ethereumConnection.identity().id()
92+
} not found, present are: ${connections.keys.joinToString(",")}}"
93+
)
9094
throw NoSuchElementException("No connection available")
9195
}
9296
return conn

eth-client/src/test/kotlin/org/apache/tuweni/ethclient/EthereumClientConfigTest.kt

+3-1
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,9 @@ class EthereumClientConfigTest {
108108

109109
@Test
110110
fun testDNSClientWithDNSServer() {
111-
val config = EthereumClientConfig.fromString("[dns.mine]\nenrLink=\"example.com\"\npollingPeriod=1000\ndnsServer=\"4.4.5.5\"")
111+
val config = EthereumClientConfig.fromString(
112+
"[dns.mine]\nenrLink=\"example.com\"\npollingPeriod=1000\ndnsServer=\"4.4.5.5\""
113+
)
112114
assertEquals(1, config.dnsClients().size)
113115
assertEquals("example.com", config.dnsClients()[0].enrLink())
114116
assertEquals(1000, config.dnsClients()[0].pollingPeriod())

eth-crawler/src/main/kotlin/org/apache/tuweni/eth/crawler/CrawlerConfig.kt

+13-4
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import java.net.URI
2424
import java.nio.file.Path
2525

2626
class CrawlerConfig(val filePath: Path) {
27-
27+
@Suppress("ktlint:max-line-length")
2828
companion object {
2929
val mainnetEthereumBootnodes = listOf(
3030
"enode://d860a01f9722d78051619d1e2351aba3f43f943f6f00718d1b9baa4101932a1f5011f16bb2b1bb35db20d6fe28fa0bf09636d26a87d31de9ec6203eeedb1f666@18.138.108.67:30303", // Singapore AWS
@@ -46,7 +46,6 @@ class CrawlerConfig(val filePath: Path) {
4646
// Ethereum Foundation Aleth Bootnodes
4747
"enode://979b7fa28feeb35a4741660a16076f1943202cb72b6af70d327f053e248bab9ba81760f39d0701ef1d8f89cc1fbd2cacba0710a12cd5314d5e0c9021aa3637f9@5.1.83.226:30303" // DE
4848
)
49-
5049
val mainnetDiscoveryDNS = "enrtree://AKA3AM6LPBYEUDMVNU3BSVQJ5AD45Y7YPOHJLEF6W26QOE4VTUDPE@all.mainnet.ethdisco.net"
5150

5251
fun schema(): Schema {
@@ -73,15 +72,25 @@ class CrawlerConfig(val filePath: Path) {
7372
.addInteger("ethstatsPort", 1338, "Ethstats port", null)
7473
.addString("ethstatsSecret", "changeme", "Ethstats shared secret", null)
7574
.addLong("peerCacheExpiration", 5 * 60 * 1000L, "Peer data cache expiration", null)
76-
.addLong("clientIdsInterval", 24 * 60 * 60 * 1000 * 2L, "Client IDs Interval - number of milliseconds to go back in time", null)
75+
.addLong(
76+
"clientIdsInterval",
77+
24 * 60 * 60 * 1000 * 2L,
78+
"Client IDs Interval - number of milliseconds to go back in time",
79+
null
80+
)
7781
.addLong("clientsStatsDelay", 30 * 1000L, "Delay between client stats calculations", null)
7882
.addLong("rlpxDisconnectionDelay", 10 * 1000L, "RLPx connections disconnection delay", null)
7983
.addInteger("maxRequestsPerSec", 30, "Number of requests per second over HTTP", null)
8084
.addInteger("numberOfThreads", 10, "Number of Threads for each thread pool", null)
8185
.addInteger("metricsPort", 9090, "Metric service port", PropertyValidator.isValidPort())
8286
.addString("metricsNetworkInterface", "localhost", "Metric service network interface", null)
8387
.addBoolean("metricsGrpcPushEnabled", false, "Enable pushing metrics to gRPC service", null)
84-
.addBoolean("metricsPrometheusEnabled", false, "Enable exposing metrics on the Prometheus endpoint", null)
88+
.addBoolean(
89+
"metricsPrometheusEnabled",
90+
false,
91+
"Enable exposing metrics on the Prometheus endpoint",
92+
null
93+
)
8594
.addString("corsAllowedOrigins", "*", "CORS allowed domains filter for REST service", null)
8695

8796
val upgradesSection = SchemaBuilder.create()

eth-crawler/src/main/kotlin/org/apache/tuweni/eth/crawler/CrawlerRESTService.kt

+6-2
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,10 @@ class CrawlerRESTService(
7575
)
7676

7777
val apiServlet = ctx.addServlet(OpenApiServlet::class.java.name, "/api/*")
78-
apiServlet.setInitParameter("openApi.configuration.resourcePackages", "org.apache.tuweni.eth.crawler.rest")
78+
apiServlet.setInitParameter(
79+
"openApi.configuration.resourcePackages",
80+
"org.apache.tuweni.eth.crawler.rest"
81+
)
7982
apiServlet.initOrder = 2
8083

8184
ctx.setBaseResource(Resource.newResource(CrawlerRESTService::class.java.getResource("/webapp")))
@@ -86,7 +89,8 @@ class CrawlerRESTService(
8689
val swagger = ServletHolder("swagger-ui", DefaultServlet::class.java)
8790
swagger.setInitParameter(
8891
"resourceBase",
89-
CrawlerRESTService::class.java.getClassLoader().getResource("META-INF/resources/webjars/swagger-ui/4.15.5/").toString()
92+
CrawlerRESTService::class.java.getClassLoader().getResource("META-INF/resources/webjars/swagger-ui/4.15.5/")
93+
.toString()
9094
)
9195
swagger.setInitParameter("pathInfoOnly", "true")
9296
ctx.addServlet(swagger, "/swagger-ui/*")

0 commit comments

Comments
 (0)