You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-dev@jackrabbit.apache.org by "Stefan Guggisberg (JIRA)" <ji...@apache.org> on 2012/04/27 16:03:50 UTC

[jira] [Created] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Stefan Guggisberg created OAK-75:
------------------------------------

             Summary: specify format and semantics of 'filter' parameter in MicroKernel API
                 Key: OAK-75
                 URL: https://issues.apache.org/jira/browse/OAK-75
             Project: Jackrabbit Oak
          Issue Type: New Feature
          Components: mk
            Reporter: Stefan Guggisberg


the following MicroKernel methods contain a 'filter' string parameter:

- getJournal
- diff
- getNodes

through the filter an API client could e.g. specify:

- special 'meta' properties to be included (e.g. ":hash")
- glob patterns on the names of properties/child nodes to be included/excluded
- path filter (for getJournal and diff)

format/detailed semantics TBD, here's an initial proposal (json):

{
  "path" : "/some/path",
  "incl" : [ ":hash", "*" ],
  "excl" : [ "tmp*" ]
}

name filter patterns should ideally be the same 
format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Michael Dürig (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13269483#comment-13269483 ] 

Michael Dürig commented on OAK-75:
----------------------------------

Regarding the filter syntax: couldn't we make it a bit more lightweight and general? For example

{code}
{
  nodes: [ "foo\*", "\-foo1" ],
  properties: [ "bar\*", "tmp" ]
}
{code}

would only include nodes whose names start with "foo" and whose name is not "foo1" and all properties whose name start with "bar" or whose name is "tmp".
                
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>         Attachments: OAK-83.patch
>
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

[jira] [Updated] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stefan Guggisberg updated OAK-75:
---------------------------------

    Description: 
the following MicroKernel methods contain a 'filter' string parameter:

- getJournal
- diff
- getNodes

through the filter an API client could e.g. specify:

- special 'meta' properties to be included (e.g. ":hash")
- glob patterns on the names of properties/child nodes to be included/excluded
- path filter (for getJournal and diff)

format/detailed semantics TBD, here's an initial proposal (json):

{code} 
{
  "path" : "/some/path",
  "incl" : [ ":hash", "*" ],
  "excl" : [ "tmp*" ]
}
{code} 

name filter patterns should ideally be the same 
format as specified for JCR Node.getNodes/getProperties.

  was:
the following MicroKernel methods contain a 'filter' string parameter:

- getJournal
- diff
- getNodes

through the filter an API client could e.g. specify:

- special 'meta' properties to be included (e.g. ":hash")
- glob patterns on the names of properties/child nodes to be included/excluded
- path filter (for getJournal and diff)

format/detailed semantics TBD, here's an initial proposal (json):

<pre>
{
  "path" : "/some/path",
  "incl" : [ ":hash", "*" ],
  "excl" : [ "tmp*" ]
}
</pre>

name filter patterns should ideally be the same 
format as specified for JCR Node.getNodes/getProperties.

    
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Michael Dürig (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13268411#comment-13268411 ] 

Michael Dürig commented on OAK-75:
----------------------------------

bq. should we allow for node name filtering as well?
Would make sense since there are corresponding getNodes() call on the JCR API. Having to filter on top of the Microkernel might be very expensive for large node lists. 

bq. if yes, do we need to specify separate filters for properties and node names?
I think it is sufficient to apply the filter to either of them. So we'd need a way to specify whether the filter should apply to the nodes or the properties.
                
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>         Attachments: OAK-83.patch
>
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

[jira] [Commented] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13267469#comment-13267469 ] 

Stefan Guggisberg commented on OAK-75:
--------------------------------------

> For the one getNodes method, the path is a parameter and could be set in the filter as well. Could that lead to confusion?

my intention was to specify the 'path' filter on getJournal() and diff() only.

> I noticed getJournal supports a filter, but the related getRevisionHistory not yet. Would it make sense to add the filter to getRevisionHistory as well?

the original idea was to support 'filtering' the 'tree data' (either json or diff) returned by getJournal, diff and getNodes. since getRevisionHistory doesn't return tree data i didn't add a filter parameter. 

> If we support path filtering in getJournal (I hope we do), should we support it in waitForCommit and getHeadRevision as well?

same rationale as for not supporting filters on getRevisionHistory.

but i see your point. i didn't consider supporting path-based filtering on waitForCommit and getHeadRevision. i wanted to keep the proposal simple and i am afraid that it will add considerable complexity to the API semantics. 

OTOH if there's a real use case in oak-core for such a functionality which justifies the added complexity of the MK API i am open to extending the current API. 
                
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Thomas Mueller (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13269429#comment-13269429 ] 

Thomas Mueller commented on OAK-75:
-----------------------------------

+1 for the patch!

> node name filtering ... large node lists

Sounds good to me. Even if we wouldn't currently specify node name filters, it still would make sense to rename the property name filters, from "excl" to "exclProperties" / from "incl" to "inclProperties" or something like this (I mean make it clear that those are property name filters). In that way node name filters could be added later on without the filter names becoming ambiguous.
                
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>         Attachments: OAK-83.patch
>
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stefan Guggisberg resolved OAK-75.
----------------------------------

       Resolution: Fixed
    Fix Version/s: 0.3

fixed in svn r1342796
                
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>            Assignee: Stefan Guggisberg
>             Fix For: 0.3
>
>         Attachments: OAK-83.patch
>
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Comment Edited] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13281630#comment-13281630 ] 

Stefan Guggisberg edited comment on OAK-75 at 5/23/12 2:40 PM:
---------------------------------------------------------------

{noformat} 
added initial support for glob-based getNodes filter in svn r1341873.

the format is as suggested by michael. however, since \ (backslash) needs to be escaped in json (leading to pretty awkward java strings such as e.g. "{nodes:[\"foo\\\\*\"]}"}) i've chosen to require the literal * to be escaped instead of the wildcard. 

Glob Syntax: 

a nodes or properties filter consists of one or more globs. 
a glob prefixed by - (dash) is treated as an exclusion pattern; all others are considered inclusion patterns. 
a leading - (dash) must be escaped by prepending \ (backslash) if it should be interpreted as a literal. 
* (asterisk) serves as a wildcard, i.e. it matches any substring in the target name. 
* (asterisk) occurrences within the glob to be interpreted as literals must be escaped by prepending \ (backslash). 
a filter matches a target name if any of the inclusion patterns match but none of the exclusion patterns. 

                
      was (Author: stefan@jira):
    added initial support for glob-based getNodes filter in svn r1341873.

the format is as suggested by michael. however, since {noformat}\{noformat} (backslash) needs to be escaped in json (leading to pretty awkward java strings such as e.g. {noformat}"{nodes:[\"foo\\\\*\"]}"}{noformat}) i've chosen to require the literal * to be escaped instead of the wildcard. 

