diff options
This commit was manufactured by cvs2svn to create tag 'v20120417_1210'.v20120417_1210
Diffstat (limited to 'plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatConfiguration.java')
-rw-r--r-- | plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatConfiguration.java | 364 |
1 files changed, 0 insertions, 364 deletions
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatConfiguration.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatConfiguration.java deleted file mode 100644 index c905841c1..000000000 --- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatConfiguration.java +++ /dev/null @@ -1,364 +0,0 @@ -/******************************************************************************* - * 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.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IFolder; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.*; -import org.eclipse.jst.server.core.IWebModule; -import org.eclipse.osgi.util.NLS; - -import org.eclipse.wst.server.core.IModule; -import org.eclipse.wst.server.core.ServerPort; -/** - * Generic Tomcat server configuration. - */ -public abstract class TomcatConfiguration implements ITomcatConfiguration, ITomcatConfigurationWorkingCopy { - public static final String NAME_PROPERTY = "name"; - public static final String PORT_PROPERTY = "port"; - public static final String MODIFY_PORT_PROPERTY = "modifyPort"; - public static final String ADD_MAPPING_PROPERTY = "addMapping"; - public static final String REMOVE_MAPPING_PROPERTY = "removeMapping"; - public static final String MODIFY_MAPPING_PROPERTY = "modifyMapping"; - - public static final String MODIFY_WEB_MODULE_PROPERTY = "modifyWebModule"; - public static final String ADD_WEB_MODULE_PROPERTY = "addWebModule"; - public static final String REMOVE_WEB_MODULE_PROPERTY = "removeWebModule"; - - protected IFolder configPath; - - // property change listeners - private transient List<PropertyChangeListener> propertyListeners; - - /** - * TomcatConfiguration constructor. - * - * @param path a path - */ - public TomcatConfiguration(IFolder path) { - super(); - this.configPath = path; - /*try { - load(configPath, new NullProgressMonitor()); - } catch (Exception e) { - // ignore - }*/ - } - - protected IFolder getFolder() { - return configPath; - } - - /** - * Copies all files from the given directory in the workbench - * to the given location. Can be overridden by version specific - * class to modify or enhance what publish does. - * - * @param tomcatDir Destination tomcat directory. Equivalent to catalina.base - * for Tomcat 4.x and up. - * @param doBackup Backup existing configuration files (true if not test mode). - * @param monitor Progress monitor to use - * @return result of operation - */ - protected IStatus backupAndPublish(IPath tomcatDir, boolean doBackup, IProgressMonitor monitor) { - MultiStatus ms = new MultiStatus(TomcatPlugin.PLUGIN_ID, 0, Messages.publishConfigurationTask, null); - if (Trace.isTraceEnabled()) - Trace.trace(Trace.FINER, "Backup and publish"); - monitor = ProgressUtil.getMonitorFor(monitor); - - try { - IPath backup = null; - if (doBackup) { - // create backup directory - backup = tomcatDir.append("backup"); - if (!backup.toFile().exists()) - backup.toFile().mkdir(); - } - backupFolder(getFolder(), tomcatDir.append("conf"), backup, ms, monitor); - } catch (Exception e) { - Trace.trace(Trace.SEVERE, "backupAndPublish() error", e); - IStatus s = new Status(IStatus.ERROR, TomcatPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorPublishConfiguration, new String[] {e.getLocalizedMessage()}), e); - ms.add(s); - } - - monitor.done(); - return ms; - } - - protected void backupFolder(IFolder folder, IPath confDir, IPath backup, MultiStatus ms, IProgressMonitor monitor) throws CoreException { - IResource[] children = folder.members(); - if (children == null) - return; - - int size = children.length; - monitor.beginTask(Messages.publishConfigurationTask, size * 100); - for (int i = 0; i < size; i++) { - if (children[i] instanceof IFile) { - try { - IFile file = (IFile) children[i]; - String name = file.getName(); - monitor.subTask(NLS.bind(Messages.publisherPublishTask, new String[] {name})); - if (Trace.isTraceEnabled()) - Trace.trace(Trace.FINEST, "Publishing " + name); - - // backup and copy file - boolean copy = true; - if (backup != null && !(backup.append(name).toFile().exists())) { - IStatus status = FileUtil.copyFile(confDir.append(name).toOSString(), backup + File.separator + name); - ms.add(status); - if (!status.isOK()) - copy = false; - } - - if (copy) { - String destPath = confDir.append(name).toOSString(); - String destContents = null; - String srcContents = null; - File dest = new File(destPath); - if (dest.exists()) { - InputStream fis = new FileInputStream(destPath); - destContents = TomcatVersionHelper.getFileContents(fis); - if (destContents != null) { - fis = file.getContents(); - srcContents = TomcatVersionHelper.getFileContents(fis); - } - } - if (destContents == null || srcContents == null || !srcContents.equals(destContents)) { - InputStream in = file.getContents(); - ms.add(FileUtil.copyFile(in, destPath)); - } - } - } catch (Exception e) { - Trace.trace(Trace.SEVERE, "backupAndPublish() error", e); - ms.add(new Status(IStatus.ERROR, TomcatPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorPublishConfiguration, new String[] {e.getLocalizedMessage()}), e)); - } - } - monitor.worked(100); - } - } - - protected void backupPath(IPath path, IPath confDir, IPath backup, MultiStatus ms, IProgressMonitor monitor) { - File[] files = path.toFile().listFiles(); - if (files == null) - return; - - int size = files.length; - monitor.beginTask(Messages.publishConfigurationTask, size * 100); - for (int i = 0; i < size; i++) { - try { - File file = files[i]; - String name = file.getName(); - monitor.subTask(NLS.bind(Messages.publisherPublishTask, new String[] {name})); - if (Trace.isTraceEnabled()) - Trace.trace(Trace.FINEST, "Publishing " + name); - - // backup and copy file - boolean copy = true; - if (backup != null && !(backup.append(name).toFile().exists())) { - IStatus status = FileUtil.copyFile(confDir.append(name).toOSString(), backup + File.separator + name); - ms.add(status); - if (!status.isOK()) - copy = false; - } - - if (copy) - ms.add(FileUtil.copyFile(file.getAbsolutePath(), confDir.append(name).toOSString())); - } catch (Exception e) { - Trace.trace(Trace.SEVERE, "backupAndPublish() error", e); - ms.add(new Status(IStatus.ERROR, TomcatPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorPublishConfiguration, new String[] {e.getLocalizedMessage()}), e)); - } - monitor.worked(100); - } - } - - protected IStatus publishContextConfig(IPath baseDir, IPath deployDir, IProgressMonitor monitor) { - // Default implementation assumes nothing to do - return Status.OK_STATUS; - } - - - protected IStatus updateContextsToServeDirectly(IPath baseDir, String tomcatVersion, String loader, IProgressMonitor monitor) { - // Default implementation assumes nothing to do - return Status.OK_STATUS; - } - - protected IStatus cleanupServer(IPath confDir, IPath installDir, boolean removeKeptContextFiles, IProgressMonitor monitor) { - // Default implementation assumes nothing to clean - return Status.OK_STATUS; - } - - /** - * Make any local changes to the server configuration at the specified runtime - * base directory needed to complete publishing the server. - * - * @param baseDir runtime base directory for the server - * @param deployDir deployment directory for the server - * @param server server being localized - * @param monitor a progress monitor - * @return result of operation - */ - public abstract IStatus localizeConfiguration(IPath baseDir, IPath deployDir, TomcatServer server, IProgressMonitor monitor); - - /** - * Returns the main server port. - * @return ServerPort - */ - public abstract ServerPort getMainPort(); - - /** - * Returns the prefix that is used in front of the - * web module path property. (e.g. "webapps") - * - * @return java.lang.String - */ - public String getDocBasePrefix() { - return ""; - } - - /** - * Returns the partial URL applicable to this module. - * - * @param webModule a web module - * @return the partial URL - */ - protected String getWebModuleURL(IModule webModule) { - WebModule module = getWebModule(webModule); - if (module != null) - return module.getPath(); - - IWebModule webModule2 = (IWebModule) webModule.loadAdapter(IWebModule.class, null); - return "/" + webModule2.getContextRoot(); - } - - /** - * Returns the given module from the config. - * - * @param module a web module - * @return a web module - */ - public WebModule getWebModule(IModule module) { - if (module == null) - return null; - - String memento = module.getId(); - - List modules = getWebModules(); - int size = modules.size(); - for (int i = 0; i < size; i++) { - WebModule webModule = (WebModule) modules.get(i); - if (memento.equals(webModule.getMemento())) { - return webModule; - } - } - return null; - } - - protected abstract void save(IFolder folder, IProgressMonitor monitor) throws CoreException; - - protected void firePropertyChangeEvent(String propertyName, Object oldValue, Object newValue) { - if (propertyListeners == null) - return; - - PropertyChangeEvent event = new PropertyChangeEvent(this, propertyName, oldValue, newValue); - try { - Iterator iterator = propertyListeners.iterator(); - while (iterator.hasNext()) { - try { - PropertyChangeListener listener = (PropertyChangeListener) iterator.next(); - listener.propertyChange(event); - } catch (Exception e) { - Trace.trace(Trace.SEVERE, "Error firing property change event", e); - } - } - } catch (Exception e) { - Trace.trace(Trace.SEVERE, "Error in property event", e); - } - } - - /** - * Adds a property change listener to this server. - * - * @param listener java.beans.PropertyChangeListener - */ - public void addPropertyChangeListener(PropertyChangeListener listener) { - if (propertyListeners == null) - propertyListeners = new ArrayList<PropertyChangeListener>(); - propertyListeners.add(listener); - } - - /** - * Removes a property change listener from this server. - * - * @param listener java.beans.PropertyChangeListener - */ - public void removePropertyChangeListener(PropertyChangeListener listener) { - if (propertyListeners != null) - propertyListeners.remove(listener); - } - - public void importFromPath(IPath path, boolean isTestEnv, IProgressMonitor monitor) throws CoreException { - load(path, monitor); - } - - /*public void importFromRuntime(IRuntime runtime, IProgressMonitor monitor) throws CoreException { - load(runtime.getLocation().append("conf"), monitor); - }*/ - - protected abstract void load(IPath path, IProgressMonitor monitor) throws CoreException; - - protected abstract void load(IFolder folder, IProgressMonitor monitor) throws CoreException; - - /** - * @see ITomcatConfigurationWorkingCopy#addWebModule(int, ITomcatWebModule) - */ - public abstract void addWebModule(int index, ITomcatWebModule module); - - /** - * @see ITomcatConfigurationWorkingCopy#removeWebModule(int) - */ - public abstract void removeWebModule(int index); - - /** - * Gets the work directory for the server. - * - * @param basePath path to server runtime directory - * @return path for the server's work directory - */ - public abstract IPath getServerWorkDirectory(IPath basePath); - - /** - * Gets the work directory for the specified module on the - * server. - * - * @param basePath path to server runtime directory - * @param module a Tomcat web module - * @return path for the module's work directory on the server - */ - public abstract IPath getContextWorkDirectory(IPath basePath, ITomcatWebModule module); - - /** - * Return a string representation of this object. - * @return java.lang.String - */ - public String toString() { - return "TomcatConfiguration[" + getFolder() + "]"; - } -} |