diff --git a/core/modules/action/migration_templates/action_settings.yml b/core/modules/action/migration_templates/action_settings.yml index df69e33..4aca21a 100644 --- a/core/modules/action/migration_templates/action_settings.yml +++ b/core/modules/action/migration_templates/action_settings.yml @@ -7,6 +7,7 @@ source: plugin: variable variables: - actions_max_stack + provider: action process: recursion_limit: actions_max_stack destination: diff --git a/core/modules/aggregator/migration_templates/d6_aggregator_settings.yml b/core/modules/aggregator/migration_templates/d6_aggregator_settings.yml index 72372e4..12abfd5 100644 --- a/core/modules/aggregator/migration_templates/d6_aggregator_settings.yml +++ b/core/modules/aggregator/migration_templates/d6_aggregator_settings.yml @@ -12,6 +12,7 @@ source: - aggregator_teaser_length - aggregator_clear - aggregator_summary_items + provider: aggregator process: fetcher: aggregator_fetcher parser: aggregator_parser diff --git a/core/modules/aggregator/migration_templates/d7_aggregator_settings.yml b/core/modules/aggregator/migration_templates/d7_aggregator_settings.yml index c8c793f..229dd01 100644 --- a/core/modules/aggregator/migration_templates/d7_aggregator_settings.yml +++ b/core/modules/aggregator/migration_templates/d7_aggregator_settings.yml @@ -12,6 +12,7 @@ source: - aggregator_teaser_length - aggregator_clear - aggregator_summary_items + provider: aggregator process: fetcher: aggregator_fetcher parser: aggregator_parser diff --git a/core/modules/block_content/migration_templates/block_content_body_field.yml b/core/modules/block_content/migration_templates/block_content_body_field.yml index b51d032..113fb98 100644 --- a/core/modules/block_content/migration_templates/block_content_body_field.yml +++ b/core/modules/block_content/migration_templates/block_content_body_field.yml @@ -19,6 +19,7 @@ source: type: string field_name: type: string + provider: block process: entity_type: entity_type bundle: bundle diff --git a/core/modules/block_content/migration_templates/block_content_entity_display.yml b/core/modules/block_content/migration_templates/block_content_entity_display.yml index 06a35d7..ef73655 100644 --- a/core/modules/block_content/migration_templates/block_content_entity_display.yml +++ b/core/modules/block_content/migration_templates/block_content_entity_display.yml @@ -22,6 +22,7 @@ source: type: string field_name: type: string + provider: block process: entity_type: entity_type bundle: bundle diff --git a/core/modules/block_content/migration_templates/block_content_entity_form_display.yml b/core/modules/block_content/migration_templates/block_content_entity_form_display.yml index 92b5a10..b324da0 100644 --- a/core/modules/block_content/migration_templates/block_content_entity_form_display.yml +++ b/core/modules/block_content/migration_templates/block_content_entity_form_display.yml @@ -20,6 +20,7 @@ source: type: string field_name: type: string + provider: block process: entity_type: entity_type bundle: bundle diff --git a/core/modules/block_content/migration_templates/block_content_type.yml b/core/modules/block_content/migration_templates/block_content_type.yml index bc75eea..77ae99d 100644 --- a/core/modules/block_content/migration_templates/block_content_type.yml +++ b/core/modules/block_content/migration_templates/block_content_type.yml @@ -12,6 +12,7 @@ source: ids: id: type: string + provider: block process: id: id label: label diff --git a/core/modules/block_content/src/Plugin/migrate/source/d6/Box.php b/core/modules/block_content/src/Plugin/migrate/source/d6/Box.php index a28927b..65c0940 100644 --- a/core/modules/block_content/src/Plugin/migrate/source/d6/Box.php +++ b/core/modules/block_content/src/Plugin/migrate/source/d6/Box.php @@ -8,7 +8,8 @@ * Drupal 6 block source from database. * * @MigrateSource( - * id = "d6_box" + * id = "d6_box", + * source_provider = "block" * ) */ class Box extends DrupalSqlBase { diff --git a/core/modules/block_content/src/Plugin/migrate/source/d7/BlockCustom.php b/core/modules/block_content/src/Plugin/migrate/source/d7/BlockCustom.php index ea33682..edd6563 100644 --- a/core/modules/block_content/src/Plugin/migrate/source/d7/BlockCustom.php +++ b/core/modules/block_content/src/Plugin/migrate/source/d7/BlockCustom.php @@ -8,7 +8,8 @@ * Drupal 7 custom block source from database. * * @MigrateSource( - * id = "d7_block_custom" + * id = "d7_block_custom", + * source_provider = "block" * ) */ class BlockCustom extends DrupalSqlBase { diff --git a/core/modules/book/migration_templates/d6_book_settings.yml b/core/modules/book/migration_templates/d6_book_settings.yml index 16e6695..8b7b377 100644 --- a/core/modules/book/migration_templates/d6_book_settings.yml +++ b/core/modules/book/migration_templates/d6_book_settings.yml @@ -8,6 +8,7 @@ source: - book_child_type - book_block_mode - book_allowed_types + provider: book process: child_type: book_child_type 'block/navigation/mode': book_block_mode diff --git a/core/modules/book/src/Plugin/migrate/source/d6/Book.php b/core/modules/book/src/Plugin/migrate/source/d6/Book.php index f41bb42..dc43fb0 100644 --- a/core/modules/book/src/Plugin/migrate/source/d6/Book.php +++ b/core/modules/book/src/Plugin/migrate/source/d6/Book.php @@ -8,7 +8,8 @@ * Drupal 6 book source. * * @MigrateSource( - * id = "d6_book" + * id = "d6_book", + * source_provider = "book" * ) */ class Book extends DrupalSqlBase { diff --git a/core/modules/comment/migration_templates/d6_comment_entity_display.yml b/core/modules/comment/migration_templates/d6_comment_entity_display.yml index c650673..c07cccc 100644 --- a/core/modules/comment/migration_templates/d6_comment_entity_display.yml +++ b/core/modules/comment/migration_templates/d6_comment_entity_display.yml @@ -12,6 +12,7 @@ source: label: hidden type: comment_default weight: 20 + provider: comment process: entity_type: 'constants/entity_type' field_name: 'constants/field_name' diff --git a/core/modules/comment/migration_templates/d6_comment_entity_form_display.yml b/core/modules/comment/migration_templates/d6_comment_entity_form_display.yml index c33685f..dab38e4 100644 --- a/core/modules/comment/migration_templates/d6_comment_entity_form_display.yml +++ b/core/modules/comment/migration_templates/d6_comment_entity_form_display.yml @@ -11,6 +11,7 @@ source: options: type: comment_default weight: 20 + provider: comment process: entity_type: 'constants/entity_type' field_name: 'constants/field_name' diff --git a/core/modules/comment/migration_templates/d6_comment_entity_form_display_subject.yml b/core/modules/comment/migration_templates/d6_comment_entity_form_display_subject.yml index abe6191..e05a757 100644 --- a/core/modules/comment/migration_templates/d6_comment_entity_form_display_subject.yml +++ b/core/modules/comment/migration_templates/d6_comment_entity_form_display_subject.yml @@ -11,6 +11,7 @@ source: options: type: string_textfield weight: 10 + provider: comment process: entity_type: 'constants/entity_type' field_name: 'constants/field_name' diff --git a/core/modules/comment/migration_templates/d6_comment_field.yml b/core/modules/comment/migration_templates/d6_comment_field.yml index d14d1aa..3a9a405 100644 --- a/core/modules/comment/migration_templates/d6_comment_field.yml +++ b/core/modules/comment/migration_templates/d6_comment_field.yml @@ -7,6 +7,7 @@ source: constants: entity_type: node type: comment + provider: comment process: entity_type: 'constants/entity_type' field_name: comment_type diff --git a/core/modules/comment/migration_templates/d6_comment_field_instance.yml b/core/modules/comment/migration_templates/d6_comment_field_instance.yml index d708619..f715199 100644 --- a/core/modules/comment/migration_templates/d6_comment_field_instance.yml +++ b/core/modules/comment/migration_templates/d6_comment_field_instance.yml @@ -8,6 +8,7 @@ source: entity_type: node label: Comments required: true + provider: comment process: entity_type: 'constants/entity_type' label: 'constants/label' diff --git a/core/modules/comment/migration_templates/d6_comment_type.yml b/core/modules/comment/migration_templates/d6_comment_type.yml index 69a2bd8..2f5fbcb 100644 --- a/core/modules/comment/migration_templates/d6_comment_type.yml +++ b/core/modules/comment/migration_templates/d6_comment_type.yml @@ -6,6 +6,7 @@ source: plugin: d6_comment_variable_per_comment_type constants: entity_type: node + provider: comment process: target_entity_type_id: 'constants/entity_type' id: comment_type diff --git a/core/modules/config_translation/migration_templates/d6_i18n_system_maintenance.yml b/core/modules/config_translation/migration_templates/d6_i18n_system_maintenance.yml index 1c99961..f1c4c7e 100644 --- a/core/modules/config_translation/migration_templates/d6_i18n_system_maintenance.yml +++ b/core/modules/config_translation/migration_templates/d6_i18n_system_maintenance.yml @@ -6,6 +6,7 @@ source: plugin: i18n_variable variables: - site_offline_message + provider: system process: langcode: language message: site_offline_message diff --git a/core/modules/config_translation/migration_templates/d6_i18n_system_site.yml b/core/modules/config_translation/migration_templates/d6_i18n_system_site.yml index 3c80821..148e757 100644 --- a/core/modules/config_translation/migration_templates/d6_i18n_system_site.yml +++ b/core/modules/config_translation/migration_templates/d6_i18n_system_site.yml @@ -13,6 +13,7 @@ source: - site_frontpage - site_403 - site_404 + provider: system process: langcode: language name: site_name diff --git a/core/modules/config_translation/migration_templates/d6_i18n_user_mail.yml b/core/modules/config_translation/migration_templates/d6_i18n_user_mail.yml index d1e5db5..bae575d 100644 --- a/core/modules/config_translation/migration_templates/d6_i18n_user_mail.yml +++ b/core/modules/config_translation/migration_templates/d6_i18n_user_mail.yml @@ -19,6 +19,7 @@ source: - user_mail_register_pending_approval_body - user_mail_status_blocked_subject - user_mail_status_blocked_body + provider: system process: langcode: language 'status_activated/subject': diff --git a/core/modules/config_translation/migration_templates/d6_i18n_user_settings.yml b/core/modules/config_translation/migration_templates/d6_i18n_user_settings.yml index 36b0fa6c..11c7c16 100644 --- a/core/modules/config_translation/migration_templates/d6_i18n_user_settings.yml +++ b/core/modules/config_translation/migration_templates/d6_i18n_user_settings.yml @@ -10,6 +10,7 @@ source: - user_email_verification - user_register - anonymous + provider: system process: langcode: language 'notify/status_blocked': user_mail_status_blocked_notify diff --git a/core/modules/dblog/migration_templates/d6_dblog_settings.yml b/core/modules/dblog/migration_templates/d6_dblog_settings.yml index 64da0a7..afa1e53 100644 --- a/core/modules/dblog/migration_templates/d6_dblog_settings.yml +++ b/core/modules/dblog/migration_templates/d6_dblog_settings.yml @@ -6,8 +6,10 @@ source: plugin: variable variables: - dblog_row_limit + provider: dblog process: row_limit: dblog_row_limit destination: plugin: config config_name: dblog.settings + provider: dblog diff --git a/core/modules/dblog/migration_templates/d7_dblog_settings.yml b/core/modules/dblog/migration_templates/d7_dblog_settings.yml index e22768f..b2dbfb2 100644 --- a/core/modules/dblog/migration_templates/d7_dblog_settings.yml +++ b/core/modules/dblog/migration_templates/d7_dblog_settings.yml @@ -6,8 +6,10 @@ source: plugin: variable variables: - dblog_row_limit + provider: dblog process: row_limit: dblog_row_limit destination: plugin: config config_name: dblog.settings + provider: dblog diff --git a/core/modules/field/migration_templates/d7_field.yml b/core/modules/field/migration_templates/d7_field.yml index 15079d8..726fa46 100644 --- a/core/modules/field/migration_templates/d7_field.yml +++ b/core/modules/field/migration_templates/d7_field.yml @@ -9,6 +9,7 @@ source: constants: status: true langcode: und + provider: field process: entity_type: entity_type status: 'constants/status' diff --git a/core/modules/field/migration_templates/d7_field_instance_widget_settings.yml b/core/modules/field/migration_templates/d7_field_instance_widget_settings.yml index e2bbcf4..40c4965 100644 --- a/core/modules/field/migration_templates/d7_field_instance_widget_settings.yml +++ b/core/modules/field/migration_templates/d7_field_instance_widget_settings.yml @@ -9,6 +9,7 @@ source: constants: form_mode: default third_party_settings: { } + provider: field process: # We skip field types that don't exist because they weren't migrated by the # field migration. diff --git a/core/modules/field/migration_templates/d7_view_modes.yml b/core/modules/field/migration_templates/d7_view_modes.yml index fd17138..aca872b 100644 --- a/core/modules/field/migration_templates/d7_view_modes.yml +++ b/core/modules/field/migration_templates/d7_view_modes.yml @@ -4,6 +4,7 @@ migration_tags: - Drupal 7 source: plugin: d7_view_mode + provider: field process: mode: plugin: static_map diff --git a/core/modules/file/migration_templates/d6_file.yml b/core/modules/file/migration_templates/d6_file.yml index 8371d45..9121a11 100644 --- a/core/modules/file/migration_templates/d6_file.yml +++ b/core/modules/file/migration_templates/d6_file.yml @@ -12,6 +12,7 @@ source: # table are specified, and must end with a /. See source_full_path # configuration in this migration's process pipeline as an example. source_base_path: '' + provider: system process: # If you are using both this migration and d6_user_picture_file in a custom # migration and executing migrations incrementally, it is strongly diff --git a/core/modules/file/migration_templates/d6_upload_field.yml b/core/modules/file/migration_templates/d6_upload_field.yml index a919f91..3191be6 100644 --- a/core/modules/file/migration_templates/d6_upload_field.yml +++ b/core/modules/file/migration_templates/d6_upload_field.yml @@ -13,6 +13,7 @@ source: name: upload cardinality: -1 display_field: true + provider: upload process: entity_type: 'constants/entity_type' field_name: 'constants/name' diff --git a/core/modules/file/migration_templates/d7_file.yml b/core/modules/file/migration_templates/d7_file.yml index 7b35aff..ac6fd58 100644 --- a/core/modules/file/migration_templates/d7_file.yml +++ b/core/modules/file/migration_templates/d7_file.yml @@ -12,6 +12,7 @@ source: # table are specified, and must end with a /. See source_full_path # configuration in this migration's process pipeline as an example. source_base_path: '' + provider: file process: # If you are using this file to build a custom migration consider removing # the fid field to allow incremental migrations. diff --git a/core/modules/file/migration_templates/file_settings.yml b/core/modules/file/migration_templates/file_settings.yml index 36584cc..422af6d 100644 --- a/core/modules/file/migration_templates/file_settings.yml +++ b/core/modules/file/migration_templates/file_settings.yml @@ -9,6 +9,7 @@ source: - file_description_type - file_description_length - file_icon_directory + provider: system process: 'description/type': file_description_type 'description/length': file_description_length @@ -16,3 +17,4 @@ process: destination: plugin: config config_name: file.settings + provider: file diff --git a/core/modules/filter/migration_templates/d6_filter_format.yml b/core/modules/filter/migration_templates/d6_filter_format.yml index a5f4388..9346be9 100644 --- a/core/modules/filter/migration_templates/d6_filter_format.yml +++ b/core/modules/filter/migration_templates/d6_filter_format.yml @@ -4,6 +4,7 @@ migration_tags: - Drupal 6 source: plugin: d6_filter_format + provider: filter process: format: plugin: machine_name diff --git a/core/modules/filter/migration_templates/d7_filter_format.yml b/core/modules/filter/migration_templates/d7_filter_format.yml index c0710b5..5a49026 100644 --- a/core/modules/filter/migration_templates/d7_filter_format.yml +++ b/core/modules/filter/migration_templates/d7_filter_format.yml @@ -4,6 +4,7 @@ migration_tags: - Drupal 7 source: plugin: d7_filter_format + provider: filter process: format: format name: name diff --git a/core/modules/filter/migration_templates/d7_filter_settings.yml b/core/modules/filter/migration_templates/d7_filter_settings.yml index d6239fc..b71065e 100644 --- a/core/modules/filter/migration_templates/d7_filter_settings.yml +++ b/core/modules/filter/migration_templates/d7_filter_settings.yml @@ -6,6 +6,7 @@ source: plugin: variable variables: - filter_fallback_format + provider: filter process: fallback_format: filter_fallback_format destination: diff --git a/core/modules/forum/migration_templates/d6_forum_settings.yml b/core/modules/forum/migration_templates/d6_forum_settings.yml index 18ba8d4..1235cdc 100644 --- a/core/modules/forum/migration_templates/d6_forum_settings.yml +++ b/core/modules/forum/migration_templates/d6_forum_settings.yml @@ -11,6 +11,7 @@ source: - forum_block_num_0 - forum_block_num_1 - forum_nav_vocabulary + provider: forum process: 'block/active/limit': forum_block_num_0 'block/new/limit': forum_block_num_1 diff --git a/core/modules/forum/migration_templates/d7_forum_settings.yml b/core/modules/forum/migration_templates/d7_forum_settings.yml index 086d3e6..339cd33 100644 --- a/core/modules/forum/migration_templates/d7_forum_settings.yml +++ b/core/modules/forum/migration_templates/d7_forum_settings.yml @@ -11,6 +11,7 @@ source: - forum_block_num_active - forum_block_num_new - forum_nav_vocabulary + provider: forum process: 'block/active/limit': forum_block_num_active 'block/new/limit': forum_block_num_new diff --git a/core/modules/image/migration_templates/d7_image_settings.yml b/core/modules/image/migration_templates/d7_image_settings.yml index bfae4d5..d2223fe 100644 --- a/core/modules/image/migration_templates/d7_image_settings.yml +++ b/core/modules/image/migration_templates/d7_image_settings.yml @@ -8,6 +8,7 @@ source: - allow_insecure_derivatives - suppress_itok_output - image_style_preview_image + provider: image process: suppress_itok_output: suppress_itok_output allow_insecure_derivatives: allow_insecure_derivatives diff --git a/core/modules/language/migration_templates/d6_language_content_settings.yml b/core/modules/language/migration_templates/d6_language_content_settings.yml index 3bf9078..42e041b 100644 --- a/core/modules/language/migration_templates/d6_language_content_settings.yml +++ b/core/modules/language/migration_templates/d6_language_content_settings.yml @@ -7,6 +7,7 @@ source: plugin: d6_language_content_settings constants: target_type: 'node' + provider: locale process: # Ignore i18n_node_options_[node_type] options not available in Drupal 8, # i18n_required_node and i18n_newnode_current diff --git a/core/modules/language/migration_templates/d6_language_negotiation_settings.yml b/core/modules/language/migration_templates/d6_language_negotiation_settings.yml index abc71f6..ee02902 100644 --- a/core/modules/language/migration_templates/d6_language_negotiation_settings.yml +++ b/core/modules/language/migration_templates/d6_language_negotiation_settings.yml @@ -6,6 +6,7 @@ source: plugin: variable variables: - language_negotiation + provider: language process: session/parameter: plugin: default_value diff --git a/core/modules/language/migration_templates/d6_language_types.yml b/core/modules/language/migration_templates/d6_language_types.yml index 05ce300..e4403ce 100644 --- a/core/modules/language/migration_templates/d6_language_types.yml +++ b/core/modules/language/migration_templates/d6_language_types.yml @@ -6,6 +6,7 @@ source: plugin: variable variables: - language_negotiation + provider: language process: all: plugin: default_value diff --git a/core/modules/language/migration_templates/d7_language_content_settings.yml b/core/modules/language/migration_templates/d7_language_content_settings.yml index 09437fa..f5f62bd 100644 --- a/core/modules/language/migration_templates/d7_language_content_settings.yml +++ b/core/modules/language/migration_templates/d7_language_content_settings.yml @@ -6,6 +6,7 @@ source: plugin: d7_language_content_settings constants: target_type: 'node' + provider: locale process: # Ignore i18n_node_options_[node_type] options not available in Drupal 8, # i18n_required_node and i18n_newnode_current diff --git a/core/modules/language/migration_templates/d7_language_negotiation_settings.yml b/core/modules/language/migration_templates/d7_language_negotiation_settings.yml index 7759965..7b6c52f 100644 --- a/core/modules/language/migration_templates/d7_language_negotiation_settings.yml +++ b/core/modules/language/migration_templates/d7_language_negotiation_settings.yml @@ -7,6 +7,7 @@ source: variables: - locale_language_negotiation_session_param - locale_language_negotiation_url_part + provider: locale process: session/parameter: plugin: default_value @@ -27,6 +28,7 @@ process: destination: plugin: config config_name: language.negotiation + provider: language migration_dependencies: required: - language diff --git a/core/modules/language/migration_templates/d7_language_types.yml b/core/modules/language/migration_templates/d7_language_types.yml index 3a634a2..75f0ea7 100644 --- a/core/modules/language/migration_templates/d7_language_types.yml +++ b/core/modules/language/migration_templates/d7_language_types.yml @@ -12,6 +12,7 @@ source: - locale_language_providers_weight_language - locale_language_providers_weight_language_content - locale_language_providers_weight_language_url + provider: language process: all: plugin: language_types diff --git a/core/modules/language/migration_templates/default_language.yml b/core/modules/language/migration_templates/default_language.yml index 6d7604d..8784acb 100644 --- a/core/modules/language/migration_templates/default_language.yml +++ b/core/modules/language/migration_templates/default_language.yml @@ -7,6 +7,7 @@ source: plugin: variable variables: - language_default + provider: locale process: default_langcode: - diff --git a/core/modules/locale/migration_templates/locale_settings.yml b/core/modules/locale/migration_templates/locale_settings.yml index 6eebe20..f61b8a1 100644 --- a/core/modules/locale/migration_templates/locale_settings.yml +++ b/core/modules/locale/migration_templates/locale_settings.yml @@ -8,6 +8,7 @@ source: variables: - locale_cache_strings - locale_js_directory + provider: locale process: cache_strings: locale_cache_strings 'javascript/directory': locale_js_directory diff --git a/core/modules/menu_link_content/src/Plugin/migrate/source/MenuLink.php b/core/modules/menu_link_content/src/Plugin/migrate/source/MenuLink.php index 338d3ec..dd87ee7 100644 --- a/core/modules/menu_link_content/src/Plugin/migrate/source/MenuLink.php +++ b/core/modules/menu_link_content/src/Plugin/migrate/source/MenuLink.php @@ -11,6 +11,7 @@ * * @MigrateSource( * id = "menu_link", + * source_provider = "menu" * ) */ class MenuLink extends DrupalSqlBase { diff --git a/core/modules/menu_ui/migration_templates/menu_settings.yml b/core/modules/menu_ui/migration_templates/menu_settings.yml index dee5f9e..70d2ca4 100644 --- a/core/modules/menu_ui/migration_templates/menu_settings.yml +++ b/core/modules/menu_ui/migration_templates/menu_settings.yml @@ -8,8 +8,10 @@ source: plugin: variable variables: - menu_override_parent_selector + provider: menu process: override_parent_selector: menu_override_parent_selector destination: plugin: config config_name: menu_ui.settings + provider: menu_ui diff --git a/core/modules/migrate_drupal_ui/migrate_drupal_ui.services.yml b/core/modules/migrate_drupal_ui/migrate_drupal_ui.services.yml new file mode 100644 index 0000000..98b1e03 --- /dev/null +++ b/core/modules/migrate_drupal_ui/migrate_drupal_ui.services.yml @@ -0,0 +1,5 @@ +services: + migrate_drupal_ui.providers: + class: Drupal\migrate_drupal_ui\MigrationProviders + arguments: + - migration diff --git a/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php b/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php index 26304a1..698387c 100644 --- a/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php +++ b/core/modules/migrate_drupal_ui/src/Form/MigrateUpgradeForm.php @@ -11,6 +11,7 @@ use Drupal\migrate\Plugin\MigrationPluginManagerInterface; use Drupal\migrate_drupal_ui\Batch\MigrateUpgradeImportBatch; use Drupal\migrate_drupal\MigrationConfigurationTrait; +use Drupal\migrate_drupal_ui\MigrationProviders; use Symfony\Component\DependencyInjection\ContainerInterface; /** @@ -21,658 +22,6 @@ class MigrateUpgradeForm extends ConfirmFormBase { use MigrationConfigurationTrait; /** - * Mapping of known migrations and their source and destination modules. - * - * @todo https://www.drupal.org/node/2569805 Hardcoding this information is - * not robust - the migrations themselves should hold the necessary - * information. - * - * @var array[] - */ - protected $moduleUpgradePaths = [ - 'action_settings' => [ - 'source_module' => 'system', - 'destination_module' => 'action', - ], - 'd6_aggregator_feed' => [ - 'source_module' => 'aggregator', - 'destination_module' => 'aggregator', - ], - 'd6_aggregator_item' => [ - 'source_module' => 'aggregator', - 'destination_module' => 'aggregator', - ], - 'd6_aggregator_settings' => [ - 'source_module' => 'aggregator', - 'destination_module' => 'aggregator', - ], - 'd7_aggregator_feed' => [ - 'source_module' => 'aggregator', - 'destination_module' => 'aggregator', - ], - 'd7_aggregator_item' => [ - 'source_module' => 'aggregator', - 'destination_module' => 'aggregator', - ], - 'd7_aggregator_settings' => [ - 'source_module' => 'aggregator', - 'destination_module' => 'aggregator', - ], - 'd7_blocked_ips' => [ - 'source_module' => 'system', - 'destination_module' => 'ban', - ], - 'd6_block' => [ - 'source_module' => 'block', - 'destination_module' => 'block', - ], - 'd7_block' => [ - 'source_module' => 'block', - 'destination_module' => 'block', - ], - 'block_content_entity_form_display' => [ - 'source_module' => 'block', - 'destination_module' => 'block_content', - ], - 'block_content_entity_display' => [ - 'source_module' => 'block', - 'destination_module' => 'block_content', - ], - 'block_content_body_field' => [ - 'source_module' => 'block', - 'destination_module' => 'block_content', - ], - 'block_content_type' => [ - 'source_module' => 'block', - 'destination_module' => 'block_content', - ], - 'd6_custom_block' => [ - 'source_module' => 'block', - 'destination_module' => 'block_content', - ], - 'd7_custom_block' => [ - 'source_module' => 'block', - 'destination_module' => 'block_content', - ], - 'd6_book' => [ - 'source_module' => 'book', - 'destination_module' => 'book', - ], - 'd6_book_settings' => [ - 'source_module' => 'book', - 'destination_module' => 'book', - ], - 'd6_comment' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd6_comment_entity_display' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd6_comment_entity_form_display' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd6_comment_entity_form_display_subject' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd6_comment_field' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd6_comment_field_instance' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd6_comment_type' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd7_comment' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd7_comment_entity_display' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd7_comment_entity_form_display' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd7_comment_entity_form_display_subject' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd7_comment_field' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd7_comment_field_instance' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'd7_comment_type' => [ - 'source_module' => 'comment', - 'destination_module' => 'comment', - ], - 'contact_category' => [ - 'source_module' => 'contact', - 'destination_module' => 'contact', - ], - 'd6_contact_settings' => [ - 'source_module' => 'contact', - 'destination_module' => 'contact', - ], - 'd7_contact_settings' => [ - 'source_module' => 'contact', - 'destination_module' => 'contact', - ], - 'd6_dblog_settings' => [ - 'source_module' => 'dblog', - 'destination_module' => 'dblog', - ], - 'd7_dblog_settings' => [ - 'source_module' => 'dblog', - 'destination_module' => 'dblog', - ], - 'default_language' => [ - 'source_module' => 'locale', - 'destination_module' => 'language', - ], - 'd6_field' => [ - 'source_module' => 'content', - 'destination_module' => 'field', - ], - 'd6_field_formatter_settings' => [ - 'source_module' => 'content', - 'destination_module' => 'field', - ], - 'd6_field_instance' => [ - 'source_module' => 'content', - 'destination_module' => 'field', - ], - 'd6_field_instance_widget_settings' => [ - 'source_module' => 'content', - 'destination_module' => 'field', - ], - 'd7_field' => [ - 'source_module' => 'field', - 'destination_module' => 'field', - ], - 'd7_field_formatter_settings' => [ - 'source_module' => 'field', - 'destination_module' => 'field', - ], - 'd7_field_instance' => [ - 'source_module' => 'field', - 'destination_module' => 'field', - ], - 'd7_field_instance_widget_settings' => [ - 'source_module' => 'field', - 'destination_module' => 'field', - ], - 'd7_view_modes' => [ - 'source_module' => 'field', - 'destination_module' => 'field', - ], - 'd6_file' => [ - 'source_module' => 'system', - 'destination_module' => 'file', - ], - 'file_settings' => [ - 'source_module' => 'system', - 'destination_module' => 'file', - ], - 'd6_upload' => [ - 'source_module' => 'upload', - 'destination_module' => 'file', - ], - 'd6_upload_entity_display' => [ - 'source_module' => 'upload', - 'destination_module' => 'file', - ], - 'd6_upload_entity_form_display' => [ - 'source_module' => 'upload', - 'destination_module' => 'file', - ], - 'd6_upload_field' => [ - 'source_module' => 'upload', - 'destination_module' => 'file', - ], - 'd6_upload_field_instance' => [ - 'source_module' => 'upload', - 'destination_module' => 'file', - ], - 'd7_file' => [ - 'source_module' => 'file', - 'destination_module' => 'file', - ], - 'd6_filter_format' => [ - 'source_module' => 'filter', - 'destination_module' => 'filter', - ], - 'd7_filter_format' => [ - 'source_module' => 'filter', - 'destination_module' => 'filter', - ], - 'd7_filter_settings' => [ - 'source_module' => 'filter', - 'destination_module' => 'filter', - ], - 'd6_forum_settings' => [ - 'source_module' => 'forum', - 'destination_module' => 'forum', - ], - 'd7_forum_settings' => [ - 'source_module' => 'forum', - 'destination_module' => 'forum', - ], - 'd7_global_theme_settings' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_imagecache_presets' => [ - 'source_module' => 'imagecache', - 'destination_module' => 'image', - ], - 'd7_image_settings' => [ - 'source_module' => 'image', - 'destination_module' => 'image', - ], - 'd7_image_styles' => [ - 'source_module' => 'image', - 'destination_module' => 'image', - ], - 'd6_language_content_settings' => [ - 'source_module' => 'locale', - 'destination_module' => 'language', - ], - 'd7_language_content_settings' => [ - 'source_module' => 'locale', - 'destination_module' => 'language', - ], - 'd6_language_negotiation_settings' => [ - 'source_module' => 'locale', - 'destination_module' => 'language', - ], - 'd7_language_negotiation_settings' => [ - 'source_module' => 'locale', - 'destination_module' => 'language', - ], - 'language_prefixes_and_domains' => [ - 'source_module' => 'locale', - 'destination_module' => 'language', - ], - 'd6_language_types' => [ - 'source_module' => 'locale', - 'destination_module' => 'language', - ], - 'language' => [ - 'source_module' => 'locale', - 'destination_module' => 'language', - ], - 'd7_language_types' => [ - 'source_module' => 'locale', - 'destination_module' => 'language', - ], - 'locale_settings' => [ - 'source_module' => 'locale', - 'destination_module' => 'locale', - ], - 'd6_menu_links' => [ - 'source_module' => 'menu', - 'destination_module' => 'menu_link_content', - ], - 'menu_settings' => [ - 'source_module' => 'menu', - 'destination_module' => 'menu_ui', - ], - 'd7_menu_links' => [ - 'source_module' => 'menu', - 'destination_module' => 'menu_link_content', - ], - 'd6_node' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd6_node_translation' => [ - 'source_module' => 'translation', - 'destination_module' => 'content_translation', - ], - 'd6_node_revision' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd6_node_setting_promote' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd6_node_setting_status' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd6_node_setting_sticky' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd6_node_settings' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd6_node_type' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd6_view_modes' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd7_node' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd7_node_revision' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd7_node_settings' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd7_node_translation' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd7_node_title_label' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd7_node_type' => [ - 'source_module' => 'node', - 'destination_module' => 'node', - ], - 'd6_url_alias' => [ - 'source_module' => 'path', - 'destination_module' => 'path', - ], - 'd7_url_alias' => [ - 'source_module' => 'path', - 'destination_module' => 'path', - ], - 'search_page' => [ - 'source_module' => 'search', - 'destination_module' => 'search', - ], - 'd6_search_settings' => [ - 'source_module' => 'search', - 'destination_module' => 'search', - ], - 'd7_search_settings' => [ - 'source_module' => 'search', - 'destination_module' => 'search', - ], - 'd7_shortcut' => [ - 'source_module' => 'shortcut', - 'destination_module' => 'shortcut', - ], - 'd7_shortcut_set' => [ - 'source_module' => 'shortcut', - 'destination_module' => 'shortcut', - ], - 'd7_shortcut_set_users' => [ - 'source_module' => 'shortcut', - 'destination_module' => 'shortcut', - ], - 'd6_simpletest_settings' => [ - 'source_module' => 'simpletest', - 'destination_module' => 'simpletest', - ], - 'd7_simpletest_settings' => [ - 'source_module' => 'simpletest', - 'destination_module' => 'simpletest', - ], - 'statistics_settings' => [ - 'source_module' => 'statistics', - 'destination_module' => 'statistics', - ], - 'd6_syslog_settings' => [ - 'source_module' => 'syslog', - 'destination_module' => 'syslog', - ], - 'd7_syslog_settings' => [ - 'source_module' => 'syslog', - 'destination_module' => 'syslog', - ], - 'd6_date_formats' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_system_cron' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_system_date' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_system_file' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'system_image' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'system_image_gd' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'system_logging' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'system_maintenance' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_system_performance' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'system_rss' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'system_site' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd7_system_authorize' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd7_system_cron' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd7_system_date' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd7_system_file' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd7_system_mail' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd7_system_performance' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_menu' => [ - 'source_module' => 'menu', - 'destination_module' => 'system', - ], - 'd7_menu' => [ - 'source_module' => 'menu', - 'destination_module' => 'system', - ], - 'taxonomy_settings' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd6_taxonomy_term' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd6_taxonomy_vocabulary' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd6_term_node' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd6_term_node_revision' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd6_vocabulary_entity_display' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd6_vocabulary_entity_form_display' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd6_vocabulary_field' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd6_vocabulary_field_instance' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd7_taxonomy_term' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'd7_taxonomy_vocabulary' => [ - 'source_module' => 'taxonomy', - 'destination_module' => 'taxonomy', - ], - 'text_settings' => [ - 'source_module' => 'text', - 'destination_module' => 'text', - ], - 'd7_tracker_node' => [ - 'source_module' => 'tracker', - 'destination_module' => 'tracker', - ], - 'd7_tracker_settings' => [ - 'source_module' => 'tracker', - 'destination_module' => 'tracker', - ], - 'd7_tracker_user' => [ - 'source_module' => 'tracker', - 'destination_module' => 'tracker', - ], - 'update_settings' => [ - 'source_module' => 'update', - 'destination_module' => 'update', - ], - 'd6_profile_values' => [ - 'source_module' => 'profile', - 'destination_module' => 'user', - ], - 'd7_theme_settings' => [ - 'source_module' => 'system', - 'destination_module' => 'system', - ], - 'd6_user' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd6_user_contact_settings' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd6_user_mail' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd6_user_picture_file' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd6_user_role' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd6_user_settings' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd7_user' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd7_user_flood' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd7_user_mail' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'd7_user_role' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'user_picture_entity_display' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'user_picture_entity_form_display' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'user_picture_field' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'user_picture_field_instance' => [ - 'source_module' => 'user', - 'destination_module' => 'user', - ], - 'user_profile_entity_display' => [ - 'source_module' => 'profile', - 'destination_module' => 'user', - ], - 'user_profile_entity_form_display' => [ - 'source_module' => 'profile', - 'destination_module' => 'user', - ], - 'user_profile_field' => [ - 'source_module' => 'profile', - 'destination_module' => 'user', - ], - 'user_profile_field_instance' => [ - 'source_module' => 'profile', - 'destination_module' => 'user', - ], - 'd6_i18n_user_profile_field_instance' => [ - 'source_module' => 'i18n', - 'destination_module' => 'user', - ], - ]; - - /** * The state service. * * @var \Drupal\Core\State\StateInterface @@ -701,6 +50,13 @@ class MigrateUpgradeForm extends ConfirmFormBase { protected $pluginManager; /** + * The migration provider service. + * + * @var \Drupal\migrate_drupal_ui\MigrationProviders + */ + protected $migrationProviders; + + /** * Constructs the MigrateUpgradeForm. * * @param \Drupal\Core\State\StateInterface $state @@ -711,12 +67,15 @@ class MigrateUpgradeForm extends ConfirmFormBase { * The renderer service. * @param \Drupal\migrate\Plugin\MigrationPluginManagerInterface $plugin_manager * The migration plugin manager. + * @param \Drupal\migrate_drupal_ui\MigrationProviders $migration_providers + * The migration provider service. */ - public function __construct(StateInterface $state, DateFormatterInterface $date_formatter, RendererInterface $renderer, MigrationPluginManagerInterface $plugin_manager) { + public function __construct(StateInterface $state, DateFormatterInterface $date_formatter, RendererInterface $renderer, MigrationPluginManagerInterface $plugin_manager, MigrationProviders $migration_providers) { $this->state = $state; $this->dateFormatter = $date_formatter; $this->renderer = $renderer; $this->pluginManager = $plugin_manager; + $this->migrationProviders = $migration_providers; } /** @@ -727,7 +86,8 @@ public static function create(ContainerInterface $container) { $container->get('state'), $container->get('date.formatter'), $container->get('renderer'), - $container->get('plugin.manager.migration') + $container->get('plugin.manager.migration'), + $container->get('migrate_drupal_ui.providers') ); } @@ -996,6 +356,7 @@ public function validateCredentialForm(array &$form, FormStateInterface $form_st } // Store the retrieved migration IDs in form storage. + $form_state->set('version', $version); $form_state->set('migrations', $migration_array); $form_state->set('source_base_path', $form_state->getValue('source_base_path')); @@ -1044,26 +405,38 @@ public function buildConfirmForm(array $form, FormStateInterface $form_state) { $form['actions']['submit']['#value'] = $this->t('Perform upgrade'); + $version = $form_state->get('version'); + $migrations = $this->getMigrations('migrate_drupal_' . $version, $version); + $table_data = []; - $system_data = []; - foreach ($form_state->get('migrations') as $migration_id => $migration_label) { - // Fetch the system data at the first opportunity. - if (empty($system_data)) { - $system_data = $form_state->get('system_data'); + foreach ($migrations as $migration) { + $providers = $this->migrationProviders->getProviders($migration); + list($source_module, $destination_module) = $providers; + $migration_id = $migration->getPluginId(); + if (!$source_module) { + drupal_set_message($this->t('Source provider not found for @migration_id.', ['@migration_id' => $migration_id]), 'error'); + } + if (!$destination_module) { + drupal_set_message($this->t('Destination provider not found for @migration_id.', ['@migration_id' => $migration_id]), 'error'); } - // Handle derivatives. - list($migration_id,) = explode(':', $migration_id, 2); - $source_module = $this->moduleUpgradePaths[$migration_id]['source_module']; - $destination_module = $this->moduleUpgradePaths[$migration_id]['destination_module']; - $table_data[$source_module][$destination_module][$migration_id] = $migration_label; + if ($source_module && $destination_module) { + $table_data[$source_module][$destination_module][$migration_id] = $migration->label(); + } } + // Sort the table by source module names and within that destination // module names. ksort($table_data); foreach ($table_data as $source_module => $destination_module_info) { ksort($table_data[$source_module]); } + + $system_data = []; + // Fetch the system data at the first opportunity. + if (empty($system_data)) { + $system_data = $form_state->get('system_data'); + } $unmigrated_source_modules = array_diff_key($system_data['module'], $table_data); // Missing migrations. diff --git a/core/modules/migrate_drupal_ui/src/MigrationProviders.php b/core/modules/migrate_drupal_ui/src/MigrationProviders.php new file mode 100644 index 0000000..4f49122 --- /dev/null +++ b/core/modules/migrate_drupal_ui/src/MigrationProviders.php @@ -0,0 +1,52 @@ +getSourceConfiguration(); + $source_module = (!empty($source_configuration['provider'])) ? $source_configuration['provider'] : NULL; + if (!$source_module) { + // Get the source_provider from the plugin definition. + $plugin_definition = $migration->getSourcePlugin()->getPluginDefinition(); + $source_module = (!empty($plugin_definition['source_provider'])) ? $plugin_definition['source_provider'] : NULL; + } + + // Determine the destination provider, looking in configuration first. + $destination_configuration = $migration->getDestinationConfiguration(); + $destination_module = (!empty($destination_configuration['provider'])) ? $destination_configuration['provider'] : NULL; + if (!$destination_module) { + $destination_plugin = $migration->getDestinationPlugin(); + if ($destination_plugin->getPluginId() == 'config') { + // For configuration destinations pull out the module name from the + // configuration destination string. + $configuration_destination = (!empty($destination_configuration['config_name'])) ? $destination_configuration['config_name'] : NULL; + if ($configuration_destination) { + $destination_module = explode('.', $configuration_destination, 2)[0]; + } + } + else { + // If not a config destination, the destination module is simply + // the provider of the plugin. + $destination_module = $destination_plugin->getPluginDefinition()['provider']; + } + } + return ([$source_module, $destination_module]); + } + +} diff --git a/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php b/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php index b635f2a..47ce989 100644 --- a/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php +++ b/core/modules/migrate_drupal_ui/src/Tests/MigrateUpgradeTestBase.php @@ -39,6 +39,7 @@ 'book', 'forum', 'statistics', + 'provider_test', ]; /** @@ -144,6 +145,29 @@ public function testMigrateUpgrade() { $this->drupalPostForm(NULL, $edits, t('Review upgrade')); $this->assertResponse(200); $this->assertText('Are you sure?'); + // Ensure we get errors about missing providers. + $this->assertText(t('Source provider not found for provider_no_annotation.')); + $this->assertText(t('Source provider not found for provider_test.')); + $this->assertText(t('Destination provider not found for provider_test')); + + // Uninstall the module causing the missing provider error messages. + $this->container->get('module_installer')->uninstall(['provider_test'], TRUE); + + // Restart the upgrade process. + $this->drupalGet('/upgrade'); + $this->assertText('Upgrade a site by importing it into a clean and empty new install of Drupal 8. You will lose any existing configuration once you import your site into it. See the online documentation for Drupal site upgrades for more detailed information.'); + + $this->drupalPostForm(NULL, [], t('Continue')); + $this->assertText('Provide credentials for the database of the Drupal site you want to upgrade.'); + $this->assertFieldByName('mysql[host]'); + + $this->drupalPostForm(NULL, $edits, t('Review upgrade')); + $this->assertResponse(200); + $this->assertText('Are you sure?'); + // Ensure there are no errors about the missing providers. + $this->assertNoText(t('Source provider not found for provider_no_annotation.')); + $this->assertNoText(t('Source provider not found for provider_test.')); + $this->assertNoText(t('Destination provider not found for provider_test')); $this->drupalPostForm(NULL, [], t('Perform upgrade')); $this->assertText(t('Congratulations, you upgraded Drupal!')); diff --git a/core/modules/migrate_drupal_ui/tests/modules/provider_test/migration_templates/provider_no_annotation.yml b/core/modules/migrate_drupal_ui/tests/modules/provider_test/migration_templates/provider_no_annotation.yml new file mode 100644 index 0000000..7cbcec4 --- /dev/null +++ b/core/modules/migrate_drupal_ui/tests/modules/provider_test/migration_templates/provider_no_annotation.yml @@ -0,0 +1,13 @@ +id: provider_no_annotation +label: Missing source annotation +migration_tags: + - Drupal 6 + - Drupal 7 +source: +# Test plugin without a source_provider annotation + plugin: no_source_provider +process: + message: site_offline_message +destination: + plugin: config + config_name: test.settings diff --git a/core/modules/migrate_drupal_ui/tests/modules/provider_test/migration_templates/provider_test.yml b/core/modules/migrate_drupal_ui/tests/modules/provider_test/migration_templates/provider_test.yml new file mode 100644 index 0000000..3bb0d7a --- /dev/null +++ b/core/modules/migrate_drupal_ui/tests/modules/provider_test/migration_templates/provider_test.yml @@ -0,0 +1,16 @@ +id: provider_test +label: Missing source and destination provider +migration_tags: + - Drupal 6 + - Drupal 7 +source: + plugin: variable + variables: + - site_offline_message +# Do not add a provider for the test. +process: + message: site_offline_message +destination: + plugin: config +# An empty config_name will not have a destination provider. + config_name: diff --git a/core/modules/migrate_drupal_ui/tests/modules/provider_test/provider_test.info.yml b/core/modules/migrate_drupal_ui/tests/modules/provider_test/provider_test.info.yml new file mode 100644 index 0000000..8642c6c --- /dev/null +++ b/core/modules/migrate_drupal_ui/tests/modules/provider_test/provider_test.info.yml @@ -0,0 +1,6 @@ +name: 'Provider missing' +type: module +description: 'Add a migration missing a source and destination and a source plugin missing a source provide.' +package: Testing +version: VERSION +core: 8.x diff --git a/core/modules/migrate_drupal_ui/tests/modules/provider_test/src/Plugin/migrate/source/NoSourceProvider.php b/core/modules/migrate_drupal_ui/tests/modules/provider_test/src/Plugin/migrate/source/NoSourceProvider.php new file mode 100644 index 0000000..fc4b2c5 --- /dev/null +++ b/core/modules/migrate_drupal_ui/tests/modules/provider_test/src/Plugin/migrate/source/NoSourceProvider.php @@ -0,0 +1,31 @@ +container->get('module_handler'); + $modules = $this->coreModuleListDataProvider(); + $modules_enabled = $module_handler->getModuleList(); + $modules_to_enable = array_keys(array_diff_key($modules, $modules_enabled)); + $this->enableModules($modules_to_enable); + + /** @var \Drupal\migrate\Plugin\MigrationPluginManager $manager */ + $pluginManager = $this->container->get('plugin.manager.migration'); + $migrationProviders = $this->container->get('migrate_drupal_ui.providers'); + // Get all the migrations + $migrations = $pluginManager->createInstances(array_keys($pluginManager->getDefinitions())); + /** @var \Drupal\migrate\Plugin\Migration $migration */ + foreach ($migrations as $migration) { + $providers = $migrationProviders->getProviders($migration); + list($source_module, $destination_module) = $providers; + $migration_id = $migration->getPluginId(); + if ($migration_id == 'provider_test') { + $this->assertFalse($source_module, new FormattableMarkup('Source provider not found for @migration_id.', ['@migration_id' => $migration_id])); + $this->assertFalse($destination_module, new FormattableMarkup('Destination provider not found for @migration_id.', ['@migration_id' => $migration_id])); + } + elseif ($migration_id == 'provider_no_annotation') { + $this->assertFalse($source_module, new FormattableMarkup('Source provider not found for @migration_id.', ['@migration_id' => $migration_id])); + $this->assertTrue($destination_module, new FormattableMarkup('Destination provider found for @migration_id.', ['@migration_id' => $migration_id])); + } + else { + $this->assertTrue($source_module, new FormattableMarkup('Source provider found for @migration_id.', ['@migration_id' => $migration_id])); + $this->assertTrue($destination_module, new FormattableMarkup('Destination provider found for @migration_id.', ['@migration_id' => $migration_id])); + } + // Destination provider can't be migrate or migrate_drupal or migrate_drupal_ui + $invalid_destinations = ['migrate', 'migrate_drupal', 'migrate_drupal_ui']; + $this->assertNotContains($destination_module, $invalid_destinations, new FormattableMarkup('Invalid destination for @migration_id.', ['@migration_id' => $migration_id])); + } + } + +} diff --git a/core/modules/node/migration_templates/d6_node_settings.yml b/core/modules/node/migration_templates/d6_node_settings.yml index 17b0857..19c680d 100644 --- a/core/modules/node/migration_templates/d6_node_settings.yml +++ b/core/modules/node/migration_templates/d6_node_settings.yml @@ -6,6 +6,7 @@ source: plugin: variable variables: - node_admin_theme + provider: node process: use_admin_theme: node_admin_theme destination: diff --git a/core/modules/node/migration_templates/d7_node_settings.yml b/core/modules/node/migration_templates/d7_node_settings.yml index 0461754..0cf40f8 100644 --- a/core/modules/node/migration_templates/d7_node_settings.yml +++ b/core/modules/node/migration_templates/d7_node_settings.yml @@ -6,6 +6,7 @@ source: plugin: variable variables: - node_admin_theme + provider: node process: use_admin_theme: node_admin_theme destination: diff --git a/core/modules/node/src/Plugin/migrate/source/d6/Node.php b/core/modules/node/src/Plugin/migrate/source/d6/Node.php index ffa2659..0fd9820 100644 --- a/core/modules/node/src/Plugin/migrate/source/d6/Node.php +++ b/core/modules/node/src/Plugin/migrate/source/d6/Node.php @@ -15,7 +15,9 @@ * Drupal 6 node source from database. * * @MigrateSource( - * id = "d6_node" + * id = "d6_node", + * source_provider = "node" + * * ) */ class Node extends DrupalSqlBase { diff --git a/core/modules/node/src/Plugin/migrate/source/d6/NodeRevision.php b/core/modules/node/src/Plugin/migrate/source/d6/NodeRevision.php index f3296c2..814795e 100644 --- a/core/modules/node/src/Plugin/migrate/source/d6/NodeRevision.php +++ b/core/modules/node/src/Plugin/migrate/source/d6/NodeRevision.php @@ -7,7 +7,8 @@ * Drupal 6 node revision source from database. * * @MigrateSource( - * id = "d6_node_revision" + * id = "d6_node_revision", + * source_provider = "node" * ) */ class NodeRevision extends Node { diff --git a/core/modules/node/src/Plugin/migrate/source/d6/NodeType.php b/core/modules/node/src/Plugin/migrate/source/d6/NodeType.php index b5a66ce..2814dbd 100644 --- a/core/modules/node/src/Plugin/migrate/source/d6/NodeType.php +++ b/core/modules/node/src/Plugin/migrate/source/d6/NodeType.php @@ -9,7 +9,8 @@ * Drupal 6 Node types source from database. * * @MigrateSource( - * id = "d6_node_type" + * id = "d6_node_type", + * source_provider = "node" * ) */ class NodeType extends DrupalSqlBase { diff --git a/core/modules/search/migration_templates/d6_search_settings.yml b/core/modules/search/migration_templates/d6_search_settings.yml index 28f8600..cb192b9 100644 --- a/core/modules/search/migration_templates/d6_search_settings.yml +++ b/core/modules/search/migration_templates/d6_search_settings.yml @@ -10,6 +10,7 @@ source: - minimum_word_size - overlap_cjk - search_cron_limit + provider: search process: 'index/minimum_word_size': minimum_word_size 'index/overlap_cjk': overlap_cjk diff --git a/core/modules/search/migration_templates/d7_search_settings.yml b/core/modules/search/migration_templates/d7_search_settings.yml index 57db8b9..7fe2688 100644 --- a/core/modules/search/migration_templates/d7_search_settings.yml +++ b/core/modules/search/migration_templates/d7_search_settings.yml @@ -13,6 +13,7 @@ source: - search_tag_weights - search_and_or_limit - search_default_module + provider: search process: 'index/minimum_word_size': minimum_word_size 'index/overlap_cjk': overlap_cjk diff --git a/core/modules/search/migration_templates/search_page.yml b/core/modules/search/migration_templates/search_page.yml index 8ddc02a..1173ebb 100644 --- a/core/modules/search/migration_templates/search_page.yml +++ b/core/modules/search/migration_templates/search_page.yml @@ -16,6 +16,7 @@ source: id: node_search path: node plugin: node_search + provider: search process: id: 'constants/id' path: 'constants/path' diff --git a/core/modules/simpletest/migration_templates/d6_simpletest_settings.yml b/core/modules/simpletest/migration_templates/d6_simpletest_settings.yml index c9eedbb..e9aad31 100644 --- a/core/modules/simpletest/migration_templates/d6_simpletest_settings.yml +++ b/core/modules/simpletest/migration_templates/d6_simpletest_settings.yml @@ -10,6 +10,7 @@ source: - simpletest_httpauth_password - simpletest_httpauth_username - simpletest_verbose + provider: simpletest process: clear_results: simpletest_clear_results 'httpauth/method': simpletest_httpauth_method diff --git a/core/modules/simpletest/migration_templates/d7_simpletest_settings.yml b/core/modules/simpletest/migration_templates/d7_simpletest_settings.yml index b77f76a..7e185b5 100644 --- a/core/modules/simpletest/migration_templates/d7_simpletest_settings.yml +++ b/core/modules/simpletest/migration_templates/d7_simpletest_settings.yml @@ -10,6 +10,7 @@ source: - simpletest_httpauth_password - simpletest_httpauth_username - simpletest_verbose + provider: simpletest process: clear_results: simpletest_clear_results 'httpauth/method': simpletest_httpauth_method diff --git a/core/modules/statistics/migration_templates/statistics_settings.yml b/core/modules/statistics/migration_templates/statistics_settings.yml index 1f5b5bb..9a010eb 100644 --- a/core/modules/statistics/migration_templates/statistics_settings.yml +++ b/core/modules/statistics/migration_templates/statistics_settings.yml @@ -9,6 +9,7 @@ source: - statistics_enable_access_log - statistics_flush_accesslog_timer - statistics_count_content_views + provider: statistics process: 'count_content_views': statistics_count_content_views destination: diff --git a/core/modules/syslog/migration_templates/d6_syslog_settings.yml b/core/modules/syslog/migration_templates/d6_syslog_settings.yml index 86a7017..8b0ea22 100644 --- a/core/modules/syslog/migration_templates/d6_syslog_settings.yml +++ b/core/modules/syslog/migration_templates/d6_syslog_settings.yml @@ -7,6 +7,7 @@ source: variables: - syslog_identity - syslog_facility + provider: syslog process: identity: syslog_identity facility: syslog_facility diff --git a/core/modules/syslog/migration_templates/d7_syslog_settings.yml b/core/modules/syslog/migration_templates/d7_syslog_settings.yml index 4000572..5b60d73 100644 --- a/core/modules/syslog/migration_templates/d7_syslog_settings.yml +++ b/core/modules/syslog/migration_templates/d7_syslog_settings.yml @@ -8,6 +8,7 @@ source: - syslog_facility - syslog_format - syslog_identity + provider: syslog process: facility: syslog_facility format: syslog_format diff --git a/core/modules/system/migration_templates/d6_date_formats.yml b/core/modules/system/migration_templates/d6_date_formats.yml index 71257d4..a90f80b 100644 --- a/core/modules/system/migration_templates/d6_date_formats.yml +++ b/core/modules/system/migration_templates/d6_date_formats.yml @@ -8,6 +8,7 @@ source: - date_format_long - date_format_medium - date_format_short + provider: system process: id: plugin: static_map diff --git a/core/modules/system/migration_templates/d6_system_cron.yml b/core/modules/system/migration_templates/d6_system_cron.yml index 7dd3a2b..840d932 100644 --- a/core/modules/system/migration_templates/d6_system_cron.yml +++ b/core/modules/system/migration_templates/d6_system_cron.yml @@ -8,6 +8,7 @@ source: - cron_threshold_warning - cron_threshold_error - cron_last + provider: system process: 'threshold/requirements_warning': cron_threshold_warning 'threshold/requirements_error': cron_threshold_error diff --git a/core/modules/system/migration_templates/d6_system_date.yml b/core/modules/system/migration_templates/d6_system_date.yml index 25f6728..5240716 100644 --- a/core/modules/system/migration_templates/d6_system_date.yml +++ b/core/modules/system/migration_templates/d6_system_date.yml @@ -8,6 +8,7 @@ source: - configurable_timezones - date_first_day - date_default_timezone + provider: system process: 'timezone/user/configurable': configurable_timezones first_day: date_first_day diff --git a/core/modules/system/migration_templates/d6_system_file.yml b/core/modules/system/migration_templates/d6_system_file.yml index 60cd616..fc0b8d5 100644 --- a/core/modules/system/migration_templates/d6_system_file.yml +++ b/core/modules/system/migration_templates/d6_system_file.yml @@ -7,6 +7,7 @@ source: variables: - file_directory_temp - allow_insecure_uploads + provider: system process: 'path/temporary': file_directory_temp allow_insecure_uploads: diff --git a/core/modules/system/migration_templates/d6_system_performance.yml b/core/modules/system/migration_templates/d6_system_performance.yml index 6f9666e..f1d81c6 100644 --- a/core/modules/system/migration_templates/d6_system_performance.yml +++ b/core/modules/system/migration_templates/d6_system_performance.yml @@ -10,6 +10,7 @@ source: - cache_lifetime - cache - page_compression + provider: system process: 'css/preprocess': preprocess_css 'js/preprocess': preprocess_js diff --git a/core/modules/system/migration_templates/d7_global_theme_settings.yml b/core/modules/system/migration_templates/d7_global_theme_settings.yml index 42c5177..cc7e354 100644 --- a/core/modules/system/migration_templates/d7_global_theme_settings.yml +++ b/core/modules/system/migration_templates/d7_global_theme_settings.yml @@ -6,6 +6,7 @@ source: plugin: variable variables: - theme_settings + provider: system process: 'features/logo': theme_settings/toggle_logo 'features/name': theme_settings/toggle_name diff --git a/core/modules/system/migration_templates/d7_system_authorize.yml b/core/modules/system/migration_templates/d7_system_authorize.yml index 420497b..a0ef270 100644 --- a/core/modules/system/migration_templates/d7_system_authorize.yml +++ b/core/modules/system/migration_templates/d7_system_authorize.yml @@ -5,6 +5,7 @@ source: plugin: variable variables: - authorize_filetransfer_default + provider: system process: filetransfer_default: authorize_filetransfer_default destination: diff --git a/core/modules/system/migration_templates/d7_system_cron.yml b/core/modules/system/migration_templates/d7_system_cron.yml index a603af3..4f820ea 100644 --- a/core/modules/system/migration_templates/d7_system_cron.yml +++ b/core/modules/system/migration_templates/d7_system_cron.yml @@ -7,6 +7,7 @@ source: variables: - cron_threshold_warning - cron_threshold_error + provider: system process: 'threshold/requirements_warning': cron_threshold_warning 'threshold/requirements_error': cron_threshold_error diff --git a/core/modules/system/migration_templates/d7_system_date.yml b/core/modules/system/migration_templates/d7_system_date.yml index b380c89..382e054 100644 --- a/core/modules/system/migration_templates/d7_system_date.yml +++ b/core/modules/system/migration_templates/d7_system_date.yml @@ -10,6 +10,7 @@ source: - configurable_timezones - empty_timezone_message - user_default_timezone + provider: system process: 'country/default': site_default_country first_day: date_first_day diff --git a/core/modules/system/migration_templates/d7_system_file.yml b/core/modules/system/migration_templates/d7_system_file.yml index 2295e0e..3e6cb59 100644 --- a/core/modules/system/migration_templates/d7_system_file.yml +++ b/core/modules/system/migration_templates/d7_system_file.yml @@ -7,6 +7,7 @@ source: variables: - allow_insecure_uploads - file_temporary_path + provider: system process: allow_insecure_uploads: plugin: static_map diff --git a/core/modules/system/migration_templates/d7_system_mail.yml b/core/modules/system/migration_templates/d7_system_mail.yml index d4a569c..c6d46b4 100644 --- a/core/modules/system/migration_templates/d7_system_mail.yml +++ b/core/modules/system/migration_templates/d7_system_mail.yml @@ -5,6 +5,7 @@ source: plugin: variable variables: - mail_system + provider: system process: 'interface/default': plugin: static_map diff --git a/core/modules/system/migration_templates/d7_system_performance.yml b/core/modules/system/migration_templates/d7_system_performance.yml index b41d75e..e658172 100644 --- a/core/modules/system/migration_templates/d7_system_performance.yml +++ b/core/modules/system/migration_templates/d7_system_performance.yml @@ -9,6 +9,7 @@ source: - preprocess_js - cache_lifetime - page_compression + provider: system process: 'css/preprocess': preprocess_css 'js/preprocess': preprocess_js diff --git a/core/modules/system/migration_templates/d7_theme_settings.yml b/core/modules/system/migration_templates/d7_theme_settings.yml index 09f5fe1..5adf735 100644 --- a/core/modules/system/migration_templates/d7_theme_settings.yml +++ b/core/modules/system/migration_templates/d7_theme_settings.yml @@ -6,6 +6,7 @@ source: plugin: d7_theme_settings constants: config_suffix: '.settings' + provider: system process: # Build the configuration name from the variable name, i.e. # theme_bartik_settings becomes bartik.settings. diff --git a/core/modules/system/migration_templates/system_image.yml b/core/modules/system/migration_templates/system_image.yml index 7bb16b1..4ab33fb 100644 --- a/core/modules/system/migration_templates/system_image.yml +++ b/core/modules/system/migration_templates/system_image.yml @@ -7,6 +7,7 @@ source: plugin: variable variables: - image_toolkit + provider: system process: toolkit: image_toolkit destination: diff --git a/core/modules/system/migration_templates/system_image_gd.yml b/core/modules/system/migration_templates/system_image_gd.yml index 685116e..4c433a2 100644 --- a/core/modules/system/migration_templates/system_image_gd.yml +++ b/core/modules/system/migration_templates/system_image_gd.yml @@ -7,6 +7,7 @@ source: plugin: variable variables: - image_jpeg_quality + provider: system process: jpeg_quality: image_jpeg_quality destination: diff --git a/core/modules/system/migration_templates/system_logging.yml b/core/modules/system/migration_templates/system_logging.yml index c1e8114..5bacd44 100644 --- a/core/modules/system/migration_templates/system_logging.yml +++ b/core/modules/system/migration_templates/system_logging.yml @@ -7,6 +7,7 @@ source: plugin: variable variables: - error_level + provider: system process: error_level: plugin: static_map diff --git a/core/modules/system/migration_templates/system_maintenance.yml b/core/modules/system/migration_templates/system_maintenance.yml index b9f6c34..5e5a11c 100644 --- a/core/modules/system/migration_templates/system_maintenance.yml +++ b/core/modules/system/migration_templates/system_maintenance.yml @@ -7,6 +7,7 @@ source: plugin: variable variables: - site_offline_message + provider: system process: message: site_offline_message destination: diff --git a/core/modules/system/migration_templates/system_rss.yml b/core/modules/system/migration_templates/system_rss.yml index 92ce45a..20d15aa 100644 --- a/core/modules/system/migration_templates/system_rss.yml +++ b/core/modules/system/migration_templates/system_rss.yml @@ -8,6 +8,7 @@ source: variables: - feed_default_items - feed_item_length + provider: system process: 'items/limit': feed_default_items 'items/view_mode': feed_item_length diff --git a/core/modules/system/migration_templates/system_site.yml b/core/modules/system/migration_templates/system_site.yml index c8fd849..e314ecb 100644 --- a/core/modules/system/migration_templates/system_site.yml +++ b/core/modules/system/migration_templates/system_site.yml @@ -16,6 +16,7 @@ source: - site_404 - drupal_weight_select_max - admin_compact_mode + provider: system process: name: site_name mail: site_mail diff --git a/core/modules/taxonomy/migration_templates/taxonomy_settings.yml b/core/modules/taxonomy/migration_templates/taxonomy_settings.yml index c20372c..cab3669 100644 --- a/core/modules/taxonomy/migration_templates/taxonomy_settings.yml +++ b/core/modules/taxonomy/migration_templates/taxonomy_settings.yml @@ -8,6 +8,7 @@ source: variables: - taxonomy_override_selector - taxonomy_terms_per_page_admin + provider: taxonomy process: override_selector: taxonomy_override_selector terms_per_page_admin: taxonomy_terms_per_page_admin diff --git a/core/modules/taxonomy/src/Plugin/migrate/source/d6/TermNodeRevision.php b/core/modules/taxonomy/src/Plugin/migrate/source/d6/TermNodeRevision.php index 91c133b..9c4669f 100644 --- a/core/modules/taxonomy/src/Plugin/migrate/source/d6/TermNodeRevision.php +++ b/core/modules/taxonomy/src/Plugin/migrate/source/d6/TermNodeRevision.php @@ -6,7 +6,8 @@ * Source returning tids from the term_node table for the non-current revision. * * @MigrateSource( - * id = "d6_term_node_revision" + * id = "d6_term_node_revision", + * source_provider = "taxonomy" * ) */ class TermNodeRevision extends TermNode { diff --git a/core/modules/text/migration_templates/text_settings.yml b/core/modules/text/migration_templates/text_settings.yml index 45d426d..e17c4d6 100644 --- a/core/modules/text/migration_templates/text_settings.yml +++ b/core/modules/text/migration_templates/text_settings.yml @@ -7,6 +7,7 @@ source: plugin: variable variables: - teaser_length + provider: text process: default_summary_length: teaser_length destination: diff --git a/core/modules/tracker/migration_templates/d7_tracker_settings.yml b/core/modules/tracker/migration_templates/d7_tracker_settings.yml index ce06cbd..beb0143 100644 --- a/core/modules/tracker/migration_templates/d7_tracker_settings.yml +++ b/core/modules/tracker/migration_templates/d7_tracker_settings.yml @@ -6,6 +6,7 @@ source: plugin: variable variables: - tracker_batch_size + provider: tracker process: cron_index_limit: tracker_batch_size destination: diff --git a/core/modules/update/migration_templates/update_settings.yml b/core/modules/update/migration_templates/update_settings.yml index ad22472..ae9e8f1 100644 --- a/core/modules/update/migration_templates/update_settings.yml +++ b/core/modules/update/migration_templates/update_settings.yml @@ -11,6 +11,7 @@ source: - update_notification_threshold - update_notify_emails - update_check_frequency + provider: update process: 'fetch/max_attempts': update_max_fetch_attempts 'fetch/url': update_fetch_url diff --git a/core/modules/user/migration_templates/d6_user_mail.yml b/core/modules/user/migration_templates/d6_user_mail.yml index b06b6ea..2c15e96 100644 --- a/core/modules/user/migration_templates/d6_user_mail.yml +++ b/core/modules/user/migration_templates/d6_user_mail.yml @@ -19,6 +19,7 @@ source: - user_mail_register_pending_approval_body - user_mail_status_blocked_subject - user_mail_status_blocked_body + provider: user process: 'status_activated/subject': plugin: convert_tokens diff --git a/core/modules/user/migration_templates/d6_user_settings.yml b/core/modules/user/migration_templates/d6_user_settings.yml index 6e25ece..b85deb3 100644 --- a/core/modules/user/migration_templates/d6_user_settings.yml +++ b/core/modules/user/migration_templates/d6_user_settings.yml @@ -10,6 +10,7 @@ source: - user_email_verification - user_register - anonymous + provider: user process: 'notify/status_blocked': user_mail_status_blocked_notify 'notify/status_activated': user_mail_status_activated_notify diff --git a/core/modules/user/migration_templates/d7_user_flood.yml b/core/modules/user/migration_templates/d7_user_flood.yml index ae00ce0..8c62e26 100644 --- a/core/modules/user/migration_templates/d7_user_flood.yml +++ b/core/modules/user/migration_templates/d7_user_flood.yml @@ -10,6 +10,7 @@ source: - user_failed_login_ip_window - user_failed_login_user_window - user_failed_login_user_limit + provider: user process: uid_only: user_failed_login_identifier_uid_only ip_limit: user_failed_login_ip_limit diff --git a/core/modules/user/migration_templates/d7_user_mail.yml b/core/modules/user/migration_templates/d7_user_mail.yml index 0c5e74c..b52626c 100644 --- a/core/modules/user/migration_templates/d7_user_mail.yml +++ b/core/modules/user/migration_templates/d7_user_mail.yml @@ -19,6 +19,7 @@ source: - user_mail_register_pending_approval_body - user_mail_status_blocked_subject - user_mail_status_blocked_body + provider: user process: 'status_activated/subject': user_mail_status_activated_subject 'status_activated/body': user_mail_status_activated_body diff --git a/core/modules/user/migration_templates/d7_user_role.yml b/core/modules/user/migration_templates/d7_user_role.yml index 5f88757..a7055ee 100644 --- a/core/modules/user/migration_templates/d7_user_role.yml +++ b/core/modules/user/migration_templates/d7_user_role.yml @@ -4,6 +4,7 @@ migration_tags: - Drupal 7 source: plugin: d7_user_role + provider: user process: id: - diff --git a/core/modules/user/migration_templates/user_picture_entity_display.yml b/core/modules/user/migration_templates/user_picture_entity_display.yml index 3f404d6..e7edeaf 100644 --- a/core/modules/user/migration_templates/user_picture_entity_display.yml +++ b/core/modules/user/migration_templates/user_picture_entity_display.yml @@ -16,6 +16,7 @@ source: settings: image_style: '' image_link: content + provider: user process: entity_type: 'constants/entity_type' bundle: 'constants/bundle' diff --git a/core/modules/user/migration_templates/user_picture_entity_form_display.yml b/core/modules/user/migration_templates/user_picture_entity_form_display.yml index 4d0f8bc..fadddf1 100644 --- a/core/modules/user/migration_templates/user_picture_entity_form_display.yml +++ b/core/modules/user/migration_templates/user_picture_entity_form_display.yml @@ -15,6 +15,7 @@ source: settings: progress_indicator: throbber preview_image_style: thumbnail + provider: user process: entity_type: 'constants/entity_type' bundle: 'constants/bundle' diff --git a/core/modules/user/migration_templates/user_picture_field.yml b/core/modules/user/migration_templates/user_picture_field.yml index ff8bd82..de4226b 100644 --- a/core/modules/user/migration_templates/user_picture_field.yml +++ b/core/modules/user/migration_templates/user_picture_field.yml @@ -12,6 +12,7 @@ source: type: image name: user_picture cardinality: 1 + provider: user process: entity_type: 'constants/entity_type' field_name: 'constants/name' diff --git a/core/modules/user/migration_templates/user_picture_field_instance.yml b/core/modules/user/migration_templates/user_picture_field_instance.yml index 4332e09..a5e27a1 100644 --- a/core/modules/user/migration_templates/user_picture_field_instance.yml +++ b/core/modules/user/migration_templates/user_picture_field_instance.yml @@ -16,6 +16,7 @@ source: min_resolution: '' alt_field_required: false title_field_required: false + provider: user process: entity_type: 'constants/entity_type' bundle: 'constants/bundle' diff --git a/core/modules/user/migration_templates/user_profile_entity_display.yml b/core/modules/user/migration_templates/user_profile_entity_display.yml index f4353dd..160b990 100644 --- a/core/modules/user/migration_templates/user_profile_entity_display.yml +++ b/core/modules/user/migration_templates/user_profile_entity_display.yml @@ -39,6 +39,7 @@ process: 4: true # PROFILE_HIDDEN destination: plugin: component_entity_display + provider: user migration_dependencies: required: - user_profile_field_instance diff --git a/core/modules/user/src/Plugin/migrate/source/d6/Role.php b/core/modules/user/src/Plugin/migrate/source/d6/Role.php index 82ad3e9..1286a30 100644 --- a/core/modules/user/src/Plugin/migrate/source/d6/Role.php +++ b/core/modules/user/src/Plugin/migrate/source/d6/Role.php @@ -9,7 +9,8 @@ * Drupal 6 role source from database. * * @MigrateSource( - * id = "d6_user_role" + * id = "d6_user_role", + * source_provider = "user" * ) */ class Role extends DrupalSqlBase { diff --git a/core/modules/user/src/Plugin/migrate/source/d6/User.php b/core/modules/user/src/Plugin/migrate/source/d6/User.php index c8e9d19..33ac374 100644 --- a/core/modules/user/src/Plugin/migrate/source/d6/User.php +++ b/core/modules/user/src/Plugin/migrate/source/d6/User.php @@ -9,7 +9,8 @@ * Drupal 6 user source from database. * * @MigrateSource( - * id = "d6_user" + * id = "d6_user", + * source_provider = "user" * ) */ class User extends DrupalSqlBase { diff --git a/core/modules/user/src/Plugin/migrate/source/d6/UserPicture.php b/core/modules/user/src/Plugin/migrate/source/d6/UserPicture.php index 6b16ad4..544f9af 100644 --- a/core/modules/user/src/Plugin/migrate/source/d6/UserPicture.php +++ b/core/modules/user/src/Plugin/migrate/source/d6/UserPicture.php @@ -10,7 +10,8 @@ * @todo Support default picture? * * @MigrateSource( - * id = "d6_user_picture" + * id = "d6_user_picture", + * source_provider = "user" * ) */ class UserPicture extends DrupalSqlBase { diff --git a/core/modules/user/src/Plugin/migrate/source/d6/UserPictureFile.php b/core/modules/user/src/Plugin/migrate/source/d6/UserPictureFile.php index 8952ffd..c279a7e 100644 --- a/core/modules/user/src/Plugin/migrate/source/d6/UserPictureFile.php +++ b/core/modules/user/src/Plugin/migrate/source/d6/UserPictureFile.php @@ -9,7 +9,8 @@ * Drupal 6 user picture source from database. * * @MigrateSource( - * id = "d6_user_picture_file" + * id = "d6_user_picture_file", + * source_provider = "user" * ) */ class UserPictureFile extends DrupalSqlBase { diff --git a/core/modules/user/src/Plugin/migrate/source/d7/User.php b/core/modules/user/src/Plugin/migrate/source/d7/User.php index 408d998..97ddef8 100644 --- a/core/modules/user/src/Plugin/migrate/source/d7/User.php +++ b/core/modules/user/src/Plugin/migrate/source/d7/User.php @@ -9,7 +9,8 @@ * Drupal 7 user source from database. * * @MigrateSource( - * id = "d7_user" + * id = "d7_user", + * source_provider = "user" * ) */ class User extends FieldableEntity {