<?xml version="1.0" encoding="ISO-8859-1"?> 
<?xml-stylesheet href="http://bugs.horde.org/themes/feed-rss.xsl" type="text/xsl"?> 
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> 
 <channel> 
  <title>Restructuring the Kolab driver</title> 
  <pubDate>Thu, 09 Sep 2010 13:11:49 -0400</pubDate> 
  <link>http://bugs.horde.org/ticket/5175</link> 
  <atom:link rel="self" type="application/rss+xml" title="Restructuring the Kolab driver" href="http://bugs.horde.org/ticket/5175/rss" /> 
  <description>Restructuring the Kolab driver</description> 
 
   
   
  <item> 
   <title>Currently each Kolab driver in the different applications ne</title> 
   <description>Currently each Kolab driver in the different applications needs to know a lot about the XML format used for storing groupware objects like notes, tasks etc. on the groupware server.



This makes it hard if not impossible to cache the data on the way from the IMAP storage to the groupware application. On the other hand caching is necessary to allow Horde to work on a Kolab server that stores several thousand groupware objects.



The attached patches and files implement a new framework that restructure the Kolab driver so that each application driver only needs to transfer data as a hash. This hash can also be cached by the main Kolab module.



The patches will not destroy the old functionality of the Kolab driver and only add the new framework to the classes. 



I am going to attach all parts of this patch to this bug, but please tell me if I should try to seperate this to a larger degree.</description> 
   <pubDate>Wed, 28 Mar 2007 19:08:20 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t30742</link> 
  </item> 
   
  <item> 
   <title>This marks some functions in the global Kolab driver as depr</title> 
   <description>This marks some functions in the global Kolab driver as deprecated.</description> 
   <pubDate>Wed, 28 Mar 2007 19:09:18 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t30743</link> 
  </item> 
   
  <item> 
   <title>Some files will get added to the package.</title> 
   <description>Some files will get added to the package.</description> 
   <pubDate>Wed, 28 Mar 2007 19:09:56 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t30744</link> 
  </item> 
   
  <item> 
   <title>The main XML-Wrapper that now does all of the XML handling. </title> 
   <description>The main XML-Wrapper that now does all of the XML handling. This belongs in Kolab/Kolab/XML.php</description> 
   <pubDate>Wed, 28 Mar 2007 19:11:11 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t30745</link> 
  </item> 
   
  <item> 
   <title>The XML-class lends itself to unit testing. This is a test s</title> 
   <description>The XML-class lends itself to unit testing. This is a test script that belongs in  Kolab/tests/kolab_xml.phpt</description> 
   <pubDate>Wed, 28 Mar 2007 19:12:39 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t30746</link> 
  </item> 
   
  <item> 
   <title>This defines the XML format for notes and belongs in Kolab/K</title> 
   <description>This defines the XML format for notes and belongs in Kolab/Kolab/XML/note.php</description> 
   <pubDate>Wed, 28 Mar 2007 19:13:27 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t30747</link> 
  </item> 
   
  <item> 
   <title>This defines the XML format for tasks and belongs in Kolab/K</title> 
   <description>This defines the XML format for tasks and belongs in Kolab/Kolab/XML/task.php</description> 
   <pubDate>Wed, 28 Mar 2007 19:14:03 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t30748</link> 
  </item> 
   
  <item> 
   <title>A new Kolab driver for mnemo that uses the new framework.</title> 
   <description>A new Kolab driver for mnemo that uses the new framework.</description> 
   <pubDate>Wed, 28 Mar 2007 19:15:08 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t30749</link> 
  </item> 
   
  <item> 
   <title>A new Kolab driver for nag that uses the new framework.</title> 
   <description>A new Kolab driver for nag that uses the new framework.</description> 
   <pubDate>Wed, 28 Mar 2007 19:16:26 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t30750</link> 
  </item> 
   
  <item> 
   <title>Turba and Kronolith have not yet been transferred to the new</title> 
   <description>Turba and Kronolith have not yet been transferred to the new framework.</description> 
   <pubDate>Wed, 28 Mar 2007 19:17:16 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t30751</link> 
  </item> 
   
  <item> 
   <title>I'm not sure I like the bc break of just dieing if people ar</title> 
   <description>I'm not sure I like the bc break of just dieing if people aren't using CVS HEAD. But I guess Kolab support hasn't been _really_ stable in releases... other thoughts here?</description> 
   <pubDate>Wed, 28 Mar 2007 19:43:06 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t30754</link> 
  </item> 
   
  <item> 
   <title>Lack of stability of the older driver was the reason for cho</title> 
   <description>Lack of stability of the older driver was the reason for choosing this solution. If you feel that is not ok I think there are two possible alternatives:



 1) adding this as a second possible Kolab driver (as kolab2.php)

 

or 



 2) having the old and the new driver in the kolab.php class with a wrapper that decides automatically based on the capabilities of the Kolab module</description> 
   <pubDate>Thu, 29 Mar 2007 02:15:23 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t30761</link> 
  </item> 
   
  <item> 
   <title>I would say that 2) would be the most elegant solution. But </title> 
   <description>I would say that 2) would be the most elegant solution. But I can also envision an exception from our BC rule.</description> 
   <pubDate>Thu, 29 Mar 2007 05:29:29 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t30767</link> 
  </item> 
   
  <item> 
   <title>I'm mostly okay with a BC break; it'd be even better if ther</title> 
   <description>I'm mostly okay with a BC break; it'd be even better if there was a good way to just pear upgrade horde/Kolab, but that's probably not going to work for most setups now.</description> 
   <pubDate>Thu, 29 Mar 2007 11:25:17 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t30785</link> 
  </item> 
   
  <item> 
   <title>Thomas Jarosch prepared the Turba driver and I fixed some is</title> 
   <description>Thomas Jarosch prepared the Turba driver and I fixed some issues on the nag driver. In addition I moved some data processing to the XML drivers so that this effort happens before caching the data.



