Skip to content

v0.4.3 #689

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 44 commits into from
Mar 19, 2022
Merged
Changes from 1 commit
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
f38bc13
fix view history on watch log expression
BFergerson Mar 15, 2022
1646eb5
lower logging
BFergerson Mar 15, 2022
c0da0b3
rename
BFergerson Mar 15, 2022
04543b2
update
BFergerson Mar 15, 2022
5f84af3
link
BFergerson Mar 15, 2022
8158f9f
Update README.md
BFergerson Mar 15, 2022
23348e1
Update README.md
BFergerson Mar 15, 2022
6568d30
Update README.md
BFergerson Mar 15, 2022
5c37977
Update README.md
BFergerson Mar 15, 2022
c4a8f1b
Update README.md
BFergerson Mar 15, 2022
a97d924
Update README.md
BFergerson Mar 15, 2022
8c04cfc
Update README.md
BFergerson Mar 15, 2022
b44993a
Update README.md
BFergerson Mar 15, 2022
5e92668
Update README.md
BFergerson Mar 15, 2022
d9cab78
Update README.md
BFergerson Mar 15, 2022
458ed62
Update README.md
BFergerson Mar 15, 2022
4c0c1ad
Update README.md
BFergerson Mar 15, 2022
af6676d
Update README.md
BFergerson Mar 15, 2022
33235ae
Update README.md
BFergerson Mar 15, 2022
87e5f9a
Update README.md
BFergerson Mar 16, 2022
4838782
trigger event
BFergerson Mar 17, 2022
03c0e03
convenience method
BFergerson Mar 17, 2022
f133199
createMethodGutterMark
BFergerson Mar 17, 2022
dee50c0
default
BFergerson Mar 18, 2022
d05af32
lazy changelog
BFergerson Mar 18, 2022
1c7cf7f
move method
BFergerson Mar 18, 2022
318dfeb
impl SWLiveViewService
BFergerson Mar 18, 2022
1034189
allow live view commands
BFergerson Mar 18, 2022
681b11e
move code to processor
BFergerson Mar 18, 2022
925bfe3
impl show/hide quick stats
BFergerson Mar 19, 2022
2794e7c
todo
BFergerson Mar 19, 2022
5a34119
accept events to indiv subscriber
BFergerson Mar 19, 2022
8e6d282
Merge branch 'master' into dev
BFergerson Mar 19, 2022
72fc955
bump
BFergerson Mar 19, 2022
c19b07e
Merge remote-tracking branch 'origin/dev' into dev
BFergerson Mar 19, 2022
55d5f14
don't need
BFergerson Mar 19, 2022
5fd681f
Update JVMMarkerUtils.kt
BFergerson Mar 19, 2022
10d0cb5
auto-display endpoint quick stats setting
BFergerson Mar 19, 2022
0459a94
auto-display endpoint quick stats setting
BFergerson Mar 19, 2022
0b509f5
change default
BFergerson Mar 19, 2022
e2d72e2
impl auto-resolve for SWLiveService
BFergerson Mar 19, 2022
cdb202d
fix compatibility issues
BFergerson Mar 19, 2022
19277b8
fix compatibility issues
BFergerson Mar 19, 2022
4d38574
fix compatibility issues
BFergerson Mar 19, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
fix compatibility issues
  • Loading branch information
BFergerson committed Mar 19, 2022
commit cdb202d1bb77c4e9045f2d2a4ef8689087f4f0ab
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import org.jetbrains.uast.java.JavaUSimpleNameReferenceExpression
import org.jetbrains.uast.kotlin.KotlinStringULiteralExpression
import org.jetbrains.uast.kotlin.KotlinUQualifiedReferenceExpression
import org.jetbrains.uast.kotlin.KotlinUSimpleReferenceExpression
import org.jetbrains.uast.kotlin.expressions.KotlinUCollectionLiteralExpression
import org.jooq.tools.reflect.Reflect
import spp.jetbrains.marker.jvm.psi.EndpointDetector
import spp.jetbrains.marker.jvm.psi.EndpointDetector.DetectedEndpoint
import java.util.*
Expand Down Expand Up @@ -206,12 +206,12 @@ class SpringMVCEndpoint : EndpointDetector.EndpointNameDeterminer {
}

val methodExpr = annotation.attributeValues.find { it.name == "method" }!!.expression
var value = if (endpointNameExpr is KotlinUCollectionLiteralExpression) {
endpointNameExpr.valueArguments[0].evaluate()
var value = if (endpointNameExpr?.javaClass?.simpleName?.equals("KotlinUCollectionLiteralExpression") == true) {
getField<List<UExpression>>(endpointNameExpr, "valueArguments")[0].evaluate()
} else {
endpointNameExpr?.evaluate() ?: ""
}
val valueArg = (methodExpr as KotlinUCollectionLiteralExpression).valueArguments[0]
val valueArg = getField<List<Any>>(methodExpr, "valueArguments")[0]
val method = if (valueArg is KotlinUSimpleReferenceExpression) {
valueArg.resolvedName
} else if (valueArg is KotlinUQualifiedReferenceExpression) {
Expand All @@ -224,8 +224,8 @@ class SpringMVCEndpoint : EndpointDetector.EndpointNameDeterminer {
} else {
var valueExpr = annotation.findAttributeValue("value")
if (valueExpr == null) valueExpr = annotation.findAttributeValue("path")
var value = if (valueExpr is KotlinUCollectionLiteralExpression) {
valueExpr.valueArguments[0].evaluate()
var value = if (valueExpr?.javaClass?.simpleName?.equals("KotlinUCollectionLiteralExpression") == true) {
getField<List<UExpression>>(valueExpr, "valueArguments")[0].evaluate()
} else if (valueExpr != null) {
valueExpr.evaluate()
} else {
Expand Down Expand Up @@ -276,8 +276,8 @@ class SpringMVCEndpoint : EndpointDetector.EndpointNameDeterminer {
if (valueExpr is UastEmptyExpression) valueExpr =
annotation.findAttributeValue("path") //todo: have to call this twice???
if (valueExpr is UastEmptyExpression) valueExpr = null
var value = if (valueExpr is KotlinUCollectionLiteralExpression) {
valueExpr.valueArguments[0].evaluate()
var value = if (valueExpr?.javaClass?.simpleName?.equals("KotlinUCollectionLiteralExpression") == true) {
getField<List<UExpression>>(valueExpr, "valueArguments")[0].evaluate()
} else if (valueExpr != null) {
valueExpr.evaluate()
} else {
Expand All @@ -289,4 +289,20 @@ class SpringMVCEndpoint : EndpointDetector.EndpointNameDeterminer {
return Optional.of(DetectedEndpoint("$method:$value", false, value.toString(), method))
}
}

private fun <T> getField(value: Any, name: String): T {
val fields = Reflect.on(value).fields()
return if (fields.containsKey(name)) {
fields[name]!!.get()
} else if (fields.containsKey("$name\$delegate")) {
val value = fields["$name\$delegate"]!!.get<Any>()
return if (value is Lazy<*>) {
value.value as T
} else {
value as T
}
} else {
throw IllegalArgumentException("Field $name not found")
}
}
}