1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 package org.ogf.graap.wsag.doc;
36
37 import javax.security.auth.login.LoginContext;
38
39 import org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDescriptionDocument;
40 import org.ggf.schemas.jsdl.x2005.x11.jsdl.JobDescriptionType;
41 import org.ogf.graap.wsag.api.AgreementOffer;
42 import org.ogf.graap.wsag.api.client.AgreementClient;
43 import org.ogf.graap.wsag.api.client.AgreementFactoryClient;
44 import org.ogf.graap.wsag.api.client.AgreementFactoryRegistryClient;
45 import org.ogf.graap.wsag.api.exceptions.AgreementFactoryException;
46 import org.ogf.graap.wsag.api.types.AgreementOfferType;
47 import org.ogf.graap.wsag.client.AgreementFactoryRegistryLocator;
48 import org.ogf.graap.wsag.it.AbstractIntegrationTest;
49 import org.ogf.graap.wsag.security.core.KeystoreProperties;
50 import org.ogf.graap.wsag.security.core.keystore.KeystoreLoginContext;
51 import org.ogf.schemas.graap.wsAgreement.AgreementTemplateType;
52 import org.ogf.schemas.graap.wsAgreement.ServiceDescriptionTermType;
53 import org.ogf.schemas.graap.wsAgreement.TerminateInputType;
54 import org.w3.x2005.x08.addressing.EndpointReferenceType;
55
56
57
58
59
60
61 public class AbstractAgreementIntegrationSnippets
62 {
63
64
65
66
67 public static final int EXPECTED_FACTORIES = 2;
68
69
70
71
72 public static final int EXPECTED_TEMPLATES_FACTORY_1 = 4;
73
74
75
76
77
78
79
80
81
82 public static LoginContext getLoginContext() throws Exception
83 {
84
85
86
87
88 KeystoreProperties properties = new KeystoreProperties();
89 properties.setKeyStoreAlias( "wsag4j-user" );
90 properties.setPrivateKeyPassword( "user@wsag4j" );
91
92 properties.setKeyStoreType( "JKS" );
93 properties.setKeystoreFilename( "/wsag4j-client-keystore.jks" );
94 properties.setKeystorePassword( "user@wsag4j" );
95
96 properties.setTruststoreType( "JKS" );
97 properties.setTruststoreFilename( "/wsag4j-client-keystore.jks" );
98 properties.setTruststorePassword( "user@wsag4j" );
99
100 LoginContext loginContext = new KeystoreLoginContext( properties );
101 loginContext.login();
102
103
104 return loginContext;
105 }
106
107
108
109
110
111
112
113 @SuppressWarnings( "unused" )
114 public void testGetTemplate() throws Exception
115 {
116
117 AgreementFactoryClient[] factories = getAgreementFactoryClients();
118
119
120
121
122 AgreementFactoryClient factory = null;
123 for ( int i = 0; i < factories.length; i++ )
124 {
125 AgreementTemplateType[] templates = factories[i].getTemplates();
126 if ( templates.length == EXPECTED_TEMPLATES_FACTORY_1 )
127 {
128 factory = factories[i];
129 }
130 }
131
132 AgreementTemplateType[] templates = factory.getTemplates();
133
134 }
135
136
137
138
139
140
141
142 public void testCreateAgreement() throws Exception
143 {
144
145 AgreementFactoryClient[] factories = getAgreementFactoryClients();
146
147
148
149
150
151 AgreementFactoryClient factory = null;
152 for ( int i = 0; i < factories.length; i++ )
153 {
154 if ( "SAMPLE-INSTANCE-1".equals( factories[i].getResourceId() ) )
155 {
156 factory = factories[i];
157 break;
158 }
159 }
160
161
162
163
164
165 AgreementTemplateType template = factory.getTemplate( "SAMPLE1", "1" );
166
167
168
169
170
171
172
173 AgreementOffer offer = new AgreementOfferType( template );
174
175
176
177
178 ServiceDescriptionTermType sdt = offer.getTerms().getAll().getServiceDescriptionTermArray( 0 );
179
180
181
182
183
184
185
186 JobDescriptionType job =
187 (JobDescriptionType) sdt.selectChildren( JobDescriptionDocument.type.getDocumentElementName() )[0];
188
189
190
191
192 job.getResources().addNewIndividualCPUCount().addNewExact().setDoubleValue( 4 );
193
194
195
196
197 AgreementClient agreement = factory.createAgreement( offer );
198
199
200
201 agreement.destroy();
202 }
203
204
205
206
207
208
209
210 @SuppressWarnings( "unused" )
211 public void testCreateAgreementException() throws Exception
212 {
213
214 AgreementFactoryClient[] factories = getAgreementFactoryClients();
215
216 AgreementFactoryClient factory = factories[0];
217 AgreementTemplateType[] templates = factory.getTemplates();
218
219 AgreementOffer offer = new AgreementOfferType( templates[0] );
220 offer.getTerms().getAll().getServiceDescriptionTermArray( 0 ).setName( "TEST_EXCEPTION" );
221
222
223 AgreementClient agreement = null;
224 AgreementFactoryException exception = null;
225 try
226 {
227 agreement = factory.createAgreement( offer );
228 }
229 catch ( AgreementFactoryException e )
230 {
231 exception = e;
232 }
233
234 }
235
236
237
238
239
240
241
242 public void testCreateTerminateAgreement() throws Exception
243 {
244
245 AgreementFactoryClient[] factories = getAgreementFactoryClients();
246
247 AgreementFactoryClient factory = factories[1];
248 AgreementTemplateType[] templates = factory.getTemplates();
249
250 AgreementOffer offer = new AgreementOfferType( templates[0] );
251 AgreementClient agreement = factory.createAgreement( offer );
252
253
254 agreement.terminate( TerminateInputType.Factory.newInstance() );
255
256
257 agreement.destroy();
258 }
259
260
261
262
263
264
265
266
267
268 public static AgreementFactoryClient[] getAgreementFactoryClients() throws Exception
269 {
270 AgreementFactoryClient[] factories = null;
271
272 LoginContext loginContext = AbstractIntegrationTest.getLoginContext();
273
274
275 EndpointReferenceType epr = EndpointReferenceType.Factory.newInstance();
276 epr.addNewAddress().setStringValue( "http://127.0.0.1:8080/wsag4j" );
277
278 AgreementFactoryRegistryClient registry =
279 AgreementFactoryRegistryLocator.getFactoryRegistry( epr, loginContext );
280 factories = registry.listAgreementFactories();
281
282
283 return factories;
284 }
285
286 }