Skip to content

Commit

Permalink
relocate RequestScopeBeanSupplier from query service to datawave-star…
Browse files Browse the repository at this point in the history
…ter so other modules can use
  • Loading branch information
billoley committed Oct 25, 2024
1 parent b1be0a8 commit 0d8a703
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 32 deletions.
19 changes: 18 additions & 1 deletion service/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@
<start-class>datawave.microservice.query.QueryService</start-class>
<version.hadoop>3.3.4</version.hadoop>
<version.microservice.query-api>1.0.0</version.microservice.query-api>
<version.microservice.starter>4.0.4</version.microservice.starter>
<version.microservice.starter-audit>4.0.3</version.microservice.starter-audit>
<version.microservice.starter-cached-results>1.0.9</version.microservice.starter-cached-results>
<version.microservice.starter-cached-results>1.0.10</version.microservice.starter-cached-results>
<version.microservice.starter-query>1.0.8</version.microservice.starter-query>
<version.webjars.foundation>6.4.3-1</version.webjars.foundation>
<version.webjars.jquery>3.3.1-1</version.webjars.jquery>
Expand All @@ -35,6 +36,11 @@
<artifactId>query-api</artifactId>
<version>${version.microservice.query-api}</version>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.microservice</groupId>
<artifactId>spring-boot-starter-datawave</artifactId>
<version>${version.microservice.starter}</version>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.microservice</groupId>
<artifactId>spring-boot-starter-datawave-audit</artifactId>
Expand Down Expand Up @@ -131,6 +137,13 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.microservice</groupId>
<artifactId>spring-boot-starter-datawave</artifactId>
<version>${version.microservice.starter}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.microservice</groupId>
<artifactId>spring-boot-starter-datawave-cached-results</artifactId>
Expand All @@ -157,6 +170,10 @@
<dependencies>
<!-- Don't sort the import scope dependencies since we are relying on them to manage various artifact versions -->
<?SORTPOM IGNORE?>
<dependency>
<groupId>gov.nsa.datawave.microservice</groupId>
<artifactId>spring-boot-starter-datawave</artifactId>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.microservice</groupId>
<artifactId>spring-boot-starter-datawave-query</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
import datawave.microservice.authorization.federation.FederatedAuthorizationService;
import datawave.microservice.authorization.user.DatawaveUserDetails;
import datawave.microservice.authorization.util.AuthorizationsUtil;
import datawave.microservice.config.RequestScopeBeanSupplier;
import datawave.microservice.query.config.QueryProperties;
import datawave.microservice.query.messaging.QueryResultsManager;
import datawave.microservice.query.remote.QueryRequest;
Expand Down Expand Up @@ -2638,35 +2639,4 @@ public ThreadLocal<BaseQueryMetric> getBaseQueryMetricOverride() {
public List<String> getDNs(DatawaveUserDetails user) {
return user.getProxiedUsers().stream().map(u -> u.getDn().subjectDN()).collect(Collectors.toList());
}

private class RequestScopeBeanSupplier<T> implements Supplier<T> {
private final T requestScopeBean;
private final ThreadLocal<T> threadLocalOverride;

public RequestScopeBeanSupplier(T requestScopeBean) {
this.requestScopeBean = requestScopeBean;
this.threadLocalOverride = new ThreadLocal<>();
}

@Override
public T get() {
if (threadLocalOverride.get() != null) {
return threadLocalOverride.get();
} else {
// get the underlying object if this is a request-scoped bean
if (requestScopeBean instanceof Advised) {
try {
return (T) ((Advised) requestScopeBean).getTargetSource().getTarget();
} catch (Exception e) {
log.warn("Unable to get target object for the request-scoped bean {}", requestScopeBean);
}
}
return requestScopeBean;
}
}

public ThreadLocal<T> getThreadLocalOverride() {
return threadLocalOverride;
}
}
}

0 comments on commit 0d8a703

Please sign in to comment.