<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="http://blogs.nuxeo.com/rss.css" type="text/css"?>
<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns="http://purl.org/rss/1.0/"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">

  <channel rdf:about="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/exportrss">
    <title>Cedric Bosdonnat</title>
    <description>RSS 1.0 export from the folder 'Cedric Bosdonnat'.</description>
    <link>http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/exportrss</link>

    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_09_19_ooocon2006-it-s-over" />
        <rdf:li rdf:resource="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_08_20_uno-idl-syntax-highlighting-in-php" />
        <rdf:li rdf:resource="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_08_20_ooeclipseintegration-release-1-0-3" />
        <rdf:li rdf:resource="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_06_28_creating-new-funambol-connector" />
        <rdf:li rdf:resource="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_06_26_apogee-synchronization-first-howto" />
        <rdf:li rdf:resource="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_06_09_oooeclipseintegration-release-1-0-3" />
        <rdf:li rdf:resource="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_05_30_building-funambol-from-cvs" />
        <rdf:li rdf:resource="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_05_29_funambol-jcr-connector-the-first-release" />
        <rdf:li rdf:resource="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_05_04_funambol-jcr-connector-step-more" />
        <rdf:li rdf:resource="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_04_24_jcr-server-and-funambol" />

      </rdf:Seq>
    </items>

  </channel>


  <item rdf:about="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_09_19_ooocon2006-it-s-over">
    <title>OOoCon2006, it's over</title>
    <description>&lt;p&gt;Now the OpenOffice.org conferences 2006 are closed and the normal life has taken its old rythm now. This article is only about to thank you all for making this year's conferences a big event, quite like a family one.&lt;/p&gt;

&lt;p&gt;Being prepared during several month by many persons on both OpenOffice.org and INSA Lyon side, my first thanks are coming to all those who helped us making it possible: Sophie, Marie-Jo, Jean-François and Charles from OpenOffice.org and Yves Condemine, Patrick Pollet, Cédric Grand, Anne Mouriquand from INSA. I am sure to forget many persons here, but I think that they will recognize themselves.&lt;/p&gt;

&lt;p&gt;To help us keep the conferences in our mind, the &lt;a href="http://ooocon.kiberpipa.org/"&gt;kiberpipa team&lt;/a&gt; who did an extraordinary job, provides us the video archives of the conferences and offers to host your photos of the event.&lt;/p&gt;

