###############################################################################
# Copyright (c) 2005, 2006 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
###############################################################################
!--ScenarioType REQUIRED. Differentiates from "service" scenario.  See axisservice.properties.
ScenarioType=client

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

!--Utility property values - use these to list values for the following properties:
!-- Client.RuntimeId, Client.ServerId 
ListRuntimes=true
ListServers=true
!-- Verbose will list informational messages as well as errors if set to true
Verbose=true

 
!--Client.RuntimeId - ID of web service runtime 
Client.RuntimeId=org.eclipse.jst.ws.axis.creation.axisWebServiceRT
!--Client.ServerId - ID of target server 
Client.ServerId=org.eclipse.jst.server.tomcat.50

!--ClientProjectName - name of Client project - this property can be used to give the client project a 
!-- different name than the project containing the initial selection
!--ClientProjectName=clientProjectName

!--ClientEarProjectName- name of Client EAR project - set only if applicable for selected server type
!--ClientEarProjectName=clientEARProjectName

!--ClientComponentType - type of Client project - the following are valid Axis templates: template.jst.web and template.jst.utility
!--ClientComponentType=template.jst.web

!-- CustomizeClientMappings - set to true to supply package-namespace mappings type: boolean
!--CustomizeClientMappings=false  
    
!-- Mappings 
!-- Workspace relative URI to property file containing mappings
!-- Mappings are used to override the default package names of the generated Java classes.
!-- Need not be set if CustomizeClientMappings is false  
!-- The content of the properties file must be of the format package = namespace.
!--Mappings=/testProj/mappings/mappings.txt

!--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