{noformat} 
Glob Syntax: 

a nodes or properties filter consists of one or more globs. 
a glob prefixed by - (dash) is treated as an exclusion pattern; all others are considered inclusion patterns. 
a leading - (dash) must be escaped by prepending \ (backslash) if it should be interpreted as a literal. 
* (asterisk) serves as a wildcard, i.e. it matches any substring in the target name. 
* (asterisk) occurrences within the glob to be interpreted as literals must be escaped by prepending \ (backslash). 
a filter matches a target name if any of the inclusion patterns match but none of the exclusion patterns. 
{noformat} 
                  
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>         Attachments: OAK-83.patch
>
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Comment Edited] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13281630#comment-13281630 ] 

Stefan Guggisberg edited comment on OAK-75 at 5/23/12 2:43 PM:
---------------------------------------------------------------

{noformat} 
added initial support for glob-based getNodes filter 
in svn r1341873.

the format is as suggested by michael. however, since \ (backslash) 
needs to be escaped in json (leading to pretty awkward java strings 
such as e.g. "{nodes:[\"foo\\\\*\"]}"}) i've chosen to require the 
literal * to be escaped instead of the wildcard. 

Glob Syntax: 

a nodes or properties filter consists of one or more globs. 
a glob prefixed by - (dash) is treated as an exclusion pattern; 
all others are considered inclusion patterns. 
a leading - (dash) must be escaped by prepending \ (backslash) 
if it should be interpreted as a literal. 
* (asterisk) serves as a wildcard, i.e. it matches any substring 
in the target name. 
* (asterisk) occurrences within the glob to be interpreted as literals 
must be escaped by prepending \ (backslash). 
a filter matches a target name if any of the inclusion patterns match 
but none of the exclusion patterns. 
{noformat} 
                
      was (Author: stefan@jira):
    {noformat} 
added initial support for glob-based getNodes filter in svn r1341873.

the format is as suggested by michael. however, since \ (backslash) needs to be escaped in json (leading to pretty awkward java strings such as e.g. "{nodes:[\"foo\\\\*\"]}"}) i've chosen to require the literal * to be escaped instead of the wildcard. 

Glob Syntax: 

