| /******************************************************************************* |
| * Copyright (c) 2003, 2008 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); |
| |
| /** |
| * 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); |
| |
| /** |
| * 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); |
| } |