Skip to content

Commit 2065cdb

Browse files
authored
[Refactor] Serverless common classes to libraries (opensearch-project#8065) (opensearch-project#8531)
This commit refactors common classes from the server module common package to the common and core library so they can be used across serverless and cloud native implementations without depending on the server module. Signed-off-by: Nicholas Walter Knize <nknize@apache.org>
1 parent e3762b4 commit 2065cdb

File tree

217 files changed

+259
-420
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

217 files changed

+259
-420
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions

benchmarks/src/main/java/org/opensearch/common/util/LongHashBenchmark.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.openjdk.jmh.annotations.State;
2121
import org.openjdk.jmh.annotations.Warmup;
2222
import org.openjdk.jmh.infra.Blackhole;
23-
import org.opensearch.core.common.lease.Releasable;
23+
import org.opensearch.common.lease.Releasable;
2424

2525
import java.util.Random;
2626
import java.util.concurrent.TimeUnit;

libs/common/src/main/java/org/opensearch/common/Numbers.java

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -52,28 +52,6 @@ public final class Numbers {
5252

5353
private Numbers() {}
5454

55-
public static byte[] intToBytes(int val) {
56-
byte[] arr = new byte[4];
57-
arr[0] = (byte) (val >>> 24);
58-
arr[1] = (byte) (val >>> 16);
59-
arr[2] = (byte) (val >>> 8);
60-
arr[3] = (byte) (val);
61-
return arr;
62-
}
63-
64-
/**
65-
* Converts an int to a byte array.
66-
*
67-
* @param val The int to convert to a byte array
68-
* @return The byte array converted
69-
*/
70-
public static byte[] shortToBytes(int val) {
71-
byte[] arr = new byte[2];
72-
arr[0] = (byte) (val >>> 8);
73-
arr[1] = (byte) (val);
74-
return arr;
75-
}
76-
7755
/**
7856
* Converts a long to a byte array.
7957
*
@@ -93,16 +71,6 @@ public static byte[] longToBytes(long val) {
9371
return arr;
9472
}
9573

96-
/**
97-
* Converts a double to a byte array.
98-
*
99-
* @param val The double to convert to a byte array
100-
* @return The byte array converted
101-
*/
102-
public static byte[] doubleToBytes(double val) {
103-
return longToBytes(Double.doubleToRawLongBits(val));
104-
}
105-
10674
/** Returns true if value is neither NaN nor infinite. */
10775
public static boolean isValidDouble(double value) {
10876
if (Double.isNaN(value) || Double.isInfinite(value)) {

server/src/main/java/org/opensearch/common/RandomBasedUUIDGenerator.java renamed to libs/common/src/main/java/org/opensearch/common/RandomBasedUUIDGenerator.java

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,6 @@
3232

3333
package org.opensearch.common;
3434

35-
import org.opensearch.common.settings.SecureString;
36-
37-
import java.util.Arrays;
3835
import java.util.Base64;
3936
import java.util.Random;
4037

@@ -54,27 +51,6 @@ public String getBase64UUID() {
5451
return getBase64UUID(SecureRandomHolder.INSTANCE);
5552
}
5653

57-
/**
58-
* Returns a Base64 encoded {@link SecureString} of a Version 4.0 compatible UUID
59-
* as defined here: http://www.ietf.org/rfc/rfc4122.txt
60-
*/
61-
public SecureString getBase64UUIDSecureString() {
62-
byte[] uuidBytes = null;
63-
byte[] encodedBytes = null;
64-
try {
65-
uuidBytes = getUUIDBytes(SecureRandomHolder.INSTANCE);
66-
encodedBytes = Base64.getUrlEncoder().withoutPadding().encode(uuidBytes);
67-
return new SecureString(CharArrays.utf8BytesToChars(encodedBytes));
68-
} finally {
69-
if (uuidBytes != null) {
70-
Arrays.fill(uuidBytes, (byte) 0);
71-
}
72-
if (encodedBytes != null) {
73-
Arrays.fill(encodedBytes, (byte) 0);
74-
}
75-
}
76-
}
77-
7854
/**
7955
* Returns a Base64 encoded version of a Version 4.0 compatible UUID
8056
* randomly initialized by the given {@link java.util.Random} instance

server/src/main/java/org/opensearch/common/StopWatch.java renamed to libs/common/src/main/java/org/opensearch/common/StopWatch.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
package org.opensearch.common;
3434

3535
import org.opensearch.common.unit.TimeValue;
36-
import org.opensearch.core.common.lease.Releasable;
3736

3837
import java.text.NumberFormat;
3938
import java.util.LinkedList;
@@ -155,7 +154,7 @@ public StopWatch stop() throws IllegalStateException {
155154
return this;
156155
}
157156

158-
public Releasable timing(String taskName) {
157+
public TimingHandle timing(String taskName) {
159158
start(taskName);
160159
return this::stop;
161160
}
@@ -268,4 +267,14 @@ public TimeValue getTime() {
268267
}
269268
}
270269

270+
/**
271+
* Stops the watch and auto calls close in try-with-resources usage
272+
*
273+
* @opensearch.internal
274+
*/
275+
public interface TimingHandle extends AutoCloseable {
276+
@Override
277+
void close();
278+
}
279+
271280
}

server/src/main/java/org/opensearch/common/UUIDs.java renamed to libs/common/src/main/java/org/opensearch/common/UUIDs.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@
3232

3333
package org.opensearch.common;
3434

35-
import org.opensearch.common.settings.SecureString;
36-
3735
import java.util.Random;
3836

3937
/**
@@ -44,7 +42,7 @@
4442
public class UUIDs {
4543

4644
private static final RandomBasedUUIDGenerator RANDOM_UUID_GENERATOR = new RandomBasedUUIDGenerator();
47-
private static final UUIDGenerator LEGACY_TIME_UUID_GENERATOR = new LegacyTimeBasedUUIDGenerator();
45+
4846
private static final UUIDGenerator TIME_UUID_GENERATOR = new TimeBasedUUIDGenerator();
4947

5048
/** Generates a time-based UUID (similar to Flake IDs), which is preferred when generating an ID to be indexed into a Lucene index as
@@ -53,11 +51,6 @@ public static String base64UUID() {
5351
return TIME_UUID_GENERATOR.getBase64UUID();
5452
}
5553

56-
/** Legacy implementation of {@link #base64UUID()}, for pre 6.0 indices. */
57-
public static String legacyBase64UUID() {
58-
return LEGACY_TIME_UUID_GENERATOR.getBase64UUID();
59-
}
60-
6154
/** Returns a Base64 encoded version of a Version 4.0 compatible UUID as defined here: http://www.ietf.org/rfc/rfc4122.txt, using the
6255
* provided {@code Random} instance */
6356
public static String randomBase64UUID(Random random) {
@@ -69,10 +62,4 @@ public static String randomBase64UUID(Random random) {
6962
public static String randomBase64UUID() {
7063
return RANDOM_UUID_GENERATOR.getBase64UUID();
7164
}
72-
73-
/** Returns a Base64 encoded {@link SecureString} of a Version 4.0 compatible UUID as defined here: http://www.ietf.org/rfc/rfc4122.txt,
74-
* using a private {@code SecureRandom} instance */
75-
public static SecureString randomBase64UUIDSecureString() {
76-
return RANDOM_UUID_GENERATOR.getBase64UUIDSecureString();
77-
}
7865
}

libs/core/src/main/java/org/opensearch/core/common/lease/Releasable.java renamed to libs/common/src/main/java/org/opensearch/common/lease/Releasable.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@
3030
* GitHub history for details.
3131
*/
3232

33-
package org.opensearch.core.common.lease;
33+
package org.opensearch.common.lease;
3434

3535
import java.io.Closeable;
3636

3737
/**
38-
* Specialization of {@link AutoCloseable} that may only throw an {@code BaseOpenSearchException}.
38+
* Specialization of {@link AutoCloseable} for calls that might not throw a checked exception.
3939
*
4040
* @opensearch.internal
4141
*/

libs/core/src/main/java/org/opensearch/core/common/lease/Releasables.java renamed to libs/common/src/main/java/org/opensearch/common/lease/Releasables.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
* GitHub history for details.
3131
*/
3232

33-
package org.opensearch.core.common.lease;
33+
package org.opensearch.common.lease;
3434

3535
import org.opensearch.common.Nullable;
3636
import org.opensearch.common.util.io.IOUtils;

libs/core/src/main/java/org/opensearch/core/common/lease/package-info.java renamed to libs/common/src/main/java/org/opensearch/common/lease/package-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@
77
*/
88

99
/** Base Releasables package. */
10-
package org.opensearch.core.common.lease;
10+
package org.opensearch.common.lease;

modules/aggs-matrix-stats/src/main/java/org/opensearch/search/aggregations/matrix/stats/MatrixStatsAggregator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
import org.apache.lucene.search.ScoreMode;
3636
import org.opensearch.common.util.BigArrays;
3737
import org.opensearch.common.util.ObjectArray;
38-
import org.opensearch.core.common.lease.Releasables;
38+
import org.opensearch.common.lease.Releasables;
3939
import org.opensearch.index.fielddata.NumericDoubleValues;
4040
import org.opensearch.search.MultiValueMode;
4141
import org.opensearch.search.aggregations.Aggregator;

modules/geo/src/main/java/org/opensearch/geo/search/aggregations/bucket/geogrid/GeoGridAggregator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
import org.apache.lucene.index.LeafReaderContext;
3535
import org.apache.lucene.index.SortedNumericDocValues;
3636
import org.apache.lucene.search.ScoreMode;
37-
import org.opensearch.core.common.lease.Releasables;
37+
import org.opensearch.common.lease.Releasables;
3838
import org.opensearch.search.aggregations.Aggregator;
3939
import org.opensearch.search.aggregations.AggregatorFactories;
4040
import org.opensearch.search.aggregations.CardinalityUpperBound;

modules/geo/src/main/java/org/opensearch/geo/search/aggregations/metrics/AbstractGeoBoundsAggregator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
import org.opensearch.common.util.BigArrays;
1212
import org.opensearch.common.util.DoubleArray;
13-
import org.opensearch.core.common.lease.Releasables;
13+
import org.opensearch.common.lease.Releasables;
1414
import org.opensearch.search.aggregations.Aggregator;
1515
import org.opensearch.search.aggregations.InternalAggregation;
1616
import org.opensearch.search.aggregations.metrics.MetricsAggregator;

modules/parent-join/src/main/java/org/opensearch/join/aggregations/ParentJoinAggregator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@
4444
import org.opensearch.common.lucene.Lucene;
4545
import org.opensearch.common.util.BigArrays;
4646
import org.opensearch.common.util.BitArray;
47-
import org.opensearch.core.common.lease.Releasable;
48-
import org.opensearch.core.common.lease.Releasables;
47+
import org.opensearch.common.lease.Releasable;
48+
import org.opensearch.common.lease.Releasables;
4949
import org.opensearch.search.aggregations.Aggregator;
5050
import org.opensearch.search.aggregations.AggregatorFactories;
5151
import org.opensearch.search.aggregations.CardinalityUpperBound;

modules/transport-netty4/src/main/java/org/opensearch/transport/netty4/Netty4MessageChannelHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
import org.opensearch.common.bytes.BytesReference;
4444
import org.opensearch.common.bytes.ReleasableBytesReference;
4545
import org.opensearch.common.util.PageCacheRecycler;
46-
import org.opensearch.core.common.lease.Releasables;
46+
import org.opensearch.common.lease.Releasables;
4747
import org.opensearch.threadpool.ThreadPool;
4848
import org.opensearch.transport.InboundPipeline;
4949
import org.opensearch.transport.Transport;

modules/transport-netty4/src/main/java/org/opensearch/transport/netty4/Netty4Transport.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@
6262
import org.opensearch.common.util.PageCacheRecycler;
6363
import org.opensearch.common.util.concurrent.OpenSearchExecutors;
6464
import org.opensearch.common.util.net.NetUtils;
65-
import org.opensearch.core.common.lease.Releasables;
65+
import org.opensearch.common.lease.Releasables;
6666
import org.opensearch.indices.breaker.CircuitBreakerService;
6767
import org.opensearch.threadpool.ThreadPool;
6868
import org.opensearch.transport.Netty4NioSocketChannel;

plugins/transport-nio/src/main/java/org/opensearch/transport/nio/TcpReadWriteHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@
3838
import org.opensearch.common.bytes.ReleasableBytesReference;
3939
import org.opensearch.common.util.PageCacheRecycler;
4040
import org.opensearch.common.util.io.IOUtils;
41-
import org.opensearch.core.common.lease.Releasable;
42-
import org.opensearch.core.common.lease.Releasables;
41+
import org.opensearch.common.lease.Releasable;
42+
import org.opensearch.common.lease.Releasables;
4343
import org.opensearch.nio.BytesWriteHandler;
4444
import org.opensearch.nio.InboundChannelBuffer;
4545
import org.opensearch.nio.Page;

server/src/internalClusterTest/java/org/opensearch/index/IndexingPressureIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
import org.opensearch.common.UUIDs;
4646
import org.opensearch.common.collect.Tuple;
4747
import org.opensearch.common.settings.Settings;
48-
import org.opensearch.core.common.lease.Releasable;
48+
import org.opensearch.common.lease.Releasable;
4949
import org.opensearch.core.concurrency.OpenSearchRejectedExecutionException;
5050
import org.opensearch.plugins.Plugin;
5151
import org.opensearch.test.OpenSearchIntegTestCase;

server/src/internalClusterTest/java/org/opensearch/index/SegmentReplicationPressureIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import org.opensearch.common.UUIDs;
1515
import org.opensearch.common.settings.Settings;
1616
import org.opensearch.common.unit.TimeValue;
17-
import org.opensearch.core.common.lease.Releasable;
17+
import org.opensearch.common.lease.Releasable;
1818
import org.opensearch.core.concurrency.OpenSearchRejectedExecutionException;
1919
import org.opensearch.index.shard.IndexShard;
2020
import org.opensearch.index.shard.IndexShardState;

server/src/internalClusterTest/java/org/opensearch/index/ShardIndexingPressureIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import org.opensearch.common.UUIDs;
2222
import org.opensearch.common.collect.Tuple;
2323
import org.opensearch.common.settings.Settings;
24-
import org.opensearch.core.common.lease.Releasable;
24+
import org.opensearch.common.lease.Releasable;
2525
import org.opensearch.core.concurrency.OpenSearchRejectedExecutionException;
2626
import org.opensearch.index.shard.ShardId;
2727
import org.opensearch.indices.IndicesService;

server/src/internalClusterTest/java/org/opensearch/index/ShardIndexingPressureSettingsIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import org.opensearch.common.UUIDs;
2424
import org.opensearch.common.collect.Tuple;
2525
import org.opensearch.common.settings.Settings;
26-
import org.opensearch.core.common.lease.Releasable;
26+
import org.opensearch.common.lease.Releasable;
2727
import org.opensearch.core.concurrency.OpenSearchRejectedExecutionException;
2828
import org.opensearch.index.shard.ShardId;
2929
import org.opensearch.indices.IndicesService;

server/src/internalClusterTest/java/org/opensearch/indices/replication/SegmentReplicationBaseIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import org.opensearch.cluster.routing.ShardRouting;
1919
import org.opensearch.common.Nullable;
2020
import org.opensearch.common.settings.Settings;
21-
import org.opensearch.core.common.lease.Releasable;
21+
import org.opensearch.common.lease.Releasable;
2222
import org.opensearch.index.Index;
2323
import org.opensearch.index.IndexModule;
2424
import org.opensearch.index.IndexService;

server/src/internalClusterTest/java/org/opensearch/indices/replication/SegmentReplicationIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@
4646
import org.opensearch.common.lucene.index.OpenSearchDirectoryReader;
4747
import org.opensearch.common.settings.Settings;
4848
import org.opensearch.common.unit.TimeValue;
49+
import org.opensearch.common.lease.Releasable;
4950
import org.opensearch.common.util.FeatureFlags;
50-
import org.opensearch.core.common.lease.Releasable;
5151
import org.opensearch.index.IndexModule;
5252
import org.opensearch.index.SegmentReplicationPerGroupStats;
5353
import org.opensearch.index.SegmentReplicationPressureService;

server/src/internalClusterTest/java/org/opensearch/indices/state/ReopenWhileClosingIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
import org.opensearch.common.Glob;
4242
import org.opensearch.common.settings.Settings;
4343
import org.opensearch.common.util.concurrent.RunOnce;
44-
import org.opensearch.core.common.lease.Releasable;
44+
import org.opensearch.common.lease.Releasable;
4545
import org.opensearch.core.common.Strings;
4646
import org.opensearch.plugins.Plugin;
4747
import org.opensearch.test.OpenSearchIntegTestCase;

server/src/main/java/org/opensearch/action/admin/indices/close/TransportVerifyShardBeforeCloseAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
import org.opensearch.common.io.stream.StreamInput;
5050
import org.opensearch.common.io.stream.StreamOutput;
5151
import org.opensearch.common.settings.Settings;
52-
import org.opensearch.core.common.lease.Releasable;
52+
import org.opensearch.common.lease.Releasable;
5353
import org.opensearch.index.shard.IndexShard;
5454
import org.opensearch.index.shard.ShardId;
5555
import org.opensearch.indices.IndicesService;

server/src/main/java/org/opensearch/action/admin/indices/readonly/TransportVerifyShardIndexBlockAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
import org.opensearch.common.io.stream.StreamInput;
4949
import org.opensearch.common.io.stream.StreamOutput;
5050
import org.opensearch.common.settings.Settings;
51-
import org.opensearch.core.common.lease.Releasable;
51+
import org.opensearch.common.lease.Releasable;
5252
import org.opensearch.index.shard.IndexShard;
5353
import org.opensearch.index.shard.ShardId;
5454
import org.opensearch.indices.IndicesService;

server/src/main/java/org/opensearch/action/admin/indices/validate/query/TransportValidateQueryAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
import org.opensearch.common.Randomness;
5151
import org.opensearch.common.inject.Inject;
5252
import org.opensearch.common.io.stream.StreamInput;
53-
import org.opensearch.core.common.lease.Releasables;
53+
import org.opensearch.common.lease.Releasables;
5454
import org.opensearch.index.IndexNotFoundException;
5555
import org.opensearch.index.query.ParsedQuery;
5656
import org.opensearch.index.query.QueryShardException;

server/src/main/java/org/opensearch/action/bulk/TransportBulkAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@
7272
import org.opensearch.common.inject.Inject;
7373
import org.opensearch.common.unit.TimeValue;
7474
import org.opensearch.common.util.concurrent.AtomicArray;
75-
import org.opensearch.core.common.lease.Releasable;
75+
import org.opensearch.common.lease.Releasable;
7676
import org.opensearch.index.Index;
7777
import org.opensearch.index.IndexNotFoundException;
7878
import org.opensearch.index.IndexingPressureService;

server/src/main/java/org/opensearch/action/bulk/TransportShardBulkAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
import org.opensearch.common.util.concurrent.AbstractRunnable;
8080
import org.opensearch.common.xcontent.XContentHelper;
8181
import org.opensearch.common.xcontent.XContentType;
82-
import org.opensearch.core.common.lease.Releasable;
82+
import org.opensearch.common.lease.Releasable;
8383
import org.opensearch.core.xcontent.ToXContent;
8484
import org.opensearch.index.IndexingPressureService;
8585
import org.opensearch.index.SegmentReplicationPressureService;

server/src/main/java/org/opensearch/action/explain/TransportExplainAction.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
import org.opensearch.cluster.service.ClusterService;
4646
import org.opensearch.common.inject.Inject;
4747
import org.opensearch.common.io.stream.Writeable;
48-
import org.opensearch.core.common.lease.Releasables;
48+
import org.opensearch.common.lease.Releasables;
4949
import org.opensearch.index.IndexService;
5050
import org.opensearch.index.engine.Engine;
5151
import org.opensearch.index.get.GetResult;

server/src/main/java/org/opensearch/action/search/AbstractSearchAsyncAction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@
4848
import org.opensearch.common.SetOnce;
4949
import org.opensearch.common.util.concurrent.AbstractRunnable;
5050
import org.opensearch.common.util.concurrent.AtomicArray;
51-
import org.opensearch.core.common.lease.Releasable;
52-
import org.opensearch.core.common.lease.Releasables;
51+
import org.opensearch.common.lease.Releasable;
52+
import org.opensearch.common.lease.Releasables;
5353
import org.opensearch.index.shard.ShardId;
5454
import org.opensearch.search.SearchPhaseResult;
5555
import org.opensearch.search.SearchShardTarget;

0 commit comments

Comments
 (0)