Skip to content

Commit caf01a5

Browse files
committed
hamfisted cleanup
1 parent 7eb593c commit caf01a5

File tree

7 files changed

+34
-150
lines changed

7 files changed

+34
-150
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/*
2+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3+
* or more contributor license agreements. Licensed under the "Elastic License
4+
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
5+
* Public License v 1"; you may not use this file except in compliance with, at
6+
* your election, the "Elastic License 2.0", the "GNU Affero General Public
7+
* License v3.0 only", or the "Server Side Public License, v 1".
8+
*/
9+
10+
package org.elasticsearch.logstashbridge.core;
11+
12+
import org.elasticsearch.common.CheckedBiFunction;
13+
import org.elasticsearch.logstashbridge.StableBridgeAPI;
14+
15+
public interface CheckedBiFunctionBridge<T, U, R, E extends Exception> extends StableBridgeAPI<CheckedBiFunction<T, U, R, E>> {
16+
R apply(T t, U u) throws E;
17+
18+
@Override
19+
default CheckedBiFunction<T, U, R, E> toInternal() {
20+
return this::apply;
21+
}
22+
}

libs/logstash-bridge/src/main/java/org/elasticsearch/logstashbridge/geoip/GeoIpProcessorBridge.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,16 @@
99
package org.elasticsearch.logstashbridge.geoip;
1010

1111
import org.elasticsearch.ingest.geoip.GeoIpProcessor;
12-
import org.elasticsearch.ingest.geoip.IpDatabaseProvider;
13-
import org.elasticsearch.logstashbridge.StableBridgeAPI;
12+
import org.elasticsearch.logstashbridge.ingest.ProcessorBridge;
1413

