###############################################################################
# Copyright (c) 2007, 2008 WSO2 Inc. 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:
# WSO2 Inc. - initial API and implementation
# yyyymmdd bug      Email and other contact information
# -------- -------- -----------------------------------------------------------
# 20070110   168762 sandakith@wso2.com - Lahiru Sandakith, Initial code to introduse the Axis2 
#										 runtime to the framework for 168762
# 20070511   186440 sandakith@wso2.com - Lahiru Sandakith fix 186440
# 20070517   187307 sandakith@wso2.com - Lahiru Sandakith, Fix 187307 Property File Fix
# 20070529   188742 sandakith@wso2.com - Lahiru Sandakith, fix for 188742
# 20070601   190505 pmoogk@ca.ibm.com - Peter Moogk
# 20080130   216997 katep@wso2.com - Kate Price
###############################################################################
#
# Axis2 server component type labels
#
LABEL_HAVE_SERVICES_XML_FILE=Use an existing services.xml file
LABEL_DEFAULT_SERVICES_XML_FILE=Generate a default services.xml file
LABEL_AXIS2_PREFERENCE_PAGE=Axis2 Web Service Java Bean Configuration
LABEL_AXIS2_PREFERENCE_PAGE_HEADING=Axis2 Web Service Java Bean Configuration
LABEL_AXIS2_PREFERENCE_PAGE_SUB_HEADING=Customize your Web service
LABEL_BROWSE=&Browse
LABEL_JAVA_2_WSDL_PAGE_HEADING=Axis2 Web Service Skeleton Java Bean Configuration
LABEL_JAVA_2_WSDL_PAGE_SUB_HEADING=Select the appropriate code generation settings
LABEL_SERVICE_NAME_CAPTION=Service Name
LABEL_GENERATE_TESTCASE_CAPTION=Generate a JUnit test case to test the service
LABEL_DATABINDING_CAPTION=Databinding
LABEL_PORTNAME=Port Name
LABEL_GENERATE_ALL=Generate all types for all elements referred by schemas
LABEL_GENERATE_SERVERSIDE_INTERFACE=Generate an interface for the skeleton
LABEL_PACKEGE_NAME=Custom package name
LABEL_NAMESPACE=Namespace
LABEL_PACKAGE=Package
LABEL_NAMESPACE_TO_PACKAGE=Namespace to package mappings

#
# Axis2 server component type error
#
ERROR_INVALID_SERVICES_XML=You must select a valid services.xml file
ERROR_INVALID_FILE_READ_WRITEL=Exception occurred while reading or writing file {0}
ERROR_INVALID_WSDL_FILE_READ_WRITEL=Exception occurred while reading or writing WSDL {0}
ERROR_INVALID_SERVICE_CREATION=Exception occurred during service creation
ERROR_CODEGEN_EXCEPTION=Exception occurred during code generation for the WSDL {0}
