X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.enterprise%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FAbstractUserDirectory.java;fp=org.argeo.enterprise%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fuseradmin%2FAbstractUserDirectory.java;h=7279877e0e8ec46690a7f95b72ba062b234f8a34;hb=5986e55820cba0821f0c16627c4ab144863c82ab;hp=f2d7c88fc232ca8d1090c065a5a2a5f9c1b5a975;hpb=1a0d5ca243bc86a5f54448186178e5fb04c623e9;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AbstractUserDirectory.java b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AbstractUserDirectory.java index f2d7c88fc..7279877e0 100644 --- a/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AbstractUserDirectory.java +++ b/org.argeo.enterprise/src/org/argeo/osgi/useradmin/AbstractUserDirectory.java @@ -27,11 +27,9 @@ import javax.naming.directory.BasicAttribute; import javax.naming.directory.BasicAttributes; import javax.naming.ldap.LdapName; import javax.naming.ldap.Rdn; -import javax.transaction.SystemException; -import javax.transaction.Transaction; -import javax.transaction.TransactionManager; import org.argeo.naming.LdapAttrs; +import org.argeo.osgi.transaction.WorkControl; import org.osgi.framework.Filter; import org.osgi.framework.FrameworkUtil; import org.osgi.framework.InvalidSyntaxException; @@ -64,8 +62,9 @@ public abstract class AbstractUserDirectory implements UserAdmin, UserDirectory private List credentialAttributeIds = Arrays .asList(new String[] { LdapAttrs.userPassword.name(), LdapAttrs.authPassword.name() }); - // JTA - private TransactionManager transactionManager; + // Transaction +// private TransactionManager transactionManager; + private WorkControl transactionControl; private WcXaResource xaResource = new WcXaResource(this); AbstractUserDirectory(URI uriArg, Dictionary props, boolean scoped) { @@ -142,17 +141,18 @@ public abstract class AbstractUserDirectory implements UserAdmin, UserDirectory } protected void checkEdit() { - Transaction transaction; - try { - transaction = transactionManager.getTransaction(); - } catch (SystemException e) { - throw new UserDirectoryException("Cannot get transaction", e); - } - if (transaction == null) - throw new UserDirectoryException("A transaction needs to be active in order to edit"); +// Transaction transaction; +// try { +// transaction = transactionManager.getTransaction(); +// } catch (SystemException e) { +// throw new UserDirectoryException("Cannot get transaction", e); +// } +// if (transaction == null) +// throw new UserDirectoryException("A transaction needs to be active in order to edit"); if (xaResource.wc() == null) { try { - transaction.enlistResource(xaResource); +// transaction.enlistResource(xaResource); + transactionControl.getWorkContext().registerXAResource(xaResource, null); } catch (Exception e) { throw new UserDirectoryException("Cannot enlist " + xaResource, e); } @@ -490,8 +490,12 @@ public abstract class AbstractUserDirectory implements UserAdmin, UserDirectory this.externalRoles = externalRoles; } - public void setTransactionManager(TransactionManager transactionManager) { - this.transactionManager = transactionManager; +// public void setTransactionManager(TransactionManager transactionManager) { +// this.transactionManager = transactionManager; +// } + + public void setTransactionControl(WorkControl transactionControl) { + this.transactionControl = transactionControl; } public WcXaResource getXaResource() {