###############################################################################
# Copyright (c) 2008 IONA Technologies PLC
# 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: 
# IONA Technologies PLC - initial API and implementation
###############################################################################

WSDL2JAVA_PROJECT_SELECTION_ERROR=A possible conflict has been detected between project selections.\n\n The current configuration will result in code being generated into the "{0}" project.\n\nTo change the configuration click Cancel and then select the "Service project:" link in the "Configuration:" section in the Web Service wizard.\n\nClick Ok to continue with the current configuration.

WSDL2JAVA_VALID_PORTTYPE_MESSAGE=The WSDL document must have a valid portType element

JAVA2WS_SERVICE_IMPL_NOT_FOUND=The Service Implementation "{0}" cannot be loaded from the "{1}" project. Please check that the project contains the class and that it is visible on the projects "Java Build Path".
JAVA2WS_SERVICE_IMPL_NOT_BINARY=Binary class files not supported. The Service Implementation must be a Java Source type.