!-- REQUIRED. Differentiates from "client" scenario.  See axisclient.properties.
scenarioType=service

!-- REQUIRED.  Workspace relative URI to the input WSDL or Java
InitialSelection=/projectName/WebContent/StockQuote.wsdl

!--Utility property values - use these to list values for the following properties:
!-- Service.RuntimeId, Service.ServerId 
ListRuntimes=true
ListServers=true

!--OverwriteFilesEnabled - set to true to overwrite files that already exist. type:boolean 
!-- note for non-interactive mode it is recommended that this be set to true
OverwriteFilesEnabled=true

!--CreateFoldersEnabled - set to true create folders necessary during file generation type:boolean
!-- note for non-interactive mode it is recommended that this be set to true
CreateFoldersEnabled=true

!--CheckoutFilesEnabled - set to true to check out files with no warning to the user type:boolean
!-- note for non-interactive mode it is recommended that this be set to true
CheckoutFilesEnabled=true

!--- Server.RuntimeId ID of web service runtime - must be compatible with server & one of: 
!--  type:String  
Service.RuntimeId=org.eclipse.jst.ws.axis.creation.axisWebServiceRT
!--Server.ServerId - ID of server 
!--type:String -  Must be compatible with runtime & one of:
!-- org.eclipse.jst.server.generic.weblogic81
!-- org.eclipse.jst.server.generic.weblogic90
!-- org.eclipse.jst.server.generic.jboss323
!-- org.eclipse.jst.server.generic.jonas4
!-- org.eclipse.jst.server.generic.oracle1013dp4
!-- org.eclipse.jst.server.tomcat.32
!-- org.eclipse.jst.server.tomcat.40
!-- org.eclipse.jst.server.tomcat.41
!-- org.eclipse.jst.server.tomcat.50
!-- org.eclipse.jst.server.tomcat.55
!-- org.eclipse.jst.servers.websphere.6 
Service.ServerId=org.eclipse.jst.server.tomcat.50

!-- StartService. Set to true if the service should be started after generation.  type: boolean
StartService=true
!-- PublishService. Set to true to launch Web Service Explorer and publish service to UDDI registry.  type: boolean
PublishService=false

!--ServiceProjectName - !--type:String - name of Service project - this property would be used to give the service project a different name than the project containing the initial selection.  type: String    
ServiceProjectName=serviceProjectName
!--ServiceProjectName - !--type:String - name of Service project - this property would be used to give the service project a different name than the project containing the initial selection.  type: String
ServiceEarProjectName=serviceEarProjectName

!--TestService - set to true to indicate test with the web services explorer type:boolean
TestService=false  
!-- TestId. Name of a valid test facility - for Axis - one of: Web service sample JSPs, Web Services Explorer 
!-- only needs to be set if TestService is true --
TestId= Web Services Explorer

!-- MonitorService - set to true to monitor SOAP traffic for the web service - type:boolean
MonitorService=false

!--PublishToPrivateUDDI. Set to true if service should be published to a private UDDI registry.  type: boolean
PublishToPrivateUDDI=false
!--PublishToPublicUDDI. Set to true if service should be published to a public UDDI registry. type: boolean
PublishToPublicUDDI=false
!--  LaunchOptions - Set if PublishToPublicUDDI is set to true. type:String
!--<jvh> will need to add a transformer from this to LaunchOptions...also what are valid values? Chris?
LaunchOptions=

!-- AXIS SERVICE ----
!-- All scenarios. String: workspace relative URI <jvh - can it be any URI?> to property file containing mappings
!-- Top Down - Mappings that are used to override the default package names of the generated Java template classes.  
!-- file format: file extension must be .properties.  For bottom up, the content of the properties file must be of the format package = namespace .
!-- For top down, the content of the properties file must be of the format namespace=package
!--<jvh> need to confirm: note from WS cmd line tool help - Note: When using this argument, all namespace references must have the colon ':' 
!--    escaped using a backslash as follows: http\://my.namespace.WSDL2WebService ignores any namespace references that do not contain an escaped colon.
Mappings=/testProj/mappings/mappings.txt

!-- Top down - String: the workspace relative URI for a Java source folder for the generated Java code - must be existing workspace source folder
JavaOutput=/projectName/JavaSource

!-- Bottom up - comma delimited string of method names to be exposed in output WSDL.  If no list is provided, all methods are exposed.
Methods=
!-- Bottom up - String: one of: RPC, DOCUMENT, WRAPPED
Style=DOCUMENT
!-- Bottom up - String: one of: LITERAL, ENCODED 
Use=LITERAL																												 
