# 'shortname' effects all foldernames too, plus some content, in distribution section
# should be same name as this property file (for future use). 
shortname=jaxws


# These first three properties are mainly for component templates

#  'featurename' assumes group of three features
#  a) featurename.feature
#  b) featurename_sdk.feature
#  c) featurename_tests.feature

featurename=org.eclipse.jst.ws.cxf

#  'zipprefix' is prefixed to -[type]-${buildlabel},
#  where type is empty, 'sdk' or 'tests',
#  usually of the form [top-level project]-[project]-[component]
#  for example, wtp-incubator-xmlsecurity
zipprefix=wtp-incubator-jaxws

#  'relengmapseng' must match the environment variable set in
#  commonComputedVariables, such as RELENGXMLSEC
relengmapsenv=RELENGJAXWS

#  prereq is the basic prereq on top of platform, jdt, emf, gef
#  (only realistic options for right now are wst, jst). 
basicprereq=wtp

# These next properties are mainly for distribution template files

# longdescription appears on the download webpage
longdescription=The Zip files includes the features and plugins for the WTP Incubator JAX WS Component.

# testplugin is the "main" test plugin, which may "call" the others
testplugin=org.eclipse.jst.ws.cfx.tests

