

![]() | Start a set with this search |
![]() | Include this search in one of my sets |
![]() | Exclude this search from one of my sets |
![]() | Permalink to these results Paste this link in email or IM: |
| Atom feed for tracking future search results Paste this URL into your reader: |
7 messages in org.xwiki.devsRe: [xwiki-devs] [Proposal] QueryMana...| From | Sent On | Attachments |
|---|---|---|
| Artem Melentyev | May 25, 2008 8:08 am | |
| Vincent Massol | May 25, 2008 9:03 am | |
| Artem Melentyev | May 25, 2008 11:18 am | |
| Vincent Massol | May 25, 2008 12:11 pm | |
| Vincent Massol | May 26, 2008 2:35 am | |
| Artem Melentyev | May 28, 2008 5:31 am | |
| Vincent Massol | May 28, 2008 5:47 am |

![]() | Permalink for this message Paste this link in email or IM: |
![]() | Permalink for this thread Paste this link in email or IM: |
| Atom feed for this thread Paste this URL into your reader: |
| Subject: | Re: [xwiki-devs] [Proposal] QueryManager in store | Actions... |
|---|---|---|
| From: | Artem Melentyev (amel...@gmail.com) | |
| Date: | May 28, 2008 5:31:36 am | |
| List: | org.xwiki.devs | |
Hi, Vincent.
Vincent Massol wrote:
4) I'd really like that we try to remove any velocity-specific API so that we have only 1 Java API for all. Maybe we can introduce some velocity tools to handle the cases where you think it is required. What would be those cases?
Main issue are check rights for returned documents
We should probably have 2 Java APIs: one with restricted rights and one with unrestricted rights. Some of our org.xwiki components will be able to call the unrestricted rights api (we need to define how that will work - security policy?). But this is not related to Velocity. For example if, as a user, I write a new component I should only be able to call the restricted rights API, unless I have some extra rights set up or unless I modify the "container security policy".
We can create 2 QueryManagers: one with only secure languages, and another with all languages.
and shorter API (ex: QueryManager#xpath(""), Query#setParams(List)).
We can expose QueryManager as the QueryPlugin (ex: xwiki.getQuery() returns QueryManager, without plugin api), add some shorter methods and protect #createQuery by our @Programming annotation.
I'd prefer that we don't add "shorter" methods (whatever that means - I'm still unsure) but that we have pure Java API as if the API was only called from Java.
However, in order to make it simpler from Velocity we could do 2 things: * Offer some velocity tools for easier access. * Possibility create some @velocity annotations or something that would generate some velocity-based api in some cases where we could not find a good way of doing it. However I'd like to start reviewing the cases one by one to see if they can really not be called easily- enough from Velocity.
Ok. We need QueryManager for Java at first.
public interface Query { static final String HQL = "hql"; static final String XPATH = "xpath"; ... }
btw you don't need static final in an interface ;)
Actually I wouldn't do it like this. Since we're now using components I would create a Query interface and create each implementation as a component. That component will be registered with a <role-hint> of "hql", "xpath", etc.
This sounds fine. Thanks for idea. But this is implementation specific. We need QueryManager#createQuery in any case.
-- Artem Melentyev
_______________________________________________ devs mailing list de...@xwiki.org http://lists.xwiki.org/mailman/listinfo/devs







