Hi Eduard,

Thanks a lot for prompt instruction.

I forgot to sync the screenshot to the server. Now it is the correct one.

Regarding the pluggable solution for both xml-rpc and rest, I will try 
to devise a common storage API for both of them.

For example,
public Object getPage(String pageId)
public List<Object> getPages(String spaceKey)

They will return
1. xmlrpc.model.PageSummary if connecting via xmlrpc or
2. rest.jaxb.model.Page if connecting via rest.

If this is the way to go, I will look more into how to implement this. 
Adapter pattern may be used.

Best regards

Jun Han

On 06/10/2011 12:08 PM, Eduard Moraru wrote:
> Hi Jun,
>
> On 06/10/2011 05:26 PM, Jun Han wrote:
>> Hi, Eduard and Fabio,
>>
>> I finished part of the navigation panel, which shows the connection,
>> wiki, space.
>> Please see the screenshot at
>> http://dl.dropbox.com/u/3466762/xwiki/Screenshot-navigationPanel.png
> I think you pasted the wrong screenshot. We`ve already seen this one and
> I think it's from an early stage of development.
>> Adding pages under space is straightforward too, however, it requires
>> re-factor a lot of source code, which spreads in the plugin of
>> xwiki.eclipse.ui and xwiki.eclipse.core.
>>
>> I will continue work on displaying more XWiki resources after I finish
>> re-factoring the properties editor, action provider (context menu), and
>> other dialog windows related to connection, wiki, space.
> It should not take that much of a refactoring on the UI part, since the
> heavy lifting is done in the core.
>
> What I actually wanted to tell you is that you should take the
> refactoring in a modular direction and consider your work as a
> contribution and alternative for the existing system and not only as a
> replacement. I you can`t do it as a contribution, consider adding a
> mechanism that allows you to do so (see our first discussions on
> integrating the rest back-end). Keep the abstraction layer (interfaces,
> model, etc) as the main think the ui and even core components
> communicate with and keep the implementation of that abstraction layer
> pluggable (xml-rpc, rest, etc). The UI must also be aware of this and
> act accordingly.
>
> We don`t want to do the same replacement work if, for whatever reason,
> we want to switch to a different back-end in the future. So keep that in
> mind at all time during GSoC.
>
> Besides that, keep up the good work ;)
>
> Thanks,
> Eduard
>> Best regards
>> Jun Han
>>
>> On 06/09/2011 07:26 PM, Eduard Moraru wrote:
>>> Hi Jun,
>>>
>>> On 06/09/2011 11:14 AM, Fabio Mancinelli wrote:
>>>> Hi Jun,
>>>>
>>>> I am not sure that syntaxes should appear as a child of connection. I
>>>> would show this information in the property panel of the connection.
>>> I think that you should make the "wikis" implicit as well and leave only
>>> the Connection Name as top root, just like in my previous proposal:
>>>
>>> Connection01
>>> - wiki1
>>> -- spaceA
>>> --- pageX
>>> - wiki2
>>> - etc.
>>>
>>> As Fabio pointed out, stuff like supported syntaxes and xwiki version
>>> should be displayed in the properties page of a connection.
>>>
>>> Also, you need to take care when the user enters the user name and
>>> password and consider the wiki for which it applies. User Admin on the
>>> main wiki (xwiki:XWiki.Admin) is not the same as user Admin on subwiki1
>>> (subwiki1:XWiki.Admin).
>>> I believe that, if you don`t enter the absolute user name
>>> (xwiki:XWiki.Admin) and you enter only the relative name (Admin), it
>>> will be resolved to the wiki of the resource you are trying to access.
>>> You should, at least internally, always use absolute user names.
>>>
>>> Thanks,
>>> Eduard
>>>> Thanks,
>>>> Fabio
>>>>
>>>> On Wed, Jun 8, 2011 at 10:26 PM, Jun Han<[email protected]>     wrote:
>>>>> Hi Eduard and Fabio,
>>>>>
>>>>> Thanks a lot for your suggestions.
>>>>>
>>>>> I managed to create a top-level tree expansion when user requests the
>>>>> entry point of REST API: localhost:8080/xwiki/rest.
>>>>>
>>>>> A screenshot is available at:
>>>>> http://dl.dropbox.com/u/3466762/xwiki/Screenshot-navigationPanel.png
>>>>>
>>>>> Now the labels display the whole<href>     attribute, I plan to "syntaxes"
>>>>> and "wikis" later on.
>>>>> When user clicks the "wikis", the navigation tree will continue to
>>>>> expand to show all the sub-wiki names.
>>>>>
>>>>> It took me a while to figure out the configuration of tree content
>>>>> provider, tree viewer and label provider, which is a little different
>>>>> with what I did in Eclipse SWT development. As this has been sorted out,
>>>>> I would pick up the pace.
>>>>>
>>>>> Best regards
>>>>> Jun Han
>>>>>
>>>>> On 06/07/2011 10:37 AM, Eduard Moraru wrote:
>>>>>> Hi Jun,
>>>>>>
>>>>>> On 06/07/2011 02:05 PM, Fabio Mancinelli wrote:
>>>>>>> Hi Jun,
>>>>>>>
>>>>>>> the REST api also takes into account Wikis, so you should take into
>>>>>>> account this into the plugin.
>>>>>> Also, I think that we need to display the other resources (like we do
>>>>>> now), but maybe we should improve that too.
>>>>>>
>>>>>> I`d suggest that we group objects by class name, something like:
>>>>>>
>>>>>> xwiki.org       (wiki/farm/connection name, given by the user)
>>>>>> -- xwiki          (main/sub wiki name)
>>>>>> ---- Main
>>>>>> ------ WebHome
>>>>>> -------- XWiki.XWikiComments
>>>>>> ---------- 0
>>>>>> ---------- 1
>>>>>> ---------- 2
>>>>>> -------- XWiki.MyClass
>>>>>> ---------- 0
>>>>>> ---------- 1
>>>>>> etc.
>>>>>>
>>>>>> 0, 1, 2 above are object numbers, but, in the future, they might change
>>>>>> to some other IDs.
>>>>>>
>>>>>> The advantage of such an ordering is that, highly used pages (that have
>>>>>> lots of comments, or lots of objects of specific classes) will allow
>>>>>> easier management of the objects.
>>>>>>
>>>>>> If a list of numbers looks too blank, you could have them print the
>>>>>> value of the first property it their class, just like XWiki`s object
>>>>>> editor does and you`d have something like:
>>>>>>
>>>>>> -------- XWiki.XWikiComments
>>>>>> ---------- 0 : Administrator         ('author' property value)
>>>>>> ---------- 1 : Guest
>>>>>> ---------- 2 : Administrator
>>>>>> -------- XWiki.MyClass
>>>>>> ---------- 0 : etc.
>>>>>> ---------- 1 : etc.
>>>>>> etc.
>>>>>>
>>>>>> I don`t know what's the status of Attachments (I don remember if we
>>>>>> display them or not), but we should have them as an 'implicit' first
>>>>>> class like:
>>>>>>
>>>>>> ------ WebHome
>>>>>> -------- Attachments
>>>>>> ---------- dog.png
>>>>>> ---------- spreadsheet.xls
>>>>>> -------- XWiki.XWikiComments
>>>>>> ---------- 0 : Administrator         ('author' property value)
>>>>>> ---------- 1 : Guest
>>>>>> ---------- 2 : Administrator
>>>>>> -------- XWiki.MyClass
>>>>>> ---------- 0 : etc.
>>>>>> ---------- 1 : etc.
>>>>>> etc.
>>>>>>
>>>>>> Anyway, the main idea is to expose as much as REST API allows. Check
>>>>>> again the API specs.
>>>>>>
>>>>>> You can get creative with the details on how to display/handle the new
>>>>>> stuff. :)
>>>>>>
>>>>>> Cheers,
>>>>>> Eduard
>>>>>>> -Fabio
>>>>>>>
>>>>>>> On Tue, Jun 7, 2011 at 7:35 AM, Jun Han<[email protected]>        
>>>>>>> wrote:
>>>>>>>> Hi Fabio,
>>>>>>>>
>>>>>>>> I have finished replacing xmlrpc implementation of login functionality
>>>>>>>> by sending http GET request to entry point
>>>>>>>> (http://localhost:8080/xwiki/rest/) along with username/password.
>>>>>>>>
>>>>>>>> A status code of 200 will be regarded as successful while 401 means
>>>>>>>> login fails.
>>>>>>>>
>>>>>>>> The source code have been updated in org.xwiki.eclipse.ui and
>>>>>>>> org.xwiki.eclipse.core plugins.
>>>>>>>>
>>>>>>>> I will begin working on xwiki navigatoin panel and replace xmlrpc code
>>>>>>>> accordingly.
>>>>>>>>
>>>>>>>> One question is what resources are to be included in navigation panel,
>>>>>>>> besides xwiki ->        space ->        pages? and how to display them?
>>>>>>>>
>>>>>>>> Best regards
>>>>>>>>
>>>>>>>> Jun Han
>>>>>>>>
>>>>>>>> On 06/05/2011 05:50 PM, Fabio Mancinelli wrote:
>>>>>>>>> Hi Jun,
>>>>>>>>>
>>>>>>>>> login/logout can be implemented in order to store on the client side
>>>>>>>>> user credentials that are sent with HTTP requests.
>>>>>>>>> Currently there is no way in the REST-api to get a "session token"
>>>>>>>>> (like the cookie sent after a login is made using the web form) so
>>>>>>>>> that subsequent requests are performed on the behalf of a previously
>>>>>>>>> authenticated user.
>>>>>>>>>
>>>>>>>>> So what is usually done is to send basic-auth credentials with each 
>>>>>>>>> request.
>>>>>>>>>
>>>>>>>>> You can start with this. Next you might try to retrieve the cookie by
>>>>>>>>> faking a standard login and using that cookie in subsequent requests.
>>>>>>>>>
>>>>>>>>> The ideal setting would be to implement server side some OAuth-like
>>>>>>>>> mechanism, but this is out of scope wrt your project.
>>>>>>>>>
>>>>>>>>> -Fabio
>>>>>>>>>
>>>>>>>>> On Sat, Jun 4, 2011 at 6:27 PM, Jun Han<[email protected]>          
>>>>>>>>> wrote:
>>>>>>>>>> Dear all,
>>>>>>>>>>
>>>>>>>>>> I am on the way of replacing the xmlrpc implementation of
>>>>>>>>>>              RemoteXWikiDataStorage implements IDataStorage {}.
>>>>>>>>>>
>>>>>>>>>> One question is about how to implement login and logout functionality
>>>>>>>>>> via REST API.
>>>>>>>>>>         From REST API document, users can be authenticated via 
>>>>>>>>>> something like:
>>>>>>>>>> 1. XWiki session
>>>>>>>>>> 2. HTTP Basic Auth.
>>>>>>>>>>
>>>>>>>>>> HTTP basic auth can be implemented via adding HTTP header to the HTTP
>>>>>>>>>> request, then XEclipse can display Xwiki Resources by parsing the 
>>>>>>>>>> response.
>>>>>>>>>>
>>>>>>>>>> Therefore, do we need to implement login and logout methods?
>>>>>>>>>>
>>>>>>>>>> Best regards
>>>>>>>>>> Jun Han
>>>>>>>>>> _______________________________________________
>>>>>>>>>> devs mailing list
>>>>>>>>>> [email protected]
>>>>>>>>>> http://lists.xwiki.org/mailman/listinfo/devs
>>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> devs mailing list
>>>>>>>>> [email protected]
>>>>>>>>> http://lists.xwiki.org/mailman/listinfo/devs
>>>>>>>> _______________________________________________
>>>>>>>> devs mailing list
>>>>>>>> [email protected]
>>>>>>>> http://lists.xwiki.org/mailman/listinfo/devs
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> devs mailing list
>>>>>>> [email protected]
>>>>>>> http://lists.xwiki.org/mailman/listinfo/devs
>>>>>> _______________________________________________
>>>>>> devs mailing list
>>>>>> [email protected]
>>>>>> http://lists.xwiki.org/mailman/listinfo/devs
>>>>> _______________________________________________
>>>>> devs mailing list
>>>>> [email protected]
>>>>> http://lists.xwiki.org/mailman/listinfo/devs
>>>>>
>>>> _______________________________________________
>>>> devs mailing list
>>>> [email protected]
>>>> http://lists.xwiki.org/mailman/listinfo/devs
>>> _______________________________________________
>>> devs mailing list
>>> [email protected]
>>> http://lists.xwiki.org/mailman/listinfo/devs
>> _______________________________________________
>> devs mailing list
>> [email protected]
>> http://lists.xwiki.org/mailman/listinfo/devs
>>
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to