diff --git a/plugins/org.eclipse.jst.server.websphere.core/.classpath b/plugins/org.eclipse.jst.server.websphere.core/.classpath
new file mode 100644
index 0000000..065ac06
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.websphere.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.websphere.core/.cvsignore b/plugins/org.eclipse.jst.server.websphere.core/.cvsignore
new file mode 100644
index 0000000..ba077a4
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.websphere.core/.cvsignore
@@ -0,0 +1 @@
+bin
diff --git a/plugins/org.eclipse.jst.server.websphere.core/.project b/plugins/org.eclipse.jst.server.websphere.core/.project
new file mode 100644
index 0000000..83cf217
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.websphere.core/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.jst.server.websphere.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.websphere.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.server.websphere.core/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..f35aa2c
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.websphere.core/META-INF/MANIFEST.MF
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: WebSphere Generic Server Definition Core Plug-in
+Bundle-SymbolicName: org.eclipse.jst.server.websphere.core; singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Activator: org.eclipse.jst.server.websphere.core.CorePlugin
+Bundle-Vendor: Eclipse.org
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.debug.core,
+ org.eclipse.jdt.core,
+ org.eclipse.jdt.launching,
+ org.eclipse.wst.server.core,
+ org.eclipse.jst.server.core,
+ org.eclipse.jst.j2ee,
+ org.eclipse.jst.j2ee.core,
+ org.eclipse.jst.j2ee.web,
+ org.eclipse.jst.server.generic.core,
+ org.eclipse.jst.server.generic.ui,
+ org.eclipse.emf.ecore.xmi,
+ org.eclipse.wst.common.modulecore,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources
+Eclipse-AutoStart: true
diff --git a/plugins/org.eclipse.jst.server.websphere.core/build.properties b/plugins/org.eclipse.jst.server.websphere.core/build.properties
new file mode 100644
index 0000000..19643be
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.websphere.core/build.properties
@@ -0,0 +1,9 @@
+bin.includes = META-INF/,\
+               serverdef/
+               .
+bin.excludes = bin/**,\
+               @dot/**,\
+               temp.folder/**
+src.includes = serverdef/
+source.. = src/
+output.. = bin/
diff --git a/plugins/org.eclipse.jst.server.websphere.core/icons/obj16/websphere.gif b/plugins/org.eclipse.jst.server.websphere.core/icons/obj16/websphere.gif
new file mode 100644
index 0000000..8935c97
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.websphere.core/icons/obj16/websphere.gif
Binary files differ
diff --git a/plugins/org.eclipse.jst.server.websphere.core/plugin.properties b/plugins/org.eclipse.jst.server.websphere.core/plugin.properties
new file mode 100644
index 0000000..e514f85
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.websphere.core/plugin.properties
@@ -0,0 +1,9 @@
+pluginName= WebSphere Generic Server Definition Core Plug-in
+providerName=Eclipse.org
+pluginDescription=Provides server definiton for IBM WebSphere application server
+
+# ============ websphere ====================
+websphere.6.runtime.name=Generic IBM WebSphere 6.0.x
+websphere.6.runtime.description=IBM WebSphere 6.0.x runtime
+websphere.6.server.name=Generic IBM WebSphere 6.0.x
+websphere.6.server.description=IBM WebSphere 6.0.x server
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.websphere.core/plugin.xml b/plugins/org.eclipse.jst.server.websphere.core/plugin.xml
new file mode 100644
index 0000000..6f9d944
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.websphere.core/plugin.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+
+  <extension point="org.eclipse.wst.server.core.runtimeTypes">
+    <runtimeType
+       id="org.eclipse.jst.server.generic.runtime.websphere.6"
+       name="%websphere.6.runtime.name"
+       description="%websphere.6.runtime.description"
+       vendor="Generic"
+       version="6"
+       class="org.eclipse.jst.server.generic.core.internal.GenericServerRuntime"
+       >
+      <moduleType
+         types="j2ee.web"
+         versions="1.2, 1.3, 1.4"/>
+      <moduleType
+         types="j2ee.ejb"
+         versions="1.2, 1.3, 1.4"/>
+      <moduleType
+         types="j2ee.ear"
+         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.core.internal.GenericServer"
+           id="org.eclipse.jst.servers.websphere.6"
+           initialState="stopped"
+           supportsRemoteHosts="false"
+           runtimeTypeId="org.eclipse.jst.server.generic.runtime.websphere.6"
+           description="%websphere.6.server.description"
+           launchConfigId="org.eclipse.jst.server.generic.core.launchConfigurationType"
+           behaviourClass="org.eclipse.jst.server.generic.core.internal.GenericServerBehaviour"
+           name="%websphere.6.server.name"
+           hasConfiguration="false"
+           launchModes="run,debug">
+     </serverType>
+     
+     
+	</extension>
+
+<!-- UI Components-->
+    <extension
+       point="org.eclipse.wst.server.ui.wizardFragments">
+
+     <fragment
+        id="org.eclipse.jst.server.generic.runtime"
+        typeIds="org.eclipse.jst.server.generic.runtime.websphere.6"
+        class="org.eclipse.jst.server.generic.ui.internal.GenericServerRuntimeWizardFragment"/>           
+     <fragment
+        id="org.eclipse.jst.server.generic.server"
+        typeIds="org.eclipse.jst.servers.websphere.6"
+        class="org.eclipse.jst.server.generic.ui.internal.GenericServerWizardFragment"/>   
+        
+  </extension>
+  
+  <extension point="org.eclipse.wst.server.ui.serverImages">
+         
+     <image
+         id="org.eclipse.jst.server.generic.image"
+         icon="icons/obj16/websphere.gif"
+         typeIds="org.eclipse.jst.servers.websphere.6" />
+     <image
+         id="org.eclipse.jst.server.generic.image"
+         icon="icons/obj16/websphere.gif"
+         typeIds="org.eclipse.jst.server.generic.runtime.websphere.6"/>
+
+	</extension>
+  
+<!-- Server type definitions -->
+   <extension point="org.eclipse.jst.server.generic.core.serverdefinition">
+		<serverdefinition id="org.eclipse.jst.server.generic.runtime.websphere.6" definitionfile="/serverdef/websphere.6.serverdef">
+		</serverdefinition>
+   </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.jst.server.websphere.core/serverdef/scripts/websphere.6.x.xml b/plugins/org.eclipse.jst.server.websphere.core/serverdef/scripts/websphere.6.x.xml
new file mode 100644
index 0000000..56efa17
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.websphere.core/serverdef/scripts/websphere.6.x.xml
@@ -0,0 +1,57 @@
+<project name="deployextension"  default="deploy.j2ee.web"  basedir=".">
+
+	<property name="was.home" value="${wasRoot}"/>
+	
+	<path id="toolpath">
+		<pathelement path="${was.home}/lib/wsanttasks.jar" />
+	</path>
+	
+	<taskdef classpathref="toolpath" name="wsadmin" classname="com.ibm.websphere.ant.tasks.WsAdmin"/> 
+	
+
+	<target name="deploy.j2ee.web">
+		<jar destfile="${module.name}.war"> 
+			<zipfileset dir="${module.dir}">
+				<include name="**/*.*"/>
+				<exclude name="**/*.war"/>
+			</zipfileset>
+		</jar>
+		<wsadmin 
+			washome="${was.home}"
+		    command="$AdminApp install ${module.name}.war" 
+			failonerror="true" >  
+		</wsadmin>
+	</target>
+	
+	<target name="deploy.j2ee.ejb">
+		<jar destfile="${module.name}.jar"> 
+			<zipfileset dir="${module.dir}">
+	        	<include name="**/*.*"/>
+	       		<exclude name="**/*.java"/>
+			</zipfileset>
+		</jar>
+		<wsadmin 
+		    command="$AdminApp install ${module.name}.jar" 
+			failonerror="true" >  
+		</wsadmin>
+	</target>
+	
+	
+	
+	<target name="undeploy.j2ee.web">
+		<wsadmin 
+			washome="${was.home}"
+		    command="$AdminApp uninstall ${module.name}.war" 
+			failonerror="true" >  
+		</wsadmin>
+	</target>
+	<target name="undeploy.j2ee.ejb">
+		<wsadmin 
+			washome="${was.home}"
+		    command="$AdminApp uninstall ${module.name}.jar" 
+			failonerror="true" >  
+		</wsadmin>
+	</target>	
+
+
+</project>
diff --git a/plugins/org.eclipse.jst.server.websphere.core/serverdef/websphere.6.serverdef b/plugins/org.eclipse.jst.server.websphere.core/serverdef/websphere.6.serverdef
new file mode 100644
index 0000000..db9f2e1
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.websphere.core/serverdef/websphere.6.serverdef
@@ -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="IBM WebSphere 6" version="v6.0">
+	<property id="wasRoot"
+		label="IBM WebSphere Installation Directory:"
+		type="directory"
+		context="runtime"
+		default="/your_server_root/WAS6.0" />
+
+	<property id="port"
+		label="Port:"
+		type="string"
+		context="server"
+		default="9080" />
+
+	<property id="wasProfile"
+		label="Server Profile Directory:"
+		type="directory"
+		context="server"
+		default="/your_server_root/WAS6.0/profiles/default" />
+
+	<property id="wasCell"
+		label="Cell:"
+		type="string"
+		context="server"
+		default="PEPENode01Cell" />
+
+	<property id="wasNode"
+		label="Node:"
+		type="string"
+		context="server"
+		default="PEPE1" />
+	<property id="wasServer"
+		label="Server:"
+		type="string"
+		context="server"
+		default="server1" />
+
+	<port>
+		<no>${port}</no>
+		<name>Http</name>
+		<protocol>http</protocol>
+	</port>
+
+	<module>
+		<type>j2ee.web</type>
+		<publishDir>${wasRoot}</publishDir>
+		<publisherReference>org.eclipse.jst.server.generic.antpublisher</publisherReference>
+	</module>
+
+	<module>
+		<type>j2ee.ejb</type>
+		<publishDir>${wasRoot}</publishDir>
+		<publisherReference>org.eclipse.jst.server.generic.antpublisher</publisherReference>
+	</module>
+
+
+	<project>
+		<classpathReference>was.project</classpathReference>
+	</project>
+	
+	<start>
+		<mainClass>com.ibm.ws.bootstrap.WSLauncher</mainClass>
+		<workingDirectory>${wasProfile}</workingDirectory>
+		<programArguments>com.ibm.ws.runtime.WsServer ${wasProfile}/config ${wasCell} ${wasNode} ${wasServer}</programArguments>
+		<vmParameters>-Dws.output.encoding=console -Dcom.ibm.CORBA.ConfigURL=file:/${wasProfile}/properties/sas.client.props  -Xbootclasspath/p:${wasRoot}/java/jre/lib/ext/ibmorb.jar;${wasRoot}/java/jre/lib/ext/ibmext.jar -Xms50m -Xmx256m -Dws.ext.dirs=${wasRoot}/java/lib;${wasProfile}/classes;${wasRoot}/classes;${wasRoot}/lib;${wasRoot}/installedChannels;${wasRoot}/lib/ext;${wasRoot}/web/help;${wasRoot}/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime -Dcom.ibm.itp.location=${wasRoot}/bin -Djava.util.logging.configureByServer=true -Dibm.websphere.preload.classes=true -Duser.install.root=${wasProfile} -Dwas.install.root=${wasRoot} -Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager -Ddb2j.system.home=${wasRoot}/cloudscape -Dserver.root=${wasProfile} -Djava.security.auth.login.config=${wasProfile}/properties/wsjaas.conf -Djava.security.policy=${wasProfile}/properties/server.policy -Djava.library.path=${wasRoot}/java/jre/bin;${wasRoot}/bin </vmParameters>
+		<classpathReference>was</classpathReference>
+	</start>
+
+	<stop>
+		<mainClass>com.ibm.ws.bootstrap.WSLauncher</mainClass>
+		<workingDirectory>${wasRoot}</workingDirectory>
+		<programArguments>com.ibm.ws.management.tools.WsServerStop ${wasProfile}/config ${wasCell} ${wasNode} ${wasServer}</programArguments>
+		<vmParameters>-Duser.install.root=${wasProfile} -Dserver.root=${wasProfile} -Dws.ext.dirs=${wasRoot}/java/lib;${wasRoot}/classes;${wasRoot}/lib;${wasRoot}/installedChannels;${wasRoot}/lib/ext;${wasRoot}/web/help;${wasRoot}/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime -Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager -Djava.util.logging.configureByServer=true -Dwas.install.root=${wasRoot}  -Dibm.websphere.preload.classes=true</vmParameters>
+		<classpathReference>was</classpathReference>
+	</stop>
+	
+	<publisher id="org.eclipse.jst.server.generic.antpublisher">
+		<publisherdata>
+			<dataname>build.file</dataname>
+			<datavalue>/serverdef/scripts/websphere.6.x.xml</datavalue>
+		</publisherdata>
+		<publisherdata>
+			<dataname>target.publish.j2ee.web</dataname>
+			<datavalue>deploy.j2ee.web</datavalue>
+		</publisherdata>
+		<publisherdata>
+			<dataname>target.publish.j2ee.ejb</dataname>
+			<datavalue>deploy.j2ee.ejb</datavalue>
+		</publisherdata>
+		<publisherdata>
+			<dataname>target.unpublish.j2ee.web</dataname>
+			<datavalue>undeploy.j2ee.web</datavalue>
+		</publisherdata>
+		<publisherdata>
+			<dataname>target.unpublish.j2ee.ejb</dataname>
+			<datavalue>undeploy.j2ee.ejb</datavalue>
+		</publisherdata>			
+	</publisher>
+
+	<classpath id="was" isLibrary="true">
+	    <archive path="${wasRoot}/properties" />
+	    <archive path="${wasRoot}/lib/bootstrap.jar" />
+        <archive path="${wasRoot}/lib/j2ee.jar" />
+        <archive path="${wasRoot}/lib/lmproxy.jar" />
+        <archive path="${wasRoot}/lib/urlprotocols.jar" />
+	</classpath>
+
+	<classpath id="was.project" isLibrary="false">
+		<archive path="${wasRoot}/lib/j2ee.jar" />
+	</classpath>
+	<jndiConnection>
+		<providerUrl>iiop://${serverAddress}:2001</providerUrl>
+		<initialContextFactory>org.objectweb.carol.jndi.spi.MultiOrbInitialContextFactory</initialContextFactory>
+		<jndiProperty>
+			<name></name>
+			<value></value>
+		</jndiProperty>
+	</jndiConnection>
+</tns:ServerRuntime>
\ No newline at end of file
diff --git a/plugins/org.eclipse.jst.server.websphere.core/src/org/eclipse/jst/server/websphere/core/CorePlugin.java b/plugins/org.eclipse.jst.server.websphere.core/src/org/eclipse/jst/server/websphere/core/CorePlugin.java
new file mode 100644
index 0000000..ad61369
--- /dev/null
+++ b/plugins/org.eclipse.jst.server.websphere.core/src/org/eclipse/jst/server/websphere/core/CorePlugin.java
@@ -0,0 +1,58 @@
+package org.eclipse.jst.server.websphere.core;
+
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+import org.eclipse.core.runtime.Plugin;
+
+/**
+ * The main plugin class to be used in the desktop.
+ */
+public class CorePlugin extends Plugin {
+	//The shared instance.
+	private static CorePlugin plugin;
+	//Resource bundle.
+	private ResourceBundle resourceBundle;
+	
+	/**
+	 * The constructor.
+	 */
+	public CorePlugin() {
+		super();
+		plugin = this;
+	}
+
+	
+	/**
+	 * 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() {
+		try {
+			if (resourceBundle == null)
+				resourceBundle = ResourceBundle.getBundle("org.eclipse.jst.server.websphere.core.CorePluginResources");
+		} catch (MissingResourceException x) {
+			resourceBundle = null;
+		}
+		return resourceBundle;
+	}
+}
