###############################################################################
# Copyright (c) 2007 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
###############################################################################

Engine_Error_During_Phase=Error during phase: {0}.
Engine_Operation_Canceled_By_User=Operation canceled by the user.

Profile_Duplicate_Profile_Id=Adding profile with duplicate id: {0}.
Profile_Not_Named_Self=Can't have a profile named: {0}.
TouchpointManager_Null_Touchpoint_Type_Argument=A null or empty string was passed as the type of a touchpoint.
TouchpointManager_Required_Touchpoint_Not_Found=The required {0} touchpoint is not included in the installation manager configuration.
TouchpointManager_No_Extension_Point=The extension point {0}.{1} was not found in the platform extension registry.
TouchpointManager_Incorrectly_Named_Extension=A touchpoint extension is incorrectly named {0} instead of {1}.
TouchpointManager_Attribute_Not_Specified=The required attribute {0} is not specified for the touchpoints extension point.
TouchpointManager_Conflicting_Touchpoint_Types=Two or more touchpoint extensions of type {0} are defined.
TouchpointManager_Touchpoint_Type_Mismatch=The touchpoint registered for type {0} reports its type as {1}.
TouchpointManager_Exception_Creating_Touchpoint_Extension=An exception was thrown and caught when creating the extension point instance for the {0} touchpoint.
TouchpointManager_Null_Creating_Touchpoint_Extension=A null object was returned when creating the extension point instance for the {0} touchpoint.

Install_Operand_Description=Installing unit {0}.
Update_Operand_Description=Updating unit {0} with unit {1}.
Uninstall_Operand_Description=Removing unit {0}.

SimpleProfileRegistry_Parser_Error_Parsing_Registry=\
	Error parsing profile registry.
SimpleProfileRegistry_Parser_Has_Incompatible_Version=\
	Profile registry has incompatible version {0}; expected {1}.
	
InstallRegistry_Parser_Error_Parsing_Registry=\
	Error parsing install registrly.
InstallRegistry_Parser_Has_Incompatible_Version=\
	Install registry has incompatible version {0}; expected {1}.
