I am not sure if I understand you correctly. You want to return a compiled package binary based on certain criteria or you want to return individual assets based on certain criteria?Ok, thanks I had a look to this, and indeed you can query indiviual resource, or get a list of resources in one package. But If i understand well you idea, it is still necessary to compile manually some package using filters, and put then into separate snapshots by instance. I think it is really close to what I need, but I need to provide the filter in a query to get filtered assets (results got from REST query looses the Guvnor metadata, it only returns asset's content). Something like this would be perfect : http://localhost:8080/path/to/guvnor/api/packages/my.sample.package?category=foo&category=bar&status=prod -> return the list of assert having categories "foo" and "bar" and status set to "prod"
If what you want is to return individual assets, you can send a HTTP GET request to URL http://host:portnumber/drools-guvnor/rest/packages/mortgage/assets with Accept="application/atom+xml", this returns a list of assets under the mortgage package in Atom feed format. An example looks like below:I am not familiar with feeds, but the last XML sample of your link seems to allow some filtering ? Or is it just metadata set in the package ? Or it is possible to create feed with filtered assets, and then query them (that would be perfect too).
<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xml:base="http://localhost:9080/drools-guvnor/rest/packages/mortgage/assets">
<title>testPackage1's asset</title>
<entry xml:base="http://localhost:9080/drools-guvnor/rest/packages/mortgage/assets">
<title>testAsset1</title>
<link href="http://localhost:9080/drools-guvnor/rest/packages/mortgage/assets/testAsset1" />
</entry>
<entry xml:base="http://localhost:9080/drools-guvnor/rest/packages/mortgage/assets">
<title>testAsset2</title>
<link href="http://localhost:9080/drools-guvnor/rest/packages/mortgage/assets/testAsset2" />
</entry>
</feed>
Then you can further navigate to individual assets using the link
returned. For example a GET request to http://host:portnumber/drools-guvnor/rest/packages/mortgage/assets/testAsset1
with Accept="application/atom+xml" returns an atom entry which is
the meta data info of that asset. Or URL http://host:portnumber/drools-guvnor/rest/packages/mortgage/assets/testAsset1/source
to return source and URL http://host:portnumber/drools-guvnor/rest/packages/mortgage/assets/testAsset1/binary
to return binary content.
JAX-RS does support query using URL like http://host:portnumber/drools-guvnor/rest/packages/mortgage/assets?category=foo&category=bar&status=prod (and several other query mechanisms). But we have not implemented query in Guvnor yet. Of course you will be very welcome if you want to help ;-)
For more information about Guvnor REST interface please check:
http://blog.athico.com/2011/03/atompub-interface-for-guvnor.html
and http://community.jboss.org/wiki/AtomPubinterfaceforGuvnor
Cheers,
Jervis
Otherwise I think I di have to write my own servlet doing that (like Michael suggests), or find another solution. ----- Mail original ----- De: "Jervis Liu" <jliu@redhat.com> À: rules-users@lists.jboss.org Envoyé: Jeudi 5 Mai 2011 04:48:45 Objet: Re: [rules-users] Guvnor service to compile part of a package ? On 2011/5/4 22:57, Vincent Legendre wrote:Hi all, I am looking for a clever way to compile only parts of a Guvnor package according to some criteria on items (categories, metadata ...), but outside Guvnor if possible. The main idea starts by the fact that it is a little bit complex for a business user to manage packages and compilations, and even more if he has to manage conditional compilations (using selectors) of a single package to produce multiple KB compiled according to business criterions. I want to compile automatically some KB according to categories (more generally asset's fields) with something external to Guvnor. Thus I need a way to query Guvnor repository with criterion to get either : - the corresponding ressources (DRL) - the filtered compiled KB (PKG ressource) Filtering with DRL (like custom selectors in Guvnor) will be perfect, using a custom class too. Is there such service ? Does the KnowledgeAgent allow filtering (did not see anything in docs) ?Not sure about KnowledgeAgent, I ll leave this question to someone more familiar with KnowledgeAgent. At the same time, you can probably use Guvnor REST service to achieve same goal. Check this example: http://community.jboss.org/wiki/PublishDroolsartifactsfromaproductionenvironment. This example polls package feed periodically to check if there is a new version of package available. If there is a new version created, it will download the package compiled binary. Package binary is compiled against selectors, so it is filtered as you need. Cheers, JervisOr do I need to add a new service in Guvnor war directly ? Thanks! _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users_______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users