Skip to content

Commit

Permalink
DINF-1390 Introduced stub interface to isolate solr usage
Browse files Browse the repository at this point in the history
  • Loading branch information
acharneski committed Nov 1, 2019
1 parent 1a6b97e commit 8af9ead
Show file tree
Hide file tree
Showing 63 changed files with 1,045 additions and 96 deletions.
6 changes: 6 additions & 0 deletions agents-audit/pom.xml
Expand Up @@ -102,6 +102,12 @@
<artifactId>guava</artifactId>
<version>${google.guava.version}</version>
</dependency>
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-core</artifactId>
<version>7.7.1</version>
<scope>compile</scope>
</dependency>

</dependencies>
</project>
Expand Up @@ -27,15 +27,15 @@
import org.apache.ranger.audit.provider.MiscUtil;
import org.apache.ranger.audit.utils.InMemoryJAASConfiguration;
import org.apache.ranger.audit.utils.SolrAppUtil;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.impl.CloudSolrClient;
import org.apache.solr.client.solrj.impl.HttpClientUtil;
import org.apache.solr.client.solrj.impl.Krb5HttpClientBuilder;
import org.apache.solr.client.solrj.impl.SolrHttpClientBuilder;
import org.apache.solr.client.solrj.impl.LBHttpSolrClient;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrInputDocument;
import org.apache.ranger.index.solr.SolrClient;
import org.apache.ranger.index.solr.client.solrj.impl.CloudSolrClient;
import org.apache.ranger.index.solr.client.solrj.impl.HttpClientUtil;
import org.apache.ranger.index.solr.client.solrj.impl.Krb5HttpClientBuilder;
import org.apache.ranger.index.solr.client.solrj.impl.SolrHttpClientBuilder;
import org.apache.ranger.index.solr.client.solrj.impl.LBHttpSolrClient;
import org.apache.ranger.index.solr.client.solrj.response.UpdateResponse;
import org.apache.ranger.index.solr.common.SolrException;
import org.apache.ranger.index.solr.common.SolrInputDocument;

import java.io.File;
import java.io.FileInputStream;
Expand Down
Expand Up @@ -32,10 +32,10 @@
import org.apache.ranger.audit.model.AuthzAuditEvent;
import org.apache.ranger.audit.provider.MiscUtil;
import org.apache.ranger.audit.utils.SolrAppUtil;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrInputDocument;
import org.apache.ranger.index.solr.client.solrj.SolrClient;
import org.apache.ranger.index.solr.client.solrj.impl.HttpSolrClient;
import org.apache.ranger.index.solr.client.solrj.response.UpdateResponse;
import org.apache.ranger.index.solr.common.SolrInputDocument;

public class SolrAuditProvider extends AuditDestination {
private static final Log LOG = LogFactory.getLog(SolrAuditProvider.class);
Expand Down
Expand Up @@ -20,9 +20,10 @@
package org.apache.ranger.audit.utils;

import org.apache.ranger.audit.provider.MiscUtil;
import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrInputDocument;
import org.apache.ranger.index.solr.SolrClient;
import org.apache.ranger.index.solr.client.solrj.response.UpdateResponse;
import org.apache.ranger.index.solr.common.SolrException;
import org.apache.ranger.index.solr.common.SolrInputDocument;

import java.security.PrivilegedExceptionAction;
import java.util.Collection;
Expand Down
@@ -0,0 +1,22 @@
package org.apache.ranger.index.solr;

import org.apache.ranger.index.solr.client.solrj.response.UpdateResponse;
import org.apache.ranger.index.solr.common.SolrInputDocument;
import org.apache.solr.client.solrj.SolrServerException;

import java.io.IOException;
import java.util.Collection;
import java.util.stream.Collectors;

public class SolrClient {
public final org.apache.solr.client.solrj.SolrClient inner;

public SolrClient(org.apache.solr.client.solrj.SolrClient inner) {
this.inner = inner;
}

public UpdateResponse add(Collection<SolrInputDocument> docs) throws IOException, SolrServerException {
return new UpdateResponse(inner.add(docs.stream().map(x->x.inner).collect(Collectors.toList())));
}

}
@@ -0,0 +1,30 @@
package org.apache.ranger.index.solr.client.solrj;

import org.apache.ranger.index.solr.client.solrj.response.UpdateResponse;
import org.apache.ranger.index.solr.common.SolrInputDocument;
import org.apache.solr.client.solrj.SolrServerException;

import java.io.IOException;
import java.util.Collection;
import java.util.stream.Collectors;

public class SolrClient extends org.apache.ranger.index.solr.SolrClient {
public final org.apache.solr.client.solrj.SolrClient inner;

public SolrClient(org.apache.solr.client.solrj.SolrClient inner) {
super(inner);
this.inner = inner;
}

public UpdateResponse add(Collection<SolrInputDocument> docs) throws IOException, SolrServerException {
return new UpdateResponse(inner.add(docs.stream().map(x->x.inner).collect(Collectors.toList())));
}

public void close() throws IOException {
inner.close();
}

public UpdateResponse add(SolrInputDocument document) throws IOException, SolrServerException {
return new UpdateResponse(inner.add(document.inner));
}
}
@@ -0,0 +1,48 @@
package org.apache.ranger.index.solr.client.solrj;

public class SolrQuery {
public final org.apache.solr.client.solrj.SolrQuery inner;

public SolrQuery(org.apache.solr.client.solrj.SolrQuery inner) {
this.inner = inner;
}

public SolrQuery() {
this(new org.apache.solr.client.solrj.SolrQuery());
}

public void setQuery(String s) {
inner.setQuery(s);
}

public void addFilterQuery(String fq) {
inner.addFilterQuery(fq);
}

public void setStart(int startIndex) {
inner.setStart(startIndex);
}

public void setRows(int maxRows) {
inner.setRows(maxRows);
}

public void addSort(String querySortBy, ORDER order) {
inner.addSort(querySortBy, order.inner);
}

public void setRequestHandler(String queryStr) {
inner.setRequestHandler(queryStr);
}

public enum ORDER {
asc(org.apache.solr.client.solrj.SolrQuery.ORDER.asc),
desc(org.apache.solr.client.solrj.SolrQuery.ORDER.desc);

public final org.apache.solr.client.solrj.SolrQuery.ORDER inner;

ORDER(org.apache.solr.client.solrj.SolrQuery.ORDER inner) {
this.inner = inner;
}
}
}
@@ -0,0 +1,13 @@
package org.apache.ranger.index.solr.client.solrj;

public class SolrRequest {
public enum METHOD {
POST(org.apache.solr.client.solrj.SolrRequest.METHOD.POST);

public final org.apache.solr.client.solrj.SolrRequest.METHOD inner;

METHOD(org.apache.solr.client.solrj.SolrRequest.METHOD post) {
inner = post;
}
}
}
@@ -0,0 +1,16 @@
package org.apache.ranger.index.solr.client.solrj;

import org.apache.ranger.index.solr.common.util.NamedList;
import org.apache.solr.client.solrj.response.CollectionAdminResponse;

public class SolrResponse {
private final org.apache.solr.client.solrj.SolrResponse inner;

public SolrResponse(org.apache.solr.client.solrj.SolrResponse process) {
this.inner = process;
}

public NamedList<Object> getResponse() {
return new NamedList<>(inner.getResponse());
}
}
@@ -0,0 +1,9 @@
package org.apache.ranger.index.solr.client.solrj;

public class SolrServerException extends Exception {
public final org.apache.solr.client.solrj.SolrServerException inner;

public SolrServerException(org.apache.solr.client.solrj.SolrServerException inner) {
this.inner = inner;
}
}
@@ -0,0 +1,5 @@
package org.apache.ranger.index.solr.client.solrj.impl;

public class BinaryRequestWriter {
public final org.apache.solr.client.solrj.impl.BinaryRequestWriter inner = new org.apache.solr.client.solrj.impl.BinaryRequestWriter();
}
@@ -0,0 +1,5 @@
package org.apache.ranger.index.solr.client.solrj.impl;

public class Builder {
public final org.apache.solr.client.solrj.impl.Builder inner = new org.apache.solr.client.solrj.impl.Builder();
}
@@ -0,0 +1,51 @@
package org.apache.ranger.index.solr.client.solrj.impl;

import org.apache.ranger.index.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.impl.ClusterStateProvider;
import org.apache.solr.client.solrj.impl.LBHttpSolrClient;
import org.apache.ranger.index.solr.common.cloud.ZkStateReader;

import java.util.List;
import java.util.Optional;

public class CloudSolrClient extends SolrClient {

public final org.apache.solr.client.solrj.impl.CloudSolrClient inner;

public CloudSolrClient(org.apache.solr.client.solrj.impl.CloudSolrClient inner) {
super(inner);
this.inner = inner;
}

public void setDefaultCollection(String collectionName) {
inner.setDefaultCollection(collectionName);
}

public LBHttpSolrClient getLbClient() {
return inner.getLbClient();
}

public ZkStateReader getZkStateReader() {
return new ZkStateReader(inner.getZkStateReader());
}

public ClusterStateProvider getClusterStateProvider() {
return this.inner.getClusterStateProvider();
}

public static class Builder {
public final org.apache.solr.client.solrj.impl.CloudSolrClient.Builder inner;

public Builder(List<String> zkhosts, Optional<String> empty) {
inner = new org.apache.solr.client.solrj.impl.CloudSolrClient.Builder(zkhosts, empty);
}

public CloudSolrClient build() {
return new CloudSolrClient(inner.build());
}
}

public void connect() {
inner.connect();
}
}
@@ -0,0 +1,7 @@
package org.apache.ranger.index.solr.client.solrj.impl;

public class HttpClientUtil {
public static void setHttpClientBuilder(SolrHttpClientBuilder kb) {
org.apache.solr.client.solrj.impl.HttpClientUtil.setHttpClientBuilder(kb.inner);
}
}
@@ -0,0 +1,36 @@
package org.apache.ranger.index.solr.client.solrj.impl;

import org.apache.ranger.index.solr.client.solrj.SolrClient;

public class HttpSolrClient extends SolrClient {
public final org.apache.solr.client.solrj.impl.HttpSolrClient inner;

public HttpSolrClient(org.apache.solr.client.solrj.impl.HttpSolrClient inner) {
super(new org.apache.solr.client.solrj.SolrClient());
this.inner = inner;
}

public void setRequestWriter(BinaryRequestWriter binaryRequestWriter) {
inner.setRequestWriter(binaryRequestWriter.inner);
}

public static class Builder {
public final org.apache.solr.client.solrj.impl.HttpSolrClient.Builder inner = new org.apache.solr.client.solrj.impl.HttpSolrClient.Builder();

public void withBaseSolrUrl(String solrURL) {
inner.withBaseSolrUrl(solrURL);
}

public void allowCompression(boolean b) {
inner.allowCompression(b);
}

public void withConnectionTimeout(int i) {
inner.withConnectionTimeout(i);
}

public HttpSolrClient build() {
return new HttpSolrClient(inner.build());
}
}
}
@@ -0,0 +1,8 @@
package org.apache.ranger.index.solr.client.solrj.impl;

public class Krb5HttpClientBuilder {
public final org.apache.solr.client.solrj.impl.Krb5HttpClientBuilder inner = new org.apache.solr.client.solrj.impl.Krb5HttpClientBuilder();
public SolrHttpClientBuilder getBuilder() {
return new SolrHttpClientBuilder(inner.getBuilder());
}
}
@@ -0,0 +1,33 @@
package org.apache.ranger.index.solr.client.solrj.impl;

import org.apache.ranger.index.solr.SolrClient;

import java.net.MalformedURLException;

public class LBHttpSolrClient extends SolrClient {
private final org.apache.solr.client.solrj.impl.LBHttpSolrClient inner;

public LBHttpSolrClient(org.apache.solr.client.solrj.impl.LBHttpSolrClient inner) {
super(new org.apache.solr.client.solrj.SolrClient());
this.inner = inner;
}

public void addSolrServer(String s) throws MalformedURLException {
inner.addSolrServer(s);
}

public static class Builder {
public final org.apache.solr.client.solrj.impl.LBHttpSolrClient.Builder inner = new org.apache.solr.client.solrj.impl.LBHttpSolrClient.Builder();
public void withBaseSolrUrl(String s) {
inner.withBaseSolrUrl(s);
}

public void withConnectionTimeout(int i) {
inner.withConnectionTimeout(i);
}

public LBHttpSolrClient build() {
return new LBHttpSolrClient(inner.build());
}
}
}
@@ -0,0 +1,9 @@
package org.apache.ranger.index.solr.client.solrj.impl;

public class SolrHttpClientBuilder {
public final org.apache.solr.client.solrj.impl.SolrHttpClientBuilder inner;

public SolrHttpClientBuilder(org.apache.solr.client.solrj.impl.SolrHttpClientBuilder builder) {
this.inner = builder;
}
}

0 comments on commit 8af9ead

Please sign in to comment.