This project has retired. For details please refer to its
Attic page.
UDDI_040_PerformanceIntegrationTest xref
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.juddi.v3.tck;
17
18 import java.io.BufferedOutputStream;
19 import java.io.File;
20 import java.io.FileOutputStream;
21 import java.io.PrintWriter;
22 import java.util.ArrayList;
23 import java.util.HashMap;
24 import java.util.Iterator;
25 import java.util.List;
26 import java.util.Map;
27 import javax.xml.ws.BindingProvider;
28 import org.apache.commons.configuration.ConfigurationException;
29 import org.apache.commons.logging.Log;
30 import org.apache.commons.logging.LogFactory;
31 import org.apache.juddi.v3.client.UDDIConstants;
32 import org.apache.juddi.v3.client.config.UDDIClient;
33 import org.apache.juddi.v3.client.transport.Transport;
34 import org.junit.AfterClass;
35 import org.junit.Assert;
36 import org.junit.BeforeClass;
37 import org.junit.Test;
38 import org.uddi.api_v3.BusinessDetail;
39 import org.uddi.api_v3.BusinessEntity;
40 import org.uddi.api_v3.CategoryBag;
41 import org.uddi.api_v3.DeleteBusiness;
42 import org.uddi.api_v3.KeyedReference;
43 import org.uddi.api_v3.Name;
44 import org.uddi.api_v3.SaveBusiness;
45 import org.uddi.v3_service.UDDIInquiryPortType;
46 import org.uddi.v3_service.UDDIPublicationPortType;
47 import org.uddi.v3_service.UDDISecurityPortType;
48
49
50
51
52
53
54
55 public class UDDI_040_PerformanceIntegrationTest {
56
57 static Map<String, Double> data = new HashMap<String, Double>();
58 protected static Log logger = LogFactory.getLog(UDDI_040_BusinessServiceIntegrationTest.class);
59 protected static TckTModel tckTModelSam = null;
60 protected static TckBusiness tckBusinessSam = null;
61 protected static TckBusinessService tckBusinessServiceSam = null;
62 protected static UDDIInquiryPortType inquirySam = null;
63 protected static UDDIPublicationPortType publishSam = null;
64
65 protected static String authInfoSam = null;
66 private static UDDIClient manager;
67
68 @AfterClass
69 public static void stopManager() throws Exception {
70 if (!TckPublisher.isEnabled()) {
71 return;
72 }
73
74 tckTModelSam.deleteCreatedTModels(authInfoSam);
75 manager.stop();
76 Iterator<Map.Entry<String, Double>> iterator = data.entrySet().iterator();
77 File f = new File("pref-rpt-" + System.currentTimeMillis() + ".txt");
78 PrintWriter writer = new PrintWriter(f, "UTF-8");
79
80 while (iterator.hasNext()) {
81 Map.Entry<String, Double> next = iterator.next();
82 logger.info(next.getKey() + " = " + next.getValue() + " tx/ms");
83 writer.write(next.getKey() + " = " + next.getValue() + " tx/ms" + System.getProperty("line.separator"));
84
85 }
86 writer.close();
87 f = null;
88 TckCommon.PrintMarker();
89
90 }
91
92 @BeforeClass
93 public static void startManager() throws ConfigurationException {
94 if (!TckPublisher.isEnabled()) {
95 return;
96 }
97 manager = new UDDIClient();
98 manager.start();
99
100 logger.debug("Getting auth tokens..");
101 try {
102 Transport transport = manager.getTransport("uddiv3");
103 UDDISecurityPortType security = transport.getUDDISecurityService();
104 authInfoSam = TckSecurity.getAuthToken(security, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
105
106 UDDIPublicationPortType publication = null;
107 UDDIInquiryPortType inquiry = null;
108
109 transport = manager.getTransport("uddiv3");
110 publication = transport.getUDDIPublishService();
111 inquiry = transport.getUDDIInquiryService();
112 if (!TckPublisher.isUDDIAuthMode()) {
113 TckSecurity.setCredentials((BindingProvider) publication, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
114 TckSecurity.setCredentials((BindingProvider) inquiry, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
115 }
116 tckTModelSam = new TckTModel(publication, inquiry);
117 tckBusinessSam = new TckBusiness(publication, inquiry);
118 tckBusinessServiceSam = new TckBusinessService(publication, inquiry);
119 inquirySam = inquiry;
120 publishSam = publication;
121
122 } catch (Exception e) {
123 logger.error(e.getMessage(), e);
124 Assert.fail("Could not obtain authInfo token.");
125 }
126 JUDDI_300_MultiNodeIntegrationTest.testSetupReplicationConfig();
127 }
128 long counter = 30;
129
130 @Test
131 public void testInsertFlatBusiness() throws Exception {
132 logger.info("Performace test, inserting " + counter + " flat businesses");
133 BusinessEntity be = new BusinessEntity();
134 SaveBusiness sb = new SaveBusiness();
135 sb.setAuthInfo(authInfoSam);
136 List<String> biz = new ArrayList<String>();
137 long start = System.currentTimeMillis();
138 for (int i = 0; i < counter; i++) {
139 System.out.print(".");
140 be.getName().clear();
141 be.getName().add(new Name("Name " + i, null));
142 sb.getBusinessEntity().clear();
143 sb.getBusinessEntity().add(be);
144 BusinessDetail saveBusiness = publishSam.saveBusiness(sb);
145 biz.add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
146 }
147 start = System.currentTimeMillis() - start;
148 data.put("Insert Flat Businesses 1x", (double)counter/(double)start );
149 logger.info("Insert flat businesses took 1x" + start);
150
151 start = System.currentTimeMillis();
152 for (int i = 0; i < counter; i++) {
153 System.out.print(".");
154 DeleteBusiness deleteBusiness = new DeleteBusiness();
155 deleteBusiness.setAuthInfo(authInfoSam);
156 deleteBusiness.getBusinessKey().add(biz.get(i));
157 publishSam.deleteBusiness(deleteBusiness);
158
159 }
160 start = System.currentTimeMillis() - start;
161 data.put("Delete Flat Businesses 1x", (double)counter/(double)start );
162 logger.info("Insert flat businesses took 1x" + start);
163
164 }
165
166 @Test
167 public void testInsertFlatBusinessBulk() throws Exception {
168 logger.info("Performace test, inserting " + counter + " flat businesses bulk");
169 BusinessEntity be = new BusinessEntity();
170 SaveBusiness sb = new SaveBusiness();
171 sb.setAuthInfo(authInfoSam);
172 List<String> biz = new ArrayList<String>();
173
174 for (int i = 0; i < counter; i++) {
175 System.out.print(".");
176 be.getName().clear();
177 be.getName().add(new Name("Name " + i, null));
178 sb.getBusinessEntity().clear();
179 sb.getBusinessEntity().add(be);
180
181 }
182
183 long start = System.currentTimeMillis();
184 BusinessDetail saveBusiness = publishSam.saveBusiness(sb);
185
186 start = System.currentTimeMillis() - start;
187 data.put("Insert Flat Businesses Bulk", (double)counter/(double)start );
188 logger.info("Insert flat businesses took Bulk" + start);
189
190 DeleteBusiness deleteBusiness = new DeleteBusiness();
191 deleteBusiness.setAuthInfo(authInfoSam);
192
193 for (int i = 0; i < saveBusiness.getBusinessEntity().size(); i++) {
194 deleteBusiness.getBusinessKey().add(saveBusiness.getBusinessEntity().get(i).getBusinessKey());
195 }
196 start = System.currentTimeMillis();
197 publishSam.deleteBusiness(deleteBusiness);
198 start = System.currentTimeMillis() - start;
199 data.put("Delete Flat Businesses Bulk", (double)counter/(double)start );
200 logger.info("Insert flat businesses took Bulk" + start);
201
202 }
203
204 @Test
205 public void testInsertFlatBusinessManyNames() throws Exception {
206 logger.info("Performace test, inserting " + counter + " flat businesses ManyNames");
207 BusinessEntity be = new BusinessEntity();
208 SaveBusiness sb = new SaveBusiness();
209 sb.setAuthInfo(authInfoSam);
210 List<String> biz = new ArrayList<String>();
211 long start = System.currentTimeMillis();
212 for (int i = 0; i < counter; i++) {
213 System.out.print(".");
214 be.getName().clear();
215 for (int k = 0; k < counter; k++) {
216 be.getName().add(new Name("Name " + i + "-" + k, null));
217 }
218 sb.getBusinessEntity().clear();
219 sb.getBusinessEntity().add(be);
220 BusinessDetail saveBusiness = publishSam.saveBusiness(sb);
221 biz.add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
222 }
223 start = System.currentTimeMillis() - start;
224 data.put("Insert Flat Businesses 1x ManyNames", (double)counter/(double)start );
225 logger.info("Insert flat businesses took 1x ManyNames" + start);
226
227 start = System.currentTimeMillis();
228 for (int i = 0; i < biz.size(); i++) {
229 System.out.print(".");
230 DeleteBusiness deleteBusiness = new DeleteBusiness();
231 deleteBusiness.setAuthInfo(authInfoSam);
232 deleteBusiness.getBusinessKey().add(biz.get(i));
233 publishSam.deleteBusiness(deleteBusiness);
234
235 }
236 start = System.currentTimeMillis() - start;
237 data.put("Delete Flat Businesses 1x ManyNames", (double)counter/(double)start );
238 logger.info("Insert flat businesses took 1x ManyNames" + start);
239
240 }
241
242 @Test
243 public void testInsertFlatBusinessBulkManyNames() throws Exception {
244 logger.info("Performace test, inserting " + counter + " flat businesses bulk ManyNames");
245 BusinessEntity be = new BusinessEntity();
246 SaveBusiness sb = new SaveBusiness();
247 sb.setAuthInfo(authInfoSam);
248 List<String> biz = new ArrayList<String>();
249
250 for (int i = 0; i < counter; i++) {
251 System.out.print(".");
252 be.getName().clear();
253 for (int k = 0; k < counter; k++) {
254 be.getName().add(new Name("Name " + i + "-" + k, null));
255 }
256 sb.getBusinessEntity().clear();
257 sb.getBusinessEntity().add(be);
258
259 }
260
261 long start = System.currentTimeMillis();
262 BusinessDetail saveBusiness = publishSam.saveBusiness(sb);
263
264 start = System.currentTimeMillis() - start;
265 data.put("Insert Flat Businesses Bulk ManyNames", (double)counter/(double)start );
266 logger.info("Insert flat businesses took Bulk ManyNames" + start);
267
268 DeleteBusiness deleteBusiness = new DeleteBusiness();
269 deleteBusiness.setAuthInfo(authInfoSam);
270
271 for (int i = 0; i < saveBusiness.getBusinessEntity().size(); i++) {
272 deleteBusiness.getBusinessKey().add(saveBusiness.getBusinessEntity().get(i).getBusinessKey());
273 }
274 start = System.currentTimeMillis();
275 publishSam.deleteBusiness(deleteBusiness);
276 start = System.currentTimeMillis() - start;
277 data.put("Delete Flat Businesses Bulk ManyNames", (double)counter/(double)start );
278 logger.info("Insert flat businesses took Bulk ManyNames" + start);
279
280 }
281
282
283
284 @Test
285 public void testInsertFlatBusinessManyCategories() throws Exception {
286 logger.info("Performace test, inserting " + counter + " flat businesses ManyCategories");
287 BusinessEntity be = new BusinessEntity();
288 SaveBusiness sb = new SaveBusiness();
289 sb.setAuthInfo(authInfoSam);
290 List<String> biz = new ArrayList<String>();
291 long start = System.currentTimeMillis();
292 for (int i = 0; i < counter; i++) {
293 System.out.print(".");
294 be.getName().clear();
295 be.getName().add(new Name("Name " + i, null));
296 be.setCategoryBag(new CategoryBag());
297 for (int k = 0; k < counter; k++) {
298 be.getCategoryBag().getKeyedReference().add(new KeyedReference(UDDIConstants.General_Keywords, "somename", "somevalue"+k));
299 }
300 sb.getBusinessEntity().clear();
301 sb.getBusinessEntity().add(be);
302 BusinessDetail saveBusiness = publishSam.saveBusiness(sb);
303 biz.add(saveBusiness.getBusinessEntity().get(0).getBusinessKey());
304 }
305 start = System.currentTimeMillis() - start;
306 data.put("Insert Flat Businesses 1x ManyCategories", (double)counter/(double)start );
307 logger.info("Insert flat businesses took 1x ManyCategories" + start);
308
309 start = System.currentTimeMillis();
310 for (int i = 0; i < biz.size(); i++) {
311 System.out.print(".");
312 DeleteBusiness deleteBusiness = new DeleteBusiness();
313 deleteBusiness.setAuthInfo(authInfoSam);
314 deleteBusiness.getBusinessKey().add(biz.get(i));
315 publishSam.deleteBusiness(deleteBusiness);
316
317 }
318 start = System.currentTimeMillis() - start;
319 data.put("Delete Flat Businesses 1x ManyCategories", (double)counter/(double)start );
320 logger.info("Insert flat businesses took 1x ManyCategories" + start);
321
322 }
323
324 @Test
325 public void testInsertFlatBusinessBulkManyCategories() throws Exception {
326 logger.info("Performace test, inserting " + counter + " flat businesses bulk ManyCategories");
327 BusinessEntity be = new BusinessEntity();
328 SaveBusiness sb = new SaveBusiness();
329 sb.setAuthInfo(authInfoSam);
330 List<String> biz = new ArrayList<String>();
331
332 for (int i = 0; i < counter; i++) {
333 System.out.print(".");
334 be.getName().clear();
335 be.getName().add(new Name("Name " + i, null));
336 be.setCategoryBag(new CategoryBag());
337 for (int k = 0; k < counter; k++) {
338 be.getCategoryBag().getKeyedReference().add(new KeyedReference(UDDIConstants.General_Keywords, "somename", "somevalue"+k));
339 }
340 sb.getBusinessEntity().clear();
341 sb.getBusinessEntity().add(be);
342
343 }
344
345 long start = System.currentTimeMillis();
346 BusinessDetail saveBusiness = publishSam.saveBusiness(sb);
347
348 start = System.currentTimeMillis() - start;
349 data.put("Insert Flat Businesses Bulk ManyCategories", (double)counter/(double)start );
350 logger.info("Insert flat businesses took Bulk ManyCategories" + start);
351
352 DeleteBusiness deleteBusiness = new DeleteBusiness();
353 deleteBusiness.setAuthInfo(authInfoSam);
354
355 for (int i = 0; i < saveBusiness.getBusinessEntity().size(); i++) {
356 deleteBusiness.getBusinessKey().add(saveBusiness.getBusinessEntity().get(i).getBusinessKey());
357 }
358 start = System.currentTimeMillis();
359 publishSam.deleteBusiness(deleteBusiness);
360 start = System.currentTimeMillis() - start;
361 data.put("Delete Flat Businesses Bulk ManyCategories", (double)counter/(double)start );
362 logger.info("Insert flat businesses took Bulk ManyCategories" + start);
363
364 }
365 }