17
17
*/
18
18
package org .jboss .ejb .client .test ;
19
19
20
- import java .util .Arrays ;
21
20
import java .util .Collection ;
22
21
import java .util .List ;
23
22
33
32
import org .jboss .ejb .client .test .common .DummyServer ;
34
33
import org .jboss .ejb .client .test .common .Echo ;
35
34
import org .jboss .ejb .client .test .common .EchoBean ;
35
+ import org .jboss .ejb .client .test .common .StatefulEchoBean ;
36
+ import org .jboss .ejb .client .test .common .StatelessEchoBean ;
36
37
import org .jboss .ejb .server .ClusterTopologyListener .ClusterInfo ;
37
38
import org .jboss .ejb .server .ClusterTopologyListener .NodeInfo ;
38
39
import org .jboss .logging .Logger ;
49
50
* @author Jason T. Greene
50
51
* @author <a href="mailto:[email protected] ">Richard Achmatowicz</a>
51
52
*/
52
- public class ClusterNodeSelectorTestCase {
53
+ public class ClusterNodeSelectorTestCase extends AbstractEJBClientTestCase {
53
54
54
55
private static final Logger logger = Logger .getLogger (ClusterNodeSelectorTestCase .class );
55
56
private static final String PROPERTIES_FILE = "cluster-node-selector-jboss-ejb-client.properties" ;
56
57
57
- // servers
58
- private static final String SERVER1_NAME = "node1" ;
59
- private static final String SERVER2_NAME = "node2" ;
60
-
61
- private DummyServer [] servers = new DummyServer [2 ];
62
- private static String [] serverNames = {SERVER1_NAME , SERVER2_NAME };
63
- private boolean [] serversStarted = new boolean [2 ] ;
64
-
65
- // module
66
- private static final String APP_NAME = "my-foo-app" ;
67
- private static final String MODULE_NAME = "my-bar-module" ;
68
- private static final String DISTINCT_NAME = "" ;
69
-
70
- // cluster
71
- // note: node names and server names should match!
72
- private static final String CLUSTER_NAME = "ejb" ;
73
- private static final String NODE1_NAME = "node1" ;
74
- private static final String NODE2_NAME = "node2" ;
75
-
76
- private static final NodeInfo NODE1 = DummyServer .getNodeInfo (NODE1_NAME , "localhost" ,6999 ,"0.0.0.0" ,0 );
77
- private static final NodeInfo NODE2 = DummyServer .getNodeInfo (NODE2_NAME , "localhost" ,7099 ,"0.0.0.0" ,0 );
78
- private static final ClusterInfo CLUSTER = DummyServer .getClusterInfo (CLUSTER_NAME , NODE1 , NODE2 );
79
-
80
58
public static class TestSelector implements ClusterNodeSelector {
81
59
private static volatile String PICK_NODE = null ;
82
60
@@ -111,29 +89,18 @@ public static void beforeClass() throws Exception {
111
89
public void beforeTest () throws Exception {
112
90
113
91
// start a server
114
- servers [0 ] = new DummyServer ("localhost" , 6999 , serverNames [0 ]);
115
- servers [0 ].start ();
116
- serversStarted [0 ] = true ;
117
- logger .info ("Started server " + serverNames [0 ]);
118
-
119
- // start a server
120
- servers [1 ] = new DummyServer ("localhost" , 7099 , serverNames [1 ]);
121
- servers [1 ].start ();
122
- serversStarted [1 ] = true ;
123
- logger .info ("Started server " + serverNames [1 ]);
92
+ startServer (0 , 6999 );
93
+ startServer (1 , 7099 );
124
94
125
95
// deploy modules
126
- servers [0 ].register (APP_NAME , MODULE_NAME , DISTINCT_NAME , Echo .class .getSimpleName (), new EchoBean (NODE1_NAME ));
127
- logger .info ("Registered module on server " + servers [0 ]);
128
-
129
- servers [1 ].register (APP_NAME , MODULE_NAME , DISTINCT_NAME , Echo .class .getSimpleName (), new EchoBean (NODE2_NAME ));
130
- logger .info ("Registered module on server " + servers [1 ]);
96
+ deployStateful (0 );
97
+ deployStateless (0 );
98
+ deployStateful (1 );
99
+ deployStateless (1 );
131
100
132
101
// define clusters
133
- servers [0 ].addCluster (CLUSTER );
134
- logger .info ("Added node to cluster " + CLUSTER_NAME + ": server " + servers [1 ]);
135
- servers [1 ].addCluster (CLUSTER );
136
- logger .info ("Added node to cluster " + CLUSTER_NAME +": server " + servers [1 ]);
102
+ defineCluster (0 , CLUSTER );
103
+ defineCluster (1 , CLUSTER );
137
104
}
138
105
139
106
@ Test
@@ -160,7 +127,7 @@ public void testClusteredSLSBInvocation() {
160
127
logger .info ("Testing invocation on SLSB proxy with ClusterAffinity" );
161
128
162
129
// create a proxy for invocation
163
- final StatelessEJBLocator <Echo > statelessEJBLocator = new StatelessEJBLocator <Echo >(Echo .class , APP_NAME , MODULE_NAME , Echo .class .getSimpleName (), DISTINCT_NAME );
130
+ final StatelessEJBLocator <Echo > statelessEJBLocator = new StatelessEJBLocator <Echo >(Echo .class , APP_NAME , MODULE_NAME , StatelessEchoBean .class .getSimpleName (), DISTINCT_NAME );
164
131
final Echo proxy = EJBClient .createProxy (statelessEJBLocator );
165
132
166
133
EJBClient .setStrongAffinity (proxy , new ClusterAffinity ("ejb" ));
@@ -171,12 +138,12 @@ public void testClusteredSLSBInvocation() {
171
138
172
139
TestSelector .PICK_NODE = NODE1_NAME ;
173
140
for (int i = 0 ; i < 10 ; i ++) {
174
- Assert .assertEquals (NODE1_NAME , proxy .whoAreYou ());
141
+ Assert .assertEquals (NODE1_NAME , proxy .echo ( "someMsg" ). getNode ());
175
142
}
176
143
177
144
TestSelector .PICK_NODE = NODE2_NAME ;
178
145
for (int i = 0 ; i < 10 ; i ++) {
179
- Assert .assertEquals (NODE2_NAME , proxy .whoAreYou ());
146
+ Assert .assertEquals (NODE2_NAME , proxy .echo ( "someMsg" ). getNode ());
180
147
}
181
148
}
182
149
@@ -189,22 +156,22 @@ public void testClusteredSFSBInvocation() throws Exception {
189
156
190
157
TestSelector .PICK_NODE = NODE2_NAME ;
191
158
// create a proxy for invocation
192
- final StatelessEJBLocator <Echo > statelessEJBLocator = new StatelessEJBLocator <Echo >(Echo .class , APP_NAME , MODULE_NAME , Echo .class .getSimpleName (), DISTINCT_NAME );
159
+ final StatelessEJBLocator <Echo > statelessEJBLocator = new StatelessEJBLocator <Echo >(Echo .class , APP_NAME , MODULE_NAME , StatefulEchoBean .class .getSimpleName (), DISTINCT_NAME );
193
160
StatefulEJBLocator <Echo > statefulEJBLocator = null ;
194
161
statefulEJBLocator = EJBClient .createSession (statelessEJBLocator .withNewAffinity (new ClusterAffinity ("ejb" )));
195
162
196
163
Echo proxy = EJBClient .createProxy (statefulEJBLocator );
197
164
Assert .assertNotNull ("Received a null proxy" , proxy );
198
165
for (int i = 0 ; i < 10 ; i ++) {
199
- Assert .assertEquals (NODE2_NAME , proxy .whoAreYou ());
166
+ Assert .assertEquals (NODE2_NAME , proxy .echo ( "someMsg" ). getNode ());
200
167
}
201
168
202
169
TestSelector .PICK_NODE = NODE1_NAME ;
203
170
statefulEJBLocator = EJBClient .createSession (statelessEJBLocator .withNewAffinity (new ClusterAffinity ("ejb" )));
204
171
proxy = EJBClient .createProxy (statefulEJBLocator );
205
172
206
173
for (int i = 0 ; i < 10 ; i ++) {
207
- Assert .assertEquals (NODE1_NAME , proxy .whoAreYou ());
174
+ Assert .assertEquals (NODE1_NAME , proxy .echo ( "someMsg" ). getNode ());
208
175
}
209
176
}
210
177
@@ -213,32 +180,17 @@ public void testClusteredSFSBInvocation() throws Exception {
213
180
*/
214
181
@ After
215
182
public void afterTest () {
216
- servers [0 ].unregister (APP_NAME , MODULE_NAME , DISTINCT_NAME , Echo .class .getName ());
217
- logger .info ("Unregistered module from " + serverNames [0 ]);
218
-
219
- servers [1 ].unregister (APP_NAME , MODULE_NAME , DISTINCT_NAME , Echo .class .getName ());
220
- logger .info ("Unregistered module from " + serverNames [1 ]);
183
+ undeployStateless (0 );
184
+ undeployStateful (0 );
221
185
222
- servers [ 0 ]. removeCluster ( CLUSTER_NAME );
223
- servers [ 1 ]. removeCluster ( CLUSTER_NAME );
186
+ undeployStateless ( 1 );
187
+ undeployStateful ( 1 );
224
188
225
- if (serversStarted [0 ]) {
226
- try {
227
- this .servers [0 ].stop ();
228
- } catch (Throwable t ) {
229
- logger .info ("Could not stop server" , t );
230
- }
231
- }
232
- logger .info ("Stopped server " + serverNames [0 ]);
189
+ removeCluster (0 , CLUSTER_NAME );
190
+ removeCluster (1 , CLUSTER_NAME );
233
191
234
- if (serversStarted [1 ]) {
235
- try {
236
- this .servers [1 ].stop ();
237
- } catch (Throwable t ) {
238
- logger .info ("Could not stop server" , t );
239
- }
240
- }
241
- logger .info ("Stopped server " + serverNames [1 ]);
192
+ stopServer (0 );
193
+ stopServer (1 );
242
194
}
243
195
244
196
/**
0 commit comments