Copyright (c) 2007, 2015 IBM Corporation and others. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/ SPDX-License-Identifier: EPL-2.0 Contributors: IBM Corporation - initial API and implementation
/******************************************************************************* * Copyright (c) 2007, 2015 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/
package org.eclipse.jdt.internal.launching; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.util.Map; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.jdt.launching.AbstractVMInstallType; import org.eclipse.jdt.launching.IVMInstall; import org.eclipse.jdt.launching.LibraryLocation; import org.eclipse.jdt.launching.environments.ExecutionEnvironmentDescription; import org.eclipse.osgi.util.NLS;
Utility class for Standard VM type. Used to generate/retrieve information for VMs defined by EE property file.
Since:3.4
/** * Utility class for Standard VM type. Used to generate/retrieve information for * VMs defined by EE property file. * * @since 3.4 */
public class EEVMType extends AbstractVMInstallType {
VM Type id
/** * VM Type id */
public static final String ID_EE_VM_TYPE = "org.eclipse.jdt.launching.EEVMType"; //$NON-NLS-1$
Substitution in EE file - replaced with directory of EE file, to support absolute path names where needed.
/** * Substitution in EE file - replaced with directory of EE file, * to support absolute path names where needed. */
public static final String VAR_EE_HOME = "${ee.home}"; //$NON-NLS-1$ private static final String[] REQUIRED_PROPERTIES = new String[]{ ExecutionEnvironmentDescription.EXECUTABLE, ExecutionEnvironmentDescription.BOOT_CLASS_PATH, ExecutionEnvironmentDescription.LANGUAGE_LEVEL, ExecutionEnvironmentDescription.JAVA_HOME};
Returns the default javadoc location specified in the properties or null if none.
Params:
  • properties – properties map
Returns:javadoc location specified in the properties or null if none
/** * Returns the default javadoc location specified in the properties or <code>null</code> * if none. * * @param properties properties map * @return javadoc location specified in the properties or <code>null</code> if none */
public static URL getJavadocLocation(Map<String, String> properties) { String javadoc = getProperty(ExecutionEnvironmentDescription.JAVADOC_LOC, properties); if (javadoc != null && javadoc.length() > 0){ try{ URL url = new URL(javadoc); if ("file".equalsIgnoreCase(url.getProtocol())){ //$NON-NLS-1$ File file = new File(url.getFile()); url = file.getCanonicalFile().toURI().toURL(); } return url; } catch (MalformedURLException e){ LaunchingPlugin.log(e); return null; } catch (IOException e){ LaunchingPlugin.log(e); return null; } } String version = getProperty(ExecutionEnvironmentDescription.LANGUAGE_LEVEL, properties); if (version != null) { return StandardVMType.getDefaultJavadocLocation(version); } return null; }
Returns the default index location specified in the properties or null if none.
Params:
  • properties – properties map
Returns:index location specified in the properties or null if none
Since:3.7.0
/** * Returns the default index location specified in the properties or <code>null</code> * if none. * * @param properties properties map * @return index location specified in the properties or <code>null</code> if none * @since 3.7.0 */
public static URL getIndexLocation(Map<String, String> properties) { String index = getProperty(ExecutionEnvironmentDescription.INDEX_LOC, properties); if (index != null && index.length() > 0){ try{ URL url = new URL(index); if ("file".equalsIgnoreCase(url.getProtocol())){ //$NON-NLS-1$ File file = new File(url.getFile()); url = file.getCanonicalFile().toURI().toURL(); } return url; } catch (MalformedURLException e){ LaunchingPlugin.log(e); return null; } catch (IOException e){ LaunchingPlugin.log(e); return null; } } return null; }
Returns a status indicating if the given definition file is valid.
Params:
  • description – definition file
Returns:status indicating if the given definition file is valid
/** * Returns a status indicating if the given definition file is valid. * * @param description definition file * @return status indicating if the given definition file is valid */
public static IStatus validateDefinitionFile(ExecutionEnvironmentDescription description) { // validate required properties for (int i = 0; i < REQUIRED_PROPERTIES.length; i++) { String key = REQUIRED_PROPERTIES[i]; String property = description.getProperty(key); if (property == null) { return new Status(IStatus.ERROR, LaunchingPlugin.getUniqueIdentifier(), NLS.bind(LaunchingMessages.EEVMType_1, new String[]{key} )); } } return Status.OK_STATUS; }
Returns the specified property value from the given map, as a String, or null if none.
Params:
  • property – the name of the property
  • properties – property map
Returns:value or null
/** * Returns the specified property value from the given map, as a {@link String}, * or <code>null</code> if none. * * @param property the name of the property * @param properties property map * @return value or <code>null</code> */
private static String getProperty(String property, Map<String, String> properties) { return properties.get(property); } /* (non-Javadoc) * @see org.eclipse.jdt.launching.AbstractVMInstallType#doCreateVMInstall(java.lang.String) */ @Override protected IVMInstall doCreateVMInstall(String id) { return new EEVMInstall(this, id); } /* (non-Javadoc) * @see org.eclipse.jdt.launching.IVMInstallType#detectInstallLocation() */ @Override public File detectInstallLocation() { return null; } /* (non-Javadoc) * @see org.eclipse.jdt.launching.IVMInstallType#getDefaultLibraryLocations(java.io.File) */ @Override public LibraryLocation[] getDefaultLibraryLocations(File installLocationOrDefinitionFile) { return new LibraryLocation[0]; } /* (non-Javadoc) * @see org.eclipse.jdt.launching.IVMInstallType#getName() */ @Override public String getName() { return LaunchingMessages.EEVMType_2; } /* (non-Javadoc) * @see org.eclipse.jdt.launching.IVMInstallType#validateInstallLocation(java.io.File) */ @Override public IStatus validateInstallLocation(File installLocation) { if (installLocation.exists()) { return new Status(IStatus.INFO, LaunchingPlugin.ID_PLUGIN, LaunchingMessages.EEVMType_4); } return new Status(IStatus.ERROR, LaunchingPlugin.ID_PLUGIN, NLS.bind(LaunchingMessages.EEVMType_3, new String[]{installLocation.getPath()})); } }