This commit was manufactured by cvs2svn to create tag 'v20041202'.
diff --git a/plugins/org.eclipse.jst.server.generic.core/.classpath b/plugins/org.eclipse.jst.server.generic.core/.classpath
new file mode 100644
index 0000000..065ac06
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/.classpath
@@ -0,0 +1,7 @@
+<?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.core/.cvsignore b/plugins/org.eclipse.jst.server.generic.core/.cvsignore
new file mode 100644
index 0000000..07d3079
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/.cvsignore
@@ -0,0 +1,6 @@
+bin
+build.xml
+genericserver.jar
+org.eclipse.jst.server.generic.core_1.0.0.jar
+temp.folder
+*.settings
diff --git a/plugins/org.eclipse.jst.server.generic.core/.project b/plugins/org.eclipse.jst.server.generic.core/.project
new file mode 100644
index 0000000..fe7ee06
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.jst.server.generic.core</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.core/build.properties b/plugins/org.eclipse.jst.server.generic.core/build.properties
new file mode 100644
index 0000000..b68a22c
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/build.properties
@@ -0,0 +1,12 @@
+source.genericserver.jar = src/
+output.genericserver.jar = bin/
+bin.includes = plugin.xml,\
+ genericserver.jar,\
+ servers/,\
+ plugin.properties,\
+ xsd/ServerTypeDefinitionSchema.xsd
+src.includes = servers/,\
+ src/,\
+ plugin.xml,\
+ plugin.properties,\
+ xsd/
diff --git a/plugins/org.eclipse.jst.server.generic.core/plugin.properties b/plugins/org.eclipse.jst.server.generic.core/plugin.properties
new file mode 100644
index 0000000..7c92580
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/plugin.properties
@@ -0,0 +1,10 @@
+pluginName= Generic Server Plugin
+providerName=Eteration.com
+pluginDescription=Provides generic server tooling with easy to develop meta data configuration files
+
+runtimeTypeName=Generic Server Runtime
+runtimeTypeDescription=This is the Lomboz type runtime support
+
+serverTypeName=Generic server support
+serverTypeDescription=Lomboz type generic server
+launchConfigurationTypeName=Generic server launch configuration type
diff --git a/plugins/org.eclipse.jst.server.generic.core/plugin.xml b/plugins/org.eclipse.jst.server.generic.core/plugin.xml
new file mode 100644
index 0000000..7e215ad
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/plugin.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin
+ id="org.eclipse.jst.server.generic.core"
+ name="%pluginName"
+ version="1.0.0"
+ provider-name="%providerName"
+ class="org.eclipse.jst.server.generic.core.CorePlugin"
+ description="%pluginDescription">
+
+ <runtime>
+ <library name="genericserver.jar">
+ <export name="*"/>
+ </library>
+ </runtime>
+
+ <requires>
+ <import plugin="org.eclipse.ui"/>
+ <import plugin="org.eclipse.core.runtime"/>
+ <import plugin="org.eclipse.core.resources"/>
+ <import plugin="org.eclipse.debug.core"/>
+ <import plugin="org.eclipse.jdt.core"/>
+ <import plugin="org.eclipse.jdt.launching"/>
+ <import plugin="org.eclipse.wst.server.core"/>
+ <import plugin="org.eclipse.jst.server.core"/>
+ <import plugin="org.eclipse.debug.ui"/>
+ <import plugin="org.eclipse.ant.core"/>
+ <import plugin="org.eclipse.ant.ui"/>
+ <import plugin="org.eclipse.jst.server.generic.modules"/>
+ <import plugin="org.eclipse.emf.common"/>
+ <import plugin="org.eclipse.emf.ecore"/>
+ <import plugin="org.eclipse.emf.ecore.xmi"/>
+ </requires>
+
+ <extension point="org.eclipse.wst.server.core.runtimeTargetHandlers">
+ <runtimeTargetHandler
+ id="org.eclipse.jst.server.generic.runtimeTarget"
+ runtimeTypeIds="org.eclipse.jst.server.generic.runtime"
+ class="org.eclipse.jst.server.generic.internal.core.GenericServerRuntimeTargetHandler"/>
+ </extension>
+
+ <extension point="org.eclipse.wst.server.core.moduleKinds">
+ <moduleKind
+ id="j2ee.web"
+ name="war file"/>
+ <moduleKind
+ id="j2ee.ejb"
+ name="ejb"/>
+ <moduleKind
+ id="j2ee.ear"
+ name="ear"/>
+ </extension>
+
+ <extension point="org.eclipse.wst.server.core.runtimeTypes">
+ <runtimeType
+ id="org.eclipse.jst.server.generic.runtime"
+ name="%runtimeTypeName"
+ description="%runtimeTypeDescription"
+ vendor="All"
+ version="0"
+ order="100"
+ class="org.eclipse.jst.server.generic.internal.core.GenericServerRuntime"
+ workingCopyClass="org.eclipse.jst.server.generic.internal.core.GenericServerRuntimeWorkingCopy">
+ <moduleType
+ types="j2ee.web"
+ versions="1.2, 1.3, 1.4"/>
+ </runtimeType>
+ </extension>
+
+<extension point="org.eclipse.wst.server.core.serverTypes">
+ <serverType
+ runtime="true"
+ class="org.eclipse.jst.server.generic.internal.core.GenericServer"
+ order="100"
+ hosts="localhost"
+ id="org.eclipse.jst.server.generic"
+ initialState="stopped"
+ workingCopyClass="org.eclipse.jst.server.generic.internal.core.GenericServerWorkingCopy"
+ runtimeTypeId="org.eclipse.jst.server.generic.runtime"
+ description="%serverTypeDescription"
+ launchConfigId="org.eclipse.jst.server.generic.core.launchConfigurationType"
+ monitorable="true"
+ name="%serverTypeName"
+ launchModes="run,debug">
+
+ </serverType>
+ </extension>
+
+ <extension point="org.eclipse.debug.core.launchConfigurationTypes">
+ <launchConfigurationType
+ id="org.eclipse.jst.server.generic.core.launchConfigurationType"
+ name="%launchConfigurationTypeName"
+ delegate="org.eclipse.jst.server.generic.internal.core.GenericServerLaunchConfigurationDelegate"
+ modes="run, debug"
+ sourceLocatorId="org.eclipse.jdt.launching.sourceLocator.JavaSourceLookupDirector"
+ sourcePathComputerId="org.eclipse.jst.server.generic.core.sourcePathComputer"/>
+ </extension>
+
+ <extension point="org.eclipse.debug.core.sourcePathComputers">
+ <sourcePathComputer
+ id="org.eclipse.jst.server.generic.core.sourcePathComputer"
+ class="org.eclipse.jst.server.generic.internal.core.GenericServerSourcePathComputerDelegate"/>
+ </extension>
+
+ <extension point="org.eclipse.wst.server.core.launchableAdapters">
+ <launchableAdapter
+ class="org.eclipse.jst.server.generic.internal.core.GenericServerLaunchableAdapterDelegate"
+ id="org.eclipse.jst.server.generic.web"/>
+ </extension>
+</plugin>
diff --git a/plugins/org.eclipse.jst.server.generic.core/servers/jboss323.server b/plugins/org.eclipse.jst.server.generic.core/servers/jboss323.server
new file mode 100644
index 0000000..6aeccf5
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/servers/jboss323.server
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:ServerRuntime
+ xmlns:tns="http://eclipse.org/jst/server/generic/ServerTypeDefinition"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://eclipse.org/jst/server/generic/ServerTypeDefinition ServerTypeDefinitionSchema.xsd "
+ name="JBOSS 3.2.3" version="v3.2.3">
+<property id="serverRootDirectory"
+ label="Application Server Directory:"
+ type="directory"
+ context="runtime"
+ default="/your_server_root/appservers/jboss-3.2.3" />
+<property id="serverAddress"
+ label="Address:"
+ type="string"
+ context="server"
+ default="127.0.0.1" />
+<property id="port"
+ label="Port:"
+ type="string"
+ context="server"
+ default="8080" />
+<property id="serverConfig"
+ label="Server Configuration (minimal/default/all):"
+ type="string"
+ context="server"
+ default="default" />
+<property id="classPath"
+ label="Classpath Variable:"
+ type="directory"
+ context="runtime"
+ default="/your_server_root/appservers/jboss-3.2.3" />
+
+ <port>
+ <no>${port}</no>
+ <name>Http</name>
+ <protocol>http</protocol>
+ </port>
+
+ <module>
+ <type>j2ee.web</type>
+ <publishDir>${serverRootDirectory}/server/${serverConfig}/deploy</publishDir>
+ <publisherReference>jboss.web</publisherReference>
+ </module>
+
+
+ <project>
+ <classpathReference>jboss.project</classpathReference>
+ </project>
+
+ <start>
+ <class>org.jboss.Main</class>
+ <workingDirectory>${serverRootDirectory}/bin</workingDirectory>
+ <programArguments>-c ${serverConfig}</programArguments>
+ <vmParameters></vmParameters>
+ <classpathReference>jboss</classpathReference>
+ </start>
+
+ <stop>
+ <class>org.jboss.Shutdown</class>
+ <workingDirectory>${serverRootDirectory}/bin</workingDirectory>
+ <programArguments>-S</programArguments>
+ <vmParameters></vmParameters>
+ <classpathReference>jboss</classpathReference>
+ </stop>
+ <publisher id="jboss.web">
+ <publish>
+ <task>
+ <![CDATA[
+
+ <project name="deployextension" default="deploy" basedir=".">
+ <target name="deploy">
+ <jar destfile="${deploymentUnitName}.war">
+ <zipfileset dir="${moduleDir}">
+ <include name="**/*.*"/>
+ <exclude name="**/*.war"/>
+ </zipfileset>
+ </jar>
+ <move file="${deploymentUnitName}.war" todir="${deployDir}"/>
+ </target>
+ </project>
+
+ ]]>
+ </task>
+ <classpathReference>jboss</classpathReference>
+ </publish>
+ <unpublish>
+ <task>
+ <![CDATA[<project name="deployextension" default="deploy" basedir=".">
+ <target name="deploy">
+ <delete file="${deployDir}/${deploymentUnitName}.war"/>
+ </target>
+ </project>]]>
+ </task>
+ <classpathReference>jboss</classpathReference>
+ </unpublish>
+ </publisher>
+
+ <classpath id="jboss" isLibrary="true">
+ <archive path="${classPath}/bin/run.jar" />
+ <archive path="${classPath}/bin/shutdown.jar" />
+ <archive path="${classPath}/client/jboss-j2ee.jar" />
+ <archive path="${classPath}/server/${serverConfig}/lib/javax.servlet.jar" />
+ <archive path="${classPath}/lib/jboss-boot.jar" />
+ <archive path="${classPath}/lib/jboss-system.jar" />
+ <archive path="${classPath}/lib/concurrent.jar" />
+ <archive path="${classPath}/server/${serverConfig}/lib/jboss.jar" />
+ <archive path="${classPath}/server/${serverConfig}/lib/jnpserver.jar" />
+ <archive path="${classPath}/server/${serverConfig}/lib/jpl-pattern.jar" />
+ <archive path="${classPath}/server/${serverConfig}/lib/jpl-util.jar" />
+ <archive path="${classPath}/server/${serverConfig}/lib/jboss-transaction.jar" />
+ <archive path="${classPath}/server/${serverConfig}/lib/bcel.jar" />
+ <archive path="${classPath}/lib/jdom.jar" />
+ <archive path="${classPath}/lib/xercesImpl.jar" />
+ <archive path="${classPath}/lib/xml-apis.jar" />
+ <archive path="${classPath}/lib/gnu-regexp.jar" />
+ <archive path="${classPath}/lib/getopt.jar" />
+ </classpath>
+
+ <classpath id="jboss.project" isLibrary="false">
+ <archive path="${classPath}/client/jboss-j2ee.jar" />
+ </classpath>
+
+</tns:ServerRuntime>
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.generic.core/servers/jonas.server b/plugins/org.eclipse.jst.server.generic.core/servers/jonas.server
new file mode 100644
index 0000000..018f912
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/servers/jonas.server
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:ServerRuntime
+ xmlns:tns="http://eclipse.org/jst/server/generic/ServerTypeDefinition"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://eclipse.org/jst/server/generic/ServerTypeDefinition ServerTypeDefinitionSchema.xsd "
+ name="JonAS 4.1.4" version="v4.1.4">
+ <property id="jonasRoot"
+ label="JonAS Installation Directory:"
+ type="directory"
+ context="runtime"
+ default="/your_server_root/JOnAS-4.1.4" />
+ <property id="jonasBase"
+ label="JonAS Configuration Directory:"
+ type="directory"
+ context="runtime"
+ default="/your_server_root/JOnAS-4.1.4" />
+ <property id="serverAddress"
+ label="Address:"
+ type="string"
+ context="server"
+ default="127.0.0.1" />
+ <property id="port"
+ label="Port:"
+ type="string"
+ context="server"
+ default="9000" />
+ <property id="protocols"
+ label="Ejb Protocols:"
+ type="string"
+ context="server"
+ default="jrmp" />
+ <property id="mappernames"
+ label="Mapper names:"
+ type="string"
+ context="server"
+ default="" />
+ <property id="classPath"
+ label="Classpath Variable:"
+ type="directory"
+ context="runtime"
+ default="/your_server_root/JOnAS-4.1.4" />
+
+ <port>
+ <no>${port}</no>
+ <name>Http</name>
+ <protocol>http</protocol>
+ </port>
+
+ <module>
+ <type>j2ee.web</type>
+ <publishDir>${jonasBase}/webapps/autoload</publishDir>
+ <publisherReference>jonas.web</publisherReference>
+ </module>
+
+
+ <project>
+ <classpathReference>jonas.project</classpathReference>
+ </project>
+
+ <start>
+ <class>org.objectweb.jonas.server.Bootstrap</class>
+ <workingDirectory>${jonasRoot}</workingDirectory>
+ <programArguments>org.objectweb.jonas.server.Server</programArguments>
+ <vmParameters>-Dinstall.root=${jonasRoot} -Djonas.base=${jonasBase} -Djava.security.policy=${jonasRoot}/conf/java.policy -Djonas.classpath= -Djonas.default.classloader=true -Djavax.rmi.CORBA.PortableRemoteObjectClass=org.objectweb.carol.rmi.multi.MultiPRODelegate -Djava.naming.factory.initial=org.objectweb.carol.jndi.spi.MultiOrbInitialContextFactory -Djava.security.auth.login.config=${jonasRoot}/conf/jaas.config -Djava.endorsed.dirs=${jonasRoot}/lib/endorsed -Djava.rmi.server.RMIClassLoaderSpi=org.objectweb.jonas.server.RemoteClassLoaderSpi</vmParameters>
+ <classpathReference>jonas</classpathReference>
+ </start>
+
+ <stop>
+ <class>org.objectweb.jonas.server.Bootstrap</class>
+ <workingDirectory>${jonasRoot}</workingDirectory>
+ <programArguments>org.objectweb.jonas.adm.JonasAdmin -s</programArguments>
+ <vmParameters>-Dinstall.root=${jonasRoot} -Djonas.base=${jonasBase} -Djava.security.policy=${jonasRoot}/conf/java.policy -Djonas.classpath= -Djonas.default.classloader=true -Djavax.rmi.CORBA.PortableRemoteObjectClass=org.objectweb.carol.rmi.multi.MultiPRODelegate -Djava.naming.factory.initial=org.objectweb.carol.jndi.spi.MultiOrbInitialContextFactory -Djava.security.auth.login.config=${jonasRoot}/conf/jaas.config -Djava.endorsed.dirs=${jonasRoot}/lib/endorsed -Djava.rmi.server.RMIClassLoaderSpi=org.objectweb.jonas.server.RemoteClassLoaderSpi</vmParameters>
+ <classpathReference>jonas</classpathReference>
+ </stop>
+ <publisher id="jonas.web">
+ <publish>
+ <task><![CDATA[
+
+ <project name="deployextension" default="deploy" basedir=".">
+ <target name="deploy">
+ <jar destfile="${deploymentUnitName}.war">
+ <zipfileset dir="${moduleDir}">
+ <include name="**/*.*"/>
+ <exclude name="**/*.war"/>
+ </zipfileset>
+ </jar>
+ <move file="${deploymentUnitName}.war" todir="${deployDir}"/>
+ </target>
+ </project>
+
+ ]]></task>
+ <classpathReference>jonas</classpathReference>
+ </publish>
+ <unpublish>
+ <task>
+ <![CDATA[<project name="deployextension" default="deploy" basedir=".">
+ <target name="deploy">
+ <delete file="${deployDir}/${deploymentUnitName}.war"/>
+ </target>
+ </project>]]>
+ </task>
+ <classpathReference>weblogic.admin</classpathReference>
+ </unpublish>
+ </publisher>
+
+ <classpath id="jonas" isLibrary="true">
+ <archive path="${classPath}/lib/common/ow_jonas_bootstrap.jar" />
+ <archive path="${classPath}/conf" />
+ </classpath>
+
+ <classpath id="jonas.project" isLibrary="false">
+ <archive path="${classPath}/lib/common/ow_jonas_bootstrap.jar" />
+ <archive path="${classPath}/lib/commons/j2ee/ejb-2_1-api.jar" />
+ <archive path="${classPath}/lib/commons/j2ee/servlet-2_4.jar" />
+ <archive path="${classPath}/lib/commons/j2ee/jms.jar" />
+ </classpath>
+
+</tns:ServerRuntime>
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.generic.core/servers/weblogic81.server b/plugins/org.eclipse.jst.server.generic.core/servers/weblogic81.server
new file mode 100644
index 0000000..fe3d846
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/servers/weblogic81.server
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tns:ServerRuntime
+ xmlns:tns="http://eclipse.org/jst/server/generic/ServerTypeDefinition"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://eclipse.org/jst/server/generic/ServerTypeDefinition ServerTypeDefinitionSchema.xsd "
+ name="BEA WebLogic Server v8.1" version="v8.1">
+
+
+ <property id="beaHome"
+ label="BEA Home Directory:"
+ type="directory"
+ context="runtime"
+ default="C:/bea" />
+ <property id="serverRootDirectory"
+ label="Application Server Directory:"
+ type="directory"
+ context="runtime"
+ default="C:/bea/weblogic81" />
+ <property id="domainName"
+ label="Admin Domain Name:"
+ type="string"
+ context="server"
+ default="mydomain" />
+ <property id="domainDirectory"
+ label="Administration Domain Directory:"
+ type="directory"
+ context="server"
+ default="C:/bea/user_projects/domains/mydomain" />
+ <property id="serverName"
+ label="Server Name:"
+ type="string"
+ context="server"
+ default="myserver" />
+ <property id="userName"
+ label="User Name:"
+ type="string"
+ context="server"
+ default="system" />
+ <property id="password"
+ label="Password:"
+ type="string"
+ context="server"
+ default="weblogic" />
+ <property id="productionMode"
+ label="Production Mode:"
+ type="boolean"
+ context="server"
+ default="false" />
+ <property id="serverAddress"
+ label="Address:"
+ type="string"
+ context="server"
+ default="127.0.0.1" />
+ <property id="port"
+ label="Port:"
+ type="string"
+ context="server"
+ default="7001" />
+ <property id="classPath"
+ label="Classpath Variable:"
+ type="directory"
+ context="runtime"
+ default="C:/bea/weblogic81/server/lib" />
+
+
+
+ <port>
+ <no>${port}</no>
+ <name>Http</name>
+ <protocol>http</protocol>
+ </port>
+
+ <module>
+ <type>j2ee.web</type>
+ <publishDir>${domainDirectory}/applications</publishDir>
+ <publisherReference>weblogic.web</publisherReference>
+ </module>
+
+
+ <project>
+ <classpathReference>weblogic</classpathReference>
+ </project>
+
+ <start>
+ <class>weblogic.Server</class>
+ <workingDirectory>${domainDirectory}</workingDirectory>
+ <programArguments></programArguments>
+ <vmParameters>
+ -Xms32m -Xmx200m -XX:MaxPermSize=128m
+ -Dweblogic.Name=${serverName} -Dbea.home="${beaHome}"
+ -Dweblogic.management.username=${userName}
+ -Dweblogic.management.password=${password}
+ -Dweblogic.ProductionModeEnabled=${productionMode}
+ -Djava.security.policy=="${serverRootDirectory}/server/lib/weblogic.policy"
+ </vmParameters>
+ <classpathReference>weblogic</classpathReference>
+ </start>
+
+ <stop>
+ <class>weblogic.Admin</class>
+ <workingDirectory>${domainDirectory}</workingDirectory>
+ <programArguments>
+ -url t3://${serverAddress}:${port} -username ${userName}
+ -password ${password} SHUTDOWN
+ </programArguments>
+ <vmParameters></vmParameters>
+ <classpathReference>weblogic.admin</classpathReference>
+ </stop>
+ <publisher id="weblogic.web">
+ <publish>
+ <task>
+ <![CDATA[<project name="deployextension" default="deploy" basedir=".">
+ <target name="deploy">
+ <jar destfile="${module.name}.war">
+ <zipfileset dir="${module.dir}">
+ <include name="**/*.*"/>
+ <exclude name="**/jsp_servlet/*.class"/>
+ <exclude name="**/*.war"/>
+ </zipfileset>
+ </jar>
+ <move file="${module.name}.war" todir="${server.publish.dir}"/>
+ </target>
+ </project>]]>
+ </task>
+ <classpathReference>weblogic.admin</classpathReference>
+ </publish>
+ <unpublish>
+ <task>
+ <![CDATA[<project name="deployextension" default="deploy" basedir=".">
+ <target name="deploy">
+ <delete file="${server.publish.dir}/${module.name}.war"/>
+ </target>
+ </project>]]>
+ </task>
+ <classpathReference>weblogic.admin</classpathReference>
+ </unpublish>
+ </publisher>
+
+ <classpath id="weblogic" isLibrary="true">
+ <archive path="${classPath}/weblogic.jar" />
+ <archive path="${classPath}/ojdbc14.jar" />
+ <archive path="${classPath}/webservices.jar" />
+ </classpath>
+
+ <classpath id="weblogic.admin" isLibrary="false">
+ <archive path="${classPath}/weblogic.jar" />
+ </classpath>
+
+</tns:ServerRuntime>
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/CorePlugin.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/CorePlugin.java
new file mode 100644
index 0000000..aeda021
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/CorePlugin.java
@@ -0,0 +1,130 @@
+/*******************************************************************************
+ * 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.core;
+
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jst.server.generic.internal.core.ServerTypeDefinitionManager;
+import org.eclipse.ui.plugin.*;
+import org.osgi.framework.BundleContext;
+import java.io.IOException;
+import java.net.URL;
+import java.util.*;
+
+/**
+ * The main plugin class to be used in the desktop.
+ *
+ * @author Gorkem Ercan
+ */
+public class CorePlugin extends AbstractUIPlugin {
+
+ public static final String PLUGIN_ID = "org.eclipse.jst.server.generic.core";
+
+ //The shared instance.
+ private static CorePlugin plugin;
+ //Resource bundle.
+ private ResourceBundle resourceBundle;
+ private ServerTypeDefinitionManager fServerTypeDefinitionManager;
+ /**
+ * The constructor.
+ */
+ public CorePlugin() {
+ super();
+ plugin = this;
+ try {
+ resourceBundle = ResourceBundle.getBundle("org.eclipse.jst.server.generic.core.CorePluginResources");
+ } 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 CorePlugin 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 = CorePlugin.getDefault().getResourceBundle();
+ try {
+ return (bundle != null) ? bundle.getString(key) : key;
+ } catch (MissingResourceException e) {
+ return key;
+ }
+ }
+
+ /**
+ * Returns the plugin's resource bundle,
+ */
+ public ResourceBundle getResourceBundle() {
+ return resourceBundle;
+ }
+ /**
+ *
+ * @return
+ */
+ public ServerTypeDefinitionManager getServerTypeDefinitionManager()
+ {
+ if(fServerTypeDefinitionManager==null)
+ fServerTypeDefinitionManager = new ServerTypeDefinitionManager(getInstallUrl());
+ return fServerTypeDefinitionManager;
+ }
+
+ private URL getInstallUrl()
+ {
+ try {
+ return Platform.resolve(this.getBundle().getEntry("/"));
+ } catch (IOException e) {
+ return null;
+ }
+ }
+
+
+}
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/GenericServerCoreMessages.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/GenericServerCoreMessages.java
new file mode 100644
index 0000000..046187a
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/GenericServerCoreMessages.java
@@ -0,0 +1,63 @@
+package org.eclipse.jst.server.generic.core;
+
+import java.text.MessageFormat;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * Helper class to get messages
+ *
+ * @author Gorkem Ercan
+ */
+public class GenericServerCoreMessages {
+
+ private static final String RESOURCE_BUNDLE= "org.eclipse.jst.server.generic.core.GenericServerCoreMessages";//$NON-NLS-1$
+
+ private static ResourceBundle fResourceBundle= ResourceBundle.getBundle(RESOURCE_BUNDLE);
+
+ private GenericServerCoreMessages() {
+ }
+
+ /**
+ * 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.core/src/org/eclipse/jst/server/generic/core/GenericServerCoreMessages.properties b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/GenericServerCoreMessages.properties
new file mode 100644
index 0000000..0c696d7
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/core/GenericServerCoreMessages.properties
@@ -0,0 +1,7 @@
+errorName=Invalid name.
+errorJRE=Invalid JRE.
+errorNoServerType=No server type definition
+errorDuplicateRuntimeName=Name is already in use
+errorMissingClasspathEntry=Missing classpath entry {0}
+errorPortInUse=Server port In Use {0}-{1}
+cancelNoPublish=Nothing to publish
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/AntPublisher.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/AntPublisher.java
new file mode 100644
index 0000000..3606913
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/AntPublisher.java
@@ -0,0 +1,195 @@
+/*******************************************************************************
+ * 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:
+ * Naci M. Dai - initial API and implementation
+ *
+ * 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.internal.core;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.eclipse.ant.core.AntRunner;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.server.generic.core.CorePlugin;
+import org.eclipse.jst.server.generic.modules.WebModule;
+import org.eclipse.jst.server.generic.servertype.definition.Module;
+import org.eclipse.jst.server.generic.servertype.definition.PublishType;
+import org.eclipse.jst.server.generic.servertype.definition.Publisher;
+import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
+import org.eclipse.wst.server.core.model.IModule;
+import org.eclipse.wst.server.core.model.IPublisher;
+import org.eclipse.wst.server.core.resources.IModuleFolder;
+import org.eclipse.wst.server.core.resources.IModuleResource;
+import org.eclipse.wst.server.core.resources.IRemoteResource;
+/**
+ * Ant based publisher.
+ *
+ * @author Gorkem Ercan
+ */
+
+public class AntPublisher implements IPublisher {
+
+ /**
+ * @param parents
+ * @param module
+ * @param serverDefinition
+ */
+ private List parents;
+ private IModule module;
+ private ServerRuntime serverTypeDefinition;
+
+ public AntPublisher(List parents, IModule module, ServerRuntime serverDefinition) {
+ this.parents = parents;
+ this.module = module;
+ this.serverTypeDefinition = serverDefinition;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wtp.server.core.model.IPublisher#getMappedLocation(org.eclipse.wtp.server.core.resources.IModuleResource)
+ */
+ public IPath getMappedLocation(IModuleResource resource) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wtp.server.core.model.IPublisher#shouldMapMembers(org.eclipse.wtp.server.core.resources.IModuleFolder)
+ */
+ public boolean shouldMapMembers(IModuleFolder folder) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wtp.server.core.model.IPublisher#getRemoteResources(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public IRemoteResource[] getRemoteResources(IProgressMonitor monitor)
+ throws CoreException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wtp.server.core.model.IPublisher#delete(org.eclipse.wtp.server.core.resources.IRemoteResource[], org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public IStatus[] delete(IRemoteResource[] resource, IProgressMonitor monitor)
+ throws CoreException {
+
+ return new IStatus[]{new Status(IStatus.OK,CorePlugin.PLUGIN_ID,0,"DeleteResource",null)};
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wtp.server.core.model.IPublisher#publish(org.eclipse.wtp.server.core.resources.IModuleResource[], org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public IStatus[] publish(IModuleResource[] resource,
+ IProgressMonitor monitor) throws CoreException {
+ Module sModule = serverTypeDefinition.getModule(this.module.getType());
+ Publisher publisher = serverTypeDefinition.getPublisher(sModule.getPublisherReference());
+ String deployAnt = ((PublishType)publisher.getPublish().get(0)).getTask();
+ deployAnt = serverTypeDefinition.getResolver().resolveProperties(deployAnt);
+
+ if(deployAnt == null || deployAnt.length()<1)
+ return new IStatus[]{new Status(IStatus.ERROR,CorePlugin.PLUGIN_ID,0,"AntBuildFileDoesNotExist",null)};
+
+
+ IPath file = CorePlugin.getDefault().getStateLocation().append("tempAnt.xml");
+ try {
+ createNewFile(file.toFile(),deployAnt.getBytes());
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ runAnt(file.toString(),new String[]{"deploy"},getPublishProperties(resource),monitor);
+
+ file.toFile().delete();
+
+ // TODO Auto-generated method stub
+ return null;
+ }
+ private Map getPublishProperties(IModuleResource[] resource)
+ {
+ Module module = serverTypeDefinition.getModule(this.module.getType());
+
+ Map props = new HashMap();
+ String modDir = module.getPublishDir();
+ modDir = serverTypeDefinition.getResolver().resolveProperties(modDir);
+
+ props.put("deploymentUnitName",this.module.getName());
+ props.put("moduleDir",((WebModule)this.module).getLocation().toString());
+ props.put("deployDir",modDir);
+ return props;
+
+
+ }
+ private void runAnt(String buildFile,String[] targets,Map properties ,IProgressMonitor monitor)throws CoreException
+ {
+ AntRunner runner = new AntRunner();
+ runner.setBuildFileLocation(buildFile);
+ runner.setExecutionTargets(targets);
+ runner.addUserProperties(properties);
+ runner.run(monitor);
+ }
+
+
+
+
+ public boolean createNewFile(File f,byte[] content) throws IOException {
+ if (f != null) {
+ if (f.exists()) {
+ return false;
+ }
+ FileOutputStream fos = null;
+ try {
+ fos = new FileOutputStream(f);
+ fos.write(content);
+ } finally {
+ if (fos != null) {
+ fos.close();
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.wtp.server.core.model.IPublisher#deleteAll(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public IStatus deleteAll(IProgressMonitor monitor) throws CoreException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+
+}
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServer.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServer.java
new file mode 100644
index 0000000..01c75b4
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServer.java
@@ -0,0 +1,671 @@
+/*******************************************************************************
+ * 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.internal.core;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.debug.core.DebugEvent;
+import org.eclipse.debug.core.DebugPlugin;
+import org.eclipse.debug.core.IDebugEventSetListener;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchConfigurationType;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.debug.core.model.IProcess;
+import org.eclipse.debug.ui.IDebugUIConstants;
+import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
+import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
+import org.eclipse.jdt.launching.IVMInstall;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.jst.server.generic.core.CorePlugin;
+import org.eclipse.jst.server.generic.core.GenericServerCoreMessages;
+import org.eclipse.jst.server.generic.modules.J2eeSpecModuleFactoryDelegate;
+import org.eclipse.jst.server.generic.servertype.definition.ArchiveType;
+import org.eclipse.jst.server.generic.servertype.definition.Classpath;
+import org.eclipse.jst.server.generic.servertype.definition.Port;
+import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
+import org.eclipse.jst.server.j2ee.IWebModule;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.IServerConfiguration;
+import org.eclipse.wst.server.core.IServerState;
+import org.eclipse.wst.server.core.ITask;
+import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.core.model.IModule;
+import org.eclipse.wst.server.core.model.IModuleEvent;
+import org.eclipse.wst.server.core.model.IModuleFactoryEvent;
+import org.eclipse.wst.server.core.model.IMonitorableServer;
+import org.eclipse.wst.server.core.model.IPublisher;
+import org.eclipse.wst.server.core.model.IServerDelegate;
+import org.eclipse.wst.server.core.model.IServerPort;
+import org.eclipse.wst.server.core.model.IStartableServer;
+import org.eclipse.wst.server.core.model.IURLProvider;
+import org.eclipse.wst.server.core.resources.IModuleResourceDelta;
+import org.eclipse.wst.server.core.util.ServerPort;
+import org.eclipse.wst.server.core.util.SocketUtil;
+
+/**
+ * Generic XML based server implementation.
+ *
+ * @author Gorkem Ercan
+ */
+public class GenericServer implements IServerDelegate, IStartableServer, IMonitorableServer,IURLProvider {
+ private IServerState fLiveServer;
+ private static final String ATTR_STOP = "stop-server";
+
+ // the thread used to ping the server to check for startup
+ protected transient PingThread ping = null;
+ protected transient IProcess process;
+ protected transient IDebugEventSetListener processListener;
+
+ private ServerRuntime fServerDefinition;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IServerDelegate#initialize(org.eclipse.wst.server.core.IServerState)
+ */
+ public void initialize(IServerState liveServer) {
+ this.fLiveServer = liveServer;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IServerDelegate#dispose()
+ */
+ public void dispose() {
+ this.fLiveServer = null;
+ }
+
+ /**
+ * Returns the project publisher that can be used to
+ * publish the given project.
+ *
+ * @param project org.eclipse.core.resources.IProject
+ * @return org.eclipse.wst.server.core.model.IProjectPublisher
+ */
+ public IPublisher getPublisher(List parents, IModule module) {
+ return new AntPublisher(parents, module, this.getServerDefinition());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IServerDelegate#updateConfiguration()
+ */
+ public void updateConfiguration() {
+ Trace.trace(Trace.FINEST, "updateConfiguration" + this);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IServerDelegate#updateModule(org.eclipse.wst.server.core.model.IModule,
+ * org.eclipse.wst.server.core.resources.IModuleResourceDelta)
+ */
+ public void updateModule(IModule module, IModuleResourceDelta delta) {
+ // TODO Auto-generated method stub
+ Trace.trace(Trace.FINEST, "Configuration updated " + this);
+ //setConfigurationSyncState(SYNC_STATE_DIRTY);
+ //setRestartNeeded(true);
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IServerDelegate#publishStart(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public IStatus publishStart(IProgressMonitor monitor) {
+ if(getModules().length<1)
+ return new Status(IStatus.CANCEL,CorePlugin.PLUGIN_ID,0,GenericServerCoreMessages.getString("cancelNoPublish"),null);
+ return new Status(IStatus.OK, CorePlugin.PLUGIN_ID, 0, "PublishingStarted", null);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IServerDelegate#publishConfiguration(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public IStatus publishConfiguration(IProgressMonitor monitor) {
+
+ return new Status(IStatus.OK, CorePlugin.PLUGIN_ID, 0, "Published Configuration", null);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IServerDelegate#publishStop(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public IStatus publishStop(IProgressMonitor monitor) {
+ fLiveServer.setConfigurationSyncState(IServer.SYNC_STATE_IN_SYNC);
+ return new Status(IStatus.OK, CorePlugin.PLUGIN_ID, 0, "Published Configuration", null);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IServerDelegate#canModifyModules(org.eclipse.wst.server.core.model.IModule[],
+ * org.eclipse.wst.server.core.model.IModule[])
+ */
+ public IStatus canModifyModules(IModule[] add, IModule[] remove) {
+ // TODO Auto-generated method stub
+ return new Status(IStatus.OK, CorePlugin.PLUGIN_ID, 0, "CanModifyModules", null);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IServerDelegate#getModules()
+ */
+ public IModule[] getModules() {
+ // TODO Auto-generated method stub
+ List list = J2eeSpecModuleFactoryDelegate.getInstance().getModules();
+ return (IModule[])list.toArray(new IModule[list.size()]);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IServerDelegate#getModuleState(org.eclipse.wst.server.core.model.IModule)
+ */
+ public byte getModuleState(IModule module) {
+ IModule[] modules = getModules();
+ if (modules!= null && modules.length>0)
+ return IServer.MODULE_STATE_STARTED;
+ return IServer.MODULE_STATE_UNKNOWN;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IServerDelegate#getRepairCommands(org.eclipse.wst.server.core.model.IModuleFactoryEvent[],
+ * org.eclipse.wst.server.core.model.IModuleEvent[])
+ */
+ public ITask[] getRepairCommands(IModuleFactoryEvent[] factoryEvent,
+ IModuleEvent[] moduleEvent) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IServerDelegate#getChildModules(org.eclipse.wst.server.core.model.IModule)
+ */
+ public List getChildModules(IModule module) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IServerDelegate#getParentModules(org.eclipse.wst.server.core.model.IModule)
+ */
+ public List getParentModules(IModule module) throws CoreException {
+ //FIXME This is valid for only web modules. A generic server should support any
+ // kind of j2ee module. Fix this after the server architectures are determined.
+ if (module instanceof IWebModule) {
+ IWebModule webModule = (IWebModule) module;
+ IStatus status = canModifyModules(new IModule[] { module }, null);
+ if (status == null || !status.isOK())
+ throw new CoreException(status);
+ ArrayList l = new ArrayList();
+ l.add(webModule);
+ return l;
+ }
+ return null;
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IServerDelegate#setLaunchDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
+ */
+ public void setLaunchDefaults(ILaunchConfigurationWorkingCopy workingCopy) {
+ workingCopy.setAttribute(
+ IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME,
+ getStartClassName());
+
+ GenericServerRuntime runtime = (GenericServerRuntime) fLiveServer
+ .getRuntime().getDelegate();
+
+ IVMInstall vmInstall = runtime.getVMInstall();
+ workingCopy.setAttribute(
+ IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE, runtime
+ .getVMInstallTypeId());
+ workingCopy.setAttribute(
+ IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_NAME,
+ vmInstall.getName());
+
+ setupLaunchClasspath(workingCopy, vmInstall, getStartClasspath());
+
+
+ workingCopy.setAttribute(
+ IJavaLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY,
+ getWorkingDirectory());
+ workingCopy.setAttribute(
+ IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS,
+ getProgramArguments());
+ workingCopy.setAttribute(
+ IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS,
+ getVmArguments());
+ }
+
+
+ private List getStartClasspath() {
+ String cpRef = getServerDefinition().getStart().getClasspathReference();
+ return serverClasspath(cpRef);
+ }
+ private List getStopClasspath() {
+ String cpRef = getServerDefinition().getStop().getClasspathReference();
+ return serverClasspath(cpRef);
+ }
+
+ /**
+ * @param cpRef
+ * @return
+ */
+ private List serverClasspath(String cpRef) {
+ Classpath classpath = getServerDefinition().getClasspath(cpRef);
+
+ List mementoList = new ArrayList(classpath.getArchive().size());
+ Iterator iterator= classpath.getArchive().iterator();
+ while(iterator.hasNext())
+ {
+ ArchiveType archive = (ArchiveType)iterator.next();
+ String cpath = getServerDefinition().getResolver().resolveProperties(archive.getPath());
+ try {
+ mementoList.add(JavaRuntime.newArchiveRuntimeClasspathEntry(
+ new Path(cpath)).getMemento());
+ } catch (CoreException e) {
+ //ignored
+ }
+ }
+ return mementoList;
+ }
+
+ private String getVmArguments() {
+ return getServerDefinition().getResolver().resolveProperties(getServerDefinition().getStart().getVmParameters());
+ }
+
+ private String getProgramArguments() {
+ return getServerDefinition().getResolver().resolveProperties(getServerDefinition().getStart().getProgramArguments());
+ }
+
+ private String getWorkingDirectory() {
+ return getServerDefinition().getResolver().resolveProperties(getServerDefinition().getStart().getWorkingDirectory());
+ }
+
+ public String getStartClassName() {
+ return getServerDefinition().getResolver().resolveProperties(getServerDefinition().getStart().getClass_());
+ }
+
+ /**
+ * @return
+ */
+ private Map getServerInstanceProperties() {
+ Map runtimeProperties = fLiveServer.getRuntime().getAttribute(
+ GenericServerRuntime.SERVER_INSTANCE_PROPERTIES, new HashMap());
+ Map serverProperties = this.fLiveServer.getAttribute(GenericServerRuntime.SERVER_INSTANCE_PROPERTIES,new HashMap(1));
+ Map instanceProperties = new HashMap(runtimeProperties.size()+serverProperties.size());
+ instanceProperties.putAll(runtimeProperties);
+ instanceProperties.putAll(serverProperties);
+ return instanceProperties;
+ }
+
+ public ServerRuntime getServerDefinition() {
+ if (fServerDefinition == null)
+ fServerDefinition = CorePlugin.getDefault()
+ .getServerTypeDefinitionManager()
+ .getServerRuntimeDefinition(
+ fLiveServer.getRuntime().getAttribute(
+ GenericServerRuntime.SERVER_DEFINITION_ID,
+ ""), getServerInstanceProperties());
+ return fServerDefinition;
+ }
+
+
+
+
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IMonitorableServer#getServerPorts()
+ */
+ public List getServerPorts() {
+ List ports = new ArrayList();
+
+ Iterator pIter = this.getServerDefinition().getPort().iterator();
+ while (pIter.hasNext()) {
+ Port element = (Port) pIter.next();
+ int port = Integer.parseInt(getServerDefinition().getResolver().resolveProperties(element.getNo()));
+ ports.add(new ServerPort("server", element.getName(), port, element.getProtocol()));
+ }
+
+ return ports;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.server.core.model.IStartableServer#isTerminateOnShutdown()
+ */
+ public boolean isTerminateOnShutdown() {
+ return true;
+ }
+
+ /**
+ * Setup for starting the server.
+ *
+ * @param launch ILaunch
+ * @param launchMode String
+ * @param monitor IProgressMonitor
+ */
+ public void setupLaunch(ILaunch launch, String launchMode, IProgressMonitor monitor) throws CoreException {
+ if ("true".equals(launch.getLaunchConfiguration().getAttribute(ATTR_STOP, "false")))
+ return;
+// IStatus status = getRuntime().validate();
+// if (status != null && !status.isOK())
+// throw new CoreException(status);
+
+
+ Iterator iterator = this.getServerPorts().iterator();
+ IServerPort sp = null;
+ while (iterator.hasNext()) {
+ sp = (IServerPort) iterator.next();
+ if (SocketUtil.isPortInUse(sp.getPort(), 5))
+ throw new CoreException(new Status(IStatus.ERROR, CorePlugin.PLUGIN_ID, 0, GenericServerCoreMessages.getFormattedString("errorPortInUse",new String[] {Integer.toString(sp.getPort()),sp.getName()}),null));
+ }
+
+ fLiveServer.setServerState(IServer.SERVER_STARTING);
+
+ // ping server to check for startup
+ try {
+ String url = "http://localhost";
+ int port = sp.getPort();
+ if (port != 80)
+ url += ":" + port;
+ ping = new PingThread(this, fLiveServer, url, launchMode);
+ ping.start();
+ } catch (Exception e) {
+ Trace.trace(Trace.SEVERE, "Can't ping for server startup.");
+ }
+ }
+
+ /**
+ * Cleanly shuts down and terminates the server.
+ */
+ public void stop() {
+ byte state = this.fLiveServer.getServerState();
+ if (state == IServer.SERVER_STOPPED)
+ return;
+ else if (state == IServer.SERVER_STARTING || state == IServer.SERVER_STOPPING) {
+ terminate();
+ return;
+ }
+
+ try {
+ Trace.trace(Trace.FINEST, "Stopping Server");
+ if (state != IServer.SERVER_STOPPED)
+ fLiveServer.setServerState(IServer.SERVER_STOPPING);
+ ILaunchManager mgr = DebugPlugin.getDefault().getLaunchManager();
+
+ ILaunchConfigurationType type =
+ mgr.getLaunchConfigurationType(
+ IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
+
+ String launchName = "GenericServerStopper";
+ String uniqueLaunchName =
+ mgr.generateUniqueLaunchConfigurationNameFrom(launchName);
+ ILaunchConfiguration conf = null;
+
+ ILaunchConfiguration[] lch = mgr.getLaunchConfigurations(type);
+ for (int i = 0; i < lch.length; i++) {
+ if (launchName.equals(lch[i].getName())) {
+ conf = lch[i];
+ break;
+ }
+ }
+
+ ILaunchConfigurationWorkingCopy wc = null;
+ if (conf != null) {
+ wc = conf.getWorkingCopy();
+ } else {
+ wc = type.newInstance(null, uniqueLaunchName);
+ }
+ //To stop from appearing in history lists
+ wc.setAttribute(IDebugUIConstants.ATTR_PRIVATE, true);
+
+ wc.setAttribute(
+ IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME,
+ getServerDefinition().getResolver().resolveProperties(this.getServerDefinition().getStop().getClass_()));
+
+ GenericServerRuntime runtime = (GenericServerRuntime) fLiveServer
+ .getRuntime().getDelegate();
+
+ IVMInstall vmInstall = runtime.getVMInstall();
+ wc.setAttribute(
+ IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_TYPE, runtime
+ .getVMInstallTypeId());
+ wc.setAttribute(
+ IJavaLaunchConfigurationConstants.ATTR_VM_INSTALL_NAME,
+ vmInstall.getName());
+
+ setupLaunchClasspath(wc, vmInstall, getStopClasspath());
+
+ wc.setAttribute(
+ IJavaLaunchConfigurationConstants.ATTR_WORKING_DIRECTORY,
+ getServerDefinition().getResolver().resolveProperties(getServerDefinition().getStop().getWorkingDirectory()));
+ wc.setAttribute(
+ IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS,
+ getServerDefinition().getResolver().resolveProperties(getServerDefinition().getStop().getProgramArguments()));
+ wc.setAttribute(
+ IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS,
+ getServerDefinition().getResolver().resolveProperties(getServerDefinition().getStop().getVmParameters()));
+ wc.setAttribute(ATTR_STOP, "true");
+ wc.launch(ILaunchManager.RUN_MODE, new NullProgressMonitor());
+ } catch (Exception e) {
+ Trace.trace(Trace.SEVERE, "Error stopping Server", e);
+ }
+ }
+
+
+ /**
+ * @param wc
+ * @param vmInstall
+ */
+ private void setupLaunchClasspath(ILaunchConfigurationWorkingCopy wc, IVMInstall vmInstall, List cp) {
+ // add tools.jar to the path
+ if (vmInstall != null) {
+ try {
+ cp.add(JavaRuntime
+ .newRuntimeContainerClasspathEntry(
+ new Path(JavaRuntime.JRE_CONTAINER)
+ .append(
+ "org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType")
+ .append(vmInstall.getName()),
+ IRuntimeClasspathEntry.BOOTSTRAP_CLASSES)
+ .getMemento());
+ } catch (Exception e) {
+ }
+
+ IPath jrePath = new Path(vmInstall.getInstallLocation()
+ .getAbsolutePath());
+ if (jrePath != null) {
+ IPath toolsPath = jrePath.append("lib").append("tools.jar");
+ if (toolsPath.toFile().exists()) {
+ try {
+ cp.add(JavaRuntime.newArchiveRuntimeClasspathEntry(
+ toolsPath).getMemento());
+ } catch (CoreException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ }
+ }
+ }
+
+ wc.setAttribute(
+ IJavaLaunchConfigurationConstants.ATTR_CLASSPATH, cp);
+ wc.setAttribute(
+ IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH,
+ false);
+ }
+
+ /**
+ * Terminates the server.
+ */
+ public void terminate() {
+ if (fLiveServer.getServerState() == IServer.SERVER_STOPPED)
+ return;
+
+ try {
+ fLiveServer.setServerState(IServer.SERVER_STOPPING);
+ Trace.trace(Trace.FINEST, "Killing the Server process");
+ if (process != null && !process.isTerminated()) {
+ process.terminate();
+ stopImpl();
+ }
+ } catch (Exception e) {
+ Trace.trace(Trace.SEVERE, "Error killing the process", e);
+ }
+ }
+
+ protected void stopImpl() {
+ if (ping != null) {
+ ping.stopPinging();
+ ping = null;
+ }
+ if (process != null) {
+ process = null;
+ DebugPlugin.getDefault().removeDebugEventListener(processListener);
+ processListener = null;
+ }
+ fLiveServer.setServerState(IServer.SERVER_STOPPED);
+ }
+ public void setProcess(final IProcess newProcess) {
+ if (process != null)
+ return;
+
+ process = newProcess;
+ processListener = new IDebugEventSetListener() {
+ public void handleDebugEvents(DebugEvent[] events) {
+ if (events != null) {
+ int size = events.length;
+ for (int i = 0; i < size; i++) {
+ if (process.equals(events[i].getSource()) && events[i].getKind() == DebugEvent.TERMINATE) {
+ DebugPlugin.getDefault().removeDebugEventListener(this);
+ stopImpl();
+ }
+ }
+ }
+ }
+ };
+ DebugPlugin.getDefault().addDebugEventListener(processListener);
+ }
+
+ public int getStartTimeout() {
+ return 300000;
+ }
+
+ public int getStopTimeout() {
+ return 300000;
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.wtp.server.core.model.IURLProvider#getModuleRootURL(org.eclipse.wtp.server.core.model.IModule)
+ */
+ public URL getModuleRootURL(IModule module) {
+
+ try {
+ if (module == null || !(module instanceof IWebModule))
+ return null;
+
+ IServerConfiguration serverConfig = fLiveServer
+ .getServerConfiguration();
+ if (serverConfig == null)
+ return null;
+
+ String url = "http://localhost";
+ int port = 0;
+
+ port = getHttpPort();
+
+ port = ServerCore.getServerMonitorManager().getMonitoredPort(
+ fLiveServer, port, "web");
+ if (port != 80)
+ url += ":" + port;
+
+ url += "/"+module.getName();
+
+ if (!url.endsWith("/"))
+ url += "/";
+
+ return new URL(url);
+ } catch (Exception e) {
+ Trace.trace("Could not get root URL", e);
+ return null;
+ }
+
+ }
+
+ /**
+ * @return
+ */
+ private int getHttpPort() {
+ int port=-1;
+ Iterator pIter = this.getServerDefinition().getPort().iterator();
+ while (pIter.hasNext()) {
+ Port aPort = (Port) pIter.next();
+ if(port== -1)
+ port = Integer.parseInt(getServerDefinition().getResolver().resolveProperties(aPort.getNo()));
+ else if( "http".equals(aPort.getProtocol() ) )
+ port = Integer.parseInt(aPort.getNo());
+ }
+ if( port == -1)
+ port = 8080;
+ return port;
+ }
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerLaunchConfigurationDelegate.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerLaunchConfigurationDelegate.java
new file mode 100644
index 0000000..123816f
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerLaunchConfigurationDelegate.java
@@ -0,0 +1,130 @@
+/*******************************************************************************
+ * 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.internal.core;
+
+import java.io.File;
+import java.util.Map;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.debug.core.ILaunch;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.jdt.launching.AbstractJavaLaunchConfigurationDelegate;
+import org.eclipse.jdt.launching.ExecutionArguments;
+import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
+import org.eclipse.jdt.launching.IVMInstall;
+import org.eclipse.jdt.launching.IVMRunner;
+import org.eclipse.jdt.launching.VMRunnerConfiguration;
+import org.eclipse.jst.server.generic.core.CorePlugin;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.ServerCore;
+/**
+ * ServerLaunchConfiguration for the generic server.
+ *
+ * @author Gorkem Ercan
+ */
+public class GenericServerLaunchConfigurationDelegate extends AbstractJavaLaunchConfigurationDelegate {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.model.ILaunchConfigurationDelegate#launch(org.eclipse.debug.core.ILaunchConfiguration, java.lang.String, org.eclipse.debug.core.ILaunch, org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public void launch(ILaunchConfiguration configuration, String mode,
+ ILaunch launch, IProgressMonitor monitor) throws CoreException {
+
+ String serverId = configuration.getAttribute(IServer.ATTR_SERVER_ID, (String) null);
+
+ IServer server = ServerCore.getResourceManager().getServer(serverId);
+ if (server == null)
+ {
+ abort("Server "+serverId+" does not exist", null, IJavaLaunchConfigurationConstants.ERR_INTERNAL_ERROR);
+ }
+
+ GenericServer genericServer = (GenericServer)server.getDelegate();
+ genericServer.setupLaunch(launch, mode, monitor);
+
+ String mainTypeName = genericServer.getStartClassName();
+
+ IVMInstall vm = verifyVMInstall(configuration);
+
+ IVMRunner runner = vm.getVMRunner(mode);
+
+ File workingDir = verifyWorkingDirectory(configuration);
+ String workingDirName = null;
+ if (workingDir != null)
+ workingDirName = workingDir.getAbsolutePath();
+
+ // Program & VM args
+ String pgmArgs = getProgramArguments(configuration);
+ String vmArgs = getVMArguments(configuration);
+
+ ExecutionArguments execArgs = new ExecutionArguments(vmArgs, pgmArgs);
+
+ // VM-specific attributes
+ Map vmAttributesMap = getVMSpecificAttributesMap(configuration);
+
+ // Classpath
+ String[] classpath = getClasspath(configuration);
+
+ // Create VM config
+ VMRunnerConfiguration runConfig = new VMRunnerConfiguration(mainTypeName, classpath);
+ runConfig.setProgramArguments(execArgs.getProgramArgumentsArray());
+ runConfig.setVMArguments(execArgs.getVMArgumentsArray());
+ runConfig.setWorkingDirectory(workingDirName);
+ runConfig.setVMSpecificAttributesMap(vmAttributesMap);
+
+ // Bootpath
+ String[] bootpath = getBootpath(configuration);
+ if (bootpath != null && bootpath.length > 0)
+ runConfig.setBootClassPath(bootpath);
+
+ setDefaultSourceLocator(launch, configuration);
+
+ // Launch the configuration
+ runner.run(runConfig, launch, monitor);
+ genericServer.setProcess(launch.getProcesses()[0]);
+
+ }
+
+ /**
+ * Throws a core exception with the given message and optional
+ * exception. The exception's status code will indicate an error.
+ *
+ * @param message error message
+ * @param exception cause of the error, or <code>null</code>
+ * @exception CoreException with the given message and underlying
+ * exception
+ */
+ protected void abort(String message, Throwable exception, int code) throws CoreException {
+ throw new CoreException(new Status(IStatus.ERROR, CorePlugin.getDefault().getBundle().getSymbolicName(), code, message, exception));
+ }
+
+}
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerLaunchableAdapterDelegate.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerLaunchableAdapterDelegate.java
new file mode 100644
index 0000000..a374bcc
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerLaunchableAdapterDelegate.java
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * 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
+ *
+ * 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.internal.core;
+
+import java.net.URL;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.model.*;
+import org.eclipse.wst.server.core.util.HttpLaunchable;
+import org.eclipse.wst.server.core.util.NullLaunchable;
+import org.eclipse.wst.server.core.util.NullModuleObject;
+import org.eclipse.jst.server.j2ee.IWebModule;
+import org.eclipse.jst.server.j2ee.Servlet;
+import org.eclipse.jst.server.j2ee.WebResource;
+/**
+ * Web Launchable adapter delegate
+ * @author Gorkem Ercan
+ */
+public class GenericServerLaunchableAdapterDelegate implements ILaunchableAdapterDelegate {
+ /*
+ * @see ILaunchableAdapterDelegate#getLaunchable(IServer, IModuleObject)
+ */
+ public ILaunchable getLaunchable(IServer server, IModuleObject moduleObject) {
+
+ IServerDelegate delegate = server.getDelegate();
+ if (!(delegate instanceof GenericServer))
+ return null;
+ if (!(moduleObject instanceof Servlet) &&
+ !(moduleObject instanceof WebResource) &&
+ !(moduleObject instanceof NullModuleObject))
+ return null;
+ if (!(moduleObject.getModule() instanceof IWebModule))
+ return null;
+
+ try {
+ URL url = ((IURLProvider) delegate).getModuleRootURL(moduleObject.getModule());
+
+ Trace.trace("root: " + url);
+
+ if (moduleObject instanceof Servlet) {
+ Servlet servlet = (Servlet) moduleObject;
+ if (servlet.getAlias() != null) {
+ String path = servlet.getAlias();
+ if (path.startsWith("/"))
+ path = path.substring(1);
+ url = new URL(url, path);
+ } else
+ url = new URL(url, "servlet/" + servlet.getServletClassName());
+ } else if (moduleObject instanceof WebResource) {
+ WebResource resource = (WebResource) moduleObject;
+ String path = resource.getPath().toString();
+ Trace.trace("path: " + path);
+ if (path != null && path.startsWith("/") && path.length() > 0)
+ path = path.substring(1);
+ if (path != null && path.length() > 0)
+ url = new URL(url, path);
+ } else { // null
+ return new NullLaunchable();
+ }
+ return new HttpLaunchable(url);
+ } catch (Exception e) {
+ Trace.trace("Error getting URL for " + moduleObject, e);
+ return null;
+ }
+ }
+}
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerRuntime.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerRuntime.java
new file mode 100644
index 0000000..fb1a3d3
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerRuntime.java
@@ -0,0 +1,147 @@
+/*******************************************************************************
+ * 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.internal.core;
+
+import java.io.File;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jdt.launching.IVMInstall;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.jst.server.core.IGenericRuntime;
+import org.eclipse.jst.server.generic.core.CorePlugin;
+import org.eclipse.jst.server.generic.core.GenericServerCoreMessages;
+import org.eclipse.jst.server.generic.servertype.definition.ArchiveType;
+import org.eclipse.jst.server.generic.servertype.definition.Classpath;
+import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
+import org.eclipse.wst.server.core.IRuntime;
+import org.eclipse.wst.server.core.ServerUtil;
+/**
+ * Generic server runtime support.
+ *
+ * @author Gorkem Ercan
+ */
+public class GenericServerRuntime implements IGenericRuntime
+{
+
+ private IRuntime fRuntime;
+ public static final String SERVER_DEFINITION_ID = "server_definition_id";
+ public static final String SERVER_INSTANCE_PROPERTIES = "generic_server_instance_properties";
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.server.core.IGenericRuntime#getVMInstallTypeId()
+ */
+ public String getVMInstallTypeId() {
+ return JavaRuntime.getDefaultVMInstall().getVMInstallType().getId();
+ // TODO configurable.
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.server.core.IGenericRuntime#getVMInstallId()
+ */
+ public String getVMInstallId() {
+ return JavaRuntime.getDefaultVMInstall().getId();
+ // TODO configurable.
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.server.core.IGenericRuntime#getVMInstall()
+ */
+ public IVMInstall getVMInstall() {
+ return JavaRuntime.getDefaultVMInstall();
+ // TODO configurable
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.server.core.IGenericRuntime#validate()
+ */
+ public IStatus validate() {
+ if (fRuntime.getName() == null || fRuntime.getName().length() == 0)
+ return new Status(IStatus.ERROR, CorePlugin.PLUGIN_ID, 0, GenericServerCoreMessages.getString("errorName"), null);
+ if (ServerUtil.isNameInUse(fRuntime))
+ return new Status(IStatus.ERROR, CorePlugin.PLUGIN_ID, 0, GenericServerCoreMessages.getString("errorDuplicateRuntimeName"), null);
+ if (getVMInstall() == null)
+ return new Status(IStatus.ERROR, CorePlugin.PLUGIN_ID, 0, GenericServerCoreMessages.getString("errorJRE"), null);
+
+ ServerRuntime serverTypeDefinition = getServerTypeDefinition();
+ if(serverTypeDefinition == null)
+ return new Status(IStatus.ERROR, CorePlugin.PLUGIN_ID, 0, GenericServerCoreMessages.getString("errorNoServerType"), null);
+ if(serverTypeDefinition.getClasspath()== null || serverTypeDefinition.getClasspath().size()<1)
+ return new Status(IStatus.ERROR, CorePlugin.PLUGIN_ID, 0 ,GenericServerCoreMessages.getString("errorNoClasspath"),null);
+ Iterator cpList = serverTypeDefinition.getClasspath().iterator();
+ while (cpList.hasNext()) {
+ Classpath cpth = (Classpath) cpList.next();
+ if(cpth.getArchive()== null || cpth.getArchive().size()<1)
+ return new Status(IStatus.ERROR, CorePlugin.PLUGIN_ID, 0 ,GenericServerCoreMessages.getString("errorNoClasspath"),null);
+ Iterator archIter = cpth.getArchive().iterator();
+ while (archIter.hasNext()) {
+ ArchiveType arch = (ArchiveType) archIter.next();
+ String arcPath = serverTypeDefinition.getResolver().resolveProperties((String)arch.getPath());
+ File f = new File(arcPath);
+ if(f.exists()==false)
+ return new Status(IStatus.ERROR, CorePlugin.PLUGIN_ID, 0 ,GenericServerCoreMessages.getFormattedString("errorMissingClasspathEntry",new String[]{f.getPath()} ),null);
+ }
+
+ }
+ return new Status(IStatus.OK, CorePlugin.PLUGIN_ID, 0, "", null);
+ }
+ /**
+ * Returns the ServerTypeDefinition for this runtime.
+ * Populated with the user properties if exists.
+ *
+ * @return populated ServerTypeDefinition
+ */
+ public ServerRuntime getServerTypeDefinition()
+ {
+ String id= fRuntime.getAttribute(SERVER_DEFINITION_ID,(String)null);
+ Map properties = fRuntime.getAttribute(SERVER_INSTANCE_PROPERTIES,(Map)null);
+ if(id==null)
+ return null;
+ return CorePlugin.getDefault().getServerTypeDefinitionManager().getServerRuntimeDefinition(id,properties);
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.server.core.model.IRuntimeDelegate#initialize(org.eclipse.wst.server.core.IRuntime)
+ */
+ public void initialize(IRuntime runtime) {
+ this.fRuntime = runtime;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.server.core.model.IRuntimeDelegate#dispose()
+ */
+ public void dispose() {
+ this.fRuntime=null;
+ }
+
+}
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerRuntimeTargetHandler.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerRuntimeTargetHandler.java
new file mode 100644
index 0000000..b930400
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerRuntimeTargetHandler.java
@@ -0,0 +1,88 @@
+/*******************************************************************************
+ * 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.internal.core;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.launching.IVMInstall;
+import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.jst.server.core.ClasspathRuntimeTargetHandler;
+import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
+import org.eclipse.wst.server.core.IRuntime;
+/**
+ * Provides the Classpath containers to be added into project classpaths.
+ *
+ * @author Gorkem Ercan
+ */
+public class GenericServerRuntimeTargetHandler extends
+ ClasspathRuntimeTargetHandler {
+
+ /* (non-Javadoc)
+ * @see com.ibm.wtp.server.java.core.ClasspathRuntimeTargetHandler#getId()
+ */
+ public String getId() {
+ return "org.eclipse.jst.server.generic.runtimeTarget";
+ }
+
+ /* (non-Javadoc)
+ * @see com.ibm.wtp.server.java.core.ClasspathRuntimeTargetHandler#getClasspathContainerLabel(com.ibm.wtp.server.core.IRuntime, java.lang.String)
+ */
+ public String getClasspathContainerLabel(IRuntime runtime, String id) {
+ ServerRuntime definition= ServerTypeDefinitionUtil.getServerTypeDefinition(runtime);
+ return definition.getName();
+ }
+
+ /* (non-Javadoc)
+ * @see com.ibm.wtp.server.java.core.ClasspathRuntimeTargetHandler#resolveClasspathContainer(com.ibm.wtp.server.core.IRuntime, java.lang.String)
+ */
+ public IClasspathEntry[] resolveClasspathContainer(IRuntime runtime,
+ String id)
+ {
+ return ServerTypeDefinitionUtil.getServerClassPathEntry(runtime);
+ }
+
+ public String[] getClasspathEntryIds(IRuntime runtime) {
+ // Values do not realy have any use but the number of entries give the number of
+ // containers you have.
+ return new String[1];
+ }
+
+ public IClasspathEntry[] getDelegateClasspathEntries(IRuntime runtime) {
+ GenericServerRuntime genericRuntime = (GenericServerRuntime)runtime.getDelegate();
+ IVMInstall vmInstall = genericRuntime.getVMInstall();
+ if (vmInstall != null) {
+ String name = vmInstall.getName();
+ return new IClasspathEntry[] { JavaCore.newContainerEntry(new Path(JavaRuntime.JRE_CONTAINER).append("org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType").append(name)) };
+ }
+ return null;
+ }
+}
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerRuntimeWorkingCopy.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerRuntimeWorkingCopy.java
new file mode 100644
index 0000000..cd019e4
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerRuntimeWorkingCopy.java
@@ -0,0 +1,80 @@
+/*******************************************************************************
+ * 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.internal.core;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jst.server.core.IGenericRuntimeWorkingCopy;
+import org.eclipse.wst.server.core.IRuntimeWorkingCopy;
+
+/**
+ * Working copy. This does not really do much delegates
+ * to GenericServerRuntime.
+ *
+ * @author Gorkem Ercan
+ * @see org.eclipse.jst.server.generic.internal.core.GenericServerRuntime
+ */
+public class GenericServerRuntimeWorkingCopy extends GenericServerRuntime implements IGenericRuntimeWorkingCopy
+{
+// private IRuntimeWorkingCopy wc;
+
+ public void initialize(IRuntimeWorkingCopy runtime) {
+// wc = runtime;
+ }
+
+ public IStatus validate() {
+ return super.validate();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.server.core.IGenericRuntimeWorkingCopy#setVMInstall(java.lang.String, java.lang.String)
+ */
+ public void setVMInstall(String typeId, String id) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.server.core.model.IRuntimeWorkingCopyDelegate#setDefaults()
+ */
+ public void setDefaults() {
+ // TODO Auto-generated method stub
+
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.server.core.model.IRuntimeWorkingCopyDelegate#handleSave(byte, org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public void handleSave(byte id, IProgressMonitor monitor) {
+ // TODO Auto-generated method stub
+
+ }
+}
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerSourcePathComputerDelegate.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerSourcePathComputerDelegate.java
new file mode 100644
index 0000000..feb058e
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerSourcePathComputerDelegate.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * 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.internal.core;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.sourcelookup.ISourceContainer;
+import org.eclipse.debug.core.sourcelookup.ISourcePathComputerDelegate;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.internal.launching.JavaSourceLookupUtil;
+import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
+import org.eclipse.jdt.launching.JavaRuntime;
+/**
+ * SourcePathComputer for the GenericLaunchConfiguration.
+ *
+ * @author Gorkem Ercan
+ */
+public class GenericServerSourcePathComputerDelegate implements ISourcePathComputerDelegate {
+
+ /* (non-Javadoc)
+ * @see org.eclipse.debug.core.sourcelookup.ISourcePathComputerDelegate#computeSourceContainers(org.eclipse.debug.core.ILaunchConfiguration, org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public ISourceContainer[] computeSourceContainers(ILaunchConfiguration configuration, IProgressMonitor monitor) throws CoreException {
+
+ IRuntimeClasspathEntry[] unresolvedEntries = JavaRuntime.computeUnresolvedSourceLookupPath(configuration);
+ // FIXME have only the projects of registered modules.
+ IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
+ List javaProjectList = new ArrayList();
+ for(int i = 0; i<projects.length;i++)
+ {
+ if(projects[i].hasNature(JavaCore.NATURE_ID))
+ {
+ IJavaProject javaProject = (IJavaProject) projects[i].getNature(JavaCore.NATURE_ID);
+ javaProjectList.add(javaProject);
+ }
+ }
+ IRuntimeClasspathEntry[] projectEntries = new IRuntimeClasspathEntry[javaProjectList.size()];
+ for (int i = 0; i < javaProjectList.size(); i++) {
+ projectEntries[i] = JavaRuntime.newProjectRuntimeClasspathEntry((IJavaProject)javaProjectList.get(i));
+ }
+ IRuntimeClasspathEntry[] entries = new IRuntimeClasspathEntry[projectEntries.length+unresolvedEntries.length];
+ System.arraycopy(unresolvedEntries,0,entries,0,unresolvedEntries.length);
+ System.arraycopy(projectEntries,0,entries,unresolvedEntries.length,projectEntries.length);
+
+ IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveSourceLookupPath(entries, configuration);
+ return JavaSourceLookupUtil.translate(resolved, true);
+ }}
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerWorkingCopy.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerWorkingCopy.java
new file mode 100644
index 0000000..fdfd4ce
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/GenericServerWorkingCopy.java
@@ -0,0 +1,246 @@
+/*******************************************************************************
+ * 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.internal.core;
+
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.wst.server.core.IServerState;
+import org.eclipse.wst.server.core.IServerWorkingCopy;
+import org.eclipse.wst.server.core.ITask;
+import org.eclipse.wst.server.core.model.IModule;
+import org.eclipse.wst.server.core.model.IModuleEvent;
+import org.eclipse.wst.server.core.model.IModuleFactoryEvent;
+import org.eclipse.wst.server.core.model.IPublisher;
+import org.eclipse.wst.server.core.model.IServerWorkingCopyDelegate;
+import org.eclipse.wst.server.core.resources.IModuleResourceDelta;
+
+public class GenericServerWorkingCopy extends GenericServer implements
+ IServerWorkingCopyDelegate {
+
+ protected IServerWorkingCopy workingCopy;
+
+ private IServerState liveServer;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerWorkingCopyDelegate#initialize(com.ibm.wtp.server.core.IServerWorkingCopy)
+ */
+ public void initialize(IServerWorkingCopy workingCopy) {
+ this.workingCopy = workingCopy;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerWorkingCopyDelegate#setDefaults()
+ */
+ public void setDefaults() {
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerWorkingCopyDelegate#modifyModules(com.ibm.wtp.server.core.model.IModule[],
+ * com.ibm.wtp.server.core.model.IModule[],
+ * org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public void modifyModules(IModule[] add, IModule[] remove,
+ IProgressMonitor monitor) throws CoreException {
+ //todo implement module add/remove.
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerDelegate#initialize(com.ibm.wtp.server.core.IServerState)
+ */
+ public void initialize(IServerState liveServer) {
+ this.liveServer = liveServer;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerDelegate#dispose()
+ */
+ public void dispose() {
+ // TODO Auto-generated method stub
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerDelegate#getPublisher(java.util.List,
+ * com.ibm.wtp.server.core.model.IModule)
+ */
+ public IPublisher getPublisher(List parents, IModule module) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerDelegate#updateConfiguration()
+ */
+ public void updateConfiguration() {
+ // TODO Auto-generated method stub
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerDelegate#updateModule(com.ibm.wtp.server.core.model.IModule,
+ * com.ibm.wtp.server.core.resources.IModuleResourceDelta)
+ */
+ public void updateModule(IModule module, IModuleResourceDelta delta) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerDelegate#publishStart(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public IStatus publishStart(IProgressMonitor monitor) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerDelegate#publishConfiguration(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public IStatus publishConfiguration(IProgressMonitor monitor) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerDelegate#publishStop(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public IStatus publishStop(IProgressMonitor monitor) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerDelegate#canModifyModules(com.ibm.wtp.server.core.model.IModule[],
+ * com.ibm.wtp.server.core.model.IModule[])
+ */
+ public IStatus canModifyModules(IModule[] add, IModule[] remove) {
+ // TODO Auto-generated method stub
+ return Status.OK_STATUS;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerDelegate#getModules()
+ */
+ public IModule[] getModules() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerDelegate#getRepairCommands(com.ibm.wtp.server.core.model.IModuleFactoryEvent[],
+ * com.ibm.wtp.server.core.model.IModuleEvent[])
+ */
+ public ITask[] getRepairCommands(IModuleFactoryEvent[] factoryEvent,
+ IModuleEvent[] moduleEvent) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerDelegate#getChildModules(com.ibm.wtp.server.core.model.IModule)
+ */
+ public List getChildModules(IModule module) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerDelegate#getParentModules(com.ibm.wtp.server.core.model.IModule)
+ */
+ public List getParentModules(IModule module) throws CoreException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see com.ibm.wtp.server.core.model.IServerDelegate#setLaunchDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
+ */
+ public void setLaunchDefaults(ILaunchConfigurationWorkingCopy workingCopy) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IServerWorkingCopyDelegate#handleSave(byte,
+ * org.eclipse.core.runtime.IProgressMonitor)
+ */
+ public void handleSave(byte id, IProgressMonitor monitor) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.wst.server.core.model.IServerDelegate#getModuleState(org.eclipse.wst.server.core.model.IModule)
+ */
+ public byte getModuleState(IModule module) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/PingThread.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/PingThread.java
new file mode 100644
index 0000000..10badb7
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/PingThread.java
@@ -0,0 +1,110 @@
+package org.eclipse.jst.server.generic.internal.core;
+/**********************************************************************
+ * Copyright (c) 2003 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ **********************************************************************/
+import java.io.FileNotFoundException;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+
+import org.eclipse.debug.core.ILaunchManager;
+
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.IServerState;
+/**
+ * Thread used to ping server to test when it is started.
+ */
+public class PingThread extends Thread {
+ // delay before pinging starts
+ private static final int PING_DELAY = 2000;
+
+ // delay between pings
+ private static final int PING_INTERVAL = 250;
+
+ // maximum number of pings before giving up
+ private static final int MAX_PINGS = 56; // total: 16 seconds
+
+ private boolean stop = false;
+ private String mode;
+ private String url = "";
+ private GenericServer serverType;
+ private IServerState control;
+
+ public PingThread(GenericServer serverType, IServerState control, String url, String mode) { super();
+ this.control = control;
+ this.url = url;
+ this.mode = mode;
+ this.serverType = serverType;
+ setDaemon(true);
+ }
+
+ /**
+ * Ping the server until it is started. Then set the server
+ * state to SERVER_STARTED.
+ */
+ public void run() {
+ int count = 0;
+ try {
+ sleep(PING_DELAY);
+ } catch (Exception e) { }
+ while (!stop) {
+ try {
+ if (count == MAX_PINGS) {
+ serverType.stop();
+ stop = true;
+ break;
+ }
+ Trace.trace(Trace.FINEST, "Ping: pinging");
+ URL pingUrl = new URL(url);
+ URLConnection conn = pingUrl.openConnection();
+ ((HttpURLConnection)conn).getResponseCode();
+ count++;
+
+ // ping worked - server is up
+ if (!stop) {
+ Trace.trace(Trace.FINEST, "Ping: success");
+ Thread.sleep(200);
+ if (ILaunchManager.DEBUG_MODE.equals(mode))
+ control.setServerState(IServer.SERVER_STARTED_DEBUG);
+ else if (ILaunchManager.PROFILE_MODE.equals(mode))
+ control.setServerState(IServer.SERVER_STARTED_PROFILE);
+ else
+ control.setServerState(IServer.SERVER_STARTED);
+ }
+ stop = true;
+ } catch (FileNotFoundException fe) {
+ try { Thread.sleep(200); } catch (Exception e) { }
+ if (ILaunchManager.DEBUG_MODE.equals(mode))
+ control.setServerState(IServer.SERVER_STARTED_DEBUG);
+ else if (ILaunchManager.PROFILE_MODE.equals(mode))
+ control.setServerState(IServer.SERVER_STARTED_PROFILE);
+ else
+ control.setServerState(IServer.SERVER_STARTED);
+ stop = true;
+ } catch (Exception e) {
+ Trace.trace(Trace.FINEST, "Ping: failed");
+ // pinging failed
+ if (!stop) {
+ try {
+ sleep(PING_INTERVAL);
+ } catch (InterruptedException e2) { }
+ }
+ }
+ }
+ }
+
+ /**
+ * Tell the pinging to stop.
+ */
+ public void stopPinging() {
+ //Trace.trace("Ping: stopping");
+ stop = true;
+ }
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/ServerTypeDefinitionManager.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/ServerTypeDefinitionManager.java
new file mode 100644
index 0000000..1c52ad2
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/ServerTypeDefinitionManager.java
@@ -0,0 +1,68 @@
+/*******************************************************************************
+ * 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.internal.core;
+
+import java.net.URL;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.jst.server.generic.internal.xml.XMLUtils;
+import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
+/**
+ * Manages the retrieaval of ServerTypeDefinitions.
+ *
+ * @author Gorkem Ercan
+ */
+
+public class ServerTypeDefinitionManager
+{
+ private XMLUtils fXmlUtils;
+
+ public ServerTypeDefinitionManager(URL serverDefinitionURL)
+ {
+ super();
+ fXmlUtils = new XMLUtils(serverDefinitionURL);
+ }
+
+
+ public ServerRuntime getServerRuntimeDefinition(String id, Map properties)
+ {
+ ServerRuntime definition = fXmlUtils.getServerTypeDefinitionNamed(id);
+ definition.setPropertyValues(properties);
+ return definition;
+ }
+
+ public ServerRuntime[] getServerTypeDefinitions()
+ {
+ List definitionList = fXmlUtils.getServerTypeDefinitions();
+ return (ServerRuntime[])definitionList.toArray(new ServerRuntime[definitionList.size()]);
+ }
+}
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/ServerTypeDefinitionUtil.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/ServerTypeDefinitionUtil.java
new file mode 100644
index 0000000..aeb9d2b
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/ServerTypeDefinitionUtil.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * 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.internal.core;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jst.server.generic.core.CorePlugin;
+import org.eclipse.jst.server.generic.servertype.definition.ArchiveType;
+import org.eclipse.jst.server.generic.servertype.definition.Classpath;
+import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
+import org.eclipse.wst.server.core.IRuntime;
+
+
+public class ServerTypeDefinitionUtil
+{
+ /**
+ *
+ * @param runtime
+ * @return
+ */
+ public static ServerRuntime getServerTypeDefinition(IRuntime runtime)
+ {
+ String serverType = runtime.getAttribute(GenericServerRuntime.SERVER_DEFINITION_ID,(String)null);
+ Map properties = runtime.getAttribute(GenericServerRuntime.SERVER_INSTANCE_PROPERTIES,(Map)null);
+ ServerRuntime definition =
+ CorePlugin.getDefault().getServerTypeDefinitionManager().getServerRuntimeDefinition(serverType,properties);
+ return definition;
+ }
+
+ public static IClasspathEntry[] getServerClassPathEntry(IRuntime runtime)
+ {
+ ServerRuntime definition = getServerTypeDefinition(runtime);
+ String ref = definition.getProject().getClasspathReference();
+ Classpath cp = definition.getClasspath(ref);
+ Iterator archives = cp.getArchive().iterator();
+ ArrayList entryList = new ArrayList();
+ while (archives.hasNext()) {
+ ArchiveType archive = (ArchiveType) archives.next();
+ String item = definition.getResolver().resolveProperties(archive.getPath());
+ IClasspathEntry entry = JavaCore.newLibraryEntry(new Path(item),null,null );
+ entryList.add(entry);
+ }
+
+ return (IClasspathEntry[])entryList.toArray(new IClasspathEntry[entryList.size()]);
+ }
+
+}
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/Trace.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/Trace.java
new file mode 100644
index 0000000..6484869
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/core/Trace.java
@@ -0,0 +1,74 @@
+package org.eclipse.jst.server.generic.internal.core;
+
+import org.eclipse.jst.server.generic.core.CorePlugin;
+
+/**********************************************************************
+ * Copyright (c) 2003 IBM Corporation and others.
+ * 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:
+ * IBM - Initial API and implementation
+ **********************************************************************/
+/**
+ * Helper class to route trace output.
+ */
+public class Trace {
+ public static byte CONFIG = 0;
+ public static byte WARNING = 1;
+ public static byte SEVERE = 2;
+ public static byte FINEST = 3;
+ public static byte FINER = 4;
+
+ /**
+ * Trace constructor comment.
+ */
+ private Trace() {
+ super();
+ }
+
+ /**
+ * Trace the given text.
+ *
+ * @param s java.lang.String
+ */
+ public static void trace(byte level, String s) {
+ Trace.trace(level, s, null);
+ }
+
+ /**
+ * Trace the given message and exception.
+ *
+ * @param s java.lang.String
+ * @param t java.lang.Throwable
+ */
+ public static void trace(byte level, String s, Throwable t) {
+ if (!CorePlugin.getDefault().isDebugging())
+ return;
+
+ System.out.println(s);
+ if (t != null)
+ t.printStackTrace();
+ }
+
+ /**
+ * Trace the given text.
+ *
+ * @param s java.lang.String
+ */
+ public static void trace(String s) {
+ trace(s, null);
+ }
+
+ /**
+ * Trace the given exception.
+ *
+ * @param s java.lang.String
+ * @param e java.lang.Throwable
+ */
+ public static void trace(String s, Throwable t) {
+ trace(FINEST, s, t);
+ }
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/xml/Resolver.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/xml/Resolver.java
new file mode 100644
index 0000000..ddf43e4
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/xml/Resolver.java
@@ -0,0 +1,174 @@
+/*******************************************************************************
+ * 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:
+ * Naci M. Dai - initial API and implementation
+ *
+ *
+ * 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.internal.xml;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.jst.server.generic.servertype.definition.ArchiveType;
+import org.eclipse.jst.server.generic.servertype.definition.Property;
+import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
+
+
+public class Resolver {
+
+
+
+ private Map fPropertyValues = new HashMap();
+ private ServerRuntime server;
+
+ /**
+ * @param impl
+ */
+ public Resolver(ServerRuntime runtime) {
+ this.server = runtime;
+ }
+
+ public List resolveClasspathProperties(List cpList)
+ {
+ ArrayList list = new ArrayList(cpList.size());
+ for (int i = 0; i < cpList.size(); i++) {
+ ArchiveType item = (ArchiveType) cpList.get(i);
+ String cpath = resolveProperties(item.getPath());
+ list.add(cpath);
+ }
+ return list;
+ }
+ public String resolveProperties(String proppedString) {
+ HashMap cache = new HashMap(getProperties().size());
+ Iterator itr = getProperties().iterator();
+ while (itr.hasNext()) {
+ Property element =(Property) itr.next();
+ String value = element.getDefault();
+ if(fPropertyValues != null && fPropertyValues.containsKey(element.getId()))
+ value=(String)fPropertyValues.get(element.getId());
+ cache.put(element.getId(), value);
+ }
+ //String vmPath = install.getInstallLocation().getCanonicalPath();
+ //vmPath = vmPath.replace('\\', '/');
+ cache.put("jrePath", "JRE");
+
+ String str = resolvePropertiesFromCache(proppedString, cache);
+ str = fixPassthroughProperties(str);
+ return str;
+ }
+
+ /**
+ * @return
+ */
+ private List getProperties() {
+ return this.server.getProperty();
+ }
+
+ /**
+ * @param str
+ * @return
+ */
+ private String fixPassthroughProperties(String str) {
+ String resolvedString = str;
+ if (isPassPropertyLeft(resolvedString)) {
+ resolvedString = fixParam(resolvedString);
+ resolvedString = fixPassthroughProperties(resolvedString);
+ }
+ return resolvedString;
+ }
+
+ private String resolvePropertiesFromCache(
+ String proppedString,
+ HashMap cache) {
+ String resolvedString = proppedString;
+ int start = skipToProperty(resolvedString,cache);
+ if (start >= 0) {
+ resolvedString = resolveProperty(resolvedString, start, cache);
+ resolvedString = resolvePropertiesFromCache(resolvedString, cache);
+ }
+ return resolvedString;
+ }
+
+ private int skipToProperty(String str,HashMap cache) {
+ int start = -1;
+ int end = 0;
+ String value = null;
+ do {
+ start = str.indexOf("${",end);
+ if( start < 0)
+ return start;
+ end = str.indexOf("}", start);
+
+ String key = str.substring(start + 2, end);
+ value = (String)cache.get(key);
+ }
+ while(value == null);
+ return start;
+ }
+
+ private boolean isPassPropertyLeft(String str) {
+ return str.indexOf("%{") >= 0;
+ }
+
+ private String resolveProperty(String proppedString, int start, HashMap cache) {
+ String str = proppedString;
+ start = str.indexOf("${");
+ int end = str.indexOf("}", start);
+ String key = str.substring(start + 2, end);
+ String value = (String)cache.get(key);
+ if(value == null )
+ return str;
+ return str.substring(0, start)
+ + value
+ + str.substring(end + 1);
+ }
+
+ private String fixParam(String proppedString) {
+ String str = proppedString;
+ int start = str.indexOf("%{");
+ return str.substring(0, start)
+ + "${"
+ + str.substring(start+2);
+ }
+
+ /**
+ * @return Returns the fPropertyValues.
+ */
+ public Map getPropertyValues() {
+ return fPropertyValues;
+ }
+ /**
+ * @param propertyValues The fPropertyValues to set.
+ */
+ public void setPropertyValues(Map propertyValues) {
+ fPropertyValues = propertyValues;
+ }
+}
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/xml/XMLUtils.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/xml/XMLUtils.java
new file mode 100644
index 0000000..75968e8
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/internal/xml/XMLUtils.java
@@ -0,0 +1,204 @@
+/*******************************************************************************
+ * 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:
+ * Naci M. Dai - initial API and implementation
+ *
+ *
+ * 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.internal.xml;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.common.util.WrappedException;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
+import org.eclipse.jst.server.generic.core.CorePlugin;
+import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
+import org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage;
+
+/**
+ * @author Naci Dai
+ */
+public class XMLUtils {
+
+ ArrayList definitions;
+
+ File sourceDir;
+
+ public XMLUtils(URL installUrl) {
+ String serversPath = installUrl.getPath() + "/servers";
+ URI uri;
+ try {
+ uri = new URI(installUrl.getProtocol(), installUrl.getHost(),
+ serversPath, installUrl.getQuery());
+ sourceDir = new File(uri);
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ refresh();
+ }
+
+ public void refresh() {
+ definitions = scanFiles(sourceDir);
+ }
+
+ public void update(ServerRuntime element) {
+ toFile(element);
+ }
+
+ public void update() {
+ Iterator defs = definitions.iterator();
+ while (defs.hasNext()) {
+ ServerRuntime element = (ServerRuntime) defs.next();
+ update(element);
+ }
+ }
+
+ private void toFile(ServerRuntime def) {
+ try {
+
+ File f = new File(def.getFilename());
+ f.renameTo(new File(f.getCanonicalFile() + ".bak"));
+ } catch (IOException e) {
+ }
+
+ try {
+ FileOutputStream out = new FileOutputStream(def.getFilename());
+ out.write(def.toString().getBytes());
+ out.close();
+ } catch (FileNotFoundException e) {
+ } catch (IOException e) {
+ }
+ }
+
+ private ArrayList scanFiles(File dir) {
+ ArrayList all = new ArrayList();
+ if (dir.isDirectory()) {
+ File[] allServers = dir.listFiles(new FilenameFilter() {
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.io.FilenameFilter#accept(java.io.File,
+ * java.lang.String)
+ */
+ public boolean accept(File dir, String name) {
+ if (name.endsWith(".server"))
+ return true;
+ return false;
+ }
+
+ });
+
+ for (int i = 0; i < allServers.length; i++) {
+ File file = allServers[i];
+
+ // Create a resource set.
+ ResourceSet resourceSet = new ResourceSetImpl();
+
+ // Register the default resource factory -- only needed for
+ // stand-alone!
+ resourceSet.getResourceFactoryRegistry()
+ .getExtensionToFactoryMap().put(
+ Resource.Factory.Registry.DEFAULT_EXTENSION,
+ new XMIResourceFactoryImpl());
+
+ ServerTypePackage gstPack = ServerTypePackage.eINSTANCE;
+
+ // Get the URI of the model file.
+ org.eclipse.emf.common.util.URI fileURI = org.eclipse.emf.common.util.URI
+ .createFileURI(file.getAbsolutePath());
+
+ // Demand load the resource for this file.
+ Resource resource=null;
+ try {
+ resource = resourceSet.getResource(fileURI, true);
+ } catch (WrappedException e) {
+// sth wrong with this .server file.
+ CorePlugin.getDefault().getLog().log(new Status(IStatus.ERROR,CorePlugin.PLUGIN_ID,1,"Error loading the server type definition",e));
+ }
+ if(resource!=null) {
+ ServerRuntime def = (ServerRuntime) resource.getContents().get(0);
+ if (def != null) {
+ def.setFilename(file.getAbsolutePath());
+ all.add(def);
+ }
+ }
+ }
+ }
+
+ return all;
+ }
+
+ /**
+ * @return ArrayList
+ */
+ public ArrayList getServerTypeDefinitions() {
+ return definitions;
+ }
+
+ /**
+ * @return ArrayList
+ */
+ public ServerRuntime getServerTypeDefinitionNamed(String name) {
+ refresh();
+ Iterator defs = getServerTypeDefinitions().iterator();
+ while (defs.hasNext()) {
+ ServerRuntime elem = (ServerRuntime) defs.next();
+ if (name.equals(elem.getName()))
+ return elem;
+ }
+ return null;
+ }
+
+ /**
+ * Sets the definitions.
+ *
+ * @param definitions
+ * The definitions to set
+ */
+ public void setDefinitions(ArrayList definitions) {
+ this.definitions = definitions;
+ }
+
+
+
+}
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/ArchiveType.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/ArchiveType.java
new file mode 100644
index 0000000..d5c641c
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/ArchiveType.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: ArchiveType.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Archive Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.ArchiveType#getPath <em>Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getArchiveType()
+ * @model
+ * @generated
+ */
+public interface ArchiveType extends EObject {
+ /**
+ * Returns the value of the '<em><b>Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Path</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Path</em>' attribute.
+ * @see #setPath(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getArchiveType_Path()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String"
+ * @generated
+ */
+ String getPath();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.ArchiveType#getPath <em>Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Path</em>' attribute.
+ * @see #getPath()
+ * @generated
+ */
+ void setPath(String value);
+
+} // ArchiveType
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Classpath.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Classpath.java
new file mode 100644
index 0000000..716d138
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Classpath.java
@@ -0,0 +1,172 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: Classpath.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.util.FeatureMap;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Classpath</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Classpath#getGroup <em>Group</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Classpath#getArchive <em>Archive</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Classpath#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Classpath#isIsLibrary <em>Is Library</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getClasspath()
+ * @model
+ * @generated
+ */
+public interface Classpath extends EObject {
+ /**
+ * Returns the value of the '<em><b>Group</b></em>' attribute list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Group</em>' attribute list.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getClasspath_Group()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
+ * @generated
+ */
+ FeatureMap getGroup();
+
+ /**
+ * Returns the value of the '<em><b>Archive</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.jst.server.generic.servertype.definition.ArchiveType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Archive</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Archive</em>' containment reference list.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getClasspath_Archive()
+ * @model type="org.eclipse.jst.server.generic.servertype.definition.ArchiveType" containment="true" resolveProxies="false" required="true" transient="true" volatile="true" derived="true"
+ * @generated
+ */
+ EList getArchive();
+
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getClasspath_Id()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String"
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Classpath#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Is Library</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Library</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Is Library</em>' attribute.
+ * @see #isSetIsLibrary()
+ * @see #unsetIsLibrary()
+ * @see #setIsLibrary(boolean)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getClasspath_IsLibrary()
+ * @model unique="false" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
+ * @generated
+ */
+ boolean isIsLibrary();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Classpath#isIsLibrary <em>Is Library</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Is Library</em>' attribute.
+ * @see #isSetIsLibrary()
+ * @see #unsetIsLibrary()
+ * @see #isIsLibrary()
+ * @generated
+ */
+ void setIsLibrary(boolean value);
+
+ /**
+ * Unsets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Classpath#isIsLibrary <em>Is Library</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isSetIsLibrary()
+ * @see #isIsLibrary()
+ * @see #setIsLibrary(boolean)
+ * @generated
+ */
+ void unsetIsLibrary();
+
+ /**
+ * Returns whether the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Classpath#isIsLibrary <em>Is Library</em>}' attribute is set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return whether the value of the '<em>Is Library</em>' attribute is set.
+ * @see #unsetIsLibrary()
+ * @see #isIsLibrary()
+ * @see #setIsLibrary(boolean)
+ * @generated
+ */
+ boolean isSetIsLibrary();
+
+} // Classpath
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/LaunchConfiguration.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/LaunchConfiguration.java
new file mode 100644
index 0000000..6f7ef6a
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/LaunchConfiguration.java
@@ -0,0 +1,188 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: LaunchConfiguration.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Launch Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getClass_ <em>Class</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getWorkingDirectory <em>Working Directory</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getProgramArguments <em>Program Arguments</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getVmParameters <em>Vm Parameters</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getClasspathReference <em>Classpath Reference</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getLaunchConfiguration()
+ * @model
+ * @generated
+ */
+public interface LaunchConfiguration extends EObject {
+ /**
+ * Returns the value of the '<em><b>Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Class</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Class</em>' attribute.
+ * @see #setClass(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getLaunchConfiguration_Class()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getClass_();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getClass_ <em>Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Class</em>' attribute.
+ * @see #getClass_()
+ * @generated
+ */
+ void setClass(String value);
+
+ /**
+ * Returns the value of the '<em><b>Working Directory</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Working Directory</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Working Directory</em>' attribute.
+ * @see #setWorkingDirectory(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getLaunchConfiguration_WorkingDirectory()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getWorkingDirectory();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getWorkingDirectory <em>Working Directory</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Working Directory</em>' attribute.
+ * @see #getWorkingDirectory()
+ * @generated
+ */
+ void setWorkingDirectory(String value);
+
+ /**
+ * Returns the value of the '<em><b>Program Arguments</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Program Arguments</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Program Arguments</em>' attribute.
+ * @see #setProgramArguments(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getLaunchConfiguration_ProgramArguments()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getProgramArguments();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getProgramArguments <em>Program Arguments</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Program Arguments</em>' attribute.
+ * @see #getProgramArguments()
+ * @generated
+ */
+ void setProgramArguments(String value);
+
+ /**
+ * Returns the value of the '<em><b>Vm Parameters</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Vm Parameters</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Vm Parameters</em>' attribute.
+ * @see #setVmParameters(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getLaunchConfiguration_VmParameters()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getVmParameters();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getVmParameters <em>Vm Parameters</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Vm Parameters</em>' attribute.
+ * @see #getVmParameters()
+ * @generated
+ */
+ void setVmParameters(String value);
+
+ /**
+ * Returns the value of the '<em><b>Classpath Reference</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Classpath Reference</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Classpath Reference</em>' attribute.
+ * @see #setClasspathReference(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getLaunchConfiguration_ClasspathReference()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getClasspathReference();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getClasspathReference <em>Classpath Reference</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Classpath Reference</em>' attribute.
+ * @see #getClasspathReference()
+ * @generated
+ */
+ void setClasspathReference(String value);
+
+} // LaunchConfiguration
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Module.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Module.java
new file mode 100644
index 0000000..c9fdc40
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Module.java
@@ -0,0 +1,134 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: Module.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Module</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Module#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Module#getPublishDir <em>Publish Dir</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Module#getPublisherReference <em>Publisher Reference</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getModule()
+ * @model
+ * @generated
+ */
+public interface Module extends EObject {
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see #setType(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getModule_Type()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Module#getType <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' attribute.
+ * @see #getType()
+ * @generated
+ */
+ void setType(String value);
+
+ /**
+ * Returns the value of the '<em><b>Publish Dir</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Publish Dir</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Publish Dir</em>' attribute.
+ * @see #setPublishDir(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getModule_PublishDir()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getPublishDir();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Module#getPublishDir <em>Publish Dir</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Publish Dir</em>' attribute.
+ * @see #getPublishDir()
+ * @generated
+ */
+ void setPublishDir(String value);
+
+ /**
+ * Returns the value of the '<em><b>Publisher Reference</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Publisher Reference</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Publisher Reference</em>' attribute.
+ * @see #setPublisherReference(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getModule_PublisherReference()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getPublisherReference();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Module#getPublisherReference <em>Publisher Reference</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Publisher Reference</em>' attribute.
+ * @see #getPublisherReference()
+ * @generated
+ */
+ void setPublisherReference(String value);
+
+} // Module
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Port.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Port.java
new file mode 100644
index 0000000..a933a53
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Port.java
@@ -0,0 +1,134 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: Port.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Port#getNo <em>No</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Port#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Port#getProtocol <em>Protocol</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getPort()
+ * @model
+ * @generated
+ */
+public interface Port extends EObject {
+ /**
+ * Returns the value of the '<em><b>No</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>No</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>No</em>' attribute.
+ * @see #setNo(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getPort_No()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getNo();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Port#getNo <em>No</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>No</em>' attribute.
+ * @see #getNo()
+ * @generated
+ */
+ void setNo(String value);
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getPort_Name()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Port#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Protocol</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Protocol</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Protocol</em>' attribute.
+ * @see #setProtocol(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getPort_Protocol()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getProtocol();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Port#getProtocol <em>Protocol</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Protocol</em>' attribute.
+ * @see #getProtocol()
+ * @generated
+ */
+ void setProtocol(String value);
+
+} // Port
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Project.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Project.java
new file mode 100644
index 0000000..91980f3
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Project.java
@@ -0,0 +1,80 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: Project.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Project</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Project#getClasspathReference <em>Classpath Reference</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getProject()
+ * @model
+ * @generated
+ */
+public interface Project extends EObject {
+ /**
+ * Returns the value of the '<em><b>Classpath Reference</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Classpath Reference</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Classpath Reference</em>' attribute.
+ * @see #setClasspathReference(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getProject_ClasspathReference()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getClasspathReference();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Project#getClasspathReference <em>Classpath Reference</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Classpath Reference</em>' attribute.
+ * @see #getClasspathReference()
+ * @generated
+ */
+ void setClasspathReference(String value);
+
+} // Project
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Property.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Property.java
new file mode 100644
index 0000000..45f92eb
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Property.java
@@ -0,0 +1,191 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: Property.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Property</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Property#getContext <em>Context</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Property#getDefault <em>Default</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Property#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Property#getLabel <em>Label</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Property#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getProperty()
+ * @model
+ * @generated
+ */
+public interface Property extends EObject {
+ String CONTEXT_RUNTIME = "runtime";
+ String CONTEXT_SERVER = "server";
+
+ /**
+ * Returns the value of the '<em><b>Context</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Context</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Context</em>' attribute.
+ * @see #setContext(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getProperty_Context()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String"
+ * @generated
+ */
+ String getContext();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Property#getContext <em>Context</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Context</em>' attribute.
+ * @see #getContext()
+ * @generated
+ */
+ void setContext(String value);
+
+ /**
+ * Returns the value of the '<em><b>Default</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Default</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Default</em>' attribute.
+ * @see #setDefault(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getProperty_Default()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String"
+ * @generated
+ */
+ String getDefault();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Property#getDefault <em>Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Default</em>' attribute.
+ * @see #getDefault()
+ * @generated
+ */
+ void setDefault(String value);
+
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getProperty_Id()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String"
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Property#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+ /**
+ * Returns the value of the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Label</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Label</em>' attribute.
+ * @see #setLabel(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getProperty_Label()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String"
+ * @generated
+ */
+ String getLabel();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Property#getLabel <em>Label</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Label</em>' attribute.
+ * @see #getLabel()
+ * @generated
+ */
+ void setLabel(String value);
+
+ /**
+ * Returns the value of the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Type</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Type</em>' attribute.
+ * @see #setType(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getProperty_Type()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String"
+ * @generated
+ */
+ String getType();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Property#getType <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Type</em>' attribute.
+ * @see #getType()
+ * @generated
+ */
+ void setType(String value);
+
+} // Property
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/PublishType.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/PublishType.java
new file mode 100644
index 0000000..e25cc36
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/PublishType.java
@@ -0,0 +1,107 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: PublishType.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Publish Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.PublishType#getTask <em>Task</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.PublishType#getClasspathReference <em>Classpath Reference</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getPublishType()
+ * @model
+ * @generated
+ */
+public interface PublishType extends EObject {
+ /**
+ * Returns the value of the '<em><b>Task</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Task</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Task</em>' attribute.
+ * @see #setTask(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getPublishType_Task()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getTask();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.PublishType#getTask <em>Task</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Task</em>' attribute.
+ * @see #getTask()
+ * @generated
+ */
+ void setTask(String value);
+
+ /**
+ * Returns the value of the '<em><b>Classpath Reference</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Classpath Reference</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Classpath Reference</em>' attribute.
+ * @see #setClasspathReference(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getPublishType_ClasspathReference()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getClasspathReference();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.PublishType#getClasspathReference <em>Classpath Reference</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Classpath Reference</em>' attribute.
+ * @see #getClasspathReference()
+ * @generated
+ */
+ void setClasspathReference(String value);
+
+} // PublishType
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Publisher.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Publisher.java
new file mode 100644
index 0000000..542e36f
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/Publisher.java
@@ -0,0 +1,135 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: Publisher.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.util.FeatureMap;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Publisher</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Publisher#getGroup <em>Group</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Publisher#getPublish <em>Publish</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Publisher#getUnpublish <em>Unpublish</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.Publisher#getId <em>Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getPublisher()
+ * @model
+ * @generated
+ */
+public interface Publisher extends EObject {
+ /**
+ * Returns the value of the '<em><b>Group</b></em>' attribute list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Group</em>' attribute list.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getPublisher_Group()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
+ * @generated
+ */
+ FeatureMap getGroup();
+
+ /**
+ * Returns the value of the '<em><b>Publish</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.jst.server.generic.servertype.definition.PublishType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Publish</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Publish</em>' containment reference list.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getPublisher_Publish()
+ * @model type="org.eclipse.jst.server.generic.servertype.definition.PublishType" containment="true" resolveProxies="false" required="true" transient="true" volatile="true" derived="true"
+ * @generated
+ */
+ EList getPublish();
+
+ /**
+ * Returns the value of the '<em><b>Unpublish</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.jst.server.generic.servertype.definition.UnpublishType}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Unpublish</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Unpublish</em>' containment reference list.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getPublisher_Unpublish()
+ * @model type="org.eclipse.jst.server.generic.servertype.definition.UnpublishType" containment="true" resolveProxies="false" required="true" transient="true" volatile="true" derived="true"
+ * @generated
+ */
+ EList getUnpublish();
+
+ /**
+ * Returns the value of the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Id</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Id</em>' attribute.
+ * @see #setId(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getPublisher_Id()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String"
+ * @generated
+ */
+ String getId();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.Publisher#getId <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Id</em>' attribute.
+ * @see #getId()
+ * @generated
+ */
+ void setId(String value);
+
+} // Publisher
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/ServerRuntime.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/ServerRuntime.java
new file mode 100644
index 0000000..33e5b2d
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/ServerRuntime.java
@@ -0,0 +1,413 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: ServerRuntime.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.jst.server.generic.internal.xml.Resolver;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Server Runtime</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ *
+ * Generic Server Type Definition. It must have a list of
+ * properties.
+ *
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getGroup <em>Group</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getProperty <em>Property</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getGroup1 <em>Group1</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getPort <em>Port</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getGroup2 <em>Group2</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getModule <em>Module</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getProject <em>Project</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getStart <em>Start</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getStop <em>Stop</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getGroup3 <em>Group3</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getPublisher <em>Publisher</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getGroup4 <em>Group4</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getClasspath <em>Classpath</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getVersion <em>Version</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getServerRuntime()
+ * @model
+ * @generated
+ */
+public interface ServerRuntime extends EObject {
+ /**
+ * Returns the value of the '<em><b>Group</b></em>' attribute list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Group</em>' attribute list.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getServerRuntime_Group()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
+ * @generated
+ */
+ FeatureMap getGroup();
+
+ /**
+ * Returns the value of the '<em><b>Property</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.jst.server.generic.servertype.definition.Property}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Property</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Property</em>' containment reference list.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getServerRuntime_Property()
+ * @model type="org.eclipse.jst.server.generic.servertype.definition.Property" containment="true" resolveProxies="false" transient="true" volatile="true" derived="true"
+ * @generated
+ */
+ EList getProperty();
+
+ /**
+ * Returns the value of the '<em><b>Group1</b></em>' attribute list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group1</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Group1</em>' attribute list.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getServerRuntime_Group1()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
+ * @generated
+ */
+ FeatureMap getGroup1();
+
+ /**
+ * Returns the value of the '<em><b>Port</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.jst.server.generic.servertype.definition.Port}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Port</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Port</em>' containment reference list.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getServerRuntime_Port()
+ * @model type="org.eclipse.jst.server.generic.servertype.definition.Port" containment="true" resolveProxies="false" transient="true" volatile="true" derived="true"
+ * @generated
+ */
+ EList getPort();
+
+ /**
+ * Returns the value of the '<em><b>Group2</b></em>' attribute list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group2</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Group2</em>' attribute list.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getServerRuntime_Group2()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
+ * @generated
+ */
+ FeatureMap getGroup2();
+
+ /**
+ * Returns the value of the '<em><b>Module</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.jst.server.generic.servertype.definition.Module}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Module</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Module</em>' containment reference list.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getServerRuntime_Module()
+ * @model type="org.eclipse.jst.server.generic.servertype.definition.Module" containment="true" resolveProxies="false" required="true" transient="true" volatile="true" derived="true"
+ * @generated
+ */
+ EList getModule();
+
+ /**
+ * Returns the value of the '<em><b>Project</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Project</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Project</em>' containment reference.
+ * @see #setProject(Project)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getServerRuntime_Project()
+ * @model containment="true" resolveProxies="false" required="true"
+ * @generated
+ */
+ Project getProject();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getProject <em>Project</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Project</em>' containment reference.
+ * @see #getProject()
+ * @generated
+ */
+ void setProject(Project value);
+
+ /**
+ * Returns the value of the '<em><b>Start</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Start</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Start</em>' containment reference.
+ * @see #setStart(LaunchConfiguration)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getServerRuntime_Start()
+ * @model containment="true" resolveProxies="false" required="true"
+ * @generated
+ */
+ LaunchConfiguration getStart();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getStart <em>Start</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Start</em>' containment reference.
+ * @see #getStart()
+ * @generated
+ */
+ void setStart(LaunchConfiguration value);
+
+ /**
+ * Returns the value of the '<em><b>Stop</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Stop</em>' containment reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Stop</em>' containment reference.
+ * @see #setStop(LaunchConfiguration)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getServerRuntime_Stop()
+ * @model containment="true" resolveProxies="false" required="true"
+ * @generated
+ */
+ LaunchConfiguration getStop();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getStop <em>Stop</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Stop</em>' containment reference.
+ * @see #getStop()
+ * @generated
+ */
+ void setStop(LaunchConfiguration value);
+
+ /**
+ * Returns the value of the '<em><b>Group3</b></em>' attribute list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group3</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Group3</em>' attribute list.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getServerRuntime_Group3()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
+ * @generated
+ */
+ FeatureMap getGroup3();
+
+ /**
+ * Returns the value of the '<em><b>Publisher</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.jst.server.generic.servertype.definition.Publisher}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Publisher</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Publisher</em>' containment reference list.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getServerRuntime_Publisher()
+ * @model type="org.eclipse.jst.server.generic.servertype.definition.Publisher" containment="true" resolveProxies="false" transient="true" volatile="true" derived="true"
+ * @generated
+ */
+ EList getPublisher();
+
+ /**
+ * Returns the value of the '<em><b>Group4</b></em>' attribute list.
+ * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Group4</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Group4</em>' attribute list.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getServerRuntime_Group4()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true"
+ * @generated
+ */
+ FeatureMap getGroup4();
+
+ /**
+ * Returns the value of the '<em><b>Classpath</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.jst.server.generic.servertype.definition.Classpath}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Classpath</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Classpath</em>' containment reference list.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getServerRuntime_Classpath()
+ * @model type="org.eclipse.jst.server.generic.servertype.definition.Classpath" containment="true" resolveProxies="false" required="true" transient="true" volatile="true" derived="true"
+ * @generated
+ */
+ EList getClasspath();
+
+ /**
+ * Returns the value of the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Name</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Name</em>' attribute.
+ * @see #setName(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getServerRuntime_Name()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getName();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getName <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Name</em>' attribute.
+ * @see #getName()
+ * @generated
+ */
+ void setName(String value);
+
+ /**
+ * Returns the value of the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Version</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Version</em>' attribute.
+ * @see #setVersion(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getServerRuntime_Version()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String"
+ * @generated
+ */
+ String getVersion();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getVersion <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Version</em>' attribute.
+ * @see #getVersion()
+ * @generated
+ */
+ void setVersion(String value);
+
+ /**
+ * @param id the id of the '<em>Publisher</em>' attribute.
+ * @return
+ * @generated NOT
+ */
+ Publisher getPublisher(String id);
+
+ /**
+ * @param type the type of the '<em>Module</em>' attribute.
+ * @return
+ * @generated NOT
+ */
+ Module getModule(String type);
+
+ /**
+ * @param cpRef the reference id of the '<em>Classpath</em>' attribute.
+ * @return
+ * @generated NOT
+ */
+ Classpath getClasspath(String cpRef);
+
+ /**
+ * @generated NOT
+ */
+ String getFilename();
+
+ /**
+ * @generated NOT
+ */
+ void setFilename(String fn);
+
+ /**
+ * @generated NOT
+ */
+ void setPropertyValues(Map properties);
+
+ /**
+ * @generated NOT
+ */
+ Resolver getResolver();
+
+} // ServerRuntime
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/ServerTypeFactory.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/ServerTypeFactory.java
new file mode 100644
index 0000000..c6fd3b1
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/ServerTypeFactory.java
@@ -0,0 +1,162 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: ServerTypeFactory.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition;
+
+import org.eclipse.emf.ecore.EFactory;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Factory</b> for the model.
+ * It provides a create method for each non-abstract class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage
+ * @generated
+ */
+public interface ServerTypeFactory extends EFactory {
+ /**
+ * The singleton instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ServerTypeFactory eINSTANCE = new org.eclipse.jst.server.generic.servertype.definition.impl.ServerTypeFactoryImpl();
+
+ /**
+ * Returns a new object of class '<em>Archive Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Archive Type</em>'.
+ * @generated
+ */
+ ArchiveType createArchiveType();
+
+ /**
+ * Returns a new object of class '<em>Classpath</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Classpath</em>'.
+ * @generated
+ */
+ Classpath createClasspath();
+
+ /**
+ * Returns a new object of class '<em>Launch Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Launch Configuration</em>'.
+ * @generated
+ */
+ LaunchConfiguration createLaunchConfiguration();
+
+ /**
+ * Returns a new object of class '<em>Module</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Module</em>'.
+ * @generated
+ */
+ Module createModule();
+
+ /**
+ * Returns a new object of class '<em>Port</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Port</em>'.
+ * @generated
+ */
+ Port createPort();
+
+ /**
+ * Returns a new object of class '<em>Project</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Project</em>'.
+ * @generated
+ */
+ Project createProject();
+
+ /**
+ * Returns a new object of class '<em>Property</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Property</em>'.
+ * @generated
+ */
+ Property createProperty();
+
+ /**
+ * Returns a new object of class '<em>Publisher</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Publisher</em>'.
+ * @generated
+ */
+ Publisher createPublisher();
+
+ /**
+ * Returns a new object of class '<em>Publish Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Publish Type</em>'.
+ * @generated
+ */
+ PublishType createPublishType();
+
+ /**
+ * Returns a new object of class '<em>Server Runtime</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Server Runtime</em>'.
+ * @generated
+ */
+ ServerRuntime createServerRuntime();
+
+ /**
+ * Returns a new object of class '<em>Unpublish Type</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Unpublish Type</em>'.
+ * @generated
+ */
+ UnpublishType createUnpublishType();
+
+ /**
+ * Returns the package supported by this factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the package supported by this factory.
+ * @generated
+ */
+ ServerTypePackage getServerTypePackage();
+
+} //ServerTypeFactory
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/ServerTypePackage.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/ServerTypePackage.java
new file mode 100644
index 0000000..f2f1e14
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/ServerTypePackage.java
@@ -0,0 +1,1316 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: ServerTypePackage.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Package</b> for the model.
+ * It contains accessors for the meta objects to represent
+ * <ul>
+ * <li>each class,</li>
+ * <li>each feature of each class,</li>
+ * <li>each enum,</li>
+ * <li>and each data type</li>
+ * </ul>
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypeFactory
+ * @generated
+ */
+public interface ServerTypePackage extends EPackage {
+ /**
+ * The package name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNAME = "definition";
+
+ /**
+ * The package namespace URI.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_URI = "http://eclipse.org/jst/server/generic/ServerTypeDefinition";
+
+ /**
+ * The package namespace name.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ String eNS_PREFIX = "definition";
+
+ /**
+ * The singleton instance of the package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ ServerTypePackage eINSTANCE = org.eclipse.jst.server.generic.servertype.definition.impl.ServerTypePackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.server.generic.servertype.definition.impl.ArchiveTypeImpl <em>Archive Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.ArchiveTypeImpl
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.ServerTypePackageImpl#getArchiveType()
+ * @generated
+ */
+ int ARCHIVE_TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Path</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHIVE_TYPE__PATH = 0;
+
+ /**
+ * The number of structural features of the the '<em>Archive Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int ARCHIVE_TYPE_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.server.generic.servertype.definition.impl.ClasspathImpl <em>Classpath</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.ClasspathImpl
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.ServerTypePackageImpl#getClasspath()
+ * @generated
+ */
+ int CLASSPATH = 1;
+
+ /**
+ * The feature id for the '<em><b>Group</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSPATH__GROUP = 0;
+
+ /**
+ * The feature id for the '<em><b>Archive</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSPATH__ARCHIVE = 1;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSPATH__ID = 2;
+
+ /**
+ * The feature id for the '<em><b>Is Library</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSPATH__IS_LIBRARY = 3;
+
+ /**
+ * The number of structural features of the the '<em>Classpath</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int CLASSPATH_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.server.generic.servertype.definition.impl.LaunchConfigurationImpl <em>Launch Configuration</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.LaunchConfigurationImpl
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.ServerTypePackageImpl#getLaunchConfiguration()
+ * @generated
+ */
+ int LAUNCH_CONFIGURATION = 2;
+
+ /**
+ * The feature id for the '<em><b>Class</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAUNCH_CONFIGURATION__CLASS = 0;
+
+ /**
+ * The feature id for the '<em><b>Working Directory</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAUNCH_CONFIGURATION__WORKING_DIRECTORY = 1;
+
+ /**
+ * The feature id for the '<em><b>Program Arguments</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAUNCH_CONFIGURATION__PROGRAM_ARGUMENTS = 2;
+
+ /**
+ * The feature id for the '<em><b>Vm Parameters</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAUNCH_CONFIGURATION__VM_PARAMETERS = 3;
+
+ /**
+ * The feature id for the '<em><b>Classpath Reference</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAUNCH_CONFIGURATION__CLASSPATH_REFERENCE = 4;
+
+ /**
+ * The number of structural features of the the '<em>Launch Configuration</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int LAUNCH_CONFIGURATION_FEATURE_COUNT = 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.server.generic.servertype.definition.impl.ModuleImpl <em>Module</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.ModuleImpl
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.ServerTypePackageImpl#getModule()
+ * @generated
+ */
+ int MODULE = 3;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE__TYPE = 0;
+
+ /**
+ * The feature id for the '<em><b>Publish Dir</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE__PUBLISH_DIR = 1;
+
+ /**
+ * The feature id for the '<em><b>Publisher Reference</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE__PUBLISHER_REFERENCE = 2;
+
+ /**
+ * The number of structural features of the the '<em>Module</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int MODULE_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.server.generic.servertype.definition.impl.PortImpl <em>Port</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.PortImpl
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.ServerTypePackageImpl#getPort()
+ * @generated
+ */
+ int PORT = 4;
+
+ /**
+ * The feature id for the '<em><b>No</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT__NO = 0;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT__NAME = 1;
+
+ /**
+ * The feature id for the '<em><b>Protocol</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT__PROTOCOL = 2;
+
+ /**
+ * The number of structural features of the the '<em>Port</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PORT_FEATURE_COUNT = 3;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.server.generic.servertype.definition.impl.ProjectImpl <em>Project</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.ProjectImpl
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.ServerTypePackageImpl#getProject()
+ * @generated
+ */
+ int PROJECT = 5;
+
+ /**
+ * The feature id for the '<em><b>Classpath Reference</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT__CLASSPATH_REFERENCE = 0;
+
+ /**
+ * The number of structural features of the the '<em>Project</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROJECT_FEATURE_COUNT = 1;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.server.generic.servertype.definition.impl.PropertyImpl <em>Property</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.PropertyImpl
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.ServerTypePackageImpl#getProperty()
+ * @generated
+ */
+ int PROPERTY = 6;
+
+ /**
+ * The feature id for the '<em><b>Context</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY__CONTEXT = 0;
+
+ /**
+ * The feature id for the '<em><b>Default</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY__DEFAULT = 1;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY__ID = 2;
+
+ /**
+ * The feature id for the '<em><b>Label</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY__LABEL = 3;
+
+ /**
+ * The feature id for the '<em><b>Type</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY__TYPE = 4;
+
+ /**
+ * The number of structural features of the the '<em>Property</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PROPERTY_FEATURE_COUNT = 5;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.server.generic.servertype.definition.impl.PublisherImpl <em>Publisher</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.PublisherImpl
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.ServerTypePackageImpl#getPublisher()
+ * @generated
+ */
+ int PUBLISHER = 7;
+
+ /**
+ * The feature id for the '<em><b>Group</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PUBLISHER__GROUP = 0;
+
+ /**
+ * The feature id for the '<em><b>Publish</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PUBLISHER__PUBLISH = 1;
+
+ /**
+ * The feature id for the '<em><b>Unpublish</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PUBLISHER__UNPUBLISH = 2;
+
+ /**
+ * The feature id for the '<em><b>Id</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PUBLISHER__ID = 3;
+
+ /**
+ * The number of structural features of the the '<em>Publisher</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PUBLISHER_FEATURE_COUNT = 4;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.server.generic.servertype.definition.impl.PublishTypeImpl <em>Publish Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.PublishTypeImpl
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.ServerTypePackageImpl#getPublishType()
+ * @generated
+ */
+ int PUBLISH_TYPE = 8;
+
+ /**
+ * The feature id for the '<em><b>Task</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PUBLISH_TYPE__TASK = 0;
+
+ /**
+ * The feature id for the '<em><b>Classpath Reference</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PUBLISH_TYPE__CLASSPATH_REFERENCE = 1;
+
+ /**
+ * The number of structural features of the the '<em>Publish Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int PUBLISH_TYPE_FEATURE_COUNT = 2;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl <em>Server Runtime</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.ServerTypePackageImpl#getServerRuntime()
+ * @generated
+ */
+ int SERVER_RUNTIME = 9;
+
+ /**
+ * The feature id for the '<em><b>Group</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_RUNTIME__GROUP = 0;
+
+ /**
+ * The feature id for the '<em><b>Property</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_RUNTIME__PROPERTY = 1;
+
+ /**
+ * The feature id for the '<em><b>Group1</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_RUNTIME__GROUP1 = 2;
+
+ /**
+ * The feature id for the '<em><b>Port</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_RUNTIME__PORT = 3;
+
+ /**
+ * The feature id for the '<em><b>Group2</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_RUNTIME__GROUP2 = 4;
+
+ /**
+ * The feature id for the '<em><b>Module</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_RUNTIME__MODULE = 5;
+
+ /**
+ * The feature id for the '<em><b>Project</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_RUNTIME__PROJECT = 6;
+
+ /**
+ * The feature id for the '<em><b>Start</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_RUNTIME__START = 7;
+
+ /**
+ * The feature id for the '<em><b>Stop</b></em>' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_RUNTIME__STOP = 8;
+
+ /**
+ * The feature id for the '<em><b>Group3</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_RUNTIME__GROUP3 = 9;
+
+ /**
+ * The feature id for the '<em><b>Publisher</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_RUNTIME__PUBLISHER = 10;
+
+ /**
+ * The feature id for the '<em><b>Group4</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_RUNTIME__GROUP4 = 11;
+
+ /**
+ * The feature id for the '<em><b>Classpath</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_RUNTIME__CLASSPATH = 12;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_RUNTIME__NAME = 13;
+
+ /**
+ * The feature id for the '<em><b>Version</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_RUNTIME__VERSION = 14;
+
+ /**
+ * The number of structural features of the the '<em>Server Runtime</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int SERVER_RUNTIME_FEATURE_COUNT = 15;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.jst.server.generic.servertype.definition.impl.UnpublishTypeImpl <em>Unpublish Type</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.UnpublishTypeImpl
+ * @see org.eclipse.jst.server.generic.servertype.definition.impl.ServerTypePackageImpl#getUnpublishType()
+ * @generated
+ */
+ int UNPUBLISH_TYPE = 10;
+
+ /**
+ * The feature id for the '<em><b>Task</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNPUBLISH_TYPE__TASK = 0;
+
+ /**
+ * The feature id for the '<em><b>Classpath Reference</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNPUBLISH_TYPE__CLASSPATH_REFERENCE = 1;
+
+ /**
+ * The number of structural features of the the '<em>Unpublish Type</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UNPUBLISH_TYPE_FEATURE_COUNT = 2;
+
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.server.generic.servertype.definition.ArchiveType <em>Archive Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Archive Type</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ArchiveType
+ * @generated
+ */
+ EClass getArchiveType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.ArchiveType#getPath <em>Path</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Path</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ArchiveType#getPath()
+ * @see #getArchiveType()
+ * @generated
+ */
+ EAttribute getArchiveType_Path();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.server.generic.servertype.definition.Classpath <em>Classpath</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Classpath</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Classpath
+ * @generated
+ */
+ EClass getClasspath();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.jst.server.generic.servertype.definition.Classpath#getGroup <em>Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Group</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Classpath#getGroup()
+ * @see #getClasspath()
+ * @generated
+ */
+ EAttribute getClasspath_Group();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.server.generic.servertype.definition.Classpath#getArchive <em>Archive</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Archive</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Classpath#getArchive()
+ * @see #getClasspath()
+ * @generated
+ */
+ EReference getClasspath_Archive();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.Classpath#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Classpath#getId()
+ * @see #getClasspath()
+ * @generated
+ */
+ EAttribute getClasspath_Id();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.Classpath#isIsLibrary <em>Is Library</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Is Library</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Classpath#isIsLibrary()
+ * @see #getClasspath()
+ * @generated
+ */
+ EAttribute getClasspath_IsLibrary();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration <em>Launch Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Launch Configuration</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration
+ * @generated
+ */
+ EClass getLaunchConfiguration();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getClass_ <em>Class</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Class</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getClass_()
+ * @see #getLaunchConfiguration()
+ * @generated
+ */
+ EAttribute getLaunchConfiguration_Class();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getWorkingDirectory <em>Working Directory</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Working Directory</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getWorkingDirectory()
+ * @see #getLaunchConfiguration()
+ * @generated
+ */
+ EAttribute getLaunchConfiguration_WorkingDirectory();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getProgramArguments <em>Program Arguments</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Program Arguments</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getProgramArguments()
+ * @see #getLaunchConfiguration()
+ * @generated
+ */
+ EAttribute getLaunchConfiguration_ProgramArguments();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getVmParameters <em>Vm Parameters</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Vm Parameters</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getVmParameters()
+ * @see #getLaunchConfiguration()
+ * @generated
+ */
+ EAttribute getLaunchConfiguration_VmParameters();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getClasspathReference <em>Classpath Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Classpath Reference</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration#getClasspathReference()
+ * @see #getLaunchConfiguration()
+ * @generated
+ */
+ EAttribute getLaunchConfiguration_ClasspathReference();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.server.generic.servertype.definition.Module <em>Module</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Module</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Module
+ * @generated
+ */
+ EClass getModule();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.Module#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Module#getType()
+ * @see #getModule()
+ * @generated
+ */
+ EAttribute getModule_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.Module#getPublishDir <em>Publish Dir</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Publish Dir</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Module#getPublishDir()
+ * @see #getModule()
+ * @generated
+ */
+ EAttribute getModule_PublishDir();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.Module#getPublisherReference <em>Publisher Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Publisher Reference</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Module#getPublisherReference()
+ * @see #getModule()
+ * @generated
+ */
+ EAttribute getModule_PublisherReference();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.server.generic.servertype.definition.Port <em>Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Port</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Port
+ * @generated
+ */
+ EClass getPort();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.Port#getNo <em>No</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>No</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Port#getNo()
+ * @see #getPort()
+ * @generated
+ */
+ EAttribute getPort_No();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.Port#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Port#getName()
+ * @see #getPort()
+ * @generated
+ */
+ EAttribute getPort_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.Port#getProtocol <em>Protocol</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Protocol</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Port#getProtocol()
+ * @see #getPort()
+ * @generated
+ */
+ EAttribute getPort_Protocol();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.server.generic.servertype.definition.Project <em>Project</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Project</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Project
+ * @generated
+ */
+ EClass getProject();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.Project#getClasspathReference <em>Classpath Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Classpath Reference</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Project#getClasspathReference()
+ * @see #getProject()
+ * @generated
+ */
+ EAttribute getProject_ClasspathReference();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.server.generic.servertype.definition.Property <em>Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Property</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Property
+ * @generated
+ */
+ EClass getProperty();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.Property#getContext <em>Context</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Context</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Property#getContext()
+ * @see #getProperty()
+ * @generated
+ */
+ EAttribute getProperty_Context();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.Property#getDefault <em>Default</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Default</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Property#getDefault()
+ * @see #getProperty()
+ * @generated
+ */
+ EAttribute getProperty_Default();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.Property#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Property#getId()
+ * @see #getProperty()
+ * @generated
+ */
+ EAttribute getProperty_Id();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.Property#getLabel <em>Label</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Label</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Property#getLabel()
+ * @see #getProperty()
+ * @generated
+ */
+ EAttribute getProperty_Label();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.Property#getType <em>Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Type</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Property#getType()
+ * @see #getProperty()
+ * @generated
+ */
+ EAttribute getProperty_Type();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.server.generic.servertype.definition.Publisher <em>Publisher</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Publisher</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Publisher
+ * @generated
+ */
+ EClass getPublisher();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.jst.server.generic.servertype.definition.Publisher#getGroup <em>Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Group</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Publisher#getGroup()
+ * @see #getPublisher()
+ * @generated
+ */
+ EAttribute getPublisher_Group();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.server.generic.servertype.definition.Publisher#getPublish <em>Publish</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Publish</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Publisher#getPublish()
+ * @see #getPublisher()
+ * @generated
+ */
+ EReference getPublisher_Publish();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.server.generic.servertype.definition.Publisher#getUnpublish <em>Unpublish</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Unpublish</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Publisher#getUnpublish()
+ * @see #getPublisher()
+ * @generated
+ */
+ EReference getPublisher_Unpublish();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.Publisher#getId <em>Id</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Id</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Publisher#getId()
+ * @see #getPublisher()
+ * @generated
+ */
+ EAttribute getPublisher_Id();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.server.generic.servertype.definition.PublishType <em>Publish Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Publish Type</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.PublishType
+ * @generated
+ */
+ EClass getPublishType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.PublishType#getTask <em>Task</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Task</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.PublishType#getTask()
+ * @see #getPublishType()
+ * @generated
+ */
+ EAttribute getPublishType_Task();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.PublishType#getClasspathReference <em>Classpath Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Classpath Reference</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.PublishType#getClasspathReference()
+ * @see #getPublishType()
+ * @generated
+ */
+ EAttribute getPublishType_ClasspathReference();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime <em>Server Runtime</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Server Runtime</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime
+ * @generated
+ */
+ EClass getServerRuntime();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getGroup <em>Group</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Group</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getGroup()
+ * @see #getServerRuntime()
+ * @generated
+ */
+ EAttribute getServerRuntime_Group();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getProperty <em>Property</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Property</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getProperty()
+ * @see #getServerRuntime()
+ * @generated
+ */
+ EReference getServerRuntime_Property();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getGroup1 <em>Group1</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Group1</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getGroup1()
+ * @see #getServerRuntime()
+ * @generated
+ */
+ EAttribute getServerRuntime_Group1();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getPort <em>Port</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Port</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getPort()
+ * @see #getServerRuntime()
+ * @generated
+ */
+ EReference getServerRuntime_Port();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getGroup2 <em>Group2</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Group2</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getGroup2()
+ * @see #getServerRuntime()
+ * @generated
+ */
+ EAttribute getServerRuntime_Group2();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getModule <em>Module</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Module</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getModule()
+ * @see #getServerRuntime()
+ * @generated
+ */
+ EReference getServerRuntime_Module();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getProject <em>Project</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Project</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getProject()
+ * @see #getServerRuntime()
+ * @generated
+ */
+ EReference getServerRuntime_Project();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getStart <em>Start</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Start</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getStart()
+ * @see #getServerRuntime()
+ * @generated
+ */
+ EReference getServerRuntime_Start();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getStop <em>Stop</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference '<em>Stop</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getStop()
+ * @see #getServerRuntime()
+ * @generated
+ */
+ EReference getServerRuntime_Stop();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getGroup3 <em>Group3</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Group3</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getGroup3()
+ * @see #getServerRuntime()
+ * @generated
+ */
+ EAttribute getServerRuntime_Group3();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getPublisher <em>Publisher</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Publisher</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getPublisher()
+ * @see #getServerRuntime()
+ * @generated
+ */
+ EReference getServerRuntime_Publisher();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getGroup4 <em>Group4</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Group4</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getGroup4()
+ * @see #getServerRuntime()
+ * @generated
+ */
+ EAttribute getServerRuntime_Group4();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getClasspath <em>Classpath</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Classpath</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getClasspath()
+ * @see #getServerRuntime()
+ * @generated
+ */
+ EReference getServerRuntime_Classpath();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getName <em>Name</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Name</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getName()
+ * @see #getServerRuntime()
+ * @generated
+ */
+ EAttribute getServerRuntime_Name();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getVersion <em>Version</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Version</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime#getVersion()
+ * @see #getServerRuntime()
+ * @generated
+ */
+ EAttribute getServerRuntime_Version();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.jst.server.generic.servertype.definition.UnpublishType <em>Unpublish Type</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Unpublish Type</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.UnpublishType
+ * @generated
+ */
+ EClass getUnpublishType();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.UnpublishType#getTask <em>Task</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Task</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.UnpublishType#getTask()
+ * @see #getUnpublishType()
+ * @generated
+ */
+ EAttribute getUnpublishType_Task();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.jst.server.generic.servertype.definition.UnpublishType#getClasspathReference <em>Classpath Reference</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Classpath Reference</em>'.
+ * @see org.eclipse.jst.server.generic.servertype.definition.UnpublishType#getClasspathReference()
+ * @see #getUnpublishType()
+ * @generated
+ */
+ EAttribute getUnpublishType_ClasspathReference();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ ServerTypeFactory getServerTypeFactory();
+
+} //ServerTypePackage
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/UnpublishType.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/UnpublishType.java
new file mode 100644
index 0000000..cb39c33
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/UnpublishType.java
@@ -0,0 +1,107 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: UnpublishType.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Unpublish Type</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.UnpublishType#getTask <em>Task</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.UnpublishType#getClasspathReference <em>Classpath Reference</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getUnpublishType()
+ * @model
+ * @generated
+ */
+public interface UnpublishType extends EObject {
+ /**
+ * Returns the value of the '<em><b>Task</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Task</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Task</em>' attribute.
+ * @see #setTask(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getUnpublishType_Task()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getTask();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.UnpublishType#getTask <em>Task</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Task</em>' attribute.
+ * @see #getTask()
+ * @generated
+ */
+ void setTask(String value);
+
+ /**
+ * Returns the value of the '<em><b>Classpath Reference</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Classpath Reference</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Classpath Reference</em>' attribute.
+ * @see #setClasspathReference(String)
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#getUnpublishType_ClasspathReference()
+ * @model unique="false" dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
+ * @generated
+ */
+ String getClasspathReference();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.jst.server.generic.servertype.definition.UnpublishType#getClasspathReference <em>Classpath Reference</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Classpath Reference</em>' attribute.
+ * @see #getClasspathReference()
+ * @generated
+ */
+ void setClasspathReference(String value);
+
+} // UnpublishType
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ArchiveTypeImpl.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ArchiveTypeImpl.java
new file mode 100644
index 0000000..93bc447
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ArchiveTypeImpl.java
@@ -0,0 +1,188 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: ArchiveTypeImpl.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.jst.server.generic.servertype.definition.ArchiveType;
+import org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Archive Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ArchiveTypeImpl#getPath <em>Path</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ArchiveTypeImpl extends EObjectImpl implements ArchiveType {
+ /**
+ * The default value of the '{@link #getPath() <em>Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPath()
+ * @generated
+ * @ordered
+ */
+ protected static final String PATH_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPath() <em>Path</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPath()
+ * @generated
+ * @ordered
+ */
+ protected String path = PATH_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ArchiveTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ServerTypePackage.eINSTANCE.getArchiveType();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPath() {
+ return path;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPath(String newPath) {
+ String oldPath = path;
+ path = newPath;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.ARCHIVE_TYPE__PATH, oldPath, path));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.ARCHIVE_TYPE__PATH:
+ return getPath();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.ARCHIVE_TYPE__PATH:
+ setPath((String)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.ARCHIVE_TYPE__PATH:
+ setPath(PATH_EDEFAULT);
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.ARCHIVE_TYPE__PATH:
+ return PATH_EDEFAULT == null ? path != null : !PATH_EDEFAULT.equals(path);
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (path: ");
+ result.append(path);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ArchiveTypeImpl
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ClasspathImpl.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ClasspathImpl.java
new file mode 100644
index 0000000..edf0de6
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ClasspathImpl.java
@@ -0,0 +1,362 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: ClasspathImpl.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.jst.server.generic.servertype.definition.Classpath;
+import org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Classpath</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ClasspathImpl#getGroup <em>Group</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ClasspathImpl#getArchive <em>Archive</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ClasspathImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ClasspathImpl#isIsLibrary <em>Is Library</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ClasspathImpl extends EObjectImpl implements Classpath {
+ /**
+ * The cached value of the '{@link #getGroup() <em>Group</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroup()
+ * @generated
+ * @ordered
+ */
+ protected FeatureMap group = null;
+
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final String ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected String id = ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsLibrary() <em>Is Library</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsLibrary()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_LIBRARY_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isIsLibrary() <em>Is Library</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsLibrary()
+ * @generated
+ * @ordered
+ */
+ protected boolean isLibrary = IS_LIBRARY_EDEFAULT;
+
+ /**
+ * This is true if the Is Library attribute has been set.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ protected boolean isLibraryESet = false;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ClasspathImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ServerTypePackage.eINSTANCE.getClasspath();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FeatureMap getGroup() {
+ if (group == null) {
+ group = new BasicFeatureMap(this, ServerTypePackage.CLASSPATH__GROUP);
+ }
+ return group;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getArchive() {
+ return ((FeatureMap)getGroup()).list(ServerTypePackage.eINSTANCE.getClasspath_Archive());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setId(String newId) {
+ String oldId = id;
+ id = newId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.CLASSPATH__ID, oldId, id));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isIsLibrary() {
+ return isLibrary;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setIsLibrary(boolean newIsLibrary) {
+ boolean oldIsLibrary = isLibrary;
+ isLibrary = newIsLibrary;
+ boolean oldIsLibraryESet = isLibraryESet;
+ isLibraryESet = true;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.CLASSPATH__IS_LIBRARY, oldIsLibrary, isLibrary, !oldIsLibraryESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void unsetIsLibrary() {
+ boolean oldIsLibrary = isLibrary;
+ boolean oldIsLibraryESet = isLibraryESet;
+ isLibrary = IS_LIBRARY_EDEFAULT;
+ isLibraryESet = false;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.UNSET, ServerTypePackage.CLASSPATH__IS_LIBRARY, oldIsLibrary, IS_LIBRARY_EDEFAULT, oldIsLibraryESet));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean isSetIsLibrary() {
+ return isLibraryESet;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) {
+ if (featureID >= 0) {
+ switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
+ case ServerTypePackage.CLASSPATH__GROUP:
+ return ((InternalEList)getGroup()).basicRemove(otherEnd, msgs);
+ case ServerTypePackage.CLASSPATH__ARCHIVE:
+ return ((InternalEList)getArchive()).basicRemove(otherEnd, msgs);
+ default:
+ return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs);
+ }
+ }
+ return eBasicSetContainer(null, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.CLASSPATH__GROUP:
+ return getGroup();
+ case ServerTypePackage.CLASSPATH__ARCHIVE:
+ return getArchive();
+ case ServerTypePackage.CLASSPATH__ID:
+ return getId();
+ case ServerTypePackage.CLASSPATH__IS_LIBRARY:
+ return isIsLibrary() ? Boolean.TRUE : Boolean.FALSE;
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.CLASSPATH__GROUP:
+ getGroup().clear();
+ getGroup().addAll((Collection)newValue);
+ return;
+ case ServerTypePackage.CLASSPATH__ARCHIVE:
+ getArchive().clear();
+ getArchive().addAll((Collection)newValue);
+ return;
+ case ServerTypePackage.CLASSPATH__ID:
+ setId((String)newValue);
+ return;
+ case ServerTypePackage.CLASSPATH__IS_LIBRARY:
+ setIsLibrary(((Boolean)newValue).booleanValue());
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.CLASSPATH__GROUP:
+ getGroup().clear();
+ return;
+ case ServerTypePackage.CLASSPATH__ARCHIVE:
+ getArchive().clear();
+ return;
+ case ServerTypePackage.CLASSPATH__ID:
+ setId(ID_EDEFAULT);
+ return;
+ case ServerTypePackage.CLASSPATH__IS_LIBRARY:
+ unsetIsLibrary();
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.CLASSPATH__GROUP:
+ return group != null && !group.isEmpty();
+ case ServerTypePackage.CLASSPATH__ARCHIVE:
+ return !getArchive().isEmpty();
+ case ServerTypePackage.CLASSPATH__ID:
+ return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+ case ServerTypePackage.CLASSPATH__IS_LIBRARY:
+ return isSetIsLibrary();
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (group: ");
+ result.append(group);
+ result.append(", id: ");
+ result.append(id);
+ result.append(", isLibrary: ");
+ if (isLibraryESet) result.append(isLibrary); else result.append("<unset>");
+ result.append(')');
+ return result.toString();
+ }
+
+} //ClasspathImpl
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/LaunchConfigurationImpl.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/LaunchConfigurationImpl.java
new file mode 100644
index 0000000..067da61
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/LaunchConfigurationImpl.java
@@ -0,0 +1,404 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: LaunchConfigurationImpl.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration;
+import org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Launch Configuration</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.LaunchConfigurationImpl#getClass_ <em>Class</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.LaunchConfigurationImpl#getWorkingDirectory <em>Working Directory</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.LaunchConfigurationImpl#getProgramArguments <em>Program Arguments</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.LaunchConfigurationImpl#getVmParameters <em>Vm Parameters</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.LaunchConfigurationImpl#getClasspathReference <em>Classpath Reference</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class LaunchConfigurationImpl extends EObjectImpl implements LaunchConfiguration {
+ /**
+ * The default value of the '{@link #getClass_() <em>Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClass_()
+ * @generated
+ * @ordered
+ */
+ protected static final String CLASS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getClass_() <em>Class</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClass_()
+ * @generated
+ * @ordered
+ */
+ protected String class_ = CLASS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getWorkingDirectory() <em>Working Directory</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWorkingDirectory()
+ * @generated
+ * @ordered
+ */
+ protected static final String WORKING_DIRECTORY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getWorkingDirectory() <em>Working Directory</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getWorkingDirectory()
+ * @generated
+ * @ordered
+ */
+ protected String workingDirectory = WORKING_DIRECTORY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getProgramArguments() <em>Program Arguments</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProgramArguments()
+ * @generated
+ * @ordered
+ */
+ protected static final String PROGRAM_ARGUMENTS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProgramArguments() <em>Program Arguments</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProgramArguments()
+ * @generated
+ * @ordered
+ */
+ protected String programArguments = PROGRAM_ARGUMENTS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getVmParameters() <em>Vm Parameters</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVmParameters()
+ * @generated
+ * @ordered
+ */
+ protected static final String VM_PARAMETERS_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVmParameters() <em>Vm Parameters</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVmParameters()
+ * @generated
+ * @ordered
+ */
+ protected String vmParameters = VM_PARAMETERS_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getClasspathReference() <em>Classpath Reference</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClasspathReference()
+ * @generated
+ * @ordered
+ */
+ protected static final String CLASSPATH_REFERENCE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getClasspathReference() <em>Classpath Reference</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClasspathReference()
+ * @generated
+ * @ordered
+ */
+ protected String classpathReference = CLASSPATH_REFERENCE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected LaunchConfigurationImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ServerTypePackage.eINSTANCE.getLaunchConfiguration();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getClass_() {
+ return class_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClass(String newClass) {
+ String oldClass = class_;
+ class_ = newClass;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.LAUNCH_CONFIGURATION__CLASS, oldClass, class_));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getWorkingDirectory() {
+ return workingDirectory;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setWorkingDirectory(String newWorkingDirectory) {
+ String oldWorkingDirectory = workingDirectory;
+ workingDirectory = newWorkingDirectory;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.LAUNCH_CONFIGURATION__WORKING_DIRECTORY, oldWorkingDirectory, workingDirectory));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getProgramArguments() {
+ return programArguments;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProgramArguments(String newProgramArguments) {
+ String oldProgramArguments = programArguments;
+ programArguments = newProgramArguments;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.LAUNCH_CONFIGURATION__PROGRAM_ARGUMENTS, oldProgramArguments, programArguments));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getVmParameters() {
+ return vmParameters;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVmParameters(String newVmParameters) {
+ String oldVmParameters = vmParameters;
+ vmParameters = newVmParameters;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.LAUNCH_CONFIGURATION__VM_PARAMETERS, oldVmParameters, vmParameters));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getClasspathReference() {
+ return classpathReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClasspathReference(String newClasspathReference) {
+ String oldClasspathReference = classpathReference;
+ classpathReference = newClasspathReference;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.LAUNCH_CONFIGURATION__CLASSPATH_REFERENCE, oldClasspathReference, classpathReference));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.LAUNCH_CONFIGURATION__CLASS:
+ return getClass_();
+ case ServerTypePackage.LAUNCH_CONFIGURATION__WORKING_DIRECTORY:
+ return getWorkingDirectory();
+ case ServerTypePackage.LAUNCH_CONFIGURATION__PROGRAM_ARGUMENTS:
+ return getProgramArguments();
+ case ServerTypePackage.LAUNCH_CONFIGURATION__VM_PARAMETERS:
+ return getVmParameters();
+ case ServerTypePackage.LAUNCH_CONFIGURATION__CLASSPATH_REFERENCE:
+ return getClasspathReference();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.LAUNCH_CONFIGURATION__CLASS:
+ setClass((String)newValue);
+ return;
+ case ServerTypePackage.LAUNCH_CONFIGURATION__WORKING_DIRECTORY:
+ setWorkingDirectory((String)newValue);
+ return;
+ case ServerTypePackage.LAUNCH_CONFIGURATION__PROGRAM_ARGUMENTS:
+ setProgramArguments((String)newValue);
+ return;
+ case ServerTypePackage.LAUNCH_CONFIGURATION__VM_PARAMETERS:
+ setVmParameters((String)newValue);
+ return;
+ case ServerTypePackage.LAUNCH_CONFIGURATION__CLASSPATH_REFERENCE:
+ setClasspathReference((String)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.LAUNCH_CONFIGURATION__CLASS:
+ setClass(CLASS_EDEFAULT);
+ return;
+ case ServerTypePackage.LAUNCH_CONFIGURATION__WORKING_DIRECTORY:
+ setWorkingDirectory(WORKING_DIRECTORY_EDEFAULT);
+ return;
+ case ServerTypePackage.LAUNCH_CONFIGURATION__PROGRAM_ARGUMENTS:
+ setProgramArguments(PROGRAM_ARGUMENTS_EDEFAULT);
+ return;
+ case ServerTypePackage.LAUNCH_CONFIGURATION__VM_PARAMETERS:
+ setVmParameters(VM_PARAMETERS_EDEFAULT);
+ return;
+ case ServerTypePackage.LAUNCH_CONFIGURATION__CLASSPATH_REFERENCE:
+ setClasspathReference(CLASSPATH_REFERENCE_EDEFAULT);
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.LAUNCH_CONFIGURATION__CLASS:
+ return CLASS_EDEFAULT == null ? class_ != null : !CLASS_EDEFAULT.equals(class_);
+ case ServerTypePackage.LAUNCH_CONFIGURATION__WORKING_DIRECTORY:
+ return WORKING_DIRECTORY_EDEFAULT == null ? workingDirectory != null : !WORKING_DIRECTORY_EDEFAULT.equals(workingDirectory);
+ case ServerTypePackage.LAUNCH_CONFIGURATION__PROGRAM_ARGUMENTS:
+ return PROGRAM_ARGUMENTS_EDEFAULT == null ? programArguments != null : !PROGRAM_ARGUMENTS_EDEFAULT.equals(programArguments);
+ case ServerTypePackage.LAUNCH_CONFIGURATION__VM_PARAMETERS:
+ return VM_PARAMETERS_EDEFAULT == null ? vmParameters != null : !VM_PARAMETERS_EDEFAULT.equals(vmParameters);
+ case ServerTypePackage.LAUNCH_CONFIGURATION__CLASSPATH_REFERENCE:
+ return CLASSPATH_REFERENCE_EDEFAULT == null ? classpathReference != null : !CLASSPATH_REFERENCE_EDEFAULT.equals(classpathReference);
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (class: ");
+ result.append(class_);
+ result.append(", workingDirectory: ");
+ result.append(workingDirectory);
+ result.append(", programArguments: ");
+ result.append(programArguments);
+ result.append(", vmParameters: ");
+ result.append(vmParameters);
+ result.append(", classpathReference: ");
+ result.append(classpathReference);
+ result.append(')');
+ return result.toString();
+ }
+
+} //LaunchConfigurationImpl
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ModuleImpl.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ModuleImpl.java
new file mode 100644
index 0000000..e3e314f
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ModuleImpl.java
@@ -0,0 +1,296 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: ModuleImpl.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.jst.server.generic.servertype.definition.Module;
+import org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Module</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ModuleImpl#getType <em>Type</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ModuleImpl#getPublishDir <em>Publish Dir</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ModuleImpl#getPublisherReference <em>Publisher Reference</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ModuleImpl extends EObjectImpl implements Module {
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPublishDir() <em>Publish Dir</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPublishDir()
+ * @generated
+ * @ordered
+ */
+ protected static final String PUBLISH_DIR_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPublishDir() <em>Publish Dir</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPublishDir()
+ * @generated
+ * @ordered
+ */
+ protected String publishDir = PUBLISH_DIR_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPublisherReference() <em>Publisher Reference</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPublisherReference()
+ * @generated
+ * @ordered
+ */
+ protected static final String PUBLISHER_REFERENCE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPublisherReference() <em>Publisher Reference</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getPublisherReference()
+ * @generated
+ * @ordered
+ */
+ protected String publisherReference = PUBLISHER_REFERENCE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ModuleImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ServerTypePackage.eINSTANCE.getModule();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(String newType) {
+ String oldType = type;
+ type = newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.MODULE__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPublishDir() {
+ return publishDir;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPublishDir(String newPublishDir) {
+ String oldPublishDir = publishDir;
+ publishDir = newPublishDir;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.MODULE__PUBLISH_DIR, oldPublishDir, publishDir));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getPublisherReference() {
+ return publisherReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setPublisherReference(String newPublisherReference) {
+ String oldPublisherReference = publisherReference;
+ publisherReference = newPublisherReference;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.MODULE__PUBLISHER_REFERENCE, oldPublisherReference, publisherReference));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.MODULE__TYPE:
+ return getType();
+ case ServerTypePackage.MODULE__PUBLISH_DIR:
+ return getPublishDir();
+ case ServerTypePackage.MODULE__PUBLISHER_REFERENCE:
+ return getPublisherReference();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.MODULE__TYPE:
+ setType((String)newValue);
+ return;
+ case ServerTypePackage.MODULE__PUBLISH_DIR:
+ setPublishDir((String)newValue);
+ return;
+ case ServerTypePackage.MODULE__PUBLISHER_REFERENCE:
+ setPublisherReference((String)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.MODULE__TYPE:
+ setType(TYPE_EDEFAULT);
+ return;
+ case ServerTypePackage.MODULE__PUBLISH_DIR:
+ setPublishDir(PUBLISH_DIR_EDEFAULT);
+ return;
+ case ServerTypePackage.MODULE__PUBLISHER_REFERENCE:
+ setPublisherReference(PUBLISHER_REFERENCE_EDEFAULT);
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.MODULE__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ case ServerTypePackage.MODULE__PUBLISH_DIR:
+ return PUBLISH_DIR_EDEFAULT == null ? publishDir != null : !PUBLISH_DIR_EDEFAULT.equals(publishDir);
+ case ServerTypePackage.MODULE__PUBLISHER_REFERENCE:
+ return PUBLISHER_REFERENCE_EDEFAULT == null ? publisherReference != null : !PUBLISHER_REFERENCE_EDEFAULT.equals(publisherReference);
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (type: ");
+ result.append(type);
+ result.append(", publishDir: ");
+ result.append(publishDir);
+ result.append(", publisherReference: ");
+ result.append(publisherReference);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ModuleImpl
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/PortImpl.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/PortImpl.java
new file mode 100644
index 0000000..a91f336
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/PortImpl.java
@@ -0,0 +1,296 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: PortImpl.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.jst.server.generic.servertype.definition.Port;
+import org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.PortImpl#getNo <em>No</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.PortImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.PortImpl#getProtocol <em>Protocol</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PortImpl extends EObjectImpl implements Port {
+ /**
+ * The default value of the '{@link #getNo() <em>No</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNo()
+ * @generated
+ * @ordered
+ */
+ protected static final String NO_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNo() <em>No</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getNo()
+ * @generated
+ * @ordered
+ */
+ protected String no = NO_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getProtocol() <em>Protocol</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProtocol()
+ * @generated
+ * @ordered
+ */
+ protected static final String PROTOCOL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getProtocol() <em>Protocol</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProtocol()
+ * @generated
+ * @ordered
+ */
+ protected String protocol = PROTOCOL_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PortImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ServerTypePackage.eINSTANCE.getPort();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getNo() {
+ return no;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setNo(String newNo) {
+ String oldNo = no;
+ no = newNo;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.PORT__NO, oldNo, no));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.PORT__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getProtocol() {
+ return protocol;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProtocol(String newProtocol) {
+ String oldProtocol = protocol;
+ protocol = newProtocol;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.PORT__PROTOCOL, oldProtocol, protocol));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PORT__NO:
+ return getNo();
+ case ServerTypePackage.PORT__NAME:
+ return getName();
+ case ServerTypePackage.PORT__PROTOCOL:
+ return getProtocol();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PORT__NO:
+ setNo((String)newValue);
+ return;
+ case ServerTypePackage.PORT__NAME:
+ setName((String)newValue);
+ return;
+ case ServerTypePackage.PORT__PROTOCOL:
+ setProtocol((String)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PORT__NO:
+ setNo(NO_EDEFAULT);
+ return;
+ case ServerTypePackage.PORT__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ServerTypePackage.PORT__PROTOCOL:
+ setProtocol(PROTOCOL_EDEFAULT);
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PORT__NO:
+ return NO_EDEFAULT == null ? no != null : !NO_EDEFAULT.equals(no);
+ case ServerTypePackage.PORT__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ServerTypePackage.PORT__PROTOCOL:
+ return PROTOCOL_EDEFAULT == null ? protocol != null : !PROTOCOL_EDEFAULT.equals(protocol);
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (no: ");
+ result.append(no);
+ result.append(", name: ");
+ result.append(name);
+ result.append(", protocol: ");
+ result.append(protocol);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PortImpl
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ProjectImpl.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ProjectImpl.java
new file mode 100644
index 0000000..18ca93a
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ProjectImpl.java
@@ -0,0 +1,188 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: ProjectImpl.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.jst.server.generic.servertype.definition.Project;
+import org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Project</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ProjectImpl#getClasspathReference <em>Classpath Reference</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ProjectImpl extends EObjectImpl implements Project {
+ /**
+ * The default value of the '{@link #getClasspathReference() <em>Classpath Reference</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClasspathReference()
+ * @generated
+ * @ordered
+ */
+ protected static final String CLASSPATH_REFERENCE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getClasspathReference() <em>Classpath Reference</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClasspathReference()
+ * @generated
+ * @ordered
+ */
+ protected String classpathReference = CLASSPATH_REFERENCE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ProjectImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ServerTypePackage.eINSTANCE.getProject();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getClasspathReference() {
+ return classpathReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClasspathReference(String newClasspathReference) {
+ String oldClasspathReference = classpathReference;
+ classpathReference = newClasspathReference;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.PROJECT__CLASSPATH_REFERENCE, oldClasspathReference, classpathReference));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PROJECT__CLASSPATH_REFERENCE:
+ return getClasspathReference();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PROJECT__CLASSPATH_REFERENCE:
+ setClasspathReference((String)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PROJECT__CLASSPATH_REFERENCE:
+ setClasspathReference(CLASSPATH_REFERENCE_EDEFAULT);
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PROJECT__CLASSPATH_REFERENCE:
+ return CLASSPATH_REFERENCE_EDEFAULT == null ? classpathReference != null : !CLASSPATH_REFERENCE_EDEFAULT.equals(classpathReference);
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (classpathReference: ");
+ result.append(classpathReference);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ProjectImpl
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/PropertyImpl.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/PropertyImpl.java
new file mode 100644
index 0000000..7171921
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/PropertyImpl.java
@@ -0,0 +1,404 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: PropertyImpl.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.jst.server.generic.servertype.definition.Property;
+import org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Property</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.PropertyImpl#getContext <em>Context</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.PropertyImpl#getDefault <em>Default</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.PropertyImpl#getId <em>Id</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.PropertyImpl#getLabel <em>Label</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.PropertyImpl#getType <em>Type</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PropertyImpl extends EObjectImpl implements Property {
+ /**
+ * The default value of the '{@link #getContext() <em>Context</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getContext()
+ * @generated
+ * @ordered
+ */
+ protected static final String CONTEXT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getContext() <em>Context</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getContext()
+ * @generated
+ * @ordered
+ */
+ protected String context = CONTEXT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDefault() <em>Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefault()
+ * @generated
+ * @ordered
+ */
+ protected static final String DEFAULT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDefault() <em>Default</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getDefault()
+ * @generated
+ * @ordered
+ */
+ protected String default_ = DEFAULT_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final String ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected String id = ID_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getLabel() <em>Label</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLabel()
+ * @generated
+ * @ordered
+ */
+ protected static final String LABEL_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getLabel() <em>Label</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getLabel()
+ * @generated
+ * @ordered
+ */
+ protected String label = LABEL_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected static final String TYPE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected String type = TYPE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PropertyImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ServerTypePackage.eINSTANCE.getProperty();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getContext() {
+ return context;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setContext(String newContext) {
+ String oldContext = context;
+ context = newContext;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.PROPERTY__CONTEXT, oldContext, context));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getDefault() {
+ return default_;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setDefault(String newDefault) {
+ String oldDefault = default_;
+ default_ = newDefault;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.PROPERTY__DEFAULT, oldDefault, default_));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setId(String newId) {
+ String oldId = id;
+ id = newId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.PROPERTY__ID, oldId, id));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getLabel() {
+ return label;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setLabel(String newLabel) {
+ String oldLabel = label;
+ label = newLabel;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.PROPERTY__LABEL, oldLabel, label));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setType(String newType) {
+ String oldType = type;
+ type = newType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.PROPERTY__TYPE, oldType, type));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PROPERTY__CONTEXT:
+ return getContext();
+ case ServerTypePackage.PROPERTY__DEFAULT:
+ return getDefault();
+ case ServerTypePackage.PROPERTY__ID:
+ return getId();
+ case ServerTypePackage.PROPERTY__LABEL:
+ return getLabel();
+ case ServerTypePackage.PROPERTY__TYPE:
+ return getType();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PROPERTY__CONTEXT:
+ setContext((String)newValue);
+ return;
+ case ServerTypePackage.PROPERTY__DEFAULT:
+ setDefault((String)newValue);
+ return;
+ case ServerTypePackage.PROPERTY__ID:
+ setId((String)newValue);
+ return;
+ case ServerTypePackage.PROPERTY__LABEL:
+ setLabel((String)newValue);
+ return;
+ case ServerTypePackage.PROPERTY__TYPE:
+ setType((String)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PROPERTY__CONTEXT:
+ setContext(CONTEXT_EDEFAULT);
+ return;
+ case ServerTypePackage.PROPERTY__DEFAULT:
+ setDefault(DEFAULT_EDEFAULT);
+ return;
+ case ServerTypePackage.PROPERTY__ID:
+ setId(ID_EDEFAULT);
+ return;
+ case ServerTypePackage.PROPERTY__LABEL:
+ setLabel(LABEL_EDEFAULT);
+ return;
+ case ServerTypePackage.PROPERTY__TYPE:
+ setType(TYPE_EDEFAULT);
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PROPERTY__CONTEXT:
+ return CONTEXT_EDEFAULT == null ? context != null : !CONTEXT_EDEFAULT.equals(context);
+ case ServerTypePackage.PROPERTY__DEFAULT:
+ return DEFAULT_EDEFAULT == null ? default_ != null : !DEFAULT_EDEFAULT.equals(default_);
+ case ServerTypePackage.PROPERTY__ID:
+ return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+ case ServerTypePackage.PROPERTY__LABEL:
+ return LABEL_EDEFAULT == null ? label != null : !LABEL_EDEFAULT.equals(label);
+ case ServerTypePackage.PROPERTY__TYPE:
+ return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (context: ");
+ result.append(context);
+ result.append(", default: ");
+ result.append(default_);
+ result.append(", id: ");
+ result.append(id);
+ result.append(", label: ");
+ result.append(label);
+ result.append(", type: ");
+ result.append(type);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PropertyImpl
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/PublishTypeImpl.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/PublishTypeImpl.java
new file mode 100644
index 0000000..cef3bad
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/PublishTypeImpl.java
@@ -0,0 +1,242 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: PublishTypeImpl.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.jst.server.generic.servertype.definition.PublishType;
+import org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Publish Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.PublishTypeImpl#getTask <em>Task</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.PublishTypeImpl#getClasspathReference <em>Classpath Reference</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PublishTypeImpl extends EObjectImpl implements PublishType {
+ /**
+ * The default value of the '{@link #getTask() <em>Task</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTask()
+ * @generated
+ * @ordered
+ */
+ protected static final String TASK_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTask() <em>Task</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTask()
+ * @generated
+ * @ordered
+ */
+ protected String task = TASK_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getClasspathReference() <em>Classpath Reference</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClasspathReference()
+ * @generated
+ * @ordered
+ */
+ protected static final String CLASSPATH_REFERENCE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getClasspathReference() <em>Classpath Reference</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClasspathReference()
+ * @generated
+ * @ordered
+ */
+ protected String classpathReference = CLASSPATH_REFERENCE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PublishTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ServerTypePackage.eINSTANCE.getPublishType();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTask() {
+ return task;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTask(String newTask) {
+ String oldTask = task;
+ task = newTask;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.PUBLISH_TYPE__TASK, oldTask, task));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getClasspathReference() {
+ return classpathReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClasspathReference(String newClasspathReference) {
+ String oldClasspathReference = classpathReference;
+ classpathReference = newClasspathReference;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.PUBLISH_TYPE__CLASSPATH_REFERENCE, oldClasspathReference, classpathReference));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PUBLISH_TYPE__TASK:
+ return getTask();
+ case ServerTypePackage.PUBLISH_TYPE__CLASSPATH_REFERENCE:
+ return getClasspathReference();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PUBLISH_TYPE__TASK:
+ setTask((String)newValue);
+ return;
+ case ServerTypePackage.PUBLISH_TYPE__CLASSPATH_REFERENCE:
+ setClasspathReference((String)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PUBLISH_TYPE__TASK:
+ setTask(TASK_EDEFAULT);
+ return;
+ case ServerTypePackage.PUBLISH_TYPE__CLASSPATH_REFERENCE:
+ setClasspathReference(CLASSPATH_REFERENCE_EDEFAULT);
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PUBLISH_TYPE__TASK:
+ return TASK_EDEFAULT == null ? task != null : !TASK_EDEFAULT.equals(task);
+ case ServerTypePackage.PUBLISH_TYPE__CLASSPATH_REFERENCE:
+ return CLASSPATH_REFERENCE_EDEFAULT == null ? classpathReference != null : !CLASSPATH_REFERENCE_EDEFAULT.equals(classpathReference);
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (task: ");
+ result.append(task);
+ result.append(", classpathReference: ");
+ result.append(classpathReference);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PublishTypeImpl
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/PublisherImpl.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/PublisherImpl.java
new file mode 100644
index 0000000..08b1db5
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/PublisherImpl.java
@@ -0,0 +1,297 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: PublisherImpl.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.jst.server.generic.servertype.definition.Publisher;
+import org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Publisher</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.PublisherImpl#getGroup <em>Group</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.PublisherImpl#getPublish <em>Publish</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.PublisherImpl#getUnpublish <em>Unpublish</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.PublisherImpl#getId <em>Id</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class PublisherImpl extends EObjectImpl implements Publisher {
+ /**
+ * The cached value of the '{@link #getGroup() <em>Group</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroup()
+ * @generated
+ * @ordered
+ */
+ protected FeatureMap group = null;
+
+ /**
+ * The default value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected static final String ID_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getId()
+ * @generated
+ * @ordered
+ */
+ protected String id = ID_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected PublisherImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ServerTypePackage.eINSTANCE.getPublisher();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FeatureMap getGroup() {
+ if (group == null) {
+ group = new BasicFeatureMap(this, ServerTypePackage.PUBLISHER__GROUP);
+ }
+ return group;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPublish() {
+ return ((FeatureMap)getGroup()).list(ServerTypePackage.eINSTANCE.getPublisher_Publish());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getUnpublish() {
+ return ((FeatureMap)getGroup()).list(ServerTypePackage.eINSTANCE.getPublisher_Unpublish());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getId() {
+ return id;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setId(String newId) {
+ String oldId = id;
+ id = newId;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.PUBLISHER__ID, oldId, id));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) {
+ if (featureID >= 0) {
+ switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
+ case ServerTypePackage.PUBLISHER__GROUP:
+ return ((InternalEList)getGroup()).basicRemove(otherEnd, msgs);
+ case ServerTypePackage.PUBLISHER__PUBLISH:
+ return ((InternalEList)getPublish()).basicRemove(otherEnd, msgs);
+ case ServerTypePackage.PUBLISHER__UNPUBLISH:
+ return ((InternalEList)getUnpublish()).basicRemove(otherEnd, msgs);
+ default:
+ return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs);
+ }
+ }
+ return eBasicSetContainer(null, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PUBLISHER__GROUP:
+ return getGroup();
+ case ServerTypePackage.PUBLISHER__PUBLISH:
+ return getPublish();
+ case ServerTypePackage.PUBLISHER__UNPUBLISH:
+ return getUnpublish();
+ case ServerTypePackage.PUBLISHER__ID:
+ return getId();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PUBLISHER__GROUP:
+ getGroup().clear();
+ getGroup().addAll((Collection)newValue);
+ return;
+ case ServerTypePackage.PUBLISHER__PUBLISH:
+ getPublish().clear();
+ getPublish().addAll((Collection)newValue);
+ return;
+ case ServerTypePackage.PUBLISHER__UNPUBLISH:
+ getUnpublish().clear();
+ getUnpublish().addAll((Collection)newValue);
+ return;
+ case ServerTypePackage.PUBLISHER__ID:
+ setId((String)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PUBLISHER__GROUP:
+ getGroup().clear();
+ return;
+ case ServerTypePackage.PUBLISHER__PUBLISH:
+ getPublish().clear();
+ return;
+ case ServerTypePackage.PUBLISHER__UNPUBLISH:
+ getUnpublish().clear();
+ return;
+ case ServerTypePackage.PUBLISHER__ID:
+ setId(ID_EDEFAULT);
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.PUBLISHER__GROUP:
+ return group != null && !group.isEmpty();
+ case ServerTypePackage.PUBLISHER__PUBLISH:
+ return !getPublish().isEmpty();
+ case ServerTypePackage.PUBLISHER__UNPUBLISH:
+ return !getUnpublish().isEmpty();
+ case ServerTypePackage.PUBLISHER__ID:
+ return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (group: ");
+ result.append(group);
+ result.append(", id: ");
+ result.append(id);
+ result.append(')');
+ return result.toString();
+ }
+
+} //PublisherImpl
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ServerRuntimeImpl.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ServerRuntimeImpl.java
new file mode 100644
index 0000000..052ca32
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ServerRuntimeImpl.java
@@ -0,0 +1,881 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: ServerRuntimeImpl.java,v 1.2 2004/12/02 17:56:53 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.impl;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.emf.ecore.util.BasicFeatureMap;
+import org.eclipse.emf.ecore.util.FeatureMap;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.jst.server.generic.internal.xml.Resolver;
+import org.eclipse.jst.server.generic.servertype.definition.Classpath;
+import org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration;
+import org.eclipse.jst.server.generic.servertype.definition.Module;
+import org.eclipse.jst.server.generic.servertype.definition.Project;
+import org.eclipse.jst.server.generic.servertype.definition.Publisher;
+import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
+import org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Server Runtime</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl#getGroup <em>Group</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl#getProperty <em>Property</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl#getGroup1 <em>Group1</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl#getPort <em>Port</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl#getGroup2 <em>Group2</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl#getModule <em>Module</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl#getProject <em>Project</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl#getStart <em>Start</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl#getStop <em>Stop</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl#getGroup3 <em>Group3</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl#getPublisher <em>Publisher</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl#getGroup4 <em>Group4</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl#getClasspath <em>Classpath</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.ServerRuntimeImpl#getVersion <em>Version</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class ServerRuntimeImpl extends EObjectImpl implements ServerRuntime {
+ /**
+ * The cached value of the '{@link #getGroup() <em>Group</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroup()
+ * @generated
+ * @ordered
+ */
+ protected FeatureMap group = null;
+
+ /**
+ * The cached value of the '{@link #getGroup1() <em>Group1</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroup1()
+ * @generated
+ * @ordered
+ */
+ protected FeatureMap group1 = null;
+
+ /**
+ * The cached value of the '{@link #getGroup2() <em>Group2</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroup2()
+ * @generated
+ * @ordered
+ */
+ protected FeatureMap group2 = null;
+
+ /**
+ * The cached value of the '{@link #getProject() <em>Project</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getProject()
+ * @generated
+ * @ordered
+ */
+ protected Project project = null;
+
+ /**
+ * The cached value of the '{@link #getStart() <em>Start</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStart()
+ * @generated
+ * @ordered
+ */
+ protected LaunchConfiguration start = null;
+
+ /**
+ * The cached value of the '{@link #getStop() <em>Stop</em>}' containment reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getStop()
+ * @generated
+ * @ordered
+ */
+ protected LaunchConfiguration stop = null;
+
+ /**
+ * The cached value of the '{@link #getGroup3() <em>Group3</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroup3()
+ * @generated
+ * @ordered
+ */
+ protected FeatureMap group3 = null;
+
+ /**
+ * The cached value of the '{@link #getGroup4() <em>Group4</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroup4()
+ * @generated
+ * @ordered
+ */
+ protected FeatureMap group4 = null;
+
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected static final String VERSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected String version = VERSION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getGroup() <em>Group</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroup()
+ * @generated NOT
+ * @ordered
+ */
+ protected String filename = null;
+
+
+ /**
+ * The cached value of the '{@link #getGroup() <em>Group</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getGroup()
+ * @generated NOT
+ * @ordered
+ */
+ protected Resolver resolver = new Resolver(this);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ServerRuntimeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ServerTypePackage.eINSTANCE.getServerRuntime();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FeatureMap getGroup() {
+ if (group == null) {
+ group = new BasicFeatureMap(this, ServerTypePackage.SERVER_RUNTIME__GROUP);
+ }
+ return group;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getProperty() {
+ return ((FeatureMap)getGroup()).list(ServerTypePackage.eINSTANCE.getServerRuntime_Property());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FeatureMap getGroup1() {
+ if (group1 == null) {
+ group1 = new BasicFeatureMap(this, ServerTypePackage.SERVER_RUNTIME__GROUP1);
+ }
+ return group1;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPort() {
+ return ((FeatureMap)getGroup1()).list(ServerTypePackage.eINSTANCE.getServerRuntime_Port());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FeatureMap getGroup2() {
+ if (group2 == null) {
+ group2 = new BasicFeatureMap(this, ServerTypePackage.SERVER_RUNTIME__GROUP2);
+ }
+ return group2;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getModule() {
+ return ((FeatureMap)getGroup2()).list(ServerTypePackage.eINSTANCE.getServerRuntime_Module());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Project getProject() {
+ return project;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetProject(Project newProject, NotificationChain msgs) {
+ Project oldProject = project;
+ project = newProject;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ServerTypePackage.SERVER_RUNTIME__PROJECT, oldProject, newProject);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setProject(Project newProject) {
+ if (newProject != project) {
+ NotificationChain msgs = null;
+ if (project != null)
+ msgs = ((InternalEObject)project).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ServerTypePackage.SERVER_RUNTIME__PROJECT, null, msgs);
+ if (newProject != null)
+ msgs = ((InternalEObject)newProject).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ServerTypePackage.SERVER_RUNTIME__PROJECT, null, msgs);
+ msgs = basicSetProject(newProject, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.SERVER_RUNTIME__PROJECT, newProject, newProject));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LaunchConfiguration getStart() {
+ return start;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStart(LaunchConfiguration newStart, NotificationChain msgs) {
+ LaunchConfiguration oldStart = start;
+ start = newStart;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ServerTypePackage.SERVER_RUNTIME__START, oldStart, newStart);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStart(LaunchConfiguration newStart) {
+ if (newStart != start) {
+ NotificationChain msgs = null;
+ if (start != null)
+ msgs = ((InternalEObject)start).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ServerTypePackage.SERVER_RUNTIME__START, null, msgs);
+ if (newStart != null)
+ msgs = ((InternalEObject)newStart).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ServerTypePackage.SERVER_RUNTIME__START, null, msgs);
+ msgs = basicSetStart(newStart, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.SERVER_RUNTIME__START, newStart, newStart));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LaunchConfiguration getStop() {
+ return stop;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetStop(LaunchConfiguration newStop, NotificationChain msgs) {
+ LaunchConfiguration oldStop = stop;
+ stop = newStop;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ServerTypePackage.SERVER_RUNTIME__STOP, oldStop, newStop);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setStop(LaunchConfiguration newStop) {
+ if (newStop != stop) {
+ NotificationChain msgs = null;
+ if (stop != null)
+ msgs = ((InternalEObject)stop).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - ServerTypePackage.SERVER_RUNTIME__STOP, null, msgs);
+ if (newStop != null)
+ msgs = ((InternalEObject)newStop).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - ServerTypePackage.SERVER_RUNTIME__STOP, null, msgs);
+ msgs = basicSetStop(newStop, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.SERVER_RUNTIME__STOP, newStop, newStop));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FeatureMap getGroup3() {
+ if (group3 == null) {
+ group3 = new BasicFeatureMap(this, ServerTypePackage.SERVER_RUNTIME__GROUP3);
+ }
+ return group3;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getPublisher() {
+ return ((FeatureMap)getGroup3()).list(ServerTypePackage.eINSTANCE.getServerRuntime_Publisher());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public FeatureMap getGroup4() {
+ if (group4 == null) {
+ group4 = new BasicFeatureMap(this, ServerTypePackage.SERVER_RUNTIME__GROUP4);
+ }
+ return group4;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EList getClasspath() {
+ return ((FeatureMap)getGroup4()).list(ServerTypePackage.eINSTANCE.getServerRuntime_Classpath());
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.SERVER_RUNTIME__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getVersion() {
+ return version;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setVersion(String newVersion) {
+ String oldVersion = version;
+ version = newVersion;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.SERVER_RUNTIME__VERSION, oldVersion, version));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) {
+ if (featureID >= 0) {
+ switch (eDerivedStructuralFeatureID(featureID, baseClass)) {
+ case ServerTypePackage.SERVER_RUNTIME__GROUP:
+ return ((InternalEList)getGroup()).basicRemove(otherEnd, msgs);
+ case ServerTypePackage.SERVER_RUNTIME__PROPERTY:
+ return ((InternalEList)getProperty()).basicRemove(otherEnd, msgs);
+ case ServerTypePackage.SERVER_RUNTIME__GROUP1:
+ return ((InternalEList)getGroup1()).basicRemove(otherEnd, msgs);
+ case ServerTypePackage.SERVER_RUNTIME__PORT:
+ return ((InternalEList)getPort()).basicRemove(otherEnd, msgs);
+ case ServerTypePackage.SERVER_RUNTIME__GROUP2:
+ return ((InternalEList)getGroup2()).basicRemove(otherEnd, msgs);
+ case ServerTypePackage.SERVER_RUNTIME__MODULE:
+ return ((InternalEList)getModule()).basicRemove(otherEnd, msgs);
+ case ServerTypePackage.SERVER_RUNTIME__PROJECT:
+ return basicSetProject(null, msgs);
+ case ServerTypePackage.SERVER_RUNTIME__START:
+ return basicSetStart(null, msgs);
+ case ServerTypePackage.SERVER_RUNTIME__STOP:
+ return basicSetStop(null, msgs);
+ case ServerTypePackage.SERVER_RUNTIME__GROUP3:
+ return ((InternalEList)getGroup3()).basicRemove(otherEnd, msgs);
+ case ServerTypePackage.SERVER_RUNTIME__PUBLISHER:
+ return ((InternalEList)getPublisher()).basicRemove(otherEnd, msgs);
+ case ServerTypePackage.SERVER_RUNTIME__GROUP4:
+ return ((InternalEList)getGroup4()).basicRemove(otherEnd, msgs);
+ case ServerTypePackage.SERVER_RUNTIME__CLASSPATH:
+ return ((InternalEList)getClasspath()).basicRemove(otherEnd, msgs);
+ default:
+ return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs);
+ }
+ }
+ return eBasicSetContainer(null, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.SERVER_RUNTIME__GROUP:
+ return getGroup();
+ case ServerTypePackage.SERVER_RUNTIME__PROPERTY:
+ return getProperty();
+ case ServerTypePackage.SERVER_RUNTIME__GROUP1:
+ return getGroup1();
+ case ServerTypePackage.SERVER_RUNTIME__PORT:
+ return getPort();
+ case ServerTypePackage.SERVER_RUNTIME__GROUP2:
+ return getGroup2();
+ case ServerTypePackage.SERVER_RUNTIME__MODULE:
+ return getModule();
+ case ServerTypePackage.SERVER_RUNTIME__PROJECT:
+ return getProject();
+ case ServerTypePackage.SERVER_RUNTIME__START:
+ return getStart();
+ case ServerTypePackage.SERVER_RUNTIME__STOP:
+ return getStop();
+ case ServerTypePackage.SERVER_RUNTIME__GROUP3:
+ return getGroup3();
+ case ServerTypePackage.SERVER_RUNTIME__PUBLISHER:
+ return getPublisher();
+ case ServerTypePackage.SERVER_RUNTIME__GROUP4:
+ return getGroup4();
+ case ServerTypePackage.SERVER_RUNTIME__CLASSPATH:
+ return getClasspath();
+ case ServerTypePackage.SERVER_RUNTIME__NAME:
+ return getName();
+ case ServerTypePackage.SERVER_RUNTIME__VERSION:
+ return getVersion();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.SERVER_RUNTIME__GROUP:
+ getGroup().clear();
+ getGroup().addAll((Collection)newValue);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__PROPERTY:
+ getProperty().clear();
+ getProperty().addAll((Collection)newValue);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__GROUP1:
+ getGroup1().clear();
+ getGroup1().addAll((Collection)newValue);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__PORT:
+ getPort().clear();
+ getPort().addAll((Collection)newValue);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__GROUP2:
+ getGroup2().clear();
+ getGroup2().addAll((Collection)newValue);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__MODULE:
+ getModule().clear();
+ getModule().addAll((Collection)newValue);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__PROJECT:
+ setProject((Project)newValue);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__START:
+ setStart((LaunchConfiguration)newValue);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__STOP:
+ setStop((LaunchConfiguration)newValue);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__GROUP3:
+ getGroup3().clear();
+ getGroup3().addAll((Collection)newValue);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__PUBLISHER:
+ getPublisher().clear();
+ getPublisher().addAll((Collection)newValue);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__GROUP4:
+ getGroup4().clear();
+ getGroup4().addAll((Collection)newValue);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__CLASSPATH:
+ getClasspath().clear();
+ getClasspath().addAll((Collection)newValue);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__NAME:
+ setName((String)newValue);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__VERSION:
+ setVersion((String)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.SERVER_RUNTIME__GROUP:
+ getGroup().clear();
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__PROPERTY:
+ getProperty().clear();
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__GROUP1:
+ getGroup1().clear();
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__PORT:
+ getPort().clear();
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__GROUP2:
+ getGroup2().clear();
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__MODULE:
+ getModule().clear();
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__PROJECT:
+ setProject((Project)null);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__START:
+ setStart((LaunchConfiguration)null);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__STOP:
+ setStop((LaunchConfiguration)null);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__GROUP3:
+ getGroup3().clear();
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__PUBLISHER:
+ getPublisher().clear();
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__GROUP4:
+ getGroup4().clear();
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__CLASSPATH:
+ getClasspath().clear();
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case ServerTypePackage.SERVER_RUNTIME__VERSION:
+ setVersion(VERSION_EDEFAULT);
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.SERVER_RUNTIME__GROUP:
+ return group != null && !group.isEmpty();
+ case ServerTypePackage.SERVER_RUNTIME__PROPERTY:
+ return !getProperty().isEmpty();
+ case ServerTypePackage.SERVER_RUNTIME__GROUP1:
+ return group1 != null && !group1.isEmpty();
+ case ServerTypePackage.SERVER_RUNTIME__PORT:
+ return !getPort().isEmpty();
+ case ServerTypePackage.SERVER_RUNTIME__GROUP2:
+ return group2 != null && !group2.isEmpty();
+ case ServerTypePackage.SERVER_RUNTIME__MODULE:
+ return !getModule().isEmpty();
+ case ServerTypePackage.SERVER_RUNTIME__PROJECT:
+ return project != null;
+ case ServerTypePackage.SERVER_RUNTIME__START:
+ return start != null;
+ case ServerTypePackage.SERVER_RUNTIME__STOP:
+ return stop != null;
+ case ServerTypePackage.SERVER_RUNTIME__GROUP3:
+ return group3 != null && !group3.isEmpty();
+ case ServerTypePackage.SERVER_RUNTIME__PUBLISHER:
+ return !getPublisher().isEmpty();
+ case ServerTypePackage.SERVER_RUNTIME__GROUP4:
+ return group4 != null && !group4.isEmpty();
+ case ServerTypePackage.SERVER_RUNTIME__CLASSPATH:
+ return !getClasspath().isEmpty();
+ case ServerTypePackage.SERVER_RUNTIME__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case ServerTypePackage.SERVER_RUNTIME__VERSION:
+ return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (group: ");
+ result.append(group);
+ result.append(", group1: ");
+ result.append(group1);
+ result.append(", group2: ");
+ result.append(group2);
+ result.append(", group3: ");
+ result.append(group3);
+ result.append(", group4: ");
+ result.append(group4);
+ result.append(", name: ");
+ result.append(name);
+ result.append(", version: ");
+ result.append(version);
+ result.append(')');
+ return result.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Publisher getPublisher(String id) {
+ Iterator iterator = this.getPublisher().iterator();
+ while (iterator.hasNext()) {
+ Publisher publisher = (Publisher) iterator.next();
+ if(id.equals(publisher.getId()))
+ return publisher;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Module getModule(String type) {
+ Iterator iterator = this.getModule().iterator();
+ while (iterator.hasNext()) {
+ Module module = (Module) iterator.next();
+ if(type.equals(module.getType()))
+ return module;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Classpath getClasspath(String ref) {
+ Iterator iterator = this.getClasspath().iterator();
+ while (iterator.hasNext()) {
+ Classpath cp = (Classpath) iterator.next();
+ if(ref.equals(cp.getId()))
+ return cp;
+ }
+ return null;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public String getFilename() {
+ return filename;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setFilename(String fn) {
+ this.filename = fn;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void setPropertyValues(Map properties) {
+ this.resolver.setPropertyValues(properties);
+
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public Resolver getResolver() {
+ return this.resolver;
+ }
+
+
+} //ServerRuntimeImpl
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ServerTypeFactoryImpl.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ServerTypeFactoryImpl.java
new file mode 100644
index 0000000..9002e4b
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ServerTypeFactoryImpl.java
@@ -0,0 +1,211 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: ServerTypeFactoryImpl.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.jst.server.generic.servertype.definition.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ServerTypeFactoryImpl extends EFactoryImpl implements ServerTypeFactory {
+ /**
+ * Creates and instance of the factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServerTypeFactoryImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case ServerTypePackage.ARCHIVE_TYPE: return createArchiveType();
+ case ServerTypePackage.CLASSPATH: return createClasspath();
+ case ServerTypePackage.LAUNCH_CONFIGURATION: return createLaunchConfiguration();
+ case ServerTypePackage.MODULE: return createModule();
+ case ServerTypePackage.PORT: return createPort();
+ case ServerTypePackage.PROJECT: return createProject();
+ case ServerTypePackage.PROPERTY: return createProperty();
+ case ServerTypePackage.PUBLISHER: return createPublisher();
+ case ServerTypePackage.PUBLISH_TYPE: return createPublishType();
+ case ServerTypePackage.SERVER_RUNTIME: return createServerRuntime();
+ case ServerTypePackage.UNPUBLISH_TYPE: return createUnpublishType();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ArchiveType createArchiveType() {
+ ArchiveTypeImpl archiveType = new ArchiveTypeImpl();
+ return archiveType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Classpath createClasspath() {
+ ClasspathImpl classpath = new ClasspathImpl();
+ return classpath;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public LaunchConfiguration createLaunchConfiguration() {
+ LaunchConfigurationImpl launchConfiguration = new LaunchConfigurationImpl();
+ return launchConfiguration;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Module createModule() {
+ ModuleImpl module = new ModuleImpl();
+ return module;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Port createPort() {
+ PortImpl port = new PortImpl();
+ return port;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Project createProject() {
+ ProjectImpl project = new ProjectImpl();
+ return project;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Property createProperty() {
+ PropertyImpl property = new PropertyImpl();
+ return property;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Publisher createPublisher() {
+ PublisherImpl publisher = new PublisherImpl();
+ return publisher;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public PublishType createPublishType() {
+ PublishTypeImpl publishType = new PublishTypeImpl();
+ return publishType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServerRuntime createServerRuntime() {
+ ServerRuntimeImpl serverRuntime = new ServerRuntimeImpl();
+ return serverRuntime;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public UnpublishType createUnpublishType() {
+ UnpublishTypeImpl unpublishType = new UnpublishTypeImpl();
+ return unpublishType;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServerTypePackage getServerTypePackage() {
+ return (ServerTypePackage)getEPackage();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @deprecated
+ * @generated
+ */
+ public static ServerTypePackage getPackage() {
+ return ServerTypePackage.eINSTANCE;
+ }
+
+} //ServerTypeFactoryImpl
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ServerTypePackageImpl.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ServerTypePackageImpl.java
new file mode 100644
index 0000000..02e6613
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/ServerTypePackageImpl.java
@@ -0,0 +1,1329 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: ServerTypePackageImpl.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.impl;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
+
+import org.eclipse.emf.ecore.xml.type.impl.XMLTypePackageImpl;
+
+import org.eclipse.jst.server.generic.servertype.definition.ArchiveType;
+import org.eclipse.jst.server.generic.servertype.definition.Classpath;
+import org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration;
+import org.eclipse.jst.server.generic.servertype.definition.Module;
+import org.eclipse.jst.server.generic.servertype.definition.Port;
+import org.eclipse.jst.server.generic.servertype.definition.Project;
+import org.eclipse.jst.server.generic.servertype.definition.Property;
+import org.eclipse.jst.server.generic.servertype.definition.PublishType;
+import org.eclipse.jst.server.generic.servertype.definition.Publisher;
+import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
+import org.eclipse.jst.server.generic.servertype.definition.ServerTypeFactory;
+import org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage;
+import org.eclipse.jst.server.generic.servertype.definition.UnpublishType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Package</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ServerTypePackageImpl extends EPackageImpl implements ServerTypePackage {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass archiveTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass classpathEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass launchConfigurationEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass moduleEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass portEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass projectEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass propertyEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass publisherEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass publishTypeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass serverRuntimeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private EClass unpublishTypeEClass = null;
+
+ /**
+ * Creates an instance of the model <b>Package</b>, registered with
+ * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
+ * package URI value.
+ * <p>Note: the correct way to create the package is via the static
+ * factory method {@link #init init()}, which also performs
+ * initialization of the package, or returns the registered package,
+ * if one already exists.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ServerTypePackageImpl() {
+ super(eNS_URI, ServerTypeFactory.eINSTANCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the <b>Package</b> for this
+ * model, and for any others upon which it depends. Simple
+ * dependencies are satisfied by calling this method on all
+ * dependent packages before doing anything else. This method drives
+ * initialization for interdependent packages directly, in parallel
+ * with this package, itself.
+ * <p>Of this package and its interdependencies, all packages which
+ * have not yet been registered by their URI values are first created
+ * and registered. The packages are then initialized in two steps:
+ * meta-model objects for all of the packages are created before any
+ * are initialized, since one package's meta-model objects may refer to
+ * those of another.
+ * <p>Invocation of this method will not affect any packages that have
+ * already been initialized.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static ServerTypePackage init() {
+ if (isInited) return (ServerTypePackage)EPackage.Registry.INSTANCE.getEPackage(ServerTypePackage.eNS_URI);
+
+ // Obtain or create and register package
+ ServerTypePackageImpl theServerTypePackage = (ServerTypePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(eNS_URI) instanceof ServerTypePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(eNS_URI) : new ServerTypePackageImpl());
+
+ isInited = true;
+
+ // Initialize simple dependencies
+ XMLTypePackageImpl.init();
+
+ // Create package meta-data objects
+ theServerTypePackage.createPackageContents();
+
+ // Initialize created meta-data
+ theServerTypePackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theServerTypePackage.freeze();
+
+ return theServerTypePackage;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getArchiveType() {
+ return archiveTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getArchiveType_Path() {
+ return (EAttribute)archiveTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getClasspath() {
+ return classpathEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getClasspath_Group() {
+ return (EAttribute)classpathEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getClasspath_Archive() {
+ return (EReference)classpathEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getClasspath_Id() {
+ return (EAttribute)classpathEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getClasspath_IsLibrary() {
+ return (EAttribute)classpathEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getLaunchConfiguration() {
+ return launchConfigurationEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLaunchConfiguration_Class() {
+ return (EAttribute)launchConfigurationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLaunchConfiguration_WorkingDirectory() {
+ return (EAttribute)launchConfigurationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLaunchConfiguration_ProgramArguments() {
+ return (EAttribute)launchConfigurationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLaunchConfiguration_VmParameters() {
+ return (EAttribute)launchConfigurationEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getLaunchConfiguration_ClasspathReference() {
+ return (EAttribute)launchConfigurationEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getModule() {
+ return moduleEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModule_Type() {
+ return (EAttribute)moduleEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModule_PublishDir() {
+ return (EAttribute)moduleEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getModule_PublisherReference() {
+ return (EAttribute)moduleEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPort() {
+ return portEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPort_No() {
+ return (EAttribute)portEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPort_Name() {
+ return (EAttribute)portEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPort_Protocol() {
+ return (EAttribute)portEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProject() {
+ return projectEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProject_ClasspathReference() {
+ return (EAttribute)projectEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getProperty() {
+ return propertyEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProperty_Context() {
+ return (EAttribute)propertyEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProperty_Default() {
+ return (EAttribute)propertyEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProperty_Id() {
+ return (EAttribute)propertyEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProperty_Label() {
+ return (EAttribute)propertyEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getProperty_Type() {
+ return (EAttribute)propertyEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPublisher() {
+ return publisherEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPublisher_Group() {
+ return (EAttribute)publisherEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPublisher_Publish() {
+ return (EReference)publisherEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getPublisher_Unpublish() {
+ return (EReference)publisherEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPublisher_Id() {
+ return (EAttribute)publisherEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getPublishType() {
+ return publishTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPublishType_Task() {
+ return (EAttribute)publishTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getPublishType_ClasspathReference() {
+ return (EAttribute)publishTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getServerRuntime() {
+ return serverRuntimeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServerRuntime_Group() {
+ return (EAttribute)serverRuntimeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getServerRuntime_Property() {
+ return (EReference)serverRuntimeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServerRuntime_Group1() {
+ return (EAttribute)serverRuntimeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getServerRuntime_Port() {
+ return (EReference)serverRuntimeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServerRuntime_Group2() {
+ return (EAttribute)serverRuntimeEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getServerRuntime_Module() {
+ return (EReference)serverRuntimeEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getServerRuntime_Project() {
+ return (EReference)serverRuntimeEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getServerRuntime_Start() {
+ return (EReference)serverRuntimeEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getServerRuntime_Stop() {
+ return (EReference)serverRuntimeEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServerRuntime_Group3() {
+ return (EAttribute)serverRuntimeEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getServerRuntime_Publisher() {
+ return (EReference)serverRuntimeEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServerRuntime_Group4() {
+ return (EAttribute)serverRuntimeEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EReference getServerRuntime_Classpath() {
+ return (EReference)serverRuntimeEClass.getEStructuralFeatures().get(12);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServerRuntime_Name() {
+ return (EAttribute)serverRuntimeEClass.getEStructuralFeatures().get(13);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getServerRuntime_Version() {
+ return (EAttribute)serverRuntimeEClass.getEStructuralFeatures().get(14);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClass getUnpublishType() {
+ return unpublishTypeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getUnpublishType_Task() {
+ return (EAttribute)unpublishTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EAttribute getUnpublishType_ClasspathReference() {
+ return (EAttribute)unpublishTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServerTypeFactory getServerTypeFactory() {
+ return (ServerTypeFactory)getEFactoryInstance();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is
+ * guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated) return;
+ isCreated = true;
+
+ // Create classes and their features
+ archiveTypeEClass = createEClass(ARCHIVE_TYPE);
+ createEAttribute(archiveTypeEClass, ARCHIVE_TYPE__PATH);
+
+ classpathEClass = createEClass(CLASSPATH);
+ createEAttribute(classpathEClass, CLASSPATH__GROUP);
+ createEReference(classpathEClass, CLASSPATH__ARCHIVE);
+ createEAttribute(classpathEClass, CLASSPATH__ID);
+ createEAttribute(classpathEClass, CLASSPATH__IS_LIBRARY);
+
+ launchConfigurationEClass = createEClass(LAUNCH_CONFIGURATION);
+ createEAttribute(launchConfigurationEClass, LAUNCH_CONFIGURATION__CLASS);
+ createEAttribute(launchConfigurationEClass, LAUNCH_CONFIGURATION__WORKING_DIRECTORY);
+ createEAttribute(launchConfigurationEClass, LAUNCH_CONFIGURATION__PROGRAM_ARGUMENTS);
+ createEAttribute(launchConfigurationEClass, LAUNCH_CONFIGURATION__VM_PARAMETERS);
+ createEAttribute(launchConfigurationEClass, LAUNCH_CONFIGURATION__CLASSPATH_REFERENCE);
+
+ moduleEClass = createEClass(MODULE);
+ createEAttribute(moduleEClass, MODULE__TYPE);
+ createEAttribute(moduleEClass, MODULE__PUBLISH_DIR);
+ createEAttribute(moduleEClass, MODULE__PUBLISHER_REFERENCE);
+
+ portEClass = createEClass(PORT);
+ createEAttribute(portEClass, PORT__NO);
+ createEAttribute(portEClass, PORT__NAME);
+ createEAttribute(portEClass, PORT__PROTOCOL);
+
+ projectEClass = createEClass(PROJECT);
+ createEAttribute(projectEClass, PROJECT__CLASSPATH_REFERENCE);
+
+ propertyEClass = createEClass(PROPERTY);
+ createEAttribute(propertyEClass, PROPERTY__CONTEXT);
+ createEAttribute(propertyEClass, PROPERTY__DEFAULT);
+ createEAttribute(propertyEClass, PROPERTY__ID);
+ createEAttribute(propertyEClass, PROPERTY__LABEL);
+ createEAttribute(propertyEClass, PROPERTY__TYPE);
+
+ publisherEClass = createEClass(PUBLISHER);
+ createEAttribute(publisherEClass, PUBLISHER__GROUP);
+ createEReference(publisherEClass, PUBLISHER__PUBLISH);
+ createEReference(publisherEClass, PUBLISHER__UNPUBLISH);
+ createEAttribute(publisherEClass, PUBLISHER__ID);
+
+ publishTypeEClass = createEClass(PUBLISH_TYPE);
+ createEAttribute(publishTypeEClass, PUBLISH_TYPE__TASK);
+ createEAttribute(publishTypeEClass, PUBLISH_TYPE__CLASSPATH_REFERENCE);
+
+ serverRuntimeEClass = createEClass(SERVER_RUNTIME);
+ createEAttribute(serverRuntimeEClass, SERVER_RUNTIME__GROUP);
+ createEReference(serverRuntimeEClass, SERVER_RUNTIME__PROPERTY);
+ createEAttribute(serverRuntimeEClass, SERVER_RUNTIME__GROUP1);
+ createEReference(serverRuntimeEClass, SERVER_RUNTIME__PORT);
+ createEAttribute(serverRuntimeEClass, SERVER_RUNTIME__GROUP2);
+ createEReference(serverRuntimeEClass, SERVER_RUNTIME__MODULE);
+ createEReference(serverRuntimeEClass, SERVER_RUNTIME__PROJECT);
+ createEReference(serverRuntimeEClass, SERVER_RUNTIME__START);
+ createEReference(serverRuntimeEClass, SERVER_RUNTIME__STOP);
+ createEAttribute(serverRuntimeEClass, SERVER_RUNTIME__GROUP3);
+ createEReference(serverRuntimeEClass, SERVER_RUNTIME__PUBLISHER);
+ createEAttribute(serverRuntimeEClass, SERVER_RUNTIME__GROUP4);
+ createEReference(serverRuntimeEClass, SERVER_RUNTIME__CLASSPATH);
+ createEAttribute(serverRuntimeEClass, SERVER_RUNTIME__NAME);
+ createEAttribute(serverRuntimeEClass, SERVER_RUNTIME__VERSION);
+
+ unpublishTypeEClass = createEClass(UNPUBLISH_TYPE);
+ createEAttribute(unpublishTypeEClass, UNPUBLISH_TYPE__TASK);
+ createEAttribute(unpublishTypeEClass, UNPUBLISH_TYPE__CLASSPATH_REFERENCE);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This
+ * method is guarded to have no affect on any invocation but its first.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (isInitialized) return;
+ isInitialized = true;
+
+ // Initialize package
+ setName(eNAME);
+ setNsPrefix(eNS_PREFIX);
+ setNsURI(eNS_URI);
+
+ // Obtain other dependent packages
+ XMLTypePackageImpl theXMLTypePackage = (XMLTypePackageImpl)EPackage.Registry.INSTANCE.getEPackage(XMLTypePackage.eNS_URI);
+
+ // Add supertypes to classes
+
+ // Initialize classes and features; add operations and parameters
+ initEClass(archiveTypeEClass, ArchiveType.class, "ArchiveType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getArchiveType_Path(), theXMLTypePackage.getString(), "path", null, 0, 1, ArchiveType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(classpathEClass, Classpath.class, "Classpath", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getClasspath_Group(), ecorePackage.getEFeatureMapEntry(), "group", null, 0, -1, Classpath.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getClasspath_Archive(), this.getArchiveType(), null, "archive", null, 1, -1, Classpath.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEAttribute(getClasspath_Id(), theXMLTypePackage.getString(), "id", null, 0, 1, Classpath.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getClasspath_IsLibrary(), theXMLTypePackage.getBoolean(), "isLibrary", null, 0, 1, Classpath.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(launchConfigurationEClass, LaunchConfiguration.class, "LaunchConfiguration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getLaunchConfiguration_Class(), theXMLTypePackage.getString(), "class", null, 1, 1, LaunchConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLaunchConfiguration_WorkingDirectory(), theXMLTypePackage.getString(), "workingDirectory", null, 1, 1, LaunchConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLaunchConfiguration_ProgramArguments(), theXMLTypePackage.getString(), "programArguments", null, 1, 1, LaunchConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLaunchConfiguration_VmParameters(), theXMLTypePackage.getString(), "vmParameters", null, 1, 1, LaunchConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getLaunchConfiguration_ClasspathReference(), theXMLTypePackage.getString(), "classpathReference", null, 1, 1, LaunchConfiguration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(moduleEClass, Module.class, "Module", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getModule_Type(), theXMLTypePackage.getString(), "type", null, 1, 1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getModule_PublishDir(), theXMLTypePackage.getString(), "publishDir", null, 1, 1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getModule_PublisherReference(), theXMLTypePackage.getString(), "publisherReference", null, 1, 1, Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(portEClass, Port.class, "Port", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getPort_No(), theXMLTypePackage.getString(), "no", null, 1, 1, Port.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getPort_Name(), theXMLTypePackage.getString(), "name", null, 1, 1, Port.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getPort_Protocol(), theXMLTypePackage.getString(), "protocol", null, 1, 1, Port.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(projectEClass, Project.class, "Project", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getProject_ClasspathReference(), theXMLTypePackage.getString(), "classpathReference", null, 1, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(propertyEClass, Property.class, "Property", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getProperty_Context(), theXMLTypePackage.getString(), "context", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProperty_Default(), theXMLTypePackage.getString(), "default", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProperty_Id(), theXMLTypePackage.getString(), "id", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProperty_Label(), theXMLTypePackage.getString(), "label", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getProperty_Type(), theXMLTypePackage.getString(), "type", null, 0, 1, Property.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(publisherEClass, Publisher.class, "Publisher", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getPublisher_Group(), ecorePackage.getEFeatureMapEntry(), "group", null, 0, -1, Publisher.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getPublisher_Publish(), this.getPublishType(), null, "publish", null, 1, -1, Publisher.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getPublisher_Unpublish(), this.getUnpublishType(), null, "unpublish", null, 1, -1, Publisher.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEAttribute(getPublisher_Id(), theXMLTypePackage.getString(), "id", null, 0, 1, Publisher.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(publishTypeEClass, PublishType.class, "PublishType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getPublishType_Task(), theXMLTypePackage.getString(), "task", null, 1, 1, PublishType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getPublishType_ClasspathReference(), theXMLTypePackage.getString(), "classpathReference", null, 1, 1, PublishType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(serverRuntimeEClass, ServerRuntime.class, "ServerRuntime", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getServerRuntime_Group(), ecorePackage.getEFeatureMapEntry(), "group", null, 0, -1, ServerRuntime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getServerRuntime_Property(), this.getProperty(), null, "property", null, 0, -1, ServerRuntime.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServerRuntime_Group1(), ecorePackage.getEFeatureMapEntry(), "group1", null, 0, -1, ServerRuntime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getServerRuntime_Port(), this.getPort(), null, "port", null, 0, -1, ServerRuntime.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServerRuntime_Group2(), ecorePackage.getEFeatureMapEntry(), "group2", null, 0, -1, ServerRuntime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getServerRuntime_Module(), this.getModule(), null, "module", null, 1, -1, ServerRuntime.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getServerRuntime_Project(), this.getProject(), null, "project", null, 1, 1, ServerRuntime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getServerRuntime_Start(), this.getLaunchConfiguration(), null, "start", null, 1, 1, ServerRuntime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getServerRuntime_Stop(), this.getLaunchConfiguration(), null, "stop", null, 1, 1, ServerRuntime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServerRuntime_Group3(), ecorePackage.getEFeatureMapEntry(), "group3", null, 0, -1, ServerRuntime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getServerRuntime_Publisher(), this.getPublisher(), null, "publisher", null, 0, -1, ServerRuntime.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServerRuntime_Group4(), ecorePackage.getEFeatureMapEntry(), "group4", null, 0, -1, ServerRuntime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getServerRuntime_Classpath(), this.getClasspath(), null, "classpath", null, 1, -1, ServerRuntime.class, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServerRuntime_Name(), theXMLTypePackage.getString(), "name", null, 1, 1, ServerRuntime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getServerRuntime_Version(), theXMLTypePackage.getString(), "version", null, 0, 1, ServerRuntime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(unpublishTypeEClass, UnpublishType.class, "UnpublishType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getUnpublishType_Task(), theXMLTypePackage.getString(), "task", null, 1, 1, UnpublishType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getUnpublishType_ClasspathReference(), theXMLTypePackage.getString(), "classpathReference", null, 1, 1, UnpublishType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http:///org/eclipse/emf/ecore/util/ExtendedMetaData
+ createExtendedMetaDataAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void createExtendedMetaDataAnnotations() {
+ String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";
+ addAnnotation
+ (archiveTypeEClass,
+ source,
+ new String[] {
+ "name", "archive_._type",
+ "kind", "empty"
+ });
+ addAnnotation
+ (getArchiveType_Path(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "path"
+ });
+ addAnnotation
+ (classpathEClass,
+ source,
+ new String[] {
+ "name", "Classpath",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getClasspath_Group(),
+ source,
+ new String[] {
+ "kind", "group",
+ "name", "group:0"
+ });
+ addAnnotation
+ (getClasspath_Archive(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "archive",
+ "group", "#group:0"
+ });
+ addAnnotation
+ (getClasspath_Id(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "id"
+ });
+ addAnnotation
+ (getClasspath_IsLibrary(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "isLibrary"
+ });
+ addAnnotation
+ (launchConfigurationEClass,
+ source,
+ new String[] {
+ "name", "LaunchConfiguration",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getLaunchConfiguration_Class(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "class"
+ });
+ addAnnotation
+ (getLaunchConfiguration_WorkingDirectory(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "workingDirectory"
+ });
+ addAnnotation
+ (getLaunchConfiguration_ProgramArguments(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "programArguments"
+ });
+ addAnnotation
+ (getLaunchConfiguration_VmParameters(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "vmParameters"
+ });
+ addAnnotation
+ (getLaunchConfiguration_ClasspathReference(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "classpathReference"
+ });
+ addAnnotation
+ (moduleEClass,
+ source,
+ new String[] {
+ "name", "Module",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getModule_Type(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "type"
+ });
+ addAnnotation
+ (getModule_PublishDir(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "publishDir"
+ });
+ addAnnotation
+ (getModule_PublisherReference(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "publisherReference"
+ });
+ addAnnotation
+ (portEClass,
+ source,
+ new String[] {
+ "name", "Port",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getPort_No(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "no"
+ });
+ addAnnotation
+ (getPort_Name(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "name"
+ });
+ addAnnotation
+ (getPort_Protocol(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "protocol"
+ });
+ addAnnotation
+ (projectEClass,
+ source,
+ new String[] {
+ "name", "Project",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getProject_ClasspathReference(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "classpathReference"
+ });
+ addAnnotation
+ (propertyEClass,
+ source,
+ new String[] {
+ "name", "Property",
+ "kind", "empty"
+ });
+ addAnnotation
+ (getProperty_Context(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "context"
+ });
+ addAnnotation
+ (getProperty_Default(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "default"
+ });
+ addAnnotation
+ (getProperty_Id(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "id"
+ });
+ addAnnotation
+ (getProperty_Label(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "label"
+ });
+ addAnnotation
+ (getProperty_Type(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "type"
+ });
+ addAnnotation
+ (publisherEClass,
+ source,
+ new String[] {
+ "name", "Publisher",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getPublisher_Group(),
+ source,
+ new String[] {
+ "kind", "group",
+ "name", "group:0"
+ });
+ addAnnotation
+ (getPublisher_Publish(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "publish",
+ "group", "#group:0"
+ });
+ addAnnotation
+ (getPublisher_Unpublish(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "unpublish",
+ "group", "#group:0"
+ });
+ addAnnotation
+ (getPublisher_Id(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "id"
+ });
+ addAnnotation
+ (publishTypeEClass,
+ source,
+ new String[] {
+ "name", "publish_._type",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getPublishType_Task(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "task"
+ });
+ addAnnotation
+ (getPublishType_ClasspathReference(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "classpathReference"
+ });
+ addAnnotation
+ (serverRuntimeEClass,
+ source,
+ new String[] {
+ "name", "ServerRuntime",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getServerRuntime_Group(),
+ source,
+ new String[] {
+ "kind", "group",
+ "name", "group:0"
+ });
+ addAnnotation
+ (getServerRuntime_Property(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "property",
+ "group", "#group:0"
+ });
+ addAnnotation
+ (getServerRuntime_Group1(),
+ source,
+ new String[] {
+ "kind", "group",
+ "name", "group:2"
+ });
+ addAnnotation
+ (getServerRuntime_Port(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "port",
+ "group", "#group:2"
+ });
+ addAnnotation
+ (getServerRuntime_Group2(),
+ source,
+ new String[] {
+ "kind", "group",
+ "name", "group:4"
+ });
+ addAnnotation
+ (getServerRuntime_Module(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "module",
+ "group", "#group:4"
+ });
+ addAnnotation
+ (getServerRuntime_Project(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "project"
+ });
+ addAnnotation
+ (getServerRuntime_Start(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "start"
+ });
+ addAnnotation
+ (getServerRuntime_Stop(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "stop"
+ });
+ addAnnotation
+ (getServerRuntime_Group3(),
+ source,
+ new String[] {
+ "kind", "group",
+ "name", "group:9"
+ });
+ addAnnotation
+ (getServerRuntime_Publisher(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "publisher",
+ "group", "#group:9"
+ });
+ addAnnotation
+ (getServerRuntime_Group4(),
+ source,
+ new String[] {
+ "kind", "group",
+ "name", "group:11"
+ });
+ addAnnotation
+ (getServerRuntime_Classpath(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "classpath",
+ "group", "#group:11"
+ });
+ addAnnotation
+ (getServerRuntime_Name(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "name"
+ });
+ addAnnotation
+ (getServerRuntime_Version(),
+ source,
+ new String[] {
+ "kind", "attribute",
+ "name", "version"
+ });
+ addAnnotation
+ (unpublishTypeEClass,
+ source,
+ new String[] {
+ "name", "unpublish_._type",
+ "kind", "elementOnly"
+ });
+ addAnnotation
+ (getUnpublishType_Task(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "task"
+ });
+ addAnnotation
+ (getUnpublishType_ClasspathReference(),
+ source,
+ new String[] {
+ "kind", "element",
+ "name", "classpathReference"
+ });
+ }
+
+} //ServerTypePackageImpl
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/UnpublishTypeImpl.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/UnpublishTypeImpl.java
new file mode 100644
index 0000000..451a60e
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/impl/UnpublishTypeImpl.java
@@ -0,0 +1,242 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: UnpublishTypeImpl.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.EObjectImpl;
+
+import org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage;
+import org.eclipse.jst.server.generic.servertype.definition.UnpublishType;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Unpublish Type</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.UnpublishTypeImpl#getTask <em>Task</em>}</li>
+ * <li>{@link org.eclipse.jst.server.generic.servertype.definition.impl.UnpublishTypeImpl#getClasspathReference <em>Classpath Reference</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class UnpublishTypeImpl extends EObjectImpl implements UnpublishType {
+ /**
+ * The default value of the '{@link #getTask() <em>Task</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTask()
+ * @generated
+ * @ordered
+ */
+ protected static final String TASK_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getTask() <em>Task</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getTask()
+ * @generated
+ * @ordered
+ */
+ protected String task = TASK_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getClasspathReference() <em>Classpath Reference</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClasspathReference()
+ * @generated
+ * @ordered
+ */
+ protected static final String CLASSPATH_REFERENCE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getClasspathReference() <em>Classpath Reference</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getClasspathReference()
+ * @generated
+ * @ordered
+ */
+ protected String classpathReference = CLASSPATH_REFERENCE_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UnpublishTypeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected EClass eStaticClass() {
+ return ServerTypePackage.eINSTANCE.getUnpublishType();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getTask() {
+ return task;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setTask(String newTask) {
+ String oldTask = task;
+ task = newTask;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.UNPUBLISH_TYPE__TASK, oldTask, task));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String getClasspathReference() {
+ return classpathReference;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void setClasspathReference(String newClasspathReference) {
+ String oldClasspathReference = classpathReference;
+ classpathReference = newClasspathReference;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ServerTypePackage.UNPUBLISH_TYPE__CLASSPATH_REFERENCE, oldClasspathReference, classpathReference));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Object eGet(EStructuralFeature eFeature, boolean resolve) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.UNPUBLISH_TYPE__TASK:
+ return getTask();
+ case ServerTypePackage.UNPUBLISH_TYPE__CLASSPATH_REFERENCE:
+ return getClasspathReference();
+ }
+ return eDynamicGet(eFeature, resolve);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eSet(EStructuralFeature eFeature, Object newValue) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.UNPUBLISH_TYPE__TASK:
+ setTask((String)newValue);
+ return;
+ case ServerTypePackage.UNPUBLISH_TYPE__CLASSPATH_REFERENCE:
+ setClasspathReference((String)newValue);
+ return;
+ }
+ eDynamicSet(eFeature, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public void eUnset(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.UNPUBLISH_TYPE__TASK:
+ setTask(TASK_EDEFAULT);
+ return;
+ case ServerTypePackage.UNPUBLISH_TYPE__CLASSPATH_REFERENCE:
+ setClasspathReference(CLASSPATH_REFERENCE_EDEFAULT);
+ return;
+ }
+ eDynamicUnset(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean eIsSet(EStructuralFeature eFeature) {
+ switch (eDerivedStructuralFeatureID(eFeature)) {
+ case ServerTypePackage.UNPUBLISH_TYPE__TASK:
+ return TASK_EDEFAULT == null ? task != null : !TASK_EDEFAULT.equals(task);
+ case ServerTypePackage.UNPUBLISH_TYPE__CLASSPATH_REFERENCE:
+ return CLASSPATH_REFERENCE_EDEFAULT == null ? classpathReference != null : !CLASSPATH_REFERENCE_EDEFAULT.equals(classpathReference);
+ }
+ return eDynamicIsSet(eFeature);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public String toString() {
+ if (eIsProxy()) return super.toString();
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (task: ");
+ result.append(task);
+ result.append(", classpathReference: ");
+ result.append(classpathReference);
+ result.append(')');
+ return result.toString();
+ }
+
+} //UnpublishTypeImpl
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/util/ServerTypeAdapterFactory.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/util/ServerTypeAdapterFactory.java
new file mode 100644
index 0000000..891ba08
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/util/ServerTypeAdapterFactory.java
@@ -0,0 +1,316 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: ServerTypeAdapterFactory.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.util;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.jst.server.generic.servertype.definition.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Adapter Factory</b> for the model.
+ * It provides an adapter <code>createXXX</code> method for each class of the model.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage
+ * @generated
+ */
+public class ServerTypeAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ServerTypePackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServerTypeAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = ServerTypePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ * <!-- begin-user-doc -->
+ * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
+ * <!-- end-user-doc -->
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject)object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch the delegates to the <code>createXXX</code> methods.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ServerTypeSwitch modelSwitch =
+ new ServerTypeSwitch() {
+ public Object caseArchiveType(ArchiveType object) {
+ return createArchiveTypeAdapter();
+ }
+ public Object caseClasspath(Classpath object) {
+ return createClasspathAdapter();
+ }
+ public Object caseLaunchConfiguration(LaunchConfiguration object) {
+ return createLaunchConfigurationAdapter();
+ }
+ public Object caseModule(Module object) {
+ return createModuleAdapter();
+ }
+ public Object casePort(Port object) {
+ return createPortAdapter();
+ }
+ public Object caseProject(Project object) {
+ return createProjectAdapter();
+ }
+ public Object caseProperty(Property object) {
+ return createPropertyAdapter();
+ }
+ public Object casePublisher(Publisher object) {
+ return createPublisherAdapter();
+ }
+ public Object casePublishType(PublishType object) {
+ return createPublishTypeAdapter();
+ }
+ public Object caseServerRuntime(ServerRuntime object) {
+ return createServerRuntimeAdapter();
+ }
+ public Object caseUnpublishType(UnpublishType object) {
+ return createUnpublishTypeAdapter();
+ }
+ public Object defaultCase(EObject object) {
+ return createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the <code>target</code>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param target the object to adapt.
+ * @return the adapter for the <code>target</code>.
+ * @generated
+ */
+ public Adapter createAdapter(Notifier target) {
+ return (Adapter)modelSwitch.doSwitch((EObject)target);
+ }
+
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.jst.server.generic.servertype.definition.ArchiveType <em>Archive Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ArchiveType
+ * @generated
+ */
+ public Adapter createArchiveTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.jst.server.generic.servertype.definition.Classpath <em>Classpath</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Classpath
+ * @generated
+ */
+ public Adapter createClasspathAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration <em>Launch Configuration</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.jst.server.generic.servertype.definition.LaunchConfiguration
+ * @generated
+ */
+ public Adapter createLaunchConfigurationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.jst.server.generic.servertype.definition.Module <em>Module</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Module
+ * @generated
+ */
+ public Adapter createModuleAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.jst.server.generic.servertype.definition.Port <em>Port</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Port
+ * @generated
+ */
+ public Adapter createPortAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.jst.server.generic.servertype.definition.Project <em>Project</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Project
+ * @generated
+ */
+ public Adapter createProjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.jst.server.generic.servertype.definition.Property <em>Property</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Property
+ * @generated
+ */
+ public Adapter createPropertyAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.jst.server.generic.servertype.definition.Publisher <em>Publisher</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.jst.server.generic.servertype.definition.Publisher
+ * @generated
+ */
+ public Adapter createPublisherAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.jst.server.generic.servertype.definition.PublishType <em>Publish Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.jst.server.generic.servertype.definition.PublishType
+ * @generated
+ */
+ public Adapter createPublishTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.jst.server.generic.servertype.definition.ServerRuntime <em>Server Runtime</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerRuntime
+ * @generated
+ */
+ public Adapter createServerRuntimeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.jst.server.generic.servertype.definition.UnpublishType <em>Unpublish Type</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.jst.server.generic.servertype.definition.UnpublishType
+ * @generated
+ */
+ public Adapter createUnpublishTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //ServerTypeAdapterFactory
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/util/ServerTypeResourceFactoryImpl.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/util/ServerTypeResourceFactoryImpl.java
new file mode 100644
index 0000000..f472d2e
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/util/ServerTypeResourceFactoryImpl.java
@@ -0,0 +1,89 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: ServerTypeResourceFactoryImpl.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.util;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.resource.Resource;
+
+import org.eclipse.emf.ecore.util.ExtendedMetaData;
+
+import org.eclipse.emf.ecore.xmi.XMLResource;
+
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceFactoryImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource Factory</b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.util.ServerTypeResourceImpl
+ * @generated
+ */
+public class ServerTypeResourceFactoryImpl extends XMLResourceFactoryImpl {
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected ExtendedMetaData extendedMetaData;
+
+ /**
+ * Creates an instance of the resource factory.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServerTypeResourceFactoryImpl() {
+ super();
+ extendedMetaData = ExtendedMetaData.INSTANCE;
+ }
+
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public Resource createResource(URI uri) {
+ XMLResource result = new ServerTypeResourceImpl(uri);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, extendedMetaData);
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, extendedMetaData);
+
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE);
+ result.getDefaultSaveOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE);
+
+ result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE);
+ return result;
+ }
+
+} //ServerTypeResourceFactoryImpl
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/util/ServerTypeResourceImpl.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/util/ServerTypeResourceImpl.java
new file mode 100644
index 0000000..d3030a2
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/util/ServerTypeResourceImpl.java
@@ -0,0 +1,58 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: ServerTypeResourceImpl.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.util;
+
+import org.eclipse.emf.common.util.URI;
+
+import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Resource </b> associated with the package.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.util.ServerTypeResourceFactoryImpl
+ * @generated
+ */
+public class ServerTypeResourceImpl extends XMLResourceImpl {
+ /**
+ * Creates an instance of the resource.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param uri the URI of the new resource.
+ * @generated
+ */
+ public ServerTypeResourceImpl(URI uri) {
+ super(uri);
+ }
+
+} //ServerTypeResourceFactoryImpl
diff --git a/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/util/ServerTypeSwitch.java b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/util/ServerTypeSwitch.java
new file mode 100644
index 0000000..b891eb7
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/src/org/eclipse/jst/server/generic/servertype/definition/util/ServerTypeSwitch.java
@@ -0,0 +1,366 @@
+/**
+ * <copyright>
+ *******************************************************************************
+ * 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
+ *
+ * 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/>.
+ ***************************************************************************
+ * </copyright>
+ *
+ * $Id: ServerTypeSwitch.java,v 1.1 2004/11/20 21:18:10 ndai Exp $
+ */
+package org.eclipse.jst.server.generic.servertype.definition.util;
+
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+
+import org.eclipse.jst.server.generic.servertype.definition.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * The <b>Switch</b> for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the <code>caseXXX</code> method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ * <!-- end-user-doc -->
+ * @see org.eclipse.jst.server.generic.servertype.definition.ServerTypePackage
+ * @generated
+ */
+public class ServerTypeSwitch {
+ /**
+ * The cached model package
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected static ServerTypePackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public ServerTypeSwitch() {
+ if (modelPackage == null) {
+ modelPackage = ServerTypePackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ public Object doSwitch(EObject theEObject) {
+ return doSwitch(theEObject.eClass(), theEObject);
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected Object doSwitch(EClass theEClass, EObject theEObject) {
+ if (theEClass.eContainer() == modelPackage) {
+ return doSwitch(theEClass.getClassifierID(), theEObject);
+ }
+ else {
+ List eSuperTypes = theEClass.getESuperTypes();
+ return
+ eSuperTypes.isEmpty() ?
+ defaultCase(theEObject) :
+ doSwitch((EClass)eSuperTypes.get(0), theEObject);
+ }
+ }
+
+ /**
+ * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the first non-null result returned by a <code>caseXXX</code> call.
+ * @generated
+ */
+ protected Object doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case ServerTypePackage.ARCHIVE_TYPE: {
+ ArchiveType archiveType = (ArchiveType)theEObject;
+ Object result = caseArchiveType(archiveType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ServerTypePackage.CLASSPATH: {
+ Classpath classpath = (Classpath)theEObject;
+ Object result = caseClasspath(classpath);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ServerTypePackage.LAUNCH_CONFIGURATION: {
+ LaunchConfiguration launchConfiguration = (LaunchConfiguration)theEObject;
+ Object result = caseLaunchConfiguration(launchConfiguration);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ServerTypePackage.MODULE: {
+ Module module = (Module)theEObject;
+ Object result = caseModule(module);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ServerTypePackage.PORT: {
+ Port port = (Port)theEObject;
+ Object result = casePort(port);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ServerTypePackage.PROJECT: {
+ Project project = (Project)theEObject;
+ Object result = caseProject(project);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ServerTypePackage.PROPERTY: {
+ Property property = (Property)theEObject;
+ Object result = caseProperty(property);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ServerTypePackage.PUBLISHER: {
+ Publisher publisher = (Publisher)theEObject;
+ Object result = casePublisher(publisher);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ServerTypePackage.PUBLISH_TYPE: {
+ PublishType publishType = (PublishType)theEObject;
+ Object result = casePublishType(publishType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ServerTypePackage.SERVER_RUNTIME: {
+ ServerRuntime serverRuntime = (ServerRuntime)theEObject;
+ Object result = caseServerRuntime(serverRuntime);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ case ServerTypePackage.UNPUBLISH_TYPE: {
+ UnpublishType unpublishType = (UnpublishType)theEObject;
+ Object result = caseUnpublishType(unpublishType);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
+ default: return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Archive Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpretting the object as an instance of '<em>Archive Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseArchiveType(ArchiveType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Classpath</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpretting the object as an instance of '<em>Classpath</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseClasspath(Classpath object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Launch Configuration</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpretting the object as an instance of '<em>Launch Configuration</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseLaunchConfiguration(LaunchConfiguration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Module</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpretting the object as an instance of '<em>Module</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseModule(Module object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Port</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpretting the object as an instance of '<em>Port</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object casePort(Port object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Project</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpretting the object as an instance of '<em>Project</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseProject(Project object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Property</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpretting the object as an instance of '<em>Property</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseProperty(Property object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Publisher</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpretting the object as an instance of '<em>Publisher</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object casePublisher(Publisher object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Publish Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpretting the object as an instance of '<em>Publish Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object casePublishType(PublishType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Server Runtime</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpretting the object as an instance of '<em>Server Runtime</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseServerRuntime(ServerRuntime object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>Unpublish Type</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpretting the object as an instance of '<em>Unpublish Type</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public Object caseUnpublishType(UnpublishType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpretting the object as an instance of '<em>EObject</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpretting the object as an instance of '<em>EObject</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ public Object defaultCase(EObject object) {
+ return null;
+ }
+
+} //ServerTypeSwitch
diff --git a/plugins/org.eclipse.jst.server.generic.core/xsd/ServerTypeDefinitionSchema.xsd b/plugins/org.eclipse.jst.server.generic.core/xsd/ServerTypeDefinitionSchema.xsd
new file mode 100644
index 0000000..db3de5a
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/xsd/ServerTypeDefinitionSchema.xsd
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://eclipse.org/jst/server/generic/ServerTypeDefinition"
+ xmlns:jst="http://eclipse.org/jst/server/generic/ServerTypeDefinition">
+
+
+
+ <complexType name="ServerRuntime">
+ <annotation>
+ <documentation>
+ Generic Server Type Definition. It must have a list of
+ properties.
+ </documentation>
+ </annotation>
+
+ <sequence minOccurs="1" maxOccurs="1">
+ <sequence minOccurs="0" maxOccurs="unbounded">
+ <element name="property" type="jst:Property"></element>
+ </sequence>
+
+ <sequence minOccurs="0" maxOccurs="unbounded">
+ <element name="port" type="jst:Port" />
+ </sequence>
+
+ <sequence minOccurs="1" maxOccurs="unbounded">
+ <element name="module" type="jst:Module" />
+ </sequence>
+ <element name="project" type="jst:Project"/>
+ <element name="start" type="jst:LaunchConfiguration" />
+ <element name="stop" type="jst:LaunchConfiguration" />
+
+ <sequence minOccurs="0" maxOccurs="unbounded">
+ <element name="publisher" type="jst:Publisher" />
+ </sequence>
+
+ <sequence minOccurs="1" maxOccurs="unbounded">
+ <element name="classpath" type="jst:Classpath" />
+ </sequence>
+ </sequence>
+
+ <attribute name="name" type="string" use="required" />
+ <attribute name="version" type="string"></attribute>
+ </complexType>
+
+ <complexType name="Property">
+ <attribute name="id" type="string" />
+ <attribute name="label" type="string" />
+ <attribute name="type" type="string" />
+ <attribute name="context" type="string" />
+ <attribute name="default" type="string" />
+ </complexType>
+
+ <complexType name="Module">
+ <sequence>
+ <element name="type" type="string" />
+ <element name="publishDir" type="string" />
+ <element name="publisherReference" type="string" />
+ </sequence>
+ </complexType>
+
+ <complexType name="LaunchConfiguration">
+ <sequence>
+ <element name="class" type="string" />
+ <element name="workingDirectory" type="string" />
+ <element name="programArguments" type="string" />
+ <element name="vmParameters" type="string" />
+ <element name="classpathReference" type="string" />
+ </sequence>
+ </complexType>
+
+ <complexType name="Port">
+ <sequence>
+ <element name="no" type="string" />
+ <element name="name" type="string" />
+ <element name="protocol" type="string" />
+ </sequence>
+ </complexType>
+
+ <complexType name="Classpath">
+ <sequence minOccurs="1" maxOccurs="unbounded">
+ <element name="archive">
+ <complexType>
+ <attribute name="path" type="string" />
+ </complexType>
+ </element>
+ </sequence>
+ <attribute name="id" type="string" />
+ <attribute name="isLibrary" type="boolean" use="optional" />
+ </complexType>
+
+ <complexType name="Publisher">
+ <sequence minOccurs="1" maxOccurs="unbounded">
+ <element name="publish">
+
+ <complexType>
+ <sequence>
+ <element name="task" type="string" />
+ <element name="classpathReference"
+ type="string" />
+ </sequence>
+ </complexType>
+ </element>
+ <element name="unpublish">
+ <complexType>
+ <sequence>
+ <element name="task" type="string" />
+ <element name="classpathReference" type="string" />
+ </sequence>
+ </complexType>
+ </element>
+ </sequence>
+ <attribute name="id" type="string" />
+ </complexType>
+
+ <complexType name="Project">
+ <sequence minOccurs="1" maxOccurs="1">
+ <element name="classpathReference" type="string"></element>
+ </sequence>
+ </complexType>
+
+</schema>
diff --git a/plugins/org.eclipse.jst.server.generic.core/xsd/org.eclipse.jst.server.generic.servertype.ecore b/plugins/org.eclipse.jst.server.generic.core/xsd/org.eclipse.jst.server.generic.servertype.ecore
new file mode 100644
index 0000000..582ec37
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/xsd/org.eclipse.jst.server.generic.servertype.ecore
@@ -0,0 +1,400 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ecore:EPackage xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="definition"
+ nsURI="http://eclipse.org/jst/server/generic/ServerTypeDefinition" nsPrefix="definition">
+ <eClassifiers xsi:type="ecore:EClass" name="ArchiveType">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="archive_._type"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="path" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="path"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Classpath">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="Classpath"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="group" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="group"/>
+ <details key="name" value="group:0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="archive" lowerBound="1"
+ upperBound="-1" eType="#//ArchiveType" volatile="true" transient="true" derived="true"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="archive"/>
+ <details key="group" value="#group:0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="id"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="isLibrary" unique="false"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean"
+ unsettable="true">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="isLibrary"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="LaunchConfiguration">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="LaunchConfiguration"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="class" unique="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="class"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="workingDirectory" unique="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="workingDirectory"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="programArguments" unique="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="programArguments"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="vmParameters" unique="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="vmParameters"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classpathReference" unique="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="classpathReference"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Module">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="Module"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" unique="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="type"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="publishDir" unique="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="publishDir"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="publisherReference" unique="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="publisherReference"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Port">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="Port"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="no" unique="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="no"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="protocol" unique="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="protocol"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Project">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="Project"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classpathReference" unique="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="classpathReference"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Property">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="Property"/>
+ <details key="kind" value="empty"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="context" unique="false"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="context"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" unique="false"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="default"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="id"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="label" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="label"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="type"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="Publisher">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="Publisher"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="group" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="group"/>
+ <details key="name" value="group:0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="publish" lowerBound="1"
+ upperBound="-1" eType="#//PublishType" volatile="true" transient="true" derived="true"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="publish"/>
+ <details key="group" value="#group:0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="unpublish" lowerBound="1"
+ upperBound="-1" eType="#//UnpublishType" volatile="true" transient="true"
+ derived="true" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="unpublish"/>
+ <details key="group" value="#group:0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="id"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="PublishType">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="publish_._type"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="task" unique="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="task"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classpathReference" unique="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="classpathReference"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="ServerRuntime">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="
				Generic Server Type Definition. It must have a list of
				properties.
			"/>
+ </eAnnotations>
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="ServerRuntime"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="group" unique="false" upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="group"/>
+ <details key="name" value="group:0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="property" upperBound="-1"
+ eType="#//Property" volatile="true" transient="true" derived="true" containment="true"
+ resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="property"/>
+ <details key="group" value="#group:0"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="group1" unique="false"
+ upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="group"/>
+ <details key="name" value="group:2"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="port" upperBound="-1" eType="#//Port"
+ volatile="true" transient="true" derived="true" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="port"/>
+ <details key="group" value="#group:2"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="group2" unique="false"
+ upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="group"/>
+ <details key="name" value="group:4"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="module" lowerBound="1"
+ upperBound="-1" eType="#//Module" volatile="true" transient="true" derived="true"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="module"/>
+ <details key="group" value="#group:4"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="project" lowerBound="1"
+ eType="#//Project" containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="project"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="start" lowerBound="1" eType="#//LaunchConfiguration"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="start"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="stop" lowerBound="1" eType="#//LaunchConfiguration"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="stop"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="group3" unique="false"
+ upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="group"/>
+ <details key="name" value="group:9"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="publisher" upperBound="-1"
+ eType="#//Publisher" volatile="true" transient="true" derived="true" containment="true"
+ resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="publisher"/>
+ <details key="group" value="#group:9"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="group4" unique="false"
+ upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="group"/>
+ <details key="name" value="group:11"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EReference" name="classpath" lowerBound="1"
+ upperBound="-1" eType="#//Classpath" volatile="true" transient="true" derived="true"
+ containment="true" resolveProxies="false">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="classpath"/>
+ <details key="group" value="#group:11"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="name"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" unique="false"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="attribute"/>
+ <details key="name" value="version"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="UnpublishType">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="name" value="unpublish_._type"/>
+ <details key="kind" value="elementOnly"/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="task" unique="false" lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="task"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="classpathReference" unique="false"
+ lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
+ <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
+ <details key="kind" value="element"/>
+ <details key="name" value="classpathReference"/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+</ecore:EPackage>
diff --git a/plugins/org.eclipse.jst.server.generic.core/xsd/servertype.genmodel b/plugins/org.eclipse.jst.server.generic.core/xsd/servertype.genmodel
new file mode 100644
index 0000000..c042602
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/xsd/servertype.genmodel
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<genmodel:GenModel xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/org.eclipse.jst.server.generic.model/src"
+ editDirectory="/org.eclipse.jst.server.generic.model.edit/src" editorDirectory="/org.eclipse.jst.server.generic.model.editor/src"
+ modelPluginID="org.eclipse.jst.server.generic.model" runtimeJar="true" modelName="Servertype"
+ editPluginClass="org.eclipse.jst.server.generic.server.type.definition.provider.ServertypeEditPlugin"
+ editorPluginClass="org.eclipse.jst.server.generic.server.type.definition.presentation.ServertypeEditorPlugin"
+ runtimeCompatibility="false">
+ <foreignModel>ServerTypeDefinitionSchema.xsd</foreignModel>
+ <genPackages prefix="ServerType" basePackage="org.eclipse.jst.server.generic.servertype"
+ resource="XML" ecorePackage="org.eclipse.jst.server.generic.servertype.ecore#/">
+ <genClasses ecoreClass="org.eclipse.jst.server.generic.servertype.ecore#//ArchiveType">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//ArchiveType/path"/>
+ </genClasses>
+ <genClasses ecoreClass="org.eclipse.jst.server.generic.servertype.ecore#//Classpath">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Classpath/group"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference org.eclipse.jst.server.generic.servertype.ecore#//Classpath/archive"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Classpath/id"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Classpath/isLibrary"/>
+ </genClasses>
+ <genClasses ecoreClass="org.eclipse.jst.server.generic.servertype.ecore#//LaunchConfiguration">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//LaunchConfiguration/class"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//LaunchConfiguration/workingDirectory"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//LaunchConfiguration/programArguments"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//LaunchConfiguration/vmParameters"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//LaunchConfiguration/classpathReference"/>
+ </genClasses>
+ <genClasses ecoreClass="org.eclipse.jst.server.generic.servertype.ecore#//Module">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Module/type"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Module/publishDir"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Module/publisherReference"/>
+ </genClasses>
+ <genClasses ecoreClass="org.eclipse.jst.server.generic.servertype.ecore#//Port">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Port/no"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Port/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Port/protocol"/>
+ </genClasses>
+ <genClasses ecoreClass="org.eclipse.jst.server.generic.servertype.ecore#//Project">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Project/classpathReference"/>
+ </genClasses>
+ <genClasses ecoreClass="org.eclipse.jst.server.generic.servertype.ecore#//Property">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Property/context"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Property/default"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Property/id"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Property/label"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Property/type"/>
+ </genClasses>
+ <genClasses ecoreClass="org.eclipse.jst.server.generic.servertype.ecore#//Publisher">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Publisher/group"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference org.eclipse.jst.server.generic.servertype.ecore#//Publisher/publish"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference org.eclipse.jst.server.generic.servertype.ecore#//Publisher/unpublish"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//Publisher/id"/>
+ </genClasses>
+ <genClasses ecoreClass="org.eclipse.jst.server.generic.servertype.ecore#//PublishType">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//PublishType/task"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//PublishType/classpathReference"/>
+ </genClasses>
+ <genClasses ecoreClass="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime">
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/group"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/property"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/group1"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/port"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/group2"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/module"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/project"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/start"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/stop"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/group3"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/publisher"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/group4"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/classpath"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/name"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/version"/>
+ </genClasses>
+ <genClasses ecoreClass="org.eclipse.jst.server.generic.servertype.ecore#//UnpublishType">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//UnpublishType/task"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute org.eclipse.jst.server.generic.servertype.ecore#//UnpublishType/classpathReference"/>
+ </genClasses>
+ </genPackages>
+</genmodel:GenModel>
diff --git a/plugins/org.eclipse.jst.server.generic.core/xsd/servertype.xsd2ecore b/plugins/org.eclipse.jst.server.generic.core/xsd/servertype.xsd2ecore
new file mode 100644
index 0000000..999e4e4
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.core/xsd/servertype.xsd2ecore
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="ASCII"?>
+<xsd2ecore:XSD2EcoreMappingRoot xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI" xmlns:xsd2ecore="http://www.eclipse.org/emf/2002/XSD2Ecore" inputs="ServerTypeDefinitionSchema.xsd#/"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#/" topToBottom="true">
+ <nested inputs="bundleentry://175/cache/www.w3.org/2001/XMLSchema.xsd#//string;XSDSimpleTypeDefinition=7"
+ outputs="http://www.eclipse.org/emf/2003/XMLType#//String"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Classpath;XSDComplexTypeDefinition=5/XSDParticle/XSDModelGroup/XSDParticle/archive;XSDElementDeclaration/XSDComplexTypeDefinition"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ArchiveType">
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Classpath;XSDComplexTypeDefinition=5/XSDParticle/XSDModelGroup/XSDParticle/archive;XSDElementDeclaration/XSDComplexTypeDefinition/XSDAttributeUse"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ArchiveType/path"/>
+ </nested>
+ <nested inputs="bundleentry://175/cache/www.w3.org/2001/XMLSchema.xsd#//boolean;XSDSimpleTypeDefinition=8"
+ outputs="http://www.eclipse.org/emf/2003/XMLType#//Boolean"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Classpath;XSDComplexTypeDefinition=5"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Classpath">
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Classpath;XSDComplexTypeDefinition=5/XSDParticle"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Classpath/group"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Classpath;XSDComplexTypeDefinition=5/XSDParticle/XSDModelGroup/XSDParticle"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Classpath/archive"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Classpath;XSDComplexTypeDefinition=5/XSDAttributeUse"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Classpath/id"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Classpath;XSDComplexTypeDefinition=5/XSDAttributeUse=1"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Classpath/isLibrary"/>
+ </nested>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//LaunchConfiguration;XSDComplexTypeDefinition=3"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//LaunchConfiguration">
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//LaunchConfiguration;XSDComplexTypeDefinition=3/XSDParticle/XSDModelGroup/XSDParticle"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//LaunchConfiguration/class"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//LaunchConfiguration;XSDComplexTypeDefinition=3/XSDParticle/XSDModelGroup/XSDParticle=1"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//LaunchConfiguration/workingDirectory"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//LaunchConfiguration;XSDComplexTypeDefinition=3/XSDParticle/XSDModelGroup/XSDParticle=2"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//LaunchConfiguration/programArguments"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//LaunchConfiguration;XSDComplexTypeDefinition=3/XSDParticle/XSDModelGroup/XSDParticle=3"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//LaunchConfiguration/vmParameters"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//LaunchConfiguration;XSDComplexTypeDefinition=3/XSDParticle/XSDModelGroup/XSDParticle=4"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//LaunchConfiguration/classpathReference"/>
+ </nested>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Module;XSDComplexTypeDefinition=2"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Module">
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Module;XSDComplexTypeDefinition=2/XSDParticle/XSDModelGroup/XSDParticle"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Module/type"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Module;XSDComplexTypeDefinition=2/XSDParticle/XSDModelGroup/XSDParticle=1"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Module/publishDir"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Module;XSDComplexTypeDefinition=2/XSDParticle/XSDModelGroup/XSDParticle=2"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Module/publisherReference"/>
+ </nested>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Port;XSDComplexTypeDefinition=4"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Port">
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Port;XSDComplexTypeDefinition=4/XSDParticle/XSDModelGroup/XSDParticle"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Port/no"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Port;XSDComplexTypeDefinition=4/XSDParticle/XSDModelGroup/XSDParticle=1"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Port/name"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Port;XSDComplexTypeDefinition=4/XSDParticle/XSDModelGroup/XSDParticle=2"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Port/protocol"/>
+ </nested>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Project;XSDComplexTypeDefinition=7"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Project">
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Project;XSDComplexTypeDefinition=7/XSDParticle/XSDModelGroup/XSDParticle"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Project/classpathReference"/>
+ </nested>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Property;XSDComplexTypeDefinition=1"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Property">
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Property;XSDComplexTypeDefinition=1/XSDAttributeUse=3"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Property/context"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Property;XSDComplexTypeDefinition=1/XSDAttributeUse=4"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Property/default"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Property;XSDComplexTypeDefinition=1/XSDAttributeUse"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Property/id"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Property;XSDComplexTypeDefinition=1/XSDAttributeUse=1"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Property/label"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Property;XSDComplexTypeDefinition=1/XSDAttributeUse=2"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Property/type"/>
+ </nested>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Publisher;XSDComplexTypeDefinition=6/XSDParticle/XSDModelGroup/XSDParticle/publish;XSDElementDeclaration/XSDComplexTypeDefinition"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//PublishType">
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Publisher;XSDComplexTypeDefinition=6/XSDParticle/XSDModelGroup/XSDParticle/publish;XSDElementDeclaration/XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//PublishType/task"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Publisher;XSDComplexTypeDefinition=6/XSDParticle/XSDModelGroup/XSDParticle/publish;XSDElementDeclaration/XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle=1"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//PublishType/classpathReference"/>
+ </nested>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Publisher;XSDComplexTypeDefinition=6/XSDParticle/XSDModelGroup/XSDParticle=1/unpublish;XSDElementDeclaration/XSDComplexTypeDefinition"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//UnpublishType">
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Publisher;XSDComplexTypeDefinition=6/XSDParticle/XSDModelGroup/XSDParticle=1/unpublish;XSDElementDeclaration/XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//UnpublishType/task"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Publisher;XSDComplexTypeDefinition=6/XSDParticle/XSDModelGroup/XSDParticle=1/unpublish;XSDElementDeclaration/XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle=1"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//UnpublishType/classpathReference"/>
+ </nested>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Publisher;XSDComplexTypeDefinition=6"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Publisher">
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Publisher;XSDComplexTypeDefinition=6/XSDParticle"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Publisher/group"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Publisher;XSDComplexTypeDefinition=6/XSDParticle/XSDModelGroup/XSDParticle"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Publisher/publish"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Publisher;XSDComplexTypeDefinition=6/XSDParticle/XSDModelGroup/XSDParticle=1"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Publisher/unpublish"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//Publisher;XSDComplexTypeDefinition=6/XSDAttributeUse"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//Publisher/id"/>
+ </nested>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//ServerRuntime;XSDComplexTypeDefinition"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime">
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//ServerRuntime;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/group"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//ServerRuntime;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle/XSDModelGroup/XSDParticle"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/property"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//ServerRuntime;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle=1"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/group1"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//ServerRuntime;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle=1/XSDModelGroup/XSDParticle"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/port"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//ServerRuntime;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle=2"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/group2"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//ServerRuntime;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle=2/XSDModelGroup/XSDParticle"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/module"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//ServerRuntime;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle=3"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/project"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//ServerRuntime;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle=4"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/start"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//ServerRuntime;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle=5"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/stop"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//ServerRuntime;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle=6"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/group3"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//ServerRuntime;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle=6/XSDModelGroup/XSDParticle"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/publisher"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//ServerRuntime;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle=7"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/group4"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//ServerRuntime;XSDComplexTypeDefinition/XSDParticle/XSDModelGroup/XSDParticle=7/XSDModelGroup/XSDParticle"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/classpath"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//ServerRuntime;XSDComplexTypeDefinition/XSDAttributeUse"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/name"/>
+ <nested inputs="ServerTypeDefinitionSchema.xsd#//ServerRuntime;XSDComplexTypeDefinition/XSDAttributeUse=1"
+ outputs="org.eclipse.jst.server.generic.servertype.ecore#//ServerRuntime/version"/>
+ </nested>
+</xsd2ecore:XSD2EcoreMappingRoot>
diff --git a/plugins/org.eclipse.jst.server.generic.ui/.classpath b/plugins/org.eclipse.jst.server.generic.ui/.classpath
new file mode 100644
index 0000000..065ac06
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/.classpath
@@ -0,0 +1,7 @@
+<?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
new file mode 100644
index 0000000..058a1b7
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/.cvsignore
@@ -0,0 +1,5 @@
+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
new file mode 100644
index 0000000..af14ba8
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/.project
@@ -0,0 +1,28 @@
+<?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
new file mode 100644
index 0000000..6b4a2a0
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/build.properties
@@ -0,0 +1,10 @@
+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
new file mode 100644
index 0000000..5b3a198
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/icons/obj16/lomboz.gif
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
new file mode 100644
index 0000000..854d525
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/icons/wizban/logo.gif
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
new file mode 100644
index 0000000..8a61dcb
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/plugin.properties
@@ -0,0 +1,4 @@
+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
new file mode 100644
index 0000000..fe94808
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/plugin.xml
@@ -0,0 +1,103 @@
+<?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.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" />
+ <import plugin="org.eclipse.jst.server.core"/>
+ <import plugin="org.eclipse.emf"/>
+ <import plugin="org.eclipse.emf.ecore"/>
+ <import plugin="org.eclipse.emf.ecore.xmi"/>
+ </requires>
+
+ <extension
+ point="org.eclipse.wst.server.ui.wizardFragments">
+ <fragment
+ id="org.eclipse.jst.server.generic.runtime"
+ typeIds="org.eclipse.jst.server.generic.runtime"
+ class="org.eclipse.jst.server.generic.internal.ui.GenericServerRuntimeWizardFragment"/>
+ </extension>
+
+<extension
+ point="org.eclipse.wst.server.ui.wizardFragments">
+ <fragment
+ id="org.eclipse.jst.server.generic.server"
+ typeIds="org.eclipse.jst.server.generic"
+ class="org.eclipse.jst.server.generic.internal.ui.GenericServerWizardFragment"/>
+ </extension>
+ <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.internal.ui.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.internal.ui.GenericServerEditorSectionFactory"/>
+ <!-- <section
+ id="org.eclipse.jst.server.tomcat.configuration.editor.port"
+ order="10"
+ insertionId="org.eclipse.wst.server.editor.overview.right"
+ typeIds="org.eclipse.jst.server.tomcat.*"
+ class="org.eclipse.jst.server.tomcat.ui.internal.editor.ConfigurationPortEditorSectionFactory"/>
+ <section
+ id="org.eclipse.jst.server.tomcat.configuration.editor.mime"
+ order="20"
+ insertionId="org.eclipse.wst.server.editor.overview.right"
+ typeIds="org.eclipse.jst.server.tomcat.*"
+ class="org.eclipse.jst.server.tomcat.ui.internal.editor.ConfigurationMimeEditorSectionFactory"/>
+ -->
+ </extension>
+ <extension point="org.eclipse.wst.server.ui.serverImages">
+ <image
+ id="org.eclipse.jst.server.generic.image"
+ icon="icons/obj16/lomboz.gif"
+ typeIds="org.eclipse.jst.server.generic.runtime"/>
+ <image
+ id="org.eclipse.jst.server.generic.image"
+ icon="icons/obj16/lomboz.gif"
+ typeIds="org.eclipse.jst.server.generic"/>
+ </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.internal.ui.launchConfigurationTabGroup"
+ type="org.eclipse.jst.server.generic.core.launchConfigurationType"
+ class="org.eclipse.jst.server.generic.internal.ui.GenericLaunchConfigurationTabGroup">
+ </launchConfigurationTabGroup>
+ </extension>
+
+
+</plugin>
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/internal/ui/GenericLaunchConfigurationTabGroup.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/internal/ui/GenericLaunchConfigurationTabGroup.java
new file mode 100644
index 0000000..b217b1f
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/internal/ui/GenericLaunchConfigurationTabGroup.java
@@ -0,0 +1,66 @@
+/*******************************************************************************
+ * 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.internal.ui;
+
+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/internal/ui/GenericServerEditorPartFactory.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/internal/ui/GenericServerEditorPartFactory.java
new file mode 100644
index 0000000..9d7d80c
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/internal/ui/GenericServerEditorPartFactory.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * 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.internal.ui;
+
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.IServerConfiguration;
+import org.eclipse.wst.server.ui.editor.IServerEditorPartFactoryDelegate;
+
+
+public class GenericServerEditorPartFactory implements
+ IServerEditorPartFactoryDelegate {
+
+ /* (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,
+ IServerConfiguration configuration) {
+ // 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/internal/ui/GenericServerEditorSectionFactory.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/internal/ui/GenericServerEditorSectionFactory.java
new file mode 100644
index 0000000..f1ba87f
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/internal/ui/GenericServerEditorSectionFactory.java
@@ -0,0 +1,58 @@
+package org.eclipse.jst.server.generic.internal.ui;
+/*******************************************************************************
+ * 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.core.IServerConfiguration;
+import org.eclipse.wst.server.ui.editor.IServerEditorPageSectionFactoryDelegate;
+import org.eclipse.wst.server.ui.editor.IServerEditorSection;
+
+public class GenericServerEditorSectionFactory implements
+ IServerEditorPageSectionFactoryDelegate {
+
+ /* (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,
+ IServerConfiguration configuration) {
+ // 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/internal/ui/GenericServerRuntimeWizardFragment.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/internal/ui/GenericServerRuntimeWizardFragment.java
new file mode 100644
index 0000000..4264cc6
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/internal/ui/GenericServerRuntimeWizardFragment.java
@@ -0,0 +1,284 @@
+/*******************************************************************************
+ * 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.internal.ui;
+
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.dialogs.IMessageProvider;
+import org.eclipse.jst.server.generic.internal.core.GenericServerRuntime;
+import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
+import org.eclipse.jst.server.generic.ui.GenericServerUIMessages;
+import org.eclipse.swt.SWT;
+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.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.wst.server.core.IElement;
+import org.eclipse.wst.server.core.IResourceManager;
+import org.eclipse.wst.server.core.IRuntimeType;
+import org.eclipse.wst.server.core.IRuntimeWorkingCopy;
+import org.eclipse.wst.server.core.ITaskModel;
+import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.ui.wizard.IWizardHandle;
+
+/**
+ * A serverDefinitionType aware wizard for defining runtimes.
+ *
+ * @author Gorkem Ercan
+ */
+public class GenericServerRuntimeWizardFragment extends ServerDefinitionTypeAwareWizardFragment {
+
+
+ private Group selectionBar;
+ private Combo fServerCombo;
+ private ServerTypeDefinitionGroup fServerPanel;
+ private IRuntimeWorkingCopy fRuntimeWC;
+ private Map fServerRuntimeProperties;
+ private String fSelectedServerType;
+
+
+ /**
+ * Constructor
+ */
+ public GenericServerRuntimeWizardFragment() {
+ super();
+ }
+ /* (non-Javadoc)
+ * @see com.ibm.wtp.server.ui.wizard.IWizardFragment#isComplete()
+ */
+ public boolean isComplete() {
+ IRuntimeWorkingCopy runtime = getRuntimeWorkingCopy();
+ if (runtime == null)
+ return false;
+ IStatus status = runtime.validate();
+ return (status != null && status.isOK());
+ }
+
+ public void createContent(Composite parent, IWizardHandle handle) {
+ fRuntimeWC=null;
+ createSelectionBar(parent);
+ createServerDefinitionTypeComposite(parent);
+ }
+
+
+ private void swapBody()
+ {
+ this.fRuntimeWC=null;
+ String selected = fServerCombo == null ? null : fServerCombo
+ .getItem(fServerCombo.getSelectionIndex());
+ Map properties = null;
+ ServerRuntime definition = getServerTypeDefinition(selected,properties);
+ fServerPanel.reset(definition,ServerTypeDefinitionGroup.CONTEXT_RUNTIME, properties);
+ }
+ /**
+ * @param selected
+ */
+ private void createServerDefinitionTypeComposite(Composite parent) {
+ String selected = fServerCombo==null?null:fServerCombo.getItem(fServerCombo.getSelectionIndex());
+ if(getServerDefinitionId()!=null)
+ selected=getServerDefinitionId();
+ Map properties= null;
+ if(getRuntimeWorkingCopy()!=null)
+ properties = getRuntimeWorkingCopy().getAttribute(GenericServerRuntime.SERVER_INSTANCE_PROPERTIES,(Map)null);
+ ServerRuntime definition = getServerTypeDefinition(selected,properties);
+ fServerPanel = new ServerTypeDefinitionGroup(this,definition,ServerTypeDefinitionGroup.CONTEXT_RUNTIME,properties,parent);
+ }
+ private void createSelectionBar(Composite content) {
+ selectionBar = new Group(content, SWT.SHADOW_ETCHED_IN);
+ selectionBar.setLayout(new GridLayout(2,false));
+ selectionBar.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ Label label = new Label(selectionBar, SWT.NONE);
+ label.setText(GenericServerUIMessages.getString("runtimeWizard.label.serverType"));
+ label.setLayoutData(new GridData());
+ fServerCombo = new Combo(selectionBar, SWT.BORDER |SWT.READ_ONLY);
+ ServerRuntime[] servers = getAllServerDefinitionTypes();
+ for(int i=0; i<servers.length; i++){
+ fServerCombo.add(servers[i].getName());
+ }
+ fServerCombo.setLayoutData(new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL));
+ if(fServerCombo.getItemCount()>0)
+ {
+ if(getServerDefinitionId()!=null)
+ {
+ selectServerDefinition();
+ }
+ fServerCombo.select(0);
+ }
+ fServerCombo.addSelectionListener(
+ new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ swapBody();
+ serverDefinitionTypePropertiesChanged();
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {}
+ }
+ );
+ }
+
+
+ private String getServerDefinitionId()
+ {
+ String currentDefinition= null;
+ if(getRuntimeWorkingCopy()!=null)
+ currentDefinition = getRuntimeWorkingCopy().getAttribute(GenericServerRuntime.SERVER_DEFINITION_ID,"");
+ if(currentDefinition!= null && currentDefinition.length()>0)
+ {
+ return currentDefinition;
+ }
+ return null;
+ }
+
+ private void selectServerDefinition()
+ {
+ String currentDefinition = getServerDefinitionId();
+ int selectIndex = 0;
+ if(currentDefinition != null)
+ {
+ selectIndex = fServerCombo.indexOf(currentDefinition);
+ if(selectIndex<0)
+ selectIndex =0;
+ }
+ fServerCombo.select(selectIndex);
+ }
+
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.server.ui.wizard.IWizardFragment#enter()
+ */
+ public void enter() {
+ String serverDefinition = getServerDefinitionId();
+ if(serverDefinition!=null && serverDefinition.length()>0)
+ {
+ selectServerDefinition();
+ Map properties = null;
+ if (getRuntimeWorkingCopy() != null) {
+ properties = getRuntimeWorkingCopy().getAttribute(GenericServerRuntime.SERVER_INSTANCE_PROPERTIES,(Map) null);
+ }
+ ServerRuntime definition = getServerTypeDefinition(serverDefinition,properties);
+ fServerPanel.reset(definition,ServerTypeDefinitionGroup.CONTEXT_RUNTIME, properties);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.wst.server.ui.wizard.IWizardFragment#exit()
+ */
+ public void exit() {
+
+ fRuntimeWC=null;
+ }
+ protected String getSelectedServerType(){
+ return fSelectedServerType;
+ }
+ protected Map getServerRuntimeProperties(){
+ return fServerRuntimeProperties;
+ }
+
+ private String createName()
+ {
+ String selected = getSelectedServerType();
+ IRuntimeWorkingCopy wc = getRuntimeWorkingCopy();
+ IRuntimeType runtimeType = wc.getRuntimeType();
+ String name = GenericServerUIMessages.getFormattedString("runtimeName", new String[] {selected,runtimeType.getName()});
+
+ IResourceManager rm = ServerCore.getResourceManager();
+ List list = rm.getRuntimes(runtimeType);
+ Iterator iterator = list.iterator();
+ int suffix = 1;
+ String suffixName=name;
+ while(iterator.hasNext())
+ {
+
+ IElement el = (IElement)iterator.next();
+ if(el.getName().equals(name)|| el.getName().equals(suffixName))
+ suffix++;
+ suffixName= name+" "+suffix;
+ }
+
+ if(suffix>1)
+ return suffixName;
+ return name;
+ }
+
+ private IRuntimeWorkingCopy getRuntimeWorkingCopy()
+ {
+ if(fRuntimeWC == null)
+ fRuntimeWC = (IRuntimeWorkingCopy)getTaskModel().getObject(ITaskModel.TASK_RUNTIME);
+ return fRuntimeWC;
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.server.generic.internal.ui.ServerDefinitionTypeAwareWizardFragment#description()
+ */
+ public String description() {
+ return GenericServerUIMessages.getString("runtimeWizardDescription");
+ }
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.server.generic.internal.ui.ServerDefinitionTypeAwareWizardFragment#title()
+ */
+ public String title() {
+ return GenericServerUIMessages.getString("runtimeWizardTitle");
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.server.generic.internal.ui.ServerDefinitionTypeAwareWizardFragment#serverDefinitionTypePropertiesChanged()
+ */
+ public void serverDefinitionTypePropertiesChanged() {
+ fSelectedServerType = fServerCombo.getItem(fServerCombo.getSelectionIndex());
+ fServerRuntimeProperties = fServerPanel.getProperties();
+ String selected = getSelectedServerType();
+ Map properties = getServerRuntimeProperties();
+ IRuntimeWorkingCopy wc = getRuntimeWorkingCopy();
+ wc.setAttribute(GenericServerRuntime.SERVER_DEFINITION_ID, selected);
+ wc.setAttribute(GenericServerRuntime.SERVER_INSTANCE_PROPERTIES,properties);
+ wc.setName(createName());
+ validate();
+ }
+
+ private void validate()
+ {
+ if (getRuntimeWorkingCopy() == null) {
+ this.getWizard().setMessage("", IMessageProvider.ERROR);
+ return;
+ }
+ IStatus status = getRuntimeWorkingCopy().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/internal/ui/GenericServerWizardFragment.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/internal/ui/GenericServerWizardFragment.java
new file mode 100644
index 0000000..c2fb95f
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/internal/ui/GenericServerWizardFragment.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * 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.internal.ui;
+
+import java.util.Map;
+import org.eclipse.jst.server.generic.internal.core.GenericServerRuntime;
+import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
+import org.eclipse.jst.server.generic.ui.GenericServerUIMessages;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.wst.server.core.IRuntime;
+import org.eclipse.wst.server.core.IServerWorkingCopy;
+import org.eclipse.wst.server.core.ITaskModel;
+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) {
+
+ IRuntime runtime = server.getRuntime();
+ if(runtime==null){
+ runtime= (IRuntime)getTaskModel().getObject(ITaskModel.TASK_RUNTIME);
+ }
+ String id = runtime.getAttribute(GenericServerRuntime.SERVER_DEFINITION_ID,(String)null);
+ if(id==null){
+ return null;
+ }
+ Map runtimeProperties = server.getRuntime().getAttribute(GenericServerRuntime.SERVER_INSTANCE_PROPERTIES,(Map)null);
+ ServerRuntime definition = getServerTypeDefinition(id,runtimeProperties);
+ return definition;
+ }
+
+ /**
+ * @return
+ */
+ private IServerWorkingCopy getServer() {
+ IServerWorkingCopy server = (IServerWorkingCopy)getTaskModel().getObject(ITaskModel.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() {
+ return GenericServerUIMessages.getString("serverWizardDescription");
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jst.server.generic.internal.ui.ServerDefinitionTypeAwareWizardFragment#title()
+ */
+ public String title() {
+ return GenericServerUIMessages.getString("serverWizardTitle");
+ }
+
+ /* (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()}));
+ serverWorkingCopy.setAttribute(GenericServerRuntime.SERVER_INSTANCE_PROPERTIES,getServerProperties());
+ }
+}
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/internal/ui/ServerDefinitionTypeAwareWizardFragment.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/internal/ui/ServerDefinitionTypeAwareWizardFragment.java
new file mode 100644
index 0000000..2b8413c
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/internal/ui/ServerDefinitionTypeAwareWizardFragment.java
@@ -0,0 +1,73 @@
+/*
+ * 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.internal.ui;
+
+import java.util.Map;
+import org.eclipse.jst.server.generic.core.CorePlugin;
+import org.eclipse.jst.server.generic.servertype.definition.ServerRuntime;
+import org.eclipse.jst.server.generic.ui.GenericUiPlugin;
+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/internal/ui/ServerTypeDefinitionGroup.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/internal/ui/ServerTypeDefinitionGroup.java
new file mode 100644
index 0000000..f899b23
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/internal/ui/ServerTypeDefinitionGroup.java
@@ -0,0 +1,331 @@
+/*******************************************************************************
+ * 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.internal.ui;
+
+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.Control;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+
+
+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 Group fDefinitionGroup;
+ 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) {
+
+ fDefinitionGroup = new Group(parent, SWT.SHADOW_ETCHED_IN);
+ fDefinitionGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
+ fDefinitionGroup.setLayout(new GridLayout(3,false));
+ if(fServerTypeDefinition!=null)
+ {
+ fDefinitionGroup.setText(fServerTypeDefinition.getName());
+
+ createPropertyControls(fDefinitionGroup);
+ }
+ }
+ /**
+ * @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 = new Button(defPanel, SWT.PUSH);
+ fButton.setText("...");
+ fButton.setLayoutData(new GridData());
+ fButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ FileDialog dlg = new FileDialog(fDefinitionGroup.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 = new Button(parent, SWT.PUSH);
+ fButton.setText("...");
+ fButton.setLayoutData(new GridData());
+ fButton.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ DirectoryDialog dlg = new DirectoryDialog(fDefinitionGroup.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.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/GenericServerUIMessages.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/GenericServerUIMessages.java
new file mode 100644
index 0000000..b1a5537
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/GenericServerUIMessages.java
@@ -0,0 +1,63 @@
+package org.eclipse.jst.server.generic.ui;
+
+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.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/GenericServerUIMessages.properties b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/GenericServerUIMessages.properties
new file mode 100644
index 0000000..e9a164b
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/GenericServerUIMessages.properties
@@ -0,0 +1,7 @@
+serverWizardTitle=New Generic Server
+serverWizardDescription=Create a new server of the selected server type
+runtimeWizardTitle=New Generic Server Runtime
+runtimeWizardDescription=Define a new Generic Runtime for your server type
+runtimeWizard.label.serverType=Server types:
+serverName = {0}(Generic)
+runtimeName= {0}({1})
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/GenericUiPlugin.java b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/GenericUiPlugin.java
new file mode 100644
index 0000000..0de4415
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.generic.ui/src/org/eclipse/jst/server/generic/ui/GenericUiPlugin.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * 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;
+
+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;
+ }
+}