How can I migrate URL fields to link fields? I have run migration using drush migrate-upgrade by setting up Drupal 7 used module in Drupal 8 site and DB path etc. But one  of my content type use field https://www.drupal.org/project/url but now link field is in Drupa 8 and version of this module is not available in Drupal 8. 

In support I have gone thorugh https://www.drupal.org/project/url/issues/1778224 but didn't helped much. 

How I can transfer data along with revisions data related to this field and create/migrate similar field in Drupal 8 content type (rest of fields got migrated in 8 from 7)?
Have to create solution based on https://www.drupal.org/docs/8/api/migrate-api/writing-migrations-for-contributed-and-custom-modules#field-migrations



&lt;?php

namespace Drupal\custom_url_migrate\plugin\migrate\field;

use Drupal\migrate\Plugin\MigrationInterface;
use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;

/**
 * @MigrateField(
 * id = "url",
 * core = {7},
 * type_map = {
 * "url" = "link"
 * },
 * source_module = "url",
 * destination_module = "link"
 * )
 */
class url extends FieldPluginBase {

  /**
   * {@inheritdoc}
   */
  public function getFieldWidgetMap() {
    return [
      'url' =&gt; 'link',
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function getFieldFormatterMap() {
    return [
     //'default' =&gt; 'link',
      //'url' =&gt; 'link',
      'url_external' =&gt; 'link',
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function processFieldValues(MigrationInterface $migration, $field_name, $data) {
    $process = [
      'plugin' =&gt; 'sub_process',
      'source' =&gt; $field_name,
      'process' =&gt; [
        'uri' =&gt; 'value',
      ],
    ];
    $migration-&gt;setProcessOfProperty($field_name, $process);
  }

}