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

execution.mode=ee
admin.port=4849
admin.user=admin
admin.password=admin123
admin.host=localhost
admin.domain=sqe-domain
admin.domain.dir=${env.S1AS_HOME}/domains
imq.dir=${env.S1AS_HOME}/imq
activeconsumer.maxnum=-1
http.port=38080
http.host=localhost
https.host=localhost
https.port=33820
orb.port=33700
nodeagent.name=sqe-agent
appserver.config.name=server-config
cluster.name=sqe-cluster
clustered.instance.name=clustered_server
server.instance.name=sqe-cluster
appserver.instance.name=sqe-cluster
config.dottedname.prefix=server
resources.dottedname.prefix=domain.resources
directory.server.host=localhost
directory.server.port=389
directory.server.basedn=dc=sfbay,dc=sun,dc=com
directory.manager.dn=cn=Directory Manager
directory.manager.pwd=directorymanager
interop.admin.port=5858
interop.admin.host=localhost
interop.admin.domain=domain2
interop.http.port=9090
interop.http.host=localhost
interop.https.port=2043
interop.orb.port=4700
isInteropDomain=true
results.mailer=abc@sun.com
results.mailee=xyz@sun.com
mail.host="ha21sca.sfbay.sun.com"
install.type=cluster