XML driver for notes</description> 
   <pubDate>Tue, 03 Apr 2007 03:21:27 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t31079</link> 
  </item> 
   
  <item> 
   <title>XML driver for tasks</title> 
   <description>XML driver for tasks</description> 
   <pubDate>Tue, 03 Apr 2007 03:21:56 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t31080</link> 
  </item> 
   
  <item> 
   <title>XML driver for contacts</title> 
   <description>XML driver for contacts</description> 
   <pubDate>Tue, 03 Apr 2007 03:22:27 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t31081</link> 
  </item> 
   
  <item> 
   <title>New Kolb driver for mnemo</title> 
   <description>New Kolb driver for mnemo</description> 
   <pubDate>Tue, 03 Apr 2007 03:23:04 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t31082</link> 
  </item> 
   
  <item> 
   <title>New Kolab driver for nag</title> 
   <description>New Kolab driver for nag</description> 
   <pubDate>Tue, 03 Apr 2007 03:23:50 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t31083</link> 
  </item> 
   
  <item> 
   <title>New Kolab driver for turba</title> 
   <description>New Kolab driver for turba</description> 
   <pubDate>Tue, 03 Apr 2007 03:24:23 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t31084</link> 
  </item> 
   
  <item> 
   <title>Hm, I believe the currently suggested organization would act</title> 
   <description>Hm, I believe the currently suggested organization would actually introduce a structural problem. 



The XML drivers are strongly coupled to the respective kolab.php drivers within the different applications (note.php with mnemo, task.php with nag, etc.) Once we would later change something within note.php we might also need to adapt the mnemo kolab driver. While this would probably not happen very often, I assume we would break backward compatibility in that case.



I simply did not think about this before - still not deep enough in the Horde structure, but I'm trying to improve :) 



Anyhow I assume the better solution would be to put the note.php part directly into the respective kolab.php drivers. Is that correct?</description> 
   <pubDate>Wed, 04 Apr 2007 17:32:28 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t31109</link> 
  </item> 
   
  <item> 
   <title>&gt; The XML drivers are strongly coupled to the respective kol</title> 
   <description>&gt; The XML drivers are strongly coupled to the respective kolab.php 

&gt; drivers within the different applications (note.php with mnemo, 

&gt; task.php with nag, etc.) Once we would later change something within 

&gt; note.php we might also need to adapt the mnemo kolab driver. While 

&gt; this would probably not happen very often, I assume we would break 

&gt; backward compatibility in that case.

&gt;

&gt; I simply did not think about this before - still not deep enough in 

&gt; the Horde structure, but I'm trying to improve :)

&gt;

&gt; Anyhow I assume the better solution would be to put the note.php part 

&gt; directly into the respective kolab.php drivers. Is that correct?



That sounds right to me, yes.</description> 
   <pubDate>Mon, 09 Apr 2007 17:32:19 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t31325</link> 
  </item> 
   
  <item> 
   <title>Hello Chuck,



&gt;&gt; Anyhow I assume the better solution would</title> 
   <description>Hello Chuck,



&gt;&gt; Anyhow I assume the better solution would be to put the note.php part

&gt;&gt; directly into the respective kolab.php drivers. Is that correct?

&gt;

&gt; That sounds right to me, yes.



Ok. Let's assume we need some major changes in XML.php, how would that be done? Only with Horde 4.0? I can imagine once the new Kolab code is in place and put into production the first time, the need for changes will arise or at least we should have the possibility to do so. Though I hope the code is bug free ;-)



Cheers,

Thomas

</description> 
   <pubDate>Wed, 11 Apr 2007 08:21:21 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t31410</link> 
  </item> 
   
  <item> 
   <title>Ideally for 4.0, we'll finally separate the horde version fr</title> 
   <description>Ideally for 4.0, we'll finally separate the horde version from individual framework package versions, so that the applications can simply up the version of the Kolab package that they require.</description> 
   <pubDate>Wed, 11 Apr 2007 13:17:07 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t31438</link> 
  </item> 
   
  <item> 
   <title>We continued discussion on this and it seems the best soluti</title> 
   <description>We continued discussion on this and it seems the best solution is to keep the structure as suggested by the current patches.



We will have to define one interface that has to be kept stable anyhow. Either this will be on the level of the array that is being transferred between the specific Kolab XML handler (e.g. note.php or task.php) and the application. Or it is on the level of the XML.php handler that would be used within each application.



There are two reasons why the first solution might be better: The XML handling resides fully within the Kolab module. Thus it is also available to other PHP applications that would use the Horde Framework modules as a library. In addition the XML.php interface would be binding for all four applications we are currently targeting. Specifying the transferred array is something we do per application.



Since it is important to get the interface right the first time we commit it, we will still wait with this until the kronolith Kolab driver has also been converted to the new structure.

</description> 
   <pubDate>Wed, 18 Apr 2007 11:44:39 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t31820</link> 
  </item> 
   
  <item> 
   <title>In CVS.</title> 
   <description>In CVS.</description> 
   <pubDate>Fri, 25 May 2007 10:24:03 -0400</pubDate> 
   <link>http://bugs.horde.org/ticket/5175#t33483</link> 
  </item> 
   
   
 
 </channel> 
</rss> 
