/*******************************************************************************
 * Copyright (c) 2003, 2004 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 * IBM Corporation - initial API and implementation
 *******************************************************************************/
/*
 * Created on Aug 6, 2003
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
package org.eclipse.jst.j2ee.internal.servertarget;


/**
 * @author vijayb
 * 
 * To change the template for this generated type comment go to Window>Preferences>Java>Code
 * Generation>Code and Comments
 */
public interface IServerTargetConstants {
	String EAR_TYPE = "j2ee.ear"; //$NON-NLS-1$
	String WEB_TYPE = "j2ee.web"; //$NON-NLS-1$
	String WEB_PORTAL_TYPE = "j2ee.web.portal"; //$NON-NLS-1$
	String EJB_TYPE = "j2ee.ejb"; //$NON-NLS-1$
	String APP_CLIENT_TYPE = "j2ee.appclient"; //$NON-NLS-1$
	String CONNECTOR_TYPE = "j2ee.connector"; //$NON-NLS-1$
	String J2EE_12 = "1.2"; //$NON-NLS-1$
	String J2EE_13 = "1.3"; //$NON-NLS-1$
	String J2EE_14 = "1.4"; //$NON-NLS-1$
	String SERVER_FILE_NAME = ".server"; //$NON-NLS-1$
	String aesV4ServerTargetId = "com.ibm.etools.websphere.aes.v4";//$NON-NLS-1$
	String v5ServerTargetId = "com.ibm.etools.websphere.serverTarget.base.v5";//$NON-NLS-1$
	String v51ServerTargetId = "com.ibm.etools.websphere.serverTarget.base.v51";//$NON-NLS-1$

}