1514
/**
1615
* An external bridge for {@link GeoIpProcessor}
1716
*/
1817
public interface GeoIpProcessorBridge {
1918

20-
class Factory extends StableBridgeAPI.ProxyInternal<GeoIpProcessor.Factory> {
21-
22-
public Factory(String type, IpDatabaseProvider ipDatabaseProvider) {
23-
super(new GeoIpProcessor.Factory(type, ipDatabaseProvider));
19+
class Factory extends ProcessorBridge.Factory.ProxyInternal {
20+
public Factory(final String type, final IpDatabaseProviderBridge ipDatabaseProviderBridge) {
21+
super(new GeoIpProcessor.Factory(type, ipDatabaseProviderBridge.toInternal()));
2422
}
2523
}
2624
}

libs/logstash-bridge/src/main/java/org/elasticsearch/logstashbridge/geoip/IpDatabaseBridge.java

Lines changed: 3 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010

1111
import com.maxmind.db.Reader;
1212

13-
import org.elasticsearch.ExceptionsHelper;
1413
import org.elasticsearch.common.CheckedBiFunction;
1514
import org.elasticsearch.core.Nullable;
1615
import org.elasticsearch.ingest.geoip.IpDatabase;
1716
import org.elasticsearch.logstashbridge.StableBridgeAPI;
17+
import org.elasticsearch.logstashbridge.core.CheckedBiFunctionBridge;
1818

1919
import java.io.IOException;
2020

@@ -25,26 +25,11 @@ public interface IpDatabaseBridge extends StableBridgeAPI<IpDatabase> {
2525

2626
String getDatabaseType() throws IOException;
2727

28-
MaxMindDbBridge.Reader getDatabaseReader() throws IOException;
29-
3028
@Nullable
31-
default <RESPONSE> RESPONSE getResponse(String ipAddress, CheckedBiFunction<Reader, String, RESPONSE, Exception> responseProvider) {
32-
try {
33-
return responseProvider.apply(this.getDatabaseReader().toInternal(), ipAddress);
34-
} catch (Exception e) {
35-
throw ExceptionsHelper.convertToRuntime(e);
36-
}
37-
}
29+
<RESPONSE> RESPONSE getResponse(String ipAddress, CheckedBiFunctionBridge<Reader, String, RESPONSE, Exception> responseProvider);
3830

3931
void close() throws IOException;
4032

41-
static IpDatabaseBridge fromInternal(final IpDatabase internalDatabase) {
42-
if (internalDatabase instanceof AbstractExternal.ProxyExternal externalProxy) {
43-
return externalProxy.getIpDatabaseBridge();
44-
}
45-
return new ProxyInternal(internalDatabase);
46-
}
47-
4833
/**
4934
* The {@code IpDatabaseBridge.AbstractExternal} is an abstract base class for implementing
5035
* the {@link IpDatabaseBridge} externally to the Elasticsearch code-base. It takes care of
@@ -64,10 +49,6 @@ public IpDatabase toInternal() {
6449

6550
private class ProxyExternal implements IpDatabase {
6651

67-
private AbstractExternal getIpDatabaseBridge() {
68-
return AbstractExternal.this;
69-
}
70-
7152
@Override
7253
public String getDatabaseType() throws IOException {
7354
return AbstractExternal.this.getDatabaseType();
@@ -78,7 +59,7 @@ public <RESPONSE> RESPONSE getResponse(
7859
String ipAddress,
7960
CheckedBiFunction<Reader, String, RESPONSE, Exception> responseProvider
8061
) {
81-
return AbstractExternal.this.getResponse(ipAddress, responseProvider);
62+
return AbstractExternal.this.getResponse(ipAddress, responseProvider::apply);
8263
}
8364

8465
@Override
@@ -87,34 +68,4 @@ public void close() throws IOException {
8768
}
8869
}
8970
}
90-
91-
/**
92-
* An implementation of {@link IpDatabaseBridge} that proxies to an internal {@link IpDatabase}
93-
*/
94-
class ProxyInternal extends StableBridgeAPI.ProxyInternal<IpDatabase> implements IpDatabaseBridge {
95-
96-
public ProxyInternal(final IpDatabase delegate) {
97-
super(delegate);
98-
}
99-
100-
@Override
101-
public String getDatabaseType() throws IOException {
102-
return toInternal().getDatabaseType();
103-
}
104-
105-
@Override
106-
public MaxMindDbBridge.Reader getDatabaseReader() throws IOException {
107-
return null;
108-
}
109-
110-
@Override
111-
public <RESPONSE> RESPONSE getResponse(String ipAddress, CheckedBiFunction<Reader, String, RESPONSE, Exception> responseProvider) {
112-
return toInternal().getResponse(ipAddress, responseProvider);
113-
}
114-
115-
@Override
116-
public void close() throws IOException {
117-
toInternal().close();
118-
}
119-
}
12071
}

libs/logstash-bridge/src/main/java/org/elasticsearch/logstashbridge/geoip/IpDatabaseProviderBridge.java

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import org.elasticsearch.ingest.geoip.IpDatabaseProvider;
1515
import org.elasticsearch.logstashbridge.StableBridgeAPI;
1616

17-
import java.util.Objects;
17+
import static org.elasticsearch.logstashbridge.StableBridgeAPI.toInternalNullable;
1818

1919
/**
2020
* An external bridge for {@link Processor}
@@ -25,13 +25,6 @@ public interface IpDatabaseProviderBridge extends StableBridgeAPI<IpDatabaseProv
2525

2626
IpDatabaseBridge getDatabase(String name);
2727

28-
static IpDatabaseProviderBridge fromInternal(final IpDatabaseProvider internalProvider) {
29-
if (internalProvider instanceof IpDatabaseProviderBridge.AbstractExternal.ProxyExternal externalProxy) {
30-
return externalProxy.getIpDatabaseProviderBridge();
31-
}
32-
return new IpDatabaseProviderBridge.ProxyInternal(internalProvider);
33-
}
34-
3528
/**
3629
* The {@code IpDatabaseProviderBridge.AbstractExternal} is an abstract base class for implementing
3730
* the {@link IpDatabaseProviderBridge} externally to the Elasticsearch code-base. It takes care of
@@ -56,34 +49,13 @@ private AbstractExternal getIpDatabaseProviderBridge() {
5649

5750
@Override
5851
public Boolean isValid(ProjectId projectId, String name) {
59-
return IpDatabaseProviderBridge.AbstractExternal.this.isValid(name);
52+
return AbstractExternal.this.isValid(name);
6053
}
6154

6255
@Override
6356
public IpDatabase getDatabase(ProjectId projectId, String name) {
64-
IpDatabaseBridge bridge = IpDatabaseProviderBridge.AbstractExternal.this.getDatabase(name);
65-
return Objects.isNull(bridge) ? null : bridge.toInternal();
57+
return toInternalNullable(AbstractExternal.this.getDatabase(name));
6658
}
6759
}
6860
}
69-
70-
/**
71-
* An implementation of {@link IpDatabaseProviderBridge} that proxies to an internal {@link IpDatabaseProvider}
72-
*/
73-
class ProxyInternal extends StableBridgeAPI.ProxyInternal<IpDatabaseProvider> implements IpDatabaseProviderBridge {
74-
public ProxyInternal(final IpDatabaseProvider delegate) {
75-
super(delegate);
76-
}
77-
78-
@Override
79-
public Boolean isValid(String name) {
80-
return toInternal().isValid(ProjectId.DEFAULT, name);
81-
}
82-
83-
@Override
84-
public IpDatabaseBridge getDatabase(String name) {
85-
IpDatabase ipDatabase = toInternal().getDatabase(ProjectId.DEFAULT, name);
86-
return new IpDatabaseBridge.ProxyInternal(ipDatabase);
87-
}
88-
}
8961
}

libs/logstash-bridge/src/main/java/org/elasticsearch/logstashbridge/geoip/MaxMindDbBridge.java

Lines changed: 0 additions & 59 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* License v3.0 only", or the "Server Side Public License, v 1".
88
*/
99

10-
package org.elasticsearch.logstashbridge.core;
10+
package org.elasticsearch.logstashbridge.ingest;
1111

1212
import org.elasticsearch.ingest.common.FailProcessorException;
1313
import org.elasticsearch.logstashbridge.StableBridgeAPI;

libs/logstash-bridge/src/main/java/org/elasticsearch/logstashbridge/ingest/ProcessorBridge.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ default Processor.Factory toInternal() {
204204
* An implementation of {@link ProcessorBridge.Factory} that proxies to an internal {@link Processor.Factory}
205205
*/
206206
class ProxyInternal extends StableBridgeAPI.ProxyInternal<Processor.Factory> implements Factory {
207-
private ProxyInternal(final Processor.Factory delegate) {
207+
protected ProxyInternal(final Processor.Factory delegate) {
208208
super(delegate);
209209
}
210210

0 commit comments

Comments
 (0)