On 8/7/07, Vincent Massol <vincent@massol.net> wrote:

On Aug 7, 2007, at 8:59 AM, Asiri Rathnayake wrote:

Hi Vincent,


[snip]

Also, we need some help regarding XEclipse off-line. We are struggling bit to find a place to start development. And one more question, do we need to complete the off-line operation mode within GSoC time period ? we're having trouble with academic work load.

I think you need to provide a simple offline feature which is the ability to:
- save pages locally (I recall there's an easy eclipse api for this)
- ability to choose what to download from the server: a page, a full space or a full wiki
- ability to check if the page isn't more recent on the server on save and if so warn the user and let him decide what to do: overwrite the server version or cancel
- ability to refresh one's own copy of saved pages  with the server's versions

I've been thinking about XEclipse off-line for a while and I can't see an easy way out. May be I'm not on the right  track, but i believe there is a plenty of work that need to be done in order to implement off-line operation of XEclipse.

This is the scheme I propose,

1. When the user creates a connection for the first time, we create a local cached file hierarchy that resembles the corresponding wiki site.

Are you suggesting that the full site is cached?

I'd suggest to cache only what the user wants when he clicks on some offline button (site, space, page) + cache whatever page he navigates to.

Since we give the user a chance to select which spaces he wish to work on, we can cache only those spaces. Also, as you said, we expand the cache only when user navigates through spaces and views documents.

When the user expands a space, we retrieve summaries for corresponding pages within that space (this is implemented), then we can create files for each page in the local cache with those summary details (so that we can build the navigation tree even on off-line mode).

If the user opens a particular document for editing, that document (complete version, not the summary) is retrieved from the server (implemented), and now we can update the cache with the full document.

If the user edits a document in on-line mode, changes will be made to cache as well as the server. Other than this, we must give a functionality so that the user can selectively force some documents be downloaded to cache (for off-line editing).

We'll have to use different icons to indicate the different states of documents (in cache) like,

* documents in summary form.

* documents in complete form.

* documents which are not in sync with server (dirty pages).

* documents which conflicts with server copy (?)

and more will come as we add other features (like permission issues)

This is what we have in mind, WDYT ?
2. When user make changes to pages, we update the local cache as well as the server.

This way, we can let the user operate in a "disconnected" mode without committing changes to the server copy, and once he wishes to do so, he can flush the local cache to the server (with some validity checks).

As it is obvious by now, the current implementation need to be changed a bit to accommodate for these requirements.

Yes I agree but you forgot some of the points I made, like first check if there's a change on the server before saving the document and if so asking the user what he wants to do, etc. + the ability to refresh one's cache with server versions and again warn if there's some more recent unsaved local changes.

Agreed, these issues have to addressed.

Thanks.

- Asiri & Tharindu
I don't know whether this is the only solution, but this is the way i saw it. Please let me know if you believe there is an easy way.

We're looking forward to start on XEclipse off-line asap, but need to finalize the approach upfront.

Yep, agreed.

Btw, are there any work left for M1 ?

I've just checked and there 4 issues opened in JIRA. Could you close the ones that have been done?
 
The biggest one now I think is the m2 build one.

Another one is to decide how we want to make the plugin available:
- through a JAR download in our maven remote repo - We need that I think
- through an Eclipse update site. I guess we could create such an update site in our m2 build and attach is as a zip file on the download page of xwiki.org. Anyway we could leave that as a task for later and start only with a released JAR file

One other issue that I've just added for 1.1M1 is the documentation. We need a minimal documentation on XEclipse for:
- installing
- using

See  http://jira.xwiki.org/jira/browse/XECLIPSE-20

I'm currently focusing on the 1.1M4 release for the coming 1-2 days but after that I'll work on the m2 build. 

I know we're late and mostly because of me... Sorry about that. I propose the following new release dates:

- 1.0M1: 14th of August
- 1.0M2: 10th of September (we have the 1.1 final release planned for the 3rd of September which is why I skipped that week)

I think this date of 10th of Sep should leave you enough time to implement the remaining features for 1.1M2, including the offline feature, WDYT?

Note: I'm also on holiday the week of the 20th.

Thanks
-Vincent

Basically this means everything except the hard part which is the synchronization.

Let me know if this is possible but I don't think this is too hard to do and it's important for such a tool I think.

Now I haven't reviewed what's left you have to do for 1.1M2 but that needs to be finished as a priority.

Let me know if you have any schedule issues with this and we'll try to find a solution. I'll work on the m2 build this coming week to help you.

Thanks
-Vincent

On 8/4/07, Vincent Massol < vincent@massol.net> wrote:
Hi Tharindu,

I've tried adding both of you but your ids don't exist on forge.objectweb.org...

I've committed  xeclipse into xwiki-sandbox but you don't have write access yet as I couldn't add you...

Thanks
-Vincent

On Aug 3, 2007, at 5:56 PM, tharindu jayasuriya wrote:

Hi Vincent,

On 8/3/07, Vincent Massol <vincent@massol.net > wrote:
Hi Tharindu/Asiri,

I have reviewed the patch and it looks good. Only potential issue is the package name you've used: org.xwiki.plugins. So far we've used com.xpn.xwiki.*. However you're correct that we want to move to org.xwiki. That said we need to decide if we want to do the move right now for the Eclipse extension. I think it's a good idea to do so and the strategy would be that any new extension/plugin or any component in the new architecture should be located in the org.xwiki package. What do others think?

I'm going to commit it to xwiki-sandbox for now (till we have a maven2 build for it, then I'll move it to xwiki-extensions/eclipse) and we have already voted to give you access to it.

