[Release] wrt-commons_0.2.108
authorJihoon Chung <jihoon.chung@samsung.com>
Fri, 12 Apr 2013 09:37:24 +0000 (18:37 +0900)
committerJihoon Chung <jihoon.chung@samsung.com>
Fri, 12 Apr 2013 09:40:35 +0000 (18:40 +0900)
31 files changed:
debian/DESCRIPTION [deleted file]
debian/README.Debian [deleted file]
debian/changelog [deleted file]
debian/compat [deleted file]
debian/control [deleted file]
debian/copyright [deleted file]
debian/dirs [deleted file]
debian/rules [deleted file]
debian/wrt-commons-dev.dirs [deleted file]
debian/wrt-commons-dev.install [deleted file]
debian/wrt-commons.dirs [deleted file]
debian/wrt-commons.install [deleted file]
debian/wrt-commons.postinst [deleted file]
etc/wrt_commons_create_clean_db.sh
modules/certificate_dao/dao/certificate_dao.cpp
modules/localization/src/w3c_file_localization.cpp
modules/security_origin_dao/dao/security_origin_dao.cpp
modules/utils/include/dpl/utils/path.h
modules/utils/src/path.cpp
modules/widget_dao/dao/config_parser_data.cpp
modules/widget_dao/dao/widget_dao.cpp
modules/widget_dao/dao/widget_dao_read_only.cpp
modules/widget_dao/include/dpl/wrt-dao-ro/common_dao_types.h [changed mode: 0755->0644]
modules/widget_dao/include/dpl/wrt-dao-ro/config_parser_data.h
modules/widget_dao/include/dpl/wrt-dao-ro/widget_dao_read_only.h
modules/widget_dao/include/dpl/wrt-dao-rw/widget_dao.h
modules/widget_dao/orm/wrt_db
packaging/wrt-commons.spec
tests/dao/TestCases_WidgetDAO.cpp
tests/dao/wrt_dao_tests_prepare_db.sh
tests/utils/path_tests.cpp

diff --git a/debian/DESCRIPTION b/debian/DESCRIPTION
deleted file mode 100644 (file)
index 158a449..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Debian folder (rules, control etc.)
diff --git a/debian/README.Debian b/debian/README.Debian
deleted file mode 100644 (file)
index 0ec9a2d..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-dpl for Debian
---------------
-
-<possible notes regarding this package - if none, delete this file>
-
- -- unknown <pdobrowolski@unknown>  Tue, 23 Mar 2010 11:40:32 +0100
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100644 (file)
index e427917..0000000
+++ /dev/null
@@ -1,1992 +0,0 @@
-wrt-commons (0.2.107) unstable; urgency=low
-
-  * Add Account parser
-  * Get plivilege feature for auto W3C fullsceen mode
-
- -- leerang <leerang.song@samsung.com>  Thu, 21 Mar 2013 10:56:01 +0900
-
-wrt-commons (0.2.106) unstable; urgency=low
-
-  * Add one field for new attribute 'touch-effect' of <tizen:box-content>
-
- -- Yunchan Cho <yunchan.cho@samsung.com>  Mon, 18 Mar 2013 15:34:10 +0900
-
-wrt-commons (0.2.105) unstable; urgency=low
-
-  * Update unmerged source code
-  * app uri passing by localization
-  * Implement privilege for usermedia permission
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Thu, 14 Mar 2013 11:24:56 +0900
-
-wrt-commons (0.2.104) unstable; urgency=low
-
-  * Revert "Add encrypt/decrypt API from trust zone"
-
- -- Soyoung Kim <sy037.kim@samsung.com>  Mon, 11 Mar 2013 19:46:44 +0900
-
-wrt-commons (0.2.103) unstable; urgency=low
-
-  * Update tizen version to 2.1
-  * Replaced VARCHAR with TEXT in databases
-  * Path class for DPL + tests
-  * Implement certificate confirm popup
-  * Add encrypt/decrypt API from trust zone
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Fri, 08 Mar 2013 17:17:26 +0900
-
-wrt-commons (0.2.102) unstable; urgency=low
-
-  * DPL path join for class Path to be introduced
-  * tests - Return value not used
-  * Fix App-control Supports : Registration routine was added
-  * Remove web storage & filesystem usage code
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Thu, 07 Mar 2013 09:03:04 +0900
-
-wrt-commons (0.2.101) unstable; urgency=low
-
-  * CSP report only support
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Wed, 06 Mar 2013 19:22:11 +0900
-
-wrt-commons (0.2.100) unstable; urgency=low
-
-  * Prepare database for additional appservice parameter
-  * Enable DPL::Localization tests
-  * Fix warnings shown by cppcheck for wrt-commons
-
- -- leerang <leerang.song@samsung.com>  Thu, 28 Feb 2013 12:53:01 +0900
-
-wrt-commons (0.2.99) unstable; urgency=low
-
-  * Unused fields in WidgetRegisterInfo
-  * Implement tizen privilege for w3c API 
-  * Renaming tests binaries
-  * Fixed buildrequires dukgenerator to dukgenerator-devel
-  * Modify to get encryption key requested by osp security team
-  * Localization tests move
-  * Compilation Warnings - Part 3  
-
- -- leerang <leerang.song@samsung.com>  Fri, 22 Feb 2013 14:54:21 +0900
-
-wrt-commons (0.2.98) unstable; urgency=low
-
-  * wrt_commons_reset.sh fix
-  * User agent database update
-  * Compilation warnings. Deprecated code. Part 1
-  * Add function get appid from pkgid
-  * Source code formating unification
-  * Compilation warnings. Part 2
-  * Fix to test framework.
-  * DPL testcase description moved from wrt-extra
-
- -- Soyoung Kim <sy037.kim@samsung.com>  Fri, 08 Feb 2013 18:18:31 +0900
-
-wrt-commons (0.2.97) unstable; urgency=low
-
-  * Support for "process per testcase" framework.
-  * Prepare database to support CSP policy for whole widget.
-  * minizip prevent issues fixes
-
- -- Tae-Jeong Lee <taejeong.lee@samsung.com>  Wed, 06 Feb 2013 21:32:00 +0900
-
-wrt-commons (0.2.96) unstable; urgency=low
-
-  * Add specific fields to config parser struct for livebox
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.96
-
- -- Yunchan Cho <yunchan.cho@samsung.com>  Wed, 30 Jan 2013 17:09:01 +0900
-
-wrt-commons (0.2.95) unstable; urgency=low
-
-  * Change pkgname to appid and add package id PART 1.
-  * change pkgname to appid PART 2.
-  * Change pkgname to appid Part 3.
-
- -- Soyoung Kim <sy037.kim@samsung.com>  Mon, 28 Jan 2013 17:41:56 +0900
-
-wrt-commons (0.2.94) unstable; urgency=low
-
-  * Revert "Change pkgname to appid and add package id PART 1."
-  * Revert "change pkgname to appid PART 2."
-  * Fix build break in tests after API has been changed.
-
- -- Tae-Jeong Lee <taejeong.lee@samsung.com>  Fri, 25 Jan 2013 22:32:36 +0900
-
-wrt-commons (0.2.93) unstable; urgency=low
-
-  * Changed PkgName type from Optional<String> to String PART 5
-  * Support for GCC 4.7
-  * Removing hard-coding in ORDER BY statement
-  * Fixing saving locale for each icon
-  * Singleton guard thread removal
-  * Change pkgname to appid and add package id PART 1.
-  * change pkgname to appid PART 2.
-
- -- Soyoung Kim <sy037.kim@samsung.com>  Thu, 24 Jan 2013 15:53:03 +0900
-
-wrt-commons (0.2.92) unstable; urgency=low
-
-  * Removal of popup implementation
-  * Clean up unnecessary cmake log
-  * Improve XML test results collector
-  * Add method for reset crossEventCallHandler
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Wed, 16 Jan 2013 10:49:45 +0900
-
-wrt-commons (0.2.91) unstable; urgency=low
-
-  * Fix issue Prevent Defect -17677
-  * Fixing issues: 17677
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.91
-
- -- leerang <leerang.song@samsung.com>  Wed, 09 Jan 2013 18:03:04 +0900
-
-wrt-commons (0.2.90) unstable; urgency=low
-
-  * Changed PkgName type from DPL::Optional<DPL::String> to DPL::String. PART 4
-  * User agent database update
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Tue, 08 Jan 2013 11:12:49 +0900
-
-wrt-commons (0.2.89) unstable; urgency=low
-
-  * Handle return value from pthread_setspecific
-  * Deleted array to 0 comparison
-  * Deleted unreachable code
-  * Add vconf key for memory saving mode
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.89
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Wed, 02 Jan 2013 11:00:02 +0900
-
-wrt-commons (0.2.88) unstable; urgency=low
-
-  * Add path builder for vconf key
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.88
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Sat, 29 Dec 2012 14:02:18 +0900
-
-wrt-commons (0.2.87) unstable; urgency=low
-
-  * changed to get encryption/decryption key from device unique key
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.87
-
- -- Soyoung Kim <sy037.kim@samsung.com>  Fri, 28 Dec 2012 20:47:21 +0900
-
-wrt-commons (0.2.86) unstable; urgency=low
-
-  * Revert "Modify get encryption/decryption key from device unique key"
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.86
-
- -- Soyoung Kim <sy037.kim@samsung.com>  Fri, 28 Dec 2012 17:42:06 +0900
-
-wrt-commons (0.2.85) unstable; urgency=low
-
-  * For livebox configuration
-  * livebox configuration valuables have been changed
-  * Modify get encryption/decryption key from device unique key
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.85
-
- -- Soyoung Kim <sy037.kim@samsung.com>  Fri, 28 Dec 2012 14:05:27 +0900
-
-wrt-commons (0.2.83) unstable; urgency=low
-
-  * Replacing widget handle with tizenid in property DAO
-
- -- KEONGEUN <lke01.lee@samsung.com>  Fri, 21 Dec 2012 17:03:54 +0900
-
-wrt-commons (0.2.82) unstable; urgency=low
-
-  * CustomHandlersDB API updated to handle new functionalities.
-  * Add tests - DAO, DPL
-  * Custom Handlers DAO extended with new api
-  * registerWidgetSecuritySettings - nested transaction removal. New widget dao testcase
-  * Unit test for custom handler dao stub
-  * CustomHandlersDAO test
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.82
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Thu, 20 Dec 2012 09:04:59 +0900
-
-wrt-commons (0.2.81) unstable; urgency=low
-
-  * Fix dependencies in DAO modules
-  * Missing boilerplate added
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.81
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Sun, 16 Dec 2012 09:09:42 +0900
-
-wrt-commons (0.2.80) unstable; urgency=low
-
-  * Implement privilege database table
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.80
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Fri, 14 Dec 2012 10:30:48 +0900
-
-wrt-commons (0.2.79) unstable; urgency=low
-
-  * Replacing DbWidgetHandle with WidgetPkgName in SecurityOriginDAO
-  * Handle remove() return value
-  * Delete unreachable code
-  * Handle chmod return value
-  * CustomHandlerDAO implementation
-  * Unhandled isWidgetInstalled return value
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.79
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Thu, 13 Dec 2012 11:15:24 +0900
-
-wrt-commons (0.2.78) unstable; urgency=low
-
-  * Removing copy&paste code, part 2
-  * Changed SharedPtr to std:shared_ptr
-  * Changed ScopedPtr to std::unique_ptr
-  * Klocwork analysis related fix
-  * SharedFromTHis replace by STL C++0x ones
-  * Overload methods to run with tizen id instead of widgetHandle
-  * Changed PkgName type from DPL::Optional<DPL::String> to DPL::String
-  * Default "en" language tag removed from provider
-  * CustomHandlers DAO libraries stubs added
-  * Replacing widget handle with tizenid in property DAO
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.78
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Mon, 10 Dec 2012 10:11:26 +0900
-
-wrt-commons (0.2.76) unstable; urgency=low
-
-  * Add share directory
-  * Add category element for manifest.xml
-  * Modify installed path for preload widget.
-  * Updated widget resources path in wrt_reset_all.sh
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.76
-
- -- Soyoung Kim <sy037.kim@samsung.com>  Fri, 30 Nov 2012 17:47:24 +0900
-
-wrt-commons (0.2.75) unstable; urgency=low
-
-  * Throw an exception when pthread_key_create fails
-  * Symbolic link pointed by GetVCoreDatabaseFilePath will be removed.
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.75
-
- -- Tae-Jeong Lee <taejeong.lee@samsung.com>  Fri, 23 Nov 2012 22:01:00 +0900
-
-wrt-commons (0.2.74) unstable; urgency=low
-
-  * Removing copy&paste code, part 1
-  * Removal of factory_widget attribute and related functions
-  * Implement security origin dao for allow,deny one time
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.74
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Fri, 23 Nov 2012 10:09:27 +0900
-
-wrt-commons (0.2.73) unstable; urgency=low
-
-  * Distinguish between system headers and project headers
-  * Implement security origin dao for setting menu
-  * Implement security settings in the widgetDAO
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.73
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Thu, 22 Nov 2012 20:46:40 +0900
-
-wrt-commons (0.2.72) unstable; urgency=low
-
-  * Change widget installed path request by app fw
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.72
-
- -- Soyoung Kim <sy037.kim@samsung.com>  Tue, 13 Nov 2012 17:16:16 +0900
-
-wrt-commons (0.2.71) unstable; urgency=low
-
-  * Implement Security origin database
-  * hidden symbol for enhancement shared library loading time (orm.h)
-  * Default widget locale adding to language tags
-  * WrtDAO clean up - unused function with widget handle usage
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.71
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Mon, 12 Nov 2012 16:55:19 +0900
-
-wrt-commons (0.2.70) unstable; urgency=low
-
-  * Additional Include: stddef.h
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.70
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Mon, 05 Nov 2012 17:43:04 +0900
-
-wrt-commons (0.2.69) unstable; urgency=low
-
-  * [Commons] Modify package type
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.69
-
- -- Soyoung Kim <sy037.kim@samsung.com>  Mon, 05 Nov 2012 16:46:34 +0900
-
-wrt-commons (0.2.68) unstable; urgency=low
-
-  * Change profiling build
-  * Removing unused WtrUtilStringToLower
-  * Fix for localization URI ended with '/'
-  * Code refactoring and removal of factory_widget attribute
-  * WidgetDAO from WidgetHandle construction depracated
-  * WrtDAO - getPkgnameList
-  * Removal of compilation warnings
-  * W3c file localization - from pkgname construction
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.68
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Fri, 02 Nov 2012 11:20:52 +0900
-
-wrt-commons (0.2.67) unstable; urgency=low
-
-  * Localization cleaning from unused API (restore)
-  * Removing old, unused _WrtUtil* functions
-  * Database reset affects security-server
-  * Removing FileUtils
-  * Replacing recursive opendir with fts
-
-  * Release wrt-commons_0.2.67
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.67
-
- -- Soyoung Kim <sy037.kim@samsung.com>  Wed, 24 Oct 2012 17:02:50 +0900
-
-wrt-commons (0.2.66) unstable; urgency=low
-
-  * Release wrt-commons_0.2.66
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.66
-
- -- Soyoung Kim <sy037.kim@samsung.com>  Thu, 18 Oct 2012 11:33:54 +0900
-
-wrt-commons (0.2.65) unstable; urgency=low
-
-  * [Engine] Add method to get widget list
-  * [Commons] New utility functions in wrt_utility
-  * [Commons] Escaping bash sequences in argument programs
-  * [Engine] Allow to call methods using dao pointer
-  * [Engine] Remove mutex from log system.
-  * [Engine] Support for authors certificates (part 4).
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.65
-
- -- Soyoung Kim <sy037.kim@samsung.com>  Wed, 17 Oct 2012 22:08:33 +0900
-
-wrt-commons (0.2.64) unstable; urgency=low
-
-  * Revert "Localization cleaning from unused API"
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.64
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Fri, 12 Oct 2012 14:21:43 +0900
-
-wrt-commons (0.2.63) unstable; urgency=low
-
-  * Support for authors certificate
-  * WidgetDAO new CTOR (based on TizenID)
-  * Localization related cleanup
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.63
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Thu, 11 Oct 2012 12:53:19 +0200
-
-wrt-commons (0.2.62) unstable; urgency=low
-
-  * [Engine] Add license installing
-  * [Engine] clean up .gitignore
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.62
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Thu, 11 Oct 2012 08:02:04 +0900
-
-wrt-commons (0.2.61) unstable; urgency=low
-
-  * [Commons] Support for Debug and Release build configuration
-  * Deprecated localization API removal
-  * Localization refactoring and cleaning
-  * [Commons] Refactoring featureDAO, pluginDAO table
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.61
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Fri, 05 Oct 2012 07:29:49 +0900
-
-wrt-commons (0.2.60) unstable; urgency=low
-
-  * for SEL verification
-  * [Commons] POWDER remains removed
-  * [Commons] Fixed PLM P120926-3287
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.60
-
- -- Soyoung Kim <sy037.kim@samsung.com>  Fri, 28 Sep 2012 15:27:25 +0900
-
-wrt-commons (0.2.59) unstalbe; urgency=low
-
-  * Add smack manifest
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.59
-
- -- Tae-Jeong Lee <taejeong.lee@samsung.com>  Thu, 20 Sep 2012 20:08:44 +0900
-
-wrt-commons (0.2.58) unstalbe; urgency=low
-
-  * for SEL verification
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.58
-
- -- Tae-Jeong Lee <taejeong.lee@samsung.com>  Thu, 20 Sep 2012 12:02:41 +0900
-
-wrt-commons (0.2.57) unstalbe; urgency=low
-
-  * Proper list support in LanguageTagsProvider
-  * User Agent Database update
-  * Language tags providing class added
-  * Add a feature dao function giving requested features' data
-
-  * Git : framework/web/wrt-commons
-  * Tag : wrt-commons_0.2.57
-
- -- Tae-Jeong Lee <taejeong.lee@samsung.com>  Wed, 19 Sep 2012 12:03:09 +0900
-
-wrt-commons (0.2.56) unstalbe; urgency=low
-
-  * [Commons] Test mode environment variable changed
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.56
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Wed, 12 Sep 2012 15:46:28 +0900
-
-wrt-commons (0.2.55) unstable; urgency=low
-
-  * [Commons] Table ExternalFiles renamed to ExternalLocations
-  * [Commons] Fix in base path removal in localization module.
-  * [Commons] Add multiple output types in test framework
-  * [Commons] Slash added to global config paths
-  * [Commons] Background page support in WidgetModel
-  * [Commons] New table - WidgetExternalFiles
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.55
-
- -- Yunchan Cho <yunchan.cho@samsung.com>  Thu, 06 Sep 2012 00:34:12 +0900
-
-wrt-commons (0.2.54) unstable; urgency=low
-
-  * [common] Add XML test collector
-  * [common] Add encryption api
-  * [Engine] Fix for wrt-popup
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.54
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Wed, 29 Aug 2012 13:37:28 +0900
-
-wrt-commons (0.2.53) unstable; urgency=low
-
-  * Added new build type for code coverage
-  * User Agent Database update
-  * Added new SQLConnection flag - CRW and null query check
-  * Remove "auto" for fixed build break
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.53
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Thu, 09 Aug 2012 15:16:30 +0900
-
-wrt-commons (0.2.52) unstable; urgency=low
-
-  * Re-upload package
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.52
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Tue, 31 Jul 2012 11:15:58 +0900
-
-wrt-commons (0.2.51) unstable; urgency=low
-
-  * Re-upload package
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.51
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Mon, 30 Jul 2012 10:06:49 +0900
-
-wrt-commons (0.2.50) unstable; urgency=low
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.50
-
- -- Leerang Song <leerang.song@samsung.com>  Fri, 27 Jul 2012 12:02:06 +0900
-
-wrt-commons (0.2.49) unstable; urgency=low
-
-  * Add splash screen
-  * Fix circular dependency to cert-svc
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.49 
-
- -- Zbigniew Kostrzewa <z.kostrzewa@samsung.com>  Wed, 25 Jul 2012 14:36:40 +0200
-
-wrt-commons (0.2.48) unstable; urgency=low
-
-  * Fixed CCR(#N_SE-3620)
-  * FeatureDAOReadOnly - performance improvement
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.48
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Wed, 25 Jul 2012 09:58:22 +0900
-
-wrt-commons (0.2.47) unstable; urgency=low
-
-  * Change installed resource path & Add PackageType
-  * support tizen extension requirement regarding application id / required version
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.47
-
- -- Leerang Song <leerang.song@samsung.com>  Thu, 19 Jul 2012 19:19:39 +0900
-
-wrt-commons (0.2.46-1) unstable; urgency=low
-
-  * Add tag for auto SR
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.46-1
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Thu, 12 Jul 2012 15:25:36 +0900
-
-wrt-commons (0.2.46) unstable; urgency=low
-
-  * Remove auto save for WK1
-  * Support auto save id/password for WK2
-  * Multiple INVALID_WIDGET_HANDLE definition
-  * Wrt DB DefferedWidgetPackageInstallation clean up
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.46
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Thu, 12 Jul 2012 10:56:48 +0900
-
-wrt-commons (0.2.45) unstable; urgency=low
-
-  * Fingerprint list should not contain empty strings
-  * Add frame load and unload callback
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.45
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Thu, 28 Jun 2012 16:30:53 +0900
-
-wrt-commons (0.2.44) unstable; urgency=low
-
-  * Move create directory("/opt/apps/widget/")
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.44
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Thu, 21 Jun 2012 11:13:38 +0900
-
-wrt-commons (0.2.43) unstable; urgency=low
-
-  * Remove WK1
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.43
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Tue, 19 Jun 2012 09:46:13 +0900
-
-wrt-commons (0.2.42) unstable; urgency=low
-
-  * Fix build break in wrt-security
-  * Remove warning when reset .wrt.db
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.42
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Fri, 15 Jun 2012 10:31:34 +0900
-
-wrt-commons (0.2.41) unstable; urgency=low
-
-  * Clean up unused api in FeatureDAO
-  * Nested loop removal
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.41
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Thu, 31 May 2012 11:40:41 +0900
-
-wrt-commons (0.2.40) unstable; urgency=low
-
-  * Unused code removal
-  * wrt_reset_all.sh changed to remove all widgets files
-  * Modify desktop default icon path for installer
-  * Add wrt-client prefix for wk2
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.40
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Thu, 24 May 2012 18:04:34 +0900
-
-wrt-commons (0.2.39) unstable; urgency=low
-
-  * Separated singleton implementation removal
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.39
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Mon, 21 May 2012 15:26:54 +0200
-
-wrt-commons (0.2.38) unstable; urgency=low
-
-  * Refactoring common_dao for auto_save
-  * ZipInput simplified
-  * Nested loop removall
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.38
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Mon, 21 May 2012 17:13:15 +0900
-
-wrt-commons (0.2.37) unstable; urgency=low
-
-  * Tests leftovers removal
-  * Remove unused DPL::MultiTaskDecl
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.37
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Thu, 17 May 2012 19:49:51 +0900
-
-wrt-commons (0.2.36) unstable; urgency=low
-
-  * Script to reset wrt (wrt_reset_all.sh)
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.36
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Mon, 14 May 2012 18:28:43 +0900
-
-wrt-commons (0.2.35) unstable; urgency=low
-
-  * Prepare widgetDAO to get different widget IDs
-  * depends on "add recovery mechanism.." commit
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.35
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Mon, 07 May 2012 17:35:10 +0900
-
-wrt-commons (0.2.34) unstable; urgency=low
-
-  * Patch for compliance test widget-api/NoInterfaceObject
-  * TLV pthread reference issue
-  * Changing WidgetDAO rw to ro permissions where appropriate
-  * JIL and WAC1.0 leftovers removal
-  * Widget StartFile localizedPath fix
-  * Switching to the TestModeFlag - final step
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.34
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Thu, 03 May 2012 10:11:41 +0900
-
-wrt-commons (0.2.33) unstable; urgency=low
-
-  * UserAgent locales removed
-  * Deprecated api removed
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.33
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Mon, 23 Apr 2012 14:10:21 +0900
-
-wrt-commons (0.2.32) unstable; urgency=low
-
-  * Language changed callback move to WRT engine
-  * Modify the access rights for Semaphore method
-  * Ultimate solution to test mode flag
-  * Web App data sharing From orange requirement
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.32
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Mon, 16 Apr 2012 09:48:09 +0900
-
-wrt-commons (0.2.31) unstable; urgency=low
-
-  * Mapping from features to device caps is obtained from .so
-  * Exposed pc file for wrt-plugin-export header
-  * Common environment test flag
-  * getUserAgentLocales added to WidgetDAOReadOnly
-  * TAP tests results collector
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.31
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Mon, 09 Apr 2012 10:25:57 +0900
-
-wrt-commons (0.2.30) unstable; urgency=low
-
-  * clean-up powder, parental mode
-  * Revert "[wrt-commons] Added global config API and desktop_file_name_field in wrt_db"
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.30
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Wed, 28 Mar 2012 18:25:06 +0900
-
-wrt-commons (0.2.29) unstable; urgency=low
-
-  * Change user name to user id
-  * Adding cookie sharing mode field
-  * Added global config API and desktop_file_name_field in wrt_db
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.29
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Tue, 27 Mar 2012 17:05:15 +0900
-
-wrt-commons (0.2.28) unstable; urgency=low
-
-  * Optimize OBS
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.28
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Fri, 23 Mar 2012 10:10:42 +0900
-
-wrt-commons (0.2.27) unstable; urgency=low
-
-  * add libxml2-dev to 'Depends' of wrt-commons-dev package 
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.27
-
- -- Yunchan Cho <yunchan.cho@samsung.com>  Mon, 19 Mar 2012 19:01:09 +0900
-
-wrt-commons (0.2.26) unstable; urgency=low
-
-  * Create ".wrt_autosave.db"
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.26
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Mon, 19 Mar 2012 13:31:14 +0900
-
-wrt-commons (0.2.25-1) unstable; urgency=low
-
-  * Apply changed EFL APIs 
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.25-1
-
- -- Yunchan Cho <yunchan.cho@samsung.com>  Wed, 14 Mar 2012 10:04:41 +0900
-
-wrt-commons (0.2.25) unstable; urgency=low
-
-  * Support OBS, SMACK
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.25
-
- -- Yunchan Cho <yunchan.cho@samsung.com>  Tue, 13 Mar 2012 19:51:25 +0900
-
-wrt-commons (0.2.24) unstable; urgency=low
-
-  * Clean-up heynoti depedency
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.24
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Tue, 06 Mar 2012 21:12:40 +0900
-
-wrt-commons (0.2.23) unstable; urgency=low
-
-  * Move certificates and finterprint settings from wrt-commons repository into wrt-security
-  * Add exception for "create directory"
-  * Clean-up unused event source
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.23
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Tue, 06 Mar 2012 20:29:32 +0900
-
-wrt-commons (0.2.22) unstable; urgency=low
-
-  * Modified libraries' names
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.22
-
- -- Grzegorz Krawczyk <g.krawczyk@samsung.com>  Tue, 28 Feb 2012 17:01:07 +0100
-
-wrt-commons (0.2.21) unstable; urgency=low
-
-  * Vcore and ACE removed
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.21
-
- -- Grzegorz Krawczyk <g.krawczyk@samsung.com>  Fri, 24 Feb 2012 16:51:27 +0100
-
-wrt-commons (0.2.20) unstable; urgency=low
-
-  * User Agent lists update
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.20
-
- -- Hoseon LEE <hoseon46.lee@samsung.com>  Fri, 24 Feb 2012 09:28:47 +0100
-
-wrt-commons (0.2.19) unstable; urgency=low
-
-  * WAC Compliance test WL-3240 fix. 
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.19
-
- -- Zbigniew Kostrzewa <z.kostrzewa@samsung.com>  Wed, 22 Feb 2012 09:28:47 +0100
-
-wrt-commons (0.2.18) unstable; urgency=low
-
-  * Fixed static dev cap setting.
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.18
-
- -- Zbigniew Kostrzewa <z.kostrzewa@samsung.com>  Wed, 22 Feb 2012 07:59:18 +0100
-
-wrt-commons (0.2.17) unstable; urgency=low
-
-  * WAC policy test suite bugfix.
-  
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.17
- -- Zbigniew Kostrzewa <z.kostrzewa@samsung.com>  Mon, 20 Feb 2012 14:05:41 +0100
-
-wrt-commons (0.2.16) unstable; urgency=low
-
-  * Localization API minor change
-  * test package reenabled
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.16
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Mon, 13 Feb 2012 16:04:58 +0100
-
-wrt-commons (0.2.15) unstable; urgency=low
-
-  * Tapi dependency added
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.15
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Mon, 13 Feb 2012 12:53:12 +0100
-
-wrt-commons (0.2.14) unstable; urgency=low
-
-  * MEID check added
-  * Added safe singleton implementation, that prevents dubletons.
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.14
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Mon, 13 Feb 2012 12:29:16 +0100
-
-wrt-commons (0.2.13) unstable; urgency=low
-
-  * Removing SLP, Bada ... strings for Source Open
-  * Update User-agent
-  * Popup manage initialization flag fixed
-  * Add weather widget is installed by package name
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.13
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Mon, 13 Feb 2012 10:46:30 +0100
-
-wrt-commons (0.2.12) unstable; urgency=low
-
-  * disabling test package to be build 
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.12
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Wed, 08 Feb 2012 17:45:57 +0100
-
-wrt-commons (0.2.11) unstable; urgency=low
-
-  * Ace and Vcore tests moved to wrt-commons
-  * "efl" suffic removed
-  * certificate names changes
-  * bugfix:
-  ** undetermined attributes
-  ** Attributes sorting algorithm
-  ** Vcore init
-  * New tests added (to OCSP)
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.11
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Wed, 08 Feb 2012 17:10:30 +0100
-
-wrt-commons (0.2.10) unstable; urgency=low
-
-  * Files access with FILE API bug fix
-  * Add global dao APIs for operation of white document list
-  * fixed WidgetDAO for ugid
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.10
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Thu, 02 Feb 2012 15:43:01 +0900
-
-wrt-commons (0.2.9) unstable; urgency=low
-
-  * Refactoring Phase2
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.9
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Tue, 31 Jan 2012 12:56:00 +0900
-
-wrt-commons (0.2.8) unstable; urgency=low
-
-  * documentation included to repository
-  * dbus fix (crash issue with bool type)
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.8
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Wed, 25 Jan 2012 14:47:21 +0100
-
-wrt-commons (0.2.7) unstable; urgency=low
-
-  * Debianize latest source
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.7
-
- -- Yunchan Cho <yunchan.cho@samsung.com>  Wed, 25 Jan 2012 10:30:05 +0900
-
-wrt-commons (0.2.6) unstable; urgency=low
-
-  * Wrt-commons split into several libraries
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.6
-
- -- Grzegorz Krawczyk <g.krawczyk@samsung.com>  Fri, 20 Jan 2012 16:20:27 +0100
-
-wrt-commons (0.2.5) unstable; urgency=low
-
-  * DBUS module moved from wrt
-  * Dir structure has been changed (modules extracted)
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.5
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Tue, 17 Jan 2012 18:20:27 +0100
-
-wrt-commons (0.2.4) unstable; urgency=low
-
-  * Webkit2(Refactoring) branch merged
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.4
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Mon, 16 Jan 2012 15:57:06 +0900
-
-wrt-commons (0.2.3) unstable; urgency=low
-
-  * Webkit2(Refactoring) branch merged
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.3
-
- -- Jihoon Chung <jihoon.chung@samsung.com>  Mon, 16 Jan 2012 15:30:07 +0900
-
-wrt-commons (0.2.2) unstable; urgency=low
-
-  * Master and Webkit2 branch merged (ORM change merged)
-  * Mechanisms moved from wrt: NestedLoop, ScopedGPointer
-
-  * Git : slp/pkgs/w/wrt-commons
-  * Tag : wrt-commons_0.2.2
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Thu, 12 Jan 2012 11:19:00 +0100
-
-wrt-commons (0.2.1) unstable; urgency=low
-
-  * ORM interface changed
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : wrt-commons_0.2.1
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Mon, 12 Dec 2011 11:33:07 +0100
-
-wrt-commons (0.2.0) unstable; urgency=low
-
-  * Debianize for changing package name (wrt-commons)
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : wrt-commons_0.2.0
-
- -- Hoseon LEE <hoseon46.lee@samsung.com>  Thu, 08 Dec 2011 10:51:40 +0900
-
-wrt-commons (0.1.65) unstable; urgency=low
-
-  * Debianize latest source
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.65
-
- -- Hoseon LEE <hoseon46.lee@samsung.com>  Wed, 07 Dec 2011 12:11:02 +0900
-
-wrt-commons (0.1.64) unstable; urgency=low
-
-  * Fixes, FakeRPC connection added
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.64
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Tue, 29 Nov 2011 12:20:39 +0100
-
-dpl (0.1.63) unstable; urgency=low
-
-  * ThreadDatabase Support moved to dpl
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.63
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Tue, 22 Nov 2011 16:48:43 +0100
-
-dpl (0.1.62) unstable; urgency=low
-
-  * ICDelegate, apply, caller functions extended
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.62
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Thu, 17 Nov 2011 17:19:13 +0100
-
-dpl (0.1.61) unstable; urgency=low
-
-  * Adding ORM, Apply, ICD mechanism to DPL
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.61
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Wed, 09 Nov 2011 13:33:16 +0100
-
-dpl (0.1.60) unstable; urgency=low
-
-  * debianization due to icu upversioning
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.60
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Tue, 25 Oct 2011 10:40:26 +0200
-
-dpl (0.1.59) unstable; urgency=low
-
-  * modification of build option to build only EFL DPL package 
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.59
-
- -- Yunchan Cho <yunchan.cho@samsung.com>  Wed, 07 Sep 2011 13:42:54 +0900
-
-dpl (0.1.58) unstable; urgency=low
-
-  * Debianized for open source 
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.58
-
- -- Soyoung Kim <sy037.kim@samsung.com>  Tue, 06 Sep 2011 13:52:05 +0900
-
-dpl (0.1.57) unstable; urgency=low
-
-  * Waitables reloaded after HandleWatcher is called
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.57
-
- -- Zbigniew Kostrzewa <z.kostrzewa@samsung.com>  Thu, 28 Jul 2011 11:35:42 +0200
-
-dpl (0.1.56) unstable; urgency=low
-
-  * add policyClass as template param, genericsocket fixed
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.56
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Mon, 27 Jun 2011 11:55:42 +0200
-
-dpl (0.1.55) unstable; urgency=low
-
-  * once, automatic listeners cleaning, property fix
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.55
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Tue, 14 Jun 2011 10:50:56 +0200
-
-dpl (0.1.54) unstable; urgency=low
-
-  * fix build dep
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.54
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Thu, 09 Jun 2011 14:12:31 +0200
-
-dpl (0.1.53) unstable; urgency=low
-
-  * scoped patterns extended, StringCompare with ICU
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.53
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Thu, 09 Jun 2011 12:50:44 +0200
-
-dpl (0.1.52) unstable; urgency=low
-
-  * scoped patterns extanded
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.52
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Mon, 06 Jun 2011 15:59:44 +0200
-
-dpl (0.1.51) unstable; urgency=low
-
-  * string errno, get/set virtual for property
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.51
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Mon, 06 Jun 2011 14:43:48 +0200
-
-dpl (0.1.50) unstable; urgency=low
-
-  * fix namespace, fix network change message publishing, 
-  * size functionality added int TypeLists
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.50
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Thu, 19 May 2011 15:06:39 +0200
-
-dpl (0.1.49) unstable; urgency=low
-
-  * license cleanup, small bug fixes
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.49
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Thu, 12 May 2011 12:57:54 +0200
-
-dpl (0.1.48) unstable; urgency=low
-
-  * MessageQueue, static remove for semaphores
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.48
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Fri, 22 Apr 2011 11:32:15 +0200
-
-dpl (0.1.47) unstable; urgency=low
-
-  * model/property system, TLS fixed
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.47
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Thu, 14 Apr 2011 14:35:38 +0200
-
-dpl (0.1.46) unstable; urgency=low
-
-  * delegate mechanism, sql connection, test runner fix
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.46
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Thu, 31 Mar 2011 10:18:22 +0200
-
-dpl (0.1.45) unstable; urgency=low
-
-  * ThreadLocal variables, named semaphore, Waitable fix,
-  * symbols visibility fix
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.45
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Mon, 21 Mar 2011 16:57:31 +0100
-
-dpl (0.1.44) unstable; urgency=low
-
-  * Disable Werror flag, bb fixed 
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.44
-
- -- Koeun Choi <koeun.choi@samsung.com>  Thu, 10 Mar 2011 21:06:51 +0900
-
-dpl (0.1.43) unstable; urgency=low
-
-  * ecore_main_loop_select_func_get return type changed
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.43
-
- -- Koeun Choi <koeun.choi@samsung.com>  Tue, 08 Mar 2011 11:05:54 +0900
-
-dpl (0.1.42) unstable; urgency=low
-
-  * MultiTask added. union_cast, lexical_cast
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.42
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Fri, 04 Mar 2011 14:05:23 +0100
-
-dpl (0.1.41) unstable; urgency=low
-
-  * klocwork fixes, release method added to scoped array
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.41
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Tue, 01 Mar 2011 09:38:53 +0100
-
-dpl (0.1.40) unstable; urgency=low
-
-  * Zip-input fixed.
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.40
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Mon, 28 Feb 2011 10:42:44 +0100
-
-dpl (0.1.39-1) unstable; urgency=low
-
-  * redebianized
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.39-1
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Fri, 25 Feb 2011 09:33:12 +0100
-
-dpl (0.1.39) unstable; urgency=low
-
-  * Semaphore added, Mutex fixed, Zip enhanced
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.39
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Tue, 22 Feb 2011 09:54:11 +0100
-
-dpl (0.1.38) unstable; urgency=low
-
-  * GetCurrentTask, EventDispatcher fix, Append for DPL::String
-  * Zip file support
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.38
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Tue, 15 Feb 2011 17:52:24 +0100
-
-dpl (0.1.37-1) unstable; urgency=low
-
-  * redebianize
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.37-1
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Fri, 04 Feb 2011 11:11:13 +0100
-
-dpl (0.1.37) unstable; urgency=low
-
-  * EventSupport fixes.
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.37
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Thu, 03 Feb 2011 17:44:49 +0100
-
-dpl (0.1.36) unstable; urgency=low
-
-  * header fix.
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.36
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Tue, 01 Feb 2011 12:19:53 +0100
-
-dpl (0.1.35-1) unstable; urgency=low
-
-  * debianization fix.
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.35-1
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Tue, 01 Feb 2011 09:58:40 +0100
-
-dpl (0.1.35) unstable; urgency=low
-
-  * DPL::CharTraits fixed
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.35
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Tue, 01 Feb 2011 09:46:04 +0100
-
-dpl (0.1.34) unstable; urgency=low
-
-  * bundled value usage added.
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.34
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Fri, 28 Jan 2011 14:13:03 +0100
-
-dpl (0.1.33) unstable; urgency=low
-
-  * Synchronized events support.
-  * FOREACH macro.
-  * BinaryQueue reimplementation
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.33
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Fri, 21 Jan 2011 10:43:38 +0100
-
-dpl (0.1.32-3) unstable; urgency=low
-
-  * dpl path fix
-
-  * Git : 165.213.180.234:slp/pkgs/d/dpl
-  * Tag : dpl_0.1.32-3
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Tue, 11 Jan 2011 18:19:25 +0100
-
-dpl (0.1.32-2) unstable; urgency=low
-
-  * build break fixed
-
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.32-2
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Tue, 11 Jan 2011 17:29:55 +0100
-
-dpl (0.1.32-1) unstable; urgency=low
-
-  * redebianizing
-
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.32-1
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Tue, 11 Jan 2011 12:46:19 +0100
-
-dpl (0.1.32) unstable; urgency=low
-
-  * moving vconf header to dirty headers
-
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.32
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Mon, 10 Jan 2011 10:13:07 +0100
-
-dpl (0.1.31) unstable; urgency=low
-
-  * debianized - 0.1.31
-  
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.31
-
- -- Koeun Choi <koeun.choi@samsung.com>  Wed, 08 Dec 2010 20:22:25 +0900
-
-dpl (0.1.30-2) unstable; urgency=low
-
-  * debianized - 0.1.30-2
-  * Ignored category for test runner
-  * TypeListGenerator to TypeListDecl
-  
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.30-2
-
- -- Koeun Choi <koeun.choi@samsung.com>  Mon, 15 Nov 2010 16:00:52 +0900
-
-dpl (0.1.30) unstable; urgency=low
-
-  * Ignored category for test runner
-
- -- Przemyslaw Dobrowolski <p.dobrowolsk@samsung.com>  Fri, 12 Nov 2010 14:55:15 +0100
-
-dpl (0.1.29) unstable; urgency=low
-
-  * Renamed TypeListGenerator to TypeListDecl
-
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.29
-
- -- Przemyslaw Dobrowolski <p.dobrowolsk@samsung.com>  Fri, 12 Nov 2010 14:14:54 +0100
-
-dpl (0.1.28) unstable; urgency=low
-
-  * New controller mechanism 
-
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.28
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Fri, 12 Nov 2010 12:22:01 +0100
-
-dpl (0.1.27) unstable; urgency=low
-
-  * Added threads' guarded singletons
-
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.27
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Tue, 09 Nov 2010 10:13:16 +0100
-
-dpl (0.1.26) unstable; urgency=low
-
-  * Bug fixes
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.26
-
- -- Koeun Choi <koeun.choi@samsung.com>  Mon, 08 Nov 2010 14:43:15 +0100
-
- dpl (0.1.25-1) unstable; urgency=low
-
-  * Redebianized.
-
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.25-1
-
- -- Koeun Choi <koeun.choi@samsung.com>  Thu, 28 Oct 2010 12:12:45 +0900
-
-dpl (0.1.25) unstable; urgency=low
-
-  * Fixed exception handing while parsing RPC protocol
-  * commit : a19efed5a210fb1f8f91de18009b0d86e03326db
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.25
-
- -- Koeun Choi <koeun.choi@samsung.com>  Mon, 25 Oct 2010 15:21:48 +0900
-
-
-dpl (0.1.24) unstable; urgency=low
-
-  * Added 21 Controler support
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.24
-
- -- Piotr Fatyga <p.fatyga@samsung.com>  Wed, 20 Oct 2010 16:15:42 +0200
-
-dpl (0.1.23) unstable; urgency=low
-
-  * Reverted: main event dispatcher fix
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.23
-
- -- Piotr Fatyga <p.fatyga@samsung.com>  Wed, 13 Oct 2010 11:09:48 +0200
-
-dpl (0.1.22-1) unstable; urgency=low
-
-  * Main event dispatcher fix
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.22-1
-
- -- Piotr Fatyga <p.fatyga@samsung.com>  Fri, 08 Oct 2010 16:17:51 +0200
-
-dpl (0.1.22) unstable; urgency=low
-
-  * Main event dispatcher fix
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.22 
-
- -- Piotr Fatyga <p.fatyga@samsung.com>  Fri, 08 Oct 2010 14:45:45 +0200
-
-dpl (0.1.21) unstable; urgency=low
-
-  * Fixed RPC bug which caused white screen
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.21
-
- -- Piotr Fatyga <p.fatyga@samsung.com>  Thu, 07 Oct 2010 12:17:18 +0200
-
-dpl (0.1.20-1) unstable; urgency=low
-
-  * Reupload to fix debianization error (again)
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.20-1
-
- -- Piotr Fatyga <p.fatyga@samsung.com>  Wed, 06 Oct 2010 15:07:32 +0200
-
-dpl (0.1.19) unstable; urgency=low
-
-  * Fixed bug in generic RPC protocol parser & package name is changed(svn is removed)
-  
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.19
-
- -- Koeun Choi <koeun.choi@samsung.com>  Thu, 30 Sep 2010 19:17:20 +0900
-
-dpl (0.1.18) unstable; urgency=low
-
-  * support string conversion (i18n) and char traits
-
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.18
-
- -- Ming Jin <ming79.jin@samsung.com>  Fri, 17 Sep 2010 14:32:23 +0900
-
-dpl (0.1.17) unstable; urgency=low
-
-  * Upgrade to EFL1.0 alpha 
-
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.17
-
- -- Piotr Fatyga <p.fatyga@samsung.com>  Fri, 10 Sep 2010 17:41:55 +0200
-
-dpl (0.1.16) unstable; urgency=low
-
-  * changed assert routine. Building changed to Release. 
-
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.16
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Wed, 01 Sep 2010 11:39:41 +0200
-
-dpl (0.1.15) unstable; urgency=low
-
-  * Hibernation fixed 
-
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.15
-  
- -- Koeun Choi <koeun.choi@samsung.com>  Tue, 31 Aug 2010 19:00:52 +0200
-
-dpl (0.1.14) unstable; urgency=low
-
-  * Improvements in shared ptr, logging mechanism and unit testing
-
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.14
-
- -- Pawel Sikorski <p.sikorski@samsung.com>  Tue, 24 Aug 2010 09:59:48 +0200
-
-dpl (0.1.12) unstable; urgency=low
-
-  * Fixed problem with bool operator in smart pointers
-
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.12
-
- -- Przemyslaw Dobrowolski <p.dobrowolsk@samsung.com>  Wed, 18 Aug 2010 11:01:52 +0200
-
-dpl (0.1.11) unstable; urgency=low
-
-  * appcore updated 
-
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.11
-  
- -- Koeun Choi <koeun.choi@samsung.com>  Fri, 06 Aug 2010 10:28:44 +0900
-
-dpl (0.1.10) unstable; urgency=low
-
-  * Added support for handling late EFL events
-
-  * Git : 165.213.180.234:/git/slp/pkgs/dpl
-  * Tag : dpl_0.1.10
-
- -- Koeun Choi <koeun.choi@samsung.com>  Tue, 03 Aug 2010 19:34:53 +0900
-
-dpl (0.1.9) unstable; urgency=low
-
-  * Fixed bug in shared pointer copy operator
-
-  * Git : 165.213.180.234:/git/slp2.0/slp2.0-pkgs/dpl-0
-  * Tag : dpl_0.1.9
-
- -- Andrew Lee <hyunchul2.lee@samsung.com>  Mon, 12 Jul 2010 13:54:01 +0900
-
-dpl (0.1.8) unstable; urgency=low
-
-  * Fixed prevent defects
-
-  * Git : 165.213.180.234:/git/slp2.0/slp2.0-pkgs/dpl-0
-  * Tag : dpl_0.1.8
-
- -- Andrew Lee <hyunchul2.lee@samsung.com>  Tue, 22 Jun 2010 12:14:32 +0900
-
-dpl (0.1.7) unstable; urgency=low
-
-  * DLOG API change update 
-
-  * Git : 165.213.180.234:/git/slp2.0/slp2.0-pkgs/dpl-0
-  * Tag : dpl_0.1.7
-
- -- Ming Jin <ming79.jin@samsung.com>  Wed, 16 Jun 2010 17:00:00 +0900
-
-dpl (0.1.6-1) unstable; urgency=low
-
-  * Strange tag verification error.
-
-  * Git : 165.213.180.234:/git/slp2.0/slp2.0-pkgs/dpl-0
-  * Tag : dpl_0.1.6-1
-
- -- Andrew Lee <hyunchul2.lee@samsung.com>  Fri, 11 Jun 2010 11:37:41 +0900
-
-dpl (0.1.6) unstable; urgency=low
-
-  * Repackaging due to efl update.
-
-  * Git : 165.213.180.234:/git/slp2.0/slp2.0-pkgs/dpl-0
-  * Tag : dpl_0.1.6
-
- -- Andrew Lee <hyunchul2.lee@samsung.com>  Fri, 11 Jun 2010 09:38:01 +0900
-
-dpl (0.1.5) unstable; urgency=low
-
-  * Changed usage of deprecated appfwk to appcore-efl
-
-  * Git : 165.213.180.234:/git/slp2.0/slp2.0-pkgs/dpl-0
-  * Tag : dpl_0.1.5
- -- Andrew Lee <hyunchul2.lee@samsung.com>  Tue, 08 Jun 2010 19:11:38 +0900
-
-dpl (0.1.4) unstable; urgency=low
-
-  * appfwk api removed
-
-  * Git : 165.213.180.234:/git/slp2.0/slp2.0-pkgs/dpl-0
-  * Tag : dpl_0.1.4
-
- -- Andrew Lee <hyunchul2.lee@samsung.com>  Fri, 04 Jun 2010 11:22:28 +0900
-
-dpl (0.1.3) unstable; urgency=low
-
-  * single instance locking mechanism supported 
-  
-  * Git : 165.213.180.234:/git/slp2.0/slp2.0-pkgs/dpl-0
-  * Tag : dpl_0.1.3
-
- -- Koeun Choi <koeun.choi@samsung.com>  Wed, 19 May 2010 20:19:00 +0900
-
-dpl (0.1.2) unstable; urgency=low
-
-  * HIBERNATION_LEAVE_BEFORE_WS added 
-  
-  * Git : 165.213.180.234:/git/slp2.0/slp2.0-pkgs/dpl-0
-  * Tag : dpl_0.1.2
-
- -- Koeun Choi <koeun.choi@samsung.com>  Tue, 18 May 2010 08:27:14 +0900
-
-dpl (0.1.1) unstable; urgency=low
-
-  * permission changed by new SLP security guideline  
-  
-  * Git : 165.213.180.234:/git/slp2.0/slp2.0-pkgs/dpl-0
-  * Tag : dpl_0.1.1
-
- -- Koeun Choi <koeun.choi@samsung.com>  Fri, 14 May 2010 14:07:16 +0900
-
-dpl (0.1.0) unstable; urgency=medium
-
-  * below details are written by Przemek. :)
-
-  * Added main window visibility optional flag to application class.
-
-  * Removed debug logs from application (switched to pedantic ones)
-    Fixed close sequence in RPC example
-
-  * Fixed critical leak in rpc connection related to acquisition of abstract waitable input/output.
-
-  * Added RPC Client/Server example
-
-  * Removed useParam from ConnectionEstablished event in RPC Server/Client
-    Added ConnectionID to ConnectionEstablishedEvent in RPC Server/Client
-    Added convience Open methods to (Tcp/Unix)SocketRPC(Server/Client)
-
-  * Removed purpose-specific static call code.
-
-  * Added implementation of GenericSocketRPCServer, TcpSocketRPCServer, UnixSocketRPCServer.
-
-  * Implementation in progress: Client/Server architecture for RPC - client and connection part.
-
-  * Temporary fix to build break caused by problems with in DLOG include files
-
-  * Fixed unregister global noti signal routine
-
-  * Added dedicated RPCFunction include file
-    All current RPC mechanisms marked as deprecated
-    Added RPC Client/Server/Connection stub files
-  * Git : 165.213.180.234:/git/slp2.0/slp2.0-pkgs/dpl-0
-  * Tag : dpl_0.1.0
-
- -- Koeun Choi <koeun.choi@samsung.com>  Fri, 07 May 2010 11:10:09 +0200
-
-dpl (0.0.9) unstable; urgency=low
-
-  * HibernationEnter and HibernationLeave system events added to EventDeliverySystem
-
-  * Added support for old style pedantic logs
-
-  * Added initial support (i386,gcc) for dynamically created static methods (static interception)
-
-  * Added protocol argument size checks in RPC
-
-  * Fixed non-reentrant version of serialized string parser in EventDeliverySystem
-
-  * Fixed multiple event handling routines to return all signaled handles list (starvation related fix)
-
-  * Workaround definition file added. Moved GLIB-loop-intergration workaround to workaround definition file.
-
-  * Fixed typo in exception messages
-
-  * Workaround for SLP select
-
-  * Added postinstallation scripts for EFL and GTL version of DPL
-
-  * Fixed bug related to improper reinitialization of socket descriptor after Close/Open sequence
-
-  * Added GenericSocketRPC
-    Added TcpSocketRPC
-    Implementation of UnixSocketRPC rebased to GenericSocketRPC
-    Fixed template-based problems with declaring nested generic exceptions
-
-  * Added support for old style plain logs (export DPL_USE_OLD_STYLE_LOGS=1)
-
-  * Fixed bug in WaitableInputOutputExecutionContextSupport related to continous event insisting
-    Fixed bug in WaitableHandle related to improper handling of Read/Write events
-    Added support for retrieving other errors in WatableHandle
-    Added runtime-check for invalid WaitableHandles
-
-  * Fixed DPL debug package name
-
-  * More DPL doxygen documentation added.
-
-  * Added more tests for BinaryQueue (21)
-    Added doxygen documentation for BinaryQueue
-
-  * BinaryQueue basic unit tests added (13)
-
-  * Added generic framework for unit-testing for DPL
-
-  * Added support for handling manipulations with waitable handle watcher/listeners lists during event handling
-    Added TcpSocket
-    Added tcpsock example
-    Added support for defining maximum number of bytes to read in AbstractInput
-    Added support for DNS resolve for tcp Address
-
-  * Added support for retrieving doubles from database in SqlConnection.
-    Added exceptions on retrieving column out of bounds.
-
-  * Added support for retrieveing last insert row ID in SqlConnnection (reported by b.grzelewski)
-
-  * Fixed bug in GenericRPC related to inproper interpretation of incoming data stream (reported by p.sikorski)
-
-  * Git : 165.213.180.234:/git/slp2.0/slp2.0-pkgs/dpl-0
-  * Tag : dpl_0.0.8
-
-
- -- Koeun Choi <koeun.choi@samsung.com>  Thu, 29 Apr 2010 17:41:02 +0200
-
-dpl (0.0.8) unstable; urgency=medium
-
-  * debianized : commit 210d5f7ecd396ff9aeeafcb0d34272a4c4e6c77d 
-  
-  * Git : 165.213.180.234:/git/slp2.0/slp2.0-pkgs/dpl-0
-  * Tag : dpl_0.0.8
-
- -- Koeun Choi <koeun.choi@samsung.com>  Fri, 23 Apr 2010 00:51:27 +0900
-
-dpl (0.0.7) unstable; urgency=low
-
-  * debianized  
-  * Git : 165.213.180.234:/git/slp2.0/slp2.0-pkgs/dpl-0
-  * Tag : dpl_0.0.7
-  
-
- -- Koeun Choi <koeun.choi@samsung.com>  Tue, 20 Apr 2010 14:16:18 +0900
-
-dpl (0.0.6) unstable; urgency=medium
-
-  * LogSystem switched to DLOG
-
-  * Initial support for Application in gtk version added
-
-  * Fixed link problems in example projects build scripts
-
-  * Added missing sender in events from GenericSocket
-
-  * Added missing dependencies to db-util in pkgconfig files
-
-  * Fixed memory leak in MainEventDispatcher for EFL, related to timed events (reported by valgrind)
-
-  * Fixed memory leak in Thread event list (reported by valgrind)
-
-  * Minimum version of libslp-setting-0 defined (reported by p.misiak)
-
-  * Fixed bug in UnixSocketRPC in scenario when cannot connect (reported by p.sikorski)
-
- -- Koeun Choi <koeun.choi@samsung.com>  Fri, 16 Apr 2010 11:08:46 +0200
-
-dpl (0.0.5) unstable; urgency=high
-
-  * Minimum required version od db-util changed to 0.1.0-23 due to link problems
-
- -- Koeun Choi <koeun.choi@samsung.com>  Thu, 15 Apr 2010 08:28:08 +0200
-
-dpl (0.0.4) unstable; urgency=medium
-
-  * SQLConnection: Added support for Lucene indexer
-
-  * Replaced deprecated API from vconf and util in EventDeliveryDetail for EFL
-
-  * Added doxygen configuration file
-    Added deprecated DPL declarator file
-    Added support for handling broken connections in GenericSocket and RPC
-
-  * DLOG: dlog_init/dlog_deinit is not needed and deprecated. Removed.
-
-  * Fixed bug related to multiple close/connect on socket (reported by p.sikorski)
-
-  * Reference manual stub added
-
-  * Added WaitableInputOutputExecutionContextSupport
-    Various bugfixes related to WaitableHandleSupport
-    Added RPC ClosedEvent support
-
- -- Koeun Choi <koeun.choi@samsung.com>  Wed, 14 Apr 2010 14:27:54 +0200
-
-dpl (0.0.3) unstable; urgency=low
-
-  * Experimental RPC over unix-sockets added.
-
-  * Fixed bug in Main. Various bugfixes in UnixSocket and GenericSocket. GenericRPC implementation in progress
-
-  * Removed NamedPipeRPCCall
-    Added UnixSocketRPC
-    Renaming RPCCall -> RPC
-
-  * GenericSocket implementation finished
-
-  * Generic socket implementation in progress.
-    Added DPL debug package
-
-  * Added Main
-
-  * Fixed DPL-GTK library dependency problem
-
-  * Added WaitableHandleWatchSupport
-
-  * Fixed BUG in EFL-MainEventDispatcher, regarding too late deinitialization
-
-  * Fixed bug in controller touch check assertions.
-    Generic socket implementation in progress.
-
-  * Added support for mode in waitable handle wait procedures.
-    Added support for multi-mode watchers in thread.
-    Added UnixSocket implementation.
-    Added GenericSocket implementation.
-    Added AbstractSocket.
-    Added Address concept.
-    Added example socket test program.
-
-  * Controller extended to handle maximum of 20 events
-
-  * Added WaitableHandle
-
-  * Added AbstractWaitableInput, AbstractWaitableOutput, AbstractWaitableInputOutput,
-    NamedBasePipe, NamedInputPipe, NamedOutputPipe, partial implementation of GenericRPCCall,
-    full implementation of NamedPipeRPCCall
-
-  * Added NamedPipe (blocking mode)
-
-  * Added AbstractInput, AbstractOutput, AbstractInputOutput, NamedPipe stub, GenericRPCCall stub
-
-  * Added RecursiveMutex.
-    Added support for waitable event watchers in Thread.
-
-  * Added BinaryQueue
-
-  * Debian/changelog updated
-
-  * Fixed build-depends
-
-  * Package build dependencies defined properly
-
- -- Koeun Choi <koeun.choi@samsung.com>  Thu, 08 Apr 2010 15:54:02 +0200
-
-dpl (0.0.2) unstable; urgency=low
-
-  * Toolchain upgrades and fixes
-
- -- Koeun Choi <koeun.choi@samsung.com>  Tue, 23 Mar 2010 11:40:32 +0100
-
-dpl (0.0.1) unstable; urgency=low
-
-  * Initial release
-
- -- Koeun Choi <koeun.choi@samsung.com>  Tue, 23 Mar 2010 11:40:32 +0100
-
diff --git a/debian/compat b/debian/compat
deleted file mode 100644 (file)
index 7ed6ff8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-5
diff --git a/debian/control b/debian/control
deleted file mode 100644 (file)
index e8aeeed..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-Source: wrt-commons
-Section: devel
-Priority: extra
-Maintainer: Lukasz Wrzosek<l.wrzosek@samsung.com>,  Taejeong.lee <taejeong.lee@samsung.com>
-Standards-Version: 3.7.2
-Uploaders: Yunchan Cho <yunchan.cho@samsung.com>,Przemyslaw Dobrowolski <p.dobrowolsk@samsung.com>, Pawel Sikorski <p.sikorski@samsung.com>, Zbigniew Kostrzewa <z.kostrzewa@samsung.com>
-Build-Depends: debhelper (>= 5), libecore-dev, libslp-setting-dev (>=0.2.5-2), libappcore-efl-dev, libssl-dev, libsqlite3-dev, dlog-dev (>= 0.2.14-0), libglib2.0-dev, libslp-db-util-dev (>= 0.1.0-23), zlib1g-dev, libpcre-dev, libicu-dev, libxmlsec1-dev, openssl, libxml2-dev, libsoup2.4-dev, libiri-dev, libidn11-dev
-# If you want to build version of gtk, comment out above one live and use the following one line
-#Build-Depends: debhelper (>= 5), libecore-dev, libslp-setting-dev (>=0.2.5-2), libappcore-efl-dev, libssl-dev, libsqlite3-dev, dlog-dev (>= 0.2.14-0), libglib2.0-dev, libslp-db-util-dev (>= 0.1.0-23), libgtk2.0-dev, zlib1g-dev, libpcre-dev, libicu-dev
-
-Package: wrt-commons
-Section: libs
-Provides: dpl-efl
-Conflicts: dpl-efl
-Replaces: dpl-efl
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: Design patterns library - EFL based
- Design patterns library is a collection of useful C++ utilities
- to easily develop window applications.
-
-# If you want to build version of gtk, comment out the following lines
-#Package: dpl-gtk
-#Section: libs
-#Architecture: any
-#Depends: ${shlibs:Depends}, ${misc:Depends}
-#Description: Design patterns library - GTK based
-# Design patterns library is a collection of useful C++ utilities
-# to easily develop window applications.
-
-Package: wrt-commons-dev
-XB-Public-Package: no
-Section: devel
-Provides: dpl-efl-dev
-Conflicts: dpl-efl-dev
-Replaces: dpl-efl-dev
-Architecture: any
-Depends: wrt-commons (= ${Source-Version}), libecore-dev, libslp-setting-dev (>=0.2.5-2), libappcore-efl-dev, libssl-dev, libsqlite3-dev, dlog-dev (>= 0.2.14-0), libslp-db-util-dev (>= 0.1.0-23), zlib1g-dev, libpcre-dev, libxml2-dev
-Description: Design patterns library - EFL based developer files
- Design patterns library is a collection of useful C++ utilities
- to easily develop window applications. The most important part of
- library is full MVC support. It also supports event-based architecture,
- adds wrappers for many packages and provides many basic C++ utilities
- as RAII objects, singletons, and many other.
-
-# If you want to build version of gtk, comment out the following lines
-#Package: dpl-gtk-dev
-#XB-Public-Package: no
-#Section: devel
-#Architecture: any
-#Depends: dpl-gtk (= ${Source-Version}), libglib2.0-dev, libgtk2.0-dev, libssl-dev, libsqlite3-dev, dlog-dev (>= 0.2.14-0), libslp-db-util-dev (>= 0.1.0-23), zlib1g-dev, libpcre-dev
-#Description: Design patterns library - GTK based developer files
-# Design patterns library is a collection of useful C++ utilities
-# to easily develop window applications. The most important part of
-# library is full MVC support. It also supports event-based architecture,
-# adds wrappers for many packages and provides many basic C++ utilities
-# as RAII objects, singletons, and many other.
-
-#Package: wrt-commons-test
-#Section: libs
-#Provides: dpl-test
-#Conflicts: dpl-test
-#Replaces: dpl-test
-#Architecture: any
-#Depends: wrt-commons (= ${Source-Version})
-#Description: Test programs.
-
-Package: wrt-commons-dbg
-Section: debug
-Provides: dpl-dbg
-Conflicts: dpl-dbg
-Replaces: dpl-dbg
-Architecture: any
-Depends: wrt-commons (= ${Source-Version})
-# If you want to build version of gtk, comment out above one live and use the following one line
-#Depends: wrt-commons (= ${Source-Version}), dpl-gtk (= ${Source-Version})
-Description: Design patterns library - Debug files
- Design patterns library is a collection of useful C++ utilities
- to easily develop window applications. The most important part of
- library is full MVC support. It also supports event-based architecture,
- adds wrappers for many packages and provides many basic C++ utilities
- as RAII objects, singletons, and many other.
-
diff --git a/debian/copyright b/debian/copyright
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/debian/dirs b/debian/dirs
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/debian/rules b/debian/rules
deleted file mode 100755 (executable)
index 12505a7..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/usr/bin/make -f
-
-#export DH_VERBOSE=1
-PACKAGE_VERSION ?= $(shell dpkg-parsechangelog | sed -n 's/^Version: // p')
-
-ifneq (,$(findstring yes,$(DPL_LOGS)))
-DPL_LOGS_STATUS = "ON"
-else
-DPL_LOGS_STATUS = "OFF"
-endif
-
-BUILD_DIR = cmake-build
-
-configure: configure-stamp
-configure-stamp:
-       dh_testdir
-       rm -rf $(BUILD_DIR)
-       mkdir $(BUILD_DIR)
-       ( cd $(BUILD_DIR); cmake ..          \
-                -DCMAKE_INSTALL_PREFIX=/usr  \
-                -DDPL_LOG=$(DPL_LOGS_STATUS) \
-               -DVERSION=${PACKAGE_VERSION};)
-
-       touch configure-stamp
-
-build: build-stamp
-build-stamp: configure-stamp 
-       dh_testdir
-       ( cd $(BUILD_DIR); $(MAKE) -j 4 )
-       touch $@
-
-clean:
-       dh_testdir
-       dh_testroot
-       rm -f build-stamp configure-stamp
-       rm -rf $(BUILD_DIR)
-       dh_clean 
-
-install: build
-       dh_testdir
-       dh_testroot
-       dh_clean -k 
-       dh_installdirs
-       ( cd $(BUILD_DIR); $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install )
-       cd ..
-
-binary-indep: build install
-
-binary-arch: build install
-       dh_testdir
-       dh_testroot
-       dh_installchangelogs 
-       dh_installdocs
-       dh_installexamples
-       dh_install --sourcedir=debian/tmp
-#      dh_installmenu
-#      dh_installdebconf       
-#      dh_installlogrotate
-#      dh_installemacsen
-#      dh_installpam
-#      dh_installmime
-#      dh_installinit
-#      dh_installcron
-#      dh_installinfo
-       dh_installman
-       dh_link
-       dh_strip --dbg-package=wrt-commons-dbg
-       dh_compress
-       dh_fixperms
-#      dh_perl
-#      dh_python
-       dh_makeshlibs
-       dh_installdeb
-       dh_shlibdeps
-       dh_gencontrol
-       dh_md5sums
-       dh_builddeb
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install configure
diff --git a/debian/wrt-commons-dev.dirs b/debian/wrt-commons-dev.dirs
deleted file mode 100644 (file)
index ca24d3e..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-usr/include
-usr/include/dpl-efl
-usr/include/dpl-efl/dpl
-usr/include/dpl-efl/dpl/3rdparty
-usr/include/dpl-efl/dpl/3rdparty/fastdelegate
diff --git a/debian/wrt-commons-dev.install b/debian/wrt-commons-dev.install
deleted file mode 100644 (file)
index 8163e23..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/include/dpl-efl/*
-usr/lib/pkgconfig/*.pc
diff --git a/debian/wrt-commons.dirs b/debian/wrt-commons.dirs
deleted file mode 100644 (file)
index f5b3bee..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/lib
-
diff --git a/debian/wrt-commons.install b/debian/wrt-commons.install
deleted file mode 100644 (file)
index e35c8f5..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-usr/lib/*.so*
-/usr/share/wrt-engine/*
-/usr/bin/wrt_commons_reset_db.sh
-/usr/bin/wrt_commons_create_clean_db.sh
diff --git a/debian/wrt-commons.postinst b/debian/wrt-commons.postinst
deleted file mode 100755 (executable)
index 5cadde4..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/sh
-
-if [ -z ${2} ]; then
-    echo "This is new install of wrt-commons"
-    echo "Calling /usr/bin/wrt_commons_reset_db.sh"
-    /usr/bin/wrt_commons_reset_db.sh
-else
-    # Find out old and new version of databases
-    WRT_OLD_DB_VERSION=`sqlite3 /opt/dbspace/.wrt.db ".tables" | grep "DB_VERSION_"`
-    WRT_NEW_DB_VERSION=`cat /usr/share/wrt-engine/wrt_db.sql | tr '[:blank:]' '\n' | grep DB_VERSION_`
-    AUTOSAVE_OLD_DB_VERSION=`sqlite3 /opt/dbspace/.wrt_autosave.db ".tables" | grep "DB_VERSION_"`
-    AUTOSAVE_NEW_DB_VERSION=`cat /usr/share/wrt-engine/wrt_autosave_db.sql | tr '[:blank:]' '\n' | grep DB_VERSION_`
-    CUSTOM_HANDLER_OLD_DB_VERSION=`sqlite3 /opt/dbspace/.wrt_custom_handler.db ".tables" | grep "DB_VERSION_"`
-    CUSTOM_HANDLER_NEW_DB_VERSION=`cat /usr/share/wrt-engine/wrt_custom_handler_db.sql | tr '[:blank:]' '\n' | grep DB_VERSION_`
-    echo "OLD wrt database version ${WRT_OLD_DB_VERSION}"
-    echo "NEW wrt database version ${WRT_NEW_DB_VERSION}"
-    echo "OLD wrt_autosave database version ${AUTOSAVE_OLD_DB_VERSION}"
-    echo "NEW wrt_autosave database version ${AUTOSAVE_NEW_DB_VERSION}"
-    echo "OLD wrt_custom_handler database version ${CUSTOM_HANDLER_OLD_DB_VERSION}"
-    echo "NEW wrt_custom_handler database version ${CUSTOM_HANDLER_NEW_DB_VERSION}"
-
-    if [ ${WRT_OLD_DB_VERSION} -a ${WRT_NEW_DB_VERSION} -a ${AUTOSAVE_OLD_DB_VERSION} -a ${AUTOSAVE_NEW_DB_VERSION} -a ${CUSTOM_HANDLER_OLD_DB_VERSION} -a ${CUSTOM_HANDLER_NEW_DB_VERSION}]
-    then
-        if [ ${WRT_NEW_DB_VERSION} = ${WRT_OLD_DB_VERSION} -a ${AUTOSAVE_NEW_DB_VERSION} = ${AUTOSAVE_OLD_DB_VERSION} -a ${CUSTOM_HANDLER_NEW_DB_VERSION} = ${CUSTOM_HANDLER_OLD_DB_VERSION}]
-        then
-            echo "Equal database detected so db installation ignored"
-        else
-            echo "Calling /usr/bin/wrt_commons_reset_db.sh"
-            /usr/bin/wrt_commons_reset_db.sh
-        fi
-    else
-        echo "Calling /usr/bin/wrt_commons_reset_db.sh"
-        /usr/bin/wrt_commons_reset_db.sh
-    fi
-fi
-
-mkdir -p /usr/etc/ace
-mkdir -p /usr/apps/org.tizen.policy
-
-# DBUS services fix
-# WARNING: THIS IS TEMPORARY SOLUTION, AS THIS SHOULD NOT BE OUR
-# RESPONSIBILITY!!! WE HAVE TO CONTACT TO DBUS MAINAINERS
-
-if [ -f /var/lib/dbus/machine-id ]; then
-    echo "machine-id exists"
-else
-    if [ -f /usr/var/lib/dbus/machine-id ]; then
-        echo "machine-id exists"
-    else
-        echo "Creating machine-id"
-        mkdir -p /usr/var/lib/dbus/
-        dbus-uuidgen > /usr/var/lib/dbus/machine-id
-        dbus-uuidgen --ensure=/usr/var/lib/dbus/machine-id
-    fi
-    mkdir -p /var/lib/dbus/
-    cp /usr/var/lib/dbus/machine-id /var/lib/dbus/
-fi
-
-echo "[WRT] wrt-commons postinst done ..."
index d333d9d..f1287c2 100755 (executable)
 
 for name in wrt wrt_autosave wrt_custom_handler
 do
+    # extract smack label before removal
+    DB_LABEL=""
+    if [ -f /opt/dbspace/.$name.db ]
+    then
+        DB_LABEL=`chsmack /opt/dbspace/.$name.db | sed -r "s/.*access=\"([^\"]+)\"/\1/"`
+    fi
     rm -f /opt/dbspace/.$name.db
+
+    # extract smack label before removal
+    JOURNAL_LABEL=""
+    if [ -f /opt/dbspace/.$name.db-journal ]
+    then
+        JOURNAL_LABEL=`chsmack /opt/dbspace/.$name.db-journal | sed -r "s/.*access=\"([^\"]+)\"/\1/"`
+    fi
     rm -f /opt/dbspace/.$name.db-journal
+
     SQL="PRAGMA journal_mode = PERSIST;"
     sqlite3 /opt/dbspace/.$name.db "$SQL"
     SQL=".read /usr/share/wrt-engine/"$name"_db.sql"
@@ -27,7 +41,20 @@ do
     chown 0:6026 /opt/dbspace/.$name.db-journal
     chmod 660 /opt/dbspace/.$name.db
     chmod 660 /opt/dbspace/.$name.db-journal
+
     pkill -9 security-serv
+
+    # restore smack label
+    if [ -n "$DB_LABEL" ]
+    then
+        chsmack -a $DB_LABEL /opt/dbspace/.$name.db
+    fi
+
+    # restore smack label
+    if [ -n "$JOURNAL_LABEL" ]
+    then
+        chsmack -a $JOURNAL_LABEL /opt/dbspace/.$name.db-journal
+    fi
 done
 
 
index 4f1a719..5bcd6e7 100755 (executable)
 #include <dpl/wrt-dao-ro/common_dao_types.h>
 #include <sys/stat.h>
 #include <fstream>
+/* GCC versions 4.7 had changes to the C++ standard. It 
+ * no longer includes <unistd.h> to remove namespace pollution.
+ */
+#include <unistd.h>
 
 using namespace DPL::DB::ORM;
 using namespace DPL::DB::ORM::certificate;
