public WritingApplicationStartEvent(ApplicationId appId, ApplicationStartData appStart
                                     )
     : base(WritingHistoryEventType.AppStart)
 {
     this.appId    = appId;
     this.appStart = appStart;
 }
 /// <exception cref="System.IO.IOException"/>
 public virtual ApplicationHistoryData GetApplication(ApplicationId appId)
 {
     FileSystemApplicationHistoryStore.HistoryFileReader hfReader = GetHistoryFileReader
                                                                        (appId);
     try
     {
         bool readStartData  = false;
         bool readFinishData = false;
         ApplicationHistoryData historyData = ApplicationHistoryData.NewInstance(appId, null
                                                                                 , null, null, null, long.MinValue, long.MinValue, long.MaxValue, null, FinalApplicationStatus
                                                                                 .Undefined, null);
         while ((!readStartData || !readFinishData) && hfReader.HasNext())
         {
             FileSystemApplicationHistoryStore.HistoryFileReader.Entry entry = hfReader.Next();
             if (entry.key.id.Equals(appId.ToString()))
             {
                 if (entry.key.suffix.Equals(StartDataSuffix))
                 {
                     ApplicationStartData startData = ParseApplicationStartData(entry.value);
                     MergeApplicationHistoryData(historyData, startData);
                     readStartData = true;
                 }
                 else
                 {
                     if (entry.key.suffix.Equals(FinishDataSuffix))
                     {
                         ApplicationFinishData finishData = ParseApplicationFinishData(entry.value);
                         MergeApplicationHistoryData(historyData, finishData);
                         readFinishData = true;
                     }
                 }
             }
         }
         if (!readStartData && !readFinishData)
         {
             return(null);
         }
         if (!readStartData)
         {
             Log.Warn("Start information is missing for application " + appId);
         }
         if (!readFinishData)
         {
             Log.Warn("Finish information is missing for application " + appId);
         }
         Log.Info("Completed reading history information of application " + appId);
         return(historyData);
     }
     catch (IOException e)
     {
         Log.Error("Error when reading history file of application " + appId, e);
         throw;
     }
     finally
     {
         hfReader.Close();
     }
 }
 private static void MergeApplicationHistoryData(ApplicationHistoryData historyData
                                                 , ApplicationStartData startData)
 {
     historyData.SetApplicationName(startData.GetApplicationName());
     historyData.SetApplicationType(startData.GetApplicationType());
     historyData.SetQueue(startData.GetQueue());
     historyData.SetUser(startData.GetUser());
     historyData.SetSubmitTime(startData.GetSubmitTime());
     historyData.SetStartTime(startData.GetStartTime());
 }
        /// <exception cref="System.IO.IOException"/>
        public virtual void ApplicationStarted(ApplicationStartData appStart)
        {
            ApplicationHistoryData oldData = applicationData.PutIfAbsent(appStart.GetApplicationId
                                                                             (), ApplicationHistoryData.NewInstance(appStart.GetApplicationId(), appStart.GetApplicationName
                                                                                                                        (), appStart.GetApplicationType(), appStart.GetQueue(), appStart.GetUser(), appStart
                                                                                                                    .GetSubmitTime(), appStart.GetStartTime(), long.MaxValue, null, null, null));

            if (oldData != null)
            {
                throw new IOException("The start information of application " + appStart.GetApplicationId
                                          () + " is already stored.");
            }
        }
 /// <exception cref="System.IO.IOException"/>
 public virtual void ApplicationStarted(ApplicationStartData appStart)
 {
     FileSystemApplicationHistoryStore.HistoryFileWriter hfWriter = outstandingWriters
                                                                    [appStart.GetApplicationId()];
     if (hfWriter == null)
     {
         Path applicationHistoryFile = new Path(rootDirPath, appStart.GetApplicationId().ToString
                                                    ());
         try
         {
             hfWriter = new FileSystemApplicationHistoryStore.HistoryFileWriter(this, applicationHistoryFile
                                                                                );
             Log.Info("Opened history file of application " + appStart.GetApplicationId());
         }
         catch (IOException e)
         {
             Log.Error("Error when openning history file of application " + appStart.GetApplicationId
                           (), e);
             throw;
         }
         outstandingWriters[appStart.GetApplicationId()] = hfWriter;
     }
     else
     {
         throw new IOException("History file of application " + appStart.GetApplicationId(
                                   ) + " is already opened");
     }
     System.Diagnostics.Debug.Assert(appStart is ApplicationStartDataPBImpl);
     try
     {
         hfWriter.WriteHistoryData(new FileSystemApplicationHistoryStore.HistoryDataKey(appStart
                                                                                        .GetApplicationId().ToString(), StartDataSuffix), ((ApplicationStartDataPBImpl)appStart
                                                                                                                                           ).GetProto().ToByteArray());
         Log.Info("Start information of application " + appStart.GetApplicationId() + " is written"
                  );
     }
     catch (IOException e)
     {
         Log.Error("Error when writing start information of application " + appStart.GetApplicationId
                       (), e);
         throw;
     }
 }
 /// <exception cref="System.IO.IOException"/>
 public virtual void ApplicationStarted(ApplicationStartData appStart)
 {
 }
 public virtual void ApplicationStarted(RMApp app)
 {
     if (historyServiceEnabled)
     {
         dispatcher.GetEventHandler().Handle(new WritingApplicationStartEvent(app.GetApplicationId
                                                                                  (), ApplicationStartData.NewInstance(app.GetApplicationId(), app.GetName(), app.
                                                                                                                       GetApplicationType(), app.GetQueue(), app.GetUser(), app.GetSubmitTime(), app.GetStartTime
                                                                                                                           ())));
     }
 }
 /// <exception cref="System.IO.IOException"/>
 protected internal virtual void WriteApplicationStartData(ApplicationId appId)
 {
     store.ApplicationStarted(ApplicationStartData.NewInstance(appId, appId.ToString()
                                                               , "test type", "test queue", "test user", 0, 0));
 }