/// <summary>
 /// Initializes a new instance of the <see cref="PluginExecutionData" /> class.
 /// </summary>
 /// <param name="metadata">An <see cref="XElement" /> containing plugin-specific XML metadata.</param>
 /// <param name="metadataVersion">The plugin-defined schema version of the XML metadata.</param>
 /// <param name="assets">The assets available for this plugin execution.</param>
 /// <param name="documents">The documents available for this plugin execution.</param>
 /// <param name="servers">The servers available for this plugin execution.</param>
 /// <param name="printQueues">The print queues available for this plugin execution.</param>
 /// <param name="environment">Information about the plugin execution environment.</param>
 /// <param name="context">Contextual/environmental information about this plugin execution.</param>
 /// <param name="retrySettings">Retry configuration for this plugin execution.</param>
 /// <param name="externalCredentials">External credentials used by this plugin execution.</param>
 /// <exception cref="ArgumentNullException"><paramref name="metadata" /> is null.</exception>
 public PluginExecutionData(XElement metadata, string metadataVersion, AssetInfoCollection assets, DocumentCollection documents, ServerInfoCollection servers, PrintQueueInfoCollection printQueues,
                            PluginEnvironment environment, PluginExecutionContext context, PluginRetrySettingDictionary retrySettings, ExternalCredentialInfoCollection externalCredentials)
     : base(metadata, metadataVersion)
 {
     _assets              = assets;
     _documents           = documents;
     _servers             = servers;
     _printQueues         = printQueues;
     _environment         = environment;
     _context             = context;
     _credential          = new Lazy <NetworkCredential>(CreateCredential);
     _retrySettings       = retrySettings;
     _externalCredentials = externalCredentials;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="PluginExecutionData" /> class.
 /// </summary>
 /// <param name="metadata">An <see cref="XElement" /> containing plugin-specific XML metadata.</param>
 /// <param name="metadataVersion">The plugin-defined schema version of the XML metadata.</param>
 /// <param name="assets">The assets available for this plugin execution.</param>
 /// <param name="documents">The documents available for this plugin execution.</param>
 /// <param name="servers">The servers available for this plugin execution.</param>
 /// <param name="printQueues">The print queues available for this plugin execution.</param>
 /// <param name="environment">Information about the plugin execution environment.</param>
 /// <param name="context">Contextual/environmental information about this plugin execution.</param>
 /// <param name="retrySettings">Retry configuration for this plugin execution.</param>
 /// <exception cref="ArgumentNullException"><paramref name="metadata" /> is null.</exception>
 public PluginExecutionData(XElement metadata, string metadataVersion, AssetInfoCollection assets, DocumentCollection documents, ServerInfoCollection servers, PrintQueueInfoCollection printQueues,
                            PluginEnvironment environment, PluginExecutionContext context, PluginRetrySettingDictionary retrySettings)
     : this(metadata, metadataVersion, assets, documents, servers, printQueues, environment, context, retrySettings, new ExternalCredentialInfoCollection(new List <ExternalCredentialInfo>()))
 {
 }