&lt;p&gt;Again, thanks to you all.&lt;/p&gt;</description>
    <link>http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_09_19_ooocon2006-it-s-over</link>
    <dc:date>2006-09-19</dc:date>
    <dc:creator>cbosdonnat</dc:creator>
    <dc:contributor>Cedric Bosdonnat</dc:contributor>
    <dc:language>en</dc:language>
    <dc:subject>openoffice</dc:subject>

  </item>
  <item rdf:about="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_08_20_uno-idl-syntax-highlighting-in-php">
    <title>Uno IDL syntax highlighting in PHP</title>
    <description>&lt;p&gt; Uno IDL is the component specification language of OpenOffice.org. Here is a
  solution to show some highlighted Uno IDL code. It uses &lt;a
  href="http://qbnz.com/highlighter/"&gt;GeSHi&lt;/a&gt; and you need to add a language
  file describing how to parse and colorize you Uno IDL code. As this language
  file doesn't exist I created one, attached to this article.&lt;/p&gt;</description>
    <link>http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_08_20_uno-idl-syntax-highlighting-in-php</link>
    <dc:date>2006-08-20</dc:date>
    <dc:creator>cbosdonnat</dc:creator>
    <dc:contributor>Cedric Bosdonnat</dc:contributor>
    <dc:language>en</dc:language>
    <dc:subject>openoffice</dc:subject>

  </item>
  <item rdf:about="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_08_20_ooeclipseintegration-release-1-0-3">
    <title>OOEclipseIntegration release 1.0.3.a</title>
    <description>&lt;p&gt;A new release is available on the usual update site.&lt;/p&gt;
  &lt;a
  href="http://cedric.bosdonnat.free.fr/ooeclipseintegration/"&gt;http://cedric.bosdonnat.free.fr/ooeclipseintegration/&lt;/a&gt;&lt;br /&gt;


  &lt;p&gt;It mainly contains fixes for windows version as some code cleaning. This
  version warns the user that white spaces in the SDK or project paths may
  lead to problems of builds. This problem is due to some bugs of the idlc
  compiler and will be fixed in a future release of the OpenOffice.org
  SDK.&lt;/p&gt;

  &lt;p&gt;The next release will contain new interesting features like a Java
  skeleton generation, services.rdb or component exports, and may be URE
  application run in eclipse. Thus stay tuned...&lt;br /&gt;
  &lt;/p&gt;</description>
    <link>http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_08_20_ooeclipseintegration-release-1-0-3</link>
    <dc:date>2006-08-20</dc:date>
    <dc:creator>cbosdonnat</dc:creator>
    <dc:contributor>Cedric Bosdonnat, root</dc:contributor>
    <dc:language>en</dc:language>
    <dc:subject>openoffice</dc:subject>

  </item>
  <item rdf:about="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_06_28_creating-new-funambol-connector">
    <title>Creating a new Funambol connector</title>
    <description>&lt;p&gt;This blog post will be about sharing what I learned around developping
  Funambol Connector. It is not intended to be complete or a replacement of
  any Funambol tutorial. However, I'll try to give some tips here to better
  understand.&lt;/p&gt;

  &lt;h2&gt;Basic documentation&lt;/h2&gt;

  &lt;p&gt;First things firsts, before anything else, you should have a serious look
  at the &lt;a
  href="http://download.forge.objectweb.org/sync4j/funambol_ds_server_module_development_tutorial.pdf"&gt;
  Funambol module development tutorial&lt;/a&gt;. This will guide you in the
  creation of a dummy connector. However, this paper is not complete enough
  for new developers. Thus I'll try to explain some difficult points here.&lt;/p&gt;

  &lt;p&gt;Take care of which API reference you are reading. The j2se and DS-server
  APIs are different with similar concepts and names...&lt;/p&gt;

  &lt;h2&gt;Understanding modules&lt;/h2&gt;

  &lt;p&gt;First of all, the tutorial is about modules and not connectors... what's
  the difference ? In fact a module is a general additionnal component to
  Funambol which contains one or more connectors.&lt;/p&gt;

  &lt;p&gt;As you might have understood from the tutorial, the module is composed of  several parts:&lt;/p&gt;

  &lt;ul&gt;
   &lt;li&gt;The Java sources of you module, of course.&lt;/li&gt;

   &lt;li&gt;SQL scripts used for installing and uninstalling the module and
   connector in the Funambol DS server.&lt;/li&gt;

   &lt;li&gt;An optional install/install.xml ant script to run at the installation
   time&lt;/li&gt;

   &lt;li&gt;Dependencies libraries.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;There are two things to develop to create a complete connector:&lt;/p&gt;

  &lt;ul&gt;
   &lt;li&gt;The Synchronisation source type class, which will access the data.&lt;/li&gt;

   &lt;li&gt;The configuration panel that will be shown in the Funambol admin tool
   for easy configuration of the new synchronization source type.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Why are SQL scripts needed and what are they for ? Funambol is connected to a database describing the connectors and their informations. Thus the  informations about your new connector have to be stored in order for it to  be used. These informations include the class name of the source type and the one of the panel. There are three possible SQL scripts:&lt;/p&gt;

  &lt;ul&gt;
   &lt;li&gt;create_schema.sql, to use if the module needs a custom data
   schema
   &lt;/li&gt;

   &lt;li&gt;drop_schema.sql, called when uninstalling the module to remove the
   data
   &lt;/li&gt;

   &lt;li&gt;init_schema.sql, called when installing the module to fill the
   data
   &lt;/li&gt;
  &lt;/ul&gt;

  &lt;h2&gt;SyncSource interface
  &lt;/h2&gt;

  &lt;p&gt;The synchronization source type of your connector has to implement the
  ds-serveur SyncSource interface. These next lines will try to detail what
  the different methods are for.&lt;/p&gt;

  &lt;h3&gt;Synchronization starting and ending&lt;/h3&gt;
&lt;pre&gt;
public void beginSync(SyncContext ctx) throws SyncSourceException;
public void endSync() throws SyncSourceException;
public void commitSync() throws SyncSourceException;
&lt;/pre&gt;

&lt;p&gt; These methods are called to initialize and stop the synchronization. Thes
  can be used, for example, to start and stop a connection to the source. The
  commit method will commit the changes made during the synchronization to the  source.&lt;/p&gt;
   

  &lt;h3&gt;Element getters&lt;/h3&gt;
&lt;pre&gt;
public abstract SyncItemKey[] getAllSyncItemKeys()
    throws SyncSourceException;
&lt;/pre&gt;

  &lt;p&gt;This method will have to return all the items to synchronize in the
  source. This method is used in the synchronization mode. The result is an
  array of all the unique keys describing each element.&lt;/p&gt;
&lt;pre&gt;
public abstract SyncItemKey[] getDeletedSyncItemKeys(Timestamp sinceTs, Timestamp untilTs)
    throws SyncSourceException;
public abstract SyncItemKey[] getNewSyncItemKeys(Timestamp sinceTs, Timestamp untilTs)
    throws SyncSourceException;
public SyncItemKey[] getUpdatedSyncItemKeys(Timestamp since, Timestamp until)
    throws SyncSourceException;
&lt;/pre&gt;

  &lt;p&gt;These three methods will return the deleted, new and updated items
  between the since and until timestamps. These methods are used in the fast
  synchronization mode. The result is an array of all the unique keys
  describing each element.&lt;/p&gt;
&lt;pre&gt;
public abstract SyncItem getSyncItemFromId(SyncItemKey syncItemKey)
    throws SyncSourceException;
&lt;/pre&gt;

  &lt;p&gt;This method returns and item from its key. This is a difference between
  the client and server SyncSource interfaces: from the server side, using
  only keys and getting the item at the very last time helps to avoid big
  memory uses.&lt;/p&gt;

  &lt;h3&gt;Elements setters&lt;/h3&gt;
&lt;pre&gt;
public abstract void removeSyncItem(SyncItemKey syncItemKey, Timestamp time, boolean softDelete)
    throws SyncSourceException;
public abstract SyncItem updateSyncItem(SyncItem syncInstance)
    throws SyncSourceException;
public abstract SyncItem addSyncItem(SyncItem syncInstance)
    throws SyncSourceException;
&lt;/pre&gt;

  &lt;p&gt;These methods will remove, add and update items in the source. The
  returned sync item correspond to the inserted or updated item. The update
  and add methods should solve the conflicts between the items that is already
  present on the server and the one that is about to be added or
  updated.&lt;/p&gt;

  &lt;h3&gt;Extra methods&lt;/h3&gt;
&lt;pre&gt;
public abstract SyncItemKey[] getSyncItemKeysFromTwin(SyncItem syncItem)
    throws SyncSourceException;
&lt;/pre&gt;

  &lt;p&gt;This method returns the twin items keys, i.e. the keys of the items that
  are considered as identical. This notion of identical items is defined in
  this method.&lt;/p&gt;
&lt;pre&gt;
public abstract void setOperationStatus(String operationName, int status, SyncItemKey[] keys);
&lt;/pre&gt;

  &lt;p&gt;This method is called by the DS-server to notify the status of an
  operation. The operation name can be either one of &lt;i&gt;"Add"&lt;/i&gt;,
  &lt;i&gt;"Replace"&lt;/i&gt; or &lt;i&gt;"Delete"&lt;/i&gt;.&lt;/p&gt;

  &lt;h2&gt;Configuration panel implementation&lt;/h2&gt;

  &lt;p&gt;To create a new source configuration panel, you will need to extend the
  &lt;b&gt;SourceManagementPanel&lt;/b&gt; class. The only thing to know here is to set
  the following properties into your synchronization source when clicking on
  the validation button. The validation method should contain the following
  skeleton:&lt;/p&gt;
&lt;pre&gt;
if (getSyncSource() instanceof JCRSyncSource) {
          
        JCRSyncSource source = (JCRSyncSource)getSyncSource();
        source.setSourceURI(uriText.getText().trim());
        source.setName(nameText.getText().trim());
        source.setType(typeText.getText().trim());

        // TODO set your source specific values

        ContentType[] contentTypes = new ContentType[] {
            new ContentType("text/plain", "1.0")  
        };
        source.setInfo(new SyncSourceInfo(contentTypes, 0));
}
&lt;/pre&gt;
  &lt;p&gt;You just have to replace the TODO comment by lines setting the specific
  values to your source. Of course, you need to replace the JCRSyncSource
  class by your SyncSource class.&lt;/p&gt;</description>
    <link>http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_06_28_creating-new-funambol-connector</link>
    <dc:date>2006-06-28</dc:date>
    <dc:creator>cbosdonnat</dc:creator>
    <dc:contributor>Cedric Bosdonnat</dc:contributor>
    <dc:language>en</dc:language>
    <dc:subject>apogee</dc:subject>

  </item>
  <item rdf:about="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_06_26_apogee-synchronization-first-howto">
    <title>Apogée synchronization, first howto</title>
    <description>I'm proud to announce you that the Apogée synchronization is now working. It
  integrates the Funambol j2se client API and configures it for you through
  preferences and properties pages. Split into three plugins, the
  synchronization allows you to write your own source connector. For the
  moment, Apogée can now synchronize Jackrabbit local repositories, but this
  can be extended.&lt;br /&gt;
  A guide to your first synchronization in Apogée is available on the Apogée
  website: &lt;br /&gt;
  &lt;a
  href="http://apogee.nuxeo.org/sections/documentation/jcrsync/synchronization-in/cpsdocument_view"&gt;
  http://apogee.nuxeo.org/sections/documentation/jcrsync/synchronization-in/cpsdocument_view&lt;/a&gt;&lt;br /&gt;

  &lt;br /&gt;
  Of course any comment or contribution is welcomed. You can join the Apogée
  team on its mailing list. For this, just register here: &lt;a
  href="http://lists.nuxeo.com/mailman/listinfo/apogee"&gt;http://lists.nuxeo.com/mailman/listinfo/apogee&lt;/a&gt;&lt;br /&gt;

  &lt;br /&gt;
  Please hold the line for further news...&lt;br /&gt;</description>
    <link>http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_06_26_apogee-synchronization-first-howto</link>
    <dc:date>2006-06-26</dc:date>
    <dc:creator>cbosdonnat</dc:creator>
    <dc:contributor>Cedric Bosdonnat</dc:contributor>
    <dc:language>en</dc:language>
    <dc:subject>apogee</dc:subject>

  </item>
  <item rdf:about="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_06_09_oooeclipseintegration-release-1-0-3">
    <title>OOoEclipseIntegration release 1.0.3</title>
    <description>I'm glad to announce that 1.0.3 release of the OOoEclipseIntegration&lt;br /&gt;
   plugin is out. Here are the changes:&lt;br /&gt;
   

  &lt;ul&gt;
   &lt;li&gt;Basic URE support&lt;/li&gt;

   &lt;li&gt;User documentation&lt;/li&gt;

   &lt;li&gt;Developer documentation: Javadoc API completed and &amp;#8220;howto extend&amp;#8221;
   tutorial&lt;/li&gt;

   &lt;li&gt;Moving the language specific code into a new plugin&lt;/li&gt;

   &lt;li&gt;Ant scripts to automate the update site build&lt;/li&gt;

   &lt;li&gt;Internal model refactoring&lt;/li&gt;

   &lt;li&gt;Fixed some bugs&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;In fact there are many internal changes preparing future extensions of
  the plugin. For the user, the important new thing is the URE support. Now
  you can create a new UNO project using a URE instance, the type browser will
  show you only the URE types and in a future version you will be able to
  create a new URE application and run it.&lt;br /&gt;
  &lt;/p&gt;

  &lt;p&gt;The update site is still the same : &lt;a
  href="http://cedric.bosdonnat.free.fr/ooeclipseintegration"&gt;http://cedric.bosdonnat.free.fr/ooeclipseintegration&lt;/a&gt;&lt;br /&gt;

  &lt;/p&gt;

  &lt;p&gt;Any report is welcomed and stay tuned...&lt;br /&gt;
  &lt;/p&gt;</description>
    <link>http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_06_09_oooeclipseintegration-release-1-0-3</link>
    <dc:date>2006-06-26</dc:date>
    <dc:creator>cbosdonnat</dc:creator>
    <dc:contributor>Cedric Bosdonnat, root</dc:contributor>
    <dc:language>en</dc:language>
    <dc:subject>eclipse</dc:subject>
    <dc:subject>openoffice</dc:subject>

  </item>
  <item rdf:about="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_05_30_building-funambol-from-cvs">
    <title>Building Funambol from CVS</title>
    <description>&lt;p&gt;As I had some problems to find build howtos to build Funambol last week,
  I gathered the information people gave me on the Sync4J mailing list in to
  an article. Follow these instructions to build the Funambol 3.0 bundle for
  Unix or Linux.&lt;/p&gt;

  &lt;h2&gt;Gathering the dependencies&lt;/h2&gt;

  &lt;p&gt;In order to build the Funambol bundle, you will need several other
  softwares or components. There are listed below with a link to their
  download page and some comments if necessary.&lt;/p&gt;

  &lt;ul&gt;
   &lt;li&gt;&lt;a
   href="http://www.netbeans.info/downloads/download.php?type=5.0"&gt;Netbeans
   platform&lt;/a&gt;: no problem with netbeans, the latest version will do the
   trick&lt;/li&gt;

   &lt;li&gt;&lt;a
   href="https://javacc.dev.java.net/servlets/ProjectDocumentList?folderID=0&amp;amp;expandFolder=0&amp;amp;folderID=0"&gt;
   JavaCC&lt;/a&gt;: I tested using the 3.2 version, but newer version might work
   too&lt;/li&gt;

   &lt;li&gt;&lt;a
   href="http://sourceforge.net/project/showfiles.php?group_id=23316"&gt;HSQLDB&lt;/a&gt;:
   no problem too, the latest version will be good&lt;/li&gt;

   &lt;li&gt;&lt;a href="http://java.sun.com/j2se/1.5.0/download.jsp"&gt;Java J2SE&lt;/a&gt;:
   download both JDK for build and JRE for inclusion in the bundle&lt;/li&gt;

   &lt;li&gt;&lt;a
   href="http://prdownloads.sourceforge.net/junit/junit4.1.zip?download"&gt;JUnit&lt;/a&gt;:
   last version is ok&lt;/li&gt;

   &lt;li&gt;&lt;a href="http://java.sun.com/javaee/downloads/index.jsp"&gt;J2EE&lt;/a&gt;:
   there is a problem in the funambol ant scripts starting from J2EE 1.4, a
   fix is proposed in this tutorial. Using this fix, latest version can be
   used.&lt;/li&gt;

   &lt;li&gt;&lt;a
   href="http://tomcat.apache.org/download-55.cgi#5.0.30-beta"&gt;Tomcat&lt;/a&gt;: for
   inclusion in the bundle. Works fine using 5.0.30, but earlier version might
   work&lt;/li&gt;

   &lt;li&gt;&lt;a href="http://ant.apache.org/bindownload.cgi"&gt;Ant&lt;/a&gt;: the latest
   version works fine&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Now that you downloaded all the dependencies, you will install them. To
  simplify this tutorial, I assume that everything will happen in the same
  &lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;&lt;/b&gt; directory and that neither Java, ant nor J2EE are
  installed. You may adapt the next steps to your existing installation if you
  want.&lt;/p&gt;

  &lt;ul&gt;
   &lt;li&gt;Extract Netbeans platform in &lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;&lt;/b&gt;&lt;/li&gt;

   &lt;li&gt;Extract JavaCC in &lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;&lt;/b&gt;&lt;/li&gt;

   &lt;li&gt;Extract JUnit in &lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;&lt;/b&gt;&lt;/li&gt;

   &lt;li&gt;Extract Ant in &lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;&lt;/b&gt;&lt;/li&gt;

   &lt;li&gt;Run JDK installation in &lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;&lt;/b&gt; using a command
   like&lt;/li&gt;
  &lt;/ul&gt;
&lt;pre&gt;
sh jre-1_5_0_07-linux-i586.bin
&lt;/pre&gt;

  &lt;ul&gt;
   &lt;li&gt;Run J2EE installation with the following steps and install it in
   &lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;/SUNWappserver&lt;/b&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;pre&gt;
chmod u+x java_ee_sdk-5-linux.bin&lt;br /&gt;
./java_ee_sdk-5-linux.bin
&lt;/pre&gt;

  &lt;p&gt;The other archives should be left as is because they will only be
  included in the Bundle by the Funambol build scripts.&lt;/p&gt;

  &lt;h2&gt;Getting the sources&lt;/h2&gt;

  &lt;p&gt;Now that you have the dependencies, you will have to checkout the latest
  Funambol 3.0 sources from the CVS and configure them to find the
  dependencies.&lt;/p&gt;

  &lt;h3&gt;Checkout the sources from CVS&lt;/h3&gt;

  &lt;p&gt;In order to get the sources, go into the &lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;&lt;/b&gt;
  directory using the cd command and then execute the following commands:&lt;/p&gt;
&lt;pre&gt;
cvs -d:pserver:anonymous@cvs.forge.objectweb.org:/cvsroot/sync4j login&lt;br /&gt;
cvs -z3 -d:pserver:anonymous@cvs.forge.objectweb.org:/cvsroot/sync4j co 3x
&lt;/pre&gt;

  &lt;p&gt;When a password is asked during the login command, simply press
  &lt;i&gt;enter&lt;/i&gt;. Now you should have a new &lt;b&gt;3x&lt;/b&gt; directory in your
  &lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;&lt;/b&gt; containing the Funambol 3.0 sources.&lt;/p&gt;

  &lt;h3&gt;Configure&lt;/h3&gt;

  &lt;p&gt;Now, you will have to change some values in Funambol properties files.
  First of all, edit the &lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;/3x/forge/build.properties&lt;/b&gt;
  file and change the following values:&lt;/p&gt;

  &lt;ul&gt;
   &lt;li&gt;javacc.home=&lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;&lt;/b&gt;/javacc-3.2&lt;/li&gt;

   &lt;li&gt;sunj2eesdk-rootdir=&lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;&lt;/b&gt;/SUNWappserver&lt;/li&gt;

   &lt;li&gt;tomcat.pkg=&lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;&lt;/b&gt;/jakarta-tomcat-5.0.30.zip&lt;/li&gt;

   &lt;li&gt;jre.pkg=&lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;&lt;/b&gt;/jre-1_5_0_07-linux-i586.bin&lt;/li&gt;

   &lt;li&gt;hsqldb.pkg=&lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;&lt;/b&gt;/hsqldb_1_8_0_4.zip&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;As you might have remarked in the preceeding value, I used the latest
  versions of the JRE and HSQLDB. You will have to adapt these values to the
  names of the files you have downloaded. You should also change some other
  values:&lt;/p&gt;

  &lt;ul&gt;
   &lt;li&gt;jre.name=jre1.5.0_07&lt;/li&gt;

   &lt;li&gt;tomcat.name=jakarta-tomcat-5.0.30&lt;/li&gt;

   &lt;li&gt;hsqldb.name=hsqldb&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;To obtain these values, just temporarily extract Tomcat, the JRE and
  HSQLDB the generated directories names will be your values.&lt;/p&gt;

  &lt;p&gt;To complete this configuration, set the following value in
  &lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;/3x/admin-suite/build.properties&lt;/b&gt;:&lt;/p&gt;

  &lt;ul&gt;
   &lt;li&gt;
   nbplatform.default.netbeans.dest.dir=&lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;&lt;/b&gt;/netbeans&lt;/li&gt;
  &lt;/ul&gt;

  &lt;h2&gt;Build&lt;/h2&gt;

  &lt;p&gt;Last but not least, you will have to run to scripts to build the Funambol
  3.0 bundle. For this, follow the next steps:&lt;/p&gt;
&lt;pre&gt;
export CLASSPATH=&amp;lt;ROOT_DIR&amp;gt;/junit4.1/junit-4.1.jar&lt;br /&gt;
export PATH=&amp;lt;ROOT_DIR&amp;gt;/apache-ant-1.6.5/bin:&amp;lt;ROOT_DIR&amp;gt;/jdk1.5.0_07/bin:$PATH&lt;br /&gt;
export JAVA_HOME=&amp;lt;ROOT_DIR&amp;gt;/jdk1.5.0_07
&lt;/pre&gt;

  &lt;p&gt;Then go to the &lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;/3x/forge&lt;/b&gt; directory and run the
  following command to build the unix bundle. To get the list of all the
  targets available for the build, simply run ant without any target.&lt;/p&gt;
&lt;pre&gt;
ant forge-bundle-unix
&lt;/pre&gt;

  &lt;p&gt;Now you can get the generated bundle in the
  &lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;/3x/output&lt;/b&gt; directory.&lt;/p&gt;

  &lt;h3&gt;Bug for J2EE 1.4 and 1.5&lt;/h3&gt;

  &lt;p&gt;In these versions of the J2EE, the jar used to build the pimweb module
  (&lt;i&gt;j2ee.jar&lt;/i&gt;) is empty. Its content is now in &lt;i&gt;javaee.jar&lt;/i&gt;. Thus
  you will have to edit the
  &lt;b&gt;&amp;lt;ROOT_DIR&amp;gt;/3x/modules/pimweb/build/build.xml&lt;/b&gt; file and change
  the line&lt;/p&gt;
&lt;pre&gt;
&amp;lt;property name="j2ee.jar" value="${sunj2eesdk-rootdir}/lib/j2ee.jar" /&amp;gt;
&lt;/pre&gt;

  &lt;p&gt;into&lt;/p&gt;
&lt;pre&gt;
&amp;lt;property name="j2ee.jar" value="${sunj2eesdk-rootdir}/lib/javaee.jar" /&amp;gt;
&lt;/pre&gt;

  &lt;p&gt;For a better &lt;a
  href="https://forge.objectweb.org/tracker/index.php?func=detail&amp;amp;aid=305395&amp;amp;group_id=96&amp;amp;atid=100096"&gt;
  issue description&lt;/a&gt; and &lt;a
  href="https://forge.objectweb.org/tracker/index.php?func=detail&amp;amp;aid=305396&amp;amp;group_id=96&amp;amp;atid=300096"&gt;
  patch&lt;/a&gt;, please refer to the sync4j objectweb forge project.&lt;/p&gt;</description>
    <link>http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_05_30_building-funambol-from-cvs</link>
    <dc:date>2006-05-30</dc:date>
    <dc:creator>cbosdonnat</dc:creator>
    <dc:contributor>Cedric Bosdonnat, root</dc:contributor>
    <dc:language>en</dc:language>

  </item>
  <item rdf:about="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_05_29_funambol-jcr-connector-the-first-release">
    <title>Funambol JCR Connector: the first release</title>
    <description>&lt;p&gt;After a long time working on the JCR connector for Funambol, I finally
  created a first release for pioneers. As every very first release there are
  some important limits which are described further in the provided links.&lt;/p&gt;

  &lt;p&gt;For downloads and documentation of the JCR connector, you can report to
  the attached links. The final word here is: "stay tuned..."&lt;/p&gt;</description>
    <link>http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_05_29_funambol-jcr-connector-the-first-release</link>
    <dc:date>2006-05-29</dc:date>
    <dc:creator>cbosdonnat</dc:creator>
    <dc:contributor>Cedric Bosdonnat, root</dc:contributor>
    <dc:language>fr</dc:language>
    <dc:subject>apogee</dc:subject>

  </item>
  <item rdf:about="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_05_04_funambol-jcr-connector-step-more">
    <title>Funambol JCR connector: a step more</title>
    <description>&lt;p&gt;I'm happy to anounce that the JCR connector can now return all the items
  or just the added or updated items. Deleted items are more difficult to
  check: thus their support is delayed.&lt;/p&gt;

  &lt;h2&gt;What the JCR Repository needs&lt;/h2&gt;
  In order for the synchronization source to work, the JCR Repository will
  have to respect some constraints. They are described here:&lt;br /&gt;
   

  &lt;ul&gt;
   &lt;li&gt;The repository has to define the &lt;b&gt;mix:synchronizable&lt;/b&gt; mixin type.
   This type is used to recognize the synchronizable nodes&lt;/li&gt;
  &lt;/ul&gt;

  &lt;ul&gt;
   &lt;li&gt;A node is a synchronization item if and only if he has the
   mix:synchronizable mixin type&lt;/li&gt;
  &lt;/ul&gt;

  &lt;ul&gt;
   &lt;li&gt;Each synchronizable node must define &lt;b&gt;created&lt;/b&gt; and
   &lt;b&gt;lastModified&lt;/b&gt; properties containing the dates of creation and
   modification.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;h2&gt;Next steps&lt;/h2&gt;
  As you can imagine, the connector isn't finished yet. Its source still has
  to return the items content and add, update or remove nodes in the JCR
  repository. Thus stay tuned...&lt;br /&gt;
   &lt;br /&gt;</description>
    <link>http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_05_04_funambol-jcr-connector-step-more</link>
    <dc:date>2006-05-04</dc:date>
    <dc:creator>cbosdonnat</dc:creator>
    <dc:contributor>Cedric Bosdonnat, root</dc:contributor>
    <dc:language>en</dc:language>
    <dc:subject>apogee</dc:subject>

  </item>
  <item rdf:about="http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_04_24_jcr-server-and-funambol">
    <title>JCR server and Funambol</title>
    <description>&lt;p&gt;In order to setup a test framework for the Funambol JCR connector, I had
  to setup a JCR repository server. This blog entry, will guide you to set up
  the test tools. To do this you need:&lt;/p&gt;

  &lt;ol&gt;
   &lt;li&gt;to install and configure a tomcat server (I used the 5.5 version)&lt;/li&gt;

   &lt;li&gt;to deploy the provided jackrabbit-server (see link below)&lt;/li&gt;

   &lt;li&gt;to setup the jackrabbit-server servlet in order to use RMI access&lt;/li&gt;
  &lt;/ol&gt;

  &lt;h1&gt;Installing and configuring Tomcat&lt;/h1&gt;

  &lt;p&gt;As Funambol Data Synchronization server already runs on a Tomcat server,
  you will need to change the new Tomcat listening ports. You can do this by
  editing the conf/server.xml file. To run and stop the server there are
  &lt;i&gt;bin/startup.sh&lt;/i&gt; and &lt;i&gt;bin/shutdown.sh&lt;/i&gt; in tomcat. I will assume
  here that the tomcat server containing the JCR servlet listens HTTP requests
  on 8081 port and the funambol one listens on 8080 port.&lt;br /&gt;
  &lt;/p&gt;

  &lt;p&gt;In order to use the manager in the next section, you will need to add a
  new user with manager role in conf/tomcat-users.xml&lt;/p&gt;
&lt;pre&gt;
 &amp;lt;user username="admin" password="admin" roles="manager"/&amp;gt;&lt;br /&gt;
&lt;/pre&gt;

  &lt;h1&gt;Deploying jackrabbit-server&lt;/h1&gt;

  &lt;p&gt;To easily deploy the jackrabbit server, you just have to download the
  corresponding war file on the jackrabbit download page (see link below).
  Then, open the following URL in your web browser:
  http://localhost:8080/manager/html. There you will need to authenticate
  using the login and password you added to tomcat-users.xml (see the previous
  section).&lt;/p&gt;

  &lt;p&gt;From this page, select the downloaded war file and deploy it: it's done.
  You can use this page to reload the web application after some configuration
  changes.&lt;/p&gt;

  &lt;h1&gt;Setting up jackrabbit-server for RMI&lt;/h1&gt;

  &lt;p&gt;By default, the jackrabbit-server servlet only provide a WebDAV access to
  the repository, but you will be able to configure the RMI support easily by
  changing the WEB-INF/web.xml file to have the following lines:&lt;/p&gt;
&lt;pre&gt;
     &amp;lt;init-param&amp;gt;&lt;br /&gt;
            &amp;lt;param-name&amp;gt;rmi-port&amp;lt;/param-name&amp;gt;&lt;br /&gt;
            &amp;lt;param-value&amp;gt;1099&amp;lt;/param-value&amp;gt;&lt;br /&gt;
            &amp;lt;description&amp;gt;&lt;br /&gt;
                The RMI port for registering the repository in the RMI Registry.&lt;br /&gt;
                If equals 0, the default port is used.&lt;br /&gt;
            &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;/init-param&amp;gt;&lt;br /&gt;
        &amp;lt;init-param&amp;gt;&lt;br /&gt;
            &amp;lt;param-name&amp;gt;rmi-host&amp;lt;/param-name&amp;gt;&lt;br /&gt;
            &amp;lt;param-value&amp;gt;jcrserver&amp;lt;/param-value&amp;gt;&lt;br /&gt;
            &amp;lt;description&amp;gt;&lt;br /&gt;
                The RMI host for registering the repository in the RMI Registry.&lt;br /&gt;
                If equals "" or missing, the default host is used.&lt;br /&gt;
            &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;/init-param&amp;gt;&lt;br /&gt;
        &amp;lt;init-param&amp;gt;&lt;br /&gt;
            &amp;lt;param-name&amp;gt;rmi-uri&amp;lt;/param-name&amp;gt;&lt;br /&gt;
            &amp;lt;param-value&amp;gt;&amp;lt;/param-value&amp;gt;&lt;br /&gt;
            &amp;lt;description&amp;gt;&lt;br /&gt;
                The RMI uri for registering the repository in the RMI Registry.&lt;br /&gt;
                If missing, the uri is composed using the other rmi parameters&lt;br /&gt;
                and will have the format: //{rmi-host}:{rmi-port}/{repository-name}&lt;br /&gt;
            &amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;/init-param&amp;gt;
&lt;/pre&gt;

  &lt;p&gt;As you can see it, these values are defining the RMI&lt;/p&gt;

  &lt;ul&gt;
   &lt;li&gt;listening port (default is 1099: you can leave this field empty)&lt;/li&gt;

   &lt;li&gt;listening host: I put &lt;i&gt;jcrserver&lt;/i&gt; because we have 2 tomcat servers
   on localhost: to avoid confusion, this one has to be named differently.
   &lt;b&gt;Note that I don't know if the host name has to match the machine name:
   this has to be tested&lt;/b&gt;&lt;/li&gt;

   &lt;li&gt;url of the repository. If you leave this field blank, default will be
   &lt;i&gt;//jcrserver:1099/jackrabbit.repository&lt;/i&gt; in our case.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;You should uncomment the following lines too and change to the right RMI
  url (see above for the url)&lt;/p&gt;
&lt;pre&gt;
       &amp;lt;!--&lt;br /&gt;
            RMI url, if RMI remoting is needed&lt;br /&gt;
        --&amp;gt;&lt;br /&gt;
        &amp;lt;init-param&amp;gt;&lt;br /&gt;
            &amp;lt;param-name&amp;gt;rmi-uri&amp;lt;/param-name&amp;gt;&lt;br /&gt;
            &amp;lt;param-value&amp;gt;//jcrserver:1099/jackrabbit.repository&amp;lt;/param-value&amp;gt;&lt;br /&gt;
            &amp;lt;description&amp;gt;The URI for the RMI connection.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;/init-param&amp;gt;
&lt;/pre&gt;

  &lt;h1&gt;Testing with Funambol&lt;/h1&gt;

  &lt;p&gt;Before considering to have a working tomcat repository server, please
  check that the server has been launched as root. Otherwise you might
  experience some end of file problems at runtime. To check if the RMI
  registry is correctly launched, execute &lt;i&gt;netstat -l&lt;/i&gt;: you should have
  the following line:&lt;/p&gt;
&lt;pre&gt;
tcp        0      0 jcrserver:rmiregistry      *:*                     LISTEN&lt;br /&gt;
&lt;/pre&gt;

  &lt;p&gt;Then, you will have to download the latest Funambol JCR connector sources
  on Nuxeo SVN (see links below). You will need to build both
  org.nuxeo.sync.jcr and org.nuxeo.sync.jcr.extensions modules and deploy them
  into Funambol (see the projects README files for detailled
  instructions).&lt;/p&gt;

  &lt;p&gt;Then use &lt;i&gt;funamboladmin&lt;/i&gt; program to create a new JCR source
  instance. You will have to set&lt;/p&gt;

  &lt;ul&gt;
   &lt;li&gt;the &lt;b&gt;handler class name&lt;/b&gt; to
   &lt;i&gt;org.nuxeo.sync.jcr.jackrabbit.RmiHandler&lt;/i&gt;&lt;/li&gt;

   &lt;li&gt;the &lt;b&gt;JCR repository source URL&lt;/b&gt; to
   &lt;i&gt;//jcrserver:1099/jackrabbit.repository&lt;/i&gt;&lt;/li&gt;

   &lt;li&gt;the workspace can be left empty to use the default JCR workspace.&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Now you should be able to test this connector using the Funambol
  command-line client. There is nothing to synchronize as the methods aren't
  implemented in the connector yet.&lt;/p&gt;

  &lt;p&gt;Thus stay tuned...&lt;/p&gt;</description>
    <link>http://blogs.nuxeo.com/sections/blogs/cedric_bosdonnat/2006_04_24_jcr-server-and-funambol</link>
    <dc:date>2006-04-24</dc:date>
    <dc:creator>cbosdonnat</dc:creator>
    <dc:contributor>Cedric Bosdonnat, root</dc:contributor>
    <dc:language>en</dc:language>
    <dc:subject>apogee</dc:subject>

  </item>


  <xhtml:script id="js" type="text/javascript" src="http://blogs.nuxeo.com/rss.js" />

</rdf:RDF>
