Statistics
| Revision:

root / trunk / org.gvsig.postgresql / org.gvsig.postgresql.provider / src / main / java / org / gvsig / postgresql / dal / PostgreSQLLibrary.java @ 921

History | View | Annotate | Download (3.67 KB)

1

    
2
package org.gvsig.postgresql.dal;
3

    
4
import org.gvsig.fmap.dal.DALLibrary;
5
import org.gvsig.fmap.dal.DALLocator;
6
import org.gvsig.fmap.dal.spi.DataManagerProviderServices;
7
import org.gvsig.fmap.dal.store.db.DBHelper;
8
import org.gvsig.fmap.dal.store.jdbc2.JDBCLibrary;
9
import org.gvsig.fmap.dal.store.jdbc2.spi.JDBCStoreProviderBase;
10
import org.gvsig.json.Json;
11
import org.gvsig.metadata.exceptions.MetadataException;
12
import org.gvsig.tools.library.AbstractLibrary;
13
import org.gvsig.tools.library.LibraryException;
14

    
15

    
16
public class PostgreSQLLibrary extends AbstractLibrary {
17

    
18
    public static final String NAME = "PostgreSQL";
19

    
20
    @Override
21
    public void doRegistration() {
22
        registerAsServiceOf(DALLibrary.class);
23
        require(JDBCLibrary.class);
24
    }
25

    
26
    @Override
27
    protected void doInitialize() throws LibraryException {
28
    }
29

    
30
    @Override
31
    protected void doPostInitialize() throws LibraryException {
32
        LibraryException ex = null;
33

    
34
        DataManagerProviderServices dataman = 
35
                (DataManagerProviderServices) DALLocator.getDataManager();
36

    
37
        try {
38
            Class.forName(PostgreSQLHelper.POSTGRESQL_JDBC_DRIVER);
39
        } catch(Throwable th) {
40
            PostgreSQLHelper.LOGGER.warn("Can't load PostgreSQL JDBC Driver.",th);
41
        }
42
        
43
        DBHelper.registerParametersDefinition(
44
                NAME + "StoreParameters",
45
                PostgreSQLStoreParameters.class,
46
                dataman.getResourceAsStream(this, NAME + "Parameters.xml")
47
        );
48
        DBHelper.registerParametersDefinition(
49
                NAME + "NewStoreParameters",
50
                PostgreSQLNewStoreParameters.class,
51
                dataman.getResourceAsStream(this, NAME + "Parameters.xml")
52
        );
53
        DBHelper.registerParametersDefinition(
54
                NAME + "ServerExplorerParameters",
55
                PostgreSQLServerExplorerParameters.class,
56
                dataman.getResourceAsStream(this, NAME + "Parameters.xml")
57
        );
58
//        DBHelper.registerParametersDefinition(
59
//                NAME + "ResourceParameters",
60
//                PostgreSQLResourceParameters.class,
61
//                dataman.getResourceAsStream(this, NAME + "Parameters.xml")
62
//        );
63
        try {
64
            DBHelper.registerMetadataDefinition(
65
                NAME,
66
                JDBCStoreProviderBase.class,
67
                dataman.getResourceAsStream(this, NAME + "Metadata.xml")
68
            );
69
        } catch (MetadataException e) {
70
            ex = new LibraryException(this.getClass(), e);
71
        }
72

    
73
//        ResourceManagerProviderServices resman = (ResourceManagerProviderServices) DALLocator
74
//                .getResourceManager();
75
//
76
//        if (!resman.getResourceProviders().contains(NAME)) {
77
//            resman.register(NAME,
78
//                "Resource for " + NAME,
79
//                PostgreSQLResource.class,
80
//                PostgreSQLResourceParameters.class
81
//            );
82
//        }
83

    
84
        if (!dataman.getStoreProviderRegister().exits(NAME)) {
85
            dataman.registerStoreProviderFactory(new PostgreSQLStoreProviderFactory());
86
        }
87

    
88
        if (!dataman.getServerExplorerRegister().exits(NAME)) {
89
            dataman.registerServerExplorerFactory(new PostgreSQLServerExplorerFactory());
90
        }
91

    
92
        // Por compatibilidad con gvSIG 2.3 registramos otra vez la factoria con
93
        // el nombre que tenia antes.
94
        if (!dataman.getServerExplorerRegister().exits("PostgreSQLExplorer")) {
95
            dataman.registerServerExplorerFactory(new PostgreSQLServerExplorerFactory("PostgreSQLExplorer"));
96
        }
97
        Json.registerSerializer(PostgreSQLServerExplorerParameters.class);
98
        if (ex != null) {
99
            throw ex;
100
        }
101
    }
102

    
103
}