Ah, I see. Sorry for the confusion. It might be possible with that dot
notation. You could file a JIRA and someone can look at it when there is
time. It does seem possible though.
On Tue, Nov 22, 2016 at 5:39 PM, Lin Gao <lgao(a)redhat.com> wrote:
----- Original Message -----
> From: "James Perkins" <jperkins(a)redhat.com>
> To: "Lin Gao" <lgao(a)redhat.com>
> Cc: wildfly-dev(a)lists.jboss.org
> Sent: Wednesday, November 23, 2016 6:11:21 AM
> Subject: Re: [wildfly-dev] Improve query() operation for complex
attributes?
>
> The second case worked for me without an issue.
> [standalone@localhost:9990 /]
> /deployment=batch-chunk.war/subsystem=jaxrs/rest-resource=
*:query(select=["rest-resource-paths"])
> {
> "outcome" => "success",
> "result" => [{
> "address" => [
> ("deployment" => "batch-chunk.war"),
> ("subsystem" => "jaxrs"),
> ("rest-resource" =>
> "org.jboss.example.batch.rest.BatchResource")
> ],
> "outcome" => "success",
> "result" => {"rest-resource-paths" => [
> {
> "resource-path" => "batch/jobs",
> "consumes" => undefined,
> "produces" => ["application/json"],
> "java-method" => "javax.ws.rs.core.Response
> org.jboss.example.batch.rest.BatchResource.listBatchJobs()",
> "resource-methods" => ["GET
/batch-chunk/rest/batch/jobs"]
> },
> {
> "resource-path" => "batch/jobs/{status}",
> "consumes" => undefined,
> "produces" => ["application/json"],
> "java-method" => "javax.ws.rs.core.Response
> org.jboss.example.batch.rest.BatchResource.listBatchJobs(@PathParam
> java.lang.String status)",
> "resource-methods" => ["GET
> /batch-chunk/rest/batch/jobs/{status}"]
> }
> ]}
> }]
> }
You just listed all 'rest-resource-paths' without any filtering, if you
have over 100 REST endpoints in 'batch-chunk.war', it will be difficult to
find the one which provides "resource-path" => "batch/jobs".
Let's assume the following command can do the task:
[standalone@localhost:9990 /] /deployment=batch-chunk.war/
subsystem=jaxrs/rest-resource=*:query(select=["rest-resource-paths"],
where={"rest-resource-paths.resource-path"=>"batch/jobs"})
here the 'rest-resource-paths.resource-path' is the attribute name in
enhanced syntax.
> The read-resource operation really does the same thing though in this
case.
Yes, it does, but I think the most important feature provided by 'query()'
operation is that it can filter resources by conditions specified by
'where' parameter.
It works only on simple attributes, like:
[standalone@localhost:9990 /] /subsystem=datasources/jdbc-
driver=*:query(select=[driver-xa-datasource-class-name],
where={driver-name=h2})
{
"outcome" => "success",
"result" => [{
"address" => [
("subsystem" => "datasources"),
("jdbc-driver" => "h2")
],
"outcome" => "success",
"result" => {"driver-xa-datasource-class-name" =>
"org.h2.jdbcx.JdbcDataSource"}
}]
}
It would be good if the 'query()' operation can filter the resources by
specifying value of attributes which are inside the complex attribute, so
that the following commands can work:
[standalone@localhost:9990 /] /core-service=capability-
registry:query(select=[possible-capabilities],where={
possible-capabilities.name=org.wildfly.data-source})
[standalone@localhost:9990 /] /deployment=batch-chunk.war/
subsystem=jaxrs/rest-resource=*:query(select=["rest-resource-paths"],
where={"rest-resource-paths.resource-path"=>"batch/jobs"})
Best Regards
--
Lin Gao
Software Engineer
JBoss by Red Hat
> On Tue, Nov 22, 2016 at 12:51 AM, Lin Gao <lgao(a)redhat.com> wrote:
>
> > Hi,
> >
> > Each management resource has an operation named 'query()' to filter
> > resources according to the condition passed by 'selector' and
'where'
> > parameters, however it does not work for complex attributes.
> >
> > 2 example of complex attributes:
> >
> > - 'query()' operation cannot find which
'possible-capabilities'
> > provides the capability with name 'org.wildfly.data-source'
> > - It cannot find which 'rest-resource-paths' provides the REST
> > endpoint 'resource-path=/helloworld' in jaxrs subsystem of a war
deployment
> > either.
> >
> > Especially for the second case in above examples, it will be helpful
for
> > users when doing troubleshooting in case of large deployment.
> >
> > Actually, it does not limit to the complex attributes, it would be
good
> > to be able to filter resources by condition specified by attribute
value of
> > nested child resources(not only by the first level of child resource).
> >
> > WDYT?
> >
> > Best Regards
> >
> > --
> > Lin Gao
> > Software Engineer
> > JBoss by Red Hat
> > _______________________________________________
> > wildfly-dev mailing list
> > wildfly-dev(a)lists.jboss.org
> >
https://lists.jboss.org/mailman/listinfo/wildfly-dev
> >
>
>
>
> --
> James R. Perkins
> JBoss by Red Hat
>
--
James R. Perkins
JBoss by Red Hat