/*******************************************************************************
 * Copyright (c) 2005 Oracle Corporation.
 * 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:
 *    Gerry Kessler - initial API and implementation
 *    Ian Trimble - changed to work correctly with org.eclipse.osgi.util.NLS
 *******************************************************************************/ 
package org.eclipse.jst.jsf.core.internal;

import org.eclipse.osgi.util.NLS;

/**
 * String resource handler.
 * 
 * @author Gerry Kessler - Oracle, Ian Trimble - Oracle
 */
public class Messages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.jst.jsf.core.internal.messages"; //$NON-NLS-1$

	public static String JSFLibCfgDialogSettingData_Sticky_Component_Lib_Not_Exist;

	public static String JSFLibraryConfigModel_Null_Data_Source;

	public static String JSFLibraryConfigPersistData_SAVED_COMPLIB_NOT_FOUND;

	public static String JSFLibraryConfigPersistData_SAVED_IMPLLIB_NOT_FOUND;

	public static String JSFLibraryRegistry_ErrorCreatingURL;
	public static String JSFLibraryRegistry_NoLoadCreatingNew;
	public static String JSFLibraryRegistry_ErrorSaving;
	public static String JSFLibraryRegistry_DEFAULT_IMPL_LABEL;
	public static String JSFLibraryRegistry_ErrorLoadingFromExtPt;

	public static String JSFFacetInstallDataModelProvider_ValidateServletName;
	public static String JSFFacetInstallDataModelProvider_ValidateJSFImpl;
	public static String JSFFacetInstallDataModelProvider_ValidateConfigFileEmpty;
	public static String JSFFacetInstallDataModelProvider_ValidateConfigFilePath;
	public static String JSFFacetInstallDataModelProvider_ValidateConfigFileRelative1;
	public static String JSFFacetInstallDataModelProvider_ValidateConfigFileRelative2;
	public static String JSFFacetInstallDataModelProvider_ValidateConfigFileXML;
	public static String JSFFacetInstallDataModelProvider_ValidateConfigFileSlashes;

	public static String ArchiveFileImpl_CannotCopyFile;
	public static String ArchiveFileImpl_CannotCloseFile;
	public static String ArchiveFileImpl_CannotLocatePluginRelativeFile;

	public static String JSFUtils_MissingJAR;

	public static String PluginProvidedJSFLibraryCreationHelper_ErrorCreating;
	public static String PluginProvidedJSFLibraryCreationHelper_ErrorMultipleDefinition;

	public static String JSFUtils_ErrorCreatingConfigFile;
	public static String JSFUtils_ErrorClosingConfigFile;

	public static String JSFAppConfigUtils_ErrorOpeningJarFile;

	public static String JARFileJSFAppConfigProvider_ErrorLoadingModel;

	public static String J2EEModuleDependencyDelegate_UpdatingJ2EEModuleDependencies;
	public static String J2EEModuleDependencyDelegate_UpdatingJ2EEModuleDependenciesForProject;

	static {
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
	}
}
