org.herodbsql.xa.PGXADataSourceFactory Maven / Gradle / Ivy
/*
 * Copyright (c) 2007, PostgreSQL Global Development Group
 * See the LICENSE file in the project root for more information.
 */
package org.herodbsql.xa;
import org.herodbsql.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.herodbsql.xa.PGXADataSource")) {
      return loadXADataSource(ref);
    } else {
      return null;
    }
  }
  private Object loadXADataSource(Reference ref) {
    PGXADataSource ds = new PGXADataSource();
    return loadBaseDataSource(ds, ref);
  }
}
    © 2015 - 2025 Weber Informatics LLC | Privacy Policy