Class ConnectionFactoryImpl


  • public class ConnectionFactoryImpl
    extends ConnectionFactory
    ConnectionFactory implementation for version 3 (7.4+) connections.
    • Constructor Detail

      • ConnectionFactoryImpl

        public ConnectionFactoryImpl()
    • Method Detail

      • createSSPI

        private ISSPIClient createSSPI​(PGStream pgStream,
                                       java.lang.String spnServiceClass,
                                       boolean enableNegotiate)
      • tryConnect

        private PGStream tryConnect​(java.lang.String user,
                                    java.lang.String database,
                                    java.util.Properties info,
                                    javax.net.SocketFactory socketFactory,
                                    HostSpec hostSpec,
                                    SslMode sslMode,
                                    GSSEncMode gssEncMode)
                             throws java.sql.SQLException,
                                    java.io.IOException
        Throws:
        java.sql.SQLException
        java.io.IOException
      • openConnectionImpl

        public QueryExecutor openConnectionImpl​(HostSpec[] hostSpecs,
                                                java.lang.String user,
                                                java.lang.String database,
                                                java.util.Properties info)
                                         throws java.sql.SQLException
        Description copied from class: ConnectionFactory
        Specified by:
        openConnectionImpl in class ConnectionFactory
        Parameters:
        hostSpecs - at least one host and port to connect to; multiple elements for round-robin failover
        user - the username to authenticate with; may not be null.
        database - the database on the server to connect to; may not be null.
        info - extra properties controlling the connection; notably, "password" if present supplies the password to authenticate with.
        Returns:
        the new, initialized, connection, or null if this protocol version is not supported by the server.
        Throws:
        java.sql.SQLException - if the connection could not be established for a reason other than protocol version incompatibility.
      • getParametersForStartup

        private java.util.List<java.lang.String[]> getParametersForStartup​(java.lang.String user,
                                                                           java.lang.String database,
                                                                           java.util.Properties info)
      • log

        private static void log​(java.util.logging.Level level,
                                java.lang.String msg,
                                java.lang.Throwable thrown,
                                java.lang.Object... params)
      • createPostgresTimeZone

        private static java.lang.String createPostgresTimeZone()
        Convert Java time zone to postgres time zone. All others stay the same except that GMT+nn changes to GMT-nn and vise versa.
        Returns:
        The current JVM time zone in postgresql format.
      • enableGSSEncrypted

        private PGStream enableGSSEncrypted​(PGStream pgStream,
                                            GSSEncMode gssEncMode,
                                            java.lang.String host,
                                            java.lang.String user,
                                            java.util.Properties info,
                                            int connectTimeout)
                                     throws java.io.IOException,
                                            PSQLException
        Throws:
        java.io.IOException
        PSQLException
      • sendStartupPacket

        private void sendStartupPacket​(PGStream pgStream,
                                       java.util.List<java.lang.String[]> params)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • doAuthentication

        private void doAuthentication​(PGStream pgStream,
                                      java.lang.String host,
                                      java.lang.String user,
                                      java.util.Properties info)
                               throws java.io.IOException,
                                      java.sql.SQLException
        Throws:
        java.io.IOException
        java.sql.SQLException
      • runInitialQueries

        private void runInitialQueries​(QueryExecutor queryExecutor,
                                       java.util.Properties info)
                                throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • isPrimary

        private boolean isPrimary​(QueryExecutor queryExecutor)
                           throws java.sql.SQLException,
                                  java.io.IOException
        Throws:
        java.sql.SQLException
        java.io.IOException