#
# 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.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.adminserver.name=server1
rcm.wls.server1.name=myserver
rcm.wls.server2.name=server2
rcm.wls.server3.name=server3
#rcm.wls.adminserver.port=${weblogic.port}
rcm.wls.server1.port=7001
rcm.wls.server2.port=7021
rcm.wls.server3.port=7031

rcm.wls.server1.url=t3://${rcm.wls.server1.httphost}:${rcm.wls.server1.port}/
rcm.wls.server2.url=t3://${rcm.wls.server2.httphost}:${rcm.wls.server2.port}/
rcm.wls.server3.url=t3://${rcm.wls.server3.httphost}:${rcm.wls.server3.port}/

# test config using protocol: valid values are jms or rmi
cachecoordination.protocol=jms
rcm.wls.jms.topichost.url=${rcm.wls.server1.url}
rcm.wls.jms.topicname=jms/EclipseLinkTopic
rcm.wls.jms.topic.connectionfactory.name=jms/EclipseLinkTopicConnectionFactory
