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

# To run all the buckets in the BVT, uncomment org.eclipse.jst.j2ee.tests.bvt.ALL (the rest of the
# properties will be ignored). 
# To run individual buckets, comment out org.eclipse.jst.j2ee.tests.bvt.ALL and
# uncomment the corresponding properties.

#org.eclipse.jst.j2ee.tests.bvt.ALL = true
org.eclipse.jst.j2ee.tests.bvt.EnterpriseBVT = true
org.eclipse.jst.j2ee.tests.bvt.EJBBVT = true
org.eclipse.jst.j2ee.tests.bvt.WebBVT = true
org.eclipse.jst.j2ee.tests.bvt.CoreInfrastructureBVT = true
org.eclipse.jst.j2ee.tests.bvt.ModelProviderBVT = true
org.eclipse.jst.j2ee.tests.bvt.ExtendedModelProviderBVT = true
