Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.h2spatial / org.gvsig.h2spatial.h2gis132 / org.gvsig.h2spatial.h2gis132.provider / src / test / java / org / gvsig / fmap / dal / store / h2 / TestUtils.java @ 46277

History | View | Annotate | Download (5.75 KB)

1
package org.gvsig.fmap.dal.store.h2;
2

    
3
import java.io.File;
4
import java.net.URL;
5
import java.util.ArrayList;
6
import java.util.List;
7
import org.apache.commons.io.FileUtils;
8
import org.apache.commons.lang3.StringUtils;
9
import org.gvsig.fmap.dal.DALLocator;
10
import org.gvsig.fmap.dal.DataManager;
11
import org.gvsig.fmap.dal.DataServerExplorerParameters;
12
import org.gvsig.fmap.dal.DataStore;
13
import org.gvsig.fmap.dal.DatabaseWorkspaceManager;
14
import org.gvsig.fmap.dal.feature.Feature;
15
import org.gvsig.fmap.dal.feature.FeatureStore;
16
import org.gvsig.fmap.dal.feature.impl.DefaultFeature;
17
import org.gvsig.fmap.dal.feature.spi.FeatureProvider;
18
import org.gvsig.fmap.dal.store.jdbc2.JDBCHelper;
19
import org.gvsig.fmap.dal.store.jdbc2.JDBCServerExplorer;
20
import org.gvsig.fmap.dal.store.jdbc2.spi.FakeConnectionProvider;
21
import org.slf4j.Logger;
22
import org.slf4j.LoggerFactory;
23

    
24
public class TestUtils  {
25
    
26
    public static final Logger LOGGER = LoggerFactory.getLogger(TestUtils.class);
27

    
28
    public static final String PROVIDER_NAME = H2SpatialLibrary.NAME;
29

    
30
    private static int dbcounter = 1;
31
    
32
    public static H2SpatialConnectionParameters buildDBConnection(String dbname) throws Exception {
33
        DataManager dataManager = DALLocator.getDataManager();
34
        H2SpatialConnectionParameters conn = (H2SpatialConnectionParameters) 
35
                dataManager.createServerExplorerParameters(H2SpatialLibrary.NAME);
36

    
37
        File dbfile = TestUtils.getResource(String.format(
38
                "test-dbs/%s-%d-%03d",
39
                dbname,
40
                System.currentTimeMillis(), 
41
                dbcounter++
42
            )
43
        );
44
//        System.out.println("#### dbfile: " + dbfile.getAbsolutePath());
45
        FileUtils.forceMkdir(dbfile.getParentFile());
46
        conn.setFile(dbfile);
47
        return conn;
48
    }
49
    
50
    public static JDBCServerExplorer openServerExplorer(String dbname) throws Exception {
51
        DataManager dataManager = DALLocator.getDataManager();
52
        H2SpatialConnectionParameters conn = buildDBConnection(dbname);
53
        JDBCServerExplorer explorer = (JDBCServerExplorer) dataManager.openServerExplorer(
54
                PROVIDER_NAME, conn
55
        );
56
        return explorer;
57
    }
58
    
59
    public static File getTargetFolder() throws Exception {
60
        URL url = TestUtils.class.getResource("/");
61
        File x = new File(url.toURI());
62
        File target = x.getParentFile();
63
        return target;
64
    }
65
    
66
    public static File getResource(String name) throws Exception {
67
        File x = new File(getTargetFolder(), name);
68
        return x;
69
    }
70
    
71
    public static File getResourceAsFile(String pathname) throws Exception {
72
        URL url = TestUtils.class.getResource(pathname);
73
        File x = new File(url.toURI());
74
        return x;
75
    }
76

    
77
    public static void removeDALResource(String dbname, String name) throws Exception {
78
        H2SpatialConnectionParameters connection = buildDBConnection(dbname);
79
        DatabaseWorkspaceManager workspace = DALLocator.getDataManager().createDatabaseWorkspaceManager(
80
                (DataServerExplorerParameters) connection
81
        );
82
//        ResourcesStorage resources = workspace.getResourcesStorage(name);
83
//        resources.remove("dal");
84
    }
85

    
86
    public static FeatureStore openSourceStore1() throws Exception {
87
        DataManager dataManager = DALLocator.getDataManager();
88
        File f = getResourceAsFile("/org/gvsig/fmap/dal/store/h2/testCreateSource1.csv");
89
        FeatureStore store = (FeatureStore) dataManager.openStore(
90
                DataStore.CSV_PROVIDER_NAME, 
91
                "file=",f,
92
                "automaticTypesDetection=", false,
93
                "locale=","en"
94
        );
95
        return store;
96
    }
97
        
98
    public static FeatureStore openStoreTest(String baseFile) throws Exception {
99
        DataManager dataManager = DALLocator.getDataManager();
100
        File f = getResourceAsFile("/org/gvsig/fmap/dal/store/h2/"+baseFile);
101
        FeatureStore store = (FeatureStore) dataManager.openStore(
102
                DataStore.CSV_PROVIDER_NAME, 
103
                "file=",f,
104
                "automaticTypesDetection=", false,
105
                "locale=","en"
106
        );
107
                dataManager.getStoresRepository().add(store.getName(), store.getParameters());
108
        return store;
109
    }
110
        
111
    public static FeatureStore openSourceStore2() throws Exception {
112
        DataManager dataManager = DALLocator.getDataManager();
113
        File f = getResourceAsFile("/org/gvsig/fmap/dal/store/h2/testCreateSource2.csv");
114
        FeatureStore store = (FeatureStore) dataManager.openStore(
115
                DataStore.CSV_PROVIDER_NAME, 
116
                "file=",f,
117
                "automaticTypesDetection=", false,
118
                "locale=","en"
119
        );
120
        return store;
121
    }
122
 
123

    
124
    public static List<String> getSQLs(String name) throws Exception {
125
      File f = getResourceAsFile("/org/gvsig/fmap/dal/store/h2/"+name);
126
      List<String> SQLs = new ArrayList<>();
127
      List<String> lines = FileUtils.readLines(f);
128
      StringBuilder sb = new StringBuilder();
129
      for (String line : lines) {
130
        line = StringUtils.stripStart(line, null);
131
        if( line.startsWith("--") ) {
132
          continue;
133
        }
134
        if( line.endsWith(";") ) {
135
          sb.append(line.substring(0, line.length()-1));
136
          SQLs.add(sb.toString());
137
          sb.setLength(0);
138
        } else {
139
          sb.append(line);
140
        }
141
      }
142
      return SQLs;
143
    }
144
    
145
    public static FeatureProvider getFeatureProvider(Feature feature) {
146
      return ((DefaultFeature)feature).getData();
147
    }
148

    
149
    public static H2SpatialHelper createJDBCHelper() throws Exception {
150
      H2SpatialConnectionParameters params = buildDBConnection("fake");
151
      H2SpatialHelper helper = new H2SpatialHelper(params, new FakeConnectionProvider());
152
      return helper;
153
    }
154
    
155

    
156
}