View | Details | Raw Unified | Return to bug 262740 | Differences between
and this patch

Collapse All | Expand All

(-)jpa/eclipselink.jpa.test/build.xml (-1 / +8 lines)
Lines 988-993 Link Here
988
            target="${javac.version}"
988
            target="${javac.version}"
989
            deprecation="${javac.deprecation}"
989
            deprecation="${javac.deprecation}"
990
            failonerror="true"
990
            failonerror="true"
991
	    excludes="org/eclipse/persistence/testing/models/jpa/sessionbean/JPASessionCustomizer_*.java"	    
991
            includes="${MODEL_DIR}/**/*.java">
992
            includes="${MODEL_DIR}/**/*.java">
992
            <classpath refid="compile.server.path"/>
993
            <classpath refid="compile.server.path"/>
993
        </javac>
994
        </javac>
Lines 1405-1409 Link Here
1405
            <param name="eclipselink.jpa.test.dir" value="./../../foundation/eclipselink.extension.oracle.test"/>
1406
            <param name="eclipselink.jpa.test.dir" value="./../../foundation/eclipselink.extension.oracle.test"/>
1406
        </antcall>
1407
        </antcall>
1407
    </target>
1408
    </target>
1408
1409
    <!-- *********** CacheCoordination Test Targets -->
1410
    <target name="server-start-cachecoordination" depends="detect-os,config-trunk, config-flat">
1411
      <ant antfile="${eclipselink.jpa.test}/cachecoordination_${server.name}.xml" target="${server.name}-start-cachecoordination" inheritRefs="true"/>
1412
    </target>
1413
    <target name="server-run-test-cachecoordination" depends="detect-os,config-trunk, config-flat">
1414
      <ant antfile="${eclipselink.jpa.test}/cachecoordination.xml" target="${server.name}-run-test-cachecoordination" inheritRefs="true"/>
1415
    </target>
1409
</project>
1416
</project>
(-)jpa/eclipselink.jpa.test/cachecoordination.xml (+224 lines)
Line 0 Link Here
1
<!--/*******************************************************************************
2
* This program and the accompanying materials are made available under the
3
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
4
* which accompanies this distribution.
5
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
6
* and the Eclipse Distribution License is available at
7
* http://www.eclipse.org/org/documents/edl-v10.php.
8
*
9
*   Ant naming conventions:
10
*   - regardless of the actual OS platform,'/' is the directory separator
11
*     (Ant will convert as appropriate).
12
*   - multi-word properties use periods '.'
13
*   - multi-word targets use hyphens '-'
14
*   - multi-word macros use underscores '_'
15
*   - multi-word macro attributes are concatinated
16
*     e.g. 'runpathref'
17
*   - multi-word tasks (taskdef) names are concatinated
18
*     e.g. 'validateconnection'
19
*   - OS environment variables are in ALLCAPS and have 'env' as a prefix
20
*     e.g. ${env.XXX}.
21
*   - Ant properties are lower case.
22
*
23
* Contributors:
24
*     pvijayaratnam - cache coordination test implementation
25
#******************************************************************************/-->
26
27
<project name="Eclipse Persistence Services JPA WLS CacheCoordination Testing" basedir=".">
28
29
    <property name="env" environment="env" value="env"/>
30
    <!-- Allows a user to overide certain user specific properties. -->
31
    <property name="eclipselink.jpa.test" value="."/>
32
    <property file="${eclipselink.jpa.test}/build.properties"/>
33
    <property file="${user.home}/${server.name}.properties"/>
34
    <property file="test.properties"/>
35
    <property file="./${server.name}.properties"/>
36
37
<!-- *********** CacheCoordination Test Targets -->
38
    <target name="weblogic-run-test-cachecoordination"> 
39
       <property file="${eclipselink.jpa.test}/${server.name}.properties"/>
40
       <antcall target="build-deploy-cachecoordination-wls"/>
41
       <antcall target="runclient-cachecoordination-wls"/>
42
       <ant antfile="${eclipselink.jpa.test}/build.xml" target="generate-report" inheritRefs="true"/>
43
       <antcall target="server-undeploy-cachecoordination-server2" inheritRefs="true">
44
            <param name="application.name" value="eclipselink-sessionbean-model-server2"/>
45
        </antcall>	
46
       <antcall target="server-undeploy-cachecoordination-server1" inheritRefs="true">
47
            <param name="application.name" value="eclipselink-sessionbean-model-server1"/>
48
        </antcall>	
49
	<ant antfile="${eclipselink.jpa.test}/cachecoordination_${server.name}.xml" target="${server.name}-stop-cachecoordination" inheritRefs="true"/>	
50
	<delete includeEmptyDirs="true" failonerror="false">
51
            <fileset dir="${weblogic.domain}/servers/${rcm.wls.server3.name}/tmp"/>
52
            <fileset dir="${weblogic.domain}/servers/${rcm.wls.server2.name}/tmp"/>
53
	    <fileset dir="${weblogic.domain}/servers/${rcm.wls.server1.name}/tmp"/>
54
	</delete>
55
    </target>
56
    <target name="build-deploy-cachecoordination-wls">
57
       <sequential>
58
        <antcall target="config-persistence-xml"/>	
59
        <antcall target="cachecoordination-build-and-deploy-server1" inheritRefs="true">
60
            <param name="PERSISTENCE_UNIT_NAME" value="sessionbean"/>
61
            <param name="MODEL_DIR" value="org/eclipse/persistence/testing/models/jpa/sessionbean"/>
62
            <param name="MODEL_DIR2" value="org/eclipse/persistence/testing/models/jpa/fieldaccess/advanced"/>
63
            <param name="MODEL_NAME" value="eclipselink-sessionbean-model"/>
64
            <param name="TEST_DIR" value="org/eclipse/persistence/testing/tests/jpa/sessionbean"/>
65
            <param name="TEST_NAME" value="eclipselink-sessionbean-model"/>
66
            <param name="EAR_NAME" value="eclipselink-sessionbean-model-server1"/>
67
            <param name="TEST_SUITE" value="org.eclipse.persistence.testing.tests.jpa.sessionbean.SessionBeanTestsRCM"/>
68
            <param name="eclipselink.jpa.test.dir" value="."/>
69
        </antcall>
70
	<antcall target="cachecoordination-build-and-deploy-server2" inheritRefs="true">
71
            <param name="PERSISTENCE_UNIT_NAME" value="sessionbean"/>
72
            <param name="MODEL_DIR" value="org/eclipse/persistence/testing/models/jpa/sessionbean"/>
73
            <param name="MODEL_DIR2" value="org/eclipse/persistence/testing/models/jpa/fieldaccess/advanced"/>
74
            <param name="MODEL_NAME" value="eclipselink-sessionbean-model"/>
75
            <param name="TEST_DIR" value="org/eclipse/persistence/testing/tests/jpa/sessionbean"/>
76
            <param name="TEST_NAME" value="eclipselink-sessionbean-model"/>
77
            <param name="EAR_NAME" value="eclipselink-sessionbean-model-server2"/>
78
            <param name="TEST_SUITE" value="org.eclipse.persistence.testing.tests.jpa.sessionbean.SessionBeanTestsRCM"/>
79
            <param name="eclipselink.jpa.test.dir" value="."/>
80
        </antcall>
81
	<copy overwrite="true" file="${eclipselink.jpa.test}/${resource.dir}/server/persistence_original.xml" tofile="${eclipselink.jpa.test}/${resource.dir}/server/persistence.xml"/>
82
	<delete file="${eclipselink.jpa.test}/${resource.dir}/server/persistence_original.xml"/>	
83
       </sequential>
84
    </target>
85
      <target name="runclient-cachecoordination-wls">
86
       	<antcall target="server-run-test-cachecoordination" inheritRefs="true">
87
            <param name="PERSISTENCE_UNIT_NAME" value="sessionbean"/>
88
            <param name="MODEL_DIR" value="org/eclipse/persistence/testing/models/jpa/sessionbean"/>
89
            <param name="MODEL_DIR2" value="org/eclipse/persistence/testing/models/jpa/fieldaccess/advanced"/>
90
            <param name="MODEL_NAME" value="eclipselink-sessionbean-model"/>
91
            <param name="TEST_DIR" value="org/eclipse/persistence/testing/tests/jpa/sessionbean"/>
92
            <param name="TEST_NAME" value="eclipselink-sessionbean-model"/>
93
            <param name="EAR_NAME" value="eclipselink-sessionbean-model-server2"/>
94
            <param name="TEST_SUITE" value="org.eclipse.persistence.testing.tests.jpa.sessionbean.SessionBeanTestsRCM"/>
95
            <param name="eclipselink.jpa.test.dir" value="."/>
96
        </antcall>
97
    </target>
98
    
99
    <target name="set-app-name-cachecoordination">
100
        <property name="APP_NAME" value="${MODEL_NAME}"/>
101
        <property name="DS_NAME" value="jdbc/EclipseLinkDS"/>
102
    </target>
103
104
    <condition property="is.jms">
105
        <contains string="${cachecoordination.protocol}" substring="jms"/>
106
    </condition>
107
108
    <condition property="is.rmi">
109
        <contains string="${cachecoordination.protocol}" substring="rmi"/>
110
    </condition>    
111
112
        <!-- Build and deploy to Server1 -->
113
    <target name="config-persistence-xml">	
114
 	<copy overwrite="true" file="${eclipselink.jpa.test}/${resource.dir}/server/persistence.xml" tofile="${eclipselink.jpa.test}/${resource.dir}/server/persistence_original.xml" />
115
	<copy overwrite="true" file="${eclipselink.jpa.test}/${resource.dir}/server/persistence_cachecoordination.xml" tofile="${eclipselink.jpa.test}/${resource.dir}/server/persistence.xml"/>   
116
	<replace file="${eclipselink.jpa.test}/${resource.dir}/server/persistence.xml" token='%%data-source-name%%' value="jdbc/EclipseLinkDS"/>
117
	<replace file="${eclipselink.jpa.test}/${resource.dir}/server/persistence.xml" token='%%topic-host-url%%' value="${rcm.wls.jms.topichost.url}"/>
118
	<replace file="${eclipselink.jpa.test}/${resource.dir}/server/persistence.xml" token='%%topic-name%%' value="${rcm.wls.jms.topicname}"/>
119
	<replace file="${eclipselink.jpa.test}/${resource.dir}/server/persistence.xml" token='%%topic-connection-factory%%' value="${rcm.wls.jms.topic.connectionfactory.name}"/>
120
	<replace file="${eclipselink.jpa.test}/${resource.dir}/server/persistence.xml" token='%%server-user%%' value="${server.user}"/>
121
	<replace file="${eclipselink.jpa.test}/${resource.dir}/server/persistence.xml" token='%%server-pwd%%' value="${server.pwd}"/>
122
    </target>
123
    
124
    <target name="session-customizer-jms"  if="is.jms">
125
        <copy overwrite="true" file="${eclipselink.jpa.test}/${src.dir}/org/eclipse/persistence/testing/models/jpa/sessionbean/JPASessionCustomizer_jms.java" tofile="${eclipselink.jpa.test}/${src.dir}/org/eclipse/persistence/testing/models/jpa/sessionbean/JPASessionCustomizer.java"/>
126
    </target>
127
128
    <target name="session-customizer-rmi" if="is.rmi">
129
        <copy overwrite="true" file="${eclipselink.jpa.test}/${src.dir}/org/eclipse/persistence/testing/models/jpa/sessionbean/JPASessionCustomizer_rmi.java" tofile="${eclipselink.jpa.test}/${src.dir}/org/eclipse/persistence/testing/models/jpa/sessionbean/JPASessionCustomizer.java"/>
130
        <replace file="${eclipselink.jpa.test}/${src.dir}/org/eclipse/persistence/testing/models/jpa/sessionbean/JPASessionCustomizer.java" token='%%current-server-url%%' value="${current.server.url}"/>
131
    </target>    
132
    
133
    <target name="cachecoordination-build-and-deploy-server1" depends="set-app-name-cachecoordination">
134
        <antcall target="session-customizer-jms" inheritRefs="true"/>    
135
        <antcall target="session-customizer-rmi" inheritRefs="true">
136
		     <param name="current.server.url" value="rcm.wls.server1.url"/>
137
        </antcall>		     
138
	<ant antfile="${eclipselink.jpa.test}/build.xml" target="server-build" inheritRefs="true"/>
139
	<delete file="${eclipselink.jpa.test}/${src.dir}/org/eclipse/persistence/testing/models/jpa/sessionbean/JPASessionCustomizer.java"/>
140
        <antcall target="server-deploy-cachecoordination-server1" inheritRefs="true">
141
            <param name="ear.name" value="${EAR_NAME}.ear"/>
142
            <param name="application.name" value="${EAR_NAME}"/>
143
        </antcall>	
144
    </target>
145
    <target name="cachecoordination-build-and-deploy-server2" depends="set-app-name-cachecoordination">
146
        <antcall target="session-customizer-jms" inheritRefs="true"/>    
147
        <antcall target="session-customizer-rmi" inheritRefs="true">
148
		     <param name="current.server.url" value="rcm.wls.server2.url"/>
149
        </antcall>	
150
	<ant antfile="${eclipselink.jpa.test}/build.xml" target="server-build" inheritRefs="true"/>
151
	<delete file="${eclipselink.jpa.test}/${src.dir}/org/eclipse/persistence/testing/models/jpa/sessionbean/JPASessionCustomizer.java"/>	
152
        <antcall target="server-deploy-cachecoordination-server2" inheritRefs="true">
153
            <param name="ear.name" value="${EAR_NAME}.ear"/>
154
            <param name="application.name" value="${EAR_NAME}"/>
155
        </antcall>
156
    </target>    
157
    
158
    <target name="server-deploy-cachecoordination-server1">
159
        <ant antfile="${eclipselink.jpa.test}/cachecoordination_${server.name}.xml" target="${server.name}-deploy" inheritRefs="true">
160
            <property name="ear.name" value="${ear.name}"/>
161
            <property name="application.name" value="${application.name}"/>
162
	    <property name="target.server" value="${rcm.wls.server1.name}"/>
163
        </ant>
164
    </target>
165
166
    <target name="server-deploy-cachecoordination-server2">
