mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-22 06:02:11 +02:00
Bug 526730 - Autotools should not run autotool commands in the Container
- modify runCommand and runScript methods in AutotoolsNewMakeGenerator class to take an ICommandLauncher to use - modify AutotoolsNewMakeGenerator regenerateMakefile method to pass a local CommandLauncher when running autotool commands, but using one from the CommandLauncherManager when running configure or config.status to do the configuration - modify RemoteCommandLauncher to add a constructor that includes the ICommandLauncher to use if the project is not remote - fix AbstractAutotoolsHandler to use local CommandLauncher Change-Id: Ib3f0deff3cca4b7b40459b5dd691d73dcbf2a87c Signed-off-by: Jeff Johnston <jjohnstn@redhat.com>
This commit is contained in:
parent
2e0f85e514
commit
bd88f34dde
3 changed files with 55 additions and 47 deletions
|
@ -31,6 +31,8 @@ import java.util.regex.Pattern;
|
||||||
|
|
||||||
import org.eclipse.cdt.autotools.core.AutotoolsPlugin;
|
import org.eclipse.cdt.autotools.core.AutotoolsPlugin;
|
||||||
import org.eclipse.cdt.core.CCorePlugin;
|
import org.eclipse.cdt.core.CCorePlugin;
|
||||||
|
import org.eclipse.cdt.core.CommandLauncher;
|
||||||
|
import org.eclipse.cdt.core.CommandLauncherManager;
|
||||||
import org.eclipse.cdt.core.ConsoleOutputStream;
|
import org.eclipse.cdt.core.ConsoleOutputStream;
|
||||||
import org.eclipse.cdt.core.ICDescriptor;
|
import org.eclipse.cdt.core.ICDescriptor;
|
||||||
import org.eclipse.cdt.core.ICommandLauncher;
|
import org.eclipse.cdt.core.ICommandLauncher;
|
||||||
|
@ -126,6 +128,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
private IAConfiguration toolsCfg;
|
private IAConfiguration toolsCfg;
|
||||||
private IBuilder builder;
|
private IBuilder builder;
|
||||||
|
|
||||||
|
private ICommandLauncher localCommandLauncher = new CommandLauncher();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @since 2.0
|
* @since 2.0
|
||||||
|
@ -336,6 +339,9 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
toolsCfg = AutotoolsConfigurationManager.getInstance().getConfiguration(getProject(), icfg.getId());
|
toolsCfg = AutotoolsConfigurationManager.getInstance().getConfiguration(getProject(), icfg.getId());
|
||||||
|
|
||||||
initializeBuildConfigDirs(icfg, toolsCfg);
|
initializeBuildConfigDirs(icfg, toolsCfg);
|
||||||
|
|
||||||
|
ICommandLauncher configureLauncher = CommandLauncherManager.getInstance().getCommandLauncher(project);
|
||||||
|
|
||||||
// Create the top-level directory for the build output
|
// Create the top-level directory for the build output
|
||||||
if (!createDirectory(buildDir)) {
|
if (!createDirectory(buildDir)) {
|
||||||
rc = IStatus.ERROR;
|
rc = IStatus.ERROR;
|
||||||
|
@ -346,31 +352,6 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
}
|
}
|
||||||
checkCancel();
|
checkCancel();
|
||||||
|
|
||||||
// // How did we do
|
|
||||||
// if (!getInvalidDirList().isEmpty()) {
|
|
||||||
// status = new MultiStatus (
|
|
||||||
// ManagedBuilderCorePlugin.getUniqueIdentifier(),
|
|
||||||
// IStatus.WARNING,
|
|
||||||
// "",
|
|
||||||
// null);
|
|
||||||
// // Add a new status for each of the bad folders
|
|
||||||
// iter = getInvalidDirList().iterator();
|
|
||||||
// while (iter.hasNext()) {
|
|
||||||
// status.add(new Status (
|
|
||||||
// IStatus.WARNING,
|
|
||||||
// ManagedBuilderCorePlugin.getUniqueIdentifier(),
|
|
||||||
// SPACES_IN_PATH,
|
|
||||||
// ((IContainer)iter.next()).getFullPath().toString(),
|
|
||||||
// null));
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// status = new MultiStatus(
|
|
||||||
// ManagedBuilderCorePlugin.getUniqueIdentifier(),
|
|
||||||
// IStatus.OK,
|
|
||||||
// "",
|
|
||||||
// null);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// Get a build console for the project
|
// Get a build console for the project
|
||||||
IConsole console = CCorePlugin.getDefault().getConsole("org.eclipse.cdt.autotools.ui.configureConsole"); //$NON-NLS-1$
|
IConsole console = CCorePlugin.getDefault().getConsole("org.eclipse.cdt.autotools.ui.configureConsole"); //$NON-NLS-1$
|
||||||
boolean consoleStart = true;
|
boolean consoleStart = true;
|
||||||
|
@ -416,7 +397,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
System.arraycopy(newArgs, 0, makeargs, 0, newArgs.length);
|
System.arraycopy(newArgs, 0, makeargs, 0, newArgs.length);
|
||||||
}
|
}
|
||||||
makeargs[makeargs.length - 1] = target;
|
makeargs[makeargs.length - 1] = target;
|
||||||
rc = runCommand(makeCmd,
|
rc = runCommand(localCommandLauncher, makeCmd,
|
||||||
getProjectLocation(),
|
getProjectLocation(),
|
||||||
makeargs,
|
makeargs,
|
||||||
AutotoolsPlugin.getResourceString("MakeGenerator.clean.topdir"), //$NON-NLS-1$
|
AutotoolsPlugin.getResourceString("MakeGenerator.clean.topdir"), //$NON-NLS-1$
|
||||||
|
@ -466,7 +447,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
System.arraycopy(newArgs, 0, makeargs, 0, newArgs.length);
|
System.arraycopy(newArgs, 0, makeargs, 0, newArgs.length);
|
||||||
}
|
}
|
||||||
makeargs[makeargs.length - 1] = target;
|
makeargs[makeargs.length - 1] = target;
|
||||||
rc = runCommand(makeCmd,
|
rc = runCommand(localCommandLauncher, makeCmd,
|
||||||
buildLocation,
|
buildLocation,
|
||||||
makeargs,
|
makeargs,
|
||||||
AutotoolsPlugin.getFormattedString("MakeGenerator.clean.builddir", new String[]{buildDir}), //$NON-NLS-1$
|
AutotoolsPlugin.getFormattedString("MakeGenerator.clean.builddir", new String[]{buildDir}), //$NON-NLS-1$
|
||||||
|
@ -497,7 +478,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
// can simply run config.status again to ensure the top level Makefile has been
|
// can simply run config.status again to ensure the top level Makefile has been
|
||||||
// created.
|
// created.
|
||||||
if (makefile == null || !makefile.exists()) {
|
if (makefile == null || !makefile.exists()) {
|
||||||
rc = runScript(configfile, buildLocation, null,
|
rc = runScript(configureLauncher, configfile, buildLocation, null,
|
||||||
AutotoolsPlugin.getFormattedString("MakeGenerator.run.config.status", new String[]{buildDir}), //$NON-NLS-1$
|
AutotoolsPlugin.getFormattedString("MakeGenerator.run.config.status", new String[]{buildDir}), //$NON-NLS-1$
|
||||||
errMsg, console, null, consoleStart);
|
errMsg, console, null, consoleStart);
|
||||||
consoleStart = false;
|
consoleStart = false;
|
||||||
|
@ -505,7 +486,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
}
|
}
|
||||||
// Look for configure and configure from scratch
|
// Look for configure and configure from scratch
|
||||||
else if (configurePath.toFile().exists()) {
|
else if (configurePath.toFile().exists()) {
|
||||||
rc = runScript(configurePath,
|
rc = runScript(configureLauncher, configurePath,
|
||||||
buildLocation,
|
buildLocation,
|
||||||
configArgs,
|
configArgs,
|
||||||
AutotoolsPlugin.getFormattedString("MakeGenerator.gen.makefile", new String[]{buildDir}), //$NON-NLS-1$
|
AutotoolsPlugin.getFormattedString("MakeGenerator.gen.makefile", new String[]{buildDir}), //$NON-NLS-1$
|
||||||
|
@ -528,7 +509,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
configStatus.delete();
|
configStatus.delete();
|
||||||
// Get any user-specified arguments for autogen.
|
// Get any user-specified arguments for autogen.
|
||||||
String[] autogenArgs = getAutogenArgs(autogenCmdParms);
|
String[] autogenArgs = getAutogenArgs(autogenCmdParms);
|
||||||
rc = runScript(autogenPath,
|
rc = runScript(localCommandLauncher, autogenPath,
|
||||||
autogenPath.removeLastSegments(1), autogenArgs,
|
autogenPath.removeLastSegments(1), autogenArgs,
|
||||||
AutotoolsPlugin.getFormattedString("MakeGenerator.autogen.sh", new String[]{buildDir}), //$NON-NLS-1$
|
AutotoolsPlugin.getFormattedString("MakeGenerator.autogen.sh", new String[]{buildDir}), //$NON-NLS-1$
|
||||||
errMsg, console, autogenEnvs, consoleStart);
|
errMsg, console, autogenEnvs, consoleStart);
|
||||||
|
@ -538,8 +519,11 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
configStatus = configfile.toFile();
|
configStatus = configfile.toFile();
|
||||||
// Check for config.status. If it is created, then
|
// Check for config.status. If it is created, then
|
||||||
// autogen.sh ran configure and we should not run it
|
// autogen.sh ran configure and we should not run it
|
||||||
// ourselves.
|
// ourselves unless the local command launcher and
|
||||||
if (configStatus == null || !configStatus.exists()) {
|
// configure launchers are different, meaning that
|
||||||
|
// configure needs to be run remotely.
|
||||||
|
if (configStatus == null || !configStatus.exists() || !localCommandLauncher.getClass().getName()
|
||||||
|
.equals(configureLauncher.getClass().getName())) {
|
||||||
if (!configurePath.toFile().exists()) {
|
if (!configurePath.toFile().exists()) {
|
||||||
// no configure script either...try running autoreconf
|
// no configure script either...try running autoreconf
|
||||||
String[] reconfArgs = new String[1];
|
String[] reconfArgs = new String[1];
|
||||||
|
@ -548,7 +532,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
reconfCmd = DEFAULT_AUTORECONF;
|
reconfCmd = DEFAULT_AUTORECONF;
|
||||||
IPath reconfCmdPath = new Path(reconfCmd);
|
IPath reconfCmdPath = new Path(reconfCmd);
|
||||||
reconfArgs[0] = "-i"; //$NON-NLS-1$
|
reconfArgs[0] = "-i"; //$NON-NLS-1$
|
||||||
rc = runScript(reconfCmdPath,
|
rc = runScript(localCommandLauncher, reconfCmdPath,
|
||||||
getSourcePath(),
|
getSourcePath(),
|
||||||
reconfArgs,
|
reconfArgs,
|
||||||
AutotoolsPlugin.getFormattedString("MakeGenerator.autoreconf", new String[]{buildDir}), //$NON-NLS-1$
|
AutotoolsPlugin.getFormattedString("MakeGenerator.autoreconf", new String[]{buildDir}), //$NON-NLS-1$
|
||||||
|
@ -558,7 +542,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
}
|
}
|
||||||
// Check if configure generated and if yes, run it.
|
// Check if configure generated and if yes, run it.
|
||||||
if (rc != IStatus.ERROR && configurePath.toFile().exists()) {
|
if (rc != IStatus.ERROR && configurePath.toFile().exists()) {
|
||||||
rc = runScript(configurePath,
|
rc = runScript(configureLauncher, configurePath,
|
||||||
buildLocation,
|
buildLocation,
|
||||||
configArgs,
|
configArgs,
|
||||||
AutotoolsPlugin.getFormattedString("MakeGenerator.gen.makefile", new String[]{buildDir}), //$NON-NLS-1$
|
AutotoolsPlugin.getFormattedString("MakeGenerator.gen.makefile", new String[]{buildDir}), //$NON-NLS-1$
|
||||||
|
@ -581,15 +565,26 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
String[] makeargs = new String[1];
|
String[] makeargs = new String[1];
|
||||||
IPath makeCmd = builder.getBuildCommand();
|
IPath makeCmd = builder.getBuildCommand();
|
||||||
makeargs[0] = "-f" + getMakefileCVSPath().toOSString(); //$NON-NLS-1$
|
makeargs[0] = "-f" + getMakefileCVSPath().toOSString(); //$NON-NLS-1$
|
||||||
rc = runCommand(makeCmd,
|
rc = runCommand(localCommandLauncher, makeCmd,
|
||||||
getProjectLocation().append(buildDir),
|
getProjectLocation().append(buildDir),
|
||||||
makeargs,
|
makeargs,
|
||||||
AutotoolsPlugin.getFormattedString("MakeGenerator.makefile.cvs", new String[]{buildDir}), //$NON-NLS-1$
|
AutotoolsPlugin.getFormattedString("MakeGenerator.makefile.cvs", new String[]{buildDir}), //$NON-NLS-1$
|
||||||
errMsg, console, consoleStart);
|
errMsg, console, consoleStart);
|
||||||
consoleStart = false;
|
consoleStart = false;
|
||||||
if (rc != IStatus.ERROR) {
|
if (rc != IStatus.ERROR) {
|
||||||
File makefileFile = getProjectLocation().append(buildDir)
|
refresh();
|
||||||
.append(MAKEFILE).toFile();
|
// if the local command launcher is not the same as the configure launcher, we
|
||||||
|
// need
|
||||||
|
// to rerun the configure command remotely
|
||||||
|
if (configurePath.toFile().exists() && !localCommandLauncher.getClass().getName()
|
||||||
|
.equals(configureLauncher.getClass().getName())) {
|
||||||
|
rc = runScript(configureLauncher, configurePath, buildLocation, configArgs,
|
||||||
|
AutotoolsPlugin.getFormattedString("MakeGenerator.gen.makefile", //$NON-NLS-1$
|
||||||
|
new String[] { buildDir }), errMsg, console, configureEnvs, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (rc != IStatus.ERROR) {
|
||||||
|
File makefileFile = getProjectLocation().append(buildDir).append(MAKEFILE).toFile();
|
||||||
addMakeTargetsToManager(makefileFile);
|
addMakeTargetsToManager(makefileFile);
|
||||||
toolsCfg.setDirty(false);
|
toolsCfg.setDirty(false);
|
||||||
}
|
}
|
||||||
|
@ -602,7 +597,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
reconfCmd = DEFAULT_AUTORECONF;
|
reconfCmd = DEFAULT_AUTORECONF;
|
||||||
IPath reconfCmdPath = new Path(reconfCmd);
|
IPath reconfCmdPath = new Path(reconfCmd);
|
||||||
reconfArgs[0] = "-i"; //$NON-NLS-1$
|
reconfArgs[0] = "-i"; //$NON-NLS-1$
|
||||||
rc = runScript(reconfCmdPath,
|
rc = runScript(localCommandLauncher, reconfCmdPath,
|
||||||
getSourcePath(),
|
getSourcePath(),
|
||||||
reconfArgs,
|
reconfArgs,
|
||||||
AutotoolsPlugin.getFormattedString("MakeGenerator.autoreconf", new String[]{buildDir}), //$NON-NLS-1$
|
AutotoolsPlugin.getFormattedString("MakeGenerator.autoreconf", new String[]{buildDir}), //$NON-NLS-1$
|
||||||
|
@ -612,7 +607,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
if (rc != IStatus.ERROR) {
|
if (rc != IStatus.ERROR) {
|
||||||
refresh();
|
refresh();
|
||||||
if (configurePath.toFile().exists()) {
|
if (configurePath.toFile().exists()) {
|
||||||
rc = runScript(configurePath,
|
rc = runScript(configureLauncher, configurePath,
|
||||||
buildLocation,
|
buildLocation,
|
||||||
configArgs,
|
configArgs,
|
||||||
AutotoolsPlugin.getFormattedString("MakeGenerator.gen.makefile", new String[]{buildDir}), //$NON-NLS-1$
|
AutotoolsPlugin.getFormattedString("MakeGenerator.gen.makefile", new String[]{buildDir}), //$NON-NLS-1$
|
||||||
|
@ -839,7 +834,8 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run a command or executable (e.g. make).
|
// Run a command or executable (e.g. make).
|
||||||
private int runCommand(IPath commandPath, IPath runPath, String[] args, String jobDescription, String errMsg,
|
private int runCommand(ICommandLauncher commandLauncher, IPath commandPath, IPath runPath, String[] args,
|
||||||
|
String jobDescription, String errMsg,
|
||||||
IConsole console, boolean consoleStart) throws CoreException, NullPointerException, IOException {
|
IConsole console, boolean consoleStart) throws CoreException, NullPointerException, IOException {
|
||||||
|
|
||||||
int rc = IStatus.OK;
|
int rc = IStatus.OK;
|
||||||
|
@ -893,7 +889,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
consoleOutStream.flush();
|
consoleOutStream.flush();
|
||||||
|
|
||||||
// Get a launcher for the config command
|
// Get a launcher for the config command
|
||||||
ICommandLauncher launcher = new RemoteCommandLauncher();
|
ICommandLauncher launcher = new RemoteCommandLauncher(commandLauncher);
|
||||||
launcher.setProject(project);
|
launcher.setProject(project);
|
||||||
// Set the environment
|
// Set the environment
|
||||||
IEnvironmentVariable variables[] =
|
IEnvironmentVariable variables[] =
|
||||||
|
@ -1105,7 +1101,8 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run an autotools script (e.g. configure, autogen.sh, config.status).
|
// Run an autotools script (e.g. configure, autogen.sh, config.status).
|
||||||
private int runScript(IPath commandPath, IPath runPath, String[] args, String jobDescription, String errMsg,
|
private int runScript(ICommandLauncher commandLauncher, IPath commandPath, IPath runPath, String[] args,
|
||||||
|
String jobDescription, String errMsg,
|
||||||
IConsole console, List<String> additionalEnvs, boolean consoleStart)
|
IConsole console, List<String> additionalEnvs, boolean consoleStart)
|
||||||
throws CoreException, NullPointerException, IOException {
|
throws CoreException, NullPointerException, IOException {
|
||||||
|
|
||||||
|
@ -1207,7 +1204,7 @@ public class AutotoolsNewMakeGenerator extends MarkerGenerator {
|
||||||
consoleOutStream.flush();
|
consoleOutStream.flush();
|
||||||
|
|
||||||
// Get a launcher for the config command
|
// Get a launcher for the config command
|
||||||
ICommandLauncher launcher = new RemoteCommandLauncher();
|
ICommandLauncher launcher = new RemoteCommandLauncher(commandLauncher);
|
||||||
launcher.setProject(project);
|
launcher.setProject(project);
|
||||||
// Set the environment
|
// Set the environment
|
||||||
IEnvironmentVariable variables[] =
|
IEnvironmentVariable variables[] =
|
||||||
|
|
|
@ -19,6 +19,7 @@ import java.util.StringTokenizer;
|
||||||
|
|
||||||
import org.eclipse.cdt.autotools.ui.AutotoolsUIPlugin;
|
import org.eclipse.cdt.autotools.ui.AutotoolsUIPlugin;
|
||||||
import org.eclipse.cdt.core.CCorePlugin;
|
import org.eclipse.cdt.core.CCorePlugin;
|
||||||
|
import org.eclipse.cdt.core.CommandLauncher;
|
||||||
import org.eclipse.cdt.core.ConsoleOutputStream;
|
import org.eclipse.cdt.core.ConsoleOutputStream;
|
||||||
import org.eclipse.cdt.core.ICommandLauncher;
|
import org.eclipse.cdt.core.ICommandLauncher;
|
||||||
import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
|
import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
|
||||||
|
@ -299,8 +300,9 @@ public abstract class AbstractAutotoolsHandler extends AbstractHandler {
|
||||||
|
|
||||||
ArrayList<String> additionalEnvs = new ArrayList<>();
|
ArrayList<String> additionalEnvs = new ArrayList<>();
|
||||||
String strippedCommand = AutotoolsNewMakeGenerator.stripEnvVars(command, additionalEnvs);
|
String strippedCommand = AutotoolsNewMakeGenerator.stripEnvVars(command, additionalEnvs);
|
||||||
// Get a launcher for the config command
|
// Get a launcher for the config command...default non-remote to use local
|
||||||
RemoteCommandLauncher launcher = new RemoteCommandLauncher();
|
// commands
|
||||||
|
RemoteCommandLauncher launcher = new RemoteCommandLauncher(new CommandLauncher());
|
||||||
launcher.setProject(project);
|
launcher.setProject(project);
|
||||||
// Set the environment
|
// Set the environment
|
||||||
IEnvironmentVariable variables[] = ManagedBuildManager.getEnvironmentVariableProvider()
|
IEnvironmentVariable variables[] = ManagedBuildManager.getEnvironmentVariableProvider()
|
||||||
|
|
|
@ -104,13 +104,20 @@ public class RemoteCommandLauncher implements ICommandLauncher {
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ICommandLauncher fLocalLauncher = CommandLauncherManager.getInstance().getCommandLauncher();
|
private ICommandLauncher fLocalLauncher;
|
||||||
private boolean fShowCommand;
|
private boolean fShowCommand;
|
||||||
private String[] fCommandArgs;
|
private String[] fCommandArgs;
|
||||||
private IRemoteConnection fConnection;
|
private IRemoteConnection fConnection;
|
||||||
private IRemoteProcess fRemoteProcess;
|
private IRemoteProcess fRemoteProcess;
|
||||||
private final Properties fEnvironment = new Properties();
|
private final Properties fEnvironment = new Properties();
|
||||||
|
|
||||||
|
public RemoteCommandLauncher() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public RemoteCommandLauncher(ICommandLauncher localLauncher) {
|
||||||
|
this.fLocalLauncher = localLauncher;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The number of milliseconds to pause between polling.
|
* The number of milliseconds to pause between polling.
|
||||||
*/
|
*/
|
||||||
|
@ -135,7 +142,9 @@ public class RemoteCommandLauncher implements ICommandLauncher {
|
||||||
localLauncher.setProject(getProject());
|
localLauncher.setProject(getProject());
|
||||||
localLauncher.setErrorMessage(getErrorMessage());
|
localLauncher.setErrorMessage(getErrorMessage());
|
||||||
usingLocalLauncher = false;
|
usingLocalLauncher = false;
|
||||||
|
if (fLocalLauncher == null) {
|
||||||
fLocalLauncher = localLauncher;
|
fLocalLauncher = localLauncher;
|
||||||
|
}
|
||||||
if (getProject() != null) {
|
if (getProject() != null) {
|
||||||
IRemoteResource remRes = (IRemoteResource) getProject().getAdapter(IRemoteResource.class);
|
IRemoteResource remRes = (IRemoteResource) getProject().getAdapter(IRemoteResource.class);
|
||||||
if (remRes != null) {
|
if (remRes != null) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue