This is an automated email from the git hooks/post-receive script. ebourg-guest pushed a commit to tag REL8_2_505 in repository libpostgresql-jdbc-java.
commit b752d3775d269d2100551df0c57c39d128d6aae4 Author: Kris Jurka <[email protected]> Date: Mon Feb 26 19:24:41 2007 +0000 Fix persistence of XA datasources. PGObjectFactory wasn't aware of PGXADataSource and can't be because of the requirements for different build versions. Add a new PGXADataSourceFactory to provide this functionality. Heikki Linnakangas --- org/postgresql/xa/PGXADataSource.java | 11 +++++++ org/postgresql/xa/PGXADataSourceFactory.java | 47 ++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/org/postgresql/xa/PGXADataSource.java b/org/postgresql/xa/PGXADataSource.java index ddb54e0..b5966ae 100644 --- a/org/postgresql/xa/PGXADataSource.java +++ b/org/postgresql/xa/PGXADataSource.java @@ -4,6 +4,7 @@ import java.sql.Connection; import java.sql.SQLException; import javax.naming.Referenceable; +import javax.naming.Reference; import javax.sql.XAConnection; import javax.sql.XADataSource; @@ -50,4 +51,14 @@ public class PGXADataSource extends BaseDataSource implements Referenceable, XAD public String getDescription() { return "JDBC3 XA-enabled DataSource from " + org.postgresql.Driver.getVersion(); } + + /** + * Generates a reference using the appropriate object factory. + */ + protected Reference createReference() { + return new Reference( + getClass().getName(), + PGXADataSourceFactory.class.getName(), + null); + } } diff --git a/org/postgresql/xa/PGXADataSourceFactory.java b/org/postgresql/xa/PGXADataSourceFactory.java new file mode 100644 index 0000000..eb3a238 --- /dev/null +++ b/org/postgresql/xa/PGXADataSourceFactory.java @@ -0,0 +1,47 @@ +/*------------------------------------------------------------------------- +* +* Copyright (c) 2007, PostgreSQL Global Development Group +* +* IDENTIFICATION +* $PostgreSQL$ +* +*------------------------------------------------------------------------- +*/ +package org.postgresql.xa; + +import org.postgresql.ds.common.*; + +import javax.naming.*; +import java.util.Hashtable; + +/** + * 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 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); + } +} -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/libpostgresql-jdbc-java.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