167
        <ant antfile="${eclipselink.jpa.test}/cachecoordination_${server.name}.xml" target="${server.name}-deploy" inheritRefs="true">
168
            <property name="ear.name" value="${ear.name}"/>
169
            <property name="application.name" value="${application.name}"/>
170
	    <property name="target.server" value="${rcm.wls.server2.name}"/>
171
        </ant>
172
    </target>    
173
    <target name="server-undeploy-cachecoordination-server1">
174
        <ant antfile="${eclipselink.jpa.test}/cachecoordination_${server.name}.xml" target="${server.name}-undeploy" inheritRefs="true">
175
            <property name="application.name" value="${application.name}"/>
176
	    <property name="target.server" value="${rcm.wls.server1.name}"/>
177
        </ant>
178
    </target>
179
    <target name="server-undeploy-cachecoordination-server2">
180
        <ant antfile="${eclipselink.jpa.test}/cachecoordination_${server.name}.xml" target="${server.name}-undeploy" inheritRefs="true">
181
            <property name="application.name" value="${application.name}"/>
182
	    <property name="target.server" value="${rcm.wls.server2.name}"/>
183
        </ant>
184
    </target>
185
186
    <target name="server-run-test-cachecoordination" depends="config-compile-path">
187
       <property file="${eclipselink.jpa.test}/${server.name}.properties"/>
188
       <path id="run.path">
189
            <pathelement path="${eclipselink.jpa.test}/${build.dir}/${TEST_NAME}_client.jar"/>
190
            <pathelement path="${eclipselink.jpa.test}/${build.dir}/${MODEL_NAME}_ejb.jar"/>
191
            <fileset dir="${server.lib}" includes="${server.depend}"/>
192
            <path refid="compile.server.path"/>
193
        </path>
194
        <echo>Running "** ${cachecoordination.protocol} **" Cache Coordination tests: ${EAR_NAME} on ${server.name}</echo>
195
        <mkdir dir="${eclipselink.jpa.test}/${report.dir}"/>
196
        <junit printsummary="yes" haltonfailure="yes" failureproperty="junit.failed" fork="yes" showoutput="true" maxmemory="256m" dir="${run.dir}">
197
            <sysproperty key="server.platform" value="${server.platform}"/>
198
            <sysproperty key="server.user" value="${server.user}"/>
199
            <sysproperty key="server.password" value="${server.pwd}"/>
200
            <sysproperty key="server.url" value="${rcm.wls.server2.url}${MODEL_NAME}"/>
201
            <sysproperty key="server.testrunner" value="${server.testrunner}"/>
202
            <sysproperty key="server.run" value="TRUE"/>
203
            <classpath refid="run.path"/>
204
            <formatter type="xml"/>
205
            <test name="${TEST_SUITE}" haltonfailure="no" outfile="${report.dir}/${TEST_SUITE}-test-results"/>
206
        </junit>
207
    </target>
208
    
209
    <target name="config-compile-path">
210
        <path id="compile.path">
211
            <pathelement path="${eclipselink.jpa}/${classes.dir}"/>
212
            <fileset
213
                dir="${eclipselink.core.lib.dir}"
214
                includes="${eclipselink.core.depend}"/>
215
            <pathelement path="${eclipselink.jar.name}"/>
216
            <pathelement path="${junit.lib}"/>
217
        </path>
218
        <path id="compile.server.path">
219
            <path refid="compile.path"/>
220
            <pathelement path="${jdbc.driver.jar}"/>
221
        </path>
222
    </target>
223
224
</project>
(-)jpa/eclipselink.jpa.test/cachecoordination_weblogic.xml (+212 lines)
Line 0 Link Here
1
<!--/*******************************************************************************
2
* This program and the accompanying materials are made available under the 
3
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
4
* which accompanies this distribution. 
5
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
6
* and the Eclipse Distribution License is available at 
7
* http://www.eclipse.org/org/documents/edl-v10.php.
8
*
9
*   Ant naming conventions:
10
*   - regardless of the actual OS platform,'/' is the directory separator
11
*     (Ant will convert as appropriate).
12
*   - multi-word properties use periods '.'
13
*   - multi-word targets use hyphens '-' 
14
*   - multi-word macros use underscores '_'
15
*   - multi-word macro attributes are concatinated
16
*     e.g. 'runpathref'  
17
*   - multi-word tasks (taskdef) names are concatinated
18
*     e.g. 'validateconnection'
19
*   - OS environment variables are in ALLCAPS and have 'env' as a prefix
20
*     e.g. ${env.XXX}.
21
*   - Ant properties are lower case.
22
*
23
* Contributors:
24
*     pvijayaratnam - cache coordination test implementation
25
#******************************************************************************/-->
26
27
<!-- This ant project includes the following tasks:
28
        ....
29
-->
30
31
<project name="Eclipse Persistence Services JPA WLS CacheCoordination Testing" basedir=".">
32
33
    <property name="env" environment="env" value="env"/>
34
    <!-- Allows a user to overide certain user specific properties. -->
35
    <property file="${user.home}/weblogic.properties"/>
36
    <property file="test.properties"/>
37
    <property file="./weblogic.properties"/>
38
    
39
    <!-- WebLogic ant tasks -->
40
    <taskdef name="wlserver" classname="weblogic.ant.taskdefs.management.WLServer">
41
        <classpath>
42
            <pathelement location="${weblogic.home}/lib/weblogic.jar"/>
43
        </classpath>
44
    </taskdef>
45
    <taskdef name="wlconfig" classname="weblogic.ant.taskdefs.management.WLConfig">
46
        <classpath>
47
            <pathelement location="${weblogic.home}/lib/weblogic.jar"/>
48
        </classpath>
49
    </taskdef>
50
    <taskdef name="wldeploy" classname="weblogic.ant.taskdefs.management.WLDeploy">
51
        <classpath>
52
            <pathelement location="${weblogic.home}/lib/weblogic.jar"/>
53
        </classpath>
54
    </taskdef>
55
56
    <!-- Stop all servers. -->
57
    <target name="weblogic-stop-cachecoordination" depends="weblogic-stop-server3,weblogic-stop-server2,weblogic-stop-server1"/>
58
    <!-- Stop the managed server1 -->
59
    <target name="weblogic-stop-server1">
60
        <wlserver fork="true" failonerror="false" weblogichome="${weblogic.home}"
61
            dir="${weblogic.domain}" host="${weblogic.host}" domainname="${domain.name}" servername="${rcm.wls.server1.name}" port="${rcm.wls.server1.port}"
62
            username="${server.user}" password="${server.pwd}" action="shutdown">
63
        </wlserver>
64
    </target>
65
    <!-- Stop the managed server2 -->
66
    <target name="weblogic-stop-server2">
67
        <wlserver fork="true" failonerror="false" weblogichome="${weblogic.home}"
68
            dir="${weblogic.domain}" host="${weblogic.host}" domainname="${domain.name}" servername="${rcm.wls.server2.name}" port="${rcm.wls.server2.port}"
69
            username="${server.user}" password="${server.pwd}" action="shutdown">
70
        </wlserver>
71
    </target>
72
    <!-- Stop the admin server -->
73
    <target name="weblogic-stop-server3">
74
        <wlserver fork="true" failonerror="false" weblogichome="${weblogic.home}"
