This commit was manufactured by cvs2svn to create tag 'v20050419'.
diff --git a/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/GenericRuntimeUtil.java b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/GenericRuntimeUtil.java
new file mode 100644
index 0000000..a034a14
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.core/sjavacore/org/eclipse/jst/server/core/GenericRuntimeUtil.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 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.jst.server.core;
+
+import org.eclipse.wst.server.core.IRuntime;
+/**
+ * Utility methods for the generic J2EE runtime.
+ *
+ * @since 1.0
+ */
+public class GenericRuntimeUtil {
+ protected static final String RUNTIME_TYPE_ID = "org.eclipse.jst.server.core.runtimeType";
+
+ /**
+ * Cannot create GenericRuntimeUtil - use static methods.
+ */
+ private GenericRuntimeUtil() {
+ // can't create
+ }
+
+ /**
+ * Returns <code>true</code> if the given runtime is a generic J2EE runtime, and
+ * <code>false</code> otherwise. The runtime may not be null.
+ *
+ * @param runtime
+ * @return <code>true</code> if
+ */
+ public static boolean isGenericJ2EERuntime(IRuntime runtime) {
+ if (runtime == null)
+ throw new IllegalArgumentException();
+
+ return (runtime.getRuntimeType() != null &&
+ runtime.getRuntimeType().getId().startsWith(RUNTIME_TYPE_ID));
+ }
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerBehaviour.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerBehaviour.java
index be3d36a..1c31b53 100644
--- a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerBehaviour.java
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/internal/GenericServerBehaviour.java
@@ -431,7 +431,6 @@
}
public void initialize() {
super.initialize();
- setModules(getServer().getModules());
}
public void publishFinish(IProgressMonitor monitor) throws CoreException {
IModule[] modules = this.getServer().getModules();
diff --git a/plugins/org.eclipse.jst.server.generic.modules/.cvsignore b/plugins/org.eclipse.jst.server.generic.modules/.cvsignore
deleted file mode 100644
index 42654c1..0000000
--- a/plugins/org.eclipse.jst.server.generic.modules/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-build.xml
-commonmodules.jar
-org.eclipse.jst.server.generic.modules_1.0.0.jar
-temp.folder
diff --git a/plugins/org.eclipse.jst.server.generic.modules/.project b/plugins/org.eclipse.jst.server.generic.modules/.project
deleted file mode 100644
index af14ba8..0000000
--- a/plugins/org.eclipse.jst.server.generic.modules/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.jst.server.generic.ui</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.jst.server.generic.ui/.classpath b/plugins/org.eclipse.jst.server.generic.ui/.classpath
deleted file mode 100644
index 065ac06..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.eclipse.jst.server.generic.ui/.cvsignore b/plugins/org.eclipse.jst.server.generic.ui/.cvsignore
deleted file mode 100644
index 058a1b7..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-bin
-build.xml
-genericui.jar
-org.eclipse.jst.server.generic.ui_1.0.0.jar
-temp.folder
diff --git a/plugins/org.eclipse.jst.server.generic.ui/.project b/plugins/org.eclipse.jst.server.generic.ui/.project
deleted file mode 100644
index af14ba8..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.eclipse.jst.server.generic.ui</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/plugins/org.eclipse.jst.server.generic.ui/build.properties b/plugins/org.eclipse.jst.server.generic.ui/build.properties
deleted file mode 100644
index 6b4a2a0..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/build.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-source.genericui.jar = src/
-output.genericui.jar = bin/
-bin.includes = plugin.xml,\
- genericui.jar,\
- icons/,\
- plugin.properties
-src.includes = icons/,\
- plugin.xml,\
- plugin.properties,\
- src/
diff --git a/plugins/org.eclipse.jst.server.generic.ui/icons/obj16/lomboz.gif b/plugins/org.eclipse.jst.server.generic.ui/icons/obj16/lomboz.gif
deleted file mode 100644
index 5b3a198..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/icons/obj16/lomboz.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.jst.server.generic.ui/icons/wizban/logo.gif b/plugins/org.eclipse.jst.server.generic.ui/icons/wizban/logo.gif
deleted file mode 100644
index 854d525..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/icons/wizban/logo.gif
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.jst.server.generic.ui/plugin.properties b/plugins/org.eclipse.jst.server.generic.ui/plugin.properties
deleted file mode 100644
index 8a61dcb..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/plugin.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-pluginName=Generic Server Plugin UI
-providerName=Eteration.com
-pluginDescription=UI Components for the generic server plugin.
-
diff --git a/plugins/org.eclipse.jst.server.generic.ui/plugin.xml b/plugins/org.eclipse.jst.server.generic.ui/plugin.xml
deleted file mode 100644
index 69538c2..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/plugin.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
- id="org.eclipse.jst.server.generic.ui"
- name="%pluginName"
- version="1.0.0"
- provider-name="%providerName"
- class="org.eclipse.jst.server.generic.ui.internal.GenericUiPlugin"
- description="%pluginDescription">
-
- <runtime>
- <library name="genericui.jar">
- <export name="*"/>
- </library>
- </runtime>
-
- <requires>
- <import plugin="org.eclipse.ui"/>
- <import plugin="org.eclipse.core.runtime"/>
- <import plugin="org.eclipse.wst.server.ui"/>
- <import plugin="org.eclipse.debug.ui"/>
- <import plugin="org.eclipse.jdt.debug.ui"/>
- <import plugin="org.eclipse.jst.server.generic.core"/>
- <import plugin="org.eclipse.wst.server.core" />
- </requires>
-
- <extension point="org.eclipse.wst.server.ui.editorPages">
- <page
- id="org.eclipse.jst.server.generic.configuration.editor.webmodule"
- order="20"
- name="Lomboz server Edit"
- typeIds="org.eclipse.jst.server.generic.*"
- class="org.eclipse.jst.server.generic.ui.internal.GenericServerEditorPartFactory"/>
- </extension>
-
- <extension point="org.eclipse.wst.server.ui.editorPageSections">
- <section
- id="org.eclipse.jst.server.generic.editor.general"
- order="0"
- insertionId="org.eclipse.wst.server.editor.overview.left"
- typeIds="org.eclipse.jst.server.generic.*"
- class="org.eclipse.jst.server.generic.ui.internal.GenericServerEditorSectionFactory"/>
- </extension>
-
- <extension point="org.eclipse.debug.ui.launchConfigurationTypeImages">
- <launchConfigurationTypeImage
- id="org.eclipse.jst.server.generic.image.ui.launchConfigurationTypeImage"
- configTypeID="org.eclipse.jst.server.generic.core.launchConfigurationType"
- icon="icons/obj16/lomboz.gif">
- </launchConfigurationTypeImage>
- </extension>
-
- <extension point="org.eclipse.debug.ui.launchConfigurationTabGroups">
- <launchConfigurationTabGroup
- id="org.eclipse.jst.server.generic.ui.internal.launchConfigurationTabGroup"
- type="org.eclipse.jst.server.generic.core.launchConfigurationType"
- class="org.eclipse.jst.server.generic.ui.internal.GenericLaunchConfigurationTabGroup">
- </launchConfigurationTabGroup>
- </extension>
-
-
-</plugin>
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericLaunchConfigurationTabGroup.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericLaunchConfigurationTabGroup.java
deleted file mode 100644
index 195f272..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericLaunchConfigurationTabGroup.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 Eteration Bilisim A.S.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * Gorkem Ercan - initial API and implementation
- * Naci M. Dai
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ETERATION A.S. OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Eteration Bilisim A.S. For more
- * information on eteration, please see
- * <http://www.eteration.com/>.
- ***************************************************************************/
-package org.eclipse.jst.server.generic.ui.internal;
-
-import org.eclipse.debug.ui.AbstractLaunchConfigurationTabGroup;
-import org.eclipse.debug.ui.CommonTab;
-import org.eclipse.debug.ui.EnvironmentTab;
-import org.eclipse.debug.ui.ILaunchConfigurationDialog;
-import org.eclipse.debug.ui.ILaunchConfigurationTab;
-import org.eclipse.debug.ui.sourcelookup.SourceLookupTab;
-import org.eclipse.jdt.debug.ui.launchConfigurations.JavaArgumentsTab;
-import org.eclipse.jdt.debug.ui.launchConfigurations.JavaClasspathTab;
-import org.eclipse.jdt.debug.ui.launchConfigurations.JavaJRETab;
-import org.eclipse.wst.server.ui.ServerLaunchConfigurationTab;
-
-
-public class GenericLaunchConfigurationTabGroup extends AbstractLaunchConfigurationTabGroup{
- /**
- * @see org.eclipse.debug.ui.ILaunchConfigurationTabGroup ILaunchConfigurationTabGroup#createTabs(ILaunchConfigurationDialog, String)
- */
- public void createTabs(ILaunchConfigurationDialog dialog, String mode) {
- ILaunchConfigurationTab[] tabs = new ILaunchConfigurationTab[7];
- tabs[0] = new ServerLaunchConfigurationTab(new String[] { "org.eclipse.jst.server.generic" });
- tabs[0].setLaunchConfigurationDialog(dialog);
- tabs[1] = new JavaArgumentsTab();
- tabs[1].setLaunchConfigurationDialog(dialog);
- tabs[2] = new JavaClasspathTab();
- tabs[2].setLaunchConfigurationDialog(dialog);
- tabs[3] = new SourceLookupTab();
- tabs[3].setLaunchConfigurationDialog(dialog);
- tabs[4] = new EnvironmentTab();
- tabs[4].setLaunchConfigurationDialog(dialog);
- tabs[5] = new JavaJRETab();
- tabs[5].setLaunchConfigurationDialog(dialog);
- tabs[6] = new CommonTab();
- tabs[6].setLaunchConfigurationDialog(dialog);
- setTabs(tabs);
- }}
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerEditorPartFactory.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerEditorPartFactory.java
deleted file mode 100644
index bb0d6ea..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerEditorPartFactory.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 Eteration Bilisim A.S.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * Gorkem Ercan - initial API and implementation
- * Naci M. Dai
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ETERATION A.S. OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Eteration Bilisim A.S. For more
- * information on eteration, please see
- * <http://www.eteration.com/>.
- ***************************************************************************/
-package org.eclipse.jst.server.generic.ui.internal;
-
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.ui.editor.ServerEditorPartFactoryDelegate;
-
-
-public class GenericServerEditorPartFactory extends
- ServerEditorPartFactoryDelegate {
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.ui.editor.IServerEditorPartFactoryDelegate#shouldCreatePage(org.eclipse.wst.server.core.IServer, org.eclipse.wst.server.core.IServerConfiguration)
- */
- public boolean shouldCreatePage(IServer server) {
- // TODO Auto-generated method stub
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.ui.editor.IServerEditorPartFactoryDelegate#createPage()
- */
- public IEditorPart createPage() {
- // TODO Auto-generated method stub
- return null;
- }
-
-}
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerEditorSectionFactory.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerEditorSectionFactory.java
deleted file mode 100644
index c385397..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerEditorSectionFactory.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.eclipse.jst.server.generic.ui.internal;
-/*******************************************************************************
- * Copyright (c) 2004 Eteration Bilisim A.S.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * Gorkem Ercan - initial API and implementation
- * Naci M. Dai
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ETERATION A.S. OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Eteration Bilisim A.S. For more
- * information on eteration, please see
- * <http://www.eteration.com/>.
- ***************************************************************************/
-
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.ui.editor.IServerEditorSection;
-import org.eclipse.wst.server.ui.editor.ServerEditorPageSectionFactoryDelegate;
-
-public class GenericServerEditorSectionFactory extends
- ServerEditorPageSectionFactoryDelegate {
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.ui.editor.IServerEditorPageSectionFactoryDelegate#shouldCreateSection(org.eclipse.wst.server.core.IServer, org.eclipse.wst.server.core.IServerConfiguration)
- */
- public boolean shouldCreateSection(IServer server) {
- // TODO Auto-generated method stub
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.ui.editor.IServerEditorPageSectionFactoryDelegate#createSection()
- */
- public IServerEditorSection createSection() {
- // TODO Auto-generated method stub
- return null;
- }
-
-}
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerRuntimeWizardFragment.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerRuntimeWizardFragment.java
deleted file mode 100644
index f331707..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerRuntimeWizardFragment.java
+++ /dev/null
@@ -1,234 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 Eteration Bilisim A.S.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * Gorkem Ercan - initial API and implementation
- * Naci M. Dai
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Eteration Bilisim A.S. For more
- * information on eteration, please see
- * <http://www.eteration.com/>.
- ***************************************************************************/
-package org.eclipse.jst.server.generic.ui.internal;
-
-import java.util.Map;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jface.dialogs.IMessageProvider;
-import org.eclipse.jst.server.generic.core.internal.GenericServerRuntime;
-import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.wst.server.core.IRuntime;
-import org.eclipse.wst.server.core.IRuntimeType;
-import org.eclipse.wst.server.core.IRuntimeWorkingCopy;
-import org.eclipse.wst.server.core.ServerCore;
-import org.eclipse.wst.server.core.TaskModel;
-import org.eclipse.wst.server.core.model.RuntimeDelegate;
-import org.eclipse.wst.server.ui.wizard.IWizardHandle;
-
-/**
- * A serverDefinitionType aware wizard for defining runtimes.
- *
- * @author Gorkem Ercan
- */
-public class GenericServerRuntimeWizardFragment extends ServerDefinitionTypeAwareWizardFragment {
-
- private ServerTypeDefinitionGroup fServerPanel;
- private RuntimeDelegate fRuntimeDelegate;
- private Map fServerRuntimeProperties;
-
- /**
- * Constructor
- */
- public GenericServerRuntimeWizardFragment() {
- super();
- }
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.ui.wizard.IWizardFragment#isComplete()
- */
- public boolean isComplete() {
- RuntimeDelegate runtime = getRuntimeDelegate();
- if (runtime == null)
- return false;
- IStatus status = runtime.validate();
- return (status != null && status.isOK());
- }
-
- public void createContent(Composite parent, IWizardHandle handle) {
- createServerDefinitionTypeComposite(parent);
- }
-
-
-
- /**
- * @param selected
- */
- private void createServerDefinitionTypeComposite(Composite parent) {
- Map properties= null;
- if(getRuntimeDelegate()!=null)
- properties = getRuntimeDelegate().getAttribute(GenericServerRuntime.SERVER_INSTANCE_PROPERTIES,(Map)null);
- ServerRuntime definition = getServerTypeDefinition(getServerDefinitionId(),properties);
- fServerPanel = new ServerTypeDefinitionGroup(this,definition,ServerTypeDefinitionGroup.CONTEXT_RUNTIME,properties,parent);
- }
-
- private String getServerDefinitionId()
- {
- String currentDefinition= null;
- if(getRuntimeDelegate()!=null)
- currentDefinition = getRuntimeDelegate().getRuntime().getRuntimeType().getId();
- if(currentDefinition!= null && currentDefinition.length()>0)
- {
- return currentDefinition;
- }
- return null;
- }
-
-
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.ui.wizard.IWizardFragment#enter()
- */
- public void enter() {
-
- String serverDefinition = getServerDefinitionId();
- if(serverDefinition!=null && serverDefinition.length()>0)
- {
- Map properties = null;
- if (getRuntimeDelegate() != null) {
- properties = getRuntimeDelegate().getAttribute(GenericServerRuntime.SERVER_INSTANCE_PROPERTIES,(Map) null);
- }
- ServerRuntime definition = getServerTypeDefinition(serverDefinition,properties);
-// fServerPanel.reset(definition,ServerTypeDefinitionGroup.CONTEXT_RUNTIME, properties);
- }
- else{
- populateRuntimeDelegateProperties();
- }
- validate();
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.wst.server.ui.wizard.IWizardFragment#exit()
- */
- public void exit() {
- try {
- getRuntimeDelegate().getRuntimeWorkingCopy().save(true,new NullProgressMonitor());
- }
- catch(Exception e){//unhandled
- }
- fRuntimeDelegate=null;
- }
-
- protected Map getServerRuntimeProperties(){
- return fServerRuntimeProperties;
- }
-
- private String createName()
- {
- RuntimeDelegate dl = getRuntimeDelegate();
- IRuntimeType runtimeType = dl.getRuntime().getRuntimeType();
- String name = GenericServerUIMessages.getFormattedString("runtimeName", new String[] {runtimeType.getName()});
- IRuntime[] list = ServerCore.getRuntimes();
- int suffix = 1;
- String suffixName=name;
- for(int i=0;i<list.length;i++)
- {
- if(list[i].getName().equals(name)|| list[i].getName().equals(suffixName))
- suffix++;
- suffixName= name+" "+suffix;
- }
-
- if(suffix>1)
- return suffixName;
- return name;
- }
-
- private RuntimeDelegate getRuntimeDelegate()
- {
- if(fRuntimeDelegate == null)
- {
- IRuntimeWorkingCopy wc = (IRuntimeWorkingCopy)getTaskModel().getObject(TaskModel.TASK_RUNTIME);
- if(wc==null)
- return null;
- fRuntimeDelegate = (RuntimeDelegate)wc.getAdapter(RuntimeDelegate.class);
- }
- return fRuntimeDelegate;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jst.server.generic.internal.ui.ServerDefinitionTypeAwareWizardFragment#description()
- */
- public String description() {
- String rName = getRuntimeName();
- if(rName == null || rName.length()<1)
- rName="Generic";
- return GenericServerUIMessages.getFormattedString("runtimeWizardDescription",new String[] {rName});
- }
- /* (non-Javadoc)
- * @see org.eclipse.jst.server.generic.internal.ui.ServerDefinitionTypeAwareWizardFragment#title()
- */
- public String title() {
- String rName = getRuntimeName();
- if(rName == null || rName.length()<1)
- rName="Generic";
- return GenericServerUIMessages.getFormattedString("runtimeWizardTitle",new String[]{rName});
- }
-
- private String getRuntimeName()
- {
- if(getRuntimeDelegate()!=null && getRuntimeDelegate().getRuntime()!=null)
- return getRuntimeDelegate().getRuntime().getName();
- return null;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jst.server.generic.internal.ui.ServerDefinitionTypeAwareWizardFragment#serverDefinitionTypePropertiesChanged()
- */
- public void serverDefinitionTypePropertiesChanged() {
- populateRuntimeDelegateProperties();
- validate();
- }
- /**
- *
- */
- private void populateRuntimeDelegateProperties() {
-
- fServerRuntimeProperties = fServerPanel.getProperties();
- Map properties = getServerRuntimeProperties();
- RuntimeDelegate dl = getRuntimeDelegate();
- dl.setAttribute(GenericServerRuntime.SERVER_DEFINITION_ID, getRuntimeDelegate().getRuntime().getRuntimeType().getId());
- dl.setAttribute(GenericServerRuntime.SERVER_INSTANCE_PROPERTIES,properties);
- dl.getRuntimeWorkingCopy().setName(createName());
- }
-
- private void validate()
- {
- if (getRuntimeDelegate() == null) {
- this.getWizard().setMessage("", IMessageProvider.ERROR);
- return;
- }
- IStatus status = getRuntimeDelegate().validate();
- if (status == null || status.isOK())
- getWizard().setMessage(null, IMessageProvider.NONE);
- else
- getWizard().setMessage(status.getMessage(), IMessageProvider.ERROR);
- getWizard().update();
- }
-}
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerUIMessages.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerUIMessages.java
deleted file mode 100644
index 03eb33f..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerUIMessages.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.eclipse.jst.server.generic.ui.internal;
-
-import java.text.MessageFormat;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * Helper class to get messages
- *
- * @author Gorkem Ercan
- */
-public class GenericServerUIMessages {
-
- private static final String RESOURCE_BUNDLE= "org.eclipse.jst.server.generic.ui.internal.GenericServerUIMessages";//$NON-NLS-1$
-
- private static ResourceBundle fResourceBundle= ResourceBundle.getBundle(RESOURCE_BUNDLE);
-
- private GenericServerUIMessages() {
- }
-
- /**
- * Return string from the resource bundle.
- *
- * @param key the string used to get the bundle value, must not be <code>null</code>
- * @return the string from the resource bundle
- */
- public static String getString(String key) {
- try {
- return fResourceBundle.getString(key);
- } catch (MissingResourceException e) {
- return "!" + key + "!";
- }
- }
-
- /**
- * Gets a string from the resource bundle that is
- * formatted it with the given argument.
- *
- * @param key the string used to get the bundle value, must not be null
- * @param arg the argument used to format the string
- * @return the formatted string
- */
- public static String getFormattedString(String key, Object[] arg) {
- String format= null;
- try {
- format= fResourceBundle.getString(key);
- } catch (MissingResourceException e) {
- return "!" + key + "!";
- }
- if (arg == null)
- arg= new Object[0];
- return MessageFormat.format(format,arg );
- }
-
- /**
- * Returns a resource bundle.
- *
- * @return the resource bundle
- */
- public static ResourceBundle getResourceBundle() {
- return fResourceBundle;
- }
-}
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerUIMessages.properties b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerUIMessages.properties
deleted file mode 100644
index 987124f..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerUIMessages.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-serverWizardTitle=New {0} Server
-serverWizardDescription=Create a new {0} server
-runtimeWizardTitle=New {0} Runtime
-runtimeWizardDescription=Define a new {0} runtime
-serverTypeGroup.label.browse=Browse...
-serverName = {0}(Generic)
-runtimeName= {0}(Generic)
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerWizardFragment.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerWizardFragment.java
deleted file mode 100644
index 13a6704..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericServerWizardFragment.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 Eteration Bilisim A.S.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * Gorkem Ercan - initial API and implementation
- * Naci M. Dai
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ETERATION A.S. OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Eteration Bilisim A.S. For more
- * information on eteration, please see
- * <http://www.eteration.com/>.
- ***************************************************************************/
-package org.eclipse.jst.server.generic.ui.internal;
-
-import java.util.Map;
-
-import org.eclipse.jst.server.generic.core.internal.GenericServerRuntime;
-import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.wst.server.core.IRuntimeWorkingCopy;
-import org.eclipse.wst.server.core.IServerWorkingCopy;
-import org.eclipse.wst.server.core.TaskModel;
-import org.eclipse.wst.server.core.model.RuntimeDelegate;
-import org.eclipse.wst.server.core.model.ServerDelegate;
-import org.eclipse.wst.server.ui.wizard.IWizardHandle;
-/**
- *
- *
- * @author Gorkem Ercan
- */
-public class GenericServerWizardFragment extends ServerDefinitionTypeAwareWizardFragment
-{
-
- private ServerTypeDefinitionGroup fComposite;
- private Map fProperties;
- /* (non-Javadoc)
- * @see com.ibm.wtp.server.ui.wizard.IWizardFragment#isComplete()
- */
- public boolean isComplete() {
-
- ServerRuntime serverRuntime = getServerTypeDefinitionFor(getServer());
- if(serverRuntime==null)
- return false;
- return true;
- }
-
- public void createContent(Composite parent, IWizardHandle handle){
- createBody(parent,handle);
- }
- /**
- *
- */
- private void createBody(Composite parent, IWizardHandle handle)
- {
- IServerWorkingCopy server = getServer();
- ServerRuntime definition = getServerTypeDefinitionFor(server);
- fComposite = new ServerTypeDefinitionGroup(this, definition,ServerTypeDefinitionGroup.CONTEXT_SERVER, null,parent);
-
- }
-
- /**
- * @param server
- * @return
- */
- private ServerRuntime getServerTypeDefinitionFor(IServerWorkingCopy server) {
-
- RuntimeDelegate runtime = (RuntimeDelegate)server.getRuntime().getAdapter(RuntimeDelegate.class);
- if(runtime==null){
- IRuntimeWorkingCopy wc = (IRuntimeWorkingCopy)getTaskModel().getObject(TaskModel.TASK_RUNTIME);
- runtime= (RuntimeDelegate)wc.getAdapter(RuntimeDelegate.class);
- }
- String id = runtime.getRuntime().getRuntimeType().getId();
- if(id==null){
- return null;
- }
- Map runtimeProperties = runtime.getAttribute(GenericServerRuntime.SERVER_INSTANCE_PROPERTIES,(Map)null);
- ServerRuntime definition = getServerTypeDefinition(id,runtimeProperties);
- return definition;
- }
-
- /**
- * @return
- */
- private IServerWorkingCopy getServer() {
- IServerWorkingCopy server = (IServerWorkingCopy)getTaskModel().getObject(TaskModel.TASK_SERVER);
- return server;
- }
-
- public void enter() {
- IServerWorkingCopy server = getServer();
- ServerRuntime definition = getServerTypeDefinitionFor(server);
-// if(definition != null && fComposite!=null)
-// fComposite.reset(definition,ServerTypeDefinitionGroup.CONTEXT_SERVER,null);
- }
- public void exit(){
- fProperties = fComposite.getProperties();
- serverDefinitionTypePropertiesChanged();
- }
-
- protected Map getServerProperties(){
- return fProperties;
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jst.server.generic.internal.ui.ServerDefinitionTypeAwareWizardFragment#description()
- */
- public String description() {
- String sName = getServerName();
- if(sName==null || sName.length()<1)
- sName="Generic";
- return GenericServerUIMessages.getFormattedString("serverWizardDescription",new String[] {sName});
- }
-
- private String getServerName()
- {
- if(getServer()!=null && getServer().getRuntime()!=null)
- return getServer().getRuntime().getRuntimeType().getName();
- return null;
- }
- /* (non-Javadoc)
- * @see org.eclipse.jst.server.generic.internal.ui.ServerDefinitionTypeAwareWizardFragment#title()
- */
- public String title() {
- String sName= getServerName();
- if(sName==null || sName.length()<1)
- sName="Generic";
- return GenericServerUIMessages.getFormattedString("serverWizardTitle",new String[]{sName});
- }
-
- /* (non-Javadoc)
- * @see org.eclipse.jst.server.generic.internal.ui.ServerDefinitionTypeAwareWizardFragment#serverDefinitionTypePropertiesChanged()
- */
- public void serverDefinitionTypePropertiesChanged() {
- fProperties = fComposite.getProperties();
- IServerWorkingCopy serverWorkingCopy = getServer();
- ServerRuntime definition = getServerTypeDefinitionFor(serverWorkingCopy);
-
- serverWorkingCopy.setName(GenericServerUIMessages.getFormattedString("serverName",new String[] {definition.getName()}));
- ServerDelegate dl= (ServerDelegate)serverWorkingCopy.getAdapter(ServerDelegate.class);
- dl.setAttribute(GenericServerRuntime.SERVER_INSTANCE_PROPERTIES,getServerProperties());
- }
-}
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericUiPlugin.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericUiPlugin.java
deleted file mode 100644
index 62febf9..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/GenericUiPlugin.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 Eteration Bilisim A.S.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * Gorkem Ercan - initial API and implementation
- * Naci M. Dai
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ETERATION A.S. OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Eteration Bilisim A.S. For more
- * information on eteration, please see
- * <http://www.eteration.com/>.
- ***************************************************************************/
-package org.eclipse.jst.server.generic.ui.internal;
-
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.eclipse.ui.plugin.*;
-import org.osgi.framework.BundleContext;
-import java.util.*;
-
-/**
- * The main plugin class to be used in the desktop.
- *
- * @author Gorkem Ercan
- */
-public class GenericUiPlugin extends AbstractUIPlugin {
-
- public static final String WIZBAN_IMAGE = "genericlogo";
- //The shared instance.
- private static GenericUiPlugin plugin;
- //Resource bundle.
- private ResourceBundle resourceBundle;
-
- /**
- * The constructor.
- */
- public GenericUiPlugin() {
- super();
- plugin = this;
- try {
- resourceBundle = ResourceBundle.getBundle("org.eclipse.jst.server.generic.ui.GenericUiPluginResources");
- } catch (MissingResourceException x) {
- resourceBundle = null;
- }
- }
-
- /**
- * This method is called upon plug-in activation
- */
- public void start(BundleContext context) throws Exception {
- super.start(context);
- }
-
- /**
- * This method is called when the plug-in is stopped
- */
- public void stop(BundleContext context) throws Exception {
- super.stop(context);
- }
-
- /**
- * Returns the shared instance.
- */
- public static GenericUiPlugin getDefault() {
- return plugin;
- }
-
- /**
- * Returns the string from the plugin's resource bundle,
- * or 'key' if not found.
- */
- public static String getResourceString(String key) {
- ResourceBundle bundle = GenericUiPlugin.getDefault().getResourceBundle();
- try {
- return (bundle != null) ? bundle.getString(key) : key;
- } catch (MissingResourceException e) {
- return key;
- }
- }
-
- protected ImageRegistry createImageRegistry() {
- ImageRegistry registry = new ImageRegistry();
- ImageDescriptor desc = ImageDescriptor.createFromURL(getDefault().getBundle().getEntry("/icons/wizban/logo.gif"));
- registry.put(WIZBAN_IMAGE,desc);
- return registry;
- }
- public ImageDescriptor imageDescriptor(String key){
- return getImageRegistry().getDescriptor(key);
- }
- /**
- * Returns the plugin's resource bundle,
- */
- public ResourceBundle getResourceBundle() {
- return resourceBundle;
- }
-}
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/ServerDefinitionTypeAwareWizardFragment.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/ServerDefinitionTypeAwareWizardFragment.java
deleted file mode 100644
index 8cdfd0d..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/ServerDefinitionTypeAwareWizardFragment.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Created on Oct 19, 2004
- *
- * TODO To change the template for this generated file go to
- * Window - Preferences - Java - Code Style - Code Templates
- */
-package org.eclipse.jst.server.generic.ui.internal;
-
-import java.util.Map;
-
-import org.eclipse.jst.server.generic.core.internal.CorePlugin;
-import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.wst.server.ui.wizard.IWizardHandle;
-import org.eclipse.wst.server.ui.wizard.WizardFragment;
-
-/**
- *
- *
- * @author Gorkem Ercan
- */
-public abstract class ServerDefinitionTypeAwareWizardFragment extends WizardFragment {
-
- private IWizardHandle fWizard;
- public boolean hasComposite() {
- return true;
- }
-
- public Composite createComposite(Composite parent, IWizardHandle handle) {
-
- this.fWizard = handle;
- Composite container = new Composite(parent, SWT.NONE);
- container.setLayoutData(new GridData(GridData.FILL_BOTH));
- GridLayout grid = new GridLayout(1,false);
- container.setLayout(grid);
- handle.setImageDescriptor(GenericUiPlugin.getDefault().imageDescriptor(GenericUiPlugin.WIZBAN_IMAGE));
- handle.setTitle(title());
- handle.setDescription(description());
- createContent(container,handle);
- return container;
- }
- public IWizardHandle getWizard(){
- return fWizard;
- }
- /**
- * Returns the description to be displayed on the wizard head.
- * @return
- */
- public abstract String description();
- /**
- * Returns the title of the wizard.
- * @return
- */
- public abstract String title();
-
- public abstract void createContent(Composite parent, IWizardHandle handle);
-
- public abstract void serverDefinitionTypePropertiesChanged();
-
- protected ServerRuntime getServerTypeDefinition(String definitionID, Map properties)
- {
- return CorePlugin.getDefault().getServerTypeDefinitionManager().getServerRuntimeDefinition(definitionID,properties);
- }
-
- protected ServerRuntime[] getAllServerDefinitionTypes()
- {
- return CorePlugin.getDefault().getServerTypeDefinitionManager().getServerTypeDefinitions();
- }
-
-}
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/ServerTypeDefinitionGroup.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/ServerTypeDefinitionGroup.java
deleted file mode 100644
index 2f66de9..0000000
--- a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/internal/ServerTypeDefinitionGroup.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004 Eteration Bilisim A.S.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * Gorkem Ercan - initial API and implementation
- * Naci M. Dai
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL ETERATION A.S. OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Eteration Bilisim A.S. For more
- * information on eteration, please see
- * <http://www.eteration.com/>.
- ***************************************************************************/
-package org.eclipse.jst.server.generic.ui.internal;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jst.server.generic.servertype.definition.Property;
-import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.DirectoryDialog;
-import org.eclipse.swt.widgets.FileDialog;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.wst.server.ui.internal.SWTUtil;
-
-
-public class ServerTypeDefinitionGroup
-{
- public static final String CONTEXT_SERVER = Property.CONTEXT_SERVER;
- public static final String CONTEXT_RUNTIME = Property.CONTEXT_RUNTIME;
-
- private ServerRuntime fServerTypeDefinition;
- private List fPropertyControls = new ArrayList();
- private Map fPropertyMap =new HashMap();
- private String fContext="undefined";
- private Composite fDefinitionComposite;
- private ServerDefinitionTypeAwareWizardFragment fAwareWizardFragment;
- private class PropertyModifyListener implements ModifyListener
- {
- /* (non-Javadoc)
- * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
- */
- public void modifyText(ModifyEvent e) {
- fAwareWizardFragment.serverDefinitionTypePropertiesChanged();
-
- }
-
- }
-
- /**
- * Construct a composite for the given ServerTypeDefinition
- *
- * @param definition
- * @param initialProperties initial values null means use default
- * @param parent
- * @param style
- */
- public ServerTypeDefinitionGroup(ServerDefinitionTypeAwareWizardFragment fragment, ServerRuntime definition, String context, Map initialProperties, Composite parent)
- {
- fAwareWizardFragment = fragment;
- initServerTypeDefinition(definition,context,initialProperties);
- createControl(parent);
- }
- private void initProperties(Map initialProperties)
- {
- if(initialProperties!= null)
- this.fPropertyMap=initialProperties;
- else
- fPropertyMap=new HashMap();
- }
-// /**
-// * Changes the values with the given ones. Renders the UI
-// * with the given new values.
-// *
-// * @param definition
-// * @param context
-// * @param initialProperties
-// */
-// public void reset(ServerRuntime definition, String context, Map initialProperties)
-// {
-// initServerTypeDefinition(definition, context, initialProperties);
-// fDefinitionGroup.setText(definition.getName());
-// Control[] allControls = fDefinitionGroup.getChildren();
-// for(int i= 0; i<allControls.length;i++)
-// {
-// Control c = allControls[i];
-// c.dispose();
-// }
-// fPropertyControls.clear();
-// createPropertyControls(fDefinitionGroup);
-//
-// fDefinitionGroup.layout(true);
-//
-// }
-
- /**
- * @param definition
- * @param context
- * @param initialProperties
- */
- private void initServerTypeDefinition(ServerRuntime definition, String context, Map initialProperties) {
- fServerTypeDefinition = definition;
- initProperties(initialProperties);
- this.fContext = context;
- }
- /**
- * @param parent
- */
- private void createControl(Composite parent) {
-
- fDefinitionComposite = new Composite(parent, SWT.SHADOW_ETCHED_IN);
- fDefinitionComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
- fDefinitionComposite.setLayout(new GridLayout(3,false));
- if(fServerTypeDefinition!=null)
- {
- createPropertyControls(fDefinitionComposite);
- }
- }
- /**
- * @param defPanel
- */
- private void createPropertyControls(Composite definitionComposite) {
- List properties = fServerTypeDefinition.getProperty();
- for(int i = 0; i<properties.size(); i++)
- {
- Property property = (Property)properties.get(i);
- if(this.fContext.equals(property.getContext()))
- createPropertyControl(definitionComposite,property);
- }
-
- }
-
- private void createPropertyControl(Composite parent, Property property)
- {
- if( "directory".equals(property.getType())) {
- Text path = createLabeledPath(property.getLabel(),getPropertyValue(property),parent);
- path.setData(property);
- fPropertyControls.add(path);
- } else if( "file".equals(property.getType())) {
- Text file = createLabeledFile(property.getLabel(),getPropertyValue(property),parent);
- file.setData(property);
- fPropertyControls.add(file);
- } else if( "string".equals(property.getType())) {
- Text str = createLabeledText(property.getLabel(),getPropertyValue(property),parent);
- str.setData(property);
- fPropertyControls.add(str);
- } else if( "boolean".equals(property.getType())) {
- Button bool =createLabeledCheck(property.getLabel(),("true".equals( getPropertyValue(property))), parent);
- bool.setData(property);
- fPropertyControls.add(bool);
- } else {
- Text defaultText= createLabeledText(property.getLabel(),getPropertyValue(property),parent);
- defaultText.setData(property);
- fPropertyControls.add(defaultText);
- }
- }
- private String getPropertyValue(Property property)
- {
- String value = property.getDefault();
- if(fPropertyMap!=null && fPropertyMap.isEmpty()==false)
- value=(String)fPropertyMap.get(property.getId());
- return value;
- }
- protected Button createLabeledCheck(String title, boolean value,
- Composite defPanel) {
- GridData gridData;
- Label label = new Label(defPanel, SWT.WRAP);
- gridData = new GridData();
- label.setLayoutData(gridData);
- label.setText(title);
-
- Button fButton = new Button(defPanel, SWT.CHECK);
-
- gridData = new GridData(GridData.FILL_HORIZONTAL
- | GridData.GRAB_HORIZONTAL);
- gridData.horizontalSpan = 2;
- fButton.setLayoutData(gridData);
- fButton.setSelection(value);
- fButton.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- fAwareWizardFragment.serverDefinitionTypePropertiesChanged();
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- // TODO Auto-generated method stub
-
- }
- });
-
- return fButton;
- }
- protected Text createLabeledFile(String title, String value,
- Composite defPanel) {
- GridData gridData;
- Label label = new Label(defPanel, SWT.WRAP);
- gridData = new GridData();
- label.setLayoutData(gridData);
- label.setText(title);
-
- final Text fText = new Text(defPanel, SWT.SHADOW_IN | SWT.BORDER);
- gridData = new GridData(GridData.FILL_HORIZONTAL
- | GridData.GRAB_HORIZONTAL);
- gridData.horizontalSpan = 1;
- fText.setLayoutData(gridData);
- fText.setText(value);
- fText.addModifyListener(new PropertyModifyListener());
- Button fButton = SWTUtil.createButton(defPanel,GenericServerUIMessages.getString("serverTypeGroup.label.browse") );
-
- fButton.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- FileDialog dlg = new FileDialog(fDefinitionComposite.getShell());
- dlg.setFileName(fText.getText());
- String res = dlg.open();
- if (res != null) {
- fText.setText(res);
- }
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- widgetSelected(e);
- }
-
- });
-
- return fText;
- }
- protected Text createLabeledPath(String title, String value,
- Composite parent) {
- GridData gridData;
- Label label = new Label(parent, SWT.WRAP);
- gridData = new GridData();
- label.setLayoutData(gridData);
- label.setText(title);
-
- final Text fText = new Text(parent, SWT.SHADOW_IN | SWT.BORDER);
- gridData = new GridData(GridData.FILL_HORIZONTAL);
- gridData.horizontalSpan = 1;
- fText.setLayoutData(gridData);
- fText.setText(value);
- fText.addModifyListener(new PropertyModifyListener());
- Button fButton = SWTUtil.createButton(parent,GenericServerUIMessages.getString("serverTypeGroup.label.browse"));
- fButton.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- DirectoryDialog dlg = new DirectoryDialog(fDefinitionComposite.getShell());
- dlg.setFilterPath(fText.getText());
- String res = dlg.open();
- if (res != null) {
- fText.setText(res);
- }
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- widgetSelected(e);
- }
-
- });
-
- return fText;
- }
- protected Text createLabeledText(String title, String value,
- Composite defPanel) {
- GridData gridData;
- Label label = new Label(defPanel, SWT.WRAP);
- gridData = new GridData();
- label.setLayoutData(gridData);
- label.setText(title);
-
- Text fText = new Text(defPanel, SWT.SHADOW_IN | SWT.BORDER);
- gridData = new GridData(GridData.FILL_HORIZONTAL
- | GridData.GRAB_HORIZONTAL);
- gridData.horizontalSpan = 2;
- fText.setLayoutData(gridData);
- fText.setText(value);
- fText.addModifyListener(new PropertyModifyListener());
- return fText;
- }
- public Map getProperties()
- {
- for(int i=0; i<fPropertyControls.size();i++)
- {
- if(fPropertyControls.get(i)instanceof Button)
- {
- Button button = (Button)fPropertyControls.get(i);
- Property prop = (Property)button.getData();
- fPropertyMap.put(prop.getId(),Boolean.toString(button.getSelection()));
- }
- else
- {
- Text text = (Text)fPropertyControls.get(i);
- Property prop = (Property)text.getData();
- fPropertyMap.put(prop.getId(),text.getText());
- }
- }
- return fPropertyMap;
- }
-}
diff --git a/plugins/org.eclipse.wst.internet.monitor.core/monitorcore/org/eclipse/wst/internet/monitor/core/ContentFilterDelegate.java b/plugins/org.eclipse.wst.internet.monitor.core/monitorcore/org/eclipse/wst/internet/monitor/core/ContentFilterDelegate.java
new file mode 100644
index 0000000..f4e08e4
--- /dev/null
+++ b/plugins/org.eclipse.wst.internet.monitor.core/monitorcore/org/eclipse/wst/internet/monitor/core/ContentFilterDelegate.java
@@ -0,0 +1,49 @@
+/**********************************************************************
+ * Copyright (c) 2004, 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.wst.internet.monitor.core;
+
+import java.io.IOException;
+/**
+ * A content filter that filters contents from the monitor traffic on a request.
+ * <p>
+ * This abstract class is intended to be subclassed only by clients
+ * to extend the <code>contentFilters</code> extension point.
+ * The subclass must have a public 0-argument constructor, which will be used
+ * automatically to instantiate the delegate when required.
+ * </p>
+ * <p>
+ * [issue: The notion of content filters is a UI/presentation
+ * concern, not something that is makes sense to have as core
+ * functionality. The contentFilters extension point, IContentFilter,
+ * and ContentFilterDelegate should all move to the o.e.wst.internet.monitor.ui
+ * plug-in.]
+ * [issue: CS - I'd echo the comment above that this seems like a UI concern.
+ * I noticed there's also a viewer on the UI side, so i'm not sure how these would interact.
+ * I assume that filters operate on the byte stream and aren't concerned with UI presentation...
+ * but usually UI's and filters are tightly coupled.
+ * </p>
+ *
+ * @since 1.0
+ */
+public abstract class ContentFilterDelegate {
+ /**
+ * Filter the given content from the given request. The content that has been filtered out will
+ * not be shown to clients of the TCP/IP monitor.
+ *
+ * @param request the request that the filter will be performed on
+ * @param isRequest set to true if the content filter applies to request monitor traffic,
+ * or set to false if the content filter applies to the response monitor traffic
+ * @param content the message content to be filtered out
+ * @return the filtered content
+ * @throws IOException if there is an error while parsing or filtering the content
+ */
+ public abstract byte[] filter(Request request, boolean isRequest, byte[] content) throws IOException;
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.internet.monitor.core/schema/contentFilters.exsd b/plugins/org.eclipse.wst.internet.monitor.core/schema/contentFilters.exsd
new file mode 100644
index 0000000..9549579
--- /dev/null
+++ b/plugins/org.eclipse.wst.internet.monitor.core/schema/contentFilters.exsd
@@ -0,0 +1,131 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.internet.monitor.core">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.wst.internet.monitor.core" id="contentFilters" name="Content Filters"/>
+ </appInfo>
+ <documentation>
+ This extension point is used to filter content received in a monitor.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="filter" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="filter">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="name"/>
+ </appInfo>
+ </annotation>
+ <complexType>
+ <sequence>
+ </sequence>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ specifies a unique identifier for this extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ specifies the fully qualified name of a Java class that extends <samp>org.eclipse.wst.internet.monitor.core.ContentFilterDelegate</samp>.
+Content filter instances of this type will delegate to instances of this class.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.wst.internet.monitor.core.ContentFilterDelegate"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string" use="required">
+ <annotation>
+ <documentation>
+ a translatable name used to identify the filter
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="order" type="int">
+ <annotation>
+ <documentation>
+ an integer used to order filters relative to each other. Lower orders are processed first
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example of a content filter extension point:
+
+<p>
+<pre>
+ <extension point="org.eclipse.wst.internet.monitor.core.contentFilter">
+ <filter
+ id="com.example.ExampleIdentifier"
+ name="%exampleName"
+ class="com.example.ExampleContentFilter"/>
+ </extension>
+</pre>
+</p>
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ Value of the attribute <b>class</b> must be a fully qualified name of a Java class that extends the abstract class <b>org.eclipse.wst.internet.monitor.core.ContentFilterDelegate</b>.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2003, 2004 IBM Corporation and others.<br>
+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
+<a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/MonitorUICore.java b/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/MonitorUICore.java
new file mode 100644
index 0000000..6a0a756
--- /dev/null
+++ b/plugins/org.eclipse.wst.internet.monitor.ui/monitorui/org/eclipse/wst/internet/monitor/ui/MonitorUICore.java
@@ -0,0 +1,41 @@
+/**********************************************************************
+ * Copyright (c) 2004, 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.wst.internet.monitor.ui;
+
+import org.eclipse.wst.internet.monitor.core.Request;
+import org.eclipse.wst.internet.monitor.ui.internal.MonitorUIPlugin;
+/**
+ * Main class for access to the monitor UI.
+ * <p>
+ * This class provides all functionality through static members. It is not intended
+ * to be instantiated or subclassed.
+ * </p>
+ *
+ * @since 1.0
+ */
+public final class MonitorUICore {
+ /**
+ * Cannot create MonitorUICore - use static methods.
+ */
+ private MonitorUICore() {
+ // can't create
+ }
+
+ /**
+ * Returns an array of the requests currently being displayed in the TCP/IP
+ * monitor view.
+ *
+ * @return an array of requests
+ */
+ public static Request[] getRequests() {
+ return MonitorUIPlugin.getInstance().getRequests();
+ }
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/schema/serverLocators.exsd b/plugins/org.eclipse.wst.server.core/schema/serverLocators.exsd
new file mode 100644
index 0000000..82cd3ec
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.core/schema/serverLocators.exsd
@@ -0,0 +1,127 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.server.core">
+<annotation>
+ <appInfo>
+ <meta.schema plugin="org.eclipse.wst.server.core" id="serverLocators" name="Server Locators"/>
+ </appInfo>
+ <documentation>
+ This extension point is used to locate new servers on the local or remote machines.
+ </documentation>
+ </annotation>
+
+ <element name="extension">
+ <complexType>
+ <sequence>
+ <element ref="serverLocator" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="point" type="string" use="required">
+ <annotation>
+ <documentation>
+ a fully qualified identifier of the target extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="id" type="string">
+ <annotation>
+ <documentation>
+ an optional identifier of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+ an optional name of the extension instance
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="serverLocator">
+ <annotation>
+ <appInfo>
+ <meta.element labelAttribute="name"/>
+ </appInfo>
+ </annotation>
+ <complexType>
+ <attribute name="id" type="string" use="required">
+ <annotation>
+ <documentation>
+ specifies a unique identifier for this extension point
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ specifies the fully qualified name of the Java class that implements <samp>ServerLocatorDelegate</samp>.
+Server locator instances of this type will delegate to instances of this class.
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java"/>
+ </appInfo>
+ </annotation>
+ </attribute>
+ <attribute name="supportsRemoteHosts" type="string" use="required">
+ <annotation>
+ <documentation>
+ local and/or remote
+ </documentation>
+ </annotation>
+ </attribute>
+ <attribute name="typeIds" type="string" use="required">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="examples"/>
+ </appInfo>
+ <documentation>
+ The following is an example of a server locator extension point:
+
+<p>
+<pre>
+ <extension point="org.eclipse.wst.server.core.serverLocators">
+ <serverLocator
+ id="com.example.locator"
+ name="%serverLocatorName"
+ description="%serverLocatorDescription"
+ class="com.example.ExampleServerLocator"/>
+ </extension>
+</pre>
+</p>
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="apiInfo"/>
+ </appInfo>
+ <documentation>
+ Value of the attribute <b>class</b> must be a fully qualified name of a Java class that implements the interface <b>org.eclipse.wst.server.core.model.ServerLocatorDelegate</b>.
+ </documentation>
+ </annotation>
+
+ <annotation>
+ <appInfo>
+ <meta.section type="copyright"/>
+ </appInfo>
+ <documentation>
+ Copyright (c) 2000, 2003 IBM Corporation and others.<br>
+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
+<a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
+ </documentation>
+ </annotation>
+
+</schema>
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleFactoryListener.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleFactoryListener.java
new file mode 100644
index 0000000..fb77448
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleFactoryListener.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 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.wst.server.core.model;
+/**
+ *
+ *
+ * @since 1.0
+ */
+public interface IModuleFactoryListener {
+ /**
+ * Fired when modules have been added or removed from this factory.
+ *
+ * @param event org.eclipse.wst.server.core.model.ModuleFactoryEvent
+ */
+ public void moduleFactoryChanged(ModuleFactoryEvent event);
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleListener.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleListener.java
new file mode 100644
index 0000000..532ceb7
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IModuleListener.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 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.wst.server.core.model;
+/**
+ *
+ * @since 1.0
+ */
+public interface IModuleListener {
+ /**
+ * A module has been changed as specified in the event.
+ *
+ * @param event org.eclipse.wst.server.core.model.ModuleEvent
+ */
+ public void moduleChanged(ModuleEvent event);
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IRunningActionServer.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IRunningActionServer.java
new file mode 100644
index 0000000..86889f0
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/IRunningActionServer.java
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 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.wst.server.core.model;
+/**
+ * This interface is a tag for a server that should be running before calling
+ * modifyModules(). It will be implemented by delegate classes of servers that
+ * should be started before calling API.
+ *
+ * @since 1.0
+ */
+public interface IRunningActionServer {
+ // marker interface
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleEvent.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleEvent.java
new file mode 100644
index 0000000..4aab6bc
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleEvent.java
@@ -0,0 +1,102 @@
+/**********************************************************************
+ * Copyright (c) 2003, 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.wst.server.core.model;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.wst.server.core.IModule;
+/**
+ * An event fired when a module changes.
+ *
+ * @since 1.0
+ */
+public class ModuleEvent {
+ private IModule module;
+ private boolean isChanged;
+ private IModule[] added;
+ private IModule[] changed;
+ private IModule[] removed;
+
+ class IModuleArtifact {
+ IPath path;
+ long timestamp;
+ }
+
+ /**
+ * Create a new module event.
+ *
+ * @param module the module that has been changed
+ * @param isChanged true if the module has changed
+ * @param added added child modules
+ * @param changed changed child modules
+ * @param removed removed child modules
+ */
+ public ModuleEvent(IModule module, boolean isChanged, IModule[] added, IModule[] changed, IModule[] removed) {
+ this.module = module;
+ this.isChanged = isChanged;
+ this.added = added;
+ this.changed = changed;
+ this.removed = removed;
+ }
+
+ /**
+ * Returns the module that has been changed.
+ *
+ * @return the module
+ */
+ public IModule getModule() {
+ return module;
+ }
+
+ /**
+ * Returns true if this module's settings have changed.
+ *
+ * @return <code>true</code> if the contents have changed
+ */
+ public boolean isChanged() {
+ return isChanged;
+ }
+
+ /**
+ * Returns any child modules that have been added.
+ *
+ * @return the added child modules, or null if no modules have been added
+ */
+ public IModule[] getAddedChildModules() {
+ return added;
+ }
+
+ /**
+ * Returns any child modules that have been changed.
+ *
+ * @return the changed child modules, or null if no modules have been changed
+ */
+ public IModule[] getChangedChildModules() {
+ return changed;
+ }
+
+ /**
+ * Returns any child modules that have been removed.
+ *
+ * @return the removed child modules, or null if no modules have been removed
+ */
+ public IModule[] getRemovedChildModules() {
+ return removed;
+ }
+
+ /**
+ * Returns the module artifacts that have changed.
+ *
+ * @return the changed module artifacts
+ */
+ public IModuleArtifact[] getChangedArtifacts() {
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleFactoryEvent.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleFactoryEvent.java
new file mode 100644
index 0000000..f41a880
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ModuleFactoryEvent.java
@@ -0,0 +1,51 @@
+/**********************************************************************
+ * Copyright (c) 2003, 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.wst.server.core.model;
+
+import org.eclipse.wst.server.core.IModule;
+/**
+ * An event fired when a module factory changes.
+ *
+ * @since 1.0
+ */
+public class ModuleFactoryEvent {
+ protected IModule[] added;
+ protected IModule[] removed;
+
+ /**
+ * Create a new event.
+ *
+ * @param added added modules
+ * @param removed removed modules
+ */
+ public ModuleFactoryEvent(IModule[] added, IModule[] removed) {
+ this.added = added;
+ this.removed = removed;
+ }
+
+ /**
+ * Returns any modules that have been added.
+ *
+ * @return org.eclipse.wst.server.core.model.IModule[]
+ */
+ public IModule[] getAddedModules() {
+ return added;
+ }
+
+ /**
+ * Returns any modules that have been removed.
+ *
+ * @return org.eclipse.wst.server.core.model.IModule[]
+ */
+ public IModule[] getRemovedModules() {
+ return removed;
+ }
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerLocatorDelegate.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerLocatorDelegate.java
new file mode 100644
index 0000000..a877f1d
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/model/ServerLocatorDelegate.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 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.wst.server.core.model;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.wst.server.core.IServerWorkingCopy;
+/**
+ * A server locator provides the ability to locate or search for additional
+ * server of a particular type, on a particular host.
+ * <p>
+ * This abstract class is intended to be extended only by clients
+ * to extend the <code>serverLocators</code> extension point.
+ * </p>
+ *
+ * @since 1.0
+ */
+public abstract class ServerLocatorDelegate {
+ /**
+ * A callback listener used to report progress.
+ */
+ public interface IServerSearchListener {
+ /**
+ * Called when a new server is found by the locator.
+ * The server must never be null.
+ *
+ * @param server the runtime that was found.
+ */
+ public void serverFound(IServerWorkingCopy server);
+ }
+
+ /**
+ * Searches for servers.
+ * It uses the callback listener to report servers that are found.
+ *
+ * @param host a host string conforming to RFC 2732
+ * @param listener a listener to report status to
+ * @param monitor a progress monitor, or <code>null</code> if progress
+ * reporting and cancellation are not desired
+ */
+ public abstract void searchForServers(String host, IServerSearchListener listener, IProgressMonitor monitor);
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ServerEvent.java b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ServerEvent.java
new file mode 100644
index 0000000..1b3ecc6
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.core/servercore/org/eclipse/wst/server/core/util/ServerEvent.java
@@ -0,0 +1,226 @@
+/**********************************************************************
+ * Copyright (c) 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.wst.server.core.util;
+
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.IServer;
+/**
+ * An event fired when a server change or module changes.
+ *
+ * @since 1.0
+ */
+public class ServerEvent {
+ private IServer server;
+ private int kind;
+ private IModule[] moduleTree;
+ private int state;
+ private int publishState;
+ private boolean restartState;
+
+ /**
+ * For notification when the state has changed.
+ * <p>
+ * This kind is mutually exclusive with <code>PUBLISH_STATE_CHANGE</code> and
+ * <code>RESTART_STATE_CHANGE</code>.
+ * </p>
+ *
+ * @see #getKind()
+ */
+ public static final int STATE_CHANGE = 0x0001;
+
+ /**
+ * Fired when published is needed or no longer needs to be published,
+ * or it's state has changed.
+ * <p>
+ * This kind is mutually exclusive with <code>STATE_CHANGE</code> and
+ * <code>RESTART_STATE_CHANGE</code>.
+ * </p>
+ *
+ * @see #getKind()
+ */
+ public static final int PUBLISH_STATE_CHANGE = 0x0002;
+
+ /**
+ * For notification when the server isRestartNeeded() property changes.
+ * <p>
+ * This kind is mutually exclusive with <code>STATE_CHANGE</code> and
+ * <code>PUBLISH_STATE_CHANGE</code>.
+ * </p>
+ *
+ * @see #getKind()
+ */
+ public static final int RESTART_STATE_CHANGE = 0x0004;
+
+ /**
+ * For event on server changes. This kind is mutually exclusive with <code>MODULE_CHANGE</code>.
+ *
+ * @see #getKind()
+ */
+ public static final int SERVER_CHANGE = 0x0010;
+
+ /**
+ * For event on module changes. This kind is mutually exclusive with <code>SERVER_CHANGE</code>.
+ *
+ * @see #getKind()
+ */
+ public static final int MODULE_CHANGE = 0x0020;
+
+ /**
+ * Create a new server event for server change events.
+ *
+ * @param kind the kind of the change. (<code>XXX_CHANGE</code>). If the kind does not
+ * include the <code>SERVER_CHANGE</code> kind, the SERVER_CHANGE will be added automatically.
+ * constants declared on {@link ServerEvent}
+ * @param server the server that the server event takes place
+ * @param state the server state after the change (<code>STATE_XXX</code>)
+ * constants declared on {@link IServer}
+ * @param publishingState the server publishing state after the
+ * change (<code>PUBLISH_STATE_XXX</code>)
+ * constants declared on {@link IServer}
+ * @param restartState get the server restart state after the server is restart
+ * needed property change event
+ */
+ public ServerEvent(int kind, IServer server, int state, int publishingState, boolean restartState) {
+ this.kind = kind |= SERVER_CHANGE;
+ this.server = server;
+ this.state = state;
+ this.publishState = publishingState;
+ this.restartState = restartState;
+
+ if (server == null)
+ throw new IllegalArgumentException("Server parameter must not be null");
+ if ((kind & MODULE_CHANGE) != 0)
+ throw new IllegalArgumentException("Kind parameter invalid");
+
+ checkKind();
+ }
+
+ /**
+ * Create a new ServerEvent for module change events.
+ *
+ * @param kind the kind of the change. (<code>XXX_CHANGE</code>). If the kind does not
+ * include the <code>MODULE_CHANGE</code> kind, the MODULE_CHANGE will be added automatically.
+ * constants declared on {@link ServerEvent}
+ * @param server the server that the module event takes place
+ * @param module the module that has changed
+ * @param state the module state after the change (<code>STATE_XXX</code>)
+ * constants declared on {@link IServer}
+ * @param publishingState the module publishing state after the
+ * change (<code>PUBLISH_STATE_XXX</code>)
+ * constants declared on {@link IServer}
+ * @param restartState get the module restart state after the module is restart
+ * needed property change event.
+ */
+ public ServerEvent(int kind, IServer server, IModule[] module, int state, int publishingState, boolean restartState) {
+ this.kind = kind |= MODULE_CHANGE;
+ this.server = server;
+ this.moduleTree = module;
+ this.state = state;
+ this.publishState = publishingState;
+ this.restartState = restartState;
+
+ if (moduleTree == null || moduleTree.length == 0)
+ throw new IllegalArgumentException("Module parameter invalid");
+ if ((kind & SERVER_CHANGE) != 0)
+ throw new IllegalArgumentException("Kind parameter invalid");
+
+ checkKind();
+ }
+
+ private void checkKind() {
+ int i = 0;
+ if ((kind & STATE_CHANGE) != 0)
+ i++;
+ if ((kind & RESTART_STATE_CHANGE) != 0)
+ i++;
+ if ((kind & PUBLISH_STATE_CHANGE) != 0)
+ i++;
+
+ if (i != 1)
+ throw new IllegalArgumentException("Kind parameter invalid");
+ }
+
+ /**
+ * Returns the kind of the server event.
+ * <p>
+ * This kind can be used to test whether this event is a server event or module event by using
+ * the following code (the example is checking for the server event):
+ * ((getKind() | SERVER_CHANGE) != 0)
+ * the following code (the example is checking for the module event):
+ * ((getKind() | MODULE_CHANGE) != 0)
+ *
+ * @return the kind of the change (<code>XXX_CHANGE</code>
+ * constants declared on {@link ServerEvent}
+ */
+ public int getKind() {
+ return kind;
+ }
+
+ /**
+ * Returns the module tree of the module involved in the module change event,
+ * or <code>null</code> if the event is not a module event, i.e. isModuleEvent() is false.
+ *
+ * @return the module tree of the module involved in the module change event,
+ * or <code>null</code> if the event is not a module event, i.e.
+ * isModuleEvent() is false.
+ */
+ public IModule[] getModule() {
+ return moduleTree;
+ }
+
+ /**
+ * Get the publish state after the change that triggers this server event. If this event
+ * is of the SERVER_CHANGE kind, then the publishing state is the server publishing state.
+ * If this event is of the MODULE_CHANGE kind, then the publishing state is the module
+ * publishing state.
+ *
+ * @return the publishing state after the change (<code>PUBLISH_STATE_XXX</code>)
+ * constants declared on {@link IServer}
+ */
+ public int getPublishState() {
+ return publishState;
+ }
+
+ /**
+ * Get the restart state after isRestartNeeded() property change event.
+ * If this event is of the SERVER_CHANGE kind, then the restart state is the server
+ * restart state. If this event is of the MODULE_CHANGE kind, then the restart state
+ * is the module restart state.
+ *
+ * @return <code>true</code> if restart is needed, and
+ * <code>false</code> otherwise
+ */
+ public boolean getRestartState() {
+ return restartState;
+ }
+
+ /**
+ * Get the state after the change that triggers this server event. If this event
+ * is of the SERVER_CHANGE kind, then the state is the server state.
+ * If this event is of the MODULE_CHANGE kind, then the state is the module
+ * state.
+ *
+ * @return the server state after the change (<code>STATE_XXX</code>)
+ * constants declared on {@link IServer}
+ */
+ public int getState() {
+ return state;
+ }
+
+ /**
+ * Returns the server involved in the change event.
+ *
+ * @return the server involved in the change event.
+ */
+ public IServer getServer() {
+ return server;
+ }
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/editor/IOrdered.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/editor/IOrdered.java
new file mode 100644
index 0000000..ff05a36
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/editor/IOrdered.java
@@ -0,0 +1,35 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 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.wst.server.ui.editor;
+/**
+ * An object that has an absolute ordering, and can be ordered against other objects.
+ *
+ * <p>
+ * [issue: It is notoriously difficult to place any kind of
+ * useful order on objects that are contributed independently by
+ * non-collaborating parties. The IOrdered mechanism is weak, and
+ * can't really solve the problem. Issues of presentation are usually
+ * best left to the UI, which can sort objects based on arbitrary
+ * properties.]
+ * </p>
+ *
+ * <p>This interface is not intended to be implemented by clients.</p>
+ *
+ * @since 1.0
+ */
+public interface IOrdered {
+ /**
+ * Returns the order (index/priority).
+ *
+ * @return int
+ */
+ public int getOrder();
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/editor/ServerEditorActionFactoryDelegate.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/editor/ServerEditorActionFactoryDelegate.java
new file mode 100644
index 0000000..6cbbfaf
--- /dev/null
+++ b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/editor/ServerEditorActionFactoryDelegate.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 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.wst.server.ui.editor;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.ui.IEditorSite;
+
+import org.eclipse.wst.server.core.IServerWorkingCopy;
+/**
+ *
+ * @since 1.0
+ */
+public abstract class ServerEditorActionFactoryDelegate {
+ /**
+ * Returns true if this editor action should be visible on the given
+ * server. This allows actions to be filtered based on the server type
+ * or server attributes.
+ *
+ * @param server the server being edited
+ * @return <code>true</code> if the action should be displayed, or
+ * <code>false</code> otherwise
+ */
+ public boolean shouldDisplay(IServerWorkingCopy server) {
+ return true;
+ }
+
+ /**
+ * Create the action.
+ *
+ * @param site the editor site
+ * @param input the server editor port input
+ * @return an action that can be run against the server
+ */
+ public abstract IAction createAction(IEditorSite site, IServerEditorPartInput input);
+}
\ No newline at end of file