This project has retired. For details please refer to its
Attic page.
TckTModel xref
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.apache.juddi.v3.tck;
16
17 import java.util.HashSet;
18 import java.util.Iterator;
19 import static junit.framework.Assert.assertEquals;
20
21 import java.util.List;
22 import java.util.Set;
23 import javax.xml.bind.JAXB;
24
25 import org.apache.commons.logging.Log;
26 import org.apache.commons.logging.LogFactory;
27 import org.apache.juddi.jaxb.EntityCreator;
28 import org.junit.Assert;
29 import org.uddi.api_v3.DeleteTModel;
30 import org.uddi.api_v3.FindTModel;
31 import org.uddi.api_v3.GetTModelDetail;
32 import org.uddi.api_v3.OverviewDoc;
33 import org.uddi.api_v3.SaveTModel;
34 import org.uddi.api_v3.TModel;
35 import org.uddi.api_v3.TModelDetail;
36 import org.uddi.api_v3.TModelList;
37 import org.uddi.v3_service.UDDIInquiryPortType;
38 import org.uddi.v3_service.UDDIPublicationPortType;
39
40
41
42
43
44 public class TckTModel {
45
46 public static final String JOE_PUBLISHER_TMODEL_XML = "uddi_data/joepublisher/tModelKeyGen.xml";
47 public static final String JOE_PUBLISHER_TMODEL_XML_SUBSCRIPTION3 = "uddi_data/joepublisher/FindTmodelTest.xml";
48 public static final String JOE_PUBLISHER_TMODEL_SUBSCRIPTION3_TMODEL_KEY = "uddi:uddi.joepublisher.com:tmodelone";
49
50
51
52 public final static String JOE_PUBLISHER_KEY_PREFIX = "uddi:uddi.joepublisher.com:";
53 final static String JOE_PUBLISHER_TMODEL_KEY = "uddi:uddi.joepublisher.com:keygenerator";
54 final static String MARY_PUBLISHER_TMODEL_XML = "uddi_data/marypublisher/tModelKeyGen.xml";
55 final static String MARY_PUBLISHER_TMODEL_KEY = "uddi:uddi.marypublisher.com:keygenerator";
56 public final static String MARY_KEY_PREFIX="uddi:uddi.marypublisher.com:";
57 final static String SAM_SYNDICATOR_TMODEL_XML = "uddi_data/samsyndicator/tModelKeyGen.xml";
58 final static String SAM_SYNDICATOR_TMODEL_KEY = "uddi:www.samco.com:keygenerator";
59 final static String TMODEL_PUBLISHER_TMODEL_XML = "uddi_data/tmodels/tModelKeyGen.xml";
60
61 final static String TMODEL_PUBLISHER_TMODEL_KEY_ROOT = "uddi:tmodelkey:keygenerator";
62 final static String TMODEL_PUBLISHER_TMODEL_XML_PARENT = "uddi_data/tmodels/tmodelsKeyGenParent.xml";
63
64 final static String TMODEL_PUBLISHER_TMODEL_KEY = "uddi:tmodelkey:categories:keygenerator";
65
66
67 final static String FIND_TMODEL_XML = "uddi_data/find/findTModel1.xml";
68 final static String FIND_TMODEL_XML_BY_CAT = "uddi_data/find/findTModelByCategoryBag.xml";
69 public final static String TMODELS_XML = "uddi_data/tmodels/tmodels.xml";
70 public final static String RIFTSAW_PUBLISHER_TMODEL_XML = "uddi_data/bpel/riftsaw/tModelKeyGen.xml";
71 public final static String RIFTSAW_PUBLISHER_TMODEL_KEY = "uddi:riftsaw.jboss.org:keygenerator";
72 public final static String RIFTSAW_CUST_PORTTYPE_TMODEL_XML = "uddi_data/bpel/riftsaw/tModelCustomerPortType.xml";
73 public final static String RIFTSAW_CUST_PORTTYPE_TMODEL_KEY = "uddi:riftsaw.jboss.org:CustomerInterface_portType";
74 public final static String RIFTSAW_AGENT_PORTTYPE_TMODEL_XML = "uddi_data/bpel/riftsaw/tModelAgentPortType.xml";
75 public final static String RIFTSAW_AGENT_PORTTYPE_TMODEL_KEY = "uddi:riftsaw.jboss.org:TravelAgentInterface_portType";
76 public final static String RIFTSAW_PROCESS_TMODEL_XML = "uddi_data/bpel/riftsaw/tModelProcess.xml";
77 public final static String RIFTSAW_PROCESS_TMODEL_KEY = "uddi:riftsaw.jboss.org:ReservationAndBookingTicketsProcess";
78 private Log logger = LogFactory.getLog(this.getClass());
79 private UDDIPublicationPortType publication = null;
80 private UDDIInquiryPortType inquiry = null;
81 private Set<String> keyscreated = new HashSet<String>();
82
83 public TckTModel(UDDIPublicationPortType publication,
84 UDDIInquiryPortType inquiry) {
85 super();
86 this.publication = publication;
87 this.inquiry = inquiry;
88 }
89
90
91
92
93
94
95
96 public void saveTModels(String authInfo, String tModelXml) {
97
98
99 try {
100 SaveTModel st = (org.uddi.api_v3.SaveTModel) EntityCreator.buildFromDoc(tModelXml, "org.uddi.api_v3");
101
102 for (int i = 0; i < st.getTModel().size(); i++) {
103 saveTModel(authInfo, st.getTModel().get(i), false);
104 }
105
106
107
108 } catch (Exception e) {
109 logger.error(e.getMessage(), e);
110 Assert.fail("No exception should be thrown");
111 }
112 }
113
114 public TModel saveTModel(String authInfo, TModel tmIn, boolean force) {
115 boolean exists = false;
116 GetTModelDetail gt1 = new GetTModelDetail();
117 gt1.getTModelKey().add(tmIn.getTModelKey());
118 try {
119 TModelDetail td1 = inquiry.getTModelDetail(gt1);
120 if (td1 != null && !td1.getTModel().isEmpty()) {
121 if (!td1.getTModel().get(0).isDeleted()) {
122 exists = true;
123 } else {
124 logger.info("The tModel with key " + tmIn.getTModelKey() + " exists already, but is flagged as deleted. Overwritting");
125 }
126 }
127 } catch (Exception ex) {
128 }
129
130 if (!exists || force)
131 {
132 try {
133 SaveTModel st = new SaveTModel();
134 st.setAuthInfo(authInfo);
135
136 st.getTModel().add(tmIn);
137 publication.saveTModel(st);
138
139 keyscreated.add(tmIn.getTModelKey());
140
141 GetTModelDetail gt = new GetTModelDetail();
142 gt.getTModelKey().add(tmIn.getTModelKey());
143 TModelDetail td = inquiry.getTModelDetail(gt);
144 List<org.uddi.api_v3.TModel> tmOutList = td.getTModel();
145 org.uddi.api_v3.TModel tmOut = tmOutList.get(0);
146
147 assertEquals(tmIn.getTModelKey().toLowerCase(), tmOut.getTModelKey());
148 assertEquals(tmIn.getName().getLang(), tmOut.getName().getLang());
149 assertEquals(tmIn.getName().getValue(), tmOut.getName().getValue());
150 TckValidator.checkDescriptions(tmIn.getDescription(), tmOut.getDescription());
151 TckValidator.checkCategories(tmIn.getCategoryBag(), tmOut.getCategoryBag());
152 for (OverviewDoc overviewDoc : tmIn.getOverviewDoc()) {
153 TckValidator.checkOverviewDocs(overviewDoc, tmOut.getOverviewDoc());
154 }
155 logger.info("The TModel " + tmIn.getTModelKey() + " saved");
156
157 if (TckCommon.isDebug()) {
158 JAXB.marshal(tmOut, System.out);
159 }
160 return tmOut;
161
162 } catch (Exception e) {
163 logger.error(e.getMessage(), e);
164 Assert.fail("No exception should be thrown" + e.getMessage());
165 }
166
167 } else {
168 logger.info("The TModel " + tmIn.getTModelKey() + " exists already, skipping");
169 }
170 return tmIn;
171 }
172
173 public TModel saveTModel(String authInfo, String tModelXml, String tModelKey) {
174 return saveTModel(authInfo, tModelXml, tModelKey, false);
175 }
176
177 public TModel saveTModel(String authInfo, String tModelXml, String tModelKey, boolean force) {
178 logger.info("Loading tModel from " + tModelXml);
179 org.uddi.api_v3.TModel tmIn = null;
180 try {
181 tmIn = (org.uddi.api_v3.TModel) EntityCreator.buildFromDoc(tModelXml, "org.uddi.api_v3");
182 } catch (Exception ex) {
183 Assert.fail("unable to load tmodel from file!" + ex.getMessage());
184 }
185 if (tmIn == null) {
186 Assert.fail("unable to load tmodel from file!");
187 }
188 return saveTModel(authInfo, tmIn, force);
189 }
190
191 public synchronized void deleteTModel(String authInfo, String tModelXml, String tModelKey, boolean force) {
192 if (keyscreated.contains(tModelKey) || force) {
193 try {
194 keyscreated.remove(tModelKey);
195
196
197 DeleteTModel dt = new DeleteTModel();
198 dt.setAuthInfo(authInfo);
199
200 logger.info("deleting tmodel " + tModelKey);
201 dt.getTModelKey().add(tModelKey);
202 publication.deleteTModel(dt);
203
204 } catch (Exception e) {
205 logger.error(e.getMessage(), e);
206 Assert.fail("No exception should be thrown");
207 }
208 } else {
209 logger.info("skipping the deletion of tmodel " + tModelKey + " since it wasn't created by the tck");
210 }
211 }
212
213 public synchronized void deleteTModel(String authInfo, String tModelXml, String tModelKey) {
214
215 deleteTModel(authInfo, tModelXml, tModelKey, false);
216 }
217
218 public TModelDetail getTModelDetail(String authInfo, String tModelXml, String tModelKey) {
219 try {
220
221 GetTModelDetail tmodelDetail = new GetTModelDetail();
222 tmodelDetail.setAuthInfo(authInfo);
223 tmodelDetail.getTModelKey().add(tModelKey);
224
225 return inquiry.getTModelDetail(tmodelDetail);
226
227 } catch (Exception e) {
228 logger.error(e.getMessage(), e);
229 Assert.fail("No exception should be thrown");
230 }
231 Assert.fail("We should already have returned");
232 return null;
233 }
234
235 public TModelList findJoeTModelDetail() {
236 try {
237
238 FindTModel body = (FindTModel) EntityCreator.buildFromDoc(FIND_TMODEL_XML, "org.uddi.api_v3");
239 TModelList result = inquiry.findTModel(body);
240
241 return result;
242
243 } catch (Exception e) {
244 logger.error(e.getMessage(), e);
245 Assert.fail("No exception should be thrown");
246 }
247 Assert.fail("We should already have returned");
248 return null;
249 }
250
251 public TModelList findJoeTModelDetailByCategoryBag() {
252 try {
253
254 FindTModel body = (FindTModel) EntityCreator.buildFromDoc(FIND_TMODEL_XML_BY_CAT, "org.uddi.api_v3");
255 TModelList result = inquiry.findTModel(body);
256
257 return result;
258
259 } catch (Exception e) {
260 logger.error(e.getMessage(), e);
261 Assert.fail("No exception should be thrown");
262 }
263 Assert.fail("We should already have returned");
264 return null;
265 }
266
267 public TModel saveJoePublisherTmodel(String authInfoJoe) {
268 return saveTModel(authInfoJoe, JOE_PUBLISHER_TMODEL_XML, JOE_PUBLISHER_TMODEL_KEY, false);
269 }
270
271 public TModel saveJoePublisherTmodel(String authInfoJoe, boolean force) {
272 return saveTModel(authInfoJoe, JOE_PUBLISHER_TMODEL_XML, JOE_PUBLISHER_TMODEL_KEY, force);
273 }
274
275
276
277
278
279 public void saveUDDIPublisherTmodel(String authInfoTM) {
280 saveTModel(authInfoTM, TMODEL_PUBLISHER_TMODEL_XML, TMODEL_PUBLISHER_TMODEL_KEY, false);
281 }
282
283 public void saveTmodels(String authInfoJoe) {
284 saveTModels(authInfoJoe, TMODELS_XML);
285 }
286
287 public void deleteJoePublisherTmodel(String authInfoJoe) {
288 deleteTModel(authInfoJoe, JOE_PUBLISHER_TMODEL_XML, JOE_PUBLISHER_TMODEL_KEY);
289 }
290
291 public TModelDetail getJoePublisherTmodel(String authInfoJoe) {
292 return getTModelDetail(authInfoJoe, JOE_PUBLISHER_TMODEL_XML, JOE_PUBLISHER_TMODEL_KEY);
293 }
294
295 public TModelList findJoePublisherTmodel(String authInfoJoe) {
296 return findJoeTModelDetail();
297 }
298
299 public TModel saveMaryPublisherTmodel(String authInfoMary) {
300 return saveTModel(authInfoMary, MARY_PUBLISHER_TMODEL_XML, MARY_PUBLISHER_TMODEL_KEY, false);
301 }
302
303 public void deleteMaryPublisherTmodel(String authInfoMary) {
304 deleteTModel(authInfoMary, MARY_PUBLISHER_TMODEL_XML, MARY_PUBLISHER_TMODEL_KEY);
305 }
306
307 public TModel saveSamSyndicatorTmodel(String authInfoSam) {
308 return saveTModel(authInfoSam, SAM_SYNDICATOR_TMODEL_XML, SAM_SYNDICATOR_TMODEL_KEY, false);
309 }
310
311 public void deleteSamSyndicatorTmodel(String authInfoSam) {
312 deleteTModel(authInfoSam, SAM_SYNDICATOR_TMODEL_XML, SAM_SYNDICATOR_TMODEL_KEY);
313 }
314
315
316
317
318
319
320
321
322 public void deleteCreatedTModels(String authinfo) {
323 if (this.keyscreated != null) {
324 Iterator<String> iterator = keyscreated.iterator();
325 while (iterator.hasNext()) {
326 DeleteTModel dtm = new DeleteTModel();
327 dtm.setAuthInfo(authinfo);
328 String s = iterator.next();
329 logger.info("cleanup tModel " + s);
330 dtm.getTModelKey().add(s);
331 try {
332 publication.deleteTModel(dtm);
333 } catch (Exception ex) {
334 logger.warn("failed to delete tmodel " + s + " " + ex.getMessage());
335 logger.debug("failed to delete tmodel " + s + " " + ex.getMessage(), ex);
336 }
337 }
338 }
339
340 }
341 }
342