blob: a148ea2475d26c2668c80f89f9bbac38540c3019 [file] [log] [blame]
/*
* Copyright (c) 2019, 2021 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2019 IBM Corporation. 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:
// IBM - initial drop
// 05/06/2019 - Jody Grassel
// - 547023 : Add LOB Locator support for core Oracle platform.
package org.eclipse.persistence.jpa.test.oraclefeatures;
import org.eclipse.persistence.config.SessionCustomizer;
import org.eclipse.persistence.internal.databaseaccess.Platform;
import org.eclipse.persistence.platform.database.Oracle8Platform;
import org.eclipse.persistence.sessions.Session;
import org.eclipse.persistence.sessions.SessionEvent;
import org.eclipse.persistence.sessions.SessionEventAdapter;
public class OracleLOBLocatorSessionCustomizer implements SessionCustomizer {
@Override
public void customize(Session session) throws Exception {
session.getEventManager().addListener(new OracleLobSessionEventAdapter());
}
private class OracleLobSessionEventAdapter extends SessionEventAdapter {
/**
* PUBLIC:
* This Event is raised after the session logs in.
*/
@Override
public void postLogin(SessionEvent event) {
Session session = event.getSession();
Platform dbPlatform = session.getDatasourcePlatform();
if (dbPlatform instanceof Oracle8Platform) {
((Oracle8Platform) dbPlatform).setShouldUseLocatorForLOBWrite(true);
}
}
}
}