Statistics
| Revision:

svn-gvsig-desktop / branches / v2_0_0_prep / libraries / libFMap_dataDB / src-test / org / gvsig / fmap / data / feature / db / jdbc / h2 / H2Test.java @ 24081

History | View | Annotate | Download (30.1 KB)

1 22373 jmvivo
package org.gvsig.fmap.data.feature.db.jdbc.h2;
2 19915 jmvivo
3
import java.io.File;
4
import java.sql.Connection;
5
import java.sql.DriverManager;
6
import java.sql.SQLException;
7
import java.sql.Statement;
8
import java.util.Iterator;
9
10 21911 jmvivo
import org.gvsig.fmap.data.DataManager;
11
import org.gvsig.fmap.data.DataStoreParameters;
12 23754 jjdelcerro
import org.gvsig.fmap.data.exceptions.CloseException;
13
import org.gvsig.fmap.data.exceptions.DataException;
14
import org.gvsig.fmap.data.exceptions.InitializeException;
15
import org.gvsig.fmap.data.exceptions.ReadException;
16
import org.gvsig.fmap.data.exceptions.WriteException;
17 22360 jmvivo
import org.gvsig.fmap.data.feature.AbstractFeature;
18
import org.gvsig.fmap.data.feature.Feature;
19
import org.gvsig.fmap.data.feature.FeatureAttributeDescriptor;
20 23842 jjdelcerro
import org.gvsig.fmap.data.feature.FeatureSet;
21 22360 jmvivo
import org.gvsig.fmap.data.feature.FeatureStore;
22 23754 jjdelcerro
import org.gvsig.fmap.data.feature.FeatureExplorer;
23 22360 jmvivo
import org.gvsig.fmap.data.feature.FeatureType;
24 22373 jmvivo
import org.gvsig.fmap.data.feature.db.DBAttributeDescriptor;
25
import org.gvsig.fmap.data.feature.db.DBFeatureType;
26
import org.gvsig.fmap.data.feature.db.jdbc.JDBCTest;
27
import org.gvsig.fmap.data.feature.file.shp.SHPStore;
28
import org.gvsig.fmap.data.feature.file.shp.SHPStoreParameters;
29 23754 jjdelcerro
import org.gvsig.fmap.data.impl.DefaultDataManager;
30 23340 jmvivo
import org.gvsig.tools.exception.BaseException;
31 19915 jmvivo
import org.h2.tools.Server;
32
33
34 20798 jmvivo
public class H2Test extends JDBCTest {
35 19915 jmvivo
36
        private Server h2Server = null;
37 20242 jmvivo
        private Server h2WebServer = null;
38 19915 jmvivo
        private String h2Server_argsTCP[]= {"-baseDir",        "."};
39 20242 jmvivo
        private String h2Server_argsWeb[]= {"-webport",        "8089"};
40 20597 jmvivo
//        private boolean runH2WebServer = false;
41 20242 jmvivo
        private boolean runH2WebServer = false;
42
        private boolean startsH2Server=true;
43 19915 jmvivo
44
45
        private File shpfile = new File(H2Test.class.getResource("data/prueba.shp").getFile());
46
47
        public static void main(String[] args) {
48 22032 vcaballero
                H2Test test=new H2Test();
49
                test.runH2WebServer=true;
50
                test.startH2Server();
51
                test.cretateTablePrueba();
52
                test.testH2_explorer_list();
53
//                junit.textui.TestRunner.run(H2Test.class);
54 19915 jmvivo
        }
55
56
        protected void setUp() throws Exception {
57
                super.setUp();
58 22284 jmvivo
                if (startsH2Server) {
59 20242 jmvivo
                        this.startH2Server();
60 22284 jmvivo
                }
61 19915 jmvivo
        }
62
63
        public void startH2Server(){
64 22284 jmvivo
                if (h2Server != null) {
65 19915 jmvivo
                        throw new RuntimeException("H2 server ya arrancado");
66 22284 jmvivo
                }
67 19915 jmvivo
                Server myh2Server = null;
68 20242 jmvivo
                Server myh2WebServer = null;
69 19915 jmvivo
                try{
70
                        myh2Server = Server.createTcpServer(h2Server_argsTCP);
71
                        myh2Server.start();
72 20242 jmvivo
                        if (runH2WebServer){
73
                                myh2WebServer = Server.createWebServer(h2Server_argsWeb);
74
                                myh2WebServer.start();
75 22284 jmvivo
                                h2WebServer = myh2WebServer;
76 20242 jmvivo
                        }
77 19915 jmvivo
78
                } catch (Exception e){
79
                        throw new RuntimeException(e);
80
                }
81
                h2Server = myh2Server;
82
                System.out.println("\n************************");
83 20242 jmvivo
                if (runH2WebServer){
84
                        System.out.println("* H2 SERVER STARTED web: "+ h2Server_argsWeb[1] + "!!!! *");
85
                }else{
86
                        System.out.println("* H2 SERVER STARTED!!!! *");
87
                }
88 19915 jmvivo
                System.out.println("************************\n");
89
90
        }
91
92 22032 vcaballero
93 19915 jmvivo
        public void stopH2Server(){
94 22284 jmvivo
                if (h2Server == null) {
95 19915 jmvivo
                        return;
96 22284 jmvivo
                }
97 19915 jmvivo
                h2Server.stop();
98
                h2Server.shutdown();
99
                h2Server = null;
100 20242 jmvivo
                if (h2WebServer != null){
101
                        h2WebServer.stop();
102
                        h2WebServer.shutdown();
103
                        h2WebServer = null;
104
                }
105 19915 jmvivo
                System.out.println("\n************************");
106
                System.out.println("* H2 SERVER STOPED!!!! *");
107
                System.out.println("************************\n");
108
        }
109
110
111
        private void deleteTable(H2StoreParameters h2Params) {
112 22284 jmvivo
                                try {
113 19915 jmvivo
                        Class.forName("org.h2.Driver");
114 22284 jmvivo
                        Connection con = DriverManager.getConnection(h2Params.getUrl(),
115
                                        h2Params.getUser(), h2Params.getPassw());
116 19915 jmvivo
                        Statement st = con.createStatement();
117 22284 jmvivo
                        st.execute("Delete " + h2Params.tableID());
118 19915 jmvivo
                        st.close();
119
                        con.close();
120
                        System.out.println("* Table " + h2Params.tableID() + " DELETED!!");
121
                } catch (ClassNotFoundException e) {
122
                        // TODO Auto-generated catch block
123
                        e.printStackTrace();
124
                } catch (SQLException e) {
125
                        // TODO Auto-generated catch block
126
                        e.printStackTrace();
127
                }
128
129
130
        }
131
132
        public void shp2H2(File shpfile,H2StoreParameters h2Param) {
133
                System.out.println("======= SHP2H2 ==============");
134 22373 jmvivo
                org.gvsig.fmap.data.feature.file.shp.Register.selfRegister();
135
                org.gvsig.fmap.data.feature.file.dbf.Register.selfRegister();
136 19915 jmvivo
137 23754 jjdelcerro
                DataManager dsm=DefaultDataManager.getManager();
138 19915 jmvivo
//                File shpfile= new File(DataStoreTest.class.getResource("data/prueba.dbf").getFile());
139
140
//                IDriverParameters dp=dsm.createDriverParameters("shp");
141
142
143 21594 jmvivo
                DataStoreParameters dsp=null;
144
                try {
145 24081 jjdelcerro
                        dsp = dsm.createStoreParameters(SHPStore.DATASTORE_NAME);
146 21594 jmvivo
                } catch (InitializeException e3) {
147
                        e3.printStackTrace();
148
                        fail("Exception:" + e3);
149
                }
150 20423 vcaballero
                ((SHPStoreParameters)dsp).setFile(shpfile);
151
//                ((SHPStoreParameters)dsp).setSHXFile(SHP.getShxFile(shpfile));
152
//                ((SHPStoreParameters)dsp).setDBFFile(SHP.getDbfFile(shpfile));
153 21045 jmvivo
                FeatureStore fs=null;
154 19915 jmvivo
                try {
155 24081 jjdelcerro
                        fs = (FeatureStore)dsm.createStore(dsp);
156 19915 jmvivo
                } catch (InitializeException e) {
157
                        e.printStackTrace();
158
                        fail("Exception:" + e);
159
                }
160
161 21511 jmvivo
//                try {
162
//                        fs.open();
163
//                } catch (OpenException e2) {
164
//                        e2.printStackTrace();
165
//                        fail();
166
//                }
167 19915 jmvivo
168 21045 jmvivo
                FeatureType ft= fs.getDefaultFeatureType();
169 23842 jjdelcerro
                FeatureSet featureCollection=null;
170 19915 jmvivo
                try {
171 23842 jjdelcerro
                        featureCollection = (FeatureSet)fs.getDataSet();
172 19915 jmvivo
                } catch (ReadException e2) {
173
                        // TODO Auto-generated catch block
174
                        e2.printStackTrace();
175
                }
176
177
                SHP2H2FeaturesVisitor visitor=new SHP2H2FeaturesVisitor(ft,h2Param);
178
                visitor.createStructure();
179
180
                try {
181
                        featureCollection.accept(visitor);
182
                } catch (BaseException e1) {
183
                        e1.printStackTrace();
184
                        System.out.println(e1.getMessageStack());
185
                        fail();
186
                }
187
188 21511 jmvivo
//                try {
189
//                        visitor.close();
190
//                        fs.close();
191
//                } catch (CloseException e) {
192
//                        e.printStackTrace();
193
//                        fail("Exception: "+e);
194
//                }
195 19915 jmvivo
                try {
196
                        fs.dispose();
197
                } catch (CloseException e) {
198
                        // TODO Auto-generated catch block
199
                        e.printStackTrace();
200
                }
201
202
        }
203
204
205
        public void testH2_sqlMode() {
206
                System.out.println("======= H2 (sql Mode)==============");
207
                Register.selfRegister();
208
209 23754 jjdelcerro
                DataManager dsm=DefaultDataManager.getManager();
210 19915 jmvivo
211
212 20129 jmvivo
                H2StoreParameters dp=this.cretateTablePrueba();
213 19915 jmvivo
214 21594 jmvivo
                H2StoreParameters dp2= null;
215
                try {
216 24081 jjdelcerro
                        dp2 = (H2StoreParameters)dsm.createStoreParameters(H2Store.DATASTORE_NAME);
217 21594 jmvivo
                } catch (InitializeException e2) {
218
                        e2.printStackTrace();
219
                        fail("Exception:" + e2);
220
                }
221 19915 jmvivo
222
                dp2.setHost("localhost");
223
                dp2.setUser("SA");
224
                dp2.setPassw("");
225 22141 jmvivo
                dp2.setDefaultGeometryField("GEOMETRY");
226 23599 jmvivo
                dp2.setFieldsId(new String[] {"ID"});
227 19915 jmvivo
                dp2.setSqlSoure("Select * from " + dp.tableID() );
228
229 22284 jmvivo
                storeTest(dp,null,null,false);
230 19915 jmvivo
231
                Exception exc = null;
232
233 21045 jmvivo
                FeatureStore fs=null;
234 19915 jmvivo
                try {
235 24081 jjdelcerro
                        fs = (FeatureStore)dsm.createStore(dp2);
236 19915 jmvivo
                } catch (InitializeException e) {
237
                        e.printStackTrace();
238
                        fail("Exception:" + e);
239
                }
240
                assertNotNull("Can't create Feature Store", fs);
241
242 21511 jmvivo
//                try {
243
//                        fs.open();
244
//                } catch (OpenException e2) {
245
//                        e2.printStackTrace();
246
//                        fail();
247
//                }
248 19915 jmvivo
249
250 23842 jjdelcerro
                FeatureSet fc =null;
251 19915 jmvivo
252
                try {
253 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataSet();
254 19915 jmvivo
                } catch (ReadException e1) {
255
                        e1.printStackTrace();
256
                        fail();
257
                }
258
259
                assertEquals(9, fc.size());
260
261 20014 jmvivo
                fc.dispose();
262
263 23754 jjdelcerro
                assertFalse("Edition allowed in sqlSource mode", fs.allowWrite());
264 19915 jmvivo
265
                try {
266 23754 jjdelcerro
                        fs.edit();
267 19915 jmvivo
                } catch (ReadException e1) {
268
                        exc=e1;
269
                }
270
                assertNotNull("Edition allowed in sqlSource mode",exc);
271
272
                exc=null;
273
                try {
274 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),"NOMBRE like 'B%'",null);
275 19915 jmvivo
                } catch (ReadException e1) {
276
                        exc=e1;
277
                }
