/// <summary>
 /// This method is used by Java object deserialization, to fill in the
 /// transient
 /// <see cref="trackingUriPlugins"/>
 /// field.
 /// See
 /// <see cref="System.IO.ObjectInputStream.DefaultReadObject()"/>
 /// <p>
 /// <I>Do not remove</I>
 /// <p>
 /// Yarn isn't currently serializing this class, but findbugs
 /// complains in its absence.
 /// </summary>
 /// <param name="input">source</param>
 /// <exception cref="System.IO.IOException">IO failure</exception>
 /// <exception cref="System.TypeLoadException">classloader fun</exception>
 private void ReadObject(ObjectInputStream input)
 {
     input.DefaultReadObject();
     conf = new YarnConfiguration();
     this.trackingUriPlugins = conf.GetInstances <TrackingUriPlugin>(YarnConfiguration.
                                                                     YarnTrackingUrlGenerator);
 }
 /// <summary>Default constructor</summary>
 public WebAppProxyServlet()
     : base()
 {
     conf = new YarnConfiguration();
     this.trackingUriPlugins = conf.GetInstances <TrackingUriPlugin>(YarnConfiguration.
                                                                     YarnTrackingUrlGenerator);
     this.rmAppPageUrlBase = StringHelper.Pjoin(WebAppUtils.GetResolvedRMWebAppURLWithScheme
                                                    (conf), "cluster", "app");
     this.ahsAppPageUrlBase = StringHelper.Pjoin(WebAppUtils.GetHttpSchemePrefix(conf)
                                                 + WebAppUtils.GetAHSWebAppURLWithoutScheme(conf), "applicationhistory", "apps");
 }