import org.seleniumhq.jetty7.util.BlockingArrayQueue;


public class AppFinalizer implements Runnable {

	private iTunesConnectInterface iTunes;
	private BlockingArrayQueue<AppData> receiver;
	
	public AppFinalizer( iTunesConnectInterface iTunes, BlockingArrayQueue<AppData>receiver)
	{
		this.iTunes = iTunes;
		this.receiver = receiver;
	}
	
	private void publishBuild( AppData data )
	{
		try
		{
			String url = iTunes.findApp( data.getId() );
			iTunes.publishBuild( data.getShortVersion(), url );
			AppserveRecorder.recordBuildCompleted( data.getNumericId() );//data.getNumericId() );
		} catch (Exception e)
		{
			SendMailTLS.mail( "App Finalize Failed", "Failed to finish setup for"+data.toString()+"\nError:\n"+e.getMessage()+"\n"+e.getStackTrace() );
		}
	}

	@Override
	public void run() {
		AppData data;
		try {
			while (true)
			{
				data = receiver.take();
				//timer.start("Build-submit");
				this.publishBuild( data );
			}
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
