org.postgresql.xa.PGXADataSourceFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jdbc-yugabytedb Show documentation
Show all versions of jdbc-yugabytedb Show documentation
Java JDBC 4.2 (JRE 8+) driver for YugaByte SQL database
/*
* Copyright (c) 2007, PostgreSQL Global Development Group
* See the LICENSE file in the project root for more information.
*/
package org.postgresql.xa;
import org.postgresql.ds.common.PGObjectFactory;
import org.checkerframework.checker.nullness.qual.Nullable;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.Name;
import javax.naming.Reference;
/**
* An ObjectFactory implementation for PGXADataSource-objects.
*/
public class PGXADataSourceFactory extends PGObjectFactory {
/*
* All the other PostgreSQL DataSource use PGObjectFactory directly, but we can't do that with
* PGXADataSource because referencing PGXADataSource from PGObjectFactory would break
* "JDBC2 Enterprise" edition build which doesn't include PGXADataSource.
*/
public @Nullable Object getObjectInstance(Object obj, Name name, Context nameCtx,
Hashtable, ?> environment) throws Exception {
Reference ref = (Reference) obj;
String className = ref.getClassName();
if (className.equals("org.postgresql.xa.PGXADataSource")) {
return loadXADataSource(ref);
} else {
return null;
}
}
private Object loadXADataSource(Reference ref) {
PGXADataSource ds = new PGXADataSource();
return loadBaseDataSource(ds, ref);
}
}