75
            dir="${weblogic.domain}" host="${weblogic.host}" domainname="${domain.name}" servername="${rcm.wls.server3.name}" port="${rcm.wls.server3.port}"
76
            username="${server.user}" password="${server.pwd}" action="shutdown">
77
        </wlserver>
78
    </target>
79
    
80
    <!--
81
        Deploy the application ear to the server.
82
        Note: WLS server must be running.
83
    -->
84
    <target name="weblogic-deploy">
85
        <wldeploy action="deploy"
86
            name="${application.name}" source="build/${ear.name}"
87
            user="${server.user}" password="${server.pwd}"
88
            adminurl="${server.url}" targets="${target.server}"
89
            failonerror="false">
90
        </wldeploy>
91
    </target>
92
93
    <!--
94
        Undeploy the application ear to the server.
95
        Note: WLS server must be running.
96
    -->
97
    <target name="weblogic-undeploy">
98
        <wldeploy action="undeploy" name="${application.name}"
99
            user="${server.user}" password="${server.pwd}"
100
            adminurl="${server.url}" targets="${target.server}"
101
            failonerror="false">
102
        </wldeploy>
103
    </target>
104
    
105
    <!-- initialize WL props for target 'run-cachecoordination-wls' -->
106
    <target name="init-wls">
107
		<property name="weblogic.domain" value="${weblogic.domain}"/>
108
		<property name="POLICY_OPTION" value="trackchanges"/>
109
		<path id="build.wls.path">
110
                 <pathelement path="${weblogic.home}/lib/weblogic.jar"/>
111
                 <pathelement path="${weblogic.domain}/lib/${eclipselink.jar.name}"/>
112
		 <pathelement path="${junit.lib}"/>
113
		 <!--pathelement path="${eclipselink.jpa.test}/weblogic.properties"/-->
114
		</path>
115
		<property name="SERVER_NAME" value="${rcm.wls.server1.name}"/>
116
		<property name="SERVER_VERSION" value="${weblogic.version}"/>
117
		<property name="is.wls" value="true"/>
118
    </target>
119
120
    <!-- Main target to run RCM-enabled Sessionbean tests.
121
         ** This target starts all servers on preconfigured domain and DataSource.
122
	 -->
123
    <target name="weblogic-start-cachecoordination" depends="init-wls">
124
        <delete file="${weblogic.domain}/edit.lok"/>
125
        <delete file="${rcm.wls.server1.name}.log"/>
126
        <delete file="${rcm.wls.server2.name}.log"/>
127
	<delete file="${rcm.wls.server3.name}.log"/>
128
		<parallel>
129
			<echo message="*** starting WebLogic Server1 (also act as AdminServer)"/>
130
			<java classname="weblogic.Server" 
131
				fork="true"
132
				failonerror="true">
133
				<jvmarg value="-server"/>
134
				<jvmarg value="-Xms512m"/>
135
				<jvmarg value="-Xmx960m"/>
136
				<jvmarg value="-XX:MaxPermSize=256m"/>
137
				<env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
138
				<sysproperty key="eclipselink.changePolicy" value="${POLICY_OPTION}"/>
139
				<sysproperty key="weblogic.Name" value="${rcm.wls.server1.name}"/>
140
				<sysproperty key="bea.home" value="${bea.root.dir}"/>
141
				<sysproperty key="weblogic.management.username" value="${server.user}"/>
142
				<sysproperty key="weblogic.management.password" value="${server.pwd}"/>
143
				<sysproperty key="java.security.police" value='"${weblogic.home}/lib/weblogic.policy"'/>
144
				<sysproperty key="weblogic.RootDirectory" value="${weblogic.domain}"/>
145
				<sysproperty key="weblogic.Stdout" value="${rcm.wls.server1.name}.log"/>
146
				<sysproperty key="weblogic.Stderr" value="${rcm.wls.server1.name}.err"/>
147
				<classpath refid="build.wls.path"/>
148
			</java>
149
			<sequential>
150
				<waitfor>
151
					<socket server="${rcm.wls.server1.httphost}" port="${rcm.wls.server1.port}"/>
152
				</waitfor>				
153
				<parallel>
154
				        <echo message="*** starting managed server: Server2 "/>
155
					<java classname="weblogic.Server" 
156
						fork="true"
157
						failonerror="true">
158
						<jvmarg value="-server"/>
159
						<jvmarg value="-Xms512m"/>
160
						<jvmarg value="-Xmx960m"/>
161
						<jvmarg value="-XX:MaxPermSize=256m"/>
162
						<env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
163
						<sysproperty key="eclipselink.changePolicy" value="${POLICY_OPTION}"/>
164
						<sysproperty key="weblogic.Name" value="${rcm.wls.server2.name}"/>
165
						<sysproperty key="bea.home" value="${bea.root.dir}"/>
166
						<sysproperty key="weblogic.management.server" value="${rcm.wls.server1.httphost}:${rcm.wls.server1.port}"/>
167
						<sysproperty key="weblogic.management.username" value="${server.user}"/>
168
						<sysproperty key="weblogic.management.password" value="${server.pwd}"/>
169
						<sysproperty key="java.security.police" value='"${weblogic.home}/lib/weblogic.policy"'/>
170
						<sysproperty key="weblogic.RootDirectory" value="${weblogic.domain}"/>
171
						<sysproperty key="weblogic.Stdout" value="${rcm.wls.server2.name}.log"/>
172
						<sysproperty key="weblogic.Stderr" value="${rcm.wls.server2.name}.err"/>
173
						<classpath refid="build.wls.path"/>
174
					</java>
175
					<echo message="*** starting managed server: Server3 "/>
176
					<java classname="weblogic.Server" 
177
						fork="true"
178
						failonerror="true">
179
						<jvmarg value="-server"/>
180
						<jvmarg value="-Xms512m"/>
181
						<jvmarg value="-Xmx960m"/>
182
						<jvmarg value="-XX:MaxPermSize=256m"/>
183
						<env key="PATH" value="${env.JAVA_HOME}/bin:${env.PATH}"/>
184
						<sysproperty key="eclipselink.changePolicy" value="${POLICY_OPTION}"/>
185
						<sysproperty key="weblogic.Name" value="${rcm.wls.server3.name}"/>
186
						<sysproperty key="bea.home" value="${bea.root.dir}"/>
187
						<sysproperty key="weblogic.management.server" value="${rcm.wls.server1.httphost}:${rcm.wls.server1.port}"/>
188
						<sysproperty key="weblogic.management.username" value="${server.user}"/>
189
						<sysproperty key="weblogic.management.password" value="${server.pwd}"/>
190
						<sysproperty key="java.security.police" value='"${weblogic.home}/lib/weblogic.policy"'/>
191
						<sysproperty key="weblogic.RootDirectory" value="${weblogic.domain}"/>
192
						<sysproperty key="weblogic.Stdout" value="${rcm.wls.server3.name}.log"/>
193
						<sysproperty key="weblogic.Stderr" value="${rcm.wls.server3.name}.err"/>
194
						<classpath refid="build.wls.path"/>
195
					</java>
196
					<sequential>
197
						<waitfor>
198
							<and>
199
								<socket server="${rcm.wls.server2.httphost}" port="${rcm.wls.server2.port}"/>
