All Downloads are FREE. Search and download functionalities are using the official Maven repository.

prerna.reactor.ReconnectServer Maven / Gradle / Ivy

The newest version!
package prerna.reactor;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import prerna.auth.User;
import prerna.om.ClientProcessWrapper;
import prerna.sablecc2.om.PixelDataType;
import prerna.sablecc2.om.nounmeta.NounMetadata;
import prerna.tcp.client.SocketClient;
import prerna.util.Constants;

public class ReconnectServer extends AbstractReactor {

	private static Logger classLogger = LogManager.getLogger(ReconnectServer.class);

	public ReconnectServer() {
		this.keysToGet = new String[] {};
	}

	public NounMetadata execute() {
		User user = this.insight.getUser();
		if(user == null) {
			return NounMetadata.getErrorNounMessage("Cannot restart server. User not valid");
		}
		// sadly, the logic right now requires we have a made cpw
		// otherwise the reconnect method does nto 
		ClientProcessWrapper cpw = user.getClientProcessWrapper();
		if(cpw == null || cpw.getSocketClient() == null) {
			user.getSocketClient(true);
			return new NounMetadata("TCP Server was not initialized but is now started and connected", PixelDataType.CONST_STRING);
		}
		cpw.shutdown(false);
		try {
			cpw.reconnect();
		} catch (Exception e) {
			classLogger.error(Constants.STACKTRACE, e);
			return new NounMetadata("Unable to restart TCP Server", PixelDataType.CONST_STRING);
		}
		SocketClient client = user.getSocketClient(false);
		if(client == null || !client.isConnected()) {
			return new NounMetadata("Unable to restart TCP Server", PixelDataType.CONST_STRING);
		}

		return new NounMetadata("TCP Server available and connected", PixelDataType.CONST_STRING);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy