| 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( ); |
| |