All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.persistence.sessions.Login Maven / Gradle / Ivy

There is a newer version: 4.0.2
Show newest version
/*
 * Copyright (c) 1998, 2018 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0,
 * or the Eclipse Distribution License v. 1.0 which is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
 */

// Contributors:
//     Oracle - initial API and implementation from Oracle TopLink
package org.eclipse.persistence.sessions;

import java.util.Properties;

import org.eclipse.persistence.core.sessions.CoreLogin;
import org.eclipse.persistence.exceptions.DatabaseException;
import org.eclipse.persistence.internal.databaseaccess.Accessor;
import org.eclipse.persistence.internal.databaseaccess.Platform;
import org.eclipse.persistence.platform.database.DatabasePlatform;

/**
 * 

* Purpose: Define the information required to connect to an EclipseLink session. *

* Description: This interface represents a generic concept of a login to be used * when connecting to a data-store. It is independent of JDBC so that the EclipseLink * session interface can be used for JCA, XML, non-relational or three-tiered frameworks. * * @see DatabaseLogin */ public interface Login extends CoreLogin { /** * PUBLIC: * All logins must take a user name and password. */ String getPassword(); /** * PUBLIC: * All logins must take a user name and password. */ String getUserName(); /** * PUBLIC: * This value defaults to false when not on a DatabaseLogin as the functionality has not been implemented * for other datasource type. On an SQL Exception EclipseLink will ping the database to determine * if the connection used can continue to be used for queries. This should have no impact on applications * unless the user is using pessimistic locking queries with 'no wait' or are using a query timeout feature. * If that is the case and the application is experiencing a performance impact from the health check then * this feature can be turned off. Turning this feature off will prevent EclipseLink from being able to * retry queries in the case of database failure. */ public boolean isConnectionHealthValidatedOnError(); /** * PUBLIC: * All logins must take a user name and password. */ void setPassword(String password); /** * PUBLIC: * All logins must take a user name and password. */ void setUserName(String userName); /** * PUBLIC: * Return whether EclipseLink uses some externally managed connection pooling. */ boolean shouldUseExternalConnectionPooling(); /** * PUBLIC: * Return whether EclipseLink uses some externally managed transaction service such as JTS. */ boolean shouldUseExternalTransactionController(); /** * INTERNAL: * Return the database platform specific information. * This allows EclipseLink to configure certain advanced features for the database desired. * The platform also allows configuration of sequence information. * NOTE: this must only be used for relational specific usage and will not work for * non-relational datasources. */ DatabasePlatform getPlatform(); /** * PUBLIC: * Return the datasource platform specific information. * This allows EclipseLink to configure certain advanced features for the datasource desired. * The platform also allows configuration of sequence information. */ Platform getDatasourcePlatform(); /** * INTERNAL: * Set the database platform specific information. * This allows EclipseLink to configure certain advanced features for the database desired. * The platform also allows configuration of sequence information. */ void setPlatform(Platform platform); /** * PUBLIC: * Set the database platform specific information. * This allows EclipseLink to configure certain advanced features for the database desired. * The platform also allows configuration of sequence information. */ void setDatasourcePlatform(Platform platform); /** * INTERNAL: * Connect to the datasource, and return the driver level connection object. */ Object connectToDatasource(Accessor accessor, Session session) throws DatabaseException; /** * INTERNAL: * Build the correct datasource Accessor for this login instance. */ Accessor buildAccessor(); /** * INTERNAL: * Clone the login. */ Login clone(); /** * PUBLIC: * Return the qualifier for the all of the tables. */ public String getTableQualifier(); /** * INTERNAL: * Used for cache isolation. */ public boolean shouldAllowConcurrentReadWrite(); /** * INTERNAL: * Used for Cache Isolation. Causes EclipseLink to lock at the class level on * cache updates. */ public boolean shouldSynchronizeWrites(); /** * INTERNAL: * Used for Cache Isolation. Causes EclipseLink to lock at the object level on * cache updates and cache access. */ public boolean shouldSynchronizeObjectLevelReadWrite(); /** * INTERNAL: * Used for Cache Isolation. Causes EclipseLink to lock at the object level on * cache updates and cache access, based on database transaction. */ public boolean shouldSynchronizeObjectLevelReadWriteDatabase(); /** * INTERNAL: * Used for cache isolation. */ public boolean shouldSynchronizedReadOnWrite(); /** * PUBLIC: * The properties are additional, driver-specific, connection information * to be passed to the driver.

* NOTE: Do not set the password directly by getting the properties and * setting the "password" property directly. Use the method DatabaseLogin.setPassword(String). */ public Object getProperty(String name); /** * PUBLIC: * The properties are additional, driver-specific, connection information * to be passed to the JDBC driver. */ public void setProperties(Properties properties); /** * PUBLIC: * Some JDBC drivers require additional, driver-specific, properties. * Add the specified property to those to be passed to the JDBC driver. */ public void setProperty(String propertyName, Object propertyValue); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy