/******************************************************************************* * Copyright (c) 2003, 2011 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.jst.server.tomcat.core.internal; import java.util.List; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IStatus; import org.eclipse.wst.server.core.IModule; /** * */ public interface ITomcatVersionHandler { /** * Verifies if the specified path points to a a Tomcat * installation of this version. * * @param installPath an installation path * @return OK status if a valid installation * exists at the location. If not valid, the IStatus * contains an indication of why. */ public IStatus verifyInstallPath(IPath installPath); /** * Gets the startup class for the Tomcat server. * * @return server startup class */ public String getRuntimeClass(); /** * Gets the startup classpath for the Tomcat server. * * @param installPath an installation path * @return list of classpath entries required to * start the Tomcat server. */ public List getRuntimeClasspath(IPath installPath, IPath configPath); /** * Return the program's runtime arguments. * * @param configPath a config path * @param debug <code>true</code> if debug mode is on * @param starting <code>true</code> if the server is starting * @return a string array of program arguments */ public String[] getRuntimeProgramArguments(IPath configPath, boolean debug, boolean starting); /** * Arguments that should not appear in the runtime arguments based on * the specified configuration. * * @param debug <code>true</code> if debug mode is on * @param starting <code>true</code> if the server is starting * @return array of excluded arguments */ public String[] getExcludedRuntimeProgramArguments(boolean debug, boolean starting); /** * Gets the startup VM arguments for the Tomcat server. * * @param installPath installation path for the server * @param configPath configuration path for the server * @param deployPath deploy path for the server * @param isTestEnv test environment flag * @return array of VM arguments for starting the server */ public String[] getRuntimeVMArguments(IPath installPath, IPath configPath, IPath deployPath, boolean isTestEnv); /** * Gets the contents of the Java policy file for the Tomcat server. * * @param configPath path to configuration * @return contents of Java policy file in the configuration */ public String getRuntimePolicyFile(IPath configPath); /** * Returns true if the given project is supported by this * server, and false otherwise. * * @param module a web module * @return the status */ public IStatus canAddModule(IModule module); /** * Returns the runtime base path for relative paths in the server * configuration. * * @param server TomcatServer instance from which to determine * the base path. * @return path to Tomcat instance directory */ public IPath getRuntimeBaseDirectory(TomcatServer server); /** * Prepare server runtime directory. Create catalina instance set of * directories. * * @param baseDir Tomcat instance directory to prepare * @return result of creation operation */ public IStatus prepareRuntimeDirectory(IPath baseDir); /** * Prepares the specified directory by making sure it exists and is * initialized appropriately. * * @param deployPath path to the deployment directory * being prepared * @return status result of the operation */ public IStatus prepareDeployDirectory(IPath deployPath); /** * Prepare directory for serving contexts directly if enabled. * If not enabled, restore directory if necessary. * * @param baseDir path to Tomcat instance directory * @param server TomcatServer instance from which to determine * if serving directly is enabled * @return status result of the operation */ public IStatus prepareForServingDirectly(IPath baseDir, TomcatServer server, String tomcatVersion); /** * Gets the name of the "shared" loader to use with serving * modules without publishing. Returns null if serving modules * without publishing is not supported. * * @param baseDir path to Tomcat instance directory * @return name of shared loader */ public String getSharedLoader(IPath baseDir); /** * Returns true if this server supports serving modules without * publishing. * * @return true if serving modules without publishing is supported */ public boolean supportsServeModulesWithoutPublish(); /** * Returns true if this server supports a debug argument. This * argument is expected to affect the level of logging. Newer * versions of Tomcat use different means of controlling logging * and ignore this argument. * * @return true if debug argument is supported */ public boolean supportsDebugArgument(); /** * Returns true if this server supports separate context files. * * @return true if this server supports separate context files */ public boolean supportsSeparateContextFiles(); /** * Returns the endorsed directories derived using the * specified install path. * * @param installPath installation path for the server * @return The endorsed directories for this server. */ public String getEndorsedDirectories(IPath installPath); }