summaryrefslogtreecommitdiff
path: root/libcmis
diff options
context:
space:
mode:
authorCédric Bosdonnat <cedric.bosdonnat.ooo@free.fr>2013-08-07 15:23:14 +0200
committerCédric Bosdonnat <cedric.bosdonnat.ooo@free.fr>2013-09-02 13:51:55 +0200
commit19b76cc20cec1802c32248b3a2a4fcfcea1b58b6 (patch)
treeaca443a52ed659212679ef9b3ba6e942596063b0 /libcmis
parent0e241ca0a8dd14bcc895b25dd5480b5ae90915a6 (diff)
Updated internal libcmis to 0.4.0
Change-Id: I9ea14c00016e0390a90cae4c15abb34b879b31a7
Diffstat (limited to 'libcmis')
-rw-r--r--libcmis/StaticLibrary_cmis.mk13
-rw-r--r--libcmis/UnpackedTarball_cmis.mk8
-rw-r--r--libcmis/libcmis-0.3.0-lotus-live-fix.patch122
-rw-r--r--libcmis/libcmis-0.3.0-proxy.patch1088
-rw-r--r--libcmis/libcmis-0.3.0-warnings.patch238
-rw-r--r--libcmis/libcmis-0.3.0-win.patch25
-rw-r--r--libcmis/libcmis-0.3.0.patch49
7 files changed, 13 insertions, 1530 deletions
diff --git a/libcmis/StaticLibrary_cmis.mk b/libcmis/StaticLibrary_cmis.mk
index ace0326496eb..f87df26dea9f 100644
--- a/libcmis/StaticLibrary_cmis.mk
+++ b/libcmis/StaticLibrary_cmis.mk
@@ -38,10 +38,23 @@ $(eval $(call gb_StaticLibrary_add_generated_exception_objects,cmislib,\
UnpackedTarball/cmis/src/libcmis/base-session \
UnpackedTarball/cmis/src/libcmis/document \
UnpackedTarball/cmis/src/libcmis/folder \
+ UnpackedTarball/cmis/src/libcmis/gdrive-document \
+ UnpackedTarball/cmis/src/libcmis/gdrive-folder \
+ UnpackedTarball/cmis/src/libcmis/gdrive-object \
+ UnpackedTarball/cmis/src/libcmis/gdrive-object-type \
+ UnpackedTarball/cmis/src/libcmis/gdrive-property \
+ UnpackedTarball/cmis/src/libcmis/gdrive-repository \
+ UnpackedTarball/cmis/src/libcmis/gdrive-session \
+ UnpackedTarball/cmis/src/libcmis/gdrive-utils \
+ UnpackedTarball/cmis/src/libcmis/json-utils \
+ UnpackedTarball/cmis/src/libcmis/oauth2-data \
+ UnpackedTarball/cmis/src/libcmis/oauth2-handler \
+ UnpackedTarball/cmis/src/libcmis/oauth2-providers \
UnpackedTarball/cmis/src/libcmis/object \
UnpackedTarball/cmis/src/libcmis/object-type \
UnpackedTarball/cmis/src/libcmis/property-type \
UnpackedTarball/cmis/src/libcmis/property \
+ UnpackedTarball/cmis/src/libcmis/rendition \
UnpackedTarball/cmis/src/libcmis/repository \
UnpackedTarball/cmis/src/libcmis/session-factory \
UnpackedTarball/cmis/src/libcmis/ws-document \
diff --git a/libcmis/UnpackedTarball_cmis.mk b/libcmis/UnpackedTarball_cmis.mk
index 0a9f9f8ad2f2..57864742c62d 100644
--- a/libcmis/UnpackedTarball_cmis.mk
+++ b/libcmis/UnpackedTarball_cmis.mk
@@ -13,14 +13,6 @@ $(eval $(call gb_UnpackedTarball_set_tarball,cmis,$(CMIS_TARBALL)))
$(eval $(call gb_UnpackedTarball_set_patchlevel,cmis,0))
-$(eval $(call gb_UnpackedTarball_add_patches,cmis, \
- libcmis/libcmis-0.3.0-warnings.patch \
- libcmis/libcmis-0.3.0-win.patch \
- libcmis/libcmis-0.3.0.patch \
- libcmis/libcmis-0.3.0-proxy.patch \
- libcmis/libcmis-0.3.0-lotus-live-fix.patch \
-))
-
ifeq ($(OS)$(COM),WNTMSC)
$(eval $(call gb_UnpackedTarball_add_patches,cmis,libcmis/boost-win.patch))
endif
diff --git a/libcmis/libcmis-0.3.0-lotus-live-fix.patch b/libcmis/libcmis-0.3.0-lotus-live-fix.patch
deleted file mode 100644
index 2aca934df806..000000000000
--- a/libcmis/libcmis-0.3.0-lotus-live-fix.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-diff --git src/libcmis/atom-folder.cxx src/libcmis/atom-folder.cxx
-index 68fb124..2756a5d 100644
---- src/libcmis/atom-folder.cxx
-+++ src/libcmis/atom-folder.cxx
-@@ -57,8 +57,11 @@ vector< libcmis::ObjectPtr > AtomFolder::getChildren( ) throw ( libcmis::Excepti
- {
- AtomLink* childrenLink = getLink( "down", "application/atom+xml;type=feed" );
-
-+ // Some servers aren't giving the GetChildren properly... if not defined, we need to try
-+ // as we may have the right to proceed.
- if ( ( NULL == childrenLink ) || ( getAllowableActions( ).get() &&
-- !getAllowableActions()->isAllowed( libcmis::ObjectAction::GetChildren ) ) )
-+ ( !getAllowableActions()->isAllowed( libcmis::ObjectAction::GetChildren ) &&
-+ getAllowableActions()->isDefined( libcmis::ObjectAction::GetChildren ) ) ) )
- throw libcmis::Exception( string( "GetChildren not allowed on node " ) + getId() );
-
- vector< libcmis::ObjectPtr > children;
-@@ -182,7 +185,8 @@ libcmis::DocumentPtr AtomFolder::createDocument( const map< string, libcmis::Pro
- AtomLink* childrenLink = getLink( "down", "application/atom+xml;type=feed" );
-
- if ( ( NULL == childrenLink ) || ( getAllowableActions( ).get() &&
-- !getAllowableActions()->isAllowed( libcmis::ObjectAction::CreateDocument ) ) )
-+ !getAllowableActions()->isAllowed( libcmis::ObjectAction::CreateDocument ) &&
-+ getAllowableActions()->isDefined( libcmis::ObjectAction::CreateDocument ) ) )
- throw libcmis::Exception( string( "CreateDocument not allowed on folder " ) + getId() );
-
- xmlBufferPtr buf = xmlBufferCreate( );
-@@ -210,9 +214,37 @@ libcmis::DocumentPtr AtomFolder::createDocument( const map< string, libcmis::Pro
- }
-
- string respBuf = response->getStream( )->str( );
-- xmlDocPtr doc = xmlReadMemory( respBuf.c_str(), respBuf.size(), getInfosUrl().c_str(), NULL, 0 );
-+ xmlDocPtr doc = xmlReadMemory( respBuf.c_str(), respBuf.size(), getInfosUrl().c_str(), NULL, XML_PARSE_NOERROR );
- if ( NULL == doc )
-- throw libcmis::Exception( "Failed to parse object infos" );
-+ {
-+ // We may not have the created document entry in the response body: this is
-+ // the behaviour of some servers, but the standard says we need to look for
-+ // the Location header.
-+ map< string, string >& headers = response->getHeaders( );
-+ map< string, string >::iterator it = headers.find( "Location" );
-+
-+ // Some servers like Lotus Live aren't sending Location header, but Content-Location
-+ if ( it == headers.end( ) )
-+ it = headers.find( "Content-Location" );
-+
-+ if ( it != headers.end() )
-+ {
-+ try
-+ {
-+ response = getSession( )->httpGetRequest( it->second );
-+ respBuf = response->getStream( )->str( );
-+ doc = xmlReadMemory( respBuf.c_str(), respBuf.size(), getInfosUrl().c_str(), NULL, XML_PARSE_NOERROR );
-+ }
-+ catch ( const CurlException& e )
-+ {
-+ throw e.getCmisException( );
-+ }
-+ }
-+
-+ // if doc is still NULL after that, then throw an exception
-+ if ( NULL == doc )
-+ throw libcmis::Exception( "Missing expected response from server" );
-+ }
-
- libcmis::ObjectPtr created = getSession( )->createObjectFromEntryDoc( doc );
- xmlFreeDoc( doc );
-diff --git src/libcmis/atom-object.cxx src/libcmis/atom-object.cxx
-index b7b3b4a..812951d 100644
---- src/libcmis/atom-object.cxx
-+++ src/libcmis/atom-object.cxx
-@@ -140,6 +140,34 @@ libcmis::ObjectPtr AtomObject::updateProperties( const map< string, libcmis::Pro
- return updated;
- }
-
-+libcmis::AllowableActionsPtr AtomObject::getAllowableActions( )
-+{
-+ if ( !m_allowableActions )
-+ {
-+ // For some reason we had no allowable actions before, get them now.
-+ AtomLink* link = getLink( "http://docs.oasis-open.org/ns/cmis/link/200908/allowableactions", "application/cmisallowableactions+xml" );
-+ if ( link )
-+ {
-+ try
-+ {
-+ libcmis::HttpResponsePtr response = getSession()->httpGetRequest( link->getHref() );
-+ string buf = response->getStream()->str();
-+ xmlDocPtr doc = xmlReadMemory( buf.c_str(), buf.size(), link->getHref().c_str(), NULL, 0 );
-+ xmlNodePtr actionsNode = xmlDocGetRootElement( doc );
-+ if ( actionsNode )
-+ m_allowableActions.reset( new libcmis::AllowableActions( actionsNode ) );
-+
-+ xmlFreeDoc( doc );
-+ }
-+ catch ( libcmis::Exception& )
-+ {
-+ }
-+ }
-+ }
-+
-+ return libcmis::Object::getAllowableActions();
-+}
-+
- void AtomObject::refreshImpl( xmlDocPtr doc ) throw ( libcmis::Exception )
- {
- bool createdDoc = ( NULL == doc );
-diff --git src/libcmis/atom-object.hxx src/libcmis/atom-object.hxx
-index 2d1761d..452b4f5 100644
---- src/libcmis/atom-object.hxx
-+++ src/libcmis/atom-object.hxx
-@@ -69,6 +69,8 @@ class AtomObject : public virtual libcmis::Object
- virtual libcmis::ObjectPtr updateProperties(
- const std::map< std::string, libcmis::PropertyPtr >& properties ) throw ( libcmis::Exception );
-
-+ virtual libcmis::AllowableActionsPtr getAllowableActions( );
-+
- /** Reload the data from the server.
- */
- virtual void refresh( ) throw ( libcmis::Exception ) { refreshImpl( NULL ); }
---
-1.7.10.4
-
diff --git a/libcmis/libcmis-0.3.0-proxy.patch b/libcmis/libcmis-0.3.0-proxy.patch
deleted file mode 100644
index a7e85da1a135..000000000000
--- a/libcmis/libcmis-0.3.0-proxy.patch
+++ /dev/null
@@ -1,1088 +0,0 @@
-diff --git NEWS NEWS
-index 6e9c10d..0047613 100644
---- NEWS
-+++ NEWS
-@@ -50,3 +50,6 @@
- * Session factory automatically detects which binding to use
- * C wrapper API
- * Unit tests are now split between quick ones and the ones needing a CMIS server
-+
-+0.3.1
-+ * Added support for proxy configuration
-diff --git doc/cmis-client.xml doc/cmis-client.xml
-index b7dce51..2d6cdea 100644
---- doc/cmis-client.xml
-+++ doc/cmis-client.xml
-@@ -213,6 +213,41 @@
- </para>
- </listitem>
- </varlistentry>
-+ <varlistentry>
-+ <term>--proxy <replaceable class="parameter">url</replaceable></term>
-+ <listitem>
-+ <para>
-+ Use <replaceable class="parameter">url</replaceable> as the HTTP proxy.
-+ Setting this value will override the system proxy settings.
-+ </para>
-+ </listitem>
-+ </varlistentry>
-+ <varlistentry>
-+ <term>--proxy-username <replaceable class="parameter">login</replaceable></term>
-+ <listitem>
-+ <para>
-+ Use <replaceable class="parameter">login</replaceable> to authenticate on the HTTP proxy.
-+ </para>
-+ </listitem>
-+ </varlistentry>
-+ <varlistentry>
-+ <term>--proxy-password <replaceable class="parameter">secret</replaceable></term>
-+ <listitem>
-+ <para>
-+ Use <replaceable class="parameter">secret</replaceable> to authenticate on the HTTP proxy.
-+ </para>
-+ </listitem>
-+ </varlistentry>
-+ <varlistentry>
-+ <term>--noproxy <replaceable class="parameter">list</replaceable></term>
-+ <listitem>
-+ <para>
-+ Proxy settings won't apply to hostnames and domain names listed
-+ in <replaceable class="parameter">list</replaceable>.
-+ This value is a coma separated list.
-+ </para>
-+ </listitem>
-+ </varlistentry>
- </variablelist>
- </refsect2>
- <refsect2>
-diff --git src/cmis-client.cxx src/cmis-client.cxx
-index 587a05b..432e140 100644
---- src/cmis-client.cxx
-+++ src/cmis-client.cxx
-@@ -121,11 +121,32 @@ libcmis::Session* CmisClient::getSession( ) throw ( CommandException, libcmis::E
- password = m_vm["password"].as< string >();
- }
-
-+ // Look for proxy settings
-+ string proxyUrl;
-+ string proxyUser;
-+ string proxyPass;
-+ string noproxy;
-+ if ( m_vm.count( "proxy" ) > 0 )
-+ {
-+ proxyUrl = m_vm["proxy"].as< string >();
-+
-+ if ( m_vm.count( "proxy-user" ) > 0 )
-+ proxyUser = m_vm["proxy-user"].as< string >();
-+
-+ if ( m_vm.count( "proxy-password" ) > 0 )
-+ proxyPass = m_vm["proxy-password"].as< string >();
-+
-+ if ( m_vm.count( "noproxy" ) > 0 )
-+ noproxy = m_vm["noproxy"].as< string >();
-+
-+ libcmis::SessionFactory::setProxySettings( proxyUrl, noproxy, proxyUser, proxyPass );
-+ }
-
- bool verbose = m_vm.count( "verbose" ) > 0;
-
- string repoId;
-- list< libcmis::RepositoryPtr > repositories = libcmis::SessionFactory:: getRepositories( url, username, password, verbose );
-+ list< libcmis::RepositoryPtr > repositories = libcmis::SessionFactory::getRepositories(
-+ url, username, password, verbose );
- if ( repositories.size( ) == 1 )
- repoId = repositories.front( )->getId( );
- else
-@@ -169,10 +190,31 @@ void CmisClient::execute( ) throw ( exception )
- password = m_vm["password"].as< string >();
- }
-
-+ // Look for proxy settings
-+ string proxyUrl;
-+ string proxyUser;
-+ string proxyPass;
-+ string noproxy;
-+ if ( m_vm.count( "proxy" ) > 0 )
-+ {
-+ proxyUrl = m_vm["proxy"].as< string >();
-+
-+ if ( m_vm.count( "proxy-user" ) > 0 )
-+ proxyUser = m_vm["proxy-user"].as< string >();
-+
-+ if ( m_vm.count( "proxy-password" ) > 0 )
-+ proxyPass = m_vm["proxy-password"].as< string >();
-+
-+ if ( m_vm.count( "noproxy" ) > 0 )
-+ noproxy = m_vm["noproxy"].as< string >();
-+
-+ libcmis::SessionFactory::setProxySettings( proxyUrl, noproxy, proxyUser, proxyPass );
-+ }
-
- bool verbose = m_vm.count( "verbose" ) > 0;
-
-- list< libcmis::RepositoryPtr > repos = libcmis::SessionFactory::getRepositories( url, username, password, verbose );
-+ list< libcmis::RepositoryPtr > repos = libcmis::SessionFactory::getRepositories(
-+ url, username, password, verbose );
-
- cout << "Repositories: name (id)" << endl;
- for ( list< libcmis::RepositoryPtr >::iterator it = repos.begin(); it != repos.end(); it++ )
-@@ -828,6 +870,11 @@ options_description CmisClient::getOptionsDescription( )
- ( "repository,r", value< string >(), "Name of the repository to use" )
- ( "username,u", value< string >(), "Username used to authenticate to the repository" )
- ( "password,p", value< string >(), "Password used to authenticate to the repository" )
-+ ( "proxy", value< string >(), "HTTP proxy url to override the system settings" )
-+ ( "noproxy", value< string >(), "Coma separated list if host and domain names not going"
-+ "through the proxy" )
-+ ( "proxy-username", value< string >(), "Username to authenticate on the proxy" )
-+ ( "proxy-password", value< string >(), "Password to authenticate on the proxy" )
- ;
-
- options_description setcontentOpts( "modification operations options" );
-diff --git src/libcmis-c/session-factory.cxx src/libcmis-c/session-factory.cxx
-index a171c82..7ebb278 100644
---- src/libcmis-c/session-factory.cxx
-+++ src/libcmis-c/session-factory.cxx
-@@ -37,6 +37,33 @@
-
- using namespace std;
-
-+void libcmis_setProxySettings( char* proxy, char* noProxy,
-+ char* proxyUser, char* proxyPass )
-+{
-+ libcmis::SessionFactory::setProxySettings( string( proxy ), string( noProxy ),
-+ string( proxyUser ), string( proxyPass ) );
-+}
-+
-+const char* libcmis_getProxy( )
-+{
-+ return libcmis::SessionFactory::getProxy( ).c_str();
-+}
-+
-+const char* libcmis_getNoProxy( )
-+{
-+ return libcmis::SessionFactory::getNoProxy( ).c_str();
-+}
-+
-+const char* libcmis_getProxyUser( )
-+{
-+ return libcmis::SessionFactory::getProxyUser( ).c_str();
-+}
-+
-+const char* libcmis_getProxyPass( )
-+{
-+ return libcmis::SessionFactory::getProxyPass( ).c_str();
-+}
-+
- libcmis_SessionPtr libcmis_createSession(
- char* bindingUrl,
- char* repositoryId,
-@@ -49,7 +76,8 @@ libcmis_SessionPtr libcmis_createSession(
-
- try
- {
-- libcmis::Session* handle = libcmis::SessionFactory::createSession( bindingUrl, username, password, repositoryId, verbose );
-+ libcmis::Session* handle = libcmis::SessionFactory::createSession( bindingUrl, username,
-+ password, repositoryId, verbose );
- session = new libcmis_session( );
- session->handle = handle;
- }
-diff --git src/libcmis-c/session-factory.h src/libcmis-c/session-factory.h
-index ad95acc..d28059e 100644
---- src/libcmis-c/session-factory.h
-+++ src/libcmis-c/session-factory.h
-@@ -34,6 +34,17 @@ extern "C" {
-
- #include "types.h"
-
-+void libcmis_setProxySettings(
-+ char* proxy,
-+ char* noProxy,
-+ char* proxyUser,
-+ char* proxyPass );
-+
-+const char* libcmis_getProxy( );
-+const char* libcmis_getNoProxy( );
-+const char* libcmis_getProxyUser( );
-+const char* libcmis_getProxyPass( );
-+
- libcmis_SessionPtr libcmis_createSession(
- char* bindingUrl,
- char* repositoryId,
-diff --git src/libcmis/atom-session.cxx src/libcmis/atom-session.cxx
-index 1716755..1f8ac2d 100644
---- src/libcmis/atom-session.cxx
-+++ src/libcmis/atom-session.cxx
-@@ -39,7 +39,7 @@
-
- using namespace std;
-
--AtomPubSession::AtomPubSession( string atomPubUrl, string repositoryId,
-+AtomPubSession::AtomPubSession( string atomPubUrl, string repositoryId,
- string username, string password, bool verbose ) throw ( libcmis::Exception ) :
- BaseSession( atomPubUrl, repositoryId, username, password, verbose ),
- m_repository( )
-@@ -139,7 +139,8 @@ void AtomPubSession::initialize( ) throw ( libcmis::Exception )
-
- }
-
--list< libcmis::RepositoryPtr > AtomPubSession::getRepositories( string url, string username, string password, bool verbose ) throw ( libcmis::Exception )
-+list< libcmis::RepositoryPtr > AtomPubSession::getRepositories( string url, string username,
-+ string password, bool verbose ) throw ( libcmis::Exception )
- {
- AtomPubSession session( url, string(), username, password, verbose );
- return session.m_repositories;
-diff --git src/libcmis/atom-session.hxx src/libcmis/atom-session.hxx
-index 568b9b0..29eb359 100644
---- src/libcmis/atom-session.hxx
-+++ src/libcmis/atom-session.hxx
-@@ -39,7 +39,7 @@ class AtomPubSession : public BaseSession
- public:
- AtomPubSession( std::string sAtomPubUrl, std::string repositoryId,
- std::string username, std::string password,
-- bool verbose ) throw ( libcmis::Exception );
-+ bool verbose =false ) throw ( libcmis::Exception );
- AtomPubSession( const AtomPubSession& copy );
- ~AtomPubSession( );
-
-diff --git src/libcmis/base-session.cxx src/libcmis/base-session.cxx
-index adc030e..b007a9d 100644
---- src/libcmis/base-session.cxx
-+++ src/libcmis/base-session.cxx
-@@ -33,6 +33,7 @@
- #include <libxml/xpath.h>
-
- #include "base-session.hxx"
-+#include "session-factory.hxx"
- #include "xml-utils.hxx"
-
- using namespace std;
-@@ -105,11 +106,12 @@ namespace
- }
- }
-
--BaseSession::BaseSession( string atomPubUrl, string repositoryId,
-- string username, string password, bool verbose ) throw ( libcmis::Exception ) :
-+BaseSession::BaseSession( string atomPubUrl, string repositoryId, string username,
-+ string password, bool verbose ) throw ( libcmis::Exception ) :
- Session( ),
- m_authProvider( ),
- m_curlHandle( NULL ),
-+ m_no100Continue( false ),
- m_bindingUrl( atomPubUrl ),
- m_repositoryId( repositoryId ),
- m_username( username ),
-@@ -127,6 +129,7 @@ BaseSession::BaseSession( const BaseSession& copy ) :
- Session( ),
- m_authProvider( copy.m_authProvider ),
- m_curlHandle( NULL ),
-+ m_no100Continue( copy.m_no100Continue ),
- m_bindingUrl( copy.m_bindingUrl ),
- m_repositoryId( copy.m_repositoryId ),
- m_username( copy.m_username ),
-@@ -141,11 +144,11 @@ BaseSession::BaseSession( const BaseSession& copy ) :
- m_curlHandle = curl_easy_init( );
- }
-
--
- BaseSession& BaseSession::operator=( const BaseSession& copy )
- {
- m_authProvider = copy.m_authProvider;
- m_curlHandle = NULL;
-+ m_no100Continue = copy.m_no100Continue;
- m_bindingUrl = copy.m_bindingUrl;
- m_repositoryId = copy.m_repositoryId;
- m_username = copy.m_username;
-@@ -186,7 +189,7 @@ string BaseSession::createUrl( const string& pattern, map< string, string > vari
- if ( pos != string::npos )
- {
- // Escape the URL by chunks
--#if LIBCURL_VERSION_VALUE >= 0x071504
-+#if LIBCURL_VERSION_VALUE >= 0x070F04
- char* escaped = curl_easy_escape( m_curlHandle, value.c_str(), value.length() );
- #else
- char* escaped = curl_escape( value.c_str(), value.length() );
-@@ -215,6 +218,9 @@ string BaseSession::createUrl( const string& pattern, map< string, string > vari
-
- libcmis::HttpResponsePtr BaseSession::httpGetRequest( string url ) throw ( CurlException )
- {
-+ // Reset the handle for the request
-+ curl_easy_reset( m_curlHandle );
-+
- libcmis::HttpResponsePtr response( new libcmis::HttpResponse( ) );
-
- curl_easy_setopt( m_curlHandle, CURLOPT_WRITEFUNCTION, lcl_bufferData );
-@@ -244,6 +250,9 @@ libcmis::HttpResponsePtr BaseSession::httpGetRequest( string url ) throw ( CurlE
-
- libcmis::HttpResponsePtr BaseSession::httpPutRequest( string url, istream& is, vector< string > headers ) throw ( CurlException )
- {
-+ // Reset the handle for the request
-+ curl_easy_reset( m_curlHandle );
-+
- libcmis::HttpResponsePtr response( new libcmis::HttpResponse( ) );
-
- curl_easy_setopt( m_curlHandle, CURLOPT_WRITEFUNCTION, lcl_bufferData );
-@@ -266,12 +275,32 @@ libcmis::HttpResponsePtr BaseSession::httpPutRequest( string url, istream& is, v
- struct curl_slist *headers_slist = NULL;
- for ( vector< string >::iterator it = headers.begin( ); it != headers.end( ); ++it )
- headers_slist = curl_slist_append( headers_slist, it->c_str( ) );
-+
-+ // If we know for sure that 100-Continue won't be accepted,
-+ // don't even try with it to save one HTTP request.
-+ if ( m_no100Continue )
-+ headers_slist = curl_slist_append( headers_slist, "Expect:" );
- curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, headers_slist );
-
- try
- {
- httpRunRequest( url );
- response->getData( )->finish();
-+
-+ /** If we had a HTTP 417 response, this is likely to be due to some
-+ HTTP 1.0 proxy / server not accepting the "Expect: 100-continue"
-+ header. Try to disable this header and try again.
-+ */
-+ if ( getHttpStatus() == 417 )
-+ {
-+ headers_slist = curl_slist_append( headers_slist, "Expect:" );
-+ curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, headers_slist );
-+ httpRunRequest( url );
-+ response->getData( )->finish();
-+
-+ // Remember that we don't want 100-Continue for the future requests
-+ m_no100Continue = true;
-+ }
- }
- catch ( CurlException& e )
- {
-@@ -286,6 +315,9 @@ libcmis::HttpResponsePtr BaseSession::httpPutRequest( string url, istream& is, v
-
- libcmis::HttpResponsePtr BaseSession::httpPostRequest( string url, istringstream& is, string contentType ) throw ( CurlException )
- {
-+ // Reset the handle for the request
-+ curl_easy_reset( m_curlHandle );
-+
- libcmis::HttpResponsePtr response( new libcmis::HttpResponse( ) );
-
- curl_easy_setopt( m_curlHandle, CURLOPT_WRITEFUNCTION, lcl_bufferData );
-@@ -308,12 +340,32 @@ libcmis::HttpResponsePtr BaseSession::httpPostRequest( string url, istringstream
- struct curl_slist *headers_slist = NULL;
- string contentTypeHeader = string( "Content-Type:" ) + contentType;
- headers_slist = curl_slist_append( headers_slist, contentTypeHeader.c_str( ) );
-+
-+ // If we know for sure that 100-Continue won't be accepted,
-+ // don't even try with it to save one HTTP request.
-+ if ( m_no100Continue )
-+ headers_slist = curl_slist_append( headers_slist, "Expect:" );
- curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, headers_slist );
-
- try
- {
- httpRunRequest( url );
- response->getData( )->finish();
-+
-+ /** If we had a HTTP 417 response, this is likely to be due to some
-+ HTTP 1.0 proxy / server not accepting the "Expect: 100-continue"
-+ header. Try to disable this header and try again.
-+ */
-+ if ( getHttpStatus() == 417 )
-+ {
-+ headers_slist = curl_slist_append( headers_slist, "Expect:" );
-+ curl_easy_setopt( m_curlHandle, CURLOPT_HTTPHEADER, headers_slist );
-+ httpRunRequest( url );
-+ response->getData( )->finish();
-+
-+ // Remember that we don't want 100-Continue for the future requests
-+ m_no100Continue = true;
-+ }
- }
- catch ( const CurlException& e )
- {
-@@ -328,6 +380,9 @@ libcmis::HttpResponsePtr BaseSession::httpPostRequest( string url, istringstream
-
- void BaseSession::httpDeleteRequest( string url ) throw ( CurlException )
- {
-+ // Reset the handle for the request
-+ curl_easy_reset( m_curlHandle );
-+
- curl_easy_setopt( m_curlHandle, CURLOPT_CUSTOMREQUEST, "DELETE" );
- httpRunRequest( url );
- }
-@@ -351,7 +406,7 @@ void BaseSession::httpRunRequest( string url ) throw ( CurlException )
- {
- curl_easy_setopt( m_curlHandle, CURLOPT_HTTPAUTH, CURLAUTH_ANY );
-
--#if LIBCURL_VERSION_VALUE >= 0x071901
-+#if LIBCURL_VERSION_VALUE >= 0x071301
- curl_easy_setopt( m_curlHandle, CURLOPT_USERNAME, m_username.c_str() );
- curl_easy_setopt( m_curlHandle, CURLOPT_PASSWORD, m_password.c_str() );
- #else
-@@ -360,6 +415,28 @@ void BaseSession::httpRunRequest( string url ) throw ( CurlException )
- #endif
- }
-
-+ // Set the proxy configuration if any
-+ if ( !libcmis::SessionFactory::getProxy( ).empty() )
-+ {
-+ curl_easy_setopt( m_curlHandle, CURLOPT_PROXY, libcmis::SessionFactory::getProxy( ).c_str() );
-+#if LIBCURL_VERSION_VALUE >= 0x071304
-+ curl_easy_setopt( m_curlHandle, CURLOPT_NOPROXY, libcmis::SessionFactory::getNoProxy( ).c_str() );
-+#endif
-+ const string& proxyUser = libcmis::SessionFactory::getProxyUser( );
-+ const string& proxyPass = libcmis::SessionFactory::getProxyPass( );
-+ if ( !proxyUser.empty( ) && !proxyPass.empty( ) )
-+ {
-+ curl_easy_setopt( m_curlHandle, CURLOPT_PROXYAUTH, CURLAUTH_ANY );
-+#if LIBCURL_VERSION_VALUE >= 0X071301
-+ curl_easy_setopt( m_curlHandle, CURLOPT_PROXYUSERNAME, proxyUser.c_str( ) );
-+ curl_easy_setopt( m_curlHandle, CURLOPT_PROXYPASSWORD, proxyPass.c_str( ) );
-+#else
-+ string userpwd = proxyUser + ":" + proxyPass;
-+ curl_easy_setopt( m_curlHandle, CURLOPT_PROXYUSERPWD, userpwd.c_str( ) );
-+#endif
-+ }
-+ }
-+
- // Get some feedback when something wrong happens
- char errBuff[CURL_ERROR_SIZE];
- curl_easy_setopt( m_curlHandle, CURLOPT_ERRORBUFFER, errBuff );
-@@ -373,9 +450,6 @@ void BaseSession::httpRunRequest( string url ) throw ( CurlException )
-
- // Perform the query
- CURLcode errCode = curl_easy_perform( m_curlHandle );
--
-- // Reset the handle for the next request
-- curl_easy_reset( m_curlHandle );
-
- bool isHttpError = errCode == CURLE_HTTP_RETURNED_ERROR;
- if ( CURLE_OK != errCode && !( m_noHttpErrors && isHttpError ) )
-diff --git src/libcmis/base-session.hxx src/libcmis/base-session.hxx
-index fb95ba7..0b90c1f 100644
---- src/libcmis/base-session.hxx
-+++ src/libcmis/base-session.hxx
-@@ -94,6 +94,7 @@ class BaseSession : public libcmis::Session
- libcmis::AuthProviderPtr m_authProvider;
-
- CURL* m_curlHandle;
-+ bool m_no100Continue;
-
- protected:
- std::string m_bindingUrl;
-@@ -110,7 +111,7 @@ class BaseSession : public libcmis::Session
- public:
- BaseSession( std::string sBindingUrl, std::string repository,
- std::string username, std::string password,
-- bool verbose ) throw ( libcmis::Exception );
-+ bool verbose = false ) throw ( libcmis::Exception );
- BaseSession( const BaseSession& copy );
- ~BaseSession( );
-
-@@ -137,8 +138,6 @@ class BaseSession : public libcmis::Session
- libcmis::HttpResponsePtr httpPostRequest( std::string url, std::istringstream& is, std::string contentType ) throw ( CurlException );
- void httpDeleteRequest( std::string url ) throw ( CurlException );
-
-- void httpRunRequest( std::string url ) throw ( CurlException );
--
- long getHttpStatus( );
-
- // Session methods
-@@ -148,6 +147,8 @@ class BaseSession : public libcmis::Session
- virtual libcmis::FolderPtr getFolder( std::string id ) throw ( libcmis::Exception );
-
- virtual void setAuthenticationProvider( libcmis::AuthProviderPtr provider ) { m_authProvider = provider; }
-+ private:
-+ void httpRunRequest( std::string url ) throw ( CurlException );
- };
-
- #endif
-diff --git src/libcmis/session-factory.cxx src/libcmis/session-factory.cxx
-index d7d886b..afe6943 100644
---- src/libcmis/session-factory.cxx
-+++ src/libcmis/session-factory.cxx
-@@ -33,8 +33,23 @@ using namespace std;
-
- namespace libcmis
- {
-+ string SessionFactory::s_proxy;
-+ string SessionFactory::s_noProxy;
-+ string SessionFactory::s_proxyUser;
-+ string SessionFactory::s_proxyPass;
-+
-+ void SessionFactory::setProxySettings( string proxy, string noProxy,
-+ string proxyUser, string proxyPass )
-+ {
-+ SessionFactory::s_proxy = proxy;
-+ SessionFactory::s_noProxy = noProxy;
-+ SessionFactory::s_proxyUser = proxyUser;
-+ SessionFactory::s_proxyPass = proxyPass;
-+ }
-+
- Session* SessionFactory::createSession( string bindingUrl, string username,
-- string password, string repository, bool verbose ) throw ( Exception )
-+ string password, string repository,
-+ bool verbose ) throw ( Exception )
- {
- Session* session = NULL;
-
-@@ -68,8 +83,8 @@ namespace libcmis
- return session;
- }
-
-- list< RepositoryPtr > SessionFactory::getRepositories( string bindingUrl, string username,
-- string password, bool verbose ) throw ( Exception )
-+ list< RepositoryPtr > SessionFactory::getRepositories( string bindingUrl,
-+ string username, string password, bool verbose ) throw ( Exception )
- {
- list< RepositoryPtr > repos;
-
-diff --git src/libcmis/session-factory.hxx src/libcmis/session-factory.hxx
-index 677c2ab..598497f 100644
---- src/libcmis/session-factory.hxx
-+++ src/libcmis/session-factory.hxx
-@@ -40,8 +40,24 @@ namespace libcmis
- {
- class SessionFactory
- {
-+ private:
-+ static std::string s_proxy;
-+ static std::string s_noProxy;
-+ static std::string s_proxyUser;
-+ static std::string s_proxyPass;
-+
- public:
-
-+ static void setProxySettings( std::string proxy,
-+ std::string noProxy,
-+ std::string proxyUser,
-+ std::string proxyPass );
-+
-+ static const std::string& getProxy() { return s_proxy; }
-+ static const std::string& getNoProxy() { return s_noProxy; }
-+ static const std::string& getProxyUser() { return s_proxyUser; }
-+ static const std::string& getProxyPass() { return s_proxyPass; }
-+
- /** Create a session from the given parameters. The binding type is automatically
- detected based on the provided URL.
-
-diff --git src/libcmis/test-atom.cxx src/libcmis/test-atom.cxx
-index 4ee64ea..624078d 100644
---- src/libcmis/test-atom.cxx
-+++ src/libcmis/test-atom.cxx
-@@ -211,7 +211,7 @@ class TestAuthProvider : public libcmis::AuthProvider
-
- void AtomTest::authCallbackTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, string( ), false);
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, string( ) );
-
- // Test cancelled authentication
- {
-@@ -239,7 +239,7 @@ void AtomTest::authCallbackTest( )
-
- void AtomTest::getUnexistantTypeTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-
- try
- {
-@@ -254,7 +254,7 @@ void AtomTest::getUnexistantTypeTest( )
-
- void AtomTest::getNormalTypeTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-
- libcmis::ObjectTypePtr type = session.getType( TEST_TYPE_ID );
-
-@@ -265,7 +265,7 @@ void AtomTest::getNormalTypeTest( )
-
- void AtomTest::getTypeChildrenTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-
- libcmis::ObjectTypePtr type = session.getType( CHILDREN_TEST_TYPE_ID );
- vector< libcmis::ObjectTypePtr > children = type->getChildren( );
-@@ -275,7 +275,7 @@ void AtomTest::getTypeChildrenTest( )
-
- void AtomTest::getUnexistantFolderTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-
- try
- {
-@@ -290,7 +290,7 @@ void AtomTest::getUnexistantFolderTest( )
-
- void AtomTest::getUnexistantObjectTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-
- try
- {
-@@ -305,7 +305,7 @@ void AtomTest::getUnexistantObjectTest( )
-
- void AtomTest::getFolderFromOtherNodeTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::FolderPtr folder = session.getFolder( TEST_DOCUMENT_ID );
-
- CPPUNIT_ASSERT_MESSAGE( "Nothing should be returned: not a folder",
-@@ -314,7 +314,7 @@ void AtomTest::getFolderFromOtherNodeTest( )
-
- void AtomTest::getFolderCreationFromUrlTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::FolderPtr folder = session.getFolder( TEST_FOLDER_ID );
-
- AtomFolder* atomFolder = dynamic_cast< AtomFolder* >( folder.get( ) );
-@@ -336,7 +336,7 @@ void AtomTest::getFolderCreationFromUrlTest( )
-
- void AtomTest::getDocumentCreationFromUrlTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::ObjectPtr object = session.getObject( TEST_DOCUMENT_ID );
-
- AtomDocument* atomDocument = dynamic_cast< AtomDocument* >( object.get( ) );
-@@ -359,7 +359,7 @@ void AtomTest::getDocumentCreationFromUrlTest( )
-
- void AtomTest::getByPathValidTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- try
- {
- libcmis::ObjectPtr object = session.getObjectByPath( TEST_PATH_VALID );
-@@ -376,7 +376,7 @@ void AtomTest::getByPathValidTest( )
-
- void AtomTest::getByPathInvalidTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- try
- {
- libcmis::ObjectPtr object = session.getObjectByPath( TEST_PATH_INVALID );
-@@ -391,7 +391,7 @@ void AtomTest::getByPathInvalidTest( )
-
- void AtomTest::getAllowableActionsTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::FolderPtr folder = session.getRootFolder( );
-
- boost::shared_ptr< libcmis::AllowableActions > toCheck = folder->getAllowableActions( );
-@@ -405,7 +405,7 @@ void AtomTest::getAllowableActionsTest( )
-
- void AtomTest::getChildrenTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::FolderPtr folder = session.getRootFolder( );
-
- vector< libcmis::ObjectPtr > children = folder->getChildren( );
-@@ -429,7 +429,7 @@ void AtomTest::getChildrenTest( )
-
- void AtomTest::getObjectParentsTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::ObjectPtr object = session.getObject( TEST_DOCUMENT_ID );
- libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
-
-@@ -445,7 +445,7 @@ void AtomTest::getObjectParentsTest( )
-
- void AtomTest::getContentStreamTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::ObjectPtr object = session.getObject( TEST_DOCUMENT_ID );
- libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
-
-@@ -467,7 +467,7 @@ void AtomTest::getContentStreamTest( )
-
- void AtomTest::setContentStreamTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::ObjectPtr object = session.getObject( TEST_DOCUMENT_ID );
- libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
-
-@@ -503,7 +503,7 @@ void AtomTest::setContentStreamTest( )
-
- void AtomTest::updatePropertiesTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-
- // Values for the test
- libcmis::ObjectPtr object = session.getObject( "114" );
-@@ -530,7 +530,7 @@ void AtomTest::updatePropertiesTest( )
-
- void AtomTest::createFolderTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
-
- // Prepare the properties for the new object, object type is cmis:folder
-@@ -564,7 +564,7 @@ void AtomTest::createFolderTest( )
-
- void AtomTest::createFolderBadTypeTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
-
- // Prepare the properties for the new object, object type is cmis:document to trigger the exception
-@@ -603,7 +603,7 @@ void AtomTest::createFolderBadTypeTest( )
-
- void AtomTest::createDocumentTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
-
- // Prepare the properties for the new object, object type is cmis:folder
-@@ -647,7 +647,7 @@ void AtomTest::createDocumentTest( )
-
- void AtomTest::deleteDocumentTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-
- string id( "130" );
- libcmis::ObjectPtr object = session.getObject( id );
-@@ -669,7 +669,7 @@ void AtomTest::deleteDocumentTest( )
-
- void AtomTest::deleteTreeTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-
- string id( "117" );
- libcmis::ObjectPtr object = session.getObject( id );
-@@ -691,7 +691,7 @@ void AtomTest::deleteTreeTest( )
-
- void AtomTest::checkOutTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-
- // First create a document of type VersionableType
- libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "checkOutTest" );
-@@ -709,7 +709,7 @@ void AtomTest::checkOutTest( )
-
- void AtomTest::cancelCheckOutTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-
- // First create a versionable document and check it out
- libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "cancelCheckOutTest" );
-@@ -734,7 +734,7 @@ void AtomTest::cancelCheckOutTest( )
-
- void AtomTest::checkInTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-
- // First create a versionable document and check it out
- libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "checkInTest" );
-@@ -770,7 +770,7 @@ void AtomTest::checkInTest( )
-
- void AtomTest::getAllVersionsTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-
- // First create a versionable document and check it out
- libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "getAllVersionsTest" );
-@@ -795,7 +795,7 @@ void AtomTest::getAllVersionsTest( )
-
- void AtomTest::moveTest( )
- {
-- AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD, false );
-+ AtomPubSession session( SERVER_ATOM_URL, SERVER_REPOSITORY, SERVER_USERNAME, SERVER_PASSWORD );
-
- string id( "135" );
- libcmis::ObjectPtr object = session.getObject( id );
-diff --git src/libcmis/test-ws.cxx src/libcmis/test-ws.cxx
-index 1b5dfee..ad564bc 100644
---- src/libcmis/test-ws.cxx
-+++ src/libcmis/test-ws.cxx
-@@ -136,19 +136,19 @@ void WSTest::getRepositoriesTest()
-
- void WSTest::sessionCreationTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "", SERVER_USERNAME, SERVER_PASSWORD );
- CPPUNIT_ASSERT_MESSAGE( "No RepositoryService URL", !session.getServiceUrl( "RepositoryService" ).empty( ) );
- }
-
- void WSTest::getRepositoryTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- CPPUNIT_ASSERT_EQUAL_MESSAGE( "Repository info badly retrieved", string( "100" ), session.getRepository()->getRootId( ) );
- }
-
- void WSTest::getRepositoryBadTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "", SERVER_USERNAME, SERVER_PASSWORD );
- try
- {
- session.getRepositoryService( ).getRepositoryInfo( "bad" );
-@@ -164,7 +164,7 @@ void WSTest::getRepositoryBadTest( )
-
- void WSTest::getTypeDefinitionTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- string id( "ComplexType" );
- libcmis::ObjectTypePtr actual = session.getType( id );
-
-@@ -175,7 +175,7 @@ void WSTest::getTypeDefinitionTest( )
-
- void WSTest::getTypeDefinitionErrorTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-
- string id( "bad_type" );
- try
-@@ -192,7 +192,7 @@ void WSTest::getTypeDefinitionErrorTest( )
-
- void WSTest::getTypeChildrenTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::ObjectTypePtr actual = session.getType( "cmis:document" );
-
- vector< libcmis::ObjectTypePtr > children = actual->getChildren( );
-@@ -202,7 +202,7 @@ void WSTest::getTypeChildrenTest( )
-
- void WSTest::getObjectTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- string id( "101" );
- libcmis::ObjectPtr actual = session.getObject( id );
-
-@@ -217,7 +217,7 @@ void WSTest::getObjectTest( )
-
- void WSTest::getObjectDocumentTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- string id( "114" );
- libcmis::ObjectPtr actual = session.getObject( id );
-
-@@ -232,7 +232,7 @@ void WSTest::getObjectDocumentTest( )
-
- void WSTest::getObjectParentsTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::ObjectPtr object = session.getObject( "116" );
- libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
-
-@@ -248,7 +248,7 @@ void WSTest::getObjectParentsTest( )
-
- void WSTest::getChildrenTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::FolderPtr folder = session.getRootFolder( );
-
- vector< libcmis::ObjectPtr > children = folder->getChildren( );
-@@ -270,7 +270,7 @@ void WSTest::getChildrenTest( )
-
- void WSTest::getByPathValidTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- try
- {
- libcmis::ObjectPtr object = session.getObjectByPath( "/My_Folder-0-0/My_Document-1-2" );
-@@ -287,7 +287,7 @@ void WSTest::getByPathValidTest( )
-
- void WSTest::getByPathInvalidTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- try
- {
- libcmis::ObjectPtr object = session.getObjectByPath( "/some/dummy/path" );
-@@ -302,7 +302,7 @@ void WSTest::getByPathInvalidTest( )
-
- void WSTest::updatePropertiesTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-
- // Values for the test
- libcmis::ObjectPtr object = session.getObject( "114" );
-@@ -329,7 +329,7 @@ void WSTest::updatePropertiesTest( )
-
- void WSTest::createFolderTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
-
- // Prepare the properties for the new object, object type is cmis:folder
-@@ -363,7 +363,7 @@ void WSTest::createFolderTest( )
-
- void WSTest::createFolderBadTypeTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
-
- // Prepare the properties for the new object, object type is cmis:document to trigger the exception
-@@ -401,7 +401,7 @@ void WSTest::createFolderBadTypeTest( )
-
- void WSTest::createDocumentTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::FolderPtr parent = session.getFolder( session.getRootId( ) );
-
- // Prepare the properties for the new object, object type is cmis:folder
-@@ -444,7 +444,7 @@ void WSTest::createDocumentTest( )
-
- void WSTest::deleteObjectTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-
- // Get the object to remove
- string id( "130" );
-@@ -467,7 +467,7 @@ void WSTest::deleteObjectTest( )
-
- void WSTest::deleteTreeTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-
- string id( "117" );
- libcmis::ObjectPtr object = session.getObject( id );
-@@ -489,7 +489,7 @@ void WSTest::deleteTreeTest( )
-
- void WSTest::moveTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-
- string id( "135" );
- libcmis::ObjectPtr object = session.getObject( id );
-@@ -508,7 +508,7 @@ void WSTest::moveTest( )
-
- void WSTest::getContentStreamTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::ObjectPtr object = session.getObject( "116" );
- libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
-
-@@ -532,7 +532,7 @@ void WSTest::getContentStreamTest( )
-
- void WSTest::setContentStreamTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
- libcmis::ObjectPtr object = session.getObject( "116" );
- libcmis::Document* document = dynamic_cast< libcmis::Document* >( object.get() );
-
-@@ -570,7 +570,7 @@ void WSTest::setContentStreamTest( )
-
- void WSTest::checkOutTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-
- // First create a document of type VersionableType
- libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "checkOutTest" );
-@@ -588,7 +588,7 @@ void WSTest::checkOutTest( )
-
- void WSTest::cancelCheckOutTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-
- // First create a versionable document and check it out
- libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "cancelCheckOutTest" );
-@@ -613,7 +613,7 @@ void WSTest::cancelCheckOutTest( )
-
- void WSTest::checkInTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-
- // First create a versionable document and check it out
- libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "checkInTest" );
-@@ -649,7 +649,7 @@ void WSTest::checkInTest( )
-
- void WSTest::getAllVersionsTest( )
- {
-- WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD, false );
-+ WSSession session( SERVER_WSDL_URL, "A1", SERVER_USERNAME, SERVER_PASSWORD );
-
- // First create a versionable document and check it out
- libcmis::DocumentPtr doc = test::createVersionableDocument( &session, "getAllVersionsTest" );
-diff --git src/libcmis/ws-relatedmultipart.cxx src/libcmis/ws-relatedmultipart.cxx
-index 37f133a..ef91b4d 100644
---- src/libcmis/ws-relatedmultipart.cxx
-+++ src/libcmis/ws-relatedmultipart.cxx
-@@ -299,7 +299,7 @@ boost::shared_ptr< istream > getStreamFromNode( xmlNodePtr node, RelatedMultipar
- {
- id = href.substr( 4 );
- // URL-decode the id
--#if LIBCURL_VERSION_VALUE >= 0x071504
-+#if LIBCURL_VERSION_VALUE >= 0x070F04
- char* escaped = curl_easy_unescape( NULL, id.c_str(), id.length(), NULL );
- #else
- char* escaped = curl_unescape( id.c_str(), id.length() );
-diff --git src/libcmis/ws-session.cxx src/libcmis/ws-session.cxx
-index b906a5a..f551109 100644
---- src/libcmis/ws-session.cxx
-+++ src/libcmis/ws-session.cxx
-@@ -39,8 +39,8 @@
-
- using namespace std;
-
--WSSession::WSSession( string bindingUrl, string repositoryId,
-- string username, string password, bool verbose ) throw ( libcmis::Exception ) :
-+WSSession::WSSession( string bindingUrl, string repositoryId, string username,
-+ string password, bool verbose ) throw ( libcmis::Exception ) :
- BaseSession( bindingUrl, repositoryId, username, password, verbose ),
- m_servicesUrls( ),
- m_navigationService( NULL ),
-@@ -336,7 +336,8 @@ VersioningService& WSSession::getVersioningService( )
- return *m_versioningService;
- }
-
--list< libcmis::RepositoryPtr > WSSession::getRepositories( string url, string username, string password, bool verbose ) throw ( libcmis::Exception )
-+list< libcmis::RepositoryPtr > WSSession::getRepositories( string url, string username,
-+ string password, bool verbose ) throw ( libcmis::Exception )
- {
- WSSession session( url, string(), username, password, verbose );
- return session.m_repositories;
-diff --git src/libcmis/ws-session.hxx src/libcmis/ws-session.hxx
-index 952e914..e8b806a 100644
---- src/libcmis/ws-session.hxx
-+++ src/libcmis/ws-session.hxx
-@@ -52,7 +52,7 @@ class WSSession : public BaseSession, public SoapSession
- public:
- WSSession( std::string bindingUrl, std::string repositoryId,
- std::string username, std::string password,
-- bool verbose ) throw ( libcmis::Exception );
-+ bool verbose = false ) throw ( libcmis::Exception );
- WSSession( const WSSession& copy );
- ~WSSession( );
-
diff --git a/libcmis/libcmis-0.3.0-warnings.patch b/libcmis/libcmis-0.3.0-warnings.patch
deleted file mode 100644
index b67ae47180b3..000000000000
--- a/libcmis/libcmis-0.3.0-warnings.patch
+++ /dev/null
@@ -1,238 +0,0 @@
-diff --git src/libcmis/atom-folder.cxx src/libcmis/atom-folder.cxx
-index f2e0381..1c65d41 100644
---- src/libcmis/atom-folder.cxx
-+++ src/libcmis/atom-folder.cxx
-@@ -177,7 +177,7 @@ libcmis::FolderPtr AtomFolder::createFolder( const map< string, libcmis::Propert
- }
-
- libcmis::DocumentPtr AtomFolder::createDocument( const map< string, libcmis::PropertyPtr >& properties,
-- boost::shared_ptr< ostream > os, string contentType, string fileName ) throw ( libcmis::Exception )
-+ boost::shared_ptr< ostream > os, string contentType, string ) throw ( libcmis::Exception )
- {
- AtomLink* childrenLink = getLink( "down", "application/atom+xml;type=feed" );
-
-diff --git src/libcmis/atom-session.cxx src/libcmis/atom-session.cxx
-index c2baa4f..1716755 100644
---- src/libcmis/atom-session.cxx
-+++ src/libcmis/atom-session.cxx
-@@ -39,74 +39,6 @@
-
- using namespace std;
-
--namespace
--{
-- size_t lcl_getEncoding( void *ptr, size_t size, size_t nmemb, void *userdata )
-- {
-- libcmis::EncodedData* data = static_cast< libcmis::EncodedData* >( userdata );
--
-- string buf( ( const char* ) ptr, size * nmemb );
--
-- size_t sepPos = buf.find( ':' );
-- if ( sepPos != string::npos )
-- {
-- string name( buf, 0, sepPos );
-- if ( "Content-Transfer-Encoding" == name )
-- {
-- string encoding = buf.substr( sepPos + 1 );
-- encoding.erase( remove_if( encoding.begin(), encoding.end(), ptr_fun< int, int> ( isspace ) ), encoding.end() );
--
-- data->setEncoding( encoding );
-- }
-- }
--
-- return nmemb;
-- }
--
-- size_t lcl_bufferData( void* buffer, size_t size, size_t nmemb, void* data )
-- {
-- libcmis::EncodedData* encoded = static_cast< libcmis::EncodedData* >( data );
-- encoded->decode( buffer, size, nmemb );
-- return nmemb;
-- }
--
-- size_t lcl_readStream( void* buffer, size_t size, size_t nmemb, void* data )
-- {
-- istream& is = *( static_cast< istream* >( data ) );
-- char* out = ( char * ) buffer;
-- is.read( out, size * nmemb );
--
-- return is.gcount( ) / size;
-- }
--
-- curlioerr lcl_ioctlStream( CURL* /*handle*/, int cmd, void* data )
-- {
-- curlioerr errCode = CURLIOE_OK;
--
-- switch ( cmd )
-- {
-- case CURLIOCMD_RESTARTREAD:
-- {
-- istream& is = *( static_cast< istream* >( data ) );
-- is.clear( );
-- is.seekg( 0, ios::beg );
--
-- if ( !is.good() )
-- {
-- fprintf ( stderr, "rewind failed\n" );
-- errCode = CURLIOE_FAILRESTART;
-- }
-- }
-- break;
-- case CURLIOCMD_NOP:
-- break;
-- default:
-- errCode = CURLIOE_UNKNOWNCMD;
-- }
-- return errCode;
-- }
--}
--
- AtomPubSession::AtomPubSession( string atomPubUrl, string repositoryId,
- string username, string password, bool verbose ) throw ( libcmis::Exception ) :
- BaseSession( atomPubUrl, repositoryId, username, password, verbose ),
-@@ -190,7 +122,7 @@ void AtomPubSession::initialize( ) throw ( libcmis::Exception )
-
- m_repositories.push_back( ws );
- }
-- catch ( const libcmis::Exception& e )
-+ catch ( const libcmis::Exception& )
- {
- // Invalid repository, don't take care of this
- }
-diff --git src/libcmis/atom-workspace.cxx src/libcmis/atom-workspace.cxx
-index b6f2388..527d0f4 100644
---- src/libcmis/atom-workspace.cxx
-+++ src/libcmis/atom-workspace.cxx
-@@ -69,6 +69,7 @@ AtomRepository::AtomRepository( xmlNodePtr wsNode ) throw ( libcmis::Exception )
- }
-
- AtomRepository::AtomRepository( const AtomRepository& rCopy ) :
-+ Repository( rCopy ),
- m_collections( rCopy.m_collections ),
- m_uriTemplates( rCopy.m_uriTemplates )
- {
-diff --git src/libcmis/base-session.cxx src/libcmis/base-session.cxx
-index c99f110..b060d0b 100644
---- src/libcmis/base-session.cxx
-+++ src/libcmis/base-session.cxx
-@@ -61,28 +61,6 @@ namespace
- return nmemb;
- }
-
-- size_t lcl_getEncoding( void *ptr, size_t size, size_t nmemb, void *userdata )
-- {
-- libcmis::EncodedData* data = static_cast< libcmis::EncodedData* >( userdata );
--
-- string buf( ( const char* ) ptr, size * nmemb );
--
-- size_t sepPos = buf.find( ':' );
-- if ( sepPos != string::npos )
-- {
-- string name( buf, 0, sepPos );
-- if ( "Content-Transfer-Encoding" == name )
-- {
-- string encoding = buf.substr( sepPos + 1 );
-- encoding.erase( remove_if( encoding.begin(), encoding.end(), ptr_fun< int, int> ( isspace ) ), encoding.end() );
--
-- data->setEncoding( encoding );
-- }
-- }
--
-- return nmemb;
-- }
--
- size_t lcl_bufferData( void* buffer, size_t size, size_t nmemb, void* data )
- {
- libcmis::EncodedData* encoded = static_cast< libcmis::EncodedData* >( data );
-@@ -125,16 +103,6 @@ namespace
- }
- return errCode;
- }
--
-- string lcl_tolower( string sText )
-- {
-- string lower( sText );
-- for ( size_t i = 0; i < sText.size(); ++i )
-- {
-- lower[i] = ::tolower( sText[i] );
-- }
-- return lower;
-- }
- }
-
- BaseSession::BaseSession( string atomPubUrl, string repositoryId,
-@@ -443,7 +411,7 @@ const char* CurlException::what( ) const throw ()
- if ( !isCancelled( ) )
- {
- stringstream buf;
-- buf << "CURL error - " << m_code << ": ";
-+ buf << "CURL error - " << ( unsigned int )m_code << ": ";
- buf << m_message;
- m_errorMessage = buf.str( );
-
-diff --git src/libcmis/object.cxx src/libcmis/object.cxx
-index 690bb17..3397070 100644
---- src/libcmis/object.cxx
-+++ src/libcmis/object.cxx
-@@ -93,8 +93,8 @@ namespace libcmis
- xmlXPathObjectPtr xpathObj = xmlXPathEvalExpression( BAD_CAST( "//cmis:allowableActions" ), xpathCtx );
- if ( xpathObj && xpathObj->nodesetval && xpathObj->nodesetval->nodeNr > 0 )
- {
-- xmlNodePtr node = xpathObj->nodesetval->nodeTab[0];
-- m_allowableActions.reset( new libcmis::AllowableActions( node ) );
-+ xmlNodePtr actionsNode = xpathObj->nodesetval->nodeTab[0];
-+ m_allowableActions.reset( new libcmis::AllowableActions( actionsNode ) );
- }
- xmlXPathFreeObject( xpathObj );
-
-@@ -109,8 +109,8 @@ namespace libcmis
- int size = xpathObj->nodesetval->nodeNr;
- for ( int i = 0; i < size; i++ )
- {
-- xmlNodePtr node = xpathObj->nodesetval->nodeTab[i];
-- libcmis::PropertyPtr property = libcmis::parseProperty( node, getTypeDescription( ) );
-+ xmlNodePtr propertyNode = xpathObj->nodesetval->nodeTab[i];
-+ libcmis::PropertyPtr property = libcmis::parseProperty( propertyNode, getTypeDescription( ) );
- if ( property.get( ) )
- m_properties[ property->getPropertyType( )->getId() ] = property;
- }
-diff --git src/libcmis/ws-requests.cxx src/libcmis/ws-requests.cxx
-index 2b421b2..e13ae07 100644
---- src/libcmis/ws-requests.cxx
-+++ src/libcmis/ws-requests.cxx
-@@ -105,7 +105,7 @@
- string content( buf, size );
- delete[ ] buf;
-
-- xmlTextWriterWriteFormatElement( writer, BAD_CAST( "cmism:length" ), "%ld", content.size( ) );
-+ xmlTextWriterWriteFormatElement( writer, BAD_CAST( "cmism:length" ), "%ld", (long int) content.size( ) );
- xmlTextWriterWriteElement( writer, BAD_CAST( "cmism:mimeType" ), BAD_CAST( contentType.c_str( ) ) );
- if ( !filename.empty( ) )
- xmlTextWriterWriteElement( writer, BAD_CAST( "cmism:filename" ), BAD_CAST( filename.c_str( ) ) );
-@@ -349,7 +349,7 @@ void UpdateProperties::toXml( xmlTextWriterPtr writer )
- xmlTextWriterEndElement( writer );
- }
-
--SoapResponsePtr UpdatePropertiesResponse::create( xmlNodePtr node, RelatedMultipart&, SoapSession* session )
-+SoapResponsePtr UpdatePropertiesResponse::create( xmlNodePtr node, RelatedMultipart&, SoapSession* )
- {
- UpdatePropertiesResponse* response = new UpdatePropertiesResponse( );
-
-@@ -425,7 +425,7 @@ void DeleteTree::toXml( xmlTextWriterPtr writer )
- xmlTextWriterEndElement( writer );
- }
-
--SoapResponsePtr DeleteTreeResponse::create( xmlNodePtr node, RelatedMultipart&, SoapSession* session )
-+SoapResponsePtr DeleteTreeResponse::create( xmlNodePtr node, RelatedMultipart&, SoapSession* )
- {
- DeleteTreeResponse* response = new DeleteTreeResponse( );
-
-@@ -624,7 +624,7 @@ void CreateFolder::toXml( xmlTextWriterPtr writer )
- xmlTextWriterEndElement( writer );
- }
-
--SoapResponsePtr CreateFolderResponse::create( xmlNodePtr node, RelatedMultipart&, SoapSession* session )
-+SoapResponsePtr CreateFolderResponse::create( xmlNodePtr node, RelatedMultipart&, SoapSession* )
- {
- CreateFolderResponse* response = new CreateFolderResponse( );
-
diff --git a/libcmis/libcmis-0.3.0-win.patch b/libcmis/libcmis-0.3.0-win.patch
deleted file mode 100644
index e9110d286023..000000000000
--- a/libcmis/libcmis-0.3.0-win.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git src/libcmis/ws-objectservice.cxx src/libcmis/ws-objectservice.cxx
-index df624de..5134d8e 100644
---- src/libcmis/ws-objectservice.cxx
-+++ src/libcmis/ws-objectservice.cxx
-@@ -119,7 +119,7 @@ libcmis::ObjectPtr ObjectService::updateProperties(
-
- void ObjectService::deleteObject( string repoId, string id, bool allVersions ) throw ( libcmis::Exception )
- {
-- DeleteObject request( repoId, id, allVersions );
-+ class DeleteObject request( repoId, id, allVersions );
- m_session->soapRequest( m_url, request );
- }
-
-diff --git src/libcmis/ws-requests.hxx src/libcmis/ws-requests.hxx
-index 88fe5b9..6de94b8 100644
---- src/libcmis/ws-requests.hxx
-+++ src/libcmis/ws-requests.hxx
-@@ -202,6 +202,7 @@ class GetTypeChildrenResponse : public SoapResponse
- std::vector< libcmis::ObjectTypePtr > getChildren( ) { return m_children; }
- };
-
-+#undef GetObject
- class GetObject : public SoapRequest
- {
- private:
diff --git a/libcmis/libcmis-0.3.0.patch b/libcmis/libcmis-0.3.0.patch
deleted file mode 100644
index 772c828ab121..000000000000
--- a/libcmis/libcmis-0.3.0.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff --git src/libcmis/ws-soap.cxx src/libcmis/ws-soap.cxx
-index e8efd67..decb79a 100644
---- src/libcmis/ws-soap.cxx
-+++ src/libcmis/ws-soap.cxx
-@@ -279,7 +279,7 @@ string SoapRequest::createEnvelope( string& username, string& password )
- boost::posix_time::ptime expires( created );
- expires = expires + boost::gregorian::days( 1 );
- string createdStr = libcmis::writeDateTime( created );
-- xmlChar* expiresStr = BAD_CAST( libcmis::writeDateTime( expires ).c_str( ) );
-+ string expiresStr = libcmis::writeDateTime( expires );
-
- xmlTextWriterStartElement( writer, BAD_CAST( "S:Envelope" ) );
- xmlTextWriterWriteAttribute( writer, BAD_CAST( "xmlns:S" ), BAD_CAST( NS_SOAP_ENV_URL ) );
-@@ -296,7 +296,7 @@ string SoapRequest::createEnvelope( string& username, string& password )
- xmlTextWriterWriteRaw( writer, BAD_CAST( createdStr.c_str( ) ) );
- xmlTextWriterEndElement( writer ); // End of Created
- xmlTextWriterStartElement( writer, BAD_CAST( "wsse:Expires" ) );
-- xmlTextWriterWriteRaw( writer, expiresStr );
-+ xmlTextWriterWriteRaw( writer, BAD_CAST( expiresStr.c_str() ) );
- xmlTextWriterEndElement( writer ); // End of Expires
- xmlTextWriterEndElement( writer ); // End of Timestamp
-
-diff --git src/libcmis/document.cxx src/libcmis/document.cxx
-index 7c2a8e6..e7014cb 100644
---- src/libcmis/document.cxx
-+++ src/libcmis/document.cxx
-@@ -78,7 +78,7 @@ namespace libcmis
- {
- long contentLength = 0;
- map< string, libcmis::PropertyPtr >::const_iterator it = getProperties( ).find( string( "cmis:contentStreamLength" ) );
-- if ( it != getProperties( ).end( ) && !it->second->getStrings( ).empty( ) )
-+ if ( it != getProperties( ).end( ) && !it->second->getLongs( ).empty( ) )
- contentLength = it->second->getLongs( ).front( );
- return contentLength;
- }
-diff --git src/libcmis/ws-relatedmultipart.cxx src/libcmis/ws-relatedmultipart.cxx
-index ef91b4d..3a990e7 100644
---- src/libcmis/ws-relatedmultipart.cxx
-+++ src/libcmis/ws-relatedmultipart.cxx
-@@ -93,6 +93,8 @@ RelatedMultipart::RelatedMultipart( const string& body, const string& contentTyp
- if ( value[0] == '"' && value[value.length() - 1] == '"' )
- value = value.substr( 1, value.length( ) - 2 );
-
-+ name = libcmis::trim( name );
-+
- if ( name == "start" )
- {
- m_startId = value;
---