Thanks a lot. We were thinking about moving into implementing the off-line operations asap, i think we need to take few design decisions upfront regarding off-line operations (mainly issues regarding synchronization). I'll make a post once we have thought about an initial idea so that we can optimize it on the dev list.

I'll just need your ObjectWeb user id to give you write access.

Tharindu - tharindujayasuriya
 
Asiri - asiri

Thanks.

- Tharindu & Asiri


Thanks
-Vincent

On Jul 31, 2007, at 2:45 PM, Vincent Massol wrote:

Hi Tharindu,

I'll review this latest patch later today or tomorrow.

Thanks
-Vincent

On Jul 28, 2007, at 7:32 PM, tharindu jayasuriya wrote:

Hi All,

Attached are the latest sources and binaries of XEclipse m1.

Issues Fixed,

1. All Jigloo dependencies removed.

2. Code documentation improved according to instructions from Vincent.

3. Back-End XML RPC's patched to suite XEclipse (Asiri)

http://jira.xwiki.org/jira/browse/XWIKI-1520

http://jira.xwiki.org/jira/browse/XWIKI-1521

http://jira.xwiki.org/jira/browse/XWIKI-1524

Let's hope this would finalize XEclipse m1 ... :)

Hoping to hear from you soon...

Thanks.

- Tharindu & Asiri

On 7/16/07, Vincent Massol < vincent@massol.net > wrote:
Hi Tharindu,

I have done a first pass on the code review and I have a few comments:

1) You seem to have use Cloudgarden's Jigloo and unfortunately the license isn't good enough for us so we cannot use it... Here's what it says in the generated file:

/**
* This code was edited or generated using CloudGarden's Jigloo SWT/Swing GUI Builder, which is free
* for non-commercial use. If Jigloo is being used commercially (ie, by a corporation, company or
* business for any purpose whatever) then you should purchase a license for each developer using
* Jigloo. Please visit www.cloudgarden.com for details. Use of Jigloo implies acceptance of these
* licensing terms. A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR THIS MACHINE, SO JIGLOO OR THIS
* CODE CANNOT BE USED LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/

We cannot use Jigloo because we want commercial companies using XWiki under the LGPL license. Thus we cannot commit this code.

Could you find some alternative? The UI doesn't seem too complex so I should be easy to do it by hand I think.

2) Thanks for your javadoc. It's nice and helps a lot. However it can be improved, especially for Classes. This is the most important Javadoc and should answer the question "what is the class for?". 

Also please see:

Parameters and return value shouldn't start with "-" in javadoc. See the Sun's Javadoc coding conventions.

3) Please add copyright to all classes and don't use the @author tag. Instead we'll add Asiri and yourself to the Hall of Fame + in the SVN commits.

The rest sounds good. We need to add maven build of course. I'll start looking into that after we fix the points above.

Also, I haven't coded plugins in Eclipse for a very very long time so I have no idea if what you've done is the right way of doing it so I'll assume it is :-)

Thanks again and keep up the good work! 
-Vincent

On Jul 15, 2007, at 10:04 AM, tharindu jayasuriya wrote:

Hi all,

This is about r.1.0.m1 version of xeclipse (XWiki-Eclipse-Plugin).

We have completed following tasks in this release,

1. Cleaned up source code ( need to be confirmed by Vincent )

2. Implemented adding/deleting pages.

    - Adding pages does not seem to work correctly due to some errors in XML-RPC implementation of XWiki, need to look into this.
    - Removing pages does not work at all because the corresponding XML-RPC is not implemented in XWiki.

3. Implemented adding/deleting spaces.

   - Adding spaces work fine.
   - Deleting spaces does not work (RPC not implemented in XWiki)

As it's obvious by now, we need to peek into XWiki internals to get these issues fixed. But since we have a scheduled release today (and these issues showed up all of a sudden), we thought of finishing the work from the plugin's end and uploading the relevant work. Anyway, those issues need to be fixed asap.

We have tested the work on a stand alone (HSQLDB) Xwiki installation, it would be really nice if someone can test the plugin on a real server and confirm the results :)

Vincent, I couldn't find an appropriate place to upload the files in XWIKI JIRA, so i thought of attaching relevant files into this email. I'm really sorry for any inconveniences.

Hope to hear from you very soon.

Thanks a lot!

- Tharindu & Asiri



--
You receive this message as a subscriber of the xwiki-dev@objectweb.org mailing list.
To unsubscribe: mailto: xwiki-dev-unsubscribe@objectweb.org
For general help: mailto:sympa@objectweb.org?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws