Hello community,

here is the log from the commit of package libkolabxml for openSUSE:Factory 
checked in at 2015-04-06 00:23:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libkolabxml (Old)
 and      /work/SRC/openSUSE:Factory/.libkolabxml.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libkolabxml"

Changes:
--------
--- /work/SRC/openSUSE:Factory/libkolabxml/libkolabxml.changes  2014-12-16 
14:50:55.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.libkolabxml.new/libkolabxml.changes     
2015-04-06 00:23:58.000000000 +0200
@@ -1,0 +2,21 @@
+Wed Apr  1 16:59:03 UTC 2015 - [email protected]
+
+- New upstream release 1.1.0
+- Drop patch (upstream inclusion):
+  - libkolabxml-1.0.3_make_version_attribute_not_a_fixed_value.patch
+
+-------------------------------------------------------------------
+Sat Mar 28 12:23:16 UTC 2015 - [email protected]
+
+- Add libkolabxml-1.0.3_make_version_attribute_not_a_fixed_value.patch:
+  Instead of a fixed value, we only use a default value.
+  Fixes problems where objects created with version string '3.0dev'
+  can not be fetched/displayed.
+- Convert %with_java to %bcond_without java
+
+-------------------------------------------------------------------
+Mon Mar 23 08:08:25 UTC 2015 - [email protected]
+
+- Allow building without mono bindings
+
+-------------------------------------------------------------------

Old:
----
  libkolabxml-1.0.3.tar.gz

New:
----
  libkolabxml-1.1.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libkolabxml.spec ++++++
--- /var/tmp/diff_new_pack.92kwup/_old  2015-04-06 00:23:58.000000000 +0200
+++ /var/tmp/diff_new_pack.92kwup/_new  2015-04-06 00:23:58.000000000 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package libkolabxml
 #
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -15,20 +15,18 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
-%define with_java 1
-%define with_mono 1
-%if 0%{?suse_version} == 1315
-%define with_mono 0
-%endif
+
 %if 0%{?suse_version} < 1220
-%define with_java 0
+%define _without_java 1
 %endif
+%bcond_without java
+%bcond_without mono
 
 %global php_extdir %{_libdir}/php5/extensions
 %global php_confdir %{_sysconfdir}/php5/conf.d
 %define libname %{name}1
 Name:           libkolabxml
-Version:        1.0.3
+Version:        1.1.0
 Release:        0
 Summary:        Kolab XML Format Schema Definitions Library
 License:        LGPL-3.0+
@@ -42,14 +40,14 @@
 BuildRequires:  boost-devel
 BuildRequires:  cmake >= 2.6
 BuildRequires:  gcc-c++
-%if 0%{?with_java}
+%if %{with java}
 BuildRequires:  gcc-java
 BuildRequires:  java-openjdk
 %endif
 BuildRequires:  libcurl-devel
 BuildRequires:  libqt4-devel
 BuildRequires:  libxerces-c-devel
-%if 0%{?with_mono}
+%if %{with mono}
 BuildRequires:  mono-devel
 %endif
 BuildRequires:  php-devel >= 5.3
@@ -108,7 +106,6 @@
 - Canonical storage format
 - Supports Todos/Events/Journals/Contacts/Distribution 
Lists/Notes/Configurations
 
-%if 0%{?with_java}
 %package -n java-%{libname}
 Summary:        Java bindings for %{name}
 Group:          Development/Languages/Java
@@ -128,9 +125,7 @@
 - Supports Todos/Events/Journals/Contacts/Distribution 
Lists/Notes/Configurations
 
 This package provides the java bindings for Libkolabxml
-%endif
 
-%if 0%{?with_mono}
 %package -n mono-%{libname}
 Summary:        Mono (C#) bindings for %{name}
 Group:          Development/Languages/Mono
@@ -150,7 +145,6 @@
 - Supports Todos/Events/Journals/Contacts/Distribution 
Lists/Notes/Configurations
 
 This package provides the mono (C#) bindings for Libkolabxml
-%endif
 
 %package -n php-%{libname}
 Summary:        PHP bindings for %{name}
@@ -216,12 +210,12 @@
 # no-undefined does not work as the php bindings are "magic"
 %cmake \
     -DCMAKE_EXE_LINKER_FLAGS=-Wl,--as-needed 
-DCMAKE_MODULE_LINKER_FLAGS=-Wl,--as-needed 
-DCMAKE_SHARED_LINKER_FLAGS=-Wl,--as-needed \
-%if 0%{?with_java}
+%if %{with java}
     -DJAVA_BINDINGS=TRUE -DJAVA_INSTALL_DIR=%{_jnidir} \
 %endif
     -DPHP_BINDINGS=TRUE -DPHP_INSTALL_DIR=%{php_extdir}\
     -DPYTHON_BINDINGS=TRUE -DPYTHON_INSTALL_DIR=%{python_sitearch} \
-%if 0%{?with_mono}
+%if %{with mono}
     -DCSHARP_BINDINGS=TRUE -DCSHARP_INSTALL_DIR=%{_libexecdir}/mono/ \
 %endif
     -DBUILD_TESTS=FALSE \
@@ -272,7 +266,7 @@
 %{_datadir}/php5/kolabformat.php
 %{php_extdir}/kolabformat.so
 
-%if 0%{?with_java}
+%if %{with java}
 %files -n java-%{libname}
 %defattr(-,root,root)
 %doc COPYING
@@ -280,7 +274,7 @@
 %{_libdir}/java/*
 %endif
 
-%if 0%{?with_mono}
+%if %{with mono}
 %files -n mono-%{libname}
 %defattr(-,root,root)
 %doc COPYING

++++++ libkolabxml-1.0.3.tar.gz -> libkolabxml-1.1.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/CMakeLists.txt 
new/libkolabxml-1.1.0/CMakeLists.txt
--- old/libkolabxml-1.0.3/CMakeLists.txt        2014-10-13 11:49:38.000000000 
+0200
+++ new/libkolabxml-1.1.0/CMakeLists.txt        2014-12-31 16:55:13.000000000 
+0100
@@ -41,11 +41,11 @@
 # 0.2 (0.2 development version)
 
 set (Libkolabxml_VERSION_MAJOR 1)
-set (Libkolabxml_VERSION_MINOR 0)
+set (Libkolabxml_VERSION_MINOR 1)
 # Enable the full x.y.z version only for release versions
-set (Libkolabxml_VERSION_PATCH 3)
-set (Libkolabxml_VERSION 
"${Libkolabxml_VERSION_MAJOR}.${Libkolabxml_VERSION_MINOR}.${Libkolabxml_VERSION_PATCH}"
 )
-#set (Libkolabxml_VERSION 
"${Libkolabxml_VERSION_MAJOR}.${Libkolabxml_VERSION_MINOR}" )
+set (Libkolabxml_VERSION_PATCH 0)
+#set (Libkolabxml_VERSION 
"${Libkolabxml_VERSION_MAJOR}.${Libkolabxml_VERSION_MINOR}.${Libkolabxml_VERSION_PATCH}"
 )
+set (Libkolabxml_VERSION 
"${Libkolabxml_VERSION_MAJOR}.${Libkolabxml_VERSION_MINOR}" )
 
 set (Libkolabxml_VERSION_STRING ${CMAKE_PROJECT_NAME}-${Libkolabxml_VERSION})
 set (KOLAB_FORMAT_VERSION "3.1.0")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/README new/libkolabxml-1.1.0/README
--- old/libkolabxml-1.0.3/README        2014-10-13 11:49:38.000000000 +0200
+++ new/libkolabxml-1.1.0/README        2014-12-31 16:55:13.000000000 +0100
@@ -1,7 +1,10 @@
 = About =
 
-Libkolabxml is the reference implementation of the Kolab XML Format as defined 
in http://wiki.kolab.org/User:Mollekopf/Drafts/KEP:17.
-It provides serialization/deserialization from/to in-memory representations 
for all Kolab Objects, including input validation.
+Libkolabxml is the reference implementation of the Kolab XML Format as
+defined in http://wiki.kolab.org/User:Mollekopf/Drafts/KEP:17.
+
+It provides serialization/deserialization from/to in-memory
+representations for all Kolab Objects, including input validation.
 
 = Bindings =
 
@@ -15,60 +18,72 @@
 
 Build with:
 
-$mkdir build
-$cd build
-$cmake ..
-$make
+$ mkdir build
+$ cd build
+$ cmake ..
+$ make
 
 == CMake options ==
 
-Options can either be supplied on the commandline or edited in the cmake cache.
+Options can either be supplied on the commandline or edited in the
+cmake cache.
 
 Library installation path:
 
-LIB_INSTALL_DIR=/usr/lib
+    LIB_INSTALL_DIR=/usr/lib
+
+Note that LIB_SUFFIX is honored since version 1.0.2
 
 Set the installation prefix:
 
-CMAKE_INSTALL_PREFIX=/usr
+    CMAKE_INSTALL_PREFIX=/usr
 
 Installation location for header files:
 
-INCLUDE_INSTALL_DIR=/usr/include
+    INCLUDE_INSTALL_DIR=/usr/include
 
-Building of bindings can be controlled using cmake configuration options:
-PYTHON_BINDINGS
-PHP_BINDINGS
-JAVA_BINDINGS
-CSHARP_BINDINGS
+Building of bindings can be controlled using cmake configuration
+options:
+
+    PYTHON_BINDINGS
+    PHP_BINDINGS
+    JAVA_BINDINGS
+    CSHARP_BINDINGS
 
 The path to install the bindings:
-PYTHON_INSTALL_DIR
-PHP_INSTALL_DIR
-JAVA_INSTALL_DIR
-CSHARP_INSTALL_DIR
+
+    PYTHON_INSTALL_DIR
+    PHP_INSTALL_DIR
+    JAVA_INSTALL_DIR
+    CSHARP_INSTALL_DIR
 
 === Example ===
 
-Find libraries in lib64, install to /usr/lib64, build python and phpbindings:
+Find libraries in lib64, install to /usr/lib64, build python and
+phpbindings:
 
-$cmake -DCMAKE_INSTALL_PREFIX=/usr -DLIB_INSTALL_DIR=/usr/lib64 
-DPYTHON_BINDINGS=TRUE 
-DPYTHON_INSTALL_DIR=/usr/lib64/python$x.$y/site-packages/ -DPHP_BINDINGS=TRUE 
..
+$ cmake -DCMAKE_INSTALL_PREFIX=/usr -DLIB_INSTALL_DIR=/usr/lib64 \
+    -DPYTHON_BINDINGS=TRUE \
+    -DPYTHON_INSTALL_DIR=/usr/lib64/python$x.$y/site-packages/ \
+    -DPHP_BINDINGS=TRUE ..
 
 == Requirements ==
 
 Minimum requirements are:
--cmake 2.6
--boost >= 1.41
--xerces-c >= 3.0
--cxx >= 3.0 (http://www.codesynthesis.com/products/xsd/)
--libcurl
+
+    - cmake 2.6
+    - boost >= 1.41
+    - xerces-c >= 3.0
+    - cxx >= 3.0 (http://www.codesynthesis.com/products/xsd/)
+    - libcurl
 
 For further features:
--SWIG >= 2.0
+
+    - SWIG >= 2.0
 
 For building test (controlled by -DBUILD_TESTS=TRUE):
--Qt >= 4.7
 
+    - Qt >= 4.7
 
-For further information see src/DEVELOPMENT.
 
+For further information see src/DEVELOPMENT.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libkolabxml-1.0.3/cmake/modules/LibkolabxmlConfigVersion.cmake.in 
new/libkolabxml-1.1.0/cmake/modules/LibkolabxmlConfigVersion.cmake.in
--- old/libkolabxml-1.0.3/cmake/modules/LibkolabxmlConfigVersion.cmake.in       
2014-10-13 11:49:38.000000000 +0200
+++ new/libkolabxml-1.1.0/cmake/modules/LibkolabxmlConfigVersion.cmake.in       
2014-12-31 16:55:13.000000000 +0100
@@ -3,9 +3,13 @@
 # if the current version is >= requested version.
 
 set(PACKAGE_VERSION 
@Libkolabxml_VERSION_MAJOR@.@Libkolabxml_VERSION_MINOR@.@Libkolabxml_VERSION_PATCH@)
+set(PACKAGE_VERSION_MAJOR @Libkolabxml_VERSION_MAJOR@)
 
 if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" )
    set(PACKAGE_VERSION_COMPATIBLE FALSE)
+elseif(NOT "${PACKAGE_FIND_VERSION_MAJOR}" VERSION_EQUAL 
"${PACKAGE_VERSION_MAJOR}" )
+   #Major versions are incompatible and require an explicit switch
+   set(PACKAGE_VERSION_COMPATIBLE FALSE)
 else("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}" )
    set(PACKAGE_VERSION_COMPATIBLE TRUE)
    if( "${PACKAGE_FIND_VERSION}" STREQUAL "${PACKAGE_VERSION}")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/schemas/kolabformat.xsd 
new/libkolabxml-1.1.0/schemas/kolabformat.xsd
--- old/libkolabxml-1.0.3/schemas/kolabformat.xsd       2014-10-13 
11:49:38.000000000 +0200
+++ new/libkolabxml-1.1.0/schemas/kolabformat.xsd       2014-12-31 
16:55:13.000000000 +0100
@@ -4,14 +4,10 @@
     xmlns="http://kolab.org";
     elementFormDefault="qualified">
 
+  <xs:complexType name="KolabBase">
+       <xs:attribute name="version" type="xs:string" default="3.0" />
+  </xs:complexType>
 
-    
-    <xs:complexType name="KolabBase">
-        <xs:attribute name="version" type="xs:string" fixed="3.0" />
-    </xs:complexType>
-
-
-  
   <xs:complexType name="attachmentPropType">
     <xs:sequence> 
       <xs:element name="parameters">
@@ -102,6 +98,7 @@
       <xs:enumeration value="dictionary"/>
       <xs:enumeration value="categorycolor"/>
       <xs:enumeration value="snippets"/>
+      <xs:enumeration value="relation"/>
       <xs:enumeration value="file_driver"/>
     </xs:restriction>
   </xs:simpleType>
@@ -168,6 +165,14 @@
           <!-- Snippets -->
           <xs:element name="name" type="xs:string" minOccurs="0"/>
           <xs:element name="snippet" type="Snippet" minOccurs="0" 
maxOccurs="unbounded"/>
+          <!-- Relation -->
+          <!-- xs:element name="name" type="xs:string" minOccurs="0"/ -->
+          <xs:element name="relationType" type="xs:string" minOccurs="0"/>
+          <xs:element name="color" type="xs:string" minOccurs="0"/>
+          <xs:element name="iconName" type="xs:string" minOccurs="0"/>
+          <xs:element name="priority" type="xs:integer" minOccurs="0"/>
+          <xs:element name="parent" type="xs:string" minOccurs="0"/>
+          <xs:element name="member" type="xs:string" minOccurs="0" 
maxOccurs="unbounded"/>
           <!-- FileDriver -->
           <xs:element name="driver" type="xs:string" minOccurs="0"/>
           <xs:element name="title" type="xs:string" minOccurs="0"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libkolabxml-1.0.3/src/containers/kolabconfiguration.cpp 
new/libkolabxml-1.1.0/src/containers/kolabconfiguration.cpp
--- old/libkolabxml-1.0.3/src/containers/kolabconfiguration.cpp 2014-10-13 
11:49:38.000000000 +0200
+++ new/libkolabxml-1.1.0/src/containers/kolabconfiguration.cpp 2014-12-31 
16:55:13.000000000 +0100
@@ -25,6 +25,7 @@
     std::vector<CategoryColor> categoryColor;
     Dictionary dictionary;
     SnippetsCollection snippets;
+    Relation relation;
     FileDriver fileDriver;
     ConfigurationType type;
     std::string uid;
@@ -58,6 +59,13 @@
     d->type = TypeSnippet;
 }
 
+Configuration::Configuration(const Relation &relation)
+:   d(new Configuration::Private)
+{
+    d->relation = relation;
+    d->type = TypeRelation;
+}
+
 Configuration::Configuration(const FileDriver &fileDriver)
 :   d(new Configuration::Private)
 {
@@ -137,6 +145,11 @@
     return d->snippets;
 }
 
+Relation Configuration::relation() const
+{
+    return d->relation;
+}
+
 FileDriver Configuration::fileDriver() const
 {
     return d->fileDriver;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libkolabxml-1.0.3/src/containers/kolabconfiguration.h 
new/libkolabxml-1.1.0/src/containers/kolabconfiguration.h
--- old/libkolabxml-1.0.3/src/containers/kolabconfiguration.h   2014-10-13 
11:49:38.000000000 +0200
+++ new/libkolabxml-1.1.0/src/containers/kolabconfiguration.h   2014-12-31 
16:55:13.000000000 +0100
@@ -109,6 +109,47 @@
     std::vector<Snippet> mSnippets;
 };
 
+struct Relation {
+    Relation(){}
+    Relation(const std::string &name, const std::string &type): mName(name), 
mType(type) {}
+
+    bool operator==(const Relation &other) const {
+        return mName == other.mName &&
+               mType == other.mType &&
+               mColor == other.mColor &&
+               mIconName == other.mIconName &&
+               mParent == other.mParent &&
+               mMembers == other.mMembers;
+    }
+
+    std::string name() const { return mName; }
+    std::string type() const { return mType; }
+
+    void setColor(const std::string &color) { mColor = color; }
+    std::string color() const { return mColor; }
+
+    void setIconName(const std::string &icon) { mIconName = icon; }
+    std::string iconName() const { return mIconName; }
+
+    void setParent(const std::string &parent) { mParent = parent; }
+    std::string parent() const { return mParent; }
+
+    void setPriority(int priority) { mPriority = priority; }
+    int priority() const { return mPriority; }
+
+    void setMembers(const std::vector<std::string> &members) { mMembers = 
members; }
+    std::vector<std::string> members() const { return mMembers; }
+
+private:
+    std::string mName;
+    std::string mType;
+    std::string mColor;
+    std::string mIconName;
+    std::string mParent;
+    int mPriority;
+    std::vector<std::string> mMembers;
+};
+
 struct FileDriver {
     FileDriver(): mEnabled(false) {}
     FileDriver(const std::string &driver, const std::string &title): 
mDriver(driver), mTitle(title), mEnabled(true) {}
@@ -160,6 +201,7 @@
     Configuration(const std::vector<CategoryColor> &);
     Configuration(const Dictionary &);
     Configuration(const SnippetsCollection &);
+    Configuration(const Relation &);
     Configuration(const FileDriver &);
     Configuration(const Configuration &);
     ~Configuration();
@@ -181,12 +223,14 @@
         TypeDictionary,
         TypeCategoryColor,
         TypeSnippet,
+        TypeRelation,
         TypeFileDriver
     };
     ConfigurationType type() const;
     std::vector<CategoryColor> categoryColor() const;
     Dictionary dictionary() const;
     SnippetsCollection snippets() const;
+    Relation relation() const;
     FileDriver fileDriver() const;
 
 private:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/src/csharp/CMakeLists.txt 
new/libkolabxml-1.1.0/src/csharp/CMakeLists.txt
--- old/libkolabxml-1.0.3/src/csharp/CMakeLists.txt     2014-10-13 
11:49:38.000000000 +0200
+++ new/libkolabxml-1.1.0/src/csharp/CMakeLists.txt     2014-12-31 
16:55:13.000000000 +0100
@@ -34,6 +34,8 @@
         ${CMAKE_CURRENT_BINARY_DIR}/Event.cs
         ${CMAKE_CURRENT_BINARY_DIR}/File.cs
         ${CMAKE_CURRENT_BINARY_DIR}/FileDriver.cs
+        ${CMAKE_CURRENT_BINARY_DIR}/Freebusy.cs
+        ${CMAKE_CURRENT_BINARY_DIR}/FreebusyPeriod.cs
         ${CMAKE_CURRENT_BINARY_DIR}/Geo.cs
         ${CMAKE_CURRENT_BINARY_DIR}/Journal.cs
         ${CMAKE_CURRENT_BINARY_DIR}/Key.cs
@@ -41,17 +43,15 @@
         ${CMAKE_CURRENT_BINARY_DIR}/NameComponents.cs
         ${CMAKE_CURRENT_BINARY_DIR}/Note.cs
         ${CMAKE_CURRENT_BINARY_DIR}/PartStatus.cs
+        ${CMAKE_CURRENT_BINARY_DIR}/Period.cs
         ${CMAKE_CURRENT_BINARY_DIR}/RecurrenceRule.cs
         ${CMAKE_CURRENT_BINARY_DIR}/Related.cs
+        ${CMAKE_CURRENT_BINARY_DIR}/Relation.cs
         ${CMAKE_CURRENT_BINARY_DIR}/Relative.cs
         ${CMAKE_CURRENT_BINARY_DIR}/Role.cs
         ${CMAKE_CURRENT_BINARY_DIR}/Snippet.cs
         ${CMAKE_CURRENT_BINARY_DIR}/SnippetsCollection.cs
         ${CMAKE_CURRENT_BINARY_DIR}/Status.cs
-        ${CMAKE_CURRENT_BINARY_DIR}/Snippet.cs
-        ${CMAKE_CURRENT_BINARY_DIR}/SnippetsCollection.cs
-        ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_Kolab__Freebusy.cs
-        ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_std__vectorT_Kolab__Todo_t.cs
         ${CMAKE_CURRENT_BINARY_DIR}/Telephone.cs
         ${CMAKE_CURRENT_BINARY_DIR}/Todo.cs
         ${CMAKE_CURRENT_BINARY_DIR}/Url.cs
@@ -67,13 +67,16 @@
         ${CMAKE_CURRENT_BINARY_DIR}/vectordaypos.cs
         ${CMAKE_CURRENT_BINARY_DIR}/vectoremail.cs
         ${CMAKE_CURRENT_BINARY_DIR}/vectorevent.cs
+        ${CMAKE_CURRENT_BINARY_DIR}/vectorfreebusyperiod.cs
         ${CMAKE_CURRENT_BINARY_DIR}/vectorgeo.cs
         ${CMAKE_CURRENT_BINARY_DIR}/vectori.cs
         ${CMAKE_CURRENT_BINARY_DIR}/vectorkey.cs
+        ${CMAKE_CURRENT_BINARY_DIR}/vectorperiod.cs
         ${CMAKE_CURRENT_BINARY_DIR}/vectorrelated.cs
         ${CMAKE_CURRENT_BINARY_DIR}/vectors.cs
         ${CMAKE_CURRENT_BINARY_DIR}/vectorsnippet.cs
         ${CMAKE_CURRENT_BINARY_DIR}/vectortelephone.cs
+        ${CMAKE_CURRENT_BINARY_DIR}/vectortodo.cs
         ${CMAKE_CURRENT_BINARY_DIR}/vectorurl.cs
         ${CMAKE_CURRENT_BINARY_DIR}/Weekday.cs
     )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/src/java/CMakeLists.txt 
new/libkolabxml-1.1.0/src/java/CMakeLists.txt
--- old/libkolabxml-1.0.3/src/java/CMakeLists.txt       2014-10-13 
11:49:38.000000000 +0200
+++ new/libkolabxml-1.1.0/src/java/CMakeLists.txt       2014-12-31 
16:55:13.000000000 +0100
@@ -23,7 +23,10 @@
         ${CMAKE_CURRENT_BINARY_DIR}/Duration.java
         ${CMAKE_CURRENT_BINARY_DIR}/ErrorSeverity.java
         ${CMAKE_CURRENT_BINARY_DIR}/Event.java
+        ${CMAKE_CURRENT_BINARY_DIR}/File.java
         ${CMAKE_CURRENT_BINARY_DIR}/FileDriver.java
+        ${CMAKE_CURRENT_BINARY_DIR}/Freebusy.java
+        ${CMAKE_CURRENT_BINARY_DIR}/FreebusyPeriod.java
         ${CMAKE_CURRENT_BINARY_DIR}/Geo.java
         ${CMAKE_CURRENT_BINARY_DIR}/Journal.java
         ${CMAKE_CURRENT_BINARY_DIR}/Key.java
@@ -33,14 +36,15 @@
         ${CMAKE_CURRENT_BINARY_DIR}/NameComponents.java
         ${CMAKE_CURRENT_BINARY_DIR}/Note.java
         ${CMAKE_CURRENT_BINARY_DIR}/PartStatus.java
+        ${CMAKE_CURRENT_BINARY_DIR}/Period.java
         ${CMAKE_CURRENT_BINARY_DIR}/RecurrenceRule.java
+        ${CMAKE_CURRENT_BINARY_DIR}/Relation.java
         ${CMAKE_CURRENT_BINARY_DIR}/Related.java
         ${CMAKE_CURRENT_BINARY_DIR}/Relative.java
         ${CMAKE_CURRENT_BINARY_DIR}/Role.java
         ${CMAKE_CURRENT_BINARY_DIR}/Status.java
         ${CMAKE_CURRENT_BINARY_DIR}/Snippet.java
         ${CMAKE_CURRENT_BINARY_DIR}/SnippetsCollection.java
-        ${CMAKE_CURRENT_BINARY_DIR}/SWIGTYPE_p_Kolab__Freebusy.java
         ${CMAKE_CURRENT_BINARY_DIR}/Telephone.java
         ${CMAKE_CURRENT_BINARY_DIR}/Todo.java
         ${CMAKE_CURRENT_BINARY_DIR}/Url.java
@@ -54,13 +58,18 @@
         ${CMAKE_CURRENT_BINARY_DIR}/vectorcs.java
         ${CMAKE_CURRENT_BINARY_DIR}/vectordatetime.java
         ${CMAKE_CURRENT_BINARY_DIR}/vectordaypos.java
+        ${CMAKE_CURRENT_BINARY_DIR}/vectoremail.java
+        ${CMAKE_CURRENT_BINARY_DIR}/vectorevent.java
+        ${CMAKE_CURRENT_BINARY_DIR}/vectorfreebusyperiod.java
         ${CMAKE_CURRENT_BINARY_DIR}/vectorgeo.java
         ${CMAKE_CURRENT_BINARY_DIR}/vectori.java
         ${CMAKE_CURRENT_BINARY_DIR}/vectorkey.java
+        ${CMAKE_CURRENT_BINARY_DIR}/vectorperiod.java
         ${CMAKE_CURRENT_BINARY_DIR}/vectorrelated.java
         ${CMAKE_CURRENT_BINARY_DIR}/vectors.java
         ${CMAKE_CURRENT_BINARY_DIR}/vectorsnippet.java
         ${CMAKE_CURRENT_BINARY_DIR}/vectortelephone.java
+        ${CMAKE_CURRENT_BINARY_DIR}/vectortodo.java
         ${CMAKE_CURRENT_BINARY_DIR}/vectorurl.java
         ${CMAKE_CURRENT_BINARY_DIR}/Weekday.java
     )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/src/kolabconversions.h 
new/libkolabxml-1.1.0/src/kolabconversions.h
--- old/libkolabxml-1.0.3/src/kolabconversions.h        2014-10-13 
11:49:38.000000000 +0200
+++ new/libkolabxml-1.1.0/src/kolabconversions.h        2014-12-31 
16:55:13.000000000 +0100
@@ -45,6 +45,13 @@
 using namespace Kolab::Utils;
 using namespace Kolab::Shared;
 
+template <typename T>
+std::vector<std::string> toStringList(const xsd::cxx::tree::sequence<T> &s)
+{
+    std::vector<std::string> d;
+    std::copy(s.begin(), s.end(), std::back_inserter(d));
+    return d;
+}
 
 Kolab::Attachment toAttachment(KolabXSD::attachmentPropType aProp)
 {
@@ -120,7 +127,7 @@
     return colors;
 }
 
-KolabXSD::Configuration::type_type 
getConfiguratinoType(Kolab::Configuration::ConfigurationType t)
+KolabXSD::Configuration::type_type 
getConfigurationType(Kolab::Configuration::ConfigurationType t)
 {
     switch (t) {
         case Kolab::Configuration::TypeDictionary:
@@ -129,6 +136,8 @@
             return KolabXSD::Configuration::type_type::categorycolor;
         case Kolab::Configuration::TypeSnippet:
             return KolabXSD::Configuration::type_type::snippets;
+        case Kolab::Configuration::TypeRelation:
+            return KolabXSD::Configuration::type_type::relation;
         case Kolab::Configuration::TypeFileDriver:
             return KolabXSD::Configuration::type_type::file_driver;
         default:
@@ -161,7 +170,7 @@
 //             WARNING("missing last_modification_date, fallback to current 
timestamp");
             lastModificationDate = fromDateTime(timestamp());
         }
-        KolabXSD::Configuration n(uid, getProductId(prod), created, 
lastModificationDate, getConfiguratinoType(configuration.type()));
+        KolabXSD::Configuration n(uid, getProductId(prod), created, 
lastModificationDate, getConfigurationType(configuration.type()));
 
         switch (configuration.type()) {
             case Kolab::Configuration::TypeDictionary: {
@@ -191,6 +200,29 @@
                 }
             }
                 break;
+            case Kolab::Configuration::TypeRelation: {
+                const Kolab::Relation &relation = configuration.relation();
+                n.name(relation.name());
+                if (!relation.type().empty()) {
+                    n.relationType(relation.type());
+                }
+                if (!relation.color().empty()) {
+                    n.color(relation.color());
+                }
+                if (!relation.iconName().empty()) {
+                    n.iconName(relation.iconName());
+                }
+                if (!relation.parent().empty()) {
+                    n.parent(relation.parent());
+                }
+                if (!relation.priority() != 0) {
+                    
n.priority(fromInt<KolabXSD::Configuration::priority_type>(relation.priority()));
+                }
+                BOOST_FOREACH(const std::string &s, relation.members()) {
+                    n.member().push_back(s);
+                }
+            }
+                break;
             case Kolab::Configuration::TypeFileDriver: {
                 const Kolab::FileDriver &fileDriver = 
configuration.fileDriver();
                 n.driver(fileDriver.driver());
@@ -531,6 +563,31 @@
             collection.setSnippets(snippets);
 
             n = boost::shared_ptr<Kolab::Configuration>(new 
Kolab::Configuration(collection));
+        } else if (configuration->type() == 
KolabXSD::ConfigurationType::relation) {
+            std::string name;
+            if (configuration->name()) {
+                name = *configuration->name();
+            }
+            std::string type;
+            if (configuration->relationType()) {
+                type = *configuration->relationType();
+            }
+            Relation relation(name, type);
+            if (configuration->color()) {
+                relation.setColor(*configuration->color());
+            }
+            if (configuration->iconName()) {
+                relation.setIconName(*configuration->iconName());
+            }
+            if (configuration->parent()) {
+                relation.setParent(*configuration->parent());
+            }
+            if (configuration->priority()) {
+                relation.setPriority(convertToInt(*configuration->priority()));
+            }
+            relation.setMembers(toStringList(configuration->member()));
+
+            n = boost::shared_ptr<Kolab::Configuration>(new 
Kolab::Configuration(relation));
         } else if (configuration->type() == 
KolabXSD::ConfigurationType::file_driver) {
             std::string driver;
             if (configuration->driver()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/src/kolabformat.i 
new/libkolabxml-1.1.0/src/kolabformat.i
--- old/libkolabxml-1.0.3/src/kolabformat.i     2014-10-13 11:49:38.000000000 
+0200
+++ new/libkolabxml-1.1.0/src/kolabformat.i     2014-12-31 16:55:13.000000000 
+0100
@@ -15,6 +15,7 @@
     #include "containers/kolabnote.h"
     #include "containers/kolabconfiguration.h"
     #include "containers/kolabfile.h"
+    #include "containers/kolabfreebusy.h"
 %}
 
 %include "std_string.i"
@@ -39,12 +40,15 @@
     %template(vectorevent) vector<Kolab::Event>;
     %template(vectorrelated) vector<Kolab::Related>;
     %template(vectortelephone) vector<Kolab::Telephone>;
+    %template(vectortodo) vector<Kolab::Todo>;
     %template(vectoremail) vector<Kolab::Email>;
     %template(vectordatetime) vector<Kolab::cDateTime>;
     %template(vectorurl) vector<Kolab::Url>;
     %template(vectorkey) vector<Kolab::Key>;
     %template(vectorcategorycolor) vector<Kolab::CategoryColor>;
     %template(vectorsnippet) vector<Kolab::Snippet>;
+    %template(vectorfreebusyperiod) vector<Kolab::FreebusyPeriod>;
+    %template(vectorperiod) vector<Kolab::Period>;
 };
 
 %rename(readKolabFile) Kolab::readFile;
@@ -60,3 +64,4 @@
 %include "containers/kolabnote.h"
 %include "containers/kolabconfiguration.h"
 %include "containers/kolabfile.h"
+%include "containers/kolabfreebusy.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/src/objectvalidation.cpp 
new/libkolabxml-1.1.0/src/objectvalidation.cpp
--- old/libkolabxml-1.0.3/src/objectvalidation.cpp      2014-10-13 
11:49:38.000000000 +0200
+++ new/libkolabxml-1.1.0/src/objectvalidation.cpp      2014-12-31 
16:55:13.000000000 +0100
@@ -31,7 +31,7 @@
 
 static boost::unordered_set<std::string> initializeTzSet() {
     boost::unordered_set<std::string> set;
-    for (int i = 0; i < numOlsonTimezones; i++) {
+    for (unsigned int i = 0; i < numOlsonTimezones; i++) {
         set.insert(olsonTimezones[i]);
     }
     return set;
@@ -110,32 +110,32 @@
     ASSERTVALID(journal.start());
 }
 
-void validate(const Contact& contact)
+void validate(const Contact& /* contact */)
 {
 
 }
 
-void validate(const DistList& distlist)
+void validate(const DistList& /* distlist */)
 {
 
 }
 
-void validate(const Freebusy& freebusy)
+void validate(const Freebusy& /* freebusy */)
 {
 
 }
 
-void validate(const Note& note)
+void validate(const Note& /* note */)
 {
 
 }
 
-void validate(const Configuration& configuration)
+void validate(const Configuration& /* configuration */)
 {
 
 }
 
-void validate(const File& file)
+void validate(const File& /* file */)
 {
 
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/src/php/test.php 
new/libkolabxml-1.1.0/src/php/test.php
--- old/libkolabxml-1.0.3/src/php/test.php      2014-10-13 11:49:38.000000000 
+0200
+++ new/libkolabxml-1.1.0/src/php/test.php      2014-12-31 16:55:13.000000000 
+0100
@@ -121,6 +121,52 @@
 #print $xml;
 assertcontains($xml, '<byday>2MO</byday><byday>-1FR</byday>', "Recurrence by 
weekday");
 
+$att1 = new Attendee(new ContactReference("[email protected]"));
+$att1->setPartStat(kolabformat::PartDelegated);
+$att2 = new Attendee(new ContactReference("[email protected]"));
+$att1->setPartStat(kolabformat::PartNeedsAction);
+
+$vdelegatees = new vectorcontactref;
+$vdelegatees->push($att2->contact());
+$att1->setDelegatedTo($vdelegatees);
+
+$vdelegators = new vectorcontactref;
+$vdelegators->push($att1->contact());
+$att2->setDelegatedFrom($vdelegators);
+
+$attendees = new vectorattendee;
+$attendees->push($att1);
+$attendees->push($att2);
+$e1->setAttendees($attendees);
+
+$xml = kolabformat::writeEvent($e1);
+assertcontains($xml, 
'<delegated-to><cal-address>mailto:%3Cjane%40kolab.org%3E</cal-address>', 
"Delegated-To");
+assertcontains($xml, 
'<delegated-from><cal-address>mailto:%3Cjohn%40kolab.org%3E</cal-address>', 
"Delegated-From");
+
+$e2 = kolabformat::readEvent($xml, false);
+$attendees_ = $e2->attendees();
+assertequal($attendees_->size(), 2, "Event::attendees()");
+$att1_ = $attendees_->get(0);
+$att2_ = $attendees_->get(1);
+assertequal($att1_->contact()->email(), "[email protected]", "Attendee email");
+$vdelegatees_ = $att1_->delegatedTo();
+assertequal($vdelegatees_->size(), 1, "Attendee::delegatedTo()");
+assertequal($vdelegatees_->get(0)->email(), "[email protected]", "Delegated-To 
email");
+
+
+/////// Test Todo
+
+$t = new Todo();
+$t->setCreated(new cDateTime(2014,3,14, 9,5,30, true));
+$due = new cDateTime(2014,5,20, 17,30,0);
+$t->setDue($due);
+$t->setStart(new cDateTime(2014,4,30, 8,0,0));
+$t->setSummary('Test Task');
+
+$xml = kolabformat::writeTodo($t);
+#print $xml;
+assertcontains($xml, '<due><date-time>2014-05-20T17:30:00</date-time></due>', 
"Todo::setDue() with date/time");
+assertcontains($xml, 
'<dtstart><date-time>2014-04-30T08:00:00</date-time></dtstart>', 
"Todo::setStart() with date/time");
 
 
 /////// Test Contact
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/src/python/test.py 
new/libkolabxml-1.1.0/src/python/test.py
--- old/libkolabxml-1.0.3/src/python/test.py    2014-10-13 11:49:38.000000000 
+0200
+++ new/libkolabxml-1.1.0/src/python/test.py    2014-12-31 16:55:13.000000000 
+0100
@@ -1,16 +1,77 @@
 import kolabformat
-e = kolabformat.Event()
+import unittest
 
-ex = e.exceptionDates()
-ex.size()
-ex.push_back(kolabformat.cDateTime(1,1,1))
-ex.size()
-e.exceptionDates().size()
-e.setExceptionDates(ex)
-e.exceptionDates().size()
-
-string = kolabformat.writeEvent(e);
-print string;
-e1 = kolabformat.readEvent(string, False);
-string = kolabformat.writeEvent(e1);
-print string;
\ No newline at end of file
+class TestKolabformat(unittest.TestCase):
+
+    def test_event_basic(self):
+        e = kolabformat.Event()
+        e.setSummary("test")
+
+        start = kolabformat.cDateTime(2014,7,1, 12,30,0)
+        start.setTimezone("Europe/London")
+        e.setStart(start)
+
+        ex = e.exceptionDates()
+        ex.size()
+        ex.push_back(kolabformat.cDateTime(2014,7,5))
+        ex.size()
+        e.exceptionDates().size()
+        e.setExceptionDates(ex)
+        e.exceptionDates().size()
+
+        xml = kolabformat.writeEvent(e)
+        e1 = kolabformat.readEvent(xml, False)
+        xml1 = kolabformat.writeEvent(e1)
+        self.assertEqual(xml, xml1)
+
+    def test_event_delegated(self):
+        e = kolabformat.Event()
+        e.setSummary("test")
+        e.setStart(kolabformat.cDateTime(2014,7,1, 12,30,0))
+
+        att1 = 
kolabformat.Attendee(kolabformat.ContactReference("[email protected]"))
+        att1.setRole(kolabformat.NonParticipant)
+        att1.setPartStat(kolabformat.PartDelegated)
+        att1.setDelegatedTo([kolabformat.ContactReference("[email protected]")])
+
+        att2 = 
kolabformat.Attendee(kolabformat.ContactReference("[email protected]"))
+        att2.setRole(kolabformat.Required)
+        att2.setPartStat(kolabformat.PartNeedsAction)
+        att2.setDelegatedFrom([kolabformat.ContactReference("[email protected]")])
+
+        e.setAttendees([att1, att2])
+        self.assertEqual(len(att1.delegatedTo()), 1)
+        self.assertEqual(len(att2.delegatedFrom()), 1)
+
+        xml = kolabformat.writeEvent(e)
+        e1 = kolabformat.readEvent(xml, False)
+        # print xml
+
+        attendees_ = e1.attendees()
+        self.assertEqual(len(attendees_), 2)
+        self.assertEqual(len(attendees_[0].delegatedTo()), 1)
+        self.assertEqual(len(attendees_[1].delegatedFrom()), 1)
+
+        delegatees = attendees_[0].delegatedTo()
+        self.assertEqual(delegatees[0].email(), "[email protected]")
+
+    def test_todo_partstat(self):
+        t = kolabformat.Todo()
+        t.setSummary("test")
+        t.setPercentComplete(40)
+
+        att = 
kolabformat.Attendee(kolabformat.ContactReference("[email protected]"))
+        att.setRole(kolabformat.Required)
+        att.setPartStat(kolabformat.PartInProcess)
+        t.setAttendees([att])
+
+        xml = kolabformat.writeTodo(t)
+        self.assertTrue("<text>IN-PROCESS</text>" in xml)
+
+        t1 = kolabformat.readTodo(xml, False)
+        attendees = t1.attendees()
+        self.assertEqual(attendees[0].partStat(), kolabformat.PartInProcess)
+
+
+if __name__ == '__main__':
+    unittest.main()
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/testfiles/testnote.xml 
new/libkolabxml-1.1.0/testfiles/testnote.xml
--- old/libkolabxml-1.0.3/testfiles/testnote.xml        2014-10-13 
11:49:38.000000000 +0200
+++ new/libkolabxml-1.1.0/testfiles/testnote.xml        1970-01-01 
01:00:00.000000000 +0100
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<note version="3.0dev1" xmlns="http://kolab.org";>
-  <!-- Common fields -->
-  <uid>uid</uid>
-  <body></body>
-  <categories></categories>
-  <creation-date>2004-05-04T15:00:00Z</creation-date>
-  <last-modification-date>2004-05-04T15:00:00Z</last-modification-date>
-  <sensitivity>public</sensitivity>
-  <inline-attachment></inline-attachment>
-  <link-attachment></link-attachment>
-  <product-id></product-id>
-  <!-- Note specific fields -->
-  <summary>summarytext</summary>
-  <background-color>#000000</background-color>
-  <foreground-color>#ffff00</foreground-color>
-</note>
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/tests/CMakeLists.txt 
new/libkolabxml-1.1.0/tests/CMakeLists.txt
--- old/libkolabxml-1.0.3/tests/CMakeLists.txt  2014-10-13 11:49:38.000000000 
+0200
+++ new/libkolabxml-1.1.0/tests/CMakeLists.txt  2014-12-31 16:55:13.000000000 
+0100
@@ -26,14 +26,19 @@
     add_test(conversiontest ${CMAKE_CURRENT_BINARY_DIR}/conversiontest)
 
     QT4_AUTOMOC(parsingtest.cpp)
-    add_executable(parsingtest parsingtest.cpp 
${CMAKE_CURRENT_BINARY_DIR}/${CONVERSIONTEST_MOC})
+    add_executable(parsingtest parsingtest.cpp 
${CMAKE_CURRENT_BINARY_DIR}/${PARSINGTEST_MOC})
     target_link_libraries(parsingtest ${QT_QTTEST_LIBRARY} 
${QT_QTCORE_LIBRARY} kolabxml ${XERCES_C})
     add_test(parsingtest ${CMAKE_CURRENT_BINARY_DIR}/parsingtest)
 
     QT4_AUTOMOC(validationtest.cpp)
-    add_executable(validationtest validationtest.cpp 
${CMAKE_CURRENT_BINARY_DIR}/${CONVERSIONTEST_MOC})
+    add_executable(validationtest validationtest.cpp 
${CMAKE_CURRENT_BINARY_DIR}/${VALIDATIONTEST_MOC})
     target_link_libraries(validationtest ${QT_QTTEST_LIBRARY} 
${QT_QTCORE_LIBRARY} kolabxml ${XERCES_C})
     add_test(validationtest ${CMAKE_CURRENT_BINARY_DIR}/validationtest)
+
+    QT4_AUTOMOC(kolabconversationtest.cpp)
+    add_executable(kolabconversationtest kolabconversationtest.cpp 
${CMAKE_CURRENT_BINARY_DIR}/${KOLABCONVERSATIONTEST_MOC})
+    target_link_libraries(kolabconversationtest ${QT_QTTEST_LIBRARY} 
${QT_QTCORE_LIBRARY} kolabxml ${XERCES_C})
+    add_test(kolabconversationtest 
${CMAKE_CURRENT_BINARY_DIR}/kolabconversationtest)
 else()
     message(WARNING "Could not build tests because qt is missing")
 endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/tests/bindingstest.cpp 
new/libkolabxml-1.1.0/tests/bindingstest.cpp
--- old/libkolabxml-1.0.3/tests/bindingstest.cpp        2014-10-13 
11:49:38.000000000 +0200
+++ new/libkolabxml-1.1.0/tests/bindingstest.cpp        2014-12-31 
16:55:13.000000000 +0100
@@ -105,6 +105,35 @@
     QCOMPARE(re.snippets(), snippets);
 }
 
+void BindingsTest::relationConfigurationCompletness()
+{
+    Kolab::Relation relation("name1", "type1");
+    relation.setColor("color");
+    relation.setIconName("icon");
+    relation.setParent("parent");
+    relation.setPriority(3);
+    std::vector<std::string> members;
+    members.push_back("member1");
+    members.push_back("member2");
+    relation.setMembers(members);
+
+    Kolab::Configuration configuration(relation);
+    configuration.setUid("uid");
+    configuration.setCreated(Kolab::cDateTime(2006,1,6,12,0,0,true)); //UTC
+    configuration.setLastModified(Kolab::cDateTime(2006,1,6,12,0,0,true)); 
//UTC
+
+    const std::string &result = Kolab::writeConfiguration(configuration);
+    QCOMPARE(Kolab::error(), Kolab::NoError);
+//     std::cout << result << std::endl;
+    const Kolab::Configuration &re = Kolab::readConfiguration(result, false);
+    QCOMPARE(Kolab::error(), Kolab::NoError);
+    QCOMPARE(re.uid(), configuration.uid());
+    QCOMPARE(re.created(), configuration.created());
+    QCOMPARE(re.lastModified(), configuration.lastModified());
+    QCOMPARE(re.type(), Kolab::Configuration::TypeRelation);
+    QCOMPARE(re.relation(), relation);
+}
+
 void BindingsTest::fileDriverConfigurationCompletness()
 {
     Kolab::FileDriver fileDriver("driver", "title");
@@ -740,6 +769,23 @@
     QCOMPARE(e.customProperties(), c.customProperties());
 }
 
+void BindingsTest::dateOnlyDates()
+{
+    Kolab::Contact c;
+    c.setUid("1045b57d-ff7f-0000-d814-867b4d7f0000");
+    c.setName("name");
+    c.setBDay(Kolab::cDateTime(2001,12,10));
+    c.setAnniversary(Kolab::cDateTime(2001,3,2));
+
+    const std::string result = Kolab::writeContact(c);
+    QVERIFY(Kolab::error() == Kolab::NoError);
+//     std::cout << result << endl;
+    Kolab::Contact e = Kolab::readContact(result, false);
+    QVERIFY(Kolab::error() == Kolab::NoError);
+    QCOMPARE(e.bDay(), c.bDay());
+    QCOMPARE(e.anniversary(), c.anniversary());
+}
+
 void BindingsTest::distlistCompletness()
 {
     std::vector<std::string> stringlist;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/tests/bindingstest.h 
new/libkolabxml-1.1.0/tests/bindingstest.h
--- old/libkolabxml-1.0.3/tests/bindingstest.h  2014-10-13 11:49:38.000000000 
+0200
+++ new/libkolabxml-1.1.0/tests/bindingstest.h  2014-12-31 16:55:13.000000000 
+0100
@@ -25,6 +25,7 @@
     void categorycolorConfigurationCompletness();
     void dictionaryConfigurationCompletness();
     void snippetConfigurationCompletness();
+    void relationConfigurationCompletness();
     void fileDriverConfigurationCompletness();
     void noteCompletness();
     void fileCompletness();
@@ -37,6 +38,7 @@
     void freebusyCompletness();
     
     void contactCompletness();
+    void dateOnlyDates();
     void distlistCompletness();
 
     void generateTimestampIfEmpty();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/tests/kolabconversationtest.cpp 
new/libkolabxml-1.1.0/tests/kolabconversationtest.cpp
--- old/libkolabxml-1.0.3/tests/kolabconversationtest.cpp       1970-01-01 
01:00:00.000000000 +0100
+++ new/libkolabxml-1.1.0/tests/kolabconversationtest.cpp       2014-12-31 
16:55:13.000000000 +0100
@@ -0,0 +1,47 @@
+/*
+    Copyright (C) 2014 Sandro Knauß <[email protected]>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+#include "kolabconversationtest.h"
+
+#include <QTest>
+#include <QDebug>
+#include <iostream>
+
+#include "src/kolabconversions.h"
+
+void KolabConversationTest::configurationDeserialationTest()
+{
+    boost::shared_ptr <Kolab::Configuration> ptr = 
Kolab::KolabObjects::deserializeObject<Kolab::Configuration>(TEST_DATA_PATH 
"/testfiles/testConfiguration.xml", true);
+    QVERIFY(ptr);
+    QVERIFY(ptr->isValid());
+    QCOMPARE(ptr->type(), Kolab::Configuration::TypeRelation);
+
+}
+
+void KolabConversationTest::noteDeserialationTest()
+{
+    boost::shared_ptr <Kolab::Note> ptr = 
Kolab::KolabObjects::deserializeObject<Kolab::Note>(TEST_DATA_PATH 
"/testfiles/testNote.xml", true);
+    QVERIFY(ptr);
+    QVERIFY(ptr->isValid());
+    QCOMPARE(ptr->summary(), std::string("summarytext"));
+}
+
+
+QTEST_MAIN( KolabConversationTest )
+
+#include "kolabconversationtest.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/tests/kolabconversationtest.h 
new/libkolabxml-1.1.0/tests/kolabconversationtest.h
--- old/libkolabxml-1.0.3/tests/kolabconversationtest.h 1970-01-01 
01:00:00.000000000 +0100
+++ new/libkolabxml-1.1.0/tests/kolabconversationtest.h 2014-12-31 
16:55:13.000000000 +0100
@@ -0,0 +1,33 @@
+/*
+    Copyright (C) 2014 Sandro Knauß <[email protected]>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  
USA
+*/
+
+
+#ifndef KOLABCONVERSATIONTEST_H
+#define KOLABCONVERSATIONTEST_H
+
+#include <QObject>
+
+class KolabConversationTest: public QObject
+{
+    Q_OBJECT
+private slots:
+    void configurationDeserialationTest();
+    void noteDeserialationTest();
+};
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libkolabxml-1.0.3/tests/testfiles/testConfiguration.xml 
new/libkolabxml-1.1.0/tests/testfiles/testConfiguration.xml
--- old/libkolabxml-1.0.3/tests/testfiles/testConfiguration.xml 1970-01-01 
01:00:00.000000000 +0100
+++ new/libkolabxml-1.1.0/tests/testfiles/testConfiguration.xml 2014-12-31 
16:55:13.000000000 +0100
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<configuration xmlns="http://kolab.org"; version="3.0dev1">
+  <uid>6194e99c-69c0-11e4-9911-080027fe5a4c</uid>
+  <prodid>Roundcube-libkolab-1.1 Libkolabxml-1.1</prodid>
+  <creation-date>2014-11-11T16:32:51Z</creation-date>
+  <last-modification-date>2014-11-11T16:32:51Z</last-modification-date>
+  <type>relation</type>
+</configuration>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/tests/testfiles/testNote.xml 
new/libkolabxml-1.1.0/tests/testfiles/testNote.xml
--- old/libkolabxml-1.0.3/tests/testfiles/testNote.xml  1970-01-01 
01:00:00.000000000 +0100
+++ new/libkolabxml-1.1.0/tests/testfiles/testNote.xml  2014-12-31 
16:55:13.000000000 +0100
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<note version="3.0dev1" xmlns="http://kolab.org";>
+  <uid>uid</uid>
+  <prodid></prodid>
+  <creation-date>2014-11-11T16:32:51Z</creation-date>
+  <last-modification-date>2014-11-11T16:32:51Z</last-modification-date>
+  <classification>PUBLIC</classification>
+  <summary>summarytext</summary>
+  <color>#ffff00</color>
+</note>
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libkolabxml-1.0.3/tztable.h 
new/libkolabxml-1.1.0/tztable.h
--- old/libkolabxml-1.0.3/tztable.h     2014-10-13 11:49:38.000000000 +0200
+++ new/libkolabxml-1.1.0/tztable.h     2014-12-31 16:55:13.000000000 +0100
@@ -420,5 +420,5 @@
     "Africa/Harare"
 };
 
-static const int numOlsonTimezones = sizeof olsonTimezones / sizeof 
*olsonTimezones;
+static const long unsigned int numOlsonTimezones = sizeof olsonTimezones / 
sizeof *olsonTimezones;
 


Reply via email to