Skip to content

Commit

Permalink
Merge pull request #37 from dmlloyd/wftc-39
Browse files Browse the repository at this point in the history
[WFTC-39] Naming API changes to support auth context with no naming provider
  • Loading branch information
dmlloyd authored Sep 29, 2017
2 parents ac85a67 + eb8ee51 commit 964ed58
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 11 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
<version.org.kohsuke.metainf-services>1.7</version.org.kohsuke.metainf-services>
<version.org.wildfly.common>1.2.0.Final</version.org.wildfly.common>
<version.org.wildfly.elytron>1.1.0.Final</version.org.wildfly.elytron>
<version.org.wildfly.naming-client>1.0.2.Final</version.org.wildfly.naming-client>
<version.org.wildfly.naming-client>1.0.4.Final</version.org.wildfly.naming-client>
<version.bridger>1.4.Final</version.bridger>

<maven.compiler.source>1.8</maven.compiler.source>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import org.wildfly.naming.client.AbstractContext;
import org.wildfly.naming.client.CloseableNamingEnumeration;
import org.wildfly.naming.client.NamingProvider;
import org.wildfly.naming.client.ProviderEnvironment;
import org.wildfly.security.auth.client.AuthenticationContext;
import org.wildfly.transaction.client.ContextTransactionManager;
import org.wildfly.transaction.client.ContextTransactionSynchronizationRegistry;
Expand All @@ -49,10 +50,13 @@ class TxnNamingContext extends AbstractContext {
private static final String LOCAL_USER_TRANSACTION = "LocalUserTransaction";
private static final String TRANSACTION_SYNCHRONIZATION_REGISTRY = "TransactionSynchronizationRegistry";
private final NamingProvider namingProvider;
private final RemoteUserTransaction remoteUserTransaction = getRemoteUserTransaction();
private final ProviderEnvironment providerEnvironment;
private final RemoteUserTransaction remoteUserTransaction;

TxnNamingContext(final NamingProvider namingProvider) {
TxnNamingContext(final NamingProvider namingProvider, final ProviderEnvironment providerEnvironment) {
this.namingProvider = namingProvider;
this.providerEnvironment = providerEnvironment;
remoteUserTransaction = getRemoteUserTransaction();
}

protected Object lookupNative(final Name name) throws NamingException {
Expand Down Expand Up @@ -129,12 +133,8 @@ private <T> Binding binding(Class<T> clazz, T content) {
return new ReadOnlyBinding(clazz.getSimpleName(), clazz.getName(), content, "txn:" + clazz.getSimpleName());
}

private static RemoteUserTransaction getRemoteUserTransaction() {
AuthenticationContext context = AuthenticationContext.captureCurrent();
final NamingProvider currentNamingProvider = NamingProvider.getCurrentNamingProvider();
if (currentNamingProvider != null) {
context = currentNamingProvider.getProviderEnvironment().getAuthenticationContextSupplier().get();
}
private RemoteUserTransaction getRemoteUserTransaction() {
AuthenticationContext context = providerEnvironment.getAuthenticationContextSupplier().get();
return context.runFunction(RemoteTransactionContext::getUserTransaction, RemoteTransactionContext.getInstance());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.kohsuke.MetaInfServices;
import org.wildfly.naming.client.NamingContextFactory;
import org.wildfly.naming.client.NamingProvider;
import org.wildfly.naming.client.ProviderEnvironment;
import org.wildfly.naming.client.util.FastHashtable;

/**
Expand All @@ -37,7 +38,7 @@ public boolean supportsUriScheme(final NamingProvider namingProvider, final Stri
return nameScheme != null && nameScheme.equals("txn");
}

public Context createRootContext(final NamingProvider namingProvider, final String nameScheme, final FastHashtable<String, Object> env) throws NamingException {
return new TxnNamingContext(namingProvider);
public Context createRootContext(final NamingProvider namingProvider, final String nameScheme, final FastHashtable<String, Object> env, final ProviderEnvironment providerEnvironment) throws NamingException {
return new TxnNamingContext(namingProvider, providerEnvironment);
}
}

0 comments on commit 964ed58

Please # to comment.