/** (C) Copyright 2011-2014 Chiral Behaviors, All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hellblazer.process;
import java.io.File;
import java.io.IOException;
import java.net.ConnectException;
import java.util.List;
import javax.management.MBeanServerConnection;
import javax.management.remote.JMXConnector;
import javax.security.auth.Subject;
/**
* @author Hal Hildebrand
*
*/
public interface JavaProcess extends ManagedProcess {
void addArgument(String argument);
void addArguments(String[] arguments);
void addVmOption(String vmOption);
void addVmOptions(String[] vmOptions);
/**
* @return the List of arguments to the Java program
*/
List<String> getArguments();
File getJarFile();
String getJavaClass();
/**
* @return the File which points to the Java executable
*/
File getJavaExecutable();
JMXConnector getLocalJmxConnector(String connectionName) throws ConnectException,
NoLocalJmxConnectionException;
MBeanServerConnection getLocalMBeanServerConnection(String connectionName) throws IOException,
NoLocalJmxConnectionException;
MBeanServerConnection getLocalMBeanServerConnection(String connectionName, Subject delegationSubject)
throws ConnectException,
NoLocalJmxConnectionException;
/**
* @return the List of arguments to the Java virtual machine
*/
List<String> getVmOptions();
void setArguments(List<String> arguments);
void setArguments(String[] arguments);
void setJarFile(File jarFile);
void setJarFile(String jarFile);
void setJavaClass(String javaClass);
void setJavaExecutable(File javaExecutable);
void setJavaExecutable(String javaExecutable);
void setVmOptions(List<String> vmOptions);
void setVmOptions(String[] vmOptions);
}