#
# Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0, which is available at
# http://www.eclipse.org/legal/epl-2.0.
#
# This Source Code may also be made available under the following Secondary
# Licenses when the conditions for such availability set forth in the
# Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
# version 2 with the GNU Classpath Exception, which is available at
# https://www.gnu.org/software/classpath/license.html.
#
# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
#

#
# The environment variables for compiling and running the tests.
#
src.dir=

#
# Set location for jmx.jar either from install or build.
#
jmx.jar=

#
# Classpath dependent variables
#
module.publish.home=${src.dir}/publish/JDK1.4_DBG.OBJ
mbeanapi.jar=${module.publish.home}/admin-core/mbeanapi/lib/mbeanapi.jar
mbeanapi-impl.jar=${module.publish.home}/admin/mbeanapi-impl/lib/mbeanapi-impl.jar
jmx-ri.jar=${module.publish.home}/jmx/lib/jmxri.jar
jmx-remote.jar=${module.publish.home}/rjmx-ri/jmxremote.jar
jmx-remote_optional.jar=${module.publish.home}/rjmx-ri/jmxremote_optional.jar
appserv-commons.jar=${module.publish.home}/appserv-commons/lib/appserv-commons.jar
mgmt-api.jar=${module.publish.home}/management-api/lib/management-api.jar

#
# The instance that the web module or application is deployed on. If this is
# null or "" then the default server instance "server" is assumed.
#
instance.name=server

#
# The application that the web module lives in. This is only relevant if the
# web module to be tested is embedded within an application.
#
application.name=stateless-simple

#
# The embedded or standalone web module.
#
web.module.name=stateless-simple.war

