blob: 15292e68f45356c1eb7dd8b53fcb4c5740351a0f [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 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.testing.tests.remote.rmi.IIOP;
import java.rmi.RemoteException;
import org.eclipse.persistence.internal.sessions.remote.Transporter;
import org.eclipse.persistence.sessions.remote.rmi.iiop.RMIRemoteSessionControllerDispatcher;
import org.eclipse.persistence.sessions.Session;
import org.eclipse.persistence.testing.tests.remote.TransporterGenerator;
/**
* RemoteSessionController sits between the remote session and the session. Any interaction between these two classes
* takes place through this object. As the object extends unicast remote object it listens to only single remote session
* during runtime.
*/
public class RMIRemoteSessionControllerDispatcherForTestingExceptions extends RMIRemoteSessionControllerDispatcher {
protected TransporterGenerator generator;
public RMIRemoteSessionControllerDispatcherForTestingExceptions(Session session) throws RemoteException {
// This call to the super is required in RMI.
this(session, (TransporterGenerator) session.getProperty("TransporterGenerator"));
}
public RMIRemoteSessionControllerDispatcherForTestingExceptions(Session session, TransporterGenerator generator) throws RemoteException {
// This call to the super is required in RMI.
super(session);
this.controller = null;
this.generator = generator;
}
protected Transporter handleByMode() {
return generator.generate();
}
/**
* INTERNAL: This method is intended to be used by by sessions that wish to execute a command on a remote session
*
* @param remoteCommand RemoteCommand The command to be executed on the remote session
*/
@Override
public Transporter processCommand(Transporter remoteTransporter) {
return handleByMode();
}
/**
* Begin a transaction on the database.
*/
@Override
public Transporter beginTransaction() {
return handleByMode();
}
/**
* Begin a transaction on the database.
*/
@Override
public Transporter beginEarlyTransaction() {
return handleByMode();
}
/**
* Remote unit of work after serialization is commited locally.
*/
@Override
public Transporter commitRootUnitOfWork(Transporter remoteUnitOfWork) {
return handleByMode();
}
/**
* Commit a transaction on the database.
*/
@Override
public Transporter commitTransaction() {
return handleByMode();
}
/**
* TESTING: Return if the two object match completely. This checks the objects attributes and their private parts.
*/
public Transporter compareObjects(Transporter firstObject, Transporter secondObject) {
return handleByMode();
}
/**
* TESTING: Return true if the object do not match. This checks the objects attributes and their private parts.
*/
public Transporter compareObjectsDontMatch(Transporter firstObject, Transporter secondObject) {
return handleByMode();
}
/**
* ADVANCED: Return if their is an object for the primary key.
*/
public Transporter containsObjectInIdentityMap(Transporter domainObject) {
return handleByMode();
}
/**
* ADVANCED: Return if their is an object for the primary key.
*/
public Transporter containsObjectInIdentityMap(Transporter primaryKey, Transporter theClass) {
return handleByMode();
}
/**
* Used for closing cursored streams across RMI.
*/
@Override
public Transporter cursoredStreamClose(Transporter remoteCursoredStreamID) {
return handleByMode();
}
/**
* Retrieve next page size of objects from the remote cursored stream
*/
@Override
public Transporter cursoredStreamNextPage(Transporter remoteCursoredStream, int pageSize) {
return handleByMode();
}
/**
* Return the cursored stream size
*/
@Override
public Transporter cursoredStreamSize(Transporter remoteCursoredStreamOid) {
return handleByMode();
}
/**
* Returns a remote cursor stub in a transporter
*/
@Override
public Transporter cursorSelectObjects(Transporter remoteTransporter) {
return handleByMode();
}
/**
* A remote query after serialization is executed locally.
*/
@Override
public Transporter executeNamedQuery(Transporter nameTransporter, Transporter classTransporter, Transporter argumentsTransporter) {
return handleByMode();
}
/**
* A remote query after serialization is executed locally.
*/
@Override
public Transporter executeQuery(Transporter query) {
return handleByMode();
}
/**
* Extract descriptor from the session
*/
@Override
public Transporter getDescriptor(Transporter theClass) {
return handleByMode();
}
/**
* Extract descriptor from the session
*/
@Override
public Transporter getDescriptorForAlias(Transporter theClass) {
return handleByMode();
}
/**
* Get the default read-only classes
*
*/
@Override
public Transporter getDefaultReadOnlyClasses() {
return handleByMode();
}
/**
* PUBLIC: Return the ExceptionHandler.Exception handler can catch errors that occur on queries or during database
* access.
*/
public Transporter getExceptionHandler() {
return handleByMode();
}
/**
* ADVANCED: Return the object from the identity with primary and class of the given object.
*/
public Transporter getFromIdentityMap(Transporter domainObject) {
return handleByMode();
}
/**
* ADVANCED: Return the object from the identity with the primary and class.
*/
public Transporter getFromIdentityMap(Transporter primaryKey, Transporter theClass) {
return handleByMode();
}
/**
* Get the associated session login.
*/
@Override
public Transporter getLogin() {
return handleByMode();
}
/**
* PUBLIC: Return the profiler. The profiler is a tool that can be used to determine performance bottlenecks. The
* profiler can be queries to print summaries and configure for logging purposes.
*/
public Transporter getProfiler() {
return handleByMode();
}
/**
* PUBLIC: Return the writer to which an accessor writes logged messages and SQL. If not set, this reference
* defaults to a writer on System.out. To enable logging, logMessages must be turned on.
*
* @see #logMessages()
*/
public Transporter getRemoteLog() {
return handleByMode();
}
/**
* INTERNAL: Get the value returned by remote function call
*/
@Override
public Transporter getSequenceNumberNamed(Transporter remoteFunctionCall) {
return handleByMode();
}
/**
* PUBLIC: Return the session log to which an accessor logs messages and SQL. If not set, this will default to a
* session log on a writer on System.out. To enable logging, logMessages must be turned on.
*
* @see #logMessages()
*/
public Transporter getSessionLog() {
return handleByMode();
}
/**
* PUBLIC: Reset the identity map for only the instances of the class. For inheritance the user must make sure that
* they only use the root class. Caution must be used in doing this to ensure that the objects within the identity
* map are not referenced from other objects of other classes or from the application.
*/
public Transporter initializeIdentityMap(Transporter theClass) {
return handleByMode();
}
@Override
public Transporter initializeIdentityMapsOnServerSession() {
return handleByMode();
}
/**
* The corresponding original value holder is instantiated.
*/
@Override
public Transporter instantiateRemoteValueHolderOnServer(Transporter remoteValueHolder) {
return handleByMode();
}
/**
* Return if this session is connected.
*/
public Transporter isConnected() {
return handleByMode();
}
/**
* Log the log entry.
*/
public Transporter log(Transporter entry) {
return handleByMode();
}
/**
* PUBLIC: Used to print all the objects in the identity map of the passed in class. The output of this method will
* go the the Session's log.
*/
public Transporter printIdentityMap(Transporter theClass) {
return handleByMode();
}
/**
* PUBLIC: Used to print all the objects in every identity map in this session. The output of this method will go to
* the Session's log.
*/
public Transporter printIdentityMaps() {
return handleByMode();
}
/**
* ADVANCED: Remove the object from the object cache. Caution should be used when calling to avoid violating object
* identity. The application should only call this is it knows that no references to the object exist.
*/
public Transporter removeFromIdentityMap(Transporter domainObject) {
return handleByMode();
}
/**
* ADVANCED: Remove the object from the object cache. Caution should be used when calling to avoid violating object
* identity. The application should only call this is it knows that no references to the object exist.
*/
public Transporter removeFromIdentityMap(Transporter key, Transporter theClass) {
return handleByMode();
}
/**
* Rollback a transaction on the database.
*/
@Override
public Transporter rollbackTransaction() {
return handleByMode();
}
/**
* Moves the cursor to the given row number in the result set
*/
@Override
public Transporter scrollableCursorAbsolute(Transporter remoteScrollableCursorOid, int rows) {
return handleByMode();
}
/**
* Moves the cursor to the end of the result set, just after the last row.
*/
@Override
public Transporter scrollableCursorAfterLast(Transporter remoteScrollableCursorOid) {
return handleByMode();
}
/**
* Moves the cursor to the front of the result set, just before the first row
*/
@Override
public Transporter scrollableCursorBeforeFirst(Transporter remoteScrollableCursor) {
return handleByMode();
}
/**
* Used for closing scrollable cursor across RMI.
*/
@Override
public Transporter scrollableCursorClose(Transporter remoteScrollableCursorOid) {
return handleByMode();
}
/**
* Retrieves the current row index number
*/
@Override
public Transporter scrollableCursorCurrentIndex(Transporter remoteScrollableCursor) {
return handleByMode();
}
/**
* Moves the cursor to the first row in the result set
*/
@Override
public Transporter scrollableCursorFirst(Transporter remoteScrollableCursor) {
return handleByMode();
}
/**
* Indicates whether the cursor is after the last row in the result set.
*/
@Override
public Transporter scrollableCursorIsAfterLast(Transporter remoteScrollableCursor) {
return handleByMode();
}
/**
* Indicates whether the cursor is before the first row in the result set.
*/
@Override
public Transporter scrollableCursorIsBeforeFirst(Transporter remoteScrollableCursor) {
return handleByMode();
}
/**
* Indicates whether the cursor is on the first row of the result set.
*/
@Override
public Transporter scrollableCursorIsFirst(Transporter remoteScrollableCursor) {
return handleByMode();
}
/**
* Indicates whether the cursor is on the last row of the result set.
*/
@Override
public Transporter scrollableCursorIsLast(Transporter remoteScrollableCursor) {
return handleByMode();
}
/**
* Moves the cursor to the last row in the result set
*/
@Override
public Transporter scrollableCursorLast(Transporter remoteScrollableCursor) {
return handleByMode();
}
/**
* Retrieve next object from the scrollable cursor
*/
@Override
public Transporter scrollableCursorNextObject(Transporter scrollableCursorOid) {
return handleByMode();
}
/**
* Retrieve previous object from the scrollable cursor
*/
@Override
public Transporter scrollableCursorPreviousObject(Transporter scrollableCursorOid) {
return handleByMode();
}
/**
* Moves the cursor to the given row number in the result set
*/
@Override
public Transporter scrollableCursorRelative(Transporter remoteScrollableCursor, int rows) {
return handleByMode();
}
/**
* Return the cursor size
*/
@Override
public Transporter scrollableCursorSize(Transporter remoteCursorOid) {
return handleByMode();
}
/**
* PUBLIC: Set the exceptionHandler. Exception handler can catch errors that occur on queries or during database
* access.
*/
public Transporter setExceptionHandler(Transporter exceptionHandler) {
return handleByMode();
}
/**
* PUBLIC: Set the writer to which an accessor writes logged messages and SQL. If not set, this reference defaults
* to a writer on System.out. To enable logging logMessages() is used.
*
* @see #logMessages()
*/
public Transporter setLog(Transporter log) {
return handleByMode();
}
/**
* INTERNAL: Set the login.
*/
public Transporter setLogin(Transporter login) {
return handleByMode();
}
/**
* PUBLIC: Set the profiler for the session. This allows for performance operations to be profiled.
*/
public Transporter setProfiler(Transporter profiler) {
return handleByMode();
}
/**
* PUBLIC: Set the session log to which an accessor logs messages and SQL. If not set, this will default to a
* session log on a writer on System.out. To enable logging, logMessages must be turned on.
*
* @see #logMessages()
*/
public Transporter setSessionLog(Transporter sessionLog) {
return handleByMode();
}
/**
* PUBLIC: Set messages logging. Message logging will dump all SQL executed through TopLink to the session's log. By
* default this is System.out, but can be set to any Writer.
*
* @see #setLog(Writer)
*/
public Transporter setShouldLogMessages(Transporter shouldLogMessages) {
return handleByMode();
}
/**
* Return if all messages such as executed SQL commands should be logged.
*/
public Transporter shouldLogMessages() {
return handleByMode();
}
/**
* ADVANCED: This can be used to help debugging an object identity problem. An object identity problem is when an
* object in the cache references an object not in the cache. This method will validate that all cached objects are
* in a correct state.
*/
public Transporter validateCache() {
return handleByMode();
}
/**
* INTERNAL: TESTING: This is used by testing code to ensure that a deletion was successful.
*/
public Transporter verifyDelete(Transporter domainObject) {
return handleByMode();
}
}