278
                assertNotNull("Filter allowed in sqlSource mode",exc);
279
280
                exc=null;
281
                try {
282 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),null,"NOMBRE");
283 19915 jmvivo
                } catch (ReadException e1) {
284
                        exc=e1;
285
                }
286
                assertNotNull("Order allowed in sqlSource mode",exc);
287
288
289 21511 jmvivo
//                try {
290
//                        fs.close();
291
//                } catch (CloseException e) {
292
//                        e.printStackTrace();
293
//                        fail("Exception:" + e);
294
//                }
295 19915 jmvivo
296 20743 jmvivo
                try {
297
                        fs.dispose();
298
                } catch (CloseException e) {
299
                        e.printStackTrace();fail();
300
                }
301 19915 jmvivo
302 20743 jmvivo
303 19915 jmvivo
                deleteTable(dp);
304
305
                System.out.println("======= /H2 (sql Mode) ==============");
306
        }
307
308 20242 jmvivo
        private String nuevoNombreDeTabla(String prefijo){
309
                String s=String.valueOf(System.currentTimeMillis());
310
                return prefijo+s.substring(s.length()-8);
311
        }
312
313 20129 jmvivo
        private H2StoreParameters cretateTablePrueba(){
314 19915 jmvivo
                Register.selfRegister();
315 23754 jjdelcerro
                DataManager dsm=DefaultDataManager.getManager();
316 19915 jmvivo
317
318 21594 jmvivo
                H2StoreParameters dp=null;
319
                try {
320 24081 jjdelcerro
                        dp = (H2StoreParameters)dsm.createStoreParameters(H2Store.DATASTORE_NAME);
321 21594 jmvivo
                } catch (InitializeException e1) {
322
                        e1.printStackTrace();
323
                        fail();
324
                }
325 19915 jmvivo
326
327
                dp.setHost("localhost");
328
                dp.setUser("SA");
329
                dp.setPassw("");
330
                dp.setFields(new String[] {"*"});
331 22141 jmvivo
                dp.setDefaultGeometryField("GEOMETRY");
332 20242 jmvivo
                dp.setTableName(nuevoNombreDeTabla("testh2").toUpperCase());
333 23599 jmvivo
                dp.setFieldsId(new String[] {"ID"});
334 19915 jmvivo
335
                try{
336
                        this.shp2H2(shpfile, dp);
337
                } catch (Exception e) {
338
                        if (e.getCause() instanceof BaseException){
339
                                System.out.println(((BaseException)e).getLocalizedMessageStack());
340
                        } else{
341
                                e.printStackTrace();
342
                        }
343
                        fail();
344
                }
345
346 20129 jmvivo
                return dp;
347 19915 jmvivo
348 20129 jmvivo
        }
349 19915 jmvivo
350 20129 jmvivo
        public void testH2() {
351
                System.out.println("======= H2 ==============");
352
                Register.selfRegister();
353 19915 jmvivo
354 23754 jjdelcerro
                DataManager dsm=DefaultDataManager.getManager();
355 20129 jmvivo
356
357
                H2StoreParameters dp=cretateTablePrueba();
358
359 23143 jmvivo
                storeTest(dp, null, null, true);
360 19915 jmvivo
361 23143 jmvivo
                storeTest(dp, null, null, false);
362 21045 jmvivo
                FeatureStore fs=null;
363 19915 jmvivo
                try {
364 24081 jjdelcerro
                        fs = (FeatureStore)dsm.createStore(dp);
365 19915 jmvivo
                } catch (InitializeException e) {
366
                        e.printStackTrace();
367
                        fail("Exception:" + e);
368
                }
369
                assertNotNull("Can't create Feature Store", fs);
370
371 21511 jmvivo
//                try {
372
//                        fs.open();
373
//                } catch (OpenException e2) {
374
//                        e2.printStackTrace();
375
//                        fail();
376
//                }
377 19915 jmvivo
378
                Iterator it;
379 23842 jjdelcerro
                FeatureSet fc =null;
380 19915 jmvivo
                Comparable v1,v2;
381 21045 jmvivo
                Feature feature=null,pfeature=null;
382 19915 jmvivo
                long count;
383
384
385
                try {
386 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataSet();
387 19915 jmvivo
                } catch (ReadException e1) {
388
                        e1.printStackTrace();
389
                        fail();
390
                }
391
392
                assertEquals(9, fc.size());
393
394 22284 jmvivo
                it = fc.iterator();
395
                count = 0;
396
                while (it.hasNext()) {
397
                        feature = (Feature) it.next();
398
                        count++;
399
                }
400
                assertEquals("Iteration error", 9, count);
401
402 20014 jmvivo
                fc.dispose();
403
404 19915 jmvivo
                try {
405 23842 jjdelcerro
                        fc = (FeatureSet) fs.getDataCollection(
406 22284 jmvivo
                                        new String[] { "NOMBRE" }, "lower(NOMBRE) like 'b%'", null);
407 19915 jmvivo
                } catch (ReadException e1) {
408
                        e1.printStackTrace();
409
                        fail();
410
                }
411
412
                assertEquals(2, fc.size());
413
414 21120 jmvivo
415 19915 jmvivo
                it = fc.iterator();
416
                count=0;
417
                while (it.hasNext()){
418 21045 jmvivo
                        feature = (Feature)it.next();
419 21120 jmvivo
                        assertEquals(feature.getType().size(), 1);
420 19915 jmvivo
                        assertTrue("Filter error",feature.getString("NOMBRE").toLowerCase().startsWith("b"));
421
                        count++;
422
                }
423
                assertEquals("Iteration error",2,count);
424
425 20014 jmvivo
                fc.dispose();
426 19915 jmvivo
427 20014 jmvivo
428 19915 jmvivo
                try {
429 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),null,"NOMBRE ASC");
430 19915 jmvivo
                } catch (ReadException e1) {
431
                        e1.printStackTrace();
432
                        fail();
433
                }
434
                assertEquals(9, fc.size());
435
                it = fc.iterator();
436
                count=0;
437 21045 jmvivo
                pfeature = (Feature)it.next();
438 19915 jmvivo
                count++;
439
                while (it.hasNext()){
440 21045 jmvivo
                        feature = (Feature)it.next();
441 19915 jmvivo
                        v1 = (Comparable)pfeature.get("NOMBRE");
442
                        v2 = (Comparable)feature.get("NOMBRE");
443
                        pfeature=feature;
444
                        assertTrue("Short error", (v1.compareTo(v1) <= 0));
445
                        count++;
446
                }
447
                assertEquals("Iteration error",9,count);
448
449 20014 jmvivo
                fc.dispose();
450 19915 jmvivo
451 20014 jmvivo
452 19915 jmvivo
                try {
453 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),null,"NOMBRE DESC");
454 19915 jmvivo
                } catch (ReadException e1) {
455
                        e1.printStackTrace();
456
                        fail();
457
                }
458
                assertEquals(9, fc.size());
459
                it = fc.iterator();
460
461
                count=0;
462 21045 jmvivo
                pfeature = (Feature)it.next();
463 19915 jmvivo
                count++;
464
                while (it.hasNext()){
465 21045 jmvivo
                        feature = (Feature)it.next();
466 19915 jmvivo
                        v1 = (Comparable)pfeature.get("NOMBRE");
467
                        v2 = (Comparable)feature.get("NOMBRE");
468
                        pfeature=feature;
469
                        assertTrue("Short error", (v1.compareTo(v1) >= 0));
470
                        count++;
471
                }
472
                assertEquals("Iteration error",9,count);
473
474 20014 jmvivo
                fc.dispose();
475 19915 jmvivo
476 20014 jmvivo
477
478 19915 jmvivo
                try {
479 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),"lower(NOMBRE) like 'b%'","NOMBRE");
480 19915 jmvivo
                } catch (ReadException e1) {
481
                        e1.printStackTrace();
482
                        fail();
483
                }
484
485
                assertEquals(2, fc.size());
486
487
                it = fc.iterator();
488
489
                count=0;
490 21045 jmvivo
                pfeature = (Feature)it.next();
491 19915 jmvivo
                assertTrue(pfeature.getString("NOMBRE").toLowerCase().startsWith("b"));
492
                count++;
493
                while (it.hasNext()){
494 21045 jmvivo
                        feature = (Feature)it.next();
495 19915 jmvivo
                        assertTrue("Filter error",feature.getString("NOMBRE").toLowerCase().startsWith("b"));
496
                        v1 = (Comparable)pfeature.get("NOMBRE");
497
                        v2 = (Comparable)feature.get("NOMBRE");
498
                        pfeature=feature;
499
                        assertTrue("Short error", (v1.compareTo(v1) <= 0));
500
                        count++;
501
                }
502
                assertEquals("Iteration error",2,count);
503 20014 jmvivo
                fc.dispose();
504 19915 jmvivo
505
506
507
                try {
508 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),null,"Tipo,lower(NOMBRE) Desc");
509 19915 jmvivo
                } catch (ReadException e1) {
510
                        e1.printStackTrace();
511
                        fail();
512
                }
513
                assertEquals(9, fc.size());
514
                it = fc.iterator();
515
                count=0;
516 21045 jmvivo
                pfeature = (Feature)it.next();
517 19915 jmvivo
                System.out.println(pfeature.getString("NOMBRE"));
518
                count++;
519
                while (it.hasNext()){
520 21045 jmvivo
                        feature = (Feature)it.next();
521 22284 jmvivo
                        v1 = ((String)pfeature.get("NOMBRE")).toLowerCase();
522
                        v2 = ((String)feature.get("NOMBRE")).toLowerCase();
523 19915 jmvivo
                        pfeature=feature;
524
                        assertTrue("Short error", (v1.compareTo(v2) >= 0));
525
                        System.out.println(pfeature.getString("NOMBRE"));
526
                        count++;
527
                }
528
                assertEquals("Iteration error",9,count);
529 20014 jmvivo
                fc.dispose();
530 19915 jmvivo
531
532
533
                /// CON  EDICION
534
                try {
535 23754 jjdelcerro
                        fs.edit();
536 19915 jmvivo
                } catch (ReadException e1) {
537
                        e1.printStackTrace();
538
                        fail();
539
                }
540
541 20413 vcaballero
                try{
542 23754 jjdelcerro
                        Feature newFeature = fs.createFeature(true);
543 20473 jmvivo
                        newFeature.editing();
544 20413 vcaballero
                        newFeature.set("NOMBRE","BuRjaSOT");
545
                        newFeature.set("TIPO","MUNICIPIO");
546
                        fs.insert(newFeature);
547 20578 jmvivo
                } catch (DataException e2) {
548 20413 vcaballero
                        // TODO Auto-generated catch block
549
                        e2.printStackTrace();
550
                }
551 19915 jmvivo
552
                try {
553 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataSet();
554 19915 jmvivo
                } catch (ReadException e1) {
555
                        e1.printStackTrace();
556
                        fail();
557
                }
558
559
                assertEquals(10, fc.size());
560 20014 jmvivo
                fc.dispose();
561 19915 jmvivo
562
                try {
563 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataCollection(new String[] {"NOMBRE"},"lower(NOMBRE) like 'b%'",null);
564 19915 jmvivo
                } catch (ReadException e1) {
565
                        e1.printStackTrace();
566
                        fail();
567
                }
568
569
                assertEquals(3, fc.size());
570
571
                it = fc.iterator();
572
                count=0;
573
                while (it.hasNext()){
574 21045 jmvivo
                        feature = (Feature)it.next();
575 21594 jmvivo
//                        assertEquals(1, feature.getType().size());
576 19915 jmvivo
                        assertTrue("Filter error",feature.getString("NOMBRE").toLowerCase().startsWith("b"));
577
                        count++;
578
                }
579
                assertEquals("Iteration error",3,count);
580 20014 jmvivo
                fc.dispose();
581 19915 jmvivo
582
583
                try {
584 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),null,"NOMBRE ASC");
585 19915 jmvivo
                } catch (ReadException e1) {
586
                        e1.printStackTrace();
587
                        fail();
588
                }
589
                assertEquals(10, fc.size());
590
                it = fc.iterator();
591
                count=0;
592 21045 jmvivo
                pfeature = (Feature)it.next();
593 19915 jmvivo
                count++;
594
                while (it.hasNext()){
595 21045 jmvivo
                        feature = (Feature)it.next();
596 19915 jmvivo
                        v1 = (Comparable)pfeature.get("NOMBRE");
597
                        v2 = (Comparable)feature.get("NOMBRE");
598
                        pfeature=feature;
599
                        assertTrue("Short error", (v1.compareTo(v1) <= 0));
600
                        count++;
601
                }
602
                assertEquals("Iteration error",10,count);
603 20014 jmvivo
                fc.dispose();
604 19915 jmvivo
605
606
                try {
607 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),null,"NOMBRE DESC");
608 19915 jmvivo
                } catch (ReadException e1) {
609
                        e1.printStackTrace();
610
                        fail();
611
                }
612
                assertEquals(10, fc.size());
613
                it = fc.iterator();
614
615
                count=0;
616 21045 jmvivo
                pfeature = (Feature)it.next();
617 19915 jmvivo
                count++;
618
                while (it.hasNext()){
619 21045 jmvivo
                        feature = (Feature)it.next();
620 19915 jmvivo
                        v1 = (Comparable)pfeature.get("NOMBRE");
621
                        v2 = (Comparable)feature.get("NOMBRE");
622
                        pfeature=feature;
623
                        assertTrue("Short error", (v1.compareTo(v1) >= 0));
624
                        count++;
625
                }
626
                assertEquals("Iteration error",10,count);
627 20014 jmvivo
                fc.dispose();
628 19915 jmvivo
629
630
                try {
631 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),"lower(NOMBRE) like 'b%'","NOMBRE");
632 19915 jmvivo
                } catch (ReadException e1) {
633
                        e1.printStackTrace();
634
                        fail();
635
                }
636
637
                assertEquals(3, fc.size());
638
639
                it = fc.iterator();
640
641
                count=0;
642 21045 jmvivo
                pfeature = (Feature)it.next();
643 19915 jmvivo
                assertTrue(pfeature.getString("NOMBRE").toLowerCase().startsWith("b"));
644
                count++;
645
                while (it.hasNext()){
646 21045 jmvivo
                        feature = (Feature)it.next();
647 19915 jmvivo
                        assertTrue("Filter error",feature.getString("NOMBRE").toLowerCase().startsWith("b"));
648
                        v1 = (Comparable)pfeature.get("NOMBRE");
649
                        v2 = (Comparable)feature.get("NOMBRE");
650
                        pfeature=feature;
651
                        assertTrue("Short error", (v1.compareTo(v1) <= 0));
652
                        count++;
653
                }
654
                assertEquals("Iteration error",3,count);
655 20014 jmvivo
                fc.dispose();
656 19915 jmvivo
657
658
659
                try {
660 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),null,"Tipo,lower(NOMBRE) Desc");
661 19915 jmvivo
                } catch (ReadException e1) {
662
                        e1.printStackTrace();
663
                        fail();
664
                }
665
                assertEquals(10, fc.size());
666
                it = fc.iterator();
667
                count=0;
668 21045 jmvivo
                pfeature = (Feature)it.next();
669 19915 jmvivo
                System.out.println(pfeature.getString("NOMBRE"));
670
                count++;
671
                while (it.hasNext()){
672 21045 jmvivo
                        feature = (Feature)it.next();
673 22284 jmvivo
                        v1 = ((String)pfeature.get("NOMBRE")).toLowerCase();
674
                        v2 = ((String)feature.get("NOMBRE")).toLowerCase();
675 19915 jmvivo
                        pfeature=feature;
676
                        assertTrue("Short error", (v1.compareTo(v2) >= 0));
677
                        System.out.println(pfeature.getString("NOMBRE"));
678
                        count++;
679
                }
680
                assertEquals("Iteration error",10,count);
681 20014 jmvivo
                fc.dispose();
682 19915 jmvivo
683
684
                fs.cancelEditing();
685
686
687
                //Insertar un elemento
688
                try{
689 23754 jjdelcerro
                        fs.edit();
690 19915 jmvivo
                } catch (ReadException e1) {
691
                        e1.printStackTrace();
692
                        fail();
693
                }
694
695 20413 vcaballero
                try{
696 23754 jjdelcerro
                        feature = fs.createFeature(true);
697 20413 vcaballero
                        feature.editing();
698
                        feature.set("ID", 90000);
699
                        feature.set("NOMBRE","BurJASOT");
700
                        feature.set("TIPO", "OTRO");
701
                        fs.insert(feature);
702 19915 jmvivo
                        fs.finishEditing();
703 20578 jmvivo
                } catch (DataException e) {
704 19915 jmvivo
                        e.printStackTrace();
705
                        fail("Exception: "+e);
706
                }
707
708
709
                try {
710 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),null,"lower(NOMBRE) Desc");
711 19915 jmvivo
                } catch (ReadException e1) {
712
                        e1.printStackTrace();
713
                        fail();
714
                }
715
                assertEquals(10, fc.size());
716
                it = fc.iterator();
717
                count=0;
718 21045 jmvivo
                pfeature = (Feature)it.next();
719 19915 jmvivo
                System.out.println(pfeature.getString("NOMBRE"));
720
                count++;
721
                while (it.hasNext()){
722 21045 jmvivo
                        feature = (Feature)it.next();
723 22284 jmvivo
                        v1 = ((String)pfeature.get("NOMBRE")).toLowerCase();
724
                        v2 = ((String)feature.get("NOMBRE")).toLowerCase();
725 19915 jmvivo
                        pfeature=feature;
726
                        assertTrue("Short error: "+ v1.toString() + " >= " +v2.toString(), (v1.compareTo(v2) >= 0));
727
                        System.out.println(pfeature.getString("NOMBRE"));
728
                        count++;
729
                }
730
                assertEquals("Iteration error",10,count);
731 20014 jmvivo
                fc.dispose();
732 19915 jmvivo
733
                //Actualizacion
734
                try{
735 23754 jjdelcerro
                        fs.edit();
736 19915 jmvivo
                } catch (ReadException e1) {
737
                        e1.printStackTrace();
738
                        fail();
739
                }
740
741 22284 jmvivo
                try {
742 23842 jjdelcerro
                        fc = (FeatureSet) fs.getDataCollection(fs
743 22284 jmvivo
                                        .getDefaultFeatureType(), "NOMBRE like '%__KK__'", null);
744
                } catch (ReadException e1) {
745
                        e1.printStackTrace();
746
                        fail();
747
                }
748
                assertEquals(0, fc.size());
749 19915 jmvivo
750 22284 jmvivo
                count = 0;
751
                it = fc.iterator();
752
                while (it.hasNext()) {
753
                        it.next();
754
                        count++;
755
                }
756
                assertEquals(0, count);
757
                fc.dispose();
758
759 19915 jmvivo
                try {
760 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),"lower(NOMBRE) = 'burjasot'",null);
761 19915 jmvivo
                } catch (ReadException e1) {
762
                        e1.printStackTrace();
763
                        fail();
764
                }
765
                assertEquals(1, fc.size());
766 22284 jmvivo
                count = 0;
767
                it = fc.iterator();
768
                while (it.hasNext()) {
769
                        it.next();
770
                        count++;
771
                }
772
                assertEquals(1, count);
773
774 21045 jmvivo
                feature =(AbstractFeature)fc.iterator().next();
775 20597 jmvivo
                boolean isOk=false;
776 20413 vcaballero
                try {
777 20597 jmvivo
//                        feature.editing();
778
                        feature.set("NOMBRE", feature.getString("NOMBRE")+"__KK__");
779 20578 jmvivo
                } catch (DataException e2) {
780 20597 jmvivo
                        isOk=true;
781 20413 vcaballero
                }
782 20597 jmvivo
                assertTrue("editing feature control", isOk);
783
784 19915 jmvivo
                try {
785 20597 jmvivo
                        feature.editing();
786
                        feature.set("NOMBRE", feature.getString("NOMBRE")+"__KK__");
787 20578 jmvivo
                } catch (DataException e2) {
788 20597 jmvivo
                        isOk=true;
789 20420 vcaballero
                        e2.printStackTrace();
790
                        fail("Exception: "+e2);
791
                }
792 20597 jmvivo
793 20420 vcaballero
                try {
794 20849 jmvivo
                        fs.update(feature);
795
                } catch (DataException e2) {
796
                        e2.printStackTrace();fail();
797
                }
798
799 22284 jmvivo
                //                try {
800
                //                        fc = (FeatureCollection) fs.getDataCollection(fs
801
                //                                        .getDefaultFeatureType(), "NOMBRE like '%__KK__'", null);
802
                //                } catch (ReadException e1) {
803
                //                        e1.printStackTrace();
804
                //                        fail();
805
                //                }
806
                //                assertEquals(1, fc.size());
807
                //                count = 0;
808
                //                it = fc.iterator();
809
                //                while (it.hasNext()) {
810
                //                        it.next();
811
                //                        count++;
812
                //                }
813
                //                assertEquals(1, count);
814
                fc.dispose();
815
816
817 20849 jmvivo
                try {
818 19915 jmvivo
                        fs.finishEditing();
819
                } catch (WriteException e) {
820
                        e.printStackTrace();
821
                        fail("Exception: "+e);
822
                } catch (ReadException e) {
823
                        e.printStackTrace();
824
                        fail("Exception: "+e);
825
                }
826
827
                try {
828 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),"NOMBRE like '%__KK__'",null);
829 19915 jmvivo
                } catch (ReadException e1) {
830
                        e1.printStackTrace();
831
                        fail();
832
                }
833
                assertEquals(1, fc.size());
834 22284 jmvivo
                count = 0;
835
                it = fc.iterator();
836
                while (it.hasNext()) {
837
                        it.next();
838
                        count++;
839
                }
840
                assertEquals(1, count);
841 20014 jmvivo
                fc.dispose();
842 19915 jmvivo
843
844
                //Eliminacion
845
                try{
846 23754 jjdelcerro
                        fs.edit();
847 19915 jmvivo
                } catch (ReadException e1) {
848
                        e1.printStackTrace();
849
                        fail();
850
                }
851
852
853
                try {
854 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataCollection(fs.getDefaultFeatureType(),"NOMBRE like '%__KK__'",null);
855 19915 jmvivo
                } catch (ReadException e1) {
856
                        e1.printStackTrace();
857
                        fail();
858
                }
859
                assertEquals(1, fc.size());
860 22284 jmvivo
861
                count = 0;
862
                it = fc.iterator();
863
                while (it.hasNext()) {
864
                        it.next();
865
                        count++;
866
                }
867
                assertEquals(1, count);
868
869 20849 jmvivo
                try {
870 21045 jmvivo
                        fs.delete((Feature)fc.iterator().next());
871 20849 jmvivo
                } catch (DataException e2) {
872
                        e2.printStackTrace();fail();
873
                }
874 20014 jmvivo
                fc.dispose();
875 22284 jmvivo
876 19915 jmvivo
                try {
877 23842 jjdelcerro
                        fc = (FeatureSet) fs.getDataCollection(fs
878 22284 jmvivo
                                        .getDefaultFeatureType(), "NOMBRE like '%__KK__'", null);
879
                } catch (ReadException e1) {
880
                        e1.printStackTrace();
881
                        fail();
882
                }
883
                assertEquals(0, fc.size());
884
885
                count = 0;
886
                it = fc.iterator();
887
                while (it.hasNext()) {
888
                        it.next();
889
                        count++;
890
                }
891
                assertEquals(0, count);
892
                fc.dispose();
893
894
                try {
895 19915 jmvivo
                        fs.finishEditing();
896
                } catch (WriteException e) {
897
                        e.printStackTrace();
898
                        fail("Exception: "+e);
899
                } catch (ReadException e) {
900
                        e.printStackTrace();
901
                        fail("Exception: "+e);
902
                }
903
904
                try {
905 23842 jjdelcerro
                        fc = (FeatureSet)fs.getDataSet();
906 19915 jmvivo
                } catch (ReadException e1) {
907
                        e1.printStackTrace();
908
                        fail();
909
                }
910
                assertEquals(9, fc.size());
911 20014 jmvivo
                fc.dispose();
912 19915 jmvivo
913
914
915 21511 jmvivo
//                try {
916
//                        fs.close();
917
//                } catch (CloseException e) {
918
//                        e.printStackTrace();
919
//                        fail("Exception:" + e);
920
//                }
921 19915 jmvivo
922 20743 jmvivo
                try {
923 23842 jjdelcerro
                        fc = (FeatureSet) fs.getDataCollection(fs
924 22284 jmvivo
                                        .getDefaultFeatureType(), "NOMBRE = 'NOEXISTE'", null);
925
                } catch (ReadException e1) {
926
                        e1.printStackTrace();
927
                        fail();
928
                }
929
930
                count = 0;
931
                it = fc.iterator();
932
                while (it.hasNext()) {
933
                        it.next();
934
                        count++;
935
                }
936
                assertEquals(0, count);
937
938
939
940
                try {
941 20743 jmvivo
                        fs.dispose();
942
                } catch (CloseException e) {
943
                        e.printStackTrace();fail();
944
                }
945 19915 jmvivo
946 20743 jmvivo
                // TODO FALTA Notificaci?n de edici?n
947 23010 jmvivo
                doFileResourceTest(dp);
948 20798 jmvivo
//                JDBCTest.doFileResourceTest(dp,false);
949 20743 jmvivo
950 19915 jmvivo
                deleteTable(dp);
951
952
                System.out.println("======= /H2 ==============");
953
954
        }
955
956 20129 jmvivo
        public void testH2_explorer_list(){
957
                System.out.println("======= H2 explorer list ==============");
958 20082 jmvivo
                Register.selfRegister();
959 19915 jmvivo
960 23754 jjdelcerro
                DataManager dm=DefaultDataManager.getManager();
961 20082 jmvivo
962
963 21594 jmvivo
                H2ExplorerParameters dp=null;
964
                try {
965 24081 jjdelcerro
                        dp = (H2ExplorerParameters)dm.createExplorerParameters(H2Explorer.DATAEXPLORER_NAME);
966 21594 jmvivo
                } catch (InitializeException e2) {
967
                        e2.printStackTrace();
968
                        fail();
969
                }
970 20082 jmvivo
971
                dp.setHost("localhost");
972
                dp.setUser("SA");
973
                dp.setPassw("");
974
                dp.setShowInformationDBTables(true);
975
976 23754 jjdelcerro
                FeatureExplorer explorer=null;
977 20082 jmvivo
                try {
978 24081 jjdelcerro
                        explorer = (FeatureExplorer)dm.createExplorer(dp);
979 20082 jmvivo
                } catch (InitializeException e1) {
980
                        e1.printStackTrace();
981
                        fail();        return;
982
                }
983
984 21045 jmvivo
                DataStoreParameters[] list= null;
985 20082 jmvivo
986
                try {
987
                        list = explorer.list();
988
                } catch (ReadException e) {
989
                        e.printStackTrace();
990
                        fail();return;
991
                }
992
993
                H2StoreParameters h2param= null;
994
                DBFeatureType ftype=null;
995
                Iterator iter = null;
996 20789 vcaballero
                DBAttributeDescriptor attr= null;
997 20082 jmvivo
998 20798 jmvivo
                int i;
999 20082 jmvivo
                for (i=0;i<list.length;i++){
1000
                        h2param = (H2StoreParameters)list[i];
1001
                        System.out.println("Table: "+h2param.tableID());
1002
                        try {
1003
                                ftype =(DBFeatureType)(explorer.getFeatureTypes(h2param)[0]);
1004
                        } catch (ReadException e) {
1005
                                e.printStackTrace();
1006
                                fail();        return;
1007
                        }
1008
                        System.out.println("\tNum fields: "+ftype.size());
1009
                        System.out.println("\tPk field: "+ftype.getFieldsId()[0]);
1010
                        System.out.println("\tFields: ");
1011
1012
1013
                        iter = ftype.iterator();
1014
                        while(iter.hasNext()){
1015 20789 vcaballero
                                attr = (DBAttributeDescriptor) iter.next();
1016 20082 jmvivo
                                System.out.println("\t\t "+attr.getName()+" "+attr.getDataType());
1017
                        }
1018
1019
                }
1020
1021 20800 jmvivo
                try {
1022
                        explorer.dispose();
1023
                } catch (DataException e) {
1024
                        e.printStackTrace();
1025
                }
1026 20082 jmvivo
1027 23032 jmvivo
                this.persistenceTest(dp);
1028 20800 jmvivo
1029 20129 jmvivo
                System.out.println("======= H2 explorer list==============");
1030 20082 jmvivo
        }
1031
1032 20242 jmvivo
        public void testH2_explorer_remove(){
1033 20129 jmvivo
                System.out.println("======= H2 explorer delete==============");
1034
                Register.selfRegister();
1035 20082 jmvivo
1036 23754 jjdelcerro
                DataManager dm=DefaultDataManager.getManager();
1037 20129 jmvivo
1038
                H2StoreParameters ds=cretateTablePrueba();
1039
1040 21594 jmvivo
                H2ExplorerParameters dex=null;
1041
                try {
1042 24081 jjdelcerro
                        dex = (H2ExplorerParameters)dm.createExplorerParameters(H2Explorer.DATAEXPLORER_NAME);
1043 21594 jmvivo
                } catch (InitializeException e2) {
1044
                        e2.printStackTrace();
1045
                        fail();
1046
                }
1047 20129 jmvivo
1048 23599 jmvivo
                dex.putAllDefaultValues(ds);
1049 20129 jmvivo
                dex.setShowInformationDBTables(false);
1050
1051 23754 jjdelcerro
                FeatureExplorer explorer=null;
1052 20129 jmvivo
                try {
1053 24081 jjdelcerro
                        explorer = (FeatureExplorer)dm.createExplorer(dex);
1054 20129 jmvivo
                } catch (InitializeException e1) {
1055
                        e1.printStackTrace();
1056
                        fail();        return;
1057
                }
1058
1059 21045 jmvivo
                DataStoreParameters[] list= null;
1060 20129 jmvivo
1061
                try {
1062
                        list = explorer.list();
1063
                } catch (ReadException e) {
1064
                        e.printStackTrace();
1065
                        fail();return;
1066
                }
1067
1068
                if (list.length < 1){
1069
                        fail();        return;
1070
                }
1071
                int i;
1072
                boolean found=false;
1073
                H2StoreParameters dsaux=null;
1074
                for(i=0;i<list.length;i++){
1075
                        dsaux = (H2StoreParameters)list[i];
1076
                        if (dsaux.getTableName().equals(ds.getTableName())){
1077
                                found=true;
1078
                                break;
1079
                        }
1080
                }
1081
                if (!found){
1082
                        fail();
1083
                }
1084
1085
                try {
1086
                        explorer.remove(dsaux);
1087
                } catch (ReadException e) {
1088
                        e.printStackTrace();
1089
                        fail();return;
1090
                }
1091
1092
                try {
1093
                        list = explorer.list();
1094
                } catch (ReadException e) {
1095
                        e.printStackTrace();
1096
                        fail();return;
1097
                }
1098
1099
                found = false;
1100
                for(i=0;i<list.length;i++){
1101
                        dsaux = (H2StoreParameters)list[i];
1102
                        if (dsaux.getTableName().equals(ds.getTableName())){
1103
                                found=true;
1104
                                break;
1105
                        }
1106
                }
1107
                if (found){
1108
                        fail();
1109
                }
1110
1111 20800 jmvivo
                try {
1112
                        explorer.dispose();
1113
                } catch (DataException e) {
1114
                        e.printStackTrace();fail();
1115
                }
1116
1117 20242 jmvivo
                System.out.println("======= /H2 explorer remove==============");
1118 20129 jmvivo
        }
1119 20242 jmvivo
1120
        public void testH2_explorer_add_remove(){
1121
                System.out.println("======= H2 explorer add/remove==============");
1122
                Register.selfRegister();
1123
1124 23754 jjdelcerro
                DataManager dm=DefaultDataManager.getManager();
1125 20242 jmvivo
1126
1127 21594 jmvivo
                H2ExplorerParameters dex=null;
1128
                try {
1129 24081 jjdelcerro
                        dex = (H2ExplorerParameters)dm.createExplorerParameters(H2Explorer.DATAEXPLORER_NAME);
1130 21594 jmvivo
                } catch (InitializeException e3) {
1131
                        e3.printStackTrace();
1132
                        fail();
1133
                }
1134 20242 jmvivo
1135
1136
                dex.setHost("localhost");
1137
                dex.setUser("SA");
1138
                dex.setPassw("");
1139
1140 23754 jjdelcerro
                FeatureExplorer explorer=null;
1141 20242 jmvivo
                try {
1142 24081 jjdelcerro
                        explorer = (FeatureExplorer)dm.createExplorer(dex);
1143 20242 jmvivo
                } catch (InitializeException e1) {
1144
                        e1.printStackTrace();
1145
                        fail();        return;
1146
                }
1147
1148
1149
1150
1151 23340 jmvivo
                H2NewStoreParameter newdp;
1152
                try {
1153
                        newdp = (H2NewStoreParameter) explorer
1154
                                        .createNewDataStoreParameter();
1155
                } catch (InitializeException e3) {
1156
                        e3.printStackTrace();
1157
                        fail();
1158
                        return;
1159
                }
1160 20242 jmvivo
1161
                newdp.getH2Parameters().setTableName(nuevoNombreDeTabla("th2_create").toUpperCase());
1162 23599 jmvivo
                newdp.getH2Parameters().setFieldsId(new String[] {"ID"});
1163 20242 jmvivo
1164
1165
                DBFeatureType ftype = new DBFeatureType();
1166 20849 jmvivo
1167 20242 jmvivo
                newdp.setFeatureType(ftype);
1168 20789 vcaballero
                DBAttributeDescriptor attr;
1169 20242 jmvivo
1170 20908 jmvivo
                attr = (DBAttributeDescriptor) ftype.createAttributeDescriptor();
1171 20420 vcaballero
                try {
1172
                        attr.loading();
1173
                        attr.setName("ID");
1174
                        attr.setAutoIncrement(true);
1175 23754 jjdelcerro
                        attr.setType(FeatureAttributeDescriptor.INT);
1176 20420 vcaballero
                        attr.setPrimaryKey(true);
1177
                        attr.stopLoading();
1178
                        ftype.add(attr);
1179 20242 jmvivo
1180 20908 jmvivo
                        attr = (DBAttributeDescriptor) ftype.createAttributeDescriptor();
1181 20420 vcaballero
                        attr.loading();
1182
                        attr.setName("MYGEOMETRY");
1183 23754 jjdelcerro
                        attr.setType(FeatureAttributeDescriptor.GEOMETRY);
1184 20420 vcaballero
                        attr.stopLoading();
1185
                        ftype.add(attr);
1186
                        ftype.setDefaultGeometry(attr.getName());
1187 20242 jmvivo
1188 20908 jmvivo
                        attr = (DBAttributeDescriptor) ftype.createAttributeDescriptor();
1189 20420 vcaballero
                        attr.loading();
1190
                        attr.setName("MYSTRING");
1191
                        attr.setSize(50);
1192
                        attr.setDefaultValue("def");
1193 23754 jjdelcerro
                        attr.setType(FeatureAttributeDescriptor.STRING);
1194 20420 vcaballero
                        attr.stopLoading();
1195
                        ftype.add(attr);
1196 20242 jmvivo
1197
1198 20908 jmvivo
                        attr = (DBAttributeDescriptor) ftype.createAttributeDescriptor();
1199 20420 vcaballero
                        attr.loading();
1200
                        attr.setName("MYDOUBLE");
1201
1202 23754 jjdelcerro
                        attr.setType(FeatureAttributeDescriptor.DOUBLE);
1203 20420 vcaballero
1204
                        attr.stopLoading();
1205 20849 jmvivo
1206
                        ftype.add(attr);
1207
1208
                        ftype.setFieldsId(newdp.getH2Parameters().getFieldsId());
1209
                } catch (DataException e2) {
1210 20420 vcaballero
                        e2.printStackTrace();
1211
                        fail();return;
1212
                }
1213 20242 jmvivo
1214
                try {
1215
                        explorer.add(newdp);
1216
                } catch (InitializeException e1) {
1217
                        e1.printStackTrace();
1218
                        fail();return;
1219
                } catch (WriteException e1) {
1220
                        e1.printStackTrace();
1221
                        fail();return;
1222
                }
1223
1224
1225 21045 jmvivo
                DataStoreParameters[] list= null;
1226 20242 jmvivo
1227
                try {
1228
                        list = explorer.list();
1229
                } catch (ReadException e) {
1230
                        e.printStackTrace();
1231
                        fail();return;
1232
                }
1233
1234
                if (list.length < 1){
1235
                        fail();        return;
1236
                }
1237
                int i;
1238
                boolean found=false;
1239
                H2StoreParameters dsaux=null;
1240
                for(i=0;i<list.length;i++){
1241
                        dsaux = (H2StoreParameters)list[i];
1242
                        if (dsaux.getTableName().equalsIgnoreCase(newdp.getH2Parameters().getTableName())){
1243
                                found=true;
1244
                                break;
1245
                        }
1246
                }
1247
                if (!found){
1248
                        fail();
1249
                }
1250
1251
                try {
1252
                        explorer.remove(dsaux);
1253
                } catch (ReadException e) {
1254
                        e.printStackTrace();
1255
                        fail();return;
1256
                }
1257
1258
                try {
1259
                        list = explorer.list();
1260
                } catch (ReadException e) {
1261
                        e.printStackTrace();
1262
                        fail();return;
1263
                }
1264
1265
                found = false;
1266
                for(i=0;i<list.length;i++){
1267
                        dsaux = (H2StoreParameters)list[i];
1268
                        if (dsaux.getTableName().equals(newdp.getH2Parameters().getTableName())){
1269
                                found=true;
1270
                                break;
1271
                        }
1272
                }
1273
                if (found){
1274
                        fail();
1275
                }
1276
1277 20800 jmvivo
                try {
1278
                        explorer.dispose();
1279
                } catch (DataException e) {
1280
                        e.printStackTrace();fail();
1281
                }
1282
1283 20242 jmvivo
                System.out.println("======= /H2 explorer add/remove==============");
1284
        }
1285
1286
1287 19915 jmvivo
        protected void tearDown() throws Exception {
1288
                // TODO Auto-generated method stub
1289
                super.tearDown();
1290 22284 jmvivo
                if (startsH2Server) {
1291 20242 jmvivo
                        this.stopH2Server();
1292 22284 jmvivo
                }
1293 20082 jmvivo
1294
1295 19915 jmvivo
        }
1296
}