Hi,

Having it as an operation gives us the power to create nodes on paths that 
don't exist yet.

1) This is not so easy. 
If you would post a node with jcr:resourceType = nt:file you would also have to 
specify an nt:resource childnode that contains the data, date, mimetype, ... 
that should be set.
I guess this could be done by passing a string to jcr:data...
But it would get convoluted pretty fast (imho)
2) AFAICT mixins should be possible.
3) This could be done by providing an extra parameter? So the resource where 
you are posting to would
get versioned. 

WDYT ?

Simon

On 10 Feb 2010, at 23:20, Andreas Schaefer wrote:

> From my limited understanding it should also be possible when CREATING nodes 
> to support these:
> 
> 1) set the primary node type when creating a node
> 2) add mixins (or would that be expected to be done through the node type 
> definitions ?)
> 3) support versionable (checking out / in a versioned node while making 
> changes to it including children)
> 
> Cheers - Andy
> 
> On Feb 10, 2010, at 7:05 AM, Simon Gaeremynck wrote:
> 
>> Hi,
>> 
>> I just tried a GET, feed it to the operation and it works pretty well.
>> However, as it is now it will ignore all properties which names start with 
>> 'jcr:'.
>> It's probably better to take the same approach as in the JsonReader and have 
>> a set
>> of ignored names instead of ignoring everything. (uuid, primaryType, 
>> created, ...)
>> 
>> For the naming part:
>> We could also do something like this
>> :operation=tree
>> and then depending wether you're sending XML, json, ..
>> :json=..
>> or
>> :xml=..
>> 
>> This way we can keep it all in 1 operation. 
>> 
>> For the above 2 reasons, re-using the code from contentloader would be a big 
>> bonus (imho).
>> 
>> Simon
>> 
>> On 10 Feb 2010, at 14:46, Felix Meschberger wrote:
>> 
>>> Hi,
>>> 
>>> On 10.02.2010 15:36, Simon Gaeremynck wrote:
>>>> I'm not really sure what you mean by roundtripping to the JsonGetServlet?
>>> 
>>> By round tripping I mean that I can feed the result of a GET to
>>> /some/node.json to the :tree operation and (given a clean state) get the
>>> same content structure.
>>> 
>>> And vice versa: POST:tree to /some/node.json and then GET
>>> /some/node.json returns an equivalent JSON.
>>> 
>>> 
>>>> 
>>>> Initial patch at [1].
>>> 
>>> Patch looks good, with one remark: Since this is json only (right now)
>>> how about using that as the name:
>>> 
>>> operation=json
>>> :json=...json-data...
>>> 
>>> WDYT ?
>>> 
>>> Regards
>>> Felix
>>> 
>>>> 
>>>> Basicly what this does is:
>>>> - A SlingPostOperation with the operation :tree.
>>>> - Grab a string from the request parameter ':tree'
>>>> - Try to convert it to a JSONObject
>>>> - Walk over the JSONObject and create the nodes/properties in JCR as it 
>>>> goes along.
>>>> - Save the session.
>>>> 
>>>> 
>>>> This doesn't use the ContentLoader service (yet) because AFAICT that is 
>>>> all internal and 
>>>> seems to be aimed primarily for loading bundle resources. (Haven't had a 
>>>> close look though)
>>>> However, it would be good if this operation would use the JsonReader 
>>>> provided by the contentloader
>>>> as that would remove code duplication and the JsonReader already has 
>>>> proper test coverage.
>>>> 
>>>> Simon
>>>> 
>>>> [1] http://codereview.appspot.com/207057/show
>>>> 
>>>> 
>>>> On 10 Feb 2010, at 11:54, Felix Meschberger wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> Sounds great and the class looks good. I assume this provides
>>>>> round-tripping to the JsonGetServlet.
>>>>> 
>>>>> So, if Simon would be contributing this, it would be nice.
>>>>> 
>>>>> Regards
>>>>> Felix
>>>>> 
>>>>> On 10.02.2010 00:46, Ian Boston wrote:
>>>>>> 
>>>>>> Simon who works with me wrote this, but it takes a post of json in the
>>>>>> parameter tree as a modification to a sub tree.
>>>>>> 
>>>>>> Our ui developers love it. They can convert many post operations into
>>>>>> one post.
>>>>>> 
>>>>>> If of use, I'll ask Simon to submit as a patch on the jira.
>>>>>> Ian
>>>>>> 
>>>>>> http://github.com/ieb/open-experiments/blob/master/slingtests/osgikernel/bundles/batch/src/main/java/org/sakaiproject/nakamura/batch/CreateTreeOperation.java
>>>>>> 
>>>>>> 
>>>>>> Sent from my iPhone
>>>>>> 
>>>>>> On 9 Feb 2010, at 23:28, Andreas Schaefer <schaef...@me.com> wrote:
>>>>>> 
>>>>>>> I am currently working on a project where we might use Sling. In order
>>>>>>> to evaluate this I created my own Sling servlet in order to take JSon
>>>>>>> and create / merge (hibernate lingo) data.
>>>>>>> 
>>>>>>> Therefore I would love to have a way to upload JSon and would be
>>>>>>> willing to lend a hand getting this off the ground.
>>>>>>> 
>>>>>>> Cheers - Andy
>>>>>>> 
>>>>>>> On Feb 9, 2010, at 3:02 PM, Ian Boston wrote:
>>>>>>> 
>>>>>>>> We have implented something like this already, happy to share if of
>>>>>>>> interest.
>>>>>>>> 
>>>>>>>> Ian
>>>>>>>> 
>>>>>>>> Sent from my iPhone
>>>>>>>> 
>>>>>>>> On 9 Feb 2010, at 18:45, "Felix Meschberger (JIRA)" <j...@apache.org>
>>>>>>>> wrote:
>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> [
>>>>>>>>> https://issues.apache.org/jira/browse/SLING-1172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12831583#action_12831583
>>>>>>>>>  ]
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Felix Meschberger commented on SLING-1172:
>>>>>>>>> ------------------------------------------
>>>>>>>>> 
>>>>>>>>> Sounds like a good idea.
>>>>>>>>> 
>>>>>>>>> For JSON I am pretty sure round-tripping works alright.
>>>>>>>>> 
>>>>>>>>> As for XML, things are probably different, because we have our own
>>>>>>>>> XML format for the loader, which is neither JCR document view nor
>>>>>>>>> JCR system view.
>>>>>>>>> 
>>>>>>>>>> Allow uploading JSON files to create content structures
>>>>>>>>>> -------------------------------------------------------
>>>>>>>>>> 
>>>>>>>>>>          Key: SLING-1172
>>>>>>>>>>          URL: https://issues.apache.org/jira/browse/SLING-1172
>>>>>>>>>>      Project: Sling
>>>>>>>>>>   Issue Type: New Feature
>>>>>>>>>>   Components: Servlets
>>>>>>>>>> Affects Versions: Servlets Post 2.0.4
>>>>>>>>>>     Reporter: Felix Meschberger
>>>>>>>>>>      Fix For: Servlets Post 2.0.6
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> Currently uploading a JSON file will just create the file node.
>>>>>>>>>> On the other hand it would be useful if uploading to a node with a
>>>>>>>>>> request extension of JSON, the JSON would be unpacked and handled
>>>>>>>>>> as if it would be a modification request with the JSON data being
>>>>>>>>>> the content to store.
>>>>>>>>>> This would be similar to JSON upload supported by CouchDB.
>>>>>>>>> 
>>>>>>>>> -- 
>>>>>>>>> This message is automatically generated by JIRA.
>>>>>>>>> -
>>>>>>>>> You can reply to this email to add a comment to the issue online.
>>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>> 
>>>> 
>> 
> 

Reply via email to