/******************************************************************************* * Copyright (c) 2001, 2005 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.jem.internal.proxy.remote; /* */ import org.eclipse.core.runtime.IPath; import org.osgi.framework.Bundle; import org.eclipse.jem.internal.proxy.core.IConfigurationContributionController; import org.eclipse.jem.internal.proxy.core.ProxyPlugin; public class ProxyRemoteUtil { // Debug options public static final String DEBUG_VM = "/remote/debug/debugvm", // Bring up debugger on remote vm's. //$NON-NLS-1$ IO_CONSOLE = "/remote/debug/ioconsole", // IO Through console (system in and out) for asking questions. //$NON-NLS-1$ DEBUG_VM_TRACEOUT = "/remote/debug/vmtraceout", // Trace the output from the remote vm's. //$NON-NLS-1$ NO_TIMEOUTS = "/remote/debug/notimeouts"; // No socket timeouts when talking to remote vm. Turn this on when doing callback testing. Not needed otherwise. //$NON-NLS-1$ private static REMRegistryController pluginRegistryController; /** * Return the registry controller. */ public synchronized static REMRegistryController getRegistryController() { return pluginRegistryController != null ? pluginRegistryController : (pluginRegistryController = new REMRegistryController()); } /** * Method to update any class paths with any * paths that need to be added to a VM. In this case, it is * the remotevm.jar and the remotecommon.jar that need to be added. The first jar contains * the code necessary to run the remote vm and listen for commands. The second jar contains * the common code that is required to be shared on both the IDE side and remote side. It * is the interface code so that they both talk the same language. * support. */ public static void updateClassPaths(IConfigurationContributionController controller) { Bundle proxyBundle = ProxyPlugin.getPlugin().getBundle(); // Need to have our jars at the beginning. (Struts causes a problem because // they have a jar (commons-fileupload.jar) that if when searching for a class and // this jar is reached, it causes the class loader to barf. Our jars used to be at // the end, and so it found the fileupload jar first and no remote vm could be started // because of this. controller.contributeClasspath(proxyBundle, (IPath) null, IConfigurationContributionController.PREPEND_USER_CLASSPATH, false); //$NON-NLS-1$ controller.contributeClasspath(proxyBundle, "vm/remotevm.jar", IConfigurationContributionController.PREPEND_USER_CLASSPATH, false); //$NON-NLS-1$ } }