Class ThreadedPostgreSQLEpsgFactory

  • All Implemented Interfaces:
    AuthorityFactory, CRSAuthorityFactory, CSAuthorityFactory, DatumAuthorityFactory, Factory, CoordinateOperationAuthorityFactory, BufferedFactory, Factory, OptionalFactory, RegistrableFactory

    public class ThreadedPostgreSQLEpsgFactory
    extends ThreadedEpsgFactory
    Connection to the EPSG database in PostgreSQL database engine using JDBC. The EPSG database can be downloaded from http://www.epsg.org. It should have been imported into a PostgreSQL database, which doesn't need to be on the local machine.

    Connection parameters

    The preferred way to specify connection parameters is through the JNDI interface. However, this datasource provides the following alternative as a convenience: if a "EPSG-DataSource.properties" file is found in current directory or in the user's home directory, then the following properties are fetch. Note that the default value may change in a future version if a public server become available.

    Property Type Description Geotools Default
    serverName String PostgreSQL database server host name localhost
    databaseName String PostgreSQL database name EPSG
    schema String The schema for the EPSG tables
    portNumber int TCP port which the PostgreSQL database server is listening on 5432
    user String User used to make database connections GeoTools
    password String Password used to make database connections GeoTools

    The database version is given in the edition attribute of the authority. The postgreSQL database should be read only.

    Just having this class accessible in the classpath, together with the registration in the META-INF/services/ directory, is sufficient to get a working EPSG authority factory backed by this database. Vendors can create a copy of this class, modify it and bundle it with their own distribution if they want to connect their users to an other database.

    Since:
    2.4
    Author:
    Didier Richard, Martin Desruisseaux
    • Field Detail

      • CONFIGURATION_FILE

        public static final String CONFIGURATION_FILE
        The user configuration file. This class search first for the first file found in the following directories:
        • The current directory
        • The user's home directory
        See Also:
        Constant Field Values
    • Constructor Detail

      • ThreadedPostgreSQLEpsgFactory

        public ThreadedPostgreSQLEpsgFactory()
        Creates a new instance of this factory.
      • ThreadedPostgreSQLEpsgFactory

        public ThreadedPostgreSQLEpsgFactory​(Hints hints)
        Creates a new instance of this factory with the specified hints. The priority is set to a lower value than the FactoryOnAccess's one in order to give the priority to any "official" database installed locally by the user, when available.
    • Method Detail

      • createDataSource

        protected DataSource createDataSource()
                                       throws SQLException
        Returns a data source for the PostgreSQL database.
        Overrides:
        createDataSource in class ThreadedEpsgFactory
        Returns:
        The EPSG data source, or null if none where found.
        Throws:
        SQLException - if an error occured while creating the data source.
      • createBackingStore

        protected AbstractAuthorityFactory createBackingStore​(Hints hints)
                                                       throws SQLException
        Returns the backing-store factory for PostgreSQL syntax.
        Overrides:
        createBackingStore in class ThreadedEpsgFactory
        Parameters:
        hints - A map of hints, including the low-level factories to use for CRS creation.
        Returns:
        The EPSG factory using PostgreSQL syntax.
        Throws:
        SQLException - if connection to the database failed.