a nodes or properties filter consists of one or more globs. 
a glob prefixed by - (dash) is treated as an exclusion pattern; all others are considered inclusion patterns. 
a leading - (dash) must be escaped by prepending \ (backslash) if it should be interpreted as a literal. 
* (asterisk) serves as a wildcard, i.e. it matches any substring in the target name. 
* (asterisk) occurrences within the glob to be interpreted as literals must be escaped by prepending \ (backslash). 
a filter matches a target name if any of the inclusion patterns match but none of the exclusion patterns. 
{noformat} 
                  
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>         Attachments: OAK-83.patch
>
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13281630#comment-13281630 ] 

Stefan Guggisberg commented on OAK-75:
--------------------------------------

added initial support for glob-based getNodes filter in svn r1341873.

the format is as suggested by michael. however, since {{{\}}} (backslash) needs to be escaped in json (leading to pretty awkward java strings such as e.g. {{{"{nodes:[\"foo\\\\*\"]}"}}}) i've chosen to require the literal * to be escaped instead of the wildcard. 

{{{ 
Glob Syntax: 

a nodes or properties filter consists of one or more globs. 
a glob prefixed by - (dash) is treated as an exclusion pattern; all others are considered inclusion patterns. 
a leading - (dash) must be escaped by prepending \ (backslash) if it should be interpreted as a literal. 
* (asterisk) serves as a wildcard, i.e. it matches any substring in the target name. 
* (asterisk) occurrences within the glob to be interpreted as literals must be escaped by prepending \ (backslash). 
a filter matches a target name if any of the inclusion patterns match but none of the exclusion patterns. 
}}}
                
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>         Attachments: OAK-83.patch
>
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Issue Comment Edited] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Thomas Mueller (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13269437#comment-13269437 ] 

Thomas Mueller edited comment on OAK-75 at 5/7/12 7:53 AM:
-----------------------------------------------------------

> globbing syntax for filter needs to be specified. '*' is a legal name character...

I would probably use the backslash as an escape character, and only support '*' at the moment. So if you want to filter for the name "size 2*2" then the filter would need to be "size 2 backslash *2" (and within Java, the string literal would be "size 2 backslash backslash *2").

(backslash is an escape character for Jira comments as well, it seems)
                
      was (Author: tmueller):
    > globbing syntax for filter needs to be specified. '*' is a legal name character...

I would probably use the backslash as an escape character, and only support '*' at the moment. So if you want to filter for the name "size 2*2" then the filter would need to be "size 2\*2" (and within Java, the string literal would be "size 2\\*2").
                  
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>         Attachments: OAK-83.patch
>
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Comment Edited] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13281630#comment-13281630 ] 

Stefan Guggisberg edited comment on OAK-75 at 5/23/12 2:38 PM:
---------------------------------------------------------------

added initial support for glob-based getNodes filter in svn r1341873.

the format is as suggested by michael. however, since {noformat}\{noformat} (backslash) needs to be escaped in json (leading to pretty awkward java strings such as e.g. {noformat}"{nodes:[\"foo\\\\*\"]}"}{noformat}) i've chosen to require the literal * to be escaped instead of the wildcard. 

{noformat} 
Glob Syntax: 

a nodes or properties filter consists of one or more globs. 
a glob prefixed by - (dash) is treated as an exclusion pattern; all others are considered inclusion patterns. 
a leading - (dash) must be escaped by prepending \ (backslash) if it should be interpreted as a literal. 
* (asterisk) serves as a wildcard, i.e. it matches any substring in the target name. 
* (asterisk) occurrences within the glob to be interpreted as literals must be escaped by prepending \ (backslash). 
a filter matches a target name if any of the inclusion patterns match but none of the exclusion patterns. 
{noformat} 
                
      was (Author: stefan@jira):
    added initial support for glob-based getNodes filter in svn r1341873.

the format is as suggested by michael. however, since {{{\}}} (backslash) needs to be escaped in json (leading to pretty awkward java strings such as e.g. {{{"{nodes:[\"foo\\\\*\"]}"}}}) i've chosen to require the literal * to be escaped instead of the wildcard. 

{{{ 
Glob Syntax: 

a nodes or properties filter consists of one or more globs. 
a glob prefixed by - (dash) is treated as an exclusion pattern; all others are considered inclusion patterns. 
a leading - (dash) must be escaped by prepending \ (backslash) if it should be interpreted as a literal. 
* (asterisk) serves as a wildcard, i.e. it matches any substring in the target name. 
* (asterisk) occurrences within the glob to be interpreted as literals must be escaped by prepending \ (backslash). 
a filter matches a target name if any of the inclusion patterns match but none of the exclusion patterns. 
}}}
                  
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>         Attachments: OAK-83.patch
>
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stefan Guggisberg updated OAK-75:
---------------------------------

    Attachment: OAK-83.patch

