###############################################################################
# Copyright (c) 2006, 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 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
pluginName=Eclipse Data Tools Platform IBM DB2 UDB LUW Plug-in
providerName=Eclipse Data Tools Platform

driverClass = Driver Class
driverVendor = Vendor
driverVersion = Version
driverDBName = Database Name
driverConnectionURL = Connection URL
driverUID = User ID
driverPWD = Password

DB2_UDB_CATEGORY_NAME = DB2 for Linux, UNIX, and Windows

org.eclipse.datatools.enablement.ibm.db2.luw.driverTemplate = IBM Data Server Driver for JDBC and SQLJ
org.eclipse.datatools.enablement.ibm.db2.luw.kerberosDriverTemplate=IBM Data Server Driver for JDBC and SQLJ using Kerberos security
org.eclipse.datatools.enablement.ibm.db2.luw.ldapDriverTemplate=IBM Data Server Driver for JDBC and SQLJ using LDAP
org.eclipse.datatools.enablement.ibm.db2.luw.jdbc4.kerberosDriverTemplate=IBM Data Server Driver for JDBC and SQLJ (JDBC 4.0) using Kerberos security
org.eclipse.datatools.enablement.ibm.db2.luw.jdbc4.ldapDriverTemplate=IBM Data Server Driver for JDBC and SQLJ (JDBC 4.0) using LDAP
org.eclipse.datatools.enablement.ibm.db2.luw.jdbc4.driverTemplate = IBM Data Server Driver for JDBC and SQLJ (JDBC 4.0)
org.eclipse.datatools.enablement.ibm.db2.luw.other.driverTemplate = Other Driver

jdbc.connection.name = JDBC Connection
profile.db2.luw.title = DB2 for Linux, UNIX, and Windows