After scanning my project with cli-jqassistant-commandline-neo4jv4-2.1.0.jar and executing a cypher to get the value of @GET(value = "/test/two"), no record is returned.
I tried the following: I have the following interface in my project
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
interface TestService
{
@POST(value = "/test/one")
Call<ResponseBody> executeQuery(@Path("test") String test);
@GET(value = "/test/two")
Call<ResponseBody> getQuery(@Path("test") String test);
}
I'm running cli-jqassistant-commandline-neo4jv4-2.1.0.jar to scan the project When I execute the following cypher:
MATCH (client:Interface)-[:DECLARES]->(m:Method)
MATCH (m)-[:ANNOTATED_BY]->(ann:Annotation)-[:HAS]->(:Value{name:"value"})-[:CONTAINS]->(url:Value)
return url.value
OR
MATCH (client:Interface)-[:DECLARES]->(m:Method)
MATCH (m)-[:ANNOTATED_BY]->(ann:Annotation)-[:OF_TYPE]->(:Type{name:"GET"})
MATCH (ann)-[:HAS]->(:Value{name:"value"})-[:CONTAINS]->(url:Value)
return m
I don't get anything as result. I expect to get both values value = "/test/one" and value = "/test/two"
if I execute the following cypher:
MATCH (client:Interface)-[:DECLARES]->(m:Method)
return m
I get the following result:
{
"identity": 12598,
"labels": [
"Java",
"ByteCode",
"Method",
"Member"
],
"properties": {
"visibility": "public",
"signature": "retrofit2.Call executeQuery(java.lang.String)",
"name": "executeQuery",
"abstract": true,
"cyclomaticComplexity": 0
},
"elementId": "12598"
},
{
"identity": 12611,
"labels": [
"Java",
"ByteCode",
"Method",
"Member"
],
"properties": {
"visibility": "public",
"signature": "retrofit2.Call getQuery(java.lang.String)",
"name": "getQuery",
"abstract": true,
"cyclomaticComplexity": 0
},
"elementId": "12611"
}
The methods are there, but the values are missing. Is this a problem of the cypher or it is not scanning and recording these values?
The query for getting the value for the GET annotation should be like this:
Notice the fully qualified name for the annotation which is needed (because the annotation class itself is not scanned and therefore the property
nameis not available, onlyfqn)