proposed MicroKernel API change/clarification
                
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>         Attachments: OAK-83.patch
>
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Thomas Mueller (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13267487#comment-13267487 ] 

Thomas Mueller commented on OAK-75:
-----------------------------------

> my intention was to specify the 'path' filter on getJournal() and diff() only.

Yes, makes sense.

> since getRevisionHistory doesn't return tree data i didn't add a filter parameter.

For a virtual repository implementation, I think it would make sense to filter the revision history by path as well. Otherwise the virtual repository implementation would have to read from all bound repositories each time the method is called, and not just those repositories that match the filter. It somewhat limits scalability if there is no filter.

> i wanted to keep the proposal simple

Simple is good :-)

> i am afraid that it will add considerable complexity to the API semantics

Would that also be the case if we only add the (path-) filter at getRevisionHistory, and keep waitForCommit and getHeadRevision as they are now?

                
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stefan Guggisberg updated OAK-75:
---------------------------------

    Description: 
the following MicroKernel methods contain a 'filter' string parameter:

- getJournal
- diff
- getNodes

through the filter an API client could e.g. specify:

- special 'meta' properties to be included (e.g. ":hash")
- glob patterns on the names of properties/child nodes to be included/excluded
- path filter (for getJournal and diff)

format/detailed semantics TBD, here's an initial proposal (json):

<pre>
{
  "path" : "/some/path",
  "incl" : [ ":hash", "*" ],
  "excl" : [ "tmp*" ]
}
</pre>

name filter patterns should ideally be the same 
format as specified for JCR Node.getNodes/getProperties.

  was:
the following MicroKernel methods contain a 'filter' string parameter:

- getJournal
- diff
- getNodes

through the filter an API client could e.g. specify:

- special 'meta' properties to be included (e.g. ":hash")
- glob patterns on the names of properties/child nodes to be included/excluded
- path filter (for getJournal and diff)

format/detailed semantics TBD, here's an initial proposal (json):

{
  "path" : "/some/path",
  "incl" : [ ":hash", "*" ],
  "excl" : [ "tmp*" ]
}

name filter patterns should ideally be the same 
format as specified for JCR Node.getNodes/getProperties.

    
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> <pre>
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> </pre>
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13268385#comment-13268385 ] 

Stefan Guggisberg commented on OAK-75:
--------------------------------------

> Would that also be the case if we only add the (path-) filter at getRevisionHistory, and keep waitForCommit and getHeadRevision as they are now?

i've attached a new proposal (see OAK-83.patch): 

- changed the 'filter' parameter on getJournal and diff to 'path'
- added a 'path' parameter to getRevisionHistory
- getNodes is the only method providing a 'filter' parameter

open questions: 

- globbing syntax for filter needs to be specified. '*' is legal name character...
- should we allow for node name filtering as well?
- if yes, do we need to specify separate filters for properties and node names?   
- the implicit default filter needs to specified (e.g. { incl: [ "*", ":childNodeCount" ], excl: [ ":hash" ] }
                
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>         Attachments: OAK-83.patch
>
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Thomas Mueller (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13269437#comment-13269437 ] 

Thomas Mueller commented on OAK-75:
-----------------------------------

> globbing syntax for filter needs to be specified. '*' is a legal name character...

I would probably use the backslash as an escape character, and only support '*' at the moment. So if you want to filter for the name "size 2*2" then the filter would need to be "size 2\*2" (and within Java, the string literal would be "size 2\\*2").
                
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>         Attachments: OAK-83.patch
>
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Thomas Mueller (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13264737#comment-13264737 ] 

Thomas Mueller commented on OAK-75:
-----------------------------------

About "path": for many methods, the path is a parameter (commit, getChildNodeCount, getNodes, nodeExists). For others methods, I guess it will be specified in the filter (diff, getJournal). For the one getNodes method, the path is a parameter and could be set in the filter as well. Could that lead to confusion?

I noticed getJournal supports a filter, but the related getRevisionHistory not yet. Would it make sense to add the filter to getRevisionHistory as well?

If we support path filtering in getJournal (I hope we do), should we support it in waitForCommit and getHeadRevision as well?
                
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Issue Comment Edited] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13268385#comment-13268385 ] 

Stefan Guggisberg edited comment on OAK-75 at 5/4/12 2:05 PM:
--------------------------------------------------------------

> Would that also be the case if we only add the (path-) filter at getRevisionHistory, and keep waitForCommit and getHeadRevision as they are now?

i've attached a new proposal (see OAK-75.patch): 

- changed the 'filter' parameter on getJournal and diff to 'path'
- added a 'path' parameter to getRevisionHistory
- getNodes is the only method providing a 'filter' parameter

open questions: 

- globbing syntax for filter needs to be specified. '*' is a legal name character...
- should we allow for node name filtering as well?
- if yes, do we need to specify separate filters for properties and node names?   
- the implicit default filter needs to specified (e.g. { incl: [ "*", ":childNodeCount" ], excl: [ ":hash" ] }
                
      was (Author: stefan@jira):
    > Would that also be the case if we only add the (path-) filter at getRevisionHistory, and keep waitForCommit and getHeadRevision as they are now?

i've attached a new proposal (see OAK-83.patch): 

- changed the 'filter' parameter on getJournal and diff to 'path'
- added a 'path' parameter to getRevisionHistory
- getNodes is the only method providing a 'filter' parameter

open questions: 

- globbing syntax for filter needs to be specified. '*' is legal name character...
- should we allow for node name filtering as well?
- if yes, do we need to specify separate filters for properties and node names?   
- the implicit default filter needs to specified (e.g. { incl: [ "*", ":childNodeCount" ], excl: [ ":hash" ] }
                  
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>         Attachments: OAK-83.patch
>
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Comment Edited] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13281630#comment-13281630 ] 

Stefan Guggisberg edited comment on OAK-75 at 5/23/12 2:41 PM:
---------------------------------------------------------------

{noformat} 
added initial support for glob-based getNodes filter in svn r1341873.

the format is as suggested by michael. however, since \ (backslash) needs to be escaped in json (leading to pretty awkward java strings such as e.g. "{nodes:[\"foo\\\\*\"]}"}) i've chosen to require the literal * to be escaped instead of the wildcard. 

Glob Syntax: 

a nodes or properties filter consists of one or more globs. 
a glob prefixed by - (dash) is treated as an exclusion pattern; all others are considered inclusion patterns. 
a leading - (dash) must be escaped by prepending \ (backslash) if it should be interpreted as a literal. 
* (asterisk) serves as a wildcard, i.e. it matches any substring in the target name. 
* (asterisk) occurrences within the glob to be interpreted as literals must be escaped by prepending \ (backslash). 
a filter matches a target name if any of the inclusion patterns match but none of the exclusion patterns. 
{noformat} 
                
      was (Author: stefan@jira):
    {noformat} 
added initial support for glob-based getNodes filter in svn r1341873.

the format is as suggested by michael. however, since \ (backslash) needs to be escaped in json (leading to pretty awkward java strings such as e.g. "{nodes:[\"foo\\\\*\"]}"}) i've chosen to require the literal * to be escaped instead of the wildcard. 

Glob Syntax: 

a nodes or properties filter consists of one or more globs. 
a glob prefixed by - (dash) is treated as an exclusion pattern; all others are considered inclusion patterns. 
a leading - (dash) must be escaped by prepending \ (backslash) if it should be interpreted as a literal. 
* (asterisk) serves as a wildcard, i.e. it matches any substring in the target name. 
* (asterisk) occurrences within the glob to be interpreted as literals must be escaped by prepending \ (backslash). 
a filter matches a target name if any of the inclusion patterns match but none of the exclusion patterns. 

                  
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>         Attachments: OAK-83.patch
>
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Assigned] (OAK-75) specify format and semantics of 'filter' parameter in MicroKernel API

Posted by "Stefan Guggisberg (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OAK-75?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stefan Guggisberg reassigned OAK-75:
------------------------------------

    Assignee: Stefan Guggisberg
    
> specify format and semantics of 'filter' parameter in MicroKernel API
> ---------------------------------------------------------------------
>
>                 Key: OAK-75
>                 URL: https://issues.apache.org/jira/browse/OAK-75
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: mk
>            Reporter: Stefan Guggisberg
>            Assignee: Stefan Guggisberg
>         Attachments: OAK-83.patch
>
>
> the following MicroKernel methods contain a 'filter' string parameter:
> - getJournal
> - diff
> - getNodes
> through the filter an API client could e.g. specify:
> - special 'meta' properties to be included (e.g. ":hash")
> - glob patterns on the names of properties/child nodes to be included/excluded
> - path filter (for getJournal and diff)
> format/detailed semantics TBD, here's an initial proposal (json):
> {code} 
> {
>   "path" : "/some/path",
>   "incl" : [ ":hash", "*" ],
>   "excl" : [ "tmp*" ]
> }
> {code} 
> name filter patterns should ideally be the same 
> format as specified for JCR Node.getNodes/getProperties.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira