From: <svn...@op...> - 2009-09-16 22:11:15
|
Author: dgollub Date: Thu Sep 17 00:10:41 2009 New Revision: 5765 URL: http://www.opensync.org/changeset/5765 Log: Break trunk API by dropping schemadir parameter from osync_plugin_config_load_file() refs #1013 Added: trunk/opensync/plugin/opensync_plugin_config_internals.h - copied, changed from r5764, trunk/opensync/plugin/opensync_plugin_config_private.h Modified: trunk/opensync/group/opensync_member.c trunk/opensync/plugin/opensync_plugin_config.c trunk/opensync/plugin/opensync_plugin_config.h trunk/opensync/plugin/opensync_plugin_config_private.h trunk/tests/ipc-tests/check_serializer.c trunk/tests/plugin-tests/check_plugin_config.c trunk/tools/osyncplugin.c Modified: trunk/opensync/group/opensync_member.c ============================================================================== --- trunk/opensync/group/opensync_member.c Thu Sep 10 23:20:07 2009 (r5764) +++ trunk/opensync/group/opensync_member.c Thu Sep 17 00:10:41 2009 (r5765) @@ -23,6 +23,7 @@ #include "opensync-plugin.h" #include "plugin/opensync_objtype_sink_internals.h" +#include "plugin/opensync_plugin_config_internals.h" #include "opensync-capabilities.h" #include "opensync-group.h" @@ -256,7 +257,6 @@ { char *filename = NULL; OSyncPluginConfig *config = NULL; - const char *schemadir = NULL; osync_trace(TRACE_ENTRY, "%s(%p, %p)", __func__, member, error); g_assert(member); @@ -287,10 +287,10 @@ #ifdef OPENSYNC_UNITTESTS if (member->schemadir) - schemadir = member->schemadir; + osync_plugin_config_set_schemadir(config, member->schemadir); #endif - if (!osync_plugin_config_file_load(config, filename, schemadir, error)) + if (!osync_plugin_config_file_load(config, filename, error)) goto error_free_config; osync_member_set_config(member, config); @@ -317,7 +317,6 @@ OSyncPluginConfig *osync_member_get_config(OSyncMember *member, OSyncError **error) { char *filename = NULL; - const char *schemadir = NULL; OSyncPluginConfig *config = NULL; osync_trace(TRACE_ENTRY, "%s(%p, %p)", __func__, member, error); @@ -342,10 +341,10 @@ #ifdef OPENSYNC_UNITTESTS if (member->schemadir) - schemadir = member->schemadir; + osync_plugin_config_set_schemadir(config, member->schemadir); #endif - if (!osync_plugin_config_file_load(config, filename, schemadir, error)) + if (!osync_plugin_config_file_load(config, filename, error)) goto error_free_config; osync_free(filename); Modified: trunk/opensync/plugin/opensync_plugin_config.c ============================================================================== --- trunk/opensync/plugin/opensync_plugin_config.c Thu Sep 10 23:20:07 2009 (r5764) +++ trunk/opensync/plugin/opensync_plugin_config.c Thu Sep 17 00:10:41 2009 (r5765) @@ -34,6 +34,7 @@ #include "opensync_plugin_resource_private.h" /* FIXME: direct access to private header */ #include "opensync_plugin_config_private.h" +#include "opensync_plugin_config_internals.h" static OSyncPluginAdvancedOptionParameter *_osync_plugin_config_parse_advancedoption_param(OSyncPluginAdvancedOption *option, xmlNode *cur, OSyncError **error) { @@ -743,16 +744,16 @@ return FALSE; } -osync_bool osync_plugin_config_file_load(OSyncPluginConfig *config, const char *path, const char *schemadir, OSyncError **error) +osync_bool osync_plugin_config_file_load(OSyncPluginConfig *config, const char *path, OSyncError **error) { xmlDocPtr doc = NULL; xmlNodePtr cur = NULL; char *schemafile = NULL; const char *schemapath = NULL; - osync_trace(TRACE_ENTRY, "%s(%p, %s, %s, %p)", __func__, config, __NULLSTR(path), __NULLSTR(schemadir), error); + osync_trace(TRACE_ENTRY, "%s(%p, %s, %s, %p)", __func__, config, __NULLSTR(path), error); - schemapath = schemadir ? schemadir : OPENSYNC_SCHEMASDIR; + schemapath = config->schemadir ? config->schemadir : OPENSYNC_SCHEMASDIR; if (!osync_xml_open_file(&doc, &cur, path, "config", error)) goto error; @@ -779,6 +780,20 @@ return FALSE; } +void osync_plugin_config_set_schemadir(OSyncPluginConfig *config, const char *schemadir) +{ + osync_return_if_fail(config); + + if (config->schemadir) { + osync_free(config->schemadir); + config->schemadir = NULL; + } + + if (schemadir) { + config->schemadir = osync_strdup(schemadir); + } +} + static osync_bool _osync_plugin_config_assemble_authentication(xmlNode *cur, OSyncPluginAuthentication *auth, OSyncError **error) { const char *username, *password, *ref; @@ -1291,6 +1306,9 @@ osync_plugin_resource_unref(res); config->resources = osync_list_remove(config->resources, res); } + + if (config->schemadir) + osync_free(config->schemadir); osync_free(config); } Modified: trunk/opensync/plugin/opensync_plugin_config.h ============================================================================== --- trunk/opensync/plugin/opensync_plugin_config.h Thu Sep 10 23:20:07 2009 (r5764) +++ trunk/opensync/plugin/opensync_plugin_config.h Thu Sep 17 00:10:41 2009 (r5765) @@ -80,11 +80,10 @@ * * @param config Contents of config file as OsyncPluginConfig object * @param path Path to file to load - * @param schemadir Path to the schema location. If schmadir is NULL the default value is used * @param error Pointer to error struct * @return True on success, False on failure - error will contain details */ -OSYNC_EXPORT osync_bool osync_plugin_config_file_load(OSyncPluginConfig *config, const char *path, const char *schemadir, OSyncError **error); +OSYNC_EXPORT osync_bool osync_plugin_config_file_load(OSyncPluginConfig *config, const char *path, OSyncError **error); /** @brief Save a plugin config to a file * Copied and modified: trunk/opensync/plugin/opensync_plugin_config_internals.h (from r5764, trunk/opensync/plugin/opensync_plugin_config_private.h) ============================================================================== --- trunk/opensync/plugin/opensync_plugin_config_private.h Thu Sep 10 23:20:07 2009 (r5764, copy source) +++ trunk/opensync/plugin/opensync_plugin_config_internals.h Thu Sep 17 00:10:41 2009 (r5765) @@ -18,41 +18,26 @@ * */ -#ifndef _OPENSYNC_PLUGIN_CONFIG_PRIVATE_H_ -#define _OPENSYNC_PLUGIN_CONFIG_PRIVATE_H_ - -#define OSYNC_PLUGIN_CONFING_SCHEMA "plugin_config.xsd" +#ifndef _OPENSYNC_PLUGIN_CONFIG_INTERNALS_H_ +#define _OPENSYNC_PLUGIN_CONFIG_INTERNALS_H_ /** - * @defgroup OSyncPluginConfigPrivateAPI OpenSync Plugin Config Private + * @defgroup OSyncPluginConfigInternalsAPI OpenSync Plugin Config Internal * @ingroup OSyncPluginPrivate */ /*@{*/ -/** - * @brief Gives information about the plugin configuration - **/ -struct OSyncPluginConfig { - /** Advanced Options */ - OSyncList *advancedoptions; - /** Connection configuration */ - OSyncPluginConnection *connection; - /** Authentication configuration */ - OSyncPluginAuthentication *authentication; - /** Localization configuration */ - OSyncPluginLocalization *localization; - /** List of resource configurations */ - OSyncList *resources; - - /** Flags to store supported config options */ - OSyncPluginConfigSupportedFlags supported; - - /** Object reference counting */ - int ref_count; -}; + +/** @brief Set schema directory of the plugin configuration schemas + * + * @param config Contents of config file as OsyncPluginConfig object + * @param schemadir Path to the schema location. If schmadir is NULL the default value is used + */ +OSYNC_TEST_EXPORT void osync_plugin_config_set_schemadir(OSyncPluginConfig *config, const char *schemadir); + /*@}*/ -#endif /* _OPENSYNC_PLUGIN_CONFIG_PRIVATE_H_ */ +#endif /* _OPENSYNC_PLUGIN_CONFIG_INTERNALS_H_ */ Modified: trunk/opensync/plugin/opensync_plugin_config_private.h ============================================================================== --- trunk/opensync/plugin/opensync_plugin_config_private.h Thu Sep 10 23:20:07 2009 (r5764) +++ trunk/opensync/plugin/opensync_plugin_config_private.h Thu Sep 17 00:10:41 2009 (r5765) @@ -48,6 +48,9 @@ /** Flags to store supported config options */ OSyncPluginConfigSupportedFlags supported; + /** Schema Directory */ + char *schemadir; + /** Object reference counting */ int ref_count; }; Modified: trunk/tests/ipc-tests/check_serializer.c ============================================================================== --- trunk/tests/ipc-tests/check_serializer.c Thu Sep 10 23:20:07 2009 (r5764) +++ trunk/tests/ipc-tests/check_serializer.c Thu Sep 17 00:10:41 2009 (r5765) @@ -4,6 +4,7 @@ #include "opensync/ipc/opensync_message_internals.h" #include "opensync/ipc/opensync_serializer_internals.h" #include <opensync/opensync-plugin.h> +#include "opensync/plugin/opensync_plugin_config_internals.h" static osync_bool _compare_string(const void *string1, const void *string2) { @@ -384,7 +385,8 @@ fail_unless(config1 != NULL, NULL); fail_unless(error == NULL, NULL); - fail_unless(osync_plugin_config_file_load(config1, "config1.xml", testbed, &error)); + osync_plugin_config_set_schemadir(config1, testbed); + fail_unless(osync_plugin_config_file_load(config1, "config1.xml", &error)); fail_unless(osync_marshal_pluginconfig(message, config1, &error), NULL); fail_unless(error == NULL, NULL); Modified: trunk/tests/plugin-tests/check_plugin_config.c ============================================================================== --- trunk/tests/plugin-tests/check_plugin_config.c Thu Sep 10 23:20:07 2009 (r5764) +++ trunk/tests/plugin-tests/check_plugin_config.c Thu Sep 17 00:10:41 2009 (r5765) @@ -4,6 +4,7 @@ #include <opensync/opensync-format.h> #include "opensync/plugin/opensync_plugin_config_private.h" +#include "opensync/plugin/opensync_plugin_config_internals.h" static const char *_format_sink_get_objformat(OSyncPluginResource *res) { @@ -877,7 +878,8 @@ char *config_file = g_strdup_printf("%s/dummy_config.xml", testbed); fail_unless(osync_plugin_config_file_save(config, config_file, &error), "%s", osync_error_print(&error)); - fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, testbed, &error), NULL); + osync_plugin_config_set_schemadir(reloaded_config, testbed); + fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, &error), NULL); g_free(config_file); /* Compare stored config with original config */ @@ -1003,7 +1005,8 @@ char *config_file = g_strdup_printf("%s/dummy_config.xml", testbed); fail_unless(osync_plugin_config_file_save(config, config_file, &error), "%s", osync_error_print(&error)); - fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, testbed, &error), NULL); + osync_plugin_config_set_schemadir(reloaded_config, testbed); + fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, &error), NULL); g_free(config_file); /* Compare stored config with original config */ @@ -1049,7 +1052,8 @@ char *config_file = g_strdup_printf("%s/dummy_config.xml", testbed); fail_unless(osync_plugin_config_file_save(config, config_file, &error), "%s", osync_error_print(&error)); - fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, testbed, &error), NULL); + osync_plugin_config_set_schemadir(reloaded_config, testbed); + fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, &error), NULL); g_free(config_file); /* Compare stored config with original config */ @@ -1100,7 +1104,8 @@ char *config_file = g_strdup_printf("%s/dummy_config.xml", testbed); fail_unless(osync_plugin_config_file_save(config, config_file, &error), "%s", osync_error_print(&error)); - fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, testbed, &error), NULL); + osync_plugin_config_set_schemadir(reloaded_config, testbed); + fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, &error), NULL); g_free(config_file); /* Compare stored config with original config */ @@ -1156,7 +1161,8 @@ char *config_file = g_strdup_printf("%s/dummy_config.xml", testbed); fail_unless(osync_plugin_config_file_save(config, config_file, &error), "%s", osync_error_print(&error)); - fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, testbed, &error), NULL); + osync_plugin_config_set_schemadir(reloaded_config, testbed); + fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, &error), NULL); g_free(config_file); /* Compare stored config with original config */ @@ -1206,7 +1212,8 @@ char *config_file = g_strdup_printf("%s/dummy_config.xml", testbed); fail_unless(osync_plugin_config_file_save(config, config_file, &error), "%s", osync_error_print(&error)); - fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, testbed, &error), NULL); + osync_plugin_config_set_schemadir(reloaded_config, testbed); + fail_unless(osync_plugin_config_file_load(reloaded_config, config_file, &error), NULL); g_free(config_file); /* Compare stored config with original config */ Modified: trunk/tools/osyncplugin.c ============================================================================== --- trunk/tools/osyncplugin.c Thu Sep 10 23:20:07 2009 (r5764) +++ trunk/tools/osyncplugin.c Thu Sep 17 00:10:41 2009 (r5765) @@ -366,7 +366,7 @@ if (osync_plugin_get_config_type(plugin) != OSYNC_PLUGIN_NO_CONFIGURATION && configfile) { OSyncList *r = NULL; - if (!osync_plugin_config_file_load(config, configfile, NULL, error)) + if (!osync_plugin_config_file_load(config, configfile, error)) goto error_free_pluginconfig; osync_plugin_info_set_config(plugin_info, config); |