#
# WLS Server Testing Environment Properties.
#
# This property file is used by the jpa/eclipselink.jpa.test/weblogic.xml
# build file which handles execution of JPA tests against WebLogic server.
#
# This file can be copied to your $USER_HOME directory or can be left in its
# original location (jpa/eclipselink.jpa.test).
# The advantage of copying this file to $USER_HOME is that your changes
# does not get overwritten the next time you refresh from the repository.
#
# On Windows, $USER_HOME normally maps to C:\Documents and Settings\<user>.
# On Unix, it normally maps to /home/<user>.
#

###############################################
# User must check these properties and modify
# if needed.
###############################################

# WebLogic home - where you installed WLS
# weblogic.home is currently being used for another directory.
weblogic.installdir=C:/Oracle/Middleware/wlserver_10.3

# The following only for WebLogic JPA2.0 support
server.persistence20.lib=${weblogic.installdir}/../patch_wls1034/profiles/default/sys_manifest_classpath
server.persistence20.jar=weblogic_patch.jar

# user and password defined during installation
server.user=weblogic
server.pwd=welcome1

# host and port for the WLS admin server; defined during installation
weblogic.port=7001
weblogic.host=localhost

# EL tests creates a new domain in the server-install ant task - specify the new domain location
# If you want to use your own domain, do not call server-install, and ignore this property
weblogic.domain=${weblogic.installdir}/samples/domains/mydomain

####################################
# DO NOT CHANGE
####################################

server.lib=${weblogic.installdir}/server/lib
server.modules=${weblogic.installdir}/../oracle_common/modules
server.module.toplink=${server.modules}/oracle.toplink
server.testrunner=TestRunner#org.eclipse.persistence.testing.framework.server.TestRunner
server.testrunner.wdf=ServerTestRunner#org.eclipse.persistence.testing.framework.wdf.server.ServerTestRunner
server.testrunner1=TestRunner1#org.eclipse.persistence.testing.framework.server.TestRunner1
server.testrunner2=TestRunner2#org.eclipse.persistence.testing.framework.server.TestRunner2
server.testrunner3=TestRunner3#org.eclipse.persistence.testing.framework.server.TestRunner3
server.testrunner4=TestRunner4#org.eclipse.persistence.testing.framework.server.TestRunner4
server.testrunner5=TestRunner5#org.eclipse.persistence.testing.framework.server.TestRunner5
server.depend=weblogic.jar,weblogic_sp.jar
server.platform=weblogic
server.platform.class=weblogic-10-platform
server.factory=weblogic.jndi.WLInitialContextFactory
weblogic.home=${weblogic.installdir}/server/
server.url=t3://${weblogic.host}:${weblogic.port}/
server.admin.url=${server.url}
target.server=myserver

####################################
# Cache Co-Ordination Testing only
####################################
# CacheCoordination Weblogic properties
domain.name=mydomain
weblogic.version=10.3
announcement.delay=1000
rcm.multicastgroup=239.192.0.0
rcm.multicastport=3121
rcm.packet.timetolive=2

rcm.wls.cluster.name=eclipselink
rcm.wls.admin.httphost=${weblogic.host}
rcm.wls.server1.httphost=${weblogic.host}
rcm.wls.server2.httphost=${weblogic.host}
rcm.wls.server3.httphost=${weblogic.host}
rcm.wls.admin.name=admin
rcm.wls.server1.name=myserver
rcm.wls.server2.name=server2
rcm.wls.server3.name=server3
rcm.wls.admin.port=${weblogic.port}
rcm.wls.server1.port=7007
rcm.wls.server2.port=7021
rcm.wls.server3.port=7031

rcm.wls.server4.name=server4
rcm.wls.server5.name=server5
rcm.wls.server6.name=server6
rcm.wls.server4.httphost=${weblogic.host}
rcm.wls.server5.httphost=${weblogic.host}
rcm.wls.server6.httphost=${weblogic.host}
rcm.wls.server4.port=7008
rcm.wls.server5.port=7022
rcm.wls.server6.port=7032

rcm.wls.jms-server.name=jms-server
rcm.wls.jms-server.httphost=localhost
rcm.wls.jms-server.port=7042
rcm.wls.jms-server.url=t3://${rcm.wls.jms-server.httphost}:${rcm.wls.jms-server.port}/

rcm.wls.server7.name=server7
rcm.wls.server8.name=server8
rcm.wls.server9.name=server9
rcm.wls.server7.httphost=ottvm084
rcm.wls.server8.httphost=ottvm084
rcm.wls.server9.httphost=ottvm084
rcm.wls.server7.port=7008
rcm.wls.server8.port=7022
rcm.wls.server9.port=7032

rcm.wls.server1.url=t3://localhost:7007/
rcm.wls.server2.url=t3://localhost:7021/
rcm.wls.server3.url=t3://localhost:7031/

rcm.wls.server4.url=t3://ottvm083:7008/
rcm.wls.server5.url=t3://ottvm083:7022/
rcm.wls.server6.url=t3://ottvm083:7032/

rcm.wls.server7.url=t3://ottvm084:7008/
rcm.wls.server8.url=t3://ottvm084:7022/
rcm.wls.server9.url=t3://ottvm084:7032/

# test config using protocol: valid values are jms, jgroups, or rmi
cachecoordination.protocol=jms
grid=false
kryo=false
rcm.wls.jms.topichost.url=${rcm.wls.jms-server.url}
rcm.wls.jms.topicname=jms/EclipseLinkTopic
rcm.wls.jms.topic.connectionfactory.name=jms/EclipseLinkTopicConnectionFactory