index 4bea51f..8c34ce7 100644 (file)
@@ -141,6 +141,18 @@ DPL::Optional<DPL::String> getFilePathInWidgetPackageFromUrl(
 {
     DPL::String req = url;
 
+    DPL::String::size_type pos = req.find_first_of('#');
+    if(pos != DPL::String::npos)
+    {
+        req.resize(pos); //truncate fragment identifier
+    }
+
+    pos = req.find_first_of('?');
+    if(pos != DPL::String::npos)
+    {
+        req.resize(pos); //truncate query string
+    }
+
     if (req.find(WIDGET_URI_BEGIN) == 0) {
         req.erase(0, WIDGET_URI_BEGIN.length());
     } else if (req.find(FILE_URI_BEGIN) == 0) {
index 746e61c..f3c4740 100755 (executable)
@@ -32,6 +32,7 @@
 #include <dpl/wrt-dao-ro/common_dao_types.h>
 #include <sys/stat.h>
 #include <fstream>
+#include <unistd.h>
 
 using namespace DPL::DB::ORM;
 using namespace DPL::DB::ORM::security_origin;
index 6e025db..de8840b 100644 (file)
@@ -48,17 +48,29 @@ namespace Utils {
  *
  * Class for expressing paths not limited not existing ones.
  * It's possible to check if path exists, remove it or iterate it if it's directory
+ *
+ * Created Path object allways contains absolute path, never relative path.
+ * Simplifies common usage cases:
+ * - path construction (with /= and / operators)
+ * - directory iterator (begin(), end(), iterator construction)
+ * - receiving filenames and directory names of given paths
+ * - checking what is pointed by path (Exists(), IsFile(), IsDir())
+ *
+             * Check tests for details of usage.
  */
 class Path
 {
 public:
     DECLARE_EXCEPTION_TYPE(DPL::Exception, BaseException)
-    DECLARE_EXCEPTION_TYPE(BaseException, AlreadyExists)
-    DECLARE_EXCEPTION_TYPE(BaseException, NotExists)
-    DECLARE_EXCEPTION_TYPE(BaseException, NotDirectory)
-    DECLARE_EXCEPTION_TYPE(BaseException, OperationFailed)
-    DECLARE_EXCEPTION_TYPE(BaseException, EmptyPath)
-    DECLARE_EXCEPTION_TYPE(BaseException, InternalError)
+    DECLARE_EXCEPTION_TYPE(BaseException, AlreadyExists)            //path already exists
+    DECLARE_EXCEPTION_TYPE(BaseException, NotPrefix)                //given path is not prefix of this path
+    DECLARE_EXCEPTION_TYPE(BaseException, NotExists)                //file not exists
+    DECLARE_EXCEPTION_TYPE(BaseException, NotDirectory)             //directory nto exists
+    DECLARE_EXCEPTION_TYPE(BaseException, OperationFailed)          //operation failed due to system error(permission etc..)
+    DECLARE_EXCEPTION_TYPE(BaseException, EmptyPath)                //object cannot be constructed with empty path
+    DECLARE_EXCEPTION_TYPE(BaseException, InternalError)            //internal error / wrong path usage
+    DECLARE_EXCEPTION_TYPE(BaseException, CannotCopy)               //cannot make copy
+    DECLARE_EXCEPTION_TYPE(BaseException, RootDirectoryError)       //operation cannot be done with root diretory
 
     class Iterator : public std::iterator<std::input_iterator_tag, Path>
     {
@@ -82,8 +94,14 @@ public:
     explicit Path(const DPL::String & str);
     explicit Path(const std::string & str);
     explicit Path(const char * str);
+    Path();
 
     /**
+     * @brief DirectoryPath shell's dirname equivalent as path
+     * @return directory path
+     */
+    Path DirectoryPath() const;
+    /**
      * @brief DirectoryName shell's dirname equivalent
      * @return directory name of given path
      */
@@ -92,7 +110,7 @@ public:
      * @brief Basename shell's basename equivalent
      * @return base name of given path
      */
-    std::string Basename() const;
+    std::string Filename() const;
     /**
      * @brief Fullpath fullpath based on current working diretory
      * @return full path
@@ -103,6 +121,15 @@ public:
     bool IsDir() const;
     bool IsFile() const;
     bool IsSymlink() const;
+    std::size_t Size() const;
+    /**
+     * @brief isSubPath Returns relative path to given base
+     * @param prefix base path
+     * @return reltive path
+     *
+     * @throws If prefix does not match to this path object
+     */
+    bool isSubPath(const Path & other) const;
 
     bool operator==(const Path & other) const;
     bool operator!=(const Path & other) const;
@@ -120,8 +147,10 @@ public:
     Iterator begin() const;
     Iterator end() const;
 
+    //root error - throws error on root directory
+    void RootGuard() const;
+
 private:
-    Path();
 
     void Append(const std::string& part);
     void Construct(const std::string & src);
@@ -151,6 +180,12 @@ void MakeEmptyFile(const Path & path);
 void Remove(const Path & path);
 
 /**
+ * @brief TryRemove tries to remvoe path
+ * @param path returns status of removal
+ */
+bool TryRemove(const Path & path);
+
+/**
  * @brief Rename renames(moves) current path
  *
  * If you uses this method string to path is internally change
@@ -167,6 +202,22 @@ void Rename(const Path & from, const Path & to);
  */
 bool Exists(const Path & path);
 
+/**
+ * @brief Copy file
+ *
+ * @param from source path
+ * @param to target path
+ */
+void CopyFile(const Path & from, const Path & to);
+
+/**
+ * @brief Copy directory recursively
+ *
+ * @param from source directory path
+ * @param to target directory path
+ */
+void CopyDir(const Path & from, const Path & to);
+
 }
 
 }
index 5ce44a1..5f36011 100644 (file)
@@ -28,7 +28,9 @@
 #include <dpl/file_input.h>
 #include <dpl/file_output.h>
 #include <dpl/copy.h>
-
+#include <dpl/log/log.h>
+#include <dpl/foreach.h>
+#include <unistd.h>
 #include <sys/stat.h>
 
 namespace DPL {
@@ -138,7 +140,7 @@ void Path::Construct(const std::string & src)
     Tokenize(src, "\\/", std::inserter(m_parts, m_parts.end()), true);
 }
 
-Path::Path() //for private usage
+Path::Path()
 {
 }
 
@@ -149,7 +151,7 @@ std::string Path::DirectoryName() const
     return std::string("/") + ret;
 }
 
-std::string Path::Basename() const
+std::string Path::Filename() const
 {
     if(m_parts.empty()) return "";
     else return m_parts.back();
@@ -179,16 +181,22 @@ Path::Iterator Path::end() const
     return Iterator();
 }
 
+void Path::RootGuard() const
+{
+    if(m_parts.empty()) Throw(RootDirectoryError);
+}
 
 bool Path::Exists() const
 {
     struct stat tmp;
+    memset(&tmp, 0, sizeof(struct stat));
     return (0 == lstat(Fullpath().c_str(), &tmp));
 }
 
 bool Path::IsDir() const
 {
     struct stat tmp;
+    memset(&tmp, 0, sizeof(struct stat));
     if (-1 == lstat(Fullpath().c_str(), &tmp))
     {
         ThrowMsg(NotExists, DPL::GetErrnoString());
@@ -199,6 +207,7 @@ bool Path::IsDir() const
 bool Path::IsFile() const
 {
     struct stat tmp;
+    memset(&tmp, 0, sizeof(struct stat));
     if (-1 == lstat(Fullpath().c_str(), &tmp))
     {
         ThrowMsg(NotExists, DPL::GetErrnoString());
@@ -209,6 +218,7 @@ bool Path::IsFile() const
 bool Path::IsSymlink() const
 {
     struct stat tmp;
+    memset(&tmp, 0, sizeof(struct stat));
     if (-1 == lstat(Fullpath().c_str(), &tmp))
     {
         ThrowMsg(NotExists, DPL::GetErrnoString());
@@ -228,14 +238,14 @@ bool Path::operator!=(const Path & other) const
 
 Path Path::operator/(const DPL::String& part) const
 {
-    Path newOne;
+    Path newOne(*this);
     newOne.Append(ToUTF8String(part));
     return newOne;
 }
 
 Path Path::operator/(const std::string& part) const
 {
-    Path newOne;
+    Path newOne(*this);
     newOne.Append(part);
     return newOne;
 }
@@ -250,16 +260,19 @@ Path Path::operator/(const char * part) const
 Path & Path::operator/=(const DPL::String& part)
 {
     Append(ToUTF8String(part));
+    return *this;
 }
 
 Path & Path::operator/=(const std::string& part)
 {
     Append(part);
+    return *this;
 }
 
 Path & Path::operator/=(const char * part)
 {
     Append(std::string(part));
+    return *this;
 }
 
 void Path::Append(const std::string& part)
@@ -269,18 +282,53 @@ void Path::Append(const std::string& part)
     std::copy(tokens.begin(), tokens.end(), std::inserter(m_parts, m_parts.end()));
 }
 
+Path Path::DirectoryPath() const
+{
+    Path npath;
+    if(m_parts.empty()) ThrowMsg(InternalError, "Asking DirectoryPath for root directory");
+    std::copy(m_parts.begin(), --m_parts.end(), std::back_inserter(npath.m_parts));
+    return npath;
+}
+
+std::size_t Path::Size() const
+{
+    struct stat tmp;
+    memset(&tmp, 0, sizeof(struct stat));
+    if (-1 == lstat(Fullpath().c_str(), &tmp))
+    {
+        ThrowMsg(NotExists, DPL::GetErrnoString());
+    }
+    return tmp.st_size;
+}
+
+bool Path::isSubPath(const Path & other) const
+{
+    typedef std::vector<std::string>::const_iterator Iter;
+    Iter otherIter = other.m_parts.begin();
+    for(Iter iter = m_parts.begin(); iter != m_parts.end(); iter++)
+    {
+        if(otherIter == other.m_parts.end()) return false;
+        if(*iter != *otherIter) return false;
+        otherIter++;
+    }
+    return true;
+}
+
 void MakeDir(const Path & path, mode_t mode)
 {
+    path.RootGuard();
     if(!WrtUtilMakeDir(path.Fullpath(), mode)) ThrowMsg(Path::OperationFailed, "Cannot make directory");
 }
 
 void MakeEmptyFile(const Path & path)
 {
+    path.RootGuard();
     std::string fp = path.Fullpath();
     FILE* fd = fopen(fp.c_str(), "wx");
     if(!fd)
     {
         struct stat st;
+        memset(&st, 0, sizeof(struct stat));
         if(lstat(fp.c_str(), &st) == 0)
         {
             ThrowMsg(Path::AlreadyExists, "File already exists");
@@ -295,33 +343,42 @@ void MakeEmptyFile(const Path & path)
 
 void Remove(const Path & path)
 {
+    path.RootGuard();
     if(!WrtUtilRemove(path.Fullpath())) ThrowMsg(Path::OperationFailed, "Cannot remove path");
 }
 
+bool TryRemove(const Path & path)
+{
+    path.RootGuard();
+    if(!WrtUtilRemove(path.Fullpath())) return false;
+    return true;
+}
+
 void Rename(const Path & from, const Path & to)
 {
+    from.RootGuard();
+    to.RootGuard();
     if(from == to)
     {
         return;
     }
-    int code = 0;
-    if( (code = rename(from.Fullpath().c_str(), to.Fullpath().c_str())) )
+    if(0 != rename(from.Fullpath().c_str(), to.Fullpath().c_str()))
     {
-        if(code == EXDEV)
+        if(errno == EXDEV)
         {
-            Try
+            if(from.IsDir())
             {
-                DPL::FileInput in(from.Fullpath());
-                DPL::FileOutput out(to.Fullpath());
-                DPL::Copy(&in, &out);
+                CopyDir(from, to);
+                Remove(from);
             }
-            Catch(DPL::FileInput::Exception::Base)
+            else if(from.IsFile() || from.IsSymlink())
             {
-                ThrowMsg(Path::OperationFailed, "Cannot open input file " << from.Fullpath());
+                CopyFile(from, to);
+                Remove(from);
             }
-            Catch(DPL::FileOutput::Exception::Base)
+            else
             {
-                ThrowMsg(Path::OperationFailed, "Cannot open output file " << to.Fullpath());
+                 ThrowMsg(Path::OperationFailed, DPL::GetErrnoString());
             }
         }
         else
@@ -331,6 +388,59 @@ void Rename(const Path & from, const Path & to)
     }
 }
 
+void CopyFile(const Path & from, const Path & to)
+{
+    from.RootGuard();
+    to.RootGuard();
+    Try
+    {
+        DPL::FileInput input(from.Fullpath());
+        DPL::FileOutput output(to.Fullpath());
+        DPL::Copy(&input, &output);
+    }
+    Catch(DPL::FileInput::Exception::Base)
+    {
+        LogError("File input error");
+        ReThrowMsg(DPL::CopyFailed, std::string("File input error") + from.Fullpath());
+    }
+    Catch(DPL::FileOutput::Exception::Base)
+    {
+        LogError("File output error");
+        ReThrowMsg(DPL::CopyFailed, std::string("File output error") + to.Fullpath());
+    }
+    Catch(DPL::CopyFailed)
+    {
+        LogError("File copy error");
+        ReThrowMsg(DPL::CopyFailed, std::string("File copy error") + from.Fullpath());
+    }
+}
+
+void CopyDir(const Path & from, const Path & to)
+{
+    from.RootGuard();
+    to.RootGuard();
+    if(from.isSubPath(to))
+    {
+        ThrowMsg(Path::CannotCopy, "Cannot copy content of directory to it's sub directory");
+    }
+    MakeDir(to);
+    FOREACH(item, from)
+    {
+        if(item->IsDir())
+        {
+            CopyDir(*item, to / item->Filename());
+        }
+        else if(item->IsFile() || item->IsSymlink())
+        {
+            CopyFile(*item, to / item->Filename());
+        }
+        else
+        {
+            Throw(Path::OperationFailed);
+        }
+    }
+}
+
 bool Exists(const Path & path)
 {
     return path.Exists();
index cc5253a..969e20b 100644 (file)
@@ -203,104 +203,34 @@ void NormalizeAndTrimSpaceString(DPL::OptionalString& txt)
     NormalizeString(txt, true);
 }
 
-bool ConfigParserData::Param::operator==(const Param& other) const
-{
-    return name == other.name && value == other.value;
-}
-
-bool ConfigParserData::Param::operator!=(const Param& other) const
-{
-    return name != other.name || value != other.value;
-}
-
-bool ConfigParserData::Param::operator >(const Param& other) const
-{
-    if (name == other.name) {
-        return value > other.value;
-    } else {
-        return name > other.name;
-    }
-}
-
-bool ConfigParserData::Param::operator>=(const Param& other) const
-{
-    if (name >= other.name) {
-        return true;
-    } else {
-        return value >= other.value;
-    }
-}
-
-bool ConfigParserData::Param::operator <(const Param& other) const
-{
-    if (name == other.name) {
-        return value < other.value;
-    } else {
-        return name < other.name;
-    }
-}
-
-bool ConfigParserData::Param::operator<=(const Param& other) const
-{
-    if (name <= other.name) {
-        return true;
-    } else {
-        return value <= other.value;
-    }
-}
-
 bool ConfigParserData::Feature::operator==(const Feature& other) const
 {
-    return name == other.name && paramsList == other.paramsList;
+    return name == other.name;
 }
 
 bool ConfigParserData::Feature::operator!=(const Feature& other) const
 {
-    return name != other.name || paramsList != other.paramsList;
+    return name != other.name;
 }
 
 bool ConfigParserData::Feature::operator >(const Feature& other) const
 {
-    if (name > other.name) {
-        return true;
-    }
-    if (name < other.name) {
-        return false;
-    }
-    return paramsList > other.paramsList;
+    return name > other.name;
 }
 
 bool ConfigParserData::Feature::operator>=(const Feature& other) const
 {
-    if (name > other.name) {
-        return true;
-    }
-    if (name < other.name) {
-        return false;
-    }
-    return paramsList >= other.paramsList;
+    return name >= other.name;
 }
 
 bool ConfigParserData::Feature::operator <(const Feature& other) const
 {
-    if (name < other.name) {
-        return true;
-    }
-    if (name > other.name) {
-        return false;
-    }
-    return paramsList < other.paramsList;
+    return name < other.name;
 }
 
 bool ConfigParserData::Feature::operator<=(const Feature& other) const
 {
-    if (name < other.name) {
-        return true;
-    }
-    if (name > other.name) {
-        return false;
-    }
-    return paramsList <= other.paramsList;
+    return name <= other.name;
 }
 
 bool ConfigParserData::Privilege::operator==(const Privilege& other) const
@@ -457,10 +387,28 @@ bool ConfigParserData::ServiceInfo::operator== (const ServiceInfo& info) const
 
 bool ConfigParserData::ServiceInfo::operator!= (const ServiceInfo& info) const
 {
-    return m_src != info.m_src &&
-           m_operation != info.m_operation &&
-           m_scheme != info.m_scheme &&
-           m_mime != info.m_mime &&
+    return m_src != info.m_src ||
+           m_operation != info.m_operation ||
+           m_scheme != info.m_scheme ||
+           m_mime != info.m_mime ||
+           m_disposition != info.m_disposition;
+}
+
+bool ConfigParserData::AppControlInfo::operator== (const AppControlInfo& info) const
+{
+    return m_src == info.m_src &&
+           m_operation == info.m_operation &&
+           m_uriList == info.m_uriList &&
+           m_mimeList == info.m_mimeList &&
+           m_disposition == info.m_disposition;
+}
+
+bool ConfigParserData::AppControlInfo::operator!= (const AppControlInfo& info) const
+{
+    return m_src != info.m_src ||
+           m_operation != info.m_operation ||
+           m_uriList != info.m_uriList ||
+           m_mimeList != info.m_mimeList ||
            m_disposition != info.m_disposition;
 }
 
index 8f65336..e5ca1af 100644 (file)
@@ -531,27 +531,9 @@ void WidgetDAO::registerWidgetFeatures(DbWidgetHandle widgetHandle,
         wrt::WidgetFeature::Row widgetFeature;
         widgetFeature.Set_app_id(widgetHandle);
         widgetFeature.Set_name(pWidgetFeature->name);
-        widgetFeature.Set_required(pWidgetFeature->required);
         widgetFeature.Set_rejected(false);
 
-        wrt::WidgetFeature::widget_feature_id::ColumnType widgetFeatureID;
-        {
-            WRT_DB_INSERT(insert, wrt::WidgetFeature, &WrtDatabase::interface())
-            insert->Values(widgetFeature);
-            widgetFeatureID = static_cast<int>(insert->Execute());
-        }
-
-        // Insert into table FeatureParam
-        wrt::FeatureParam::Row featureParam;
-        featureParam.Set_widget_feature_id(widgetFeatureID);
-
-        FOREACH(iter, pWidgetFeature->paramsList)
-        {
-            featureParam.Set_name(iter->name);
-            featureParam.Set_value(iter->value);
-
-            DO_INSERT(featureParam, wrt::FeatureParam)
-        }
+        DO_INSERT(widgetFeature, wrt::WidgetFeature)
     }
 }
 
@@ -696,7 +678,9 @@ void WidgetDAO::insertApplicationServiceInfo(DbWidgetHandle handle,
                                              DPL::String src,
                                              DPL::String operation,
                                              DPL::String scheme,
-                                             DPL::String mime)
+                                             DPL::String mime,
+                                             unsigned index,
+                                             unsigned disposition)
 {
     using namespace DPL::DB::ORM;
     using namespace DPL::DB::ORM::wrt;
@@ -704,10 +688,12 @@ void WidgetDAO::insertApplicationServiceInfo(DbWidgetHandle handle,
     ApplicationServiceInfo::Row row;
 
     row.Set_app_id(handle);
+    row.Set_service_index(index);
     row.Set_src(src);
     row.Set_operation(operation);
     row.Set_scheme(scheme);
     row.Set_mime(mime);
+    row.Set_disposition(disposition);
 
     DO_INSERT(row, ApplicationServiceInfo);
 }
@@ -724,6 +710,7 @@ void WidgetDAO::registerAppService(DbWidgetHandle widgetHandle,
     {
         ApplicationServiceInfo::Row row;
         row.Set_app_id(widgetHandle);
+        row.Set_service_index(ASIt->m_index);
         row.Set_src(ASIt->m_src);
         row.Set_operation(ASIt->m_operation);
         row.Set_scheme(ASIt->m_scheme);
@@ -738,6 +725,9 @@ void WidgetDAO::registerAppService(DbWidgetHandle widgetHandle,
     {
         DPL::String src       = appControl_it->m_src;
         DPL::String operation = appControl_it->m_operation;
+        unsigned index        = appControl_it->m_index;
+        unsigned disposition  = appControl_it->m_disposition ==
+            ConfigParserData::AppControlInfo::Disposition::INLINE ? 1 : 0;
 
         if (!appControl_it->m_uriList.empty())
         {
@@ -751,14 +741,14 @@ void WidgetDAO::registerAppService(DbWidgetHandle widgetHandle,
                     {
                         DPL::String mime = *mime_it;
 
-                        insertApplicationServiceInfo(widgetHandle, src, operation, scheme, mime);
+                        insertApplicationServiceInfo(widgetHandle, src, operation, scheme, mime, index, disposition);
                     }
                 }
                 else
                 {
                     DPL::String mime = L"";
 
-                    insertApplicationServiceInfo(widgetHandle, src, operation, scheme, mime);
+                    insertApplicationServiceInfo(widgetHandle, src, operation, scheme, mime, index, disposition);
                 }
             }
         }
@@ -772,14 +762,14 @@ void WidgetDAO::registerAppService(DbWidgetHandle widgetHandle,
                 {
                     DPL::String mime = *mime_it;
 
-                    insertApplicationServiceInfo(widgetHandle, src, operation, scheme, mime);
+                    insertApplicationServiceInfo(widgetHandle, src, operation, scheme, mime, index, disposition);
                 }
             }
             else
             {
                 DPL::String mime = L"";
 
-                insertApplicationServiceInfo(widgetHandle, src, operation, scheme, mime);
+                insertApplicationServiceInfo(widgetHandle, src, operation, scheme, mime, index, disposition);
             }
         }
     }
index d97416e..960a322 100755 (executable)
@@ -339,9 +339,7 @@ DbWidgetFeatureSet WidgetDAOReadOnly::getFeaturesList() const
         for (RowList::iterator i = list.begin(); i != list.end(); ++i) {
             DbWidgetFeature feature;
             feature.name = i->Get_name();
-            feature.required = i->Get_required();
             feature.rejected = i->Get_rejected();
-            feature.params = getFeatureParams(i->Get_widget_feature_id());
             FeatureDAOReadOnly featureDao(DPL::ToUTF8String(i->Get_name()));
             feature.pluginId = featureDao.GetPluginHandle();
             resultSet.insert(feature);
@@ -352,28 +350,6 @@ DbWidgetFeatureSet WidgetDAOReadOnly::getFeaturesList() const
     SQL_CONNECTION_EXCEPTION_HANDLER_END("Failed to get features list")
 }
 
-WidgetParamMap WidgetDAOReadOnly::getFeatureParams(int id)
-{
-    WidgetFeatureId widgetFeatureId(id);
-    LogDebug("Getting feature Params. featureId: " << widgetFeatureId);
-    SQL_CONNECTION_EXCEPTION_HANDLER_BEGIN
-    {
-        WRT_DB_SELECT(select, FeatureParam, &WrtDatabase::interface())
-        select->Where(Equals<FeatureParam::widget_feature_id>(
-                          widgetFeatureId));
-
-        WidgetParamMap resultMap;
-        typedef std::list<FeatureParam::Row> RowList;
-        RowList list = select->GetRowList();
-
-        FOREACH(i, list)
-        resultMap.insert(std::make_pair(i->Get_name(), i->Get_value()));
-
-        return resultMap;
-    }
-    SQL_CONNECTION_EXCEPTION_HANDLER_END("Failed to get feature params")
-}
-
 bool WidgetDAOReadOnly::hasFeature(const std::string& featureName) const
 {
     LogDebug(
@@ -993,26 +969,6 @@ WidgetCertificateCNList WidgetDAOReadOnly::getKeyCommonNameList(
     SQL_CONNECTION_EXCEPTION_HANDLER_END("Failed to get key common name")
 }
 
-ResourceAttributeList WidgetDAOReadOnly::getResourceAttribute(
-    const std::string &resourceId) const
-{
-    WRT_DB_SELECT(select, WidgetFeature, &WrtDatabase::interface())
-    select->Where(And(Equals<WidgetFeature::app_id>(m_widgetHandle),
-                      Equals<WidgetFeature::name>(
-                          DPL::FromUTF8String(resourceId))));
-
-    std::list<WidgetFeature::Row> list = select->GetRowList();
-    ResourceAttributeList result;
-    if (!list.empty()) {
-        int widgetFeatureId = list.begin()->Get_widget_feature_id();
-        WidgetParamMap map = getFeatureParams(widgetFeatureId);
-
-        FOREACH(i, map)
-        result.push_back(DPL::ToUTF8String(i->first));
-    }
-    return result;
-}
-
 void WidgetDAOReadOnly::getWidgetAccessInfo(
     WidgetAccessInfoList& outAccessInfoList) const
 {
@@ -1080,8 +1036,8 @@ std::string WidgetDAOReadOnly::getCookieDatabasePath() const
 std::string WidgetDAOReadOnly::getPrivateLocalStoragePath() const
 {
     std::ostringstream path;
-    TizenAppId tzAppId = getTzAppId();
-    path << WidgetConfig::GetWidgetWebLocalStoragePath(tzAppId);
+    TizenAppId tzPkgId = getTizenPkgId();
+    path << WidgetConfig::GetWidgetWebLocalStoragePath(tzPkgId);
     path << "/";
 
     return path.str();
@@ -1136,6 +1092,7 @@ void WidgetDAOReadOnly::getAppServiceList(
             ret.scheme = it->Get_scheme();
             ret.mime = it->Get_mime();
             ret.disposition = static_cast<WidgetApplicationService::Disposition>(it->Get_disposition());
+            ret.index = it->Get_service_index();
             outAppServiceList.push_back(ret);
         }
 
old mode 100755 (executable)
new mode 100644 (file)
index 5866b20..c345fc8
@@ -162,24 +162,6 @@ typedef std::list<DPL::String> PrivilegeList;
 typedef std::set<EncryptedFileInfo> EncryptedFileList;
 
 /**
- * @brief Widget configuration parameter key
- */
-typedef DPL::String WidgetParamKey;
-
-/**
- * @brief Widget configuration parameter value
- */
-typedef DPL::String WidgetParamValue;
-
-/**
- * @brief A map of widget configuration parameters.
- *
- * Widget configuration parameters are read from database and are stored
- * along with feature that they describe.
- */
-typedef std::multimap<WidgetParamKey, WidgetParamValue> WidgetParamMap;
-
-/**
  * @brief Widget feature host information about possible javascript extensions
  *        that widget may use
  *
@@ -201,13 +183,10 @@ typedef int DbPluginHandle;
 struct DbWidgetFeature
 {
     DPL::String name;        /// Feature name
-    bool required;           /// Whether feature is required
     bool rejected;           /// Api feature was rejected by ace
     DbPluginHandle pluginId; /// Plugin id that implement this feature
-    WidgetParamMap params;   /// Widget's params
 
     DbWidgetFeature() :
-        required(false),
         pluginId(INVALID_PLUGIN_HANDLE)
     {}
 };
@@ -222,7 +201,6 @@ inline bool operator==(const DbWidgetFeature &featureA,
                        const DbWidgetFeature &featureB)
 {
     return featureA.name == featureB.name &&
-           featureA.required == featureB.required &&
            featureA.pluginId == featureB.pluginId;
 }
 
@@ -390,6 +368,7 @@ struct WidgetApplicationService
     DPL::String scheme;    /* scheme type*/
     DPL::String mime;      /* mime type */
     Disposition disposition;
+    unsigned index;
 
     bool operator== (const WidgetApplicationService& other) const
     {
index 77a633e..a37e252 100644 (file)
@@ -41,30 +41,11 @@ class WidgetConfigurationManager;
 class ConfigParserData
 {
   public:
-    struct Param
-    {
-        Param(const DPL::String& _name) : name(_name)
-        {}
-        DPL::String name;
-        DPL::String value;
-        bool operator==(const Param&) const;
-        bool operator!=(const Param&) const;
-        bool operator >(const Param&) const;
-        bool operator>=(const Param&) const;
-        bool operator <(const Param&) const;
-        bool operator<=(const Param&) const;
-    };
-    typedef std::set<Param> ParamsList;
-
     struct Feature
     {
-        Feature(const DPL::String& _name,
-                bool _required = true) : name(_name),
-            required(_required)
+        Feature(const DPL::String& _name) : name(_name)
         {}
         DPL::String name;
-        bool required;
-        ParamsList paramsList;
 
         bool operator==(const Feature&) const;
         bool operator!=(const Feature&) const;
@@ -195,13 +176,15 @@ class ConfigParserData
             m_operation(operation),
             m_scheme(scheme),
             m_mime(mime),
-            m_disposition(dispos)
+            m_disposition(dispos),
+            m_index(0)
         {}
         DPL::String m_src;
         DPL::String m_operation;
         DPL::String m_scheme;
         DPL::String m_mime;
         Disposition m_disposition;
+        unsigned m_index;
 
         bool operator==(const ServiceInfo&) const;
         bool operator!=(const ServiceInfo&) const;
@@ -209,14 +192,20 @@ class ConfigParserData
 
     struct AppControlInfo
     {
-        AppControlInfo(
-            const DPL::String& operation) :
-            m_operation(operation)
+        enum class Disposition {
+            WINDOW = 0,
+            INLINE
+        };
+        AppControlInfo(const DPL::String& operation) :
+            m_operation(operation),
+            m_index(0)
         {}
         DPL::String m_src;
         DPL::String m_operation;
         std::set <DPL::String> m_uriList;
         std::set <DPL::String> m_mimeList;
+        Disposition m_disposition;
+        unsigned m_index;
 
         bool operator==(const AppControlInfo&) const;
         bool operator!=(const AppControlInfo&) const;
@@ -264,7 +253,7 @@ class ConfigParserData
     enum IconSectionType
     {
         DefaultIcon =0,
-        SmallIcon,
+        SmallIcon
     };
 
     typedef std::set<std::pair<IconSectionType, DPL::String>> IconSet;
index 738434d..5e585c2 100755 (executable)
@@ -549,7 +549,6 @@ class WidgetDAOReadOnly
      */
     DbWidgetFeatureSet getFeaturesList() const;
 
-    static WidgetParamMap getFeatureParams(int widgetFeatureId);
     /**
      * This method checks whether widget has specified feature.
      *
@@ -703,11 +702,6 @@ class WidgetDAOReadOnly
      */
     std::string getBaseFolder() const;
 
-    /* This method gets the parameter list for resource.
-     */
-    ResourceAttributeList getResourceAttribute(
-        const std::string &resourceId) const;
-
     /* This method checks read only flag for given property
      */
     DPL::OptionalInt checkPropertyReadFlag(
index 0c37d51..73348e9 100644 (file)
@@ -226,7 +226,9 @@ class WidgetDAO : public WidgetDAOReadOnly
                                              DPL::String src,
                                              DPL::String operation,
                                              DPL::String scheme,
-                                             DPL::String mime);
+                                             DPL::String mime,
+                                             unsigned index,
+                                             unsigned disposition);
 };
 } // namespace WrtDB
 
index ba8a277..0c40a33 100755 (executable)
@@ -116,22 +116,12 @@ CREATE_TABLE(WidgetFeature)
     COLUMN_NOT_NULL(widget_feature_id,  INTEGER,        primary key autoincrement)
     COLUMN_NOT_NULL(app_id,             INT,)
     COLUMN_NOT_NULL(name,               TEXT,)
-    COLUMN_NOT_NULL(required,           INT,)
     COLUMN_NOT_NULL(rejected,           INT,)
     TABLE_CONSTRAINTS(
         FOREIGN KEY (app_id) REFERENCES WidgetInfo (app_id) ON DELETE CASCADE
     )
 CREATE_TABLE_END()
 
-CREATE_TABLE(FeatureParam)
-    COLUMN_NOT_NULL(widget_feature_id,  INTEGER,)
-    COLUMN_NOT_NULL(name,         TEXT,)
-    COLUMN_NOT_NULL(value,        TEXT,)
-    TABLE_CONSTRAINTS(
-        FOREIGN KEY (widget_feature_id) REFERENCES WidgetFeature (widget_feature_id) ON DELETE CASCADE
-    )
-CREATE_TABLE_END()
-
 CREATE_TABLE(WidgetPrivilege)
     COLUMN_NOT_NULL(widget_privilege_id, INTEGER,        primary key autoincrement)
     COLUMN_NOT_NULL(app_id,              INT,)
@@ -324,6 +314,7 @@ CREATE_TABLE_END()
 
 CREATE_TABLE(ApplicationServiceInfo)
     COLUMN_NOT_NULL(app_id,         INT,)
+    COLUMN_NOT_NULL(service_index,  INT,)
     COLUMN_NOT_NULL(src,            TEXT,)
     COLUMN_NOT_NULL(operation,      TEXT,)
     COLUMN_NOT_NULL(scheme,         TEXT,)
index a0e65fe..740ac73 100644 (file)
@@ -1,7 +1,7 @@
-#git:framework/web/wrt-commons wrt-commons 0.2.107
+#git:framework/web/wrt-commons wrt-commons 0.2.108
 Name:       wrt-commons
 Summary:    Wrt common library
-Version:    0.2.107
+Version:    0.2.108
 Release:    1
 Group:      Development/Libraries
 License:    Apache License, Version 2.0
index 26280dd..c753d64 100644 (file)
@@ -215,10 +215,7 @@ RUNNER_TEST(widget_dao_test_register_widget_empty_strings)
     regInfo.configInfo.preferencesList.insert(pref);
 
     //widget feature
-    ConfigParserData::Feature feat(DPL::FromUTF8String(""), false);
-    ConfigParserData::Param par(DPL::FromUTF8String(("")));
-    par.value = DPL::FromUTF8String("");
-    feat.paramsList.insert(par);
+    ConfigParserData::Feature feat(DPL::FromUTF8String(""));
     regInfo.configInfo.featuresList.insert(feat);
 
     //win modes
@@ -525,10 +522,9 @@ RUNNER_TEST(widget_dao_test_register_widget_features)
 {
     WacSecurityMock sec;
     ConfigParserData::FeaturesList features;
-    features.insert(ConfigParserData::Feature(DPL::FromUTF8String("f1"), true));
+    features.insert(ConfigParserData::Feature(DPL::FromUTF8String("f1")));
     features.insert(ConfigParserData::Feature(DPL::FromUTF8String("f2")));
-    features.insert(ConfigParserData::Feature(DPL::FromUTF8String("f3"),
-                                              false));
+    features.insert(ConfigParserData::Feature(DPL::FromUTF8String("f3")));
 
     WidgetRegisterInfo regInfo;
     FOREACH(it, features)
index c2bde92..ccb98f6 100755 (executable)
@@ -67,8 +67,7 @@ if [ "x$1" == "xstart" ]; then
     INS_ALL_WIDGET_LOC_STARTFILE="insert into WidgetLocalizedStartFile(app_id, start_file_id, widget_locale, type, encoding)"
     INS_ALL_WIDGET_DEFPREF="insert into WidgetDefaultPreference(app_id, key_name, key_value, readonly)"
     INS_ALL_WIDGET_PREF="insert into WidgetPreference(tizen_appid, key_name, key_value, readonly)"
-    INS_ALL_WIDGET_FEATURE="insert into WidgetFeature(app_id, name, required)"
-    INS_ALL_WIDGET_FEATURE_PARAM="insert into FeatureParam(widget_feature_id, name, value)"
+    INS_ALL_WIDGET_FEATURE="insert into WidgetFeature(app_id, name)"
     INS_ALL_WIDGET_WINMODES="insert into WidgetWindowModes(app_id, window_mode)"
     INS_ALL_WIDGET_WARP="insert into WidgetWARPInfo(app_id, iri, subdomain_access)"
     INS_ALL_WIDGET_CERT="insert into WidgetCertificateFingerprint(app_id, owner, chainid, type, md5_fingerprint, sha1_fingerprint, common_name)"
index 1a86a21..4e957e2 100644 (file)
@@ -28,6 +28,9 @@
 #include <dpl/utils/path.h>
 #include <dpl/foreach.h>
 #include <dpl/log/log.h>
+#include <dpl/binary_queue.h>
+#include <dpl/file_input.h>
+#include <dpl/file_output.h>
 
 #include <sys/stat.h>
 #include <unistd.h>
@@ -39,6 +42,17 @@ namespace {
 std::string rootTest = "/tmp/wrttest/";
 }
 
+#define ROOTGUARD_TESTMETHOD(FUNC)                                                         \
+{                                                                                          \
+    bool catched = false;                                                                  \
+    Try {                                                                                  \
+        FUNC;                                                                              \
+    } Catch(Path::RootDirectoryError) {                                                    \
+        catched = true;                                                                    \
+    }                                                                                      \
+    RUNNER_ASSERT_MSG(catched, "Use of method should be protected against root diretory"); \
+}                                                                                          \
+
 RUNNER_TEST_GROUP_INIT(DPL_Path)
 
 /*
@@ -51,6 +65,7 @@ RUNNER_TEST(path_mkfile)
     DPL::ScopedDir sd(rootTest);
 
     struct stat st;
+    memset(&st, 0, sizeof(struct stat));
     Path path = Path(rootTest) / "touch.txt";
     RUNNER_ASSERT_MSG(lstat(path.Fullpath().c_str(), &st) != 0, "File should not be created");
     RUNNER_ASSERT(!path.Exists());
@@ -118,6 +133,7 @@ RUNNER_TEST(path_mkdir)
     DPL::ScopedDir sd(rootTest);
 
     struct stat st;
+    memset(&st, 0, sizeof(struct stat));
     Path path = Path(rootTest) / "touchDir";
     RUNNER_ASSERT_MSG(lstat(path.Fullpath().c_str(), &st) != 0, "Directory should not be created");
     RUNNER_ASSERT(!path.Exists());
@@ -139,6 +155,7 @@ RUNNER_TEST(path_symlink)
     DPL::ScopedDir sd(rootTest);
 
     struct stat st;
+    memset(&st, 0, sizeof(struct stat));
     Path path = Path(rootTest) / "symlink";
     RUNNER_ASSERT_MSG(lstat(path.Fullpath().c_str(), &st) != 0, "Symlink should not be created");
     RUNNER_ASSERT(!path.Exists());
@@ -178,7 +195,7 @@ RUNNER_TEST(path_construction_root)
 {
     Path path1(std::string("/"));
     RUNNER_ASSERT(path1.Fullpath() == "/");
-    RUNNER_ASSERT(path1.Basename() == "");
+    RUNNER_ASSERT(path1.Filename() == "");
     bool passed = false;
     Try
     {
@@ -202,7 +219,7 @@ RUNNER_TEST(path_construction_1)
 
     Path path1(std::string("/test/bin/file"));
     RUNNER_ASSERT(path1.Fullpath() == "/test/bin/file");
-    RUNNER_ASSERT(path1.Basename() == "file");
+    RUNNER_ASSERT(path1.Filename() == "file");
     RUNNER_ASSERT(path1.DirectoryName() == "/test/bin");
 }
 
@@ -218,7 +235,7 @@ RUNNER_TEST(path_construction_2)
 
     Path path2(std::string("test/bin/file.eas"));
     RUNNER_ASSERT(path2.Fullpath() == cwd + "/test/bin/file.eas");
-    RUNNER_ASSERT(path2.Basename() == "file.eas");
+    RUNNER_ASSERT(path2.Filename() == "file.eas");
     RUNNER_ASSERT(path2.DirectoryName() == cwd + "/test/bin");
 }
 
@@ -234,7 +251,7 @@ RUNNER_TEST(path_construction_3)
 
     Path path3("test/23/abc");
     RUNNER_ASSERT(path3.Fullpath() == cwd + "/test/23/abc");
-    RUNNER_ASSERT(path3.Basename() == "abc");
+    RUNNER_ASSERT(path3.Filename() == "abc");
     RUNNER_ASSERT(path3.DirectoryName() == cwd + "/test/23");
 }
 
@@ -249,7 +266,7 @@ RUNNER_TEST(path_construction_4)
 
     Path path4("/test/bin/abc");
     RUNNER_ASSERT(path4.Fullpath() == "/test/bin/abc");
-    RUNNER_ASSERT(path4.Basename() == "abc");
+    RUNNER_ASSERT(path4.Filename() == "abc");
     RUNNER_ASSERT(path4.DirectoryName() == "/test/bin");
 }
 
@@ -265,7 +282,7 @@ RUNNER_TEST(path_construction_5)
 
     Path path5(DPL::String(L"test/bin/file.st.exe"));
     RUNNER_ASSERT(path5.Fullpath() == cwd + "/test/bin/file.st.exe");
-    RUNNER_ASSERT(path5.Basename() == "file.st.exe");
+    RUNNER_ASSERT(path5.Filename() == "file.st.exe");
     RUNNER_ASSERT(path5.DirectoryName() == cwd + "/test/bin");
 }
 
@@ -280,7 +297,7 @@ RUNNER_TEST(path_construction_6)
 
     Path path6(DPL::String(L"/test/bin/file"));
     RUNNER_ASSERT(path6.Fullpath() == "/test/bin/file");
-    RUNNER_ASSERT(path6.Basename() == "file");
+    RUNNER_ASSERT(path6.Filename() == "file");
     RUNNER_ASSERT(path6.DirectoryName() == "/test/bin");
 }
 
@@ -296,7 +313,7 @@ RUNNER_TEST(path_construction_7)
 
     Path path7 = Path("test") / "a///23/lol";
     RUNNER_ASSERT(path7.Fullpath() == cwd + "/test/a/23/lol");
-    RUNNER_ASSERT(path7.Basename() == "lol");
+    RUNNER_ASSERT(path7.Filename() == "lol");
     RUNNER_ASSERT(path7.DirectoryName() == cwd + "/test/a/23");
 }
 
@@ -311,7 +328,7 @@ RUNNER_TEST(path_construction_8)
 
     Path path8 = Path("/test/bin/") / "123" / "dir1.dll";
     RUNNER_ASSERT(path8.Fullpath() == "/test/bin/123/dir1.dll");
-    RUNNER_ASSERT(path8.Basename() == "dir1.dll");
+    RUNNER_ASSERT(path8.Filename() == "dir1.dll");
     RUNNER_ASSERT(path8.DirectoryName() ==  "/test/bin/123");
 }
 
@@ -326,7 +343,7 @@ RUNNER_TEST(path_construction_9)
 
     Path path9 = Path("/test/bin/file.txt//");
     RUNNER_ASSERT(path9.Fullpath() == "/test/bin/file.txt");
-    RUNNER_ASSERT(path9.Basename() == "file.txt");
+    RUNNER_ASSERT(path9.Filename() == "file.txt");
     RUNNER_ASSERT(path9.DirectoryName() ==  "/test/bin");
 }
 
@@ -342,7 +359,7 @@ RUNNER_TEST(path_construction_10)
     path10 /= std::string("two");
     path10 /= DPL::String(L"three");
     RUNNER_ASSERT(path10.Fullpath() == "/test/one/two/three");
-    RUNNER_ASSERT(path10.Basename() == "three");
+    RUNNER_ASSERT(path10.Filename() == "three");
     RUNNER_ASSERT(path10.DirectoryName() ==  "/test/one/two");
 }
 
@@ -356,6 +373,7 @@ RUNNER_TEST(path_remove_valid)
     DPL::ScopedDir sd(rootTest);
 
     struct stat st;
+    memset(&st, 0, sizeof(struct stat));
     Path path = Path(rootTest) / "touchDir";
     RUNNER_ASSERT(!path.Exists());
 
@@ -377,6 +395,39 @@ RUNNER_TEST(path_remove_valid)
 }
 
 /*
+Name: path_try_remove
+Description: tests removing paths
+Expected: successfull path remove once
+*/
+RUNNER_TEST(path_try_remove_valid)
+{
+    DPL::ScopedDir sd(rootTest);
+
+    struct stat st;
+    memset(&st, 0, sizeof(struct stat));
+    Path path = Path(rootTest) / "touchDir";
+    RUNNER_ASSERT(!path.Exists());
+
+    MakeDir(path);
+    RUNNER_ASSERT_MSG(lstat(path.Fullpath().c_str(), &st) == 0, "Directory should be created");
+    RUNNER_ASSERT(path.Exists());
+
+    RUNNER_ASSERT(TryRemove(path));
+    RUNNER_ASSERT(!TryRemove(path));
+    RUNNER_ASSERT_MSG(lstat(path.Fullpath().c_str(), &st) != 0, "Directory should not be created");
+    RUNNER_ASSERT(!path.Exists());
+
+    MakeEmptyFile(path);
+    RUNNER_ASSERT_MSG(lstat(path.Fullpath().c_str(), &st) == 0, "File should be created");
+    RUNNER_ASSERT(path.Exists());
+
+    RUNNER_ASSERT(TryRemove(path));
+    RUNNER_ASSERT(!TryRemove(path));
+    RUNNER_ASSERT_MSG(lstat(path.Fullpath().c_str(), &st) != 0, "File should not be created");
+    RUNNER_ASSERT(!path.Exists());
+}
+
+/*
 Name: path_remove_invalid
 Description: tests removing invalid paths
 Expected: failure at path remove
@@ -409,6 +460,7 @@ RUNNER_TEST(path_rename)
     DPL::ScopedDir sd(rootTest);
 
     struct stat st;
+    memset(&st, 0, sizeof(struct stat));
     Path path = Path(rootTest) / "touchDir";
     Path dirpath = Path(rootTest) / "directory";
     Path path2 = dirpath / "touchDir2";
@@ -427,8 +479,220 @@ RUNNER_TEST(path_rename)
     Rename(path2, path);
     RUNNER_ASSERT(path.Exists());
     RUNNER_ASSERT(!path2.Exists());
+}
+
+/*
+Name: path_rename_xdev
+Description: tests path renaming between devices
+Expected: path is successfully renamed
+*/
+RUNNER_TEST(path_rename_xdev)
+{
+    //assuming /opt/usr and /usr is normally on other partitions on device
+    //TODO: better
+    Path path = Path("/opt/usr") / "touchDir";
+    Path dirpath = path / "directory";
+    Path filepath = path / "file.txt";
+
+    Path path2 = Path("/usr") / "touchDir2";
+    Path dirpath2 = path2 / "directory";
+    Path filepath2 = path2 / "file.txt";
+
+    TryRemove(path);
+
+    MakeDir(path);
+    MakeDir(dirpath);
+    MakeEmptyFile(filepath);
+
+    RUNNER_ASSERT(path.Exists());
+    RUNNER_ASSERT(dirpath.Exists());
+    RUNNER_ASSERT(filepath.Exists());
+    RUNNER_ASSERT(!path2.Exists());
+    RUNNER_ASSERT(!dirpath2.Exists());
+    RUNNER_ASSERT(!filepath2.Exists());
+
+    Rename(path, path2);
+    RUNNER_ASSERT(!path.Exists());
+    RUNNER_ASSERT(!dirpath.Exists());
+    RUNNER_ASSERT(!filepath.Exists());
+    RUNNER_ASSERT(path2.Exists());
+    RUNNER_ASSERT(dirpath2.Exists());
+    RUNNER_ASSERT(filepath2.Exists());
+
+    Rename(path2, path);
+    RUNNER_ASSERT(path.Exists());
+    RUNNER_ASSERT(dirpath.Exists());
+    RUNNER_ASSERT(filepath.Exists());
+    RUNNER_ASSERT(!path2.Exists());
+    RUNNER_ASSERT(!dirpath2.Exists());
+    RUNNER_ASSERT(!filepath2.Exists());
+
+    Remove(path);
+}
 
-    //TODO: test for different devices
+/**
+ * Name: path_basename
+ * Description: check basename equivalents
+ * Expected: failure
+ */
+RUNNER_TEST(path_basename)
+{
+    DPL::ScopedDir sd(rootTest);
+    Path path = Path(rootTest) / "directory" / "touch.txt";
+    RUNNER_ASSERT(path.DirectoryName() == path.DirectoryPath().Fullpath());
+    RUNNER_ASSERT(path.DirectoryPath().DirectoryName() == path.DirectoryPath().DirectoryPath().Fullpath());
+}
+
+/**
+ * Name: path_safe
+ * Description: check if operations cannot be executed on root directory
+ *
+ * This is check because of default path is root and it should not be used usually
+ * Default constructor is unfortnatelly easier to use
+ *
+ * Expected: failure
+ */
+RUNNER_TEST(path_safe)
+{
+    DPL::ScopedDir sd(rootTest);
+    Path normal = Path(rootTest) / "directory" / "touch.txt";
+    Path root("/");
+    ROOTGUARD_TESTMETHOD( Rename(normal, root) );
+    ROOTGUARD_TESTMETHOD( Rename(root, root) );
+    ROOTGUARD_TESTMETHOD( Rename(root, normal) );
+    ROOTGUARD_TESTMETHOD( CopyDir(normal, root) );
+    ROOTGUARD_TESTMETHOD( CopyDir(root, root) );
+    ROOTGUARD_TESTMETHOD( CopyDir(root, normal) );
+    ROOTGUARD_TESTMETHOD( CopyFile(normal, root) );
+    ROOTGUARD_TESTMETHOD( CopyFile(root, root) );
+    ROOTGUARD_TESTMETHOD( CopyFile(root, normal) );
+    ROOTGUARD_TESTMETHOD( Remove(root) );
+    ROOTGUARD_TESTMETHOD( MakeEmptyFile(root) );
+    ROOTGUARD_TESTMETHOD( MakeDir(root) );
+}
+
+/**
+ * Name: path_size
+ * Description: check testing size of file
+ * Expected: correct size
+ */
+RUNNER_TEST(path_size)
+{
+    DPL::ScopedDir sd(rootTest);
+    Path path = Path(rootTest) / "touch.txt";
+    DPL::Utils::MakeEmptyFile(path);
+    RUNNER_ASSERT(path.Size() == 0);
+
+    {
+        DPL::FileOutput out(path.Fullpath());
+        DPL::BinaryQueue bq;
+        bq.AppendCopy("123456789", 9);
+        out.Write(bq, bq.Size());
+        out.Close();
+        RUNNER_ASSERT(path.Size() == 9);
+    }
+
+    {
+        DPL::FileOutput out(path.Fullpath());
+        DPL::BinaryQueue bq;
+        bq.AppendCopy("123456789", 4);
+        out.Write(bq, bq.Size());
+        out.Close();
+        RUNNER_ASSERT(path.Size() == 4);
+    }
+}
+
+/**
+Name: path_copy
+Description: tests path coping directory andfiles
+Expected: coping should be done
+*/
+RUNNER_TEST(path_copy_directory)
+{
+    DPL::ScopedDir sd(rootTest);
+
+    Path path = Path(rootTest) / "sourceDir";
+    Path innerPath = Path(rootTest) / "sourceDir" / "level1" ;
+    Path innerPath2 = Path(rootTest) / "sourceDir" / "level1" / "level2";
+    Path file1 = Path(rootTest) / "sourceDir" / "level1" / "level2" / "file1.txt";
+    Path file2 = Path(rootTest) / "sourceDir" / "level1" / "level2" / "file2.txt";
+    Path file3 = Path(rootTest) / "sourceDir" / "level1" / "file3.txt";
+    Path file4 = Path(rootTest) / "sourceDir" /  "file4.txt";
+
+    Path tfile1 = Path(rootTest) / "targetDir" / "level1" / "level2" / "file1.txt";
+    Path tfile2 = Path(rootTest) / "targetDir" / "level1" / "level2" / "file2.txt";
+    Path tfile3 = Path(rootTest) / "targetDir" / "level1" / "file3.txt";
+    Path tfile4 = Path(rootTest) / "targetDir" /  "file4.txt";
+
+    Path target = Path(rootTest) / "targetDir";
+
+    DPL::Utils::MakeDir(path);
+    DPL::Utils::MakeDir(innerPath);
+    DPL::Utils::MakeDir(innerPath2);
+    DPL::Utils::MakeEmptyFile(file1);
+    DPL::Utils::MakeEmptyFile(file2);
+    DPL::Utils::MakeEmptyFile(file3);
+    DPL::Utils::MakeEmptyFile(file4);
+
+    DPL::Utils::CopyDir(path, target);
+
+    RUNNER_ASSERT_MSG(tfile1.Exists(), tfile1.Fullpath() + " not exists");
+    RUNNER_ASSERT_MSG(tfile1.IsFile(), tfile1.Fullpath() + " is not file");
+    RUNNER_ASSERT_MSG(tfile2.Exists(), tfile2.Fullpath() + " not exists");
+    RUNNER_ASSERT_MSG(tfile2.IsFile(), tfile2.Fullpath() + " is not file");
+    RUNNER_ASSERT_MSG(tfile3.Exists(), tfile3.Fullpath() + " not exists");
+    RUNNER_ASSERT_MSG(tfile3.IsFile(), tfile3.Fullpath() + " is not file");
+    RUNNER_ASSERT_MSG(tfile4.Exists(), tfile4.Fullpath() + " not exists");
+    RUNNER_ASSERT_MSG(tfile4.IsFile(), tfile4.Fullpath() + " is not file");
+}
+
+/*
+Name: path_copy_inner
+Description: tests path coping to subdirectory
+Expected: coping shoudl fail
+*/
+RUNNER_TEST(path_copy_inner)
+{
+    DPL::ScopedDir sd(rootTest);
+
+    Path path = Path(rootTest) / "touchDir";
+    Path inner = Path(rootTest) / "touchDir" / "innerDirectory";
+
+    bool exceptionCatched = false;
+    Try
+    {
+        DPL::Utils::CopyDir(path, inner);
+    }
+    Catch(DPL::Utils::Path::CannotCopy)
+    {
+        exceptionCatched = true;
+    }
+    RUNNER_ASSERT_MSG(exceptionCatched, "Copy should fail");
+}
+
+/*
+Name: issubpath
+Description: tests method compare if one path is subpath of another
+Expected: correct results
+*/
+RUNNER_TEST(path_issubpath)
+{
+    Path path1 = Path(rootTest) / "touchDir/asd/sdf";
+    Path path2 = Path(rootTest) / "touchDir/asd/sdf/123";
+    Path path3 = Path(rootTest) / "touchDir/asd/sdno";
+    Path path4 = Path("/");
+
+    RUNNER_ASSERT(path1.isSubPath(path2));
+    RUNNER_ASSERT(!path1.isSubPath(path3));
+    RUNNER_ASSERT(!path1.isSubPath(path4));
+
+    RUNNER_ASSERT(!path2.isSubPath(path1));
+    RUNNER_ASSERT(!path2.isSubPath(path3));
+    RUNNER_ASSERT(!path2.isSubPath(path4));
+
+    RUNNER_ASSERT(path4.isSubPath(path1));
+    RUNNER_ASSERT(path4.isSubPath(path2));
+    RUNNER_ASSERT(path4.isSubPath(path3));
 }
 
 /*
@@ -441,6 +705,7 @@ RUNNER_TEST(path_rename_same)
     DPL::ScopedDir sd(rootTest);
 
     struct stat st;
+    memset(&st, 0, sizeof(struct stat));
     Path path = Path(rootTest) / "touchDir";
 
     MakeDir(path);