200
								<socket server="${rcm.wls.server3.httphost}" port="${rcm.wls.server3.port}"/>
201
							</and>
202
						</waitfor>
203
						<sleep seconds="60"/>
204
					</sequential>
205
				</parallel>
206
			</sequential>
207
		</parallel>  
208
	</target>
209
210
211
212
</project>
(-)jpa/eclipselink.jpa.test/resource/server/persistence_cachecoordination.xml (+22 lines)
Line 0 Link Here
1
<?xml version="1.0" encoding="windows-1252" ?>
2
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
4
             version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
5
    <persistence-unit name="%%default%%">
6
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
7
        <jta-data-source>%%data-source-name%%</jta-data-source>
8
	<class>org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Employee</class>
9
	<class>org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Address</class>
10
        <properties>
11
	  <property name="eclipselink.session.customizer" value="org.eclipse.persistence.testing.models.jpa.sessionbean.JPASessionCustomizer"/>
12
            <property name="eclipselink.target-server" value="WebLogic"/>
13
            <property name="eclipselink.validate-existence" value="true"/>
14
            <property name="eclipselink.logging.level" value="FINEST"/>
15
	    <property name="rcm.wls.jms.topichost.url" value="%%topic-host-url%%"/>
16
	    <property name="rcm.wls.jms.topicname" value="%%topic-name%%"/>
17
	    <property name="rcm.wls.jms.topic.connectionfactory.name" value="%%topic-connection-factory%%"/>
18
	    <property name="server.user" value="%%server-user%%"/>
19
	    <property name="server.pwd" value="%%server-pwd%%"/>
20
        </properties>
21
    </persistence-unit>
22
</persistence>
(-)jpa/eclipselink.jpa.test/src/org/eclipse/persistence/testing/models/jpa/fieldaccess/advanced/Employee.java (-4 / +4 lines)
Lines 29-36 Link Here
29
import org.eclipse.persistence.annotations.TypeConverter;
29
import org.eclipse.persistence.annotations.TypeConverter;
30
import org.eclipse.persistence.annotations.OptimisticLocking;
30
import org.eclipse.persistence.annotations.OptimisticLocking;
31
31
32
import static org.eclipse.persistence.annotations.CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS;
32
import static org.eclipse.persistence.annotations.CacheCoordinationType.SEND_NEW_OBJECTS_WITH_CHANGES;//INVALIDATE_CHANGED_OBJECTS;
33
import static org.eclipse.persistence.annotations.CacheType.SOFT_WEAK;
33
import static org.eclipse.persistence.annotations.CacheType.FULL;//SOFT_WEAK;
34
import static javax.persistence.CascadeType.*;
34
import static javax.persistence.CascadeType.*;
35
import static javax.persistence.FetchType.*;
35
import static javax.persistence.FetchType.*;
36
import static javax.persistence.GenerationType.*;
36
import static javax.persistence.GenerationType.*;
Lines 107-118 Link Here
107
    objectType=Long.class
107
    objectType=Long.class
108
)
108
)
109
@Cache(
109
@Cache(
110
    type=SOFT_WEAK,
110
    type=FULL,
111
    shared=true,
111
    shared=true,
112
    expiry=100000,
112
    expiry=100000,
113
    alwaysRefresh=false, // some test dependencies for this to be false.
113
    alwaysRefresh=false, // some test dependencies for this to be false.
114
    disableHits=true, // Employee customizer should set it back to false.
114
    disableHits=true, // Employee customizer should set it back to false.
115
    coordinationType=INVALIDATE_CHANGED_OBJECTS
115
    coordinationType=SEND_NEW_OBJECTS_WITH_CHANGES
116
)
116
)
117
@Customizer(org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.EmployeeCustomizer.class)
117
@Customizer(org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.EmployeeCustomizer.class)
118
public class Employee implements Serializable, Cloneable {
118
public class Employee implements Serializable, Cloneable {
(-)jpa/eclipselink.jpa.test/src/org/eclipse/persistence/testing/models/jpa/sessionbean/EmployeeService.java (+2 lines)
Lines 24-32 Link Here
24
    
24
    
25
    Employee findById(int id);
25
    Employee findById(int id);
26
    
26
    
27
    List findByFirstName(String fname);
27
    Employee fetchById(int id);
28
    Employee fetchById(int id);
28
    
29
    
29
    void update(Employee employee);
30
    void update(Employee employee);
30
    
31
    
31
    int insert(Employee employee);
32
    int insert(Employee employee);
33
    void delete(Employee employee);
32
}
34
}
(-)jpa/eclipselink.jpa.test/src/org/eclipse/persistence/testing/models/jpa/sessionbean/EmployeeServiceBean.java (+10 lines)
Lines 43-48 Link Here
43
        return employee;
43
        return employee;
44
    }
44
    }
45
    
45
    
46
    public List findByFirstName(String fname) {
47
        //NamedQuery("findAllFieldAccessEmployeesByFirstName")
48
        Query query = entityManager.createQuery("SELECT e FROM Employee e where e.firstName = :fname").setParameter("fname", fname);
49
	query.setHint("eclipselink.cache-usage", "CheckCacheOnly");
50
        return query.getResultList();
51
    }
46
    public Employee fetchById(int id) {
52
    public Employee fetchById(int id) {
47
        Employee employee = entityManager.find(Employee.class, new Integer(id));
53
        Employee employee = entityManager.find(Employee.class, new Integer(id));
48
        employee.getAddress();
54
        employee.getAddress();
Lines 63-66 Link Here
63
        return employee.getId();
69
        return employee.getId();
64
    }
70
    }
65
    
71
    
72
   public void delete(Employee employee) {
73
         Employee emp = entityManager.find(Employee.class, employee.getId());       
74
        entityManager.remove(emp);
75
    }
66
}
76
}
(-)jpa/eclipselink.jpa.test/src/org/eclipse/persistence/testing/models/jpa/sessionbean/JPASessionCustomizer_jms.java (+80 lines)
Line 0 Link Here
1
/*******************************************************************************
2
 * Copyright (c) 1998, 2008 Oracle. All rights reserved.
3
 * This program and the accompanying materials are made available under the 
4
 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
5
 * which accompanies this distribution. 
6
 * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
 * and the Eclipse Distribution License is available at 
8
 * http://www.eclipse.org/org/documents/edl-v10.php.
9
 *
10
 * Contributors:
11
*     pvijayaratnam - cache coordination test implementation
12
 ******************************************************************************/  
13
package org.eclipse.persistence.testing.models.jpa.sessionbean;
14
15
import org.eclipse.persistence.config.SessionCustomizer;
16
import org.eclipse.persistence.sessions.Session;
17
import org.eclipse.persistence.sessions.DatabaseSession;
18
import org.eclipse.persistence.internal.sessions.DatabaseSessionImpl;
19
20
import org.eclipse.persistence.sessions.coordination.RemoteCommandManager;
21
import org.eclipse.persistence.sessions.coordination.TransportManager;
22
import org.eclipse.persistence.sessions.coordination.jms.JMSTopicTransportManager;
23
24
import java.io.*;
25
import java.util.*;
26
27
public class JPASessionCustomizer implements SessionCustomizer {
28
29
	
30
    public void customize(Session session) {
31
32
	    RemoteCommandManager rcm = new RemoteCommandManager((DatabaseSessionImpl)session);
33
            JMSTopicTransportManager tm = new JMSTopicTransportManager(rcm);
34
35
	    //loading properities using FileInputStream	    
36
	    Properties properties = new Properties();
37
	    try{    
38
		    FileInputStream fis = new FileInputStream("weblogic.properties");
39
		    	    properties.load(fis);
40
		    }
41
	    catch(Exception notFoundException){
42
		    throw new Error("Properties not found.", notFoundException);
43
	    }
44
45
	    tm.setTopicHostUrl(properties.getProperty("rcm.wls.jms.topichost.url"));    
46
	    tm.setTopicName(properties.getProperty("rcm.wls.jms.topicname"));
47
	    tm.setTopicConnectionFactoryName(properties.getProperty("rcm.wls.jms.topic.connectionfactory.name"));	
48
            tm.setUserName(properties.getProperty("server.user"));
49
	    tm.setPassword(properties.getProperty("server.pwd"));
50
	    
51
	    //loading properities using getResource	    
52
   /*	    
53
	    this.getClass().getResource("weblogic.properties");
54
	    tm.setTopicHostUrl(System.getProperty("rcm.wls.jms.topichost.url"));    
55
	    tm.setTopicName(System.getProperty("rcm.wls.jms.topicname"));
56
	    tm.setTopicConnectionFactoryName(System.getProperty("rcm.wls.jms.topic.connectionfactory.name"));	
57
            tm.setUserName(System.getProperty("server.user"));
58
	    tm.setPassword(System.getProperty("server.pwd"));
59
    */
60
	    rcm.setTransportManager(tm);	    
61
	    rcm.setShouldPropagateAsynchronously(false);
62
	    rcm.getTransportManager().setNamingServiceType(TransportManager.JNDI_NAMING_SERVICE);
63
            
64
            rcm.getTransportManager().setInitialContextFactoryName("weblogic.jndi.WLInitialContextFactory");
65
	    rcm.getTransportManager().setShouldRemoveConnectionOnError(true);
66
            rcm.setServerPlatform(((org.eclipse.persistence.sessions.DatabaseSession)session).getServerPlatform());
67
	    ((DatabaseSessionImpl)session).setCommandManager(rcm);
68
	    ((DatabaseSessionImpl)session).setShouldPropagateChanges(true);
69
            rcm.initialize();
70
71
	    // Sleep to allow RCM to startup and find each session.
72
            try {
73
                  Thread.sleep(2000);
74
            } catch (Exception ignore) {
75
            }
76
77
        }
78
79
80
}
(-)jpa/eclipselink.jpa.test/src/org/eclipse/persistence/testing/models/jpa/sessionbean/JPASessionCustomizer_rmi.java (+80 lines)
Line 0 Link Here
1
/*******************************************************************************
2
 * Copyright (c) 1998, 2008 Oracle. All rights reserved.
3
 * This program and the accompanying materials are made available under the 
4
 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
5
 * which accompanies this distribution. 
6
 * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
 * and the Eclipse Distribution License is available at 
8
 * http://www.eclipse.org/org/documents/edl-v10.php.
9
 *
10
 * Contributors:
11
*     pvijayaratnam - cache coordination test implementation
12
 ******************************************************************************/  
13
package org.eclipse.persistence.testing.models.jpa.sessionbean;
14
15
import org.eclipse.persistence.config.SessionCustomizer;
16
import org.eclipse.persistence.sessions.Session;
17
import org.eclipse.persistence.sessions.DatabaseSession;
18
import org.eclipse.persistence.internal.sessions.DatabaseSessionImpl;
19
20
import org.eclipse.persistence.sessions.coordination.RemoteCommandManager;
21
import org.eclipse.persistence.sessions.coordination.TransportManager;
22
23
import java.io.*;
24
import java.util.*;
25
26
public class JPASessionCustomizer implements SessionCustomizer {
27
28
    public void customize(Session session) {
29
30
	    RemoteCommandManager rcm = new RemoteCommandManager((DatabaseSessionImpl)session);
31
            
32
            ((DatabaseSessionImpl)session).setShouldPropagateChanges(true);
33
            ((DatabaseSessionImpl)session).setCommandManager(rcm);
34
	    rcm.setShouldPropagateAsynchronously(false);
35
	    
36
	    //loading properities using FileInputStream
37
	    Properties properties = new Properties();
38
	    try{    
39
		    FileInputStream fis = new FileInputStream("weblogic.properties");
40
		    	    properties.load(fis);
41
		    }
42
	    catch(Exception notFoundException){
43
		    throw new Error("Properties not found.", notFoundException);
44
	    }
45
	    
46
	    ((DatabaseSessionImpl)session).getCommandManager().getDiscoveryManager().setAnnouncementDelay(Integer.parseInt(properties.getProperty("announcement.delay").trim()));
47
            ((DatabaseSessionImpl)session).getCommandManager().getDiscoveryManager().setMulticastGroupAddress(properties.getProperty("rcm.multicastgroup"));
48
            ((DatabaseSessionImpl)session).getCommandManager().getDiscoveryManager().setMulticastPort(Integer.parseInt(properties.getProperty("rcm.multicastport").trim()));
49
            ((DatabaseSessionImpl)session).getCommandManager().getDiscoveryManager().setPacketTimeToLive(Integer.parseInt(properties.getProperty("rcm.packet.timetolive").trim()));
50
51
	    rcm.setUrl(properties.getProperty("%%current-server-url%%"));
52
            rcm.getTransportManager().setUserName(properties.getProperty("server.user"));
53
	    rcm.getTransportManager().setPassword(properties.getProperty("server.pwd"));
54
	    
55
	    //loading properities using getResource
56
/*          this.getClass().getResource("weblogic.properties");
57
	    ((DatabaseSessionImpl)session).getCommandManager().getDiscoveryManager().setAnnouncementDelay(Integer.parseInt(System.getProperty("announcement.delay").trim()));
58
            ((DatabaseSessionImpl)session).getCommandManager().getDiscoveryManager().setMulticastGroupAddress(System.getProperty("rcm.multicastgroup"));
59
            ((DatabaseSessionImpl)session).getCommandManager().getDiscoveryManager().setMulticastPort(Integer.parseInt(System.getProperty("rcm.multicastport").trim()));
60
            ((DatabaseSessionImpl)session).getCommandManager().getDiscoveryManager().setPacketTimeToLive(Integer.parseInt(System.getProperty("rcm.packet.timetolive").trim()));
61
62
	    rcm.setUrl(System.getProperty("rcm.wls.server1.url"));  
63
            rcm.getTransportManager().setUserName(System.getProperty("server.user"));
64
	    rcm.getTransportManager().setPassword(System.getProperty("server.pwd"));
65
*/
66
	    rcm.getTransportManager().setNamingServiceType(TransportManager.JNDI_NAMING_SERVICE);
67
            rcm.getTransportManager().setInitialContextFactoryName("weblogic.jndi.WLInitialContextFactory");
68
	    rcm.getTransportManager().setShouldRemoveConnectionOnError(true);
69
            rcm.setServerPlatform(((org.eclipse.persistence.sessions.DatabaseSession)session).getServerPlatform());
70
            rcm.initialize();
71
72
	   // Sleep to allow RCM to startup and find each session.
73
            try {
74
                  Thread.sleep(2000);
75
            } catch (Exception ignore) {
76
            }
77
78
        }
79
80
}
(-)jpa/eclipselink.jpa.test/src/org/eclipse/persistence/testing/tests/jpa/sessionbean/SessionBeanTestsRCM.java (+288 lines)
Line 0 Link Here
1
/*******************************************************************************
2
 * Copyright (c) 1998, 2008 Oracle. All rights reserved.
3
 * This program and the accompanying materials are made available under the 
4
 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 
5
 * which accompanies this distribution. 
6
 * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7
 * and the Eclipse Distribution License is available at 
8
 * http://www.eclipse.org/org/documents/edl-v10.php.
9
 *
10
 * Contributors:
11
*     pvijayaratnam - cache coordination test implementation
12
 ******************************************************************************/  
13
 package org.eclipse.persistence.testing.tests.jpa.sessionbean;
14
15
import java.util.Iterator;
16
import java.util.List;
17
import java.util.Properties;
18
import javax.naming.Context;
19
import javax.naming.InitialContext;
20
import javax.naming.NameNotFoundException;
21
import javax.rmi.PortableRemoteObject;
22
23
import junit.framework.*;
24
25
import org.eclipse.persistence.exceptions.ValidationException;
26
import org.eclipse.persistence.testing.framework.junit.JUnitTestCase;
27
import org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Department;
28
import org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Employee;
29
import org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.Address;
30
import org.eclipse.persistence.testing.models.jpa.fieldaccess.advanced.AdvancedTableCreator;
31
import org.eclipse.persistence.testing.models.jpa.sessionbean.EmployeeService;
32
33
import org.eclipse.persistence.expressions.Expression;
34
import org.eclipse.persistence.expressions.ExpressionBuilder;
35
import org.eclipse.persistence.queries.ReadObjectQuery;
36
37
import java.util.*;
38
import java.io.*;
39
40
/**
41
 * EJB 3 SessionBean tests.
42
 * Testing using EclipseLink JPA in a JEE EJB 3 SessionBean environment.
43
 * These tests can only be run with a server.
44
 */
45
public class SessionBeanTestsRCM extends JUnitTestCase {
46
    protected EmployeeService service;
47
	private String wlsUserName;
48
	private String wlsPassword;
49
	private String server1Url;
50
	private String server2Url;
51
	private String server3Url;
52
	int empId = 0;
53
	private Employee employeeCached = null; 	
54
	
55
    public SessionBeanTestsRCM() {
56
        super();
57
    }
58
59
    public SessionBeanTestsRCM(String name) {
60
        super(name);
61
    }
62
63
    public SessionBeanTestsRCM(String name, boolean shouldRunTestOnServer) {
64
        super(name);
65
66
	   this.getClass().getResource("weblogic.properties");
67
	    wlsUserName = System.getProperty("server.user");
68
	    wlsPassword = System.getProperty("server.pwd");
69
	    server1Url = System.getProperty("rcm.wls.server1.url");    
70
	    server2Url = System.getProperty("rcm.wls.server2.url");
71
	    server3Url = System.getProperty("rcm.wls.server3.url");
72
    }
73
    
74
    public static Test suite() {
75
76
	    
77
        TestSuite suite = new TestSuite("SessionBeanTestsRCM");
78
79
	suite.addTest(new SessionBeanTestsRCM("testSetupRcmOnServer2", true));
80
	suite.addTest(new SessionBeanTestsRCM("testSetupForDeleteOnServer2", true));
81
	
82
	suite.addTest(new SessionBeanTestsRCM("testSetupRcmOnServer1", true));
83
	suite.addTest(new SessionBeanTestsRCM("testPerformDeleteOnServer1", true));
84
	
85
	//suite.addTest(new SessionBeanTestsRCM("testReadFromServer2AfterUpdateNonJPQL", true));
86
        suite.addTest(new SessionBeanTestsRCM("testConfirmUpdateOnServer2", true));
87
        suite.addTest(new SessionBeanTestsRCM("testConfirmDeleteOnServer2", true));
88
        return suite;
89
    }
90
    
91
    /**
92
     * The setup is done as a test, both to record its failure, and to alow execution in the server2.
93
     */
94
    public void testSetupRcmOnServer2() throws Exception {
95
	    new AdvancedTableCreator().replaceTables(JUnitTestCase.getServerSession("sessionbean"));
96
    }
97
98
    public EmployeeService getEmployeeService(String url) throws Exception {
99
        if (service == null) {
100
            Properties properties = new Properties();
101
            if (url != null) {
102
                properties.put("java.naming.provider.url", url);
103
            }
104
            Context context = new InitialContext(properties);
105
    
106
            try {
107
                service = (EmployeeService) PortableRemoteObject.narrow(context.lookup("java:comp/env/ejb/EmployeeService"), EmployeeService.class);
108
            } catch (NameNotFoundException notFoundException) {
109
                try {
110
                    service = (EmployeeService) PortableRemoteObject.narrow(context.lookup("ejb/EmployeeService"), EmployeeService.class);
111
                } catch (NameNotFoundException notFoundException2) {
112
                    try {
113
                        // WLS likes this one.
114
                        service = (EmployeeService) PortableRemoteObject.narrow(context.lookup("EmployeeService#org.eclipse.persistence.testing.models.jpa.sessionbean.EmployeeService"), EmployeeService.class);
115
                    } catch (NameNotFoundException notFoundException3) {
116
                        try {
117
                             //jboss likes this one
118
                             service = (EmployeeService) PortableRemoteObject.narrow(context.lookup("EmployeeService/remote"), EmployeeService.class);
119
                        } catch (NameNotFoundException notFoundException4) {
120
                             throw new Error("All lookups failed.", notFoundException);
121
                        }
122
                    }
123
                }
124
            }
125
        }
126
        return service;
127
    }    
128
   
129
130
    /* CacheCoordination Delete Test Setup on Server2:
131
    *  This test insert an employee record, which will be deleted later using Server1
132
    */
133
   public void testSetupForDeleteOnServer2() throws Exception {  
134
       	/* Create an Employee record using Server2 */
135
        Employee employee = new Employee();
136
        employee.setFirstName("Jane2");
137
        employee.setLastName("Doe2");
138
	employee.setAddress(new Address());
139
        employee.getAddress().setCity("Ottawa2");
140
	Employee manager = new Employee();
141
        manager.setFirstName("John2");
142
        manager.setLastName("Done2");
143
        employee.setManager(manager);
144
145
        int empID = getEmployeeService(server2Url).insert(employee); 
146
       
147
       try{    
148
        employee = getEmployeeService(server2Url).findById(empID);
149
	if(employee == null){
150
        	
151
          fail("Server2 CacheCoordination Setup Failure: New employee added from Server2 is not found in cache or DB.");
152
        }
153
       } catch(Exception e){
154
	       throw new Error("Following Emp ID not found: " + empID); 
155
       }      
156
   }  
157
158
    /**
159
     * CacheCoordination Update Test setup on Server1:
160
     * This test insert an employee record, which is then updated using Server1. Later on,  this update will be verified on Server2.
161
     * The setup is done as a test, both to record its failure, and to alow execution in the server1.
162
     */
163
    public void testSetupRcmOnServer1() throws Exception {
164
165
       	/* Create an Employee record in Server1 */
166
        Employee employee = new Employee();
167
        employee.setFirstName("Jane1");
168
        employee.setLastName("Doe1");
169
        employee.setAddress(new Address());
170
        employee.getAddress().setCity("Ottawa1");
171
	Employee manager = new Employee();
172
        manager.setFirstName("John1");
173
        manager.setLastName("Done1");
174
        employee.setManager(manager);
175
	
176
        empId = getEmployeeService(server1Url).insert(employee);	
177
	
178
	/* read Employee from cache and/or DB */
179
	Employee jane1 = (Employee) getEmployeeService(server1Url).findById(empId);
180
	/* update employee on Server1 */
181
        jane1.setLastName("LastNameUpdatedOnServer1");
182
        jane1.getAddress().setCity("newCity");
183
        getEmployeeService(server1Url).update(jane1);
184
185
        if (!jane1.getLastName().equals("LastNameUpdatedOnServer1")) {
186
		fail("UpdateTest Setup on Server1 failed");
187
        } 
188
	
189
    }
190
 
191
     /**
192
     * CacheCoordination Test setup for Delete on Server1:
193
     * Find employee created on Server2, then delete it using Server1.
194
     */
195
    public void testPerformDeleteOnServer1() throws Exception {
196
	
197
	List result = getEmployeeService(server1Url).findByFirstName("Jane2");
198
	int count = 0;
199
	for(Iterator i = result.iterator(); i.hasNext();){
200
		 employeeCached = (Employee) i.next();
201
	}
202
203
	if(employeeCached == null){
204
        	
205
          fail("Perform Delete Test failed: New employee was not found in distributed cache to delete");
206
        }
207
	
208
        getEmployeeService(server1Url).delete(employeeCached);   	
209
    }
210
    
211
       
212
    /* CacheCoordination Test - Verify that Object Update done on Server1 is sync with Server2 thru cache:
213
    *  This test uses JPQL to read object on Server2.
214
    */
215
   public void testConfirmUpdateOnServer2() throws Exception {  
216
        
217
        
218
        /* verify updates are in sync: read Employee from using Server2 URL */
219
	   
220
	List result = getEmployeeService(server2Url).findByFirstName("Jane1");
221
	int count = 0;
222
	for(Iterator i = result.iterator(); i.hasNext();){
223
		 employeeCached = (Employee) i.next();
224
	}
225
	if(employeeCached == null){
226
        	
227
          fail("Object Update Test verification failed: New employee was not found in distributed cache");
228
        }
229
        if (!employeeCached.getLastName().equals("LastNameUpdatedOnServer1")) {
230
		fail("Object Update Test verification failed: Changes from server1 is not seen by server2 from distributed cache");
231
        } 
232
233
234
   }  
235
     
236
237
   
238
   /* CacheCoordination Test - Verify that Object Delete done on Server1 is sync with Server2 thru cache:
239
    *    This test uses JPQL to read object on Server2.
240
    */
241
   public void testConfirmDeleteOnServer2() throws Exception {  
242
      
243
        /* verify deletes are in sync: read Employee from using Server2 URL */
244
	   
245
	List result = getEmployeeService(server2Url).findByFirstName("Jane2");
246
	int count = 0;
247
	for(Iterator i = result.iterator(); i.hasNext();){
248
		 employeeCached = (Employee) i.next();
249
	}
250
	if(!( employeeCached == null)){
251
        	
252
          fail("Object Delete Test verification failed: employee was not removed from cache as expected" );
253
        } 
254
255
   }   
256
257
    /* CacheCoordination Test - Verify changes are on cache and read onto Server2:
258
    *
259
    */
260
/*
261
   public void testReadFromServer2AfterUpdateNonJPQL() throws Exception {  
262
        
263
        
264
        // read Employee from using Server2 URL 
265
       ExpressionBuilder employees = new ExpressionBuilder();
266
       Expression expression = employees.get("firstName").equal("Jane1");
267
       ReadObjectQuery query = new ReadObjectQuery(Employee.class, expression);            
268
        
269
        // verify updates are in sync
270
	
271
	query.checkCacheOnly();
272
	//empID = getEmpID();
273
        Employee employeeCached = (Employee) (this.getServerSession("sessionbean")).executeQuery(query); 
274
275
	if(employeeCached == null){
276
        	
277
          fail("Object_Exist_Test: New employee was not added to distributed cache: (SERVER2_URL) "+ (this.getServerSession("sessionbean")).getName() );
278
        }
279
        if (!employeeCached.getLastName().equals("LastNameUpdatedOnServer1")) {
280
		fail("Object_Update_Test: Changes from server1 is not seen by server2 from distributed cache");
281
        } 
282
283
        
284
   }
285
*/   
286
287
}
288
(-)jpa/eclipselink.jpa.test/weblogic.properties (+36 lines)
Lines 19-21 Link Here
19
junit.lib=../../../extension.lib.external/junit.jar
19
junit.lib=../../../extension.lib.external/junit.jar
20
eclipselink.jar.name=../../eclipselink.jar
20
eclipselink.jar.name=../../eclipselink.jar
21
jdbc.driver.jar=../../../extension.oracle.lib.external/ojdbc5_11.jar
21
jdbc.driver.jar=../../../extension.oracle.lib.external/ojdbc5_11.jar
22
23
# CacheCoordination Weblogic properties
24
domain.name=mydomain
25
weblogic.version=10.3
26
27
#rcm.wls.adminserver.httphost=${weblogic.host}
28
rcm.wls.server1.httphost=${weblogic.host}
29
rcm.wls.server2.httphost=${weblogic.host}
30
rcm.wls.server3.httphost=${weblogic.host}
31
#rcm.wls.adminserver.name=server1
32
rcm.wls.server1.name=server1
33
rcm.wls.server2.name=server2
34
rcm.wls.server3.name=server3
35
#rcm.wls.adminserver.port=${weblogic.port}
36
rcm.wls.server1.port=7001
37
rcm.wls.server2.port=7021
38
rcm.wls.server3.port=7031
39
40
rcm.wls.server1.url=t3://${rcm.wls.server1.httphost}:${rcm.wls.server1.port}/
41
rcm.wls.server2.url=t3://${rcm.wls.server2.httphost}:${rcm.wls.server2.port}/
42
rcm.wls.server3.url=t3://${rcm.wls.server3.httphost}:${rcm.wls.server3.port}/
43
44
# test config using protocol: valid values are jms or rmi
45
cachecoordination.protocol=jms
46
47
# RMI properties
48
announcement.delay=1000
49
rcm.multicastgroup=239.192.0.0
50
rcm.multicastport=3121
51
rcm.packet.timetolive=2
52
53
# JMS properties
54
#rcm.wls.jms.topichost.url=t3://${rcm.wls.server1.httphost}:${rcm.wls.server1.port}
55
rcm.wls.jms.topichost.url=t3://localhost:7001
56
rcm.wls.jms.topicname=jms/EclipseLinkTopic
57
rcm.wls.jms.topic.connectionfactory.name=jms/EclipseLinkTopicConnectionFactory

Return to bug 262740