From dc4bb62a7893f15cd5d48eb710bf95359a3c6177 Mon Sep 17 00:00:00 2001 From: Nik Everett Date: Wed, 6 Jun 2018 13:51:54 -0400 Subject: [PATCH 01/62] QA: Remove mistaken timeout I pushed a test that `assertBusy`s for a whole hour accidentally. I was testing something and forgot to revert my local hack but caught it on backport. This removes it. --- .../java/org/elasticsearch/upgrades/IndexAuditUpgradeIT.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/IndexAuditUpgradeIT.java b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/IndexAuditUpgradeIT.java index da6f9133d03..7c81a7141a9 100644 --- a/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/IndexAuditUpgradeIT.java +++ b/x-pack/qa/rolling-upgrade/src/test/java/org/elasticsearch/upgrades/IndexAuditUpgradeIT.java @@ -17,7 +17,6 @@ import java.io.IOException; import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.concurrent.TimeUnit; import static org.hamcrest.Matchers.hasSize; @@ -27,7 +26,7 @@ public class IndexAuditUpgradeIT extends AbstractUpgradeTestCase { assertBusy(() -> { assertAuditDocsExist(); assertNumUniqueNodeNameBuckets(expectedNumUniqueNodeNameBuckets()); - }, 1, TimeUnit.HOURS); + }); } private int expectedNumUniqueNodeNameBuckets() throws IOException { From 67e73b4df481f3902a4aeee78d34532297ff7b6b Mon Sep 17 00:00:00 2001 From: Tim Brooks Date: Wed, 6 Jun 2018 11:59:54 -0600 Subject: [PATCH 02/62] Combine accepting selector and socket selector (#31115) This is related to #27260. This commit combines the AcceptingSelector and SocketSelector classes into a single NioSelector. This change allows the same selector to handle both server and socket channels. This is valuable as we do not necessarily want a dedicated thread running for accepting channels. With this change, this commit removes the configuration for dedicated accepting selectors for the normal transport class. The accepting workload for new node connections is likely low, meaning that there is no need to dedicate a thread to this process. --- .../elasticsearch/nio/AcceptingSelector.java | 98 ---- .../nio/AcceptorEventHandler.java | 81 ---- .../nio/BytesChannelContext.java | 2 +- .../org/elasticsearch/nio/ChannelContext.java | 2 +- .../org/elasticsearch/nio/ChannelFactory.java | 24 +- .../org/elasticsearch/nio/ESSelector.java | 248 ---------- .../org/elasticsearch/nio/EventHandler.java | 152 ++++++- .../org/elasticsearch/nio/NioChannel.java | 3 +- .../java/org/elasticsearch/nio/NioGroup.java | 109 +++-- .../org/elasticsearch/nio/NioSelector.java | 428 ++++++++++++++++++ .../elasticsearch/nio/RoundRobinSupplier.java | 28 +- .../nio/ServerChannelContext.java | 8 +- .../nio/SocketChannelContext.java | 8 +- .../elasticsearch/nio/SocketEventHandler.java | 150 ------ .../org/elasticsearch/nio/SocketSelector.java | 224 --------- .../nio/AcceptingSelectorTests.java | 129 ------ .../nio/AcceptorEventHandlerTests.java | 123 ----- .../nio/BytesChannelContextTests.java | 4 +- .../nio/ChannelContextTests.java | 2 +- .../nio/ChannelFactoryTests.java | 16 +- .../elasticsearch/nio/ESSelectorTests.java | 114 ----- ...ndlerTests.java => EventHandlerTests.java} | 107 ++++- .../org/elasticsearch/nio/NioGroupTests.java | 9 +- ...lectorTests.java => NioSelectorTests.java} | 200 ++++++-- .../nio/SocketChannelContextTests.java | 6 +- .../http/nio/NioHttpServerTransport.java | 13 +- .../transport/nio/NioTransport.java | 28 +- .../transport/nio/NioTransportPlugin.java | 3 +- .../nio/TcpNioServerSocketChannel.java | 2 - .../transport/nio/TcpNioSocketChannel.java | 1 - .../elasticsearch/transport/Transports.java | 4 +- .../transport/nio/MockNioTransport.java | 26 +- .../nio/TestingSocketEventHandler.java | 10 +- .../transport/nio/SSLChannelContext.java | 6 +- .../transport/nio/SecurityNioTransport.java | 7 +- .../transport/nio/SSLChannelContextTests.java | 6 +- 36 files changed, 988 insertions(+), 1393 deletions(-) delete mode 100644 libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/AcceptingSelector.java delete mode 100644 libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/AcceptorEventHandler.java delete mode 100644 libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ESSelector.java create mode 100644 libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioSelector.java delete mode 100644 libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/SocketEventHandler.java delete mode 100644 libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/SocketSelector.java delete mode 100644 libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/AcceptingSelectorTests.java delete mode 100644 libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/AcceptorEventHandlerTests.java delete mode 100644 libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/ESSelectorTests.java rename libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/{SocketEventHandlerTests.java => EventHandlerTests.java} (66%) rename libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/{SocketSelectorTests.java => NioSelectorTests.java} (61%) diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/AcceptingSelector.java b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/AcceptingSelector.java deleted file mode 100644 index da64020daa8..00000000000 --- a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/AcceptingSelector.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.nio; - -import java.io.IOException; -import java.nio.channels.ClosedChannelException; -import java.nio.channels.SelectionKey; -import java.nio.channels.Selector; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.stream.Collectors; - -/** - * Selector implementation that handles {@link NioServerSocketChannel}. It's main piece of functionality is - * accepting new channels. - */ -public class AcceptingSelector extends ESSelector { - - private final AcceptorEventHandler eventHandler; - private final ConcurrentLinkedQueue newChannels = new ConcurrentLinkedQueue<>(); - - public AcceptingSelector(AcceptorEventHandler eventHandler) throws IOException { - super(eventHandler); - this.eventHandler = eventHandler; - } - - public AcceptingSelector(AcceptorEventHandler eventHandler, Selector selector) throws IOException { - super(eventHandler, selector); - this.eventHandler = eventHandler; - } - - @Override - void processKey(SelectionKey selectionKey) { - ServerChannelContext channelContext = (ServerChannelContext) selectionKey.attachment(); - if (selectionKey.isAcceptable()) { - try { - eventHandler.acceptChannel(channelContext); - } catch (IOException e) { - eventHandler.acceptException(channelContext, e); - } - } - } - - @Override - void preSelect() { - setUpNewServerChannels(); - } - - @Override - void cleanup() { - channelsToClose.addAll(newChannels.stream().map(NioServerSocketChannel::getContext).collect(Collectors.toList())); - } - - /** - * Schedules a NioServerSocketChannel to be registered with this selector. The channel will by queued and - * eventually registered next time through the event loop. - * - * @param serverSocketChannel the channel to register - */ - public void scheduleForRegistration(NioServerSocketChannel serverSocketChannel) { - newChannels.add(serverSocketChannel); - ensureSelectorOpenForEnqueuing(newChannels, serverSocketChannel); - wakeup(); - } - - private void setUpNewServerChannels() { - NioServerSocketChannel newChannel; - while ((newChannel = this.newChannels.poll()) != null) { - ServerChannelContext context = newChannel.getContext(); - assert context.getSelector() == this : "The channel must be registered with the selector with which it was created"; - try { - if (context.isOpen()) { - eventHandler.handleRegistration(context); - } else { - eventHandler.registrationException(context, new ClosedChannelException()); - } - } catch (Exception e) { - eventHandler.registrationException(context, e); - } - } - } -} diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/AcceptorEventHandler.java b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/AcceptorEventHandler.java deleted file mode 100644 index f3aab9c9be1..00000000000 --- a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/AcceptorEventHandler.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.nio; - -import java.io.IOException; -import java.nio.channels.SelectionKey; -import java.util.function.Consumer; -import java.util.function.Supplier; - -/** - * Event handler designed to handle events from server sockets - */ -public class AcceptorEventHandler extends EventHandler { - - private final Supplier selectorSupplier; - - public AcceptorEventHandler(Supplier selectorSupplier, Consumer exceptionHandler) { - super(exceptionHandler); - this.selectorSupplier = selectorSupplier; - } - - /** - * This method is called when a NioServerSocketChannel is being registered with the selector. It should - * only be called once per channel. - * - * @param context that was registered - */ - protected void handleRegistration(ServerChannelContext context) throws IOException { - context.register(); - SelectionKey selectionKey = context.getSelectionKey(); - selectionKey.attach(context); - SelectionKeyUtils.setAcceptInterested(selectionKey); - } - - /** - * This method is called when an attempt to register a server channel throws an exception. - * - * @param context that was registered - * @param exception that occurred - */ - protected void registrationException(ServerChannelContext context, Exception exception) { - context.handleException(exception); - } - - /** - * This method is called when a server channel signals it is ready to accept a connection. All of the - * accept logic should occur in this call. - * - * @param context that can accept a connection - */ - protected void acceptChannel(ServerChannelContext context) throws IOException { - context.acceptChannels(selectorSupplier); - } - - /** - * This method is called when an attempt to accept a connection throws an exception. - * - * @param context that accepting a connection - * @param exception that occurred - */ - protected void acceptException(ServerChannelContext context, Exception exception) { - context.handleException(exception); - } -} diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/BytesChannelContext.java b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/BytesChannelContext.java index ef1e188a22e..a82d381951b 100644 --- a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/BytesChannelContext.java +++ b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/BytesChannelContext.java @@ -24,7 +24,7 @@ import java.util.function.Consumer; public class BytesChannelContext extends SocketChannelContext { - public BytesChannelContext(NioSocketChannel channel, SocketSelector selector, Consumer exceptionHandler, + public BytesChannelContext(NioSocketChannel channel, NioSelector selector, Consumer exceptionHandler, ReadWriteHandler handler, InboundChannelBuffer channelBuffer) { super(channel, selector, exceptionHandler, handler, channelBuffer); } diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ChannelContext.java b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ChannelContext.java index 93930bbabf0..e3702c2880a 100644 --- a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ChannelContext.java +++ b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ChannelContext.java @@ -105,7 +105,7 @@ public abstract class ChannelContext supplier) throws IOException { + public Socket openNioChannel(InetSocketAddress remoteAddress, Supplier supplier) throws IOException { SocketChannel rawChannel = rawChannelFactory.openNioChannel(remoteAddress); - SocketSelector selector = supplier.get(); + NioSelector selector = supplier.get(); Socket channel = internalCreateChannel(selector, rawChannel); scheduleChannel(channel, selector); return channel; } - public Socket acceptNioChannel(ServerChannelContext serverContext, Supplier supplier) throws IOException { + public Socket acceptNioChannel(ServerChannelContext serverContext, Supplier supplier) throws IOException { SocketChannel rawChannel = rawChannelFactory.acceptNioChannel(serverContext); // Null is returned if there are no pending sockets to accept if (rawChannel == null) { return null; } else { - SocketSelector selector = supplier.get(); + NioSelector selector = supplier.get(); Socket channel = internalCreateChannel(selector, rawChannel); scheduleChannel(channel, selector); return channel; } } - public ServerSocket openNioServerSocketChannel(InetSocketAddress address, Supplier supplier) throws IOException { + public ServerSocket openNioServerSocketChannel(InetSocketAddress address, Supplier supplier) throws IOException { ServerSocketChannel rawChannel = rawChannelFactory.openNioServerSocketChannel(address); - AcceptingSelector selector = supplier.get(); + NioSelector selector = supplier.get(); ServerSocket serverChannel = internalCreateServerChannel(selector, rawChannel); scheduleServerChannel(serverChannel, selector); return serverChannel; @@ -81,7 +81,7 @@ public abstract class ChannelFactory - * Children of this class should implement the specific {@link #processKey(SelectionKey)}, - * {@link #preSelect()}, and {@link #cleanup()} functionality. - */ -public abstract class ESSelector implements Closeable { - - final Selector selector; - final ConcurrentLinkedQueue> channelsToClose = new ConcurrentLinkedQueue<>(); - - private final EventHandler eventHandler; - private final ReentrantLock runLock = new ReentrantLock(); - private final CountDownLatch exitedLoop = new CountDownLatch(1); - private final AtomicBoolean isClosed = new AtomicBoolean(false); - private final CompletableFuture isRunningFuture = new CompletableFuture<>(); - private volatile Thread thread; - - ESSelector(EventHandler eventHandler) throws IOException { - this(eventHandler, Selector.open()); - } - - ESSelector(EventHandler eventHandler, Selector selector) { - this.eventHandler = eventHandler; - this.selector = selector; - } - - /** - * Starts this selector. The selector will run until {@link #close()} is called. - */ - public void runLoop() { - if (runLock.tryLock()) { - isRunningFuture.complete(null); - try { - setThread(); - while (isOpen()) { - singleLoop(); - } - } finally { - try { - cleanupAndCloseChannels(); - } finally { - try { - selector.close(); - } catch (IOException e) { - eventHandler.selectorException(e); - } finally { - runLock.unlock(); - exitedLoop.countDown(); - } - } - } - } else { - throw new IllegalStateException("selector is already running"); - } - } - - void singleLoop() { - try { - closePendingChannels(); - preSelect(); - - int ready = selector.select(300); - if (ready > 0) { - Set selectionKeys = selector.selectedKeys(); - Iterator keyIterator = selectionKeys.iterator(); - while (keyIterator.hasNext()) { - SelectionKey sk = keyIterator.next(); - keyIterator.remove(); - if (sk.isValid()) { - try { - processKey(sk); - } catch (CancelledKeyException cke) { - eventHandler.genericChannelException((ChannelContext) sk.attachment(), cke); - } - } else { - eventHandler.genericChannelException((ChannelContext) sk.attachment(), new CancelledKeyException()); - } - } - } - } catch (ClosedSelectorException e) { - if (isOpen()) { - throw e; - } - } catch (IOException e) { - eventHandler.selectorException(e); - } catch (Exception e) { - eventHandler.uncaughtException(e); - } - } - - void cleanupAndCloseChannels() { - cleanup(); - channelsToClose.addAll(selector.keys().stream().map(sk -> (ChannelContext) sk.attachment()).collect(Collectors.toList())); - closePendingChannels(); - } - - /** - * Called by the base {@link ESSelector} class when there is a {@link SelectionKey} to be handled. - * - * @param selectionKey the key to be handled - * @throws CancelledKeyException thrown when the key has already been cancelled - */ - abstract void processKey(SelectionKey selectionKey) throws CancelledKeyException; - - /** - * Called immediately prior to a raw {@link Selector#select()} call. Should be used to implement - * channel registration, handling queued writes, and other work that is not specifically processing - * a selection key. - */ - abstract void preSelect(); - - /** - * Called once as the selector is being closed. - */ - abstract void cleanup(); - - void setThread() { - thread = Thread.currentThread(); - } - - public boolean isOnCurrentThread() { - return Thread.currentThread() == thread; - } - - public void assertOnSelectorThread() { - assert isOnCurrentThread() : "Must be on selector thread to perform this operation. Currently on thread [" - + Thread.currentThread().getName() + "]."; - } - - void wakeup() { - // TODO: Do we need the wakeup optimizations that some other libraries use? - selector.wakeup(); - } - - @Override - public void close() throws IOException { - if (isClosed.compareAndSet(false, true)) { - wakeup(); - if (isRunning()) { - try { - exitedLoop.await(); - } catch (InterruptedException e) { - Thread.currentThread().interrupt(); - throw new IllegalStateException("Thread was interrupted while waiting for selector to close", e); - } - } else if (selector.isOpen()) { - selector.close(); - } - } - } - - public void queueChannelClose(NioChannel channel) { - ChannelContext context = channel.getContext(); - assert context.getSelector() == this : "Must schedule a channel for closure with its selector"; - channelsToClose.offer(context); - ensureSelectorOpenForEnqueuing(channelsToClose, context); - wakeup(); - } - - public Selector rawSelector() { - return selector; - } - - public boolean isOpen() { - return isClosed.get() == false; - } - - public boolean isRunning() { - return runLock.isLocked(); - } - - public Future isRunningFuture() { - return isRunningFuture; - } - - /** - * This is a convenience method to be called after some object (normally channels) are enqueued with this - * selector. This method will check if the selector is still open. If it is open, normal operation can - * proceed. - * - * If the selector is closed, then we attempt to remove the object from the queue. If the removal - * succeeds then we throw an {@link IllegalStateException} indicating that normal operation failed. If - * the object cannot be removed from the queue, then the object has already been handled by the selector - * and operation can proceed normally. - * - * If this method is called from the selector thread, we will not throw an exception as the selector - * thread can manipulate its queues internally even if it is no longer open. - * - * @param queue the queue to which the object was added - * @param objectAdded the objected added - * @param the object type - */ - void ensureSelectorOpenForEnqueuing(ConcurrentLinkedQueue queue, O objectAdded) { - if (isOpen() == false && isOnCurrentThread() == false) { - if (queue.remove(objectAdded)) { - throw new IllegalStateException("selector is already closed"); - } - } - } - - private void closePendingChannels() { - ChannelContext channelContext; - while ((channelContext = channelsToClose.poll()) != null) { - eventHandler.handleClose(channelContext); - } - } -} diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/EventHandler.java b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/EventHandler.java index cb4d43af4fd..3c52423c7af 100644 --- a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/EventHandler.java +++ b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/EventHandler.java @@ -20,15 +20,163 @@ package org.elasticsearch.nio; import java.io.IOException; +import java.nio.channels.SelectionKey; import java.nio.channels.Selector; import java.util.function.Consumer; +import java.util.function.Supplier; -public abstract class EventHandler { +public class EventHandler { protected final Consumer exceptionHandler; + private final Supplier selectorSupplier; - protected EventHandler(Consumer exceptionHandler) { + public EventHandler(Consumer exceptionHandler, Supplier selectorSupplier) { this.exceptionHandler = exceptionHandler; + this.selectorSupplier = selectorSupplier; + } + + /** + * This method is called when a server channel signals it is ready to accept a connection. All of the + * accept logic should occur in this call. + * + * @param context that can accept a connection + */ + protected void acceptChannel(ServerChannelContext context) throws IOException { + context.acceptChannels(selectorSupplier); + } + + /** + * This method is called when an attempt to accept a connection throws an exception. + * + * @param context that accepting a connection + * @param exception that occurred + */ + protected void acceptException(ServerChannelContext context, Exception exception) { + context.handleException(exception); + } + + /** + * This method is called when a NioChannel is being registered with the selector. It should + * only be called once per channel. + * + * @param context that was registered + */ + protected void handleRegistration(ChannelContext context) throws IOException { + context.register(); + SelectionKey selectionKey = context.getSelectionKey(); + selectionKey.attach(context); + if (context instanceof SocketChannelContext) { + if (((SocketChannelContext) context).readyForFlush()) { + SelectionKeyUtils.setConnectReadAndWriteInterested(context.getSelectionKey()); + } else { + SelectionKeyUtils.setConnectAndReadInterested(context.getSelectionKey()); + } + } else { + assert context instanceof ServerChannelContext : "If not SocketChannelContext the context must be a ServerChannelContext"; + SelectionKeyUtils.setAcceptInterested(context.getSelectionKey()); + } + } + + /** + * This method is called when an attempt to register a channel throws an exception. + * + * @param context that was registered + * @param exception that occurred + */ + protected void registrationException(ChannelContext context, Exception exception) { + context.handleException(exception); + } + + /** + * This method is called when a NioSocketChannel has just been accepted or if it has receive an + * OP_CONNECT event. + * + * @param context that was registered + */ + protected void handleConnect(SocketChannelContext context) throws IOException { + if (context.connect()) { + SelectionKeyUtils.removeConnectInterested(context.getSelectionKey()); + } + } + + /** + * This method is called when an attempt to connect a channel throws an exception. + * + * @param context that was connecting + * @param exception that occurred + */ + protected void connectException(SocketChannelContext context, Exception exception) { + context.handleException(exception); + } + + /** + * This method is called when a channel signals it is ready for be read. All of the read logic should + * occur in this call. + * + * @param context that can be read + */ + protected void handleRead(SocketChannelContext context) throws IOException { + context.read(); + } + + /** + * This method is called when an attempt to read from a channel throws an exception. + * + * @param context that was being read + * @param exception that occurred + */ + protected void readException(SocketChannelContext context, Exception exception) { + context.handleException(exception); + } + + /** + * This method is called when a channel signals it is ready to receive writes. All of the write logic + * should occur in this call. + * + * @param context that can be written to + */ + protected void handleWrite(SocketChannelContext context) throws IOException { + context.flushChannel(); + } + + /** + * This method is called when an attempt to write to a channel throws an exception. + * + * @param context that was being written to + * @param exception that occurred + */ + protected void writeException(SocketChannelContext context, Exception exception) { + context.handleException(exception); + } + + /** + * This method is called when a listener attached to a channel operation throws an exception. + * + * @param exception that occurred + */ + protected void listenerException(Exception exception) { + exceptionHandler.accept(exception); + } + + /** + * This method is called after ready events (READ, ACCEPT, WRITE, CONNECT) have been handled for a + * channel. + * + * @param context that was handled + */ + protected void postHandling(SocketChannelContext context) { + if (context.selectorShouldClose()) { + handleClose(context); + } else { + SelectionKey selectionKey = context.getSelectionKey(); + boolean currentlyWriteInterested = SelectionKeyUtils.isWriteInterested(selectionKey); + boolean pendingWrites = context.readyForFlush(); + if (currentlyWriteInterested == false && pendingWrites) { + SelectionKeyUtils.setWriteInterested(selectionKey); + } else if (currentlyWriteInterested && pendingWrites == false) { + SelectionKeyUtils.removeWriteInterested(selectionKey); + } + } } /** diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioChannel.java b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioChannel.java index ea633bd3276..8262d9c87e3 100644 --- a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioChannel.java +++ b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioChannel.java @@ -22,10 +22,11 @@ package org.elasticsearch.nio; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.channels.NetworkChannel; +import java.nio.channels.SocketChannel; import java.util.function.BiConsumer; /** - * This is a basic channel abstraction used by the {@link ESSelector}. + * This is a basic channel abstraction used by the {@link NioSelector}. *

* A channel is open once it is constructed. The channel remains open and {@link #isOpen()} will return * true until the channel is explicitly closed. diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioGroup.java b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioGroup.java index 3f2fd44259c..fe1bc1cf404 100644 --- a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioGroup.java +++ b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioGroup.java @@ -35,10 +35,9 @@ import java.util.stream.Stream; /** * The NioGroup is a group of selectors for interfacing with java nio. When it is started it will create the - * configured number of socket and acceptor selectors. Each selector will be running in a dedicated thread. - * Server connections can be bound using the {@link #bindServerChannel(InetSocketAddress, ChannelFactory)} - * method. Client connections can be opened using the {@link #openChannel(InetSocketAddress, ChannelFactory)} - * method. + * configured number of selectors. Each selector will be running in a dedicated thread. Server connections + * can be bound using the {@link #bindServerChannel(InetSocketAddress, ChannelFactory)} method. Client + * connections can be opened using the {@link #openChannel(InetSocketAddress, ChannelFactory)} method. *

* The logic specific to a particular channel is provided by the {@link ChannelFactory} passed to the method * when the channel is created. This is what allows an NioGroup to support different channel types. @@ -46,35 +45,75 @@ import java.util.stream.Stream; public class NioGroup implements AutoCloseable { - private final ArrayList acceptors; - private final RoundRobinSupplier acceptorSupplier; + private final List dedicatedAcceptors; + private final RoundRobinSupplier acceptorSupplier; - private final ArrayList socketSelectors; - private final RoundRobinSupplier socketSelectorSupplier; + private final List selectors; + private final RoundRobinSupplier selectorSupplier; private final AtomicBoolean isOpen = new AtomicBoolean(true); - public NioGroup(ThreadFactory acceptorThreadFactory, int acceptorCount, - Function, AcceptorEventHandler> acceptorEventHandlerFunction, - ThreadFactory socketSelectorThreadFactory, int socketSelectorCount, - Supplier socketEventHandlerFunction) throws IOException { - acceptors = new ArrayList<>(acceptorCount); - socketSelectors = new ArrayList<>(socketSelectorCount); + /** + * This will create an NioGroup with no dedicated acceptors. All server channels will be handled by the + * same selectors that are handling child channels. + * + * @param threadFactory factory to create selector threads + * @param selectorCount the number of selectors to be created + * @param eventHandlerFunction function for creating event handlers + * @throws IOException occurs if there is a problem while opening a java.nio.Selector + */ + public NioGroup(ThreadFactory threadFactory, int selectorCount, Function, EventHandler> eventHandlerFunction) + throws IOException { + this(null, 0, threadFactory, selectorCount, eventHandlerFunction); + } + + /** + * This will create an NioGroup with dedicated acceptors. All server channels will be handled by a group + * of selectors dedicated to accepting channels. These accepted channels will be handed off the + * non-server selectors. + * + * @param acceptorThreadFactory factory to create acceptor selector threads + * @param dedicatedAcceptorCount the number of dedicated acceptor selectors to be created + * @param selectorThreadFactory factory to create non-acceptor selector threads + * @param selectorCount the number of non-acceptor selectors to be created + * @param eventHandlerFunction function for creating event handlers + * @throws IOException occurs if there is a problem while opening a java.nio.Selector + */ + public NioGroup(ThreadFactory acceptorThreadFactory, int dedicatedAcceptorCount, ThreadFactory selectorThreadFactory, int selectorCount, + Function, EventHandler> eventHandlerFunction) throws IOException { + dedicatedAcceptors = new ArrayList<>(dedicatedAcceptorCount); + selectors = new ArrayList<>(selectorCount); try { - for (int i = 0; i < socketSelectorCount; ++i) { - SocketSelector selector = new SocketSelector(socketEventHandlerFunction.get()); - socketSelectors.add(selector); + List> suppliersToSet = new ArrayList<>(selectorCount); + for (int i = 0; i < selectorCount; ++i) { + RoundRobinSupplier supplier = new RoundRobinSupplier<>(); + suppliersToSet.add(supplier); + NioSelector selector = new NioSelector(eventHandlerFunction.apply(supplier)); + selectors.add(selector); + } + for (RoundRobinSupplier supplierToSet : suppliersToSet) { + supplierToSet.setSelectors(selectors.toArray(new NioSelector[0])); + assert supplierToSet.count() == selectors.size() : "Supplier should have same count as selector list."; } - startSelectors(socketSelectors, socketSelectorThreadFactory); - for (int i = 0; i < acceptorCount; ++i) { - SocketSelector[] childSelectors = this.socketSelectors.toArray(new SocketSelector[this.socketSelectors.size()]); - Supplier selectorSupplier = new RoundRobinSupplier<>(childSelectors); - AcceptingSelector acceptor = new AcceptingSelector(acceptorEventHandlerFunction.apply(selectorSupplier)); - acceptors.add(acceptor); + for (int i = 0; i < dedicatedAcceptorCount; ++i) { + RoundRobinSupplier supplier = new RoundRobinSupplier<>(selectors.toArray(new NioSelector[0])); + NioSelector acceptor = new NioSelector(eventHandlerFunction.apply(supplier)); + dedicatedAcceptors.add(acceptor); } - startSelectors(acceptors, acceptorThreadFactory); + + if (dedicatedAcceptorCount != 0) { + acceptorSupplier = new RoundRobinSupplier<>(dedicatedAcceptors.toArray(new NioSelector[0])); + } else { + acceptorSupplier = new RoundRobinSupplier<>(selectors.toArray(new NioSelector[0])); + } + selectorSupplier = new RoundRobinSupplier<>(selectors.toArray(new NioSelector[0])); + assert selectorCount == selectors.size() : "We need to have created all the selectors at this point."; + assert dedicatedAcceptorCount == dedicatedAcceptors.size() : "We need to have created all the acceptors at this point."; + + startSelectors(selectors, selectorThreadFactory); + startSelectors(dedicatedAcceptors, acceptorThreadFactory); } catch (Exception e) { try { close(); @@ -83,31 +122,25 @@ public class NioGroup implements AutoCloseable { } throw e; } - - socketSelectorSupplier = new RoundRobinSupplier<>(socketSelectors.toArray(new SocketSelector[socketSelectors.size()])); - acceptorSupplier = new RoundRobinSupplier<>(acceptors.toArray(new AcceptingSelector[acceptors.size()])); } public S bindServerChannel(InetSocketAddress address, ChannelFactory factory) throws IOException { ensureOpen(); - if (acceptors.isEmpty()) { - throw new IllegalArgumentException("There are no acceptors configured. Without acceptors, server channels are not supported."); - } return factory.openNioServerSocketChannel(address, acceptorSupplier); } public S openChannel(InetSocketAddress address, ChannelFactory factory) throws IOException { ensureOpen(); - return factory.openNioChannel(address, socketSelectorSupplier); + return factory.openNioChannel(address, selectorSupplier); } @Override public void close() throws IOException { if (isOpen.compareAndSet(true, false)) { - List toClose = Stream.concat(acceptors.stream(), socketSelectors.stream()).collect(Collectors.toList()); + List toClose = Stream.concat(dedicatedAcceptors.stream(), selectors.stream()).collect(Collectors.toList()); List closingExceptions = new ArrayList<>(); - for (ESSelector selector : toClose) { + for (NioSelector selector : toClose) { try { selector.close(); } catch (IOException e) { @@ -118,12 +151,12 @@ public class NioGroup implements AutoCloseable { } } - private static void startSelectors(Iterable selectors, ThreadFactory threadFactory) { - for (ESSelector acceptor : selectors) { - if (acceptor.isRunning() == false) { - threadFactory.newThread(acceptor::runLoop).start(); + private static void startSelectors(Iterable selectors, ThreadFactory threadFactory) { + for (NioSelector selector : selectors) { + if (selector.isRunning() == false) { + threadFactory.newThread(selector::runLoop).start(); try { - acceptor.isRunningFuture().get(); + selector.isRunningFuture().get(); } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new IllegalStateException("Interrupted while waiting for selector to start.", e); diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioSelector.java b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioSelector.java new file mode 100644 index 00000000000..ab6709bcc5b --- /dev/null +++ b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioSelector.java @@ -0,0 +1,428 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.nio; + +import java.io.Closeable; +import java.io.IOException; +import java.nio.channels.CancelledKeyException; +import java.nio.channels.ClosedChannelException; +import java.nio.channels.ClosedSelectorException; +import java.nio.channels.SelectionKey; +import java.nio.channels.Selector; +import java.util.Iterator; +import java.util.Set; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.Future; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicReference; +import java.util.concurrent.locks.ReentrantLock; +import java.util.function.BiConsumer; +import java.util.stream.Collectors; + +/** + * This is a nio selector implementation. This selector wraps a raw nio {@link Selector}. When you call + * {@link #runLoop()}, the selector will run until {@link #close()} is called. This instance handles closing + * of channels. Users should call {@link #queueChannelClose(NioChannel)} to schedule a channel for close by + * this selector. + *

+ * Children of this class should implement the specific {@link #processKey(SelectionKey)}, + * {@link #preSelect()}, and {@link #cleanup()} functionality. + */ +public class NioSelector implements Closeable { + + private final ConcurrentLinkedQueue queuedWrites = new ConcurrentLinkedQueue<>(); + private final ConcurrentLinkedQueue> channelsToClose = new ConcurrentLinkedQueue<>(); + private final ConcurrentLinkedQueue> channelsToRegister = new ConcurrentLinkedQueue<>(); + private final EventHandler eventHandler; + private final Selector selector; + + private final ReentrantLock runLock = new ReentrantLock(); + private final CountDownLatch exitedLoop = new CountDownLatch(1); + private final AtomicBoolean isClosed = new AtomicBoolean(false); + private final CompletableFuture isRunningFuture = new CompletableFuture<>(); + private final AtomicReference thread = new AtomicReference<>(null); + + public NioSelector(EventHandler eventHandler) throws IOException { + this(eventHandler, Selector.open()); + } + + public NioSelector(EventHandler eventHandler, Selector selector) throws IOException { + this.selector = selector; + this.eventHandler = eventHandler; + } + + public Selector rawSelector() { + return selector; + } + + public boolean isOpen() { + return isClosed.get() == false; + } + + public boolean isRunning() { + return runLock.isLocked(); + } + + Future isRunningFuture() { + return isRunningFuture; + } + + void setThread() { + boolean wasSet = thread.compareAndSet(null, Thread.currentThread()); + assert wasSet : "Failed to set thread as it was already set. Should only set once."; + } + + public boolean isOnCurrentThread() { + return Thread.currentThread() == thread.get(); + } + + public void assertOnSelectorThread() { + assert isOnCurrentThread() : "Must be on selector thread [" + thread.get().getName() + "} to perform this operation. " + + "Currently on thread [" + Thread.currentThread().getName() + "]."; + } + + /** + * Starts this selector. The selector will run until {@link #close()} is called. + */ + public void runLoop() { + if (runLock.tryLock()) { + isRunningFuture.complete(null); + try { + setThread(); + while (isOpen()) { + singleLoop(); + } + } finally { + try { + cleanupAndCloseChannels(); + } finally { + try { + selector.close(); + } catch (IOException e) { + eventHandler.selectorException(e); + } finally { + runLock.unlock(); + exitedLoop.countDown(); + } + } + } + } else { + throw new IllegalStateException("selector is already running"); + } + } + + void singleLoop() { + try { + closePendingChannels(); + preSelect(); + + int ready = selector.select(300); + if (ready > 0) { + Set selectionKeys = selector.selectedKeys(); + Iterator keyIterator = selectionKeys.iterator(); + while (keyIterator.hasNext()) { + SelectionKey sk = keyIterator.next(); + keyIterator.remove(); + if (sk.isValid()) { + try { + processKey(sk); + } catch (CancelledKeyException cke) { + eventHandler.genericChannelException((ChannelContext) sk.attachment(), cke); + } + } else { + eventHandler.genericChannelException((ChannelContext) sk.attachment(), new CancelledKeyException()); + } + } + } + } catch (ClosedSelectorException e) { + if (isOpen()) { + throw e; + } + } catch (IOException e) { + eventHandler.selectorException(e); + } catch (Exception e) { + eventHandler.uncaughtException(e); + } + } + + void cleanupAndCloseChannels() { + cleanup(); + channelsToClose.addAll(channelsToRegister); + channelsToRegister.clear(); + channelsToClose.addAll(selector.keys().stream().map(sk -> (ChannelContext) sk.attachment()).collect(Collectors.toList())); + closePendingChannels(); + } + + @Override + public void close() throws IOException { + if (isClosed.compareAndSet(false, true)) { + wakeup(); + if (isRunning()) { + try { + exitedLoop.await(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw new IllegalStateException("Thread was interrupted while waiting for selector to close", e); + } + } else if (selector.isOpen()) { + selector.close(); + } + } + } + + void processKey(SelectionKey selectionKey) { + ChannelContext context = (ChannelContext) selectionKey.attachment(); + if (selectionKey.isAcceptable()) { + assert context instanceof ServerChannelContext : "Only server channels can receive accept events"; + ServerChannelContext serverChannelContext = (ServerChannelContext) context; + int ops = selectionKey.readyOps(); + if ((ops & SelectionKey.OP_ACCEPT) != 0) { + try { + eventHandler.acceptChannel(serverChannelContext); + } catch (IOException e) { + eventHandler.acceptException(serverChannelContext, e); + } + } + } else { + assert context instanceof SocketChannelContext : "Only sockets channels can receive non-accept events"; + SocketChannelContext channelContext = (SocketChannelContext) context; + int ops = selectionKey.readyOps(); + if ((ops & SelectionKey.OP_CONNECT) != 0) { + attemptConnect(channelContext, true); + } + + if (channelContext.isConnectComplete()) { + if ((ops & SelectionKey.OP_WRITE) != 0) { + handleWrite(channelContext); + } + + if ((ops & SelectionKey.OP_READ) != 0) { + handleRead(channelContext); + } + } + eventHandler.postHandling(channelContext); + } + + } + + /** + * Called immediately prior to a raw {@link Selector#select()} call. Should be used to implement + * channel registration, handling queued writes, and other work that is not specifically processing + * a selection key. + */ + void preSelect() { + setUpNewChannels(); + handleQueuedWrites(); + } + + /** + * Called once as the selector is being closed. + */ + void cleanup() { + WriteOperation op; + while ((op = queuedWrites.poll()) != null) { + executeFailedListener(op.getListener(), new ClosedSelectorException()); + } + } + + /** + * Queues a write operation to be handled by the event loop. This can be called by any thread and is the + * api available for non-selector threads to schedule writes. + * + * @param writeOperation to be queued + */ + public void queueWrite(WriteOperation writeOperation) { + queuedWrites.offer(writeOperation); + if (isOpen() == false) { + boolean wasRemoved = queuedWrites.remove(writeOperation); + if (wasRemoved) { + writeOperation.getListener().accept(null, new ClosedSelectorException()); + } + } else { + wakeup(); + } + } + + public void queueChannelClose(NioChannel channel) { + ChannelContext context = channel.getContext(); + assert context.getSelector() == this : "Must schedule a channel for closure with its selector"; + channelsToClose.offer(context); + ensureSelectorOpenForEnqueuing(channelsToClose, context); + wakeup(); + } + + /** + * Schedules a NioChannel to be registered with this selector. The channel will by queued and + * eventually registered next time through the event loop. + * + * @param channel to register + */ + public void scheduleForRegistration(NioChannel channel) { + ChannelContext context = channel.getContext(); + channelsToRegister.add(context); + ensureSelectorOpenForEnqueuing(channelsToRegister, context); + wakeup(); + } + + /** + * Queues a write operation directly in a channel's buffer. Channel buffers are only safe to be accessed + * by the selector thread. As a result, this method should only be called by the selector thread. + * + * @param writeOperation to be queued in a channel's buffer + */ + public void queueWriteInChannelBuffer(WriteOperation writeOperation) { + assertOnSelectorThread(); + SocketChannelContext context = writeOperation.getChannel(); + try { + SelectionKeyUtils.setWriteInterested(context.getSelectionKey()); + context.queueWriteOperation(writeOperation); + } catch (Exception e) { + executeFailedListener(writeOperation.getListener(), e); + } + } + + /** + * Executes a success listener with consistent exception handling. This can only be called from current + * selector thread. + * + * @param listener to be executed + * @param value to provide to listener + */ + public void executeListener(BiConsumer listener, V value) { + assertOnSelectorThread(); + try { + listener.accept(value, null); + } catch (Exception e) { + eventHandler.listenerException(e); + } + } + + /** + * Executes a failed listener with consistent exception handling. This can only be called from current + * selector thread. + * + * @param listener to be executed + * @param exception to provide to listener + */ + public void executeFailedListener(BiConsumer listener, Exception exception) { + assertOnSelectorThread(); + try { + listener.accept(null, exception); + } catch (Exception e) { + eventHandler.listenerException(e); + } + } + + private void wakeup() { + // TODO: Do we need the wakeup optimizations that some other libraries use? + selector.wakeup(); + } + + private void handleWrite(SocketChannelContext context) { + try { + eventHandler.handleWrite(context); + } catch (Exception e) { + eventHandler.writeException(context, e); + } + } + + private void handleRead(SocketChannelContext context) { + try { + eventHandler.handleRead(context); + } catch (Exception e) { + eventHandler.readException(context, e); + } + } + + private void attemptConnect(SocketChannelContext context, boolean connectEvent) { + try { + eventHandler.handleConnect(context); + if (connectEvent && context.isConnectComplete() == false) { + eventHandler.connectException(context, new IOException("Received OP_CONNECT but connect failed")); + } + } catch (Exception e) { + eventHandler.connectException(context, e); + } + } + + private void setUpNewChannels() { + ChannelContext newChannel; + while ((newChannel = this.channelsToRegister.poll()) != null) { + assert newChannel.getSelector() == this : "The channel must be registered with the selector with which it was created"; + try { + if (newChannel.isOpen()) { + eventHandler.handleRegistration(newChannel); + if (newChannel instanceof SocketChannelContext) { + attemptConnect((SocketChannelContext) newChannel, false); + } + } else { + eventHandler.registrationException(newChannel, new ClosedChannelException()); + } + } catch (Exception e) { + eventHandler.registrationException(newChannel, e); + } + } + } + + private void closePendingChannels() { + ChannelContext channelContext; + while ((channelContext = channelsToClose.poll()) != null) { + eventHandler.handleClose(channelContext); + } + } + + private void handleQueuedWrites() { + WriteOperation writeOperation; + while ((writeOperation = queuedWrites.poll()) != null) { + if (writeOperation.getChannel().isOpen()) { + queueWriteInChannelBuffer(writeOperation); + } else { + executeFailedListener(writeOperation.getListener(), new ClosedChannelException()); + } + } + } + + /** + * This is a convenience method to be called after some object (normally channels) are enqueued with this + * selector. This method will check if the selector is still open. If it is open, normal operation can + * proceed. + * + * If the selector is closed, then we attempt to remove the object from the queue. If the removal + * succeeds then we throw an {@link IllegalStateException} indicating that normal operation failed. If + * the object cannot be removed from the queue, then the object has already been handled by the selector + * and operation can proceed normally. + * + * If this method is called from the selector thread, we will not allow the queuing to occur as the + * selector thread can manipulate its queues internally even if it is no longer open. + * + * @param queue the queue to which the object was added + * @param objectAdded the objected added + * @param the object type + */ + private void ensureSelectorOpenForEnqueuing(ConcurrentLinkedQueue queue, O objectAdded) { + if (isOpen() == false && isOnCurrentThread() == false) { + if (queue.remove(objectAdded)) { + throw new IllegalStateException("selector is already closed"); + } + } + } +} diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/RoundRobinSupplier.java b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/RoundRobinSupplier.java index 311403a4885..4d4de689fe7 100644 --- a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/RoundRobinSupplier.java +++ b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/RoundRobinSupplier.java @@ -19,21 +19,39 @@ package org.elasticsearch.nio; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Supplier; -public class RoundRobinSupplier implements Supplier { +final class RoundRobinSupplier implements Supplier { - private final S[] selectors; - private final int count; + private final AtomicBoolean selectorsSet = new AtomicBoolean(false); + private volatile S[] selectors; private AtomicInteger counter = new AtomicInteger(0); + RoundRobinSupplier() { + this.selectors = null; + } + RoundRobinSupplier(S[] selectors) { - this.count = selectors.length; this.selectors = selectors; + this.selectorsSet.set(true); } public S get() { - return selectors[counter.getAndIncrement() % count]; + S[] selectors = this.selectors; + return selectors[counter.getAndIncrement() % selectors.length]; + } + + void setSelectors(S[] selectors) { + if (selectorsSet.compareAndSet(false, true)) { + this.selectors = selectors; + } else { + throw new AssertionError("Selectors already set. Should only be set once."); + } + } + + int count() { + return selectors.length; } } diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ServerChannelContext.java b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ServerChannelContext.java index 4b47ce063f9..9e1af3e9973 100644 --- a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ServerChannelContext.java +++ b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ServerChannelContext.java @@ -28,12 +28,12 @@ import java.util.function.Supplier; public class ServerChannelContext extends ChannelContext { private final NioServerSocketChannel channel; - private final AcceptingSelector selector; + private final NioSelector selector; private final Consumer acceptor; private final AtomicBoolean isClosing = new AtomicBoolean(false); private final ChannelFactory channelFactory; - public ServerChannelContext(NioServerSocketChannel channel, ChannelFactory channelFactory, AcceptingSelector selector, + public ServerChannelContext(NioServerSocketChannel channel, ChannelFactory channelFactory, NioSelector selector, Consumer acceptor, Consumer exceptionHandler) { super(channel.getRawChannel(), exceptionHandler); this.channel = channel; @@ -42,7 +42,7 @@ public class ServerChannelContext extends ChannelContext { this.acceptor = acceptor; } - public void acceptChannels(Supplier selectorSupplier) throws IOException { + public void acceptChannels(Supplier selectorSupplier) throws IOException { NioSocketChannel acceptedChannel; while ((acceptedChannel = channelFactory.acceptNioChannel(this, selectorSupplier)) != null) { acceptor.accept(acceptedChannel); @@ -57,7 +57,7 @@ public class ServerChannelContext extends ChannelContext { } @Override - public AcceptingSelector getSelector() { + public NioSelector getSelector() { return selector; } diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/SocketChannelContext.java b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/SocketChannelContext.java index 6a769b4d173..53be0e7f89f 100644 --- a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/SocketChannelContext.java +++ b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/SocketChannelContext.java @@ -47,14 +47,14 @@ public abstract class SocketChannelContext extends ChannelContext protected final InboundChannelBuffer channelBuffer; protected final AtomicBoolean isClosing = new AtomicBoolean(false); private final ReadWriteHandler readWriteHandler; - private final SocketSelector selector; + private final NioSelector selector; private final CompletableContext connectContext = new CompletableContext<>(); private final LinkedList pendingFlushes = new LinkedList<>(); private boolean ioException; private boolean peerClosed; private Exception connectException; - protected SocketChannelContext(NioSocketChannel channel, SocketSelector selector, Consumer exceptionHandler, + protected SocketChannelContext(NioSocketChannel channel, NioSelector selector, Consumer exceptionHandler, ReadWriteHandler readWriteHandler, InboundChannelBuffer channelBuffer) { super(channel.getRawChannel(), exceptionHandler); this.selector = selector; @@ -64,7 +64,7 @@ public abstract class SocketChannelContext extends ChannelContext } @Override - public SocketSelector getSelector() { + public NioSelector getSelector() { return selector; } @@ -129,7 +129,7 @@ public abstract class SocketChannelContext extends ChannelContext WriteOperation writeOperation = readWriteHandler.createWriteOperation(this, message, listener); - SocketSelector selector = getSelector(); + NioSelector selector = getSelector(); if (selector.isOnCurrentThread() == false) { selector.queueWrite(writeOperation); return; diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/SocketEventHandler.java b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/SocketEventHandler.java deleted file mode 100644 index b486243f219..00000000000 --- a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/SocketEventHandler.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.nio; - -import java.io.IOException; -import java.nio.channels.SelectionKey; -import java.util.function.Consumer; - -/** - * Event handler designed to handle events from non-server sockets - */ -public class SocketEventHandler extends EventHandler { - - public SocketEventHandler(Consumer exceptionHandler) { - super(exceptionHandler); - } - - /** - * This method is called when a NioSocketChannel is successfully registered. It should only be called - * once per channel. - * - * @param context that was registered - */ - protected void handleRegistration(SocketChannelContext context) throws IOException { - context.register(); - SelectionKey selectionKey = context.getSelectionKey(); - selectionKey.attach(context); - if (context.readyForFlush()) { - SelectionKeyUtils.setConnectReadAndWriteInterested(selectionKey); - } else { - SelectionKeyUtils.setConnectAndReadInterested(selectionKey); - } - } - - /** - * This method is called when an attempt to register a channel throws an exception. - * - * @param context that was registered - * @param exception that occurred - */ - protected void registrationException(SocketChannelContext context, Exception exception) { - context.handleException(exception); - } - - /** - * This method is called when a NioSocketChannel has just been accepted or if it has receive an - * OP_CONNECT event. - * - * @param context that was registered - */ - protected void handleConnect(SocketChannelContext context) throws IOException { - if (context.connect()) { - SelectionKeyUtils.removeConnectInterested(context.getSelectionKey()); - } - } - - /** - * This method is called when an attempt to connect a channel throws an exception. - * - * @param context that was connecting - * @param exception that occurred - */ - protected void connectException(SocketChannelContext context, Exception exception) { - context.handleException(exception); - } - - /** - * This method is called when a channel signals it is ready for be read. All of the read logic should - * occur in this call. - * - * @param context that can be read - */ - protected void handleRead(SocketChannelContext context) throws IOException { - context.read(); - } - - /** - * This method is called when an attempt to read from a channel throws an exception. - * - * @param context that was being read - * @param exception that occurred - */ - protected void readException(SocketChannelContext context, Exception exception) { - context.handleException(exception); - } - - /** - * This method is called when a channel signals it is ready to receive writes. All of the write logic - * should occur in this call. - * - * @param context that can be written to - */ - protected void handleWrite(SocketChannelContext context) throws IOException { - context.flushChannel(); - } - - /** - * This method is called when an attempt to write to a channel throws an exception. - * - * @param context that was being written to - * @param exception that occurred - */ - protected void writeException(SocketChannelContext context, Exception exception) { - context.handleException(exception); - } - - /** - * This method is called when a listener attached to a channel operation throws an exception. - * - * @param exception that occurred - */ - protected void listenerException(Exception exception) { - exceptionHandler.accept(exception); - } - - /** - * @param context that was handled - */ - protected void postHandling(SocketChannelContext context) { - if (context.selectorShouldClose()) { - handleClose(context); - } else { - SelectionKey selectionKey = context.getSelectionKey(); - boolean currentlyWriteInterested = SelectionKeyUtils.isWriteInterested(selectionKey); - boolean pendingWrites = context.readyForFlush(); - if (currentlyWriteInterested == false && pendingWrites) { - SelectionKeyUtils.setWriteInterested(selectionKey); - } else if (currentlyWriteInterested && pendingWrites == false) { - SelectionKeyUtils.removeWriteInterested(selectionKey); - } - } - } -} diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/SocketSelector.java b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/SocketSelector.java deleted file mode 100644 index 30ef7b317a3..00000000000 --- a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/SocketSelector.java +++ /dev/null @@ -1,224 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.nio; - -import java.io.IOException; -import java.nio.channels.ClosedChannelException; -import java.nio.channels.ClosedSelectorException; -import java.nio.channels.SelectionKey; -import java.nio.channels.Selector; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.function.BiConsumer; - -/** - * Selector implementation that handles {@link NioSocketChannel}. It's main piece of functionality is - * handling connect, read, and write events. - */ -public class SocketSelector extends ESSelector { - - private final ConcurrentLinkedQueue newChannels = new ConcurrentLinkedQueue<>(); - private final ConcurrentLinkedQueue queuedWrites = new ConcurrentLinkedQueue<>(); - private final SocketEventHandler eventHandler; - - public SocketSelector(SocketEventHandler eventHandler) throws IOException { - super(eventHandler); - this.eventHandler = eventHandler; - } - - public SocketSelector(SocketEventHandler eventHandler, Selector selector) throws IOException { - super(eventHandler, selector); - this.eventHandler = eventHandler; - } - - @Override - void processKey(SelectionKey selectionKey) { - SocketChannelContext channelContext = (SocketChannelContext) selectionKey.attachment(); - int ops = selectionKey.readyOps(); - if ((ops & SelectionKey.OP_CONNECT) != 0) { - attemptConnect(channelContext, true); - } - - if (channelContext.isConnectComplete()) { - if ((ops & SelectionKey.OP_WRITE) != 0) { - handleWrite(channelContext); - } - - if ((ops & SelectionKey.OP_READ) != 0) { - handleRead(channelContext); - } - } - - eventHandler.postHandling(channelContext); - } - - @Override - void preSelect() { - setUpNewChannels(); - handleQueuedWrites(); - } - - @Override - void cleanup() { - WriteOperation op; - while ((op = queuedWrites.poll()) != null) { - executeFailedListener(op.getListener(), new ClosedSelectorException()); - } - channelsToClose.addAll(newChannels); - } - - /** - * Schedules a NioSocketChannel to be registered by this selector. The channel will by queued and eventually - * registered next time through the event loop. - * @param nioSocketChannel the channel to register - */ - public void scheduleForRegistration(NioSocketChannel nioSocketChannel) { - SocketChannelContext channelContext = nioSocketChannel.getContext(); - newChannels.offer(channelContext); - ensureSelectorOpenForEnqueuing(newChannels, channelContext); - wakeup(); - } - - - /** - * Queues a write operation to be handled by the event loop. This can be called by any thread and is the - * api available for non-selector threads to schedule writes. - * - * @param writeOperation to be queued - */ - public void queueWrite(WriteOperation writeOperation) { - queuedWrites.offer(writeOperation); - if (isOpen() == false) { - boolean wasRemoved = queuedWrites.remove(writeOperation); - if (wasRemoved) { - writeOperation.getListener().accept(null, new ClosedSelectorException()); - } - } else { - wakeup(); - } - } - - /** - * Queues a write operation directly in a channel's buffer. Channel buffers are only safe to be accessed - * by the selector thread. As a result, this method should only be called by the selector thread. - * - * @param writeOperation to be queued in a channel's buffer - */ - public void queueWriteInChannelBuffer(WriteOperation writeOperation) { - assertOnSelectorThread(); - SocketChannelContext context = writeOperation.getChannel(); - try { - SelectionKeyUtils.setWriteInterested(context.getSelectionKey()); - context.queueWriteOperation(writeOperation); - } catch (Exception e) { - executeFailedListener(writeOperation.getListener(), e); - } - } - - /** - * Executes a success listener with consistent exception handling. This can only be called from current - * selector thread. - * - * @param listener to be executed - * @param value to provide to listener - */ - public void executeListener(BiConsumer listener, V value) { - assertOnSelectorThread(); - try { - listener.accept(value, null); - } catch (Exception e) { - eventHandler.listenerException(e); - } - } - - /** - * Executes a failed listener with consistent exception handling. This can only be called from current - * selector thread. - * - * @param listener to be executed - * @param exception to provide to listener - */ - public void executeFailedListener(BiConsumer listener, Exception exception) { - assertOnSelectorThread(); - try { - listener.accept(null, exception); - } catch (Exception e) { - eventHandler.listenerException(e); - } - } - - private void handleWrite(SocketChannelContext context) { - try { - eventHandler.handleWrite(context); - } catch (Exception e) { - eventHandler.writeException(context, e); - } - } - - private void handleRead(SocketChannelContext context) { - try { - eventHandler.handleRead(context); - } catch (Exception e) { - eventHandler.readException(context, e); - } - } - - private void handleQueuedWrites() { - WriteOperation writeOperation; - while ((writeOperation = queuedWrites.poll()) != null) { - if (writeOperation.getChannel().isOpen()) { - queueWriteInChannelBuffer(writeOperation); - } else { - executeFailedListener(writeOperation.getListener(), new ClosedChannelException()); - } - } - } - - private void setUpNewChannels() { - SocketChannelContext channelContext; - while ((channelContext = this.newChannels.poll()) != null) { - setupChannel(channelContext); - } - } - - private void setupChannel(SocketChannelContext context) { - assert context.getSelector() == this : "The channel must be registered with the selector with which it was created"; - try { - if (context.isOpen()) { - eventHandler.handleRegistration(context); - attemptConnect(context, false); - } else { - eventHandler.registrationException(context, new ClosedChannelException()); - } - } catch (Exception e) { - eventHandler.registrationException(context, e); - } - } - - private void attemptConnect(SocketChannelContext context, boolean connectEvent) { - try { - eventHandler.handleConnect(context); - if (connectEvent && context.isConnectComplete() == false) { - eventHandler.connectException(context, new IOException("Received OP_CONNECT but connect failed")); - } - } catch (Exception e) { - eventHandler.connectException(context, e); - } - } -} diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/AcceptingSelectorTests.java b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/AcceptingSelectorTests.java deleted file mode 100644 index 7536ad9d1e1..00000000000 --- a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/AcceptingSelectorTests.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.nio; - -import org.elasticsearch.test.ESTestCase; -import org.junit.Before; - -import java.io.IOException; -import java.nio.channels.ClosedChannelException; -import java.nio.channels.SelectionKey; -import java.nio.channels.Selector; -import java.security.PrivilegedActionException; -import java.util.Collections; -import java.util.HashSet; - -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.same; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class AcceptingSelectorTests extends ESTestCase { - - private AcceptingSelector selector; - private NioServerSocketChannel serverChannel; - private AcceptorEventHandler eventHandler; - private TestSelectionKey selectionKey; - private Selector rawSelector; - private ServerChannelContext context; - - @Before - public void setUp() throws Exception { - super.setUp(); - - eventHandler = mock(AcceptorEventHandler.class); - serverChannel = mock(NioServerSocketChannel.class); - - rawSelector = mock(Selector.class); - selector = new AcceptingSelector(eventHandler, rawSelector); - this.selector.setThread(); - - context = mock(ServerChannelContext.class); - selectionKey = new TestSelectionKey(0); - selectionKey.attach(context); - when(context.getSelectionKey()).thenReturn(selectionKey); - when(context.getSelector()).thenReturn(selector); - when(context.isOpen()).thenReturn(true); - when(serverChannel.getContext()).thenReturn(context); - } - - public void testRegisteredChannel() throws IOException { - selector.scheduleForRegistration(serverChannel); - - selector.preSelect(); - - verify(eventHandler).handleRegistration(context); - } - - public void testClosedChannelWillNotBeRegistered() { - when(context.isOpen()).thenReturn(false); - selector.scheduleForRegistration(serverChannel); - - selector.preSelect(); - - verify(eventHandler).registrationException(same(context), any(ClosedChannelException.class)); - } - - public void testRegisterChannelFailsDueToException() throws Exception { - selector.scheduleForRegistration(serverChannel); - - ClosedChannelException closedChannelException = new ClosedChannelException(); - doThrow(closedChannelException).when(eventHandler).handleRegistration(context); - - selector.preSelect(); - - verify(eventHandler).registrationException(context, closedChannelException); - } - - public void testAcceptEvent() throws IOException { - selectionKey.setReadyOps(SelectionKey.OP_ACCEPT); - - selector.processKey(selectionKey); - - verify(eventHandler).acceptChannel(context); - } - - public void testAcceptException() throws IOException { - selectionKey.setReadyOps(SelectionKey.OP_ACCEPT); - IOException ioException = new IOException(); - - doThrow(ioException).when(eventHandler).acceptChannel(context); - - selector.processKey(selectionKey); - - verify(eventHandler).acceptException(context, ioException); - } - - public void testCleanup() throws IOException { - selector.scheduleForRegistration(serverChannel); - - selector.preSelect(); - - TestSelectionKey key = new TestSelectionKey(0); - key.attach(context); - when(rawSelector.keys()).thenReturn(new HashSet<>(Collections.singletonList(key))); - - selector.cleanupAndCloseChannels(); - - verify(eventHandler).handleClose(context); - } -} diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/AcceptorEventHandlerTests.java b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/AcceptorEventHandlerTests.java deleted file mode 100644 index a162a8e234c..00000000000 --- a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/AcceptorEventHandlerTests.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.nio; - -import org.elasticsearch.test.ESTestCase; -import org.junit.Before; - -import java.io.IOException; -import java.nio.channels.SelectionKey; -import java.nio.channels.ServerSocketChannel; -import java.nio.channels.SocketChannel; -import java.util.ArrayList; -import java.util.function.Consumer; - -import static org.mockito.Matchers.same; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class AcceptorEventHandlerTests extends ESTestCase { - - private AcceptorEventHandler handler; - private ChannelFactory channelFactory; - private NioServerSocketChannel channel; - private DoNotRegisterContext context; - private RoundRobinSupplier selectorSupplier; - - @Before - @SuppressWarnings("unchecked") - public void setUpHandler() throws IOException { - channelFactory = mock(ChannelFactory.class); - ArrayList selectors = new ArrayList<>(); - selectors.add(mock(SocketSelector.class)); - selectorSupplier = new RoundRobinSupplier<>(selectors.toArray(new SocketSelector[selectors.size()])); - handler = new AcceptorEventHandler(selectorSupplier, mock(Consumer.class)); - - channel = new NioServerSocketChannel(mock(ServerSocketChannel.class)); - context = new DoNotRegisterContext(channel, mock(AcceptingSelector.class), mock(Consumer.class)); - channel.setContext(context); - } - - public void testHandleRegisterSetsOP_ACCEPTInterest() throws IOException { - assertNull(context.getSelectionKey()); - - handler.handleRegistration(context); - - assertEquals(SelectionKey.OP_ACCEPT, channel.getContext().getSelectionKey().interestOps()); - } - - public void testRegisterAddsAttachment() throws IOException { - assertNull(context.getSelectionKey()); - - handler.handleRegistration(context); - - assertEquals(context, context.getSelectionKey().attachment()); - } - - public void testHandleAcceptCallsChannelFactory() throws IOException { - NioSocketChannel childChannel = new NioSocketChannel(mock(SocketChannel.class)); - NioSocketChannel nullChannel = null; - when(channelFactory.acceptNioChannel(same(context), same(selectorSupplier))).thenReturn(childChannel, nullChannel); - - handler.acceptChannel(context); - - verify(channelFactory, times(2)).acceptNioChannel(same(context), same(selectorSupplier)); - } - - @SuppressWarnings("unchecked") - public void testHandleAcceptCallsServerAcceptCallback() throws IOException { - NioSocketChannel childChannel = new NioSocketChannel(mock(SocketChannel.class)); - SocketChannelContext childContext = mock(SocketChannelContext.class); - childChannel.setContext(childContext); - ServerChannelContext serverChannelContext = mock(ServerChannelContext.class); - channel = new NioServerSocketChannel(mock(ServerSocketChannel.class)); - channel.setContext(serverChannelContext); - when(serverChannelContext.getChannel()).thenReturn(channel); - when(channelFactory.acceptNioChannel(same(context), same(selectorSupplier))).thenReturn(childChannel); - - handler.acceptChannel(serverChannelContext); - - verify(serverChannelContext).acceptChannels(selectorSupplier); - } - - public void testAcceptExceptionCallsExceptionHandler() throws IOException { - ServerChannelContext serverChannelContext = mock(ServerChannelContext.class); - IOException exception = new IOException(); - handler.acceptException(serverChannelContext, exception); - - verify(serverChannelContext).handleException(exception); - } - - private class DoNotRegisterContext extends ServerChannelContext { - - - @SuppressWarnings("unchecked") - DoNotRegisterContext(NioServerSocketChannel channel, AcceptingSelector selector, Consumer acceptor) { - super(channel, channelFactory, selector, acceptor, mock(Consumer.class)); - } - - @Override - public void register() { - setSelectionKey(new TestSelectionKey(0)); - } - } -} diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/BytesChannelContextTests.java b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/BytesChannelContextTests.java index e5c236e48a8..2ab20522db6 100644 --- a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/BytesChannelContextTests.java +++ b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/BytesChannelContextTests.java @@ -44,7 +44,7 @@ public class BytesChannelContextTests extends ESTestCase { private SocketChannel rawChannel; private BytesChannelContext context; private InboundChannelBuffer channelBuffer; - private SocketSelector selector; + private NioSelector selector; private BiConsumer listener; private int messageLength; @@ -54,7 +54,7 @@ public class BytesChannelContextTests extends ESTestCase { readConsumer = mock(CheckedFunction.class); messageLength = randomInt(96) + 20; - selector = mock(SocketSelector.class); + selector = mock(NioSelector.class); listener = mock(BiConsumer.class); channel = mock(NioSocketChannel.class); rawChannel = mock(SocketChannel.class); diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/ChannelContextTests.java b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/ChannelContextTests.java index 586dae83d08..13372055668 100644 --- a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/ChannelContextTests.java +++ b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/ChannelContextTests.java @@ -115,7 +115,7 @@ public class ChannelContextTests extends ESTestCase { } @Override - public ESSelector getSelector() { + public NioSelector getSelector() { throw new UnsupportedOperationException("not implemented"); } diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/ChannelFactoryTests.java b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/ChannelFactoryTests.java index 858f547f8a6..8ff0cfcd0c8 100644 --- a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/ChannelFactoryTests.java +++ b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/ChannelFactoryTests.java @@ -43,18 +43,18 @@ public class ChannelFactoryTests extends ESTestCase { private ChannelFactory.RawChannelFactory rawChannelFactory; private SocketChannel rawChannel; private ServerSocketChannel rawServerChannel; - private SocketSelector socketSelector; - private Supplier socketSelectorSupplier; - private Supplier acceptingSelectorSupplier; - private AcceptingSelector acceptingSelector; + private NioSelector socketSelector; + private Supplier socketSelectorSupplier; + private Supplier acceptingSelectorSupplier; + private NioSelector acceptingSelector; @Before @SuppressWarnings("unchecked") public void setupFactory() throws IOException { rawChannelFactory = mock(ChannelFactory.RawChannelFactory.class); channelFactory = new TestChannelFactory(rawChannelFactory); - socketSelector = mock(SocketSelector.class); - acceptingSelector = mock(AcceptingSelector.class); + socketSelector = mock(NioSelector.class); + acceptingSelector = mock(NioSelector.class); socketSelectorSupplier = mock(Supplier.class); acceptingSelectorSupplier = mock(Supplier.class); rawChannel = SocketChannel.open(); @@ -139,14 +139,14 @@ public class ChannelFactoryTests extends ESTestCase { @SuppressWarnings("unchecked") @Override - public NioSocketChannel createChannel(SocketSelector selector, SocketChannel channel) throws IOException { + public NioSocketChannel createChannel(NioSelector selector, SocketChannel channel) throws IOException { NioSocketChannel nioSocketChannel = new NioSocketChannel(channel); nioSocketChannel.setContext(mock(SocketChannelContext.class)); return nioSocketChannel; } @Override - public NioServerSocketChannel createServerChannel(AcceptingSelector selector, ServerSocketChannel channel) throws IOException { + public NioServerSocketChannel createServerChannel(NioSelector selector, ServerSocketChannel channel) throws IOException { return new NioServerSocketChannel(channel); } } diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/ESSelectorTests.java b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/ESSelectorTests.java deleted file mode 100644 index 05b84345f45..00000000000 --- a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/ESSelectorTests.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.nio; - -import org.elasticsearch.test.ESTestCase; -import org.junit.Before; - -import java.io.IOException; -import java.nio.channels.CancelledKeyException; -import java.nio.channels.ClosedSelectorException; -import java.nio.channels.SelectionKey; -import java.nio.channels.Selector; - -import static org.mockito.Matchers.anyInt; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ESSelectorTests extends ESTestCase { - - private ESSelector selector; - private EventHandler handler; - private Selector rawSelector; - - @Before - public void setUp() throws Exception { - super.setUp(); - handler = mock(EventHandler.class); - rawSelector = mock(Selector.class); - selector = new TestSelector(handler, rawSelector); - } - - @SuppressWarnings({"unchecked", "rawtypes"}) - public void testQueueChannelForClosed() throws IOException { - NioChannel channel = mock(NioChannel.class); - ChannelContext context = mock(ChannelContext.class); - when(channel.getContext()).thenReturn(context); - when(context.getSelector()).thenReturn(selector); - - selector.queueChannelClose(channel); - - selector.singleLoop(); - - verify(handler).handleClose(context); - } - - public void testSelectorClosedExceptionIsNotCaughtWhileRunning() throws IOException { - boolean closedSelectorExceptionCaught = false; - when(rawSelector.select(anyInt())).thenThrow(new ClosedSelectorException()); - try { - this.selector.singleLoop(); - } catch (ClosedSelectorException e) { - closedSelectorExceptionCaught = true; - } - - assertTrue(closedSelectorExceptionCaught); - } - - public void testIOExceptionWhileSelect() throws IOException { - IOException ioException = new IOException(); - - when(rawSelector.select(anyInt())).thenThrow(ioException); - - this.selector.singleLoop(); - - verify(handler).selectorException(ioException); - } - - public void testSelectorClosedIfOpenAndEventLoopNotRunning() throws IOException { - when(rawSelector.isOpen()).thenReturn(true); - selector.close(); - verify(rawSelector).close(); - } - - private static class TestSelector extends ESSelector { - - TestSelector(EventHandler eventHandler, Selector selector) throws IOException { - super(eventHandler, selector); - } - - @Override - void processKey(SelectionKey selectionKey) throws CancelledKeyException { - - } - - @Override - void preSelect() { - - } - - @Override - void cleanup() { - - } - } - -} diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/SocketEventHandlerTests.java b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/EventHandlerTests.java similarity index 66% rename from libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/SocketEventHandlerTests.java rename to libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/EventHandlerTests.java index c85d9c0c5a8..a9e1836199e 100644 --- a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/SocketEventHandlerTests.java +++ b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/EventHandlerTests.java @@ -25,25 +25,29 @@ import org.junit.Before; import java.io.IOException; import java.nio.channels.CancelledKeyException; import java.nio.channels.SelectionKey; +import java.nio.channels.ServerSocketChannel; import java.nio.channels.SocketChannel; +import java.util.ArrayList; import java.util.Collections; import java.util.function.Consumer; +import static org.mockito.Matchers.same; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -public class SocketEventHandlerTests extends ESTestCase { +public class EventHandlerTests extends ESTestCase { private Consumer channelExceptionHandler; private Consumer genericExceptionHandler; private ReadWriteHandler readWriteHandler; - private SocketEventHandler handler; - private NioSocketChannel channel; - private SocketChannel rawChannel; - private DoNotRegisterContext context; + private EventHandler handler; + private DoNotRegisterSocketContext context; + private DoNotRegisterServerContext serverContext; + private ChannelFactory channelFactory; + private RoundRobinSupplier selectorSupplier; @Before @SuppressWarnings("unchecked") @@ -51,16 +55,24 @@ public class SocketEventHandlerTests extends ESTestCase { channelExceptionHandler = mock(Consumer.class); genericExceptionHandler = mock(Consumer.class); readWriteHandler = mock(ReadWriteHandler.class); - SocketSelector selector = mock(SocketSelector.class); - handler = new SocketEventHandler(genericExceptionHandler); - rawChannel = mock(SocketChannel.class); - channel = new NioSocketChannel(rawChannel); - when(rawChannel.finishConnect()).thenReturn(true); + channelFactory = mock(ChannelFactory.class); + NioSelector selector = mock(NioSelector.class); + ArrayList selectors = new ArrayList<>(); + selectors.add(selector); + selectorSupplier = new RoundRobinSupplier<>(selectors.toArray(new NioSelector[0])); + handler = new EventHandler(genericExceptionHandler, selectorSupplier); - context = new DoNotRegisterContext(channel, selector, channelExceptionHandler, new TestSelectionKey(0), readWriteHandler); + SocketChannel rawChannel = mock(SocketChannel.class); + when(rawChannel.finishConnect()).thenReturn(true); + NioSocketChannel channel = new NioSocketChannel(rawChannel); + context = new DoNotRegisterSocketContext(channel, selector, channelExceptionHandler, readWriteHandler); channel.setContext(context); handler.handleRegistration(context); + NioServerSocketChannel serverChannel = new NioServerSocketChannel(mock(ServerSocketChannel.class)); + serverContext = new DoNotRegisterServerContext(serverChannel, mock(NioSelector.class), mock(Consumer.class)); + serverChannel.setContext(serverContext); + when(selector.isOnCurrentThread()).thenReturn(true); } @@ -73,7 +85,7 @@ public class SocketEventHandlerTests extends ESTestCase { verify(channelContext).register(); } - public void testRegisterAddsOP_CONNECTAndOP_READInterest() throws IOException { + public void testRegisterNonServerAddsOP_CONNECTAndOP_READInterest() throws IOException { SocketChannelContext context = mock(SocketChannelContext.class); when(context.getSelectionKey()).thenReturn(new TestSelectionKey(0)); handler.handleRegistration(context); @@ -81,16 +93,55 @@ public class SocketEventHandlerTests extends ESTestCase { } public void testRegisterAddsAttachment() throws IOException { - SocketChannelContext context = mock(SocketChannelContext.class); + ChannelContext context = randomBoolean() ? mock(SocketChannelContext.class) : mock(ServerChannelContext.class); when(context.getSelectionKey()).thenReturn(new TestSelectionKey(0)); handler.handleRegistration(context); assertEquals(context, context.getSelectionKey().attachment()); } + public void testHandleServerRegisterSetsOP_ACCEPTInterest() throws IOException { + assertNull(serverContext.getSelectionKey()); + + handler.handleRegistration(serverContext); + + assertEquals(SelectionKey.OP_ACCEPT, serverContext.getSelectionKey().interestOps()); + } + + public void testHandleAcceptCallsChannelFactory() throws IOException { + NioSocketChannel childChannel = new NioSocketChannel(mock(SocketChannel.class)); + NioSocketChannel nullChannel = null; + when(channelFactory.acceptNioChannel(same(serverContext), same(selectorSupplier))).thenReturn(childChannel, nullChannel); + + handler.acceptChannel(serverContext); + + verify(channelFactory, times(2)).acceptNioChannel(same(serverContext), same(selectorSupplier)); + } + + @SuppressWarnings("unchecked") + public void testHandleAcceptCallsServerAcceptCallback() throws IOException { + NioSocketChannel childChannel = new NioSocketChannel(mock(SocketChannel.class)); + SocketChannelContext childContext = mock(SocketChannelContext.class); + childChannel.setContext(childContext); + ServerChannelContext serverChannelContext = mock(ServerChannelContext.class); + when(channelFactory.acceptNioChannel(same(serverContext), same(selectorSupplier))).thenReturn(childChannel); + + handler.acceptChannel(serverChannelContext); + + verify(serverChannelContext).acceptChannels(selectorSupplier); + } + + public void testAcceptExceptionCallsExceptionHandler() throws IOException { + ServerChannelContext serverChannelContext = mock(ServerChannelContext.class); + IOException exception = new IOException(); + handler.acceptException(serverChannelContext, exception); + + verify(serverChannelContext).handleException(exception); + } + public void testRegisterWithPendingWritesAddsOP_CONNECTAndOP_READAndOP_WRITEInterest() throws IOException { FlushReadyWrite flushReadyWrite = mock(FlushReadyWrite.class); when(readWriteHandler.writeToBytes(flushReadyWrite)).thenReturn(Collections.singletonList(flushReadyWrite)); - channel.getContext().queueWriteOperation(flushReadyWrite); + context.queueWriteOperation(flushReadyWrite); handler.handleRegistration(context); assertEquals(SelectionKey.OP_READ | SelectionKey.OP_CONNECT | SelectionKey.OP_WRITE, context.getSelectionKey().interestOps()); } @@ -120,11 +171,7 @@ public class SocketEventHandlerTests extends ESTestCase { } public void testHandleReadDelegatesToContext() throws IOException { - NioSocketChannel channel = new NioSocketChannel(rawChannel); SocketChannelContext context = mock(SocketChannelContext.class); - channel.setContext(context); - - when(context.read()).thenReturn(1); handler.handleRead(context); verify(context).read(); } @@ -200,19 +247,31 @@ public class SocketEventHandlerTests extends ESTestCase { verify(genericExceptionHandler).accept(listenerException); } - private class DoNotRegisterContext extends BytesChannelContext { + private class DoNotRegisterSocketContext extends BytesChannelContext { - private final TestSelectionKey selectionKey; - DoNotRegisterContext(NioSocketChannel channel, SocketSelector selector, Consumer exceptionHandler, - TestSelectionKey selectionKey, ReadWriteHandler handler) { + DoNotRegisterSocketContext(NioSocketChannel channel, NioSelector selector, Consumer exceptionHandler, + ReadWriteHandler handler) { super(channel, selector, exceptionHandler, handler, InboundChannelBuffer.allocatingInstance()); - this.selectionKey = selectionKey; } @Override public void register() { - setSelectionKey(selectionKey); + setSelectionKey(new TestSelectionKey(0)); + } + } + + private class DoNotRegisterServerContext extends ServerChannelContext { + + + @SuppressWarnings("unchecked") + DoNotRegisterServerContext(NioServerSocketChannel channel, NioSelector selector, Consumer acceptor) { + super(channel, channelFactory, selector, acceptor, mock(Consumer.class)); + } + + @Override + public void register() { + setSelectionKey(new TestSelectionKey(0)); } } } diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/NioGroupTests.java b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/NioGroupTests.java index 13ce2c13654..027f1255a59 100644 --- a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/NioGroupTests.java +++ b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/NioGroupTests.java @@ -38,9 +38,8 @@ public class NioGroupTests extends ESTestCase { @SuppressWarnings("unchecked") public void setUp() throws Exception { super.setUp(); - nioGroup = new NioGroup(daemonThreadFactory(Settings.EMPTY, "acceptor"), 1, - (s) -> new AcceptorEventHandler(s, mock(Consumer.class)), daemonThreadFactory(Settings.EMPTY, "selector"), 1, - () -> new SocketEventHandler(mock(Consumer.class))); + nioGroup = new NioGroup(daemonThreadFactory(Settings.EMPTY, "acceptor"), 1, daemonThreadFactory(Settings.EMPTY, "selector"), 1, + (s) -> new EventHandler(mock(Consumer.class), s)); } @Override @@ -76,8 +75,8 @@ public class NioGroupTests extends ESTestCase { public void testExceptionAtStartIsHandled() throws IOException { RuntimeException ex = new RuntimeException(); CheckedRunnable ctor = () -> new NioGroup(r -> {throw ex;}, 1, - (s) -> new AcceptorEventHandler(s, mock(Consumer.class)), daemonThreadFactory(Settings.EMPTY, "selector"), - 1, () -> new SocketEventHandler(mock(Consumer.class))); + daemonThreadFactory(Settings.EMPTY, "selector"), + 1, (s) -> new EventHandler(mock(Consumer.class), s)); RuntimeException runtimeException = expectThrows(RuntimeException.class, ctor::run); assertSame(ex, runtimeException); // ctor starts threads. So we are testing that a failure to construct will stop threads. Our thread diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/SocketSelectorTests.java b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/NioSelectorTests.java similarity index 61% rename from libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/SocketSelectorTests.java rename to libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/NioSelectorTests.java index f8775d03b42..dd3fea8bf50 100644 --- a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/SocketSelectorTests.java +++ b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/NioSelectorTests.java @@ -43,13 +43,15 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -public class SocketSelectorTests extends ESTestCase { +public class NioSelectorTests extends ESTestCase { - private SocketSelector socketSelector; - private SocketEventHandler eventHandler; + private NioSelector selector; + private EventHandler eventHandler; private NioSocketChannel channel; + private NioServerSocketChannel serverChannel; private TestSelectionKey selectionKey; private SocketChannelContext channelContext; + private ServerChannelContext serverChannelContext; private BiConsumer listener; private ByteBuffer[] buffers = {ByteBuffer.allocate(1)}; private Selector rawSelector; @@ -59,75 +61,172 @@ public class SocketSelectorTests extends ESTestCase { public void setUp() throws Exception { super.setUp(); rawSelector = mock(Selector.class); - eventHandler = mock(SocketEventHandler.class); + eventHandler = mock(EventHandler.class); channel = mock(NioSocketChannel.class); channelContext = mock(SocketChannelContext.class); + serverChannel = mock(NioServerSocketChannel.class); + serverChannelContext = mock(ServerChannelContext.class); listener = mock(BiConsumer.class); selectionKey = new TestSelectionKey(0); - selectionKey.attach(channelContext); - this.socketSelector = new SocketSelector(eventHandler, rawSelector); - this.socketSelector.setThread(); + this.selector = new NioSelector(eventHandler, rawSelector); + this.selector.setThread(); when(channel.getContext()).thenReturn(channelContext); when(channelContext.isOpen()).thenReturn(true); - when(channelContext.getSelector()).thenReturn(socketSelector); + when(channelContext.getSelector()).thenReturn(selector); when(channelContext.getSelectionKey()).thenReturn(selectionKey); when(channelContext.isConnectComplete()).thenReturn(true); + + when(serverChannel.getContext()).thenReturn(serverChannelContext); + when(serverChannelContext.isOpen()).thenReturn(true); + when(serverChannelContext.getSelector()).thenReturn(selector); + when(serverChannelContext.getSelectionKey()).thenReturn(selectionKey); } - public void testRegisterChannel() throws Exception { - socketSelector.scheduleForRegistration(channel); + @SuppressWarnings({"unchecked", "rawtypes"}) + public void testQueueChannelForClosed() throws IOException { + NioChannel channel = mock(NioChannel.class); + ChannelContext context = mock(ChannelContext.class); + when(channel.getContext()).thenReturn(context); + when(context.getSelector()).thenReturn(selector); - socketSelector.preSelect(); + selector.queueChannelClose(channel); - verify(eventHandler).handleRegistration(channelContext); + selector.singleLoop(); + + verify(eventHandler).handleClose(context); } - public void testClosedChannelWillNotBeRegistered() throws Exception { + public void testSelectorClosedExceptionIsNotCaughtWhileRunning() throws IOException { + boolean closedSelectorExceptionCaught = false; + when(rawSelector.select(anyInt())).thenThrow(new ClosedSelectorException()); + try { + this.selector.singleLoop(); + } catch (ClosedSelectorException e) { + closedSelectorExceptionCaught = true; + } + + assertTrue(closedSelectorExceptionCaught); + } + + public void testIOExceptionWhileSelect() throws IOException { + IOException ioException = new IOException(); + + when(rawSelector.select(anyInt())).thenThrow(ioException); + + this.selector.singleLoop(); + + verify(eventHandler).selectorException(ioException); + } + + public void testSelectorClosedIfOpenAndEventLoopNotRunning() throws IOException { + when(rawSelector.isOpen()).thenReturn(true); + selector.close(); + verify(rawSelector).close(); + } + + public void testRegisteredChannel() throws IOException { + selector.scheduleForRegistration(serverChannel); + + selector.preSelect(); + + verify(eventHandler).handleRegistration(serverChannelContext); + } + + public void testClosedServerChannelWillNotBeRegistered() { + when(serverChannelContext.isOpen()).thenReturn(false); + selector.scheduleForRegistration(serverChannel); + + selector.preSelect(); + + verify(eventHandler).registrationException(same(serverChannelContext), any(ClosedChannelException.class)); + } + + public void testRegisterServerChannelFailsDueToException() throws Exception { + selector.scheduleForRegistration(serverChannel); + + ClosedChannelException closedChannelException = new ClosedChannelException(); + doThrow(closedChannelException).when(eventHandler).handleRegistration(serverChannelContext); + + selector.preSelect(); + + verify(eventHandler).registrationException(serverChannelContext, closedChannelException); + } + + public void testClosedSocketChannelWillNotBeRegistered() throws Exception { when(channelContext.isOpen()).thenReturn(false); - socketSelector.scheduleForRegistration(channel); + selector.scheduleForRegistration(channel); - socketSelector.preSelect(); + selector.preSelect(); verify(eventHandler).registrationException(same(channelContext), any(ClosedChannelException.class)); verify(eventHandler, times(0)).handleConnect(channelContext); } - public void testRegisterChannelFailsDueToException() throws Exception { - socketSelector.scheduleForRegistration(channel); + public void testRegisterSocketChannelFailsDueToException() throws Exception { + selector.scheduleForRegistration(channel); ClosedChannelException closedChannelException = new ClosedChannelException(); doThrow(closedChannelException).when(eventHandler).handleRegistration(channelContext); - socketSelector.preSelect(); + selector.preSelect(); verify(eventHandler).registrationException(channelContext, closedChannelException); verify(eventHandler, times(0)).handleConnect(channelContext); } - public void testSuccessfullyRegisterChannelWillAttemptConnect() throws Exception { - socketSelector.scheduleForRegistration(channel); + public void testAcceptEvent() throws IOException { + selectionKey.setReadyOps(SelectionKey.OP_ACCEPT); - socketSelector.preSelect(); + selectionKey.attach(serverChannelContext); + selector.processKey(selectionKey); + + verify(eventHandler).acceptChannel(serverChannelContext); + } + + public void testAcceptException() throws IOException { + selectionKey.setReadyOps(SelectionKey.OP_ACCEPT); + IOException ioException = new IOException(); + + doThrow(ioException).when(eventHandler).acceptChannel(serverChannelContext); + + selectionKey.attach(serverChannelContext); + selector.processKey(selectionKey); + + verify(eventHandler).acceptException(serverChannelContext, ioException); + } + + public void testRegisterChannel() throws Exception { + selector.scheduleForRegistration(channel); + + selector.preSelect(); + + verify(eventHandler).handleRegistration(channelContext); + } + + public void testSuccessfullyRegisterChannelWillAttemptConnect() throws Exception { + selector.scheduleForRegistration(channel); + + selector.preSelect(); verify(eventHandler).handleConnect(channelContext); } public void testQueueWriteWhenNotRunning() throws Exception { - socketSelector.close(); + selector.close(); - socketSelector.queueWrite(new FlushReadyWrite(channelContext, buffers, listener)); + selector.queueWrite(new FlushReadyWrite(channelContext, buffers, listener)); verify(listener).accept(isNull(Void.class), any(ClosedSelectorException.class)); } public void testQueueWriteChannelIsClosed() throws Exception { WriteOperation writeOperation = new FlushReadyWrite(channelContext, buffers, listener); - socketSelector.queueWrite(writeOperation); + selector.queueWrite(writeOperation); when(channelContext.isOpen()).thenReturn(false); - socketSelector.preSelect(); + selector.preSelect(); verify(channelContext, times(0)).queueWriteOperation(writeOperation); verify(listener).accept(isNull(Void.class), any(ClosedChannelException.class)); @@ -138,11 +237,11 @@ public class SocketSelectorTests extends ESTestCase { WriteOperation writeOperation = new FlushReadyWrite(channelContext, buffers, listener); CancelledKeyException cancelledKeyException = new CancelledKeyException(); - socketSelector.queueWrite(writeOperation); + selector.queueWrite(writeOperation); when(channelContext.getSelectionKey()).thenReturn(selectionKey); when(selectionKey.interestOps(anyInt())).thenThrow(cancelledKeyException); - socketSelector.preSelect(); + selector.preSelect(); verify(channelContext, times(0)).queueWriteOperation(writeOperation); verify(listener).accept(null, cancelledKeyException); @@ -150,11 +249,11 @@ public class SocketSelectorTests extends ESTestCase { public void testQueueWriteSuccessful() throws Exception { WriteOperation writeOperation = new FlushReadyWrite(channelContext, buffers, listener); - socketSelector.queueWrite(writeOperation); + selector.queueWrite(writeOperation); assertTrue((selectionKey.interestOps() & SelectionKey.OP_WRITE) == 0); - socketSelector.preSelect(); + selector.preSelect(); verify(channelContext).queueWriteOperation(writeOperation); assertTrue((selectionKey.interestOps() & SelectionKey.OP_WRITE) != 0); @@ -165,7 +264,7 @@ public class SocketSelectorTests extends ESTestCase { assertTrue((selectionKey.interestOps() & SelectionKey.OP_WRITE) == 0); - socketSelector.queueWriteInChannelBuffer(writeOperation); + selector.queueWriteInChannelBuffer(writeOperation); verify(channelContext).queueWriteOperation(writeOperation); assertTrue((selectionKey.interestOps() & SelectionKey.OP_WRITE) != 0); @@ -179,7 +278,7 @@ public class SocketSelectorTests extends ESTestCase { when(channelContext.getSelectionKey()).thenReturn(selectionKey); when(selectionKey.interestOps(anyInt())).thenThrow(cancelledKeyException); - socketSelector.queueWriteInChannelBuffer(writeOperation); + selector.queueWriteInChannelBuffer(writeOperation); verify(channelContext, times(0)).queueWriteOperation(writeOperation); verify(listener).accept(null, cancelledKeyException); @@ -188,7 +287,8 @@ public class SocketSelectorTests extends ESTestCase { public void testConnectEvent() throws Exception { selectionKey.setReadyOps(SelectionKey.OP_CONNECT); - socketSelector.processKey(selectionKey); + selectionKey.attach(channelContext); + selector.processKey(selectionKey); verify(eventHandler).handleConnect(channelContext); } @@ -199,7 +299,8 @@ public class SocketSelectorTests extends ESTestCase { selectionKey.setReadyOps(SelectionKey.OP_CONNECT); doThrow(ioException).when(eventHandler).handleConnect(channelContext); - socketSelector.processKey(selectionKey); + selectionKey.attach(channelContext); + selector.processKey(selectionKey); verify(eventHandler).connectException(channelContext, ioException); } @@ -212,7 +313,8 @@ public class SocketSelectorTests extends ESTestCase { doThrow(ioException).when(eventHandler).handleWrite(channelContext); when(channelContext.isConnectComplete()).thenReturn(false); - socketSelector.processKey(selectionKey); + selectionKey.attach(channelContext); + selector.processKey(selectionKey); verify(eventHandler, times(0)).handleWrite(channelContext); verify(eventHandler, times(0)).handleRead(channelContext); @@ -221,7 +323,8 @@ public class SocketSelectorTests extends ESTestCase { public void testSuccessfulWriteEvent() throws Exception { selectionKey.setReadyOps(SelectionKey.OP_WRITE); - socketSelector.processKey(selectionKey); + selectionKey.attach(channelContext); + selector.processKey(selectionKey); verify(eventHandler).handleWrite(channelContext); } @@ -229,11 +332,13 @@ public class SocketSelectorTests extends ESTestCase { public void testWriteEventWithException() throws Exception { IOException ioException = new IOException(); + selectionKey.attach(channelContext); selectionKey.setReadyOps(SelectionKey.OP_WRITE); doThrow(ioException).when(eventHandler).handleWrite(channelContext); - socketSelector.processKey(selectionKey); + selectionKey.attach(channelContext); + selector.processKey(selectionKey); verify(eventHandler).writeException(channelContext, ioException); } @@ -241,7 +346,8 @@ public class SocketSelectorTests extends ESTestCase { public void testSuccessfulReadEvent() throws Exception { selectionKey.setReadyOps(SelectionKey.OP_READ); - socketSelector.processKey(selectionKey); + selectionKey.attach(channelContext); + selector.processKey(selectionKey); verify(eventHandler).handleRead(channelContext); } @@ -253,7 +359,8 @@ public class SocketSelectorTests extends ESTestCase { doThrow(ioException).when(eventHandler).handleRead(channelContext); - socketSelector.processKey(selectionKey); + selectionKey.attach(channelContext); + selector.processKey(selectionKey); verify(eventHandler).readException(channelContext, ioException); } @@ -261,7 +368,8 @@ public class SocketSelectorTests extends ESTestCase { public void testWillCallPostHandleAfterChannelHandling() throws Exception { selectionKey.setReadyOps(SelectionKey.OP_WRITE | SelectionKey.OP_READ); - socketSelector.processKey(selectionKey); + selectionKey.attach(channelContext); + selector.processKey(selectionKey); verify(eventHandler).handleWrite(channelContext); verify(eventHandler).handleRead(channelContext); @@ -273,18 +381,18 @@ public class SocketSelectorTests extends ESTestCase { SocketChannelContext unregisteredContext = mock(SocketChannelContext.class); when(unregisteredChannel.getContext()).thenReturn(unregisteredContext); - socketSelector.scheduleForRegistration(channel); + selector.scheduleForRegistration(channel); - socketSelector.preSelect(); + selector.preSelect(); - socketSelector.queueWrite(new FlushReadyWrite(channelContext, buffers, listener)); - socketSelector.scheduleForRegistration(unregisteredChannel); + selector.queueWrite(new FlushReadyWrite(channelContext, buffers, listener)); + selector.scheduleForRegistration(unregisteredChannel); TestSelectionKey testSelectionKey = new TestSelectionKey(0); testSelectionKey.attach(channelContext); when(rawSelector.keys()).thenReturn(new HashSet<>(Collections.singletonList(testSelectionKey))); - socketSelector.cleanupAndCloseChannels(); + selector.cleanupAndCloseChannels(); verify(listener).accept(isNull(Void.class), any(ClosedSelectorException.class)); verify(eventHandler).handleClose(channelContext); @@ -295,7 +403,7 @@ public class SocketSelectorTests extends ESTestCase { RuntimeException exception = new RuntimeException(); doThrow(exception).when(listener).accept(null, null); - socketSelector.executeListener(listener, null); + selector.executeListener(listener, null); verify(eventHandler).listenerException(exception); } @@ -305,7 +413,7 @@ public class SocketSelectorTests extends ESTestCase { RuntimeException exception = new RuntimeException(); doThrow(exception).when(listener).accept(null, ioException); - socketSelector.executeFailedListener(listener, ioException); + selector.executeFailedListener(listener, ioException); verify(eventHandler).listenerException(exception); } diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/SocketChannelContextTests.java b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/SocketChannelContextTests.java index f27052ac5d5..fdb4a77b922 100644 --- a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/SocketChannelContextTests.java +++ b/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/SocketChannelContextTests.java @@ -51,7 +51,7 @@ public class SocketChannelContextTests extends ESTestCase { private Consumer exceptionHandler; private NioSocketChannel channel; private BiConsumer listener; - private SocketSelector selector; + private NioSelector selector; private ReadWriteHandler readWriteHandler; @SuppressWarnings("unchecked") @@ -64,7 +64,7 @@ public class SocketChannelContextTests extends ESTestCase { listener = mock(BiConsumer.class); when(channel.getRawChannel()).thenReturn(rawChannel); exceptionHandler = mock(Consumer.class); - selector = mock(SocketSelector.class); + selector = mock(NioSelector.class); readWriteHandler = mock(ReadWriteHandler.class); InboundChannelBuffer channelBuffer = InboundChannelBuffer.allocatingInstance(); context = new TestSocketChannelContext(channel, selector, exceptionHandler, readWriteHandler, channelBuffer); @@ -275,7 +275,7 @@ public class SocketChannelContextTests extends ESTestCase { private static class TestSocketChannelContext extends SocketChannelContext { - private TestSocketChannelContext(NioSocketChannel channel, SocketSelector selector, Consumer exceptionHandler, + private TestSocketChannelContext(NioSocketChannel channel, NioSelector selector, Consumer exceptionHandler, ReadWriteHandler readWriteHandler, InboundChannelBuffer channelBuffer) { super(channel, selector, exceptionHandler, readWriteHandler, channelBuffer); } diff --git a/plugins/transport-nio/src/main/java/org/elasticsearch/http/nio/NioHttpServerTransport.java b/plugins/transport-nio/src/main/java/org/elasticsearch/http/nio/NioHttpServerTransport.java index ce0ed83aad4..495dbf97293 100644 --- a/plugins/transport-nio/src/main/java/org/elasticsearch/http/nio/NioHttpServerTransport.java +++ b/plugins/transport-nio/src/main/java/org/elasticsearch/http/nio/NioHttpServerTransport.java @@ -47,10 +47,9 @@ import org.elasticsearch.http.HttpServerTransport; import org.elasticsearch.http.HttpStats; import org.elasticsearch.http.nio.cors.NioCorsConfig; import org.elasticsearch.http.nio.cors.NioCorsConfigBuilder; -import org.elasticsearch.nio.AcceptingSelector; -import org.elasticsearch.nio.AcceptorEventHandler; import org.elasticsearch.nio.BytesChannelContext; import org.elasticsearch.nio.ChannelFactory; +import org.elasticsearch.nio.EventHandler; import org.elasticsearch.nio.InboundChannelBuffer; import org.elasticsearch.nio.NioChannel; import org.elasticsearch.nio.NioGroup; @@ -58,8 +57,7 @@ import org.elasticsearch.nio.NioServerSocketChannel; import org.elasticsearch.nio.NioSocketChannel; import org.elasticsearch.nio.ServerChannelContext; import org.elasticsearch.nio.SocketChannelContext; -import org.elasticsearch.nio.SocketEventHandler; -import org.elasticsearch.nio.SocketSelector; +import org.elasticsearch.nio.NioSelector; import org.elasticsearch.rest.RestUtils; import org.elasticsearch.threadpool.ThreadPool; @@ -180,9 +178,8 @@ public class NioHttpServerTransport extends AbstractHttpServerTransport { int acceptorCount = NIO_HTTP_ACCEPTOR_COUNT.get(settings); int workerCount = NIO_HTTP_WORKER_COUNT.get(settings); nioGroup = new NioGroup(daemonThreadFactory(this.settings, TRANSPORT_ACCEPTOR_THREAD_NAME_PREFIX), acceptorCount, - (s) -> new AcceptorEventHandler(s, this::nonChannelExceptionCaught), daemonThreadFactory(this.settings, TRANSPORT_WORKER_THREAD_NAME_PREFIX), workerCount, - () -> new SocketEventHandler(this::nonChannelExceptionCaught)); + (s) -> new EventHandler(this::nonChannelExceptionCaught, s)); channelFactory = new HttpChannelFactory(); this.boundAddress = createBoundHttpAddress(); @@ -360,7 +357,7 @@ public class NioHttpServerTransport extends AbstractHttpServerTransport { } @Override - public NioSocketChannel createChannel(SocketSelector selector, SocketChannel channel) throws IOException { + public NioSocketChannel createChannel(NioSelector selector, SocketChannel channel) throws IOException { NioSocketChannel nioChannel = new NioSocketChannel(channel); HttpReadWriteHandler httpReadWritePipeline = new HttpReadWriteHandler(nioChannel,NioHttpServerTransport.this, httpHandlingSettings, xContentRegistry, corsConfig, threadPool.getThreadContext()); @@ -372,7 +369,7 @@ public class NioHttpServerTransport extends AbstractHttpServerTransport { } @Override - public NioServerSocketChannel createServerChannel(AcceptingSelector selector, ServerSocketChannel channel) throws IOException { + public NioServerSocketChannel createServerChannel(NioSelector selector, ServerSocketChannel channel) throws IOException { NioServerSocketChannel nioChannel = new NioServerSocketChannel(channel); Consumer exceptionHandler = (e) -> logger.error(() -> new ParameterizedMessage("exception from server channel caught on transport layer [{}]", channel), e); diff --git a/plugins/transport-nio/src/main/java/org/elasticsearch/transport/nio/NioTransport.java b/plugins/transport-nio/src/main/java/org/elasticsearch/transport/nio/NioTransport.java index 2ef49d77912..b85d707dcd9 100644 --- a/plugins/transport-nio/src/main/java/org/elasticsearch/transport/nio/NioTransport.java +++ b/plugins/transport-nio/src/main/java/org/elasticsearch/transport/nio/NioTransport.java @@ -31,16 +31,14 @@ import org.elasticsearch.common.util.BigArrays; import org.elasticsearch.common.util.PageCacheRecycler; import org.elasticsearch.common.util.concurrent.EsExecutors; import org.elasticsearch.indices.breaker.CircuitBreakerService; -import org.elasticsearch.nio.AcceptingSelector; -import org.elasticsearch.nio.AcceptorEventHandler; import org.elasticsearch.nio.BytesChannelContext; import org.elasticsearch.nio.ChannelFactory; +import org.elasticsearch.nio.EventHandler; import org.elasticsearch.nio.InboundChannelBuffer; import org.elasticsearch.nio.NioGroup; +import org.elasticsearch.nio.NioSelector; import org.elasticsearch.nio.NioSocketChannel; import org.elasticsearch.nio.ServerChannelContext; -import org.elasticsearch.nio.SocketEventHandler; -import org.elasticsearch.nio.SocketSelector; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.TcpChannel; import org.elasticsearch.transport.TcpTransport; @@ -55,23 +53,18 @@ import java.util.concurrent.ConcurrentMap; import java.util.function.Consumer; import java.util.function.Supplier; -import static org.elasticsearch.common.settings.Setting.intSetting; import static org.elasticsearch.common.util.concurrent.ConcurrentCollections.newConcurrentMap; import static org.elasticsearch.common.util.concurrent.EsExecutors.daemonThreadFactory; public class NioTransport extends TcpTransport { private static final String TRANSPORT_WORKER_THREAD_NAME_PREFIX = Transports.NIO_TRANSPORT_WORKER_THREAD_NAME_PREFIX; - private static final String TRANSPORT_ACCEPTOR_THREAD_NAME_PREFIX = Transports.NIO_TRANSPORT_ACCEPTOR_THREAD_NAME_PREFIX; public static final Setting NIO_WORKER_COUNT = new Setting<>("transport.nio.worker_count", (s) -> Integer.toString(EsExecutors.numberOfProcessors(s) * 2), (s) -> Setting.parseInt(s, 1, "transport.nio.worker_count"), Setting.Property.NodeScope); - public static final Setting NIO_ACCEPTOR_COUNT = - intSetting("transport.nio.acceptor_count", 1, 1, Setting.Property.NodeScope); - protected final PageCacheRecycler pageCacheRecycler; private final ConcurrentMap profileToChannelFactory = newConcurrentMap(); private volatile NioGroup nioGroup; @@ -101,20 +94,13 @@ public class NioTransport extends TcpTransport { protected void doStart() { boolean success = false; try { - int acceptorCount = 0; - boolean useNetworkServer = NetworkService.NETWORK_SERVER.get(settings); - if (useNetworkServer) { - acceptorCount = NioTransport.NIO_ACCEPTOR_COUNT.get(settings); - } - nioGroup = new NioGroup(daemonThreadFactory(this.settings, TRANSPORT_ACCEPTOR_THREAD_NAME_PREFIX), acceptorCount, - (s) -> new AcceptorEventHandler(s, this::onNonChannelException), - daemonThreadFactory(this.settings, TRANSPORT_WORKER_THREAD_NAME_PREFIX), NioTransport.NIO_WORKER_COUNT.get(settings), - () -> new SocketEventHandler(this::onNonChannelException)); + nioGroup = new NioGroup(daemonThreadFactory(this.settings, TRANSPORT_WORKER_THREAD_NAME_PREFIX), + NioTransport.NIO_WORKER_COUNT.get(settings), (s) -> new EventHandler(this::onNonChannelException, s)); ProfileSettings clientProfileSettings = new ProfileSettings(settings, "default"); clientChannelFactory = channelFactory(clientProfileSettings, true); - if (useNetworkServer) { + if (NetworkService.NETWORK_SERVER.get(settings)) { // loop through all profiles and start them up, special handling for default one for (ProfileSettings profileSettings : profileSettings) { String profileName = profileSettings.profileName; @@ -178,7 +164,7 @@ public class NioTransport extends TcpTransport { } @Override - public TcpNioSocketChannel createChannel(SocketSelector selector, SocketChannel channel) throws IOException { + public TcpNioSocketChannel createChannel(NioSelector selector, SocketChannel channel) throws IOException { TcpNioSocketChannel nioChannel = new TcpNioSocketChannel(profileName, channel); Supplier pageSupplier = () -> { Recycler.V bytes = pageCacheRecycler.bytePage(false); @@ -193,7 +179,7 @@ public class NioTransport extends TcpTransport { } @Override - public TcpNioServerSocketChannel createServerChannel(AcceptingSelector selector, ServerSocketChannel channel) throws IOException { + public TcpNioServerSocketChannel createServerChannel(NioSelector selector, ServerSocketChannel channel) throws IOException { TcpNioServerSocketChannel nioChannel = new TcpNioServerSocketChannel(profileName, channel); Consumer exceptionHandler = (e) -> logger.error(() -> new ParameterizedMessage("exception from server channel caught on transport layer [{}]", channel), e); diff --git a/plugins/transport-nio/src/main/java/org/elasticsearch/transport/nio/NioTransportPlugin.java b/plugins/transport-nio/src/main/java/org/elasticsearch/transport/nio/NioTransportPlugin.java index 422e3e9b833..1cc94f18dd3 100644 --- a/plugins/transport-nio/src/main/java/org/elasticsearch/transport/nio/NioTransportPlugin.java +++ b/plugins/transport-nio/src/main/java/org/elasticsearch/transport/nio/NioTransportPlugin.java @@ -50,8 +50,7 @@ public class NioTransportPlugin extends Plugin implements NetworkPlugin { return Arrays.asList( NioHttpServerTransport.NIO_HTTP_ACCEPTOR_COUNT, NioHttpServerTransport.NIO_HTTP_WORKER_COUNT, - NioTransport.NIO_WORKER_COUNT, - NioTransport.NIO_ACCEPTOR_COUNT + NioTransport.NIO_WORKER_COUNT ); } diff --git a/plugins/transport-nio/src/main/java/org/elasticsearch/transport/nio/TcpNioServerSocketChannel.java b/plugins/transport-nio/src/main/java/org/elasticsearch/transport/nio/TcpNioServerSocketChannel.java index c63acc9f4de..946563225c6 100644 --- a/plugins/transport-nio/src/main/java/org/elasticsearch/transport/nio/TcpNioServerSocketChannel.java +++ b/plugins/transport-nio/src/main/java/org/elasticsearch/transport/nio/TcpNioServerSocketChannel.java @@ -21,8 +21,6 @@ package org.elasticsearch.transport.nio; import org.elasticsearch.action.ActionListener; import org.elasticsearch.common.bytes.BytesReference; -import org.elasticsearch.nio.AcceptingSelector; -import org.elasticsearch.nio.ChannelFactory; import org.elasticsearch.nio.NioServerSocketChannel; import org.elasticsearch.transport.TcpChannel; diff --git a/plugins/transport-nio/src/main/java/org/elasticsearch/transport/nio/TcpNioSocketChannel.java b/plugins/transport-nio/src/main/java/org/elasticsearch/transport/nio/TcpNioSocketChannel.java index 44ab17457e8..ef2bc875aa9 100644 --- a/plugins/transport-nio/src/main/java/org/elasticsearch/transport/nio/TcpNioSocketChannel.java +++ b/plugins/transport-nio/src/main/java/org/elasticsearch/transport/nio/TcpNioSocketChannel.java @@ -22,7 +22,6 @@ package org.elasticsearch.transport.nio; import org.elasticsearch.action.ActionListener; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.nio.NioSocketChannel; -import org.elasticsearch.nio.SocketSelector; import org.elasticsearch.transport.TcpChannel; import java.io.IOException; diff --git a/server/src/main/java/org/elasticsearch/transport/Transports.java b/server/src/main/java/org/elasticsearch/transport/Transports.java index d07846835c2..2adf07bad23 100644 --- a/server/src/main/java/org/elasticsearch/transport/Transports.java +++ b/server/src/main/java/org/elasticsearch/transport/Transports.java @@ -30,7 +30,6 @@ public enum Transports { public static final String TEST_MOCK_TRANSPORT_THREAD_PREFIX = "__mock_network_thread"; public static final String NIO_TRANSPORT_WORKER_THREAD_NAME_PREFIX = "es_nio_transport_worker"; - public static final String NIO_TRANSPORT_ACCEPTOR_THREAD_NAME_PREFIX = "es_nio_transport_acceptor"; /** * Utility method to detect whether a thread is a network thread. Typically @@ -44,8 +43,7 @@ public enum Transports { TcpTransport.TRANSPORT_SERVER_WORKER_THREAD_NAME_PREFIX, TcpTransport.TRANSPORT_CLIENT_BOSS_THREAD_NAME_PREFIX, TEST_MOCK_TRANSPORT_THREAD_PREFIX, - NIO_TRANSPORT_WORKER_THREAD_NAME_PREFIX, - NIO_TRANSPORT_ACCEPTOR_THREAD_NAME_PREFIX)) { + NIO_TRANSPORT_WORKER_THREAD_NAME_PREFIX)) { if (threadName.contains(s)) { return true; } diff --git a/test/framework/src/main/java/org/elasticsearch/transport/nio/MockNioTransport.java b/test/framework/src/main/java/org/elasticsearch/transport/nio/MockNioTransport.java index 9481f60d933..cb9e243660a 100644 --- a/test/framework/src/main/java/org/elasticsearch/transport/nio/MockNioTransport.java +++ b/test/framework/src/main/java/org/elasticsearch/transport/nio/MockNioTransport.java @@ -30,17 +30,15 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.BigArrays; import org.elasticsearch.common.util.PageCacheRecycler; import org.elasticsearch.indices.breaker.CircuitBreakerService; -import org.elasticsearch.nio.AcceptingSelector; -import org.elasticsearch.nio.AcceptorEventHandler; import org.elasticsearch.nio.BytesChannelContext; import org.elasticsearch.nio.BytesWriteHandler; import org.elasticsearch.nio.ChannelFactory; import org.elasticsearch.nio.InboundChannelBuffer; import org.elasticsearch.nio.NioGroup; +import org.elasticsearch.nio.NioSelector; import org.elasticsearch.nio.NioServerSocketChannel; import org.elasticsearch.nio.NioSocketChannel; import org.elasticsearch.nio.ServerChannelContext; -import org.elasticsearch.nio.SocketSelector; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.TcpChannel; import org.elasticsearch.transport.TcpTransport; @@ -62,7 +60,6 @@ import static org.elasticsearch.common.util.concurrent.EsExecutors.daemonThreadF public class MockNioTransport extends TcpTransport { private static final String TRANSPORT_WORKER_THREAD_NAME_PREFIX = Transports.NIO_TRANSPORT_WORKER_THREAD_NAME_PREFIX; - private static final String TRANSPORT_ACCEPTOR_THREAD_NAME_PREFIX = Transports.NIO_TRANSPORT_ACCEPTOR_THREAD_NAME_PREFIX; private final PageCacheRecycler pageCacheRecycler; private final ConcurrentMap profileToChannelFactory = newConcurrentMap(); @@ -93,20 +90,13 @@ public class MockNioTransport extends TcpTransport { protected void doStart() { boolean success = false; try { - int acceptorCount = 0; - boolean useNetworkServer = NetworkService.NETWORK_SERVER.get(settings); - if (useNetworkServer) { - acceptorCount = 1; - } - nioGroup = new NioGroup(daemonThreadFactory(this.settings, TRANSPORT_ACCEPTOR_THREAD_NAME_PREFIX), acceptorCount, - (s) -> new AcceptorEventHandler(s, this::onNonChannelException), - daemonThreadFactory(this.settings, TRANSPORT_WORKER_THREAD_NAME_PREFIX), 2, - () -> new TestingSocketEventHandler(this::onNonChannelException)); + nioGroup = new NioGroup(daemonThreadFactory(this.settings, TRANSPORT_WORKER_THREAD_NAME_PREFIX), 2, + (s) -> new TestingSocketEventHandler(this::onNonChannelException, s)); ProfileSettings clientProfileSettings = new ProfileSettings(settings, "default"); clientChannelFactory = new MockTcpChannelFactory(clientProfileSettings, "client"); - if (useNetworkServer) { + if (NetworkService.NETWORK_SERVER.get(settings)) { // loop through all profiles and start them up, special handling for default one for (ProfileSettings profileSettings : profileSettings) { String profileName = profileSettings.profileName; @@ -159,7 +149,7 @@ public class MockNioTransport extends TcpTransport { } @Override - public MockSocketChannel createChannel(SocketSelector selector, SocketChannel channel) throws IOException { + public MockSocketChannel createChannel(NioSelector selector, SocketChannel channel) throws IOException { MockSocketChannel nioChannel = new MockSocketChannel(profileName, channel, selector); Supplier pageSupplier = () -> { Recycler.V bytes = pageCacheRecycler.bytePage(false); @@ -173,7 +163,7 @@ public class MockNioTransport extends TcpTransport { } @Override - public MockServerChannel createServerChannel(AcceptingSelector selector, ServerSocketChannel channel) throws IOException { + public MockServerChannel createServerChannel(NioSelector selector, ServerSocketChannel channel) throws IOException { MockServerChannel nioServerChannel = new MockServerChannel(profileName, channel, this, selector); Consumer exceptionHandler = (e) -> logger.error(() -> new ParameterizedMessage("exception from server channel caught on transport layer [{}]", channel), e); @@ -205,7 +195,7 @@ public class MockNioTransport extends TcpTransport { private final String profile; - MockServerChannel(String profile, ServerSocketChannel channel, ChannelFactory channelFactory, AcceptingSelector selector) + MockServerChannel(String profile, ServerSocketChannel channel, ChannelFactory channelFactory, NioSelector selector) throws IOException { super(channel); this.profile = profile; @@ -246,7 +236,7 @@ public class MockNioTransport extends TcpTransport { private final String profile; - private MockSocketChannel(String profile, java.nio.channels.SocketChannel socketChannel, SocketSelector selector) + private MockSocketChannel(String profile, java.nio.channels.SocketChannel socketChannel, NioSelector selector) throws IOException { super(socketChannel); this.profile = profile; diff --git a/test/framework/src/main/java/org/elasticsearch/transport/nio/TestingSocketEventHandler.java b/test/framework/src/main/java/org/elasticsearch/transport/nio/TestingSocketEventHandler.java index 810e4201022..cecd3c60613 100644 --- a/test/framework/src/main/java/org/elasticsearch/transport/nio/TestingSocketEventHandler.java +++ b/test/framework/src/main/java/org/elasticsearch/transport/nio/TestingSocketEventHandler.java @@ -19,21 +19,23 @@ package org.elasticsearch.transport.nio; +import org.elasticsearch.nio.EventHandler; +import org.elasticsearch.nio.NioSelector; import org.elasticsearch.nio.SocketChannelContext; -import org.elasticsearch.nio.SocketEventHandler; import java.io.IOException; import java.util.Collections; import java.util.Set; import java.util.WeakHashMap; import java.util.function.Consumer; +import java.util.function.Supplier; -public class TestingSocketEventHandler extends SocketEventHandler { +public class TestingSocketEventHandler extends EventHandler { private Set hasConnectedMap = Collections.newSetFromMap(new WeakHashMap<>()); - public TestingSocketEventHandler(Consumer exceptionHandler) { - super(exceptionHandler); + public TestingSocketEventHandler(Consumer exceptionHandler, Supplier selectorSupplier) { + super(exceptionHandler, selectorSupplier); } public void handleConnect(SocketChannelContext context) throws IOException { diff --git a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/transport/nio/SSLChannelContext.java b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/transport/nio/SSLChannelContext.java index 171507de741..95af7665157 100644 --- a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/transport/nio/SSLChannelContext.java +++ b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/transport/nio/SSLChannelContext.java @@ -11,7 +11,7 @@ import org.elasticsearch.nio.InboundChannelBuffer; import org.elasticsearch.nio.NioSocketChannel; import org.elasticsearch.nio.ReadWriteHandler; import org.elasticsearch.nio.SocketChannelContext; -import org.elasticsearch.nio.SocketSelector; +import org.elasticsearch.nio.NioSelector; import org.elasticsearch.nio.WriteOperation; import java.io.IOException; @@ -28,7 +28,7 @@ public final class SSLChannelContext extends SocketChannelContext { private final SSLDriver sslDriver; - SSLChannelContext(NioSocketChannel channel, SocketSelector selector, Consumer exceptionHandler, SSLDriver sslDriver, + SSLChannelContext(NioSocketChannel channel, NioSelector selector, Consumer exceptionHandler, SSLDriver sslDriver, ReadWriteHandler readWriteHandler, InboundChannelBuffer channelBuffer) { super(channel, selector, exceptionHandler, readWriteHandler, channelBuffer); this.sslDriver = sslDriver; @@ -140,7 +140,7 @@ public final class SSLChannelContext extends SocketChannelContext { public void closeChannel() { if (isClosing.compareAndSet(false, true)) { WriteOperation writeOperation = new CloseNotifyOperation(this); - SocketSelector selector = getSelector(); + NioSelector selector = getSelector(); if (selector.isOnCurrentThread() == false) { selector.queueWrite(writeOperation); return; diff --git a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/transport/nio/SecurityNioTransport.java b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/transport/nio/SecurityNioTransport.java index 1c9d779c2cc..39ce1a0150c 100644 --- a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/transport/nio/SecurityNioTransport.java +++ b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/transport/nio/SecurityNioTransport.java @@ -13,11 +13,10 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.BigArrays; import org.elasticsearch.common.util.PageCacheRecycler; import org.elasticsearch.indices.breaker.CircuitBreakerService; -import org.elasticsearch.nio.AcceptingSelector; import org.elasticsearch.nio.InboundChannelBuffer; import org.elasticsearch.nio.NioSocketChannel; import org.elasticsearch.nio.ServerChannelContext; -import org.elasticsearch.nio.SocketSelector; +import org.elasticsearch.nio.NioSelector; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.TcpTransport; import org.elasticsearch.transport.nio.NioTransport; @@ -117,7 +116,7 @@ public class SecurityNioTransport extends NioTransport { } @Override - public TcpNioSocketChannel createChannel(SocketSelector selector, SocketChannel channel) throws IOException { + public TcpNioSocketChannel createChannel(NioSelector selector, SocketChannel channel) throws IOException { SSLConfiguration defaultConfig = profileConfiguration.get(TcpTransport.DEFAULT_PROFILE); SSLEngine sslEngine = sslService.createSSLEngine(profileConfiguration.getOrDefault(profileName, defaultConfig), null, -1); SSLDriver sslDriver = new SSLDriver(sslEngine, isClient); @@ -136,7 +135,7 @@ public class SecurityNioTransport extends NioTransport { } @Override - public TcpNioServerSocketChannel createServerChannel(AcceptingSelector selector, ServerSocketChannel channel) throws IOException { + public TcpNioServerSocketChannel createServerChannel(NioSelector selector, ServerSocketChannel channel) throws IOException { TcpNioServerSocketChannel nioChannel = new TcpNioServerSocketChannel(profileName, channel); Consumer exceptionHandler = (e) -> logger.error(() -> new ParameterizedMessage("exception from server channel caught on transport layer [{}]", channel), e); diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/transport/nio/SSLChannelContextTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/transport/nio/SSLChannelContextTests.java index 168dcd64e6c..14a22d300d1 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/transport/nio/SSLChannelContextTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/transport/nio/SSLChannelContextTests.java @@ -11,7 +11,7 @@ import org.elasticsearch.nio.BytesWriteHandler; import org.elasticsearch.nio.FlushReadyWrite; import org.elasticsearch.nio.InboundChannelBuffer; import org.elasticsearch.nio.NioSocketChannel; -import org.elasticsearch.nio.SocketSelector; +import org.elasticsearch.nio.NioSelector; import org.elasticsearch.nio.WriteOperation; import org.elasticsearch.test.ESTestCase; import org.junit.Before; @@ -40,7 +40,7 @@ public class SSLChannelContextTests extends ESTestCase { private SocketChannel rawChannel; private SSLChannelContext context; private InboundChannelBuffer channelBuffer; - private SocketSelector selector; + private NioSelector selector; private BiConsumer listener; private Consumer exceptionHandler; private SSLDriver sslDriver; @@ -55,7 +55,7 @@ public class SSLChannelContextTests extends ESTestCase { TestReadWriteHandler readWriteHandler = new TestReadWriteHandler(readConsumer); messageLength = randomInt(96) + 20; - selector = mock(SocketSelector.class); + selector = mock(NioSelector.class); listener = mock(BiConsumer.class); channel = mock(NioSocketChannel.class); rawChannel = mock(SocketChannel.class); From b4514d3cc12c18cea5395c3dcb7f41455ec4ec6b Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Wed, 6 Jun 2018 12:39:24 -0700 Subject: [PATCH 03/62] [DOCS] Moves ML node info to docs (#31142) --- .../en/node.asciidoc => docs/reference/modules/ml-node.asciidoc | 0 docs/reference/modules/node.asciidoc | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename x-pack/docs/en/node.asciidoc => docs/reference/modules/ml-node.asciidoc (100%) diff --git a/x-pack/docs/en/node.asciidoc b/docs/reference/modules/ml-node.asciidoc similarity index 100% rename from x-pack/docs/en/node.asciidoc rename to docs/reference/modules/ml-node.asciidoc diff --git a/docs/reference/modules/node.asciidoc b/docs/reference/modules/node.asciidoc index cf053df1818..f772977e3f0 100644 --- a/docs/reference/modules/node.asciidoc +++ b/docs/reference/modules/node.asciidoc @@ -325,5 +325,5 @@ the <>, the <> and the <>. ifdef::include-xpack[] -include::{xes-repo-dir}/node.asciidoc[] +include::ml-node.asciidoc[] endif::include-xpack[] From 68827fc0465abe1e365815fd344e900f593e5008 Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Wed, 6 Jun 2018 13:25:36 -0700 Subject: [PATCH 04/62] [DOCS] Enables testing for monitoring examples (#31119) --- x-pack/docs/build.gradle | 1 - x-pack/docs/en/monitoring/indices.asciidoc | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/x-pack/docs/build.gradle b/x-pack/docs/build.gradle index 3d799c8d0b5..a0af24d6cc6 100644 --- a/x-pack/docs/build.gradle +++ b/x-pack/docs/build.gradle @@ -17,7 +17,6 @@ buildRestTests.expectedUnconvertedCandidates = [ 'en/ml/functions/sum.asciidoc', 'en/ml/functions/time.asciidoc', 'en/ml/customurl.asciidoc', - 'en/monitoring/indices.asciidoc', 'en/rest-api/security/ssl.asciidoc', 'en/rest-api/security/users.asciidoc', 'en/rest-api/security/tokens.asciidoc', diff --git a/x-pack/docs/en/monitoring/indices.asciidoc b/x-pack/docs/en/monitoring/indices.asciidoc index 10d2c212de2..efa9836daa2 100644 --- a/x-pack/docs/en/monitoring/indices.asciidoc +++ b/x-pack/docs/en/monitoring/indices.asciidoc @@ -11,6 +11,8 @@ You can retrieve the templates through the `_template` API: ---------------------------------- GET /_template/.monitoring-* ---------------------------------- +// CONSOLE +// TEST[catch:missing] By default, the template configures one shard and one replica for the monitoring indices. To override the default settings, add your own template: @@ -36,6 +38,7 @@ PUT /_template/custom_monitoring } } ---------------------------------- +// CONSOLE IMPORTANT: Only set the `number_of_shards` and `number_of_replicas` in the settings section. Overriding other monitoring template settings could cause From be4a101ea1824d4e6be1dec7341ddbe1d620d1c5 Mon Sep 17 00:00:00 2001 From: Luca Cavanna Date: Wed, 6 Jun 2018 23:17:45 +0200 Subject: [PATCH 05/62] Add high-level client methods that accept RequestOptions (#31069) With #30490 we have introduced a new way to provide request options whenever sending a request using the high-level REST client. Before you could provide headers as the last argument varargs of each API method, now you can provide `RequestOptions` that in the future will allow to provide more options which can be specified per request. This commit deprecates all of the client methods that accept a `Header` varargs argument in favour of new methods that accept `RequestOptions` instead. For some API we don't even go through deprecation given that they were not released since they were added, hence in that case we can just move them to the new method. --- .../elasticsearch/client/ClusterClient.java | 36 +- .../elasticsearch/client/IndicesClient.java | 700 +++++++++++++++--- .../elasticsearch/client/IngestClient.java | 76 +- .../client/RequestConverters.java | 2 +- .../client/RestHighLevelClient.java | 463 ++++++++++-- .../elasticsearch/client/SnapshotClient.java | 93 ++- .../org/elasticsearch/client/TasksClient.java | 28 +- .../elasticsearch/client/BulkProcessorIT.java | 13 +- .../client/BulkProcessorRetryIT.java | 4 +- .../elasticsearch/client/ClusterClientIT.java | 3 + .../java/org/elasticsearch/client/CrudIT.java | 171 +++-- .../client/ESRestHighLevelClientTestCase.java | 45 +- .../elasticsearch/client/IndicesClientIT.java | 102 ++- .../elasticsearch/client/PingAndInfoIT.java | 4 +- .../org/elasticsearch/client/RankEvalIT.java | 7 +- .../client/RestHighLevelClientTests.java | 26 +- .../org/elasticsearch/client/SearchIT.java | 56 +- .../documentation/CRUDDocumentationIT.java | 102 +-- .../ClusterClientDocumentationIT.java | 16 +- .../IndicesClientDocumentationIT.java | 161 ++-- .../IngestClientDocumentationIT.java | 13 +- .../MigrationDocumentationIT.java | 21 +- .../MiscellaneousDocumentationIT.java | 5 +- .../documentation/SearchDocumentationIT.java | 73 +- .../SnapshotClientDocumentationIT.java | 19 +- .../TasksClientDocumentationIT.java | 5 +- ...rossClusterSearchUnavailableClusterIT.java | 30 +- 27 files changed, 1682 insertions(+), 592 deletions(-) diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/ClusterClient.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/ClusterClient.java index f3c84db79d6..488579785e0 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/ClusterClient.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/ClusterClient.java @@ -41,11 +41,28 @@ public final class ClusterClient { } /** - * Updates cluster wide specific settings using the Cluster Update Settings API + * Updates cluster wide specific settings using the Cluster Update Settings API. + * See Cluster Update Settings + * API on elastic.co + * @param clusterUpdateSettingsRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public ClusterUpdateSettingsResponse putSettings(ClusterUpdateSettingsRequest clusterUpdateSettingsRequest, RequestOptions options) + throws IOException { + return restHighLevelClient.performRequestAndParseEntity(clusterUpdateSettingsRequest, RequestConverters::clusterPutSettings, + options, ClusterUpdateSettingsResponse::fromXContent, emptySet()); + } + + /** + * Updates cluster wide specific settings using the Cluster Update Settings API. *

* See Cluster Update Settings * API on elastic.co + * @deprecated Prefer {@link #putSettings(ClusterUpdateSettingsRequest, RequestOptions)} */ + @Deprecated public ClusterUpdateSettingsResponse putSettings(ClusterUpdateSettingsRequest clusterUpdateSettingsRequest, Header... headers) throws IOException { return restHighLevelClient.performRequestAndParseEntity(clusterUpdateSettingsRequest, RequestConverters::clusterPutSettings, @@ -53,11 +70,26 @@ public final class ClusterClient { } /** - * Asynchronously updates cluster wide specific settings using the Cluster Update Settings API + * Asynchronously updates cluster wide specific settings using the Cluster Update Settings API. + * See Cluster Update Settings + * API on elastic.co + * @param clusterUpdateSettingsRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void putSettingsAsync(ClusterUpdateSettingsRequest clusterUpdateSettingsRequest, RequestOptions options, + ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(clusterUpdateSettingsRequest, RequestConverters::clusterPutSettings, + options, ClusterUpdateSettingsResponse::fromXContent, listener, emptySet()); + } + /** + * Asynchronously updates cluster wide specific settings using the Cluster Update Settings API. *

* See Cluster Update Settings * API on elastic.co + * @deprecated Prefer {@link #putSettingsAsync(ClusterUpdateSettingsRequest, RequestOptions, ActionListener)} */ + @Deprecated public void putSettingsAsync(ClusterUpdateSettingsRequest clusterUpdateSettingsRequest, ActionListener listener, Header... headers) { restHighLevelClient.performRequestAsyncAndParseEntity(clusterUpdateSettingsRequest, RequestConverters::clusterPutSettings, diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/IndicesClient.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/IndicesClient.java index d51a92ea00f..fa7eb9ab9ec 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/IndicesClient.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/IndicesClient.java @@ -20,7 +20,6 @@ package org.elasticsearch.client; import org.apache.http.Header; -import org.elasticsearch.action.Action; import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest; import org.elasticsearch.action.admin.indices.alias.IndicesAliasesResponse; @@ -47,10 +46,10 @@ import org.elasticsearch.action.admin.indices.open.OpenIndexRequest; import org.elasticsearch.action.admin.indices.open.OpenIndexResponse; import org.elasticsearch.action.admin.indices.refresh.RefreshRequest; import org.elasticsearch.action.admin.indices.refresh.RefreshResponse; -import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest; -import org.elasticsearch.action.admin.indices.settings.get.GetSettingsResponse; import org.elasticsearch.action.admin.indices.rollover.RolloverRequest; import org.elasticsearch.action.admin.indices.rollover.RolloverResponse; +import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest; +import org.elasticsearch.action.admin.indices.settings.get.GetSettingsResponse; import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsRequest; import org.elasticsearch.action.admin.indices.settings.put.UpdateSettingsResponse; import org.elasticsearch.action.admin.indices.shrink.ResizeRequest; @@ -76,66 +75,159 @@ public final class IndicesClient { } /** - * Deletes an index using the Delete Index API + * Deletes an index using the Delete Index API. + * See + * Delete Index API on elastic.co + * @param deleteIndexRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public DeleteIndexResponse delete(DeleteIndexRequest deleteIndexRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(deleteIndexRequest, RequestConverters::deleteIndex, options, + DeleteIndexResponse::fromXContent, emptySet()); + } + + /** + * Deletes an index using the Delete Index API. *

* See * Delete Index API on elastic.co + * @deprecated Prefer {@link #delete(DeleteIndexRequest, RequestOptions)} */ + @Deprecated public DeleteIndexResponse delete(DeleteIndexRequest deleteIndexRequest, Header... headers) throws IOException { return restHighLevelClient.performRequestAndParseEntity(deleteIndexRequest, RequestConverters::deleteIndex, DeleteIndexResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously deletes an index using the Delete Index API + * Asynchronously deletes an index using the Delete Index API. + * See + * Delete Index API on elastic.co + * @param deleteIndexRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void deleteAsync(DeleteIndexRequest deleteIndexRequest, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(deleteIndexRequest, RequestConverters::deleteIndex, options, + DeleteIndexResponse::fromXContent, listener, emptySet()); + } + + /** + * Asynchronously deletes an index using the Delete Index API. *

* See * Delete Index API on elastic.co + * @deprecated Prefer {@link #deleteAsync(DeleteIndexRequest, RequestOptions, ActionListener)} */ + @Deprecated public void deleteAsync(DeleteIndexRequest deleteIndexRequest, ActionListener listener, Header... headers) { restHighLevelClient.performRequestAsyncAndParseEntity(deleteIndexRequest, RequestConverters::deleteIndex, DeleteIndexResponse::fromXContent, listener, emptySet(), headers); } /** - * Creates an index using the Create Index API + * Creates an index using the Create Index API. + * See + * Create Index API on elastic.co + * @param createIndexRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public CreateIndexResponse create(CreateIndexRequest createIndexRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(createIndexRequest, RequestConverters::createIndex, options, + CreateIndexResponse::fromXContent, emptySet()); + } + + /** + * Creates an index using the Create Index API. *

* See * Create Index API on elastic.co + * @deprecated Prefer {@link #create(CreateIndexRequest, RequestOptions)} */ + @Deprecated public CreateIndexResponse create(CreateIndexRequest createIndexRequest, Header... headers) throws IOException { return restHighLevelClient.performRequestAndParseEntity(createIndexRequest, RequestConverters::createIndex, CreateIndexResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously creates an index using the Create Index API + * Asynchronously creates an index using the Create Index API. + * See + * Create Index API on elastic.co + * @param createIndexRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void createAsync(CreateIndexRequest createIndexRequest, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(createIndexRequest, RequestConverters::createIndex, options, + CreateIndexResponse::fromXContent, listener, emptySet()); + } + + /** + * Asynchronously creates an index using the Create Index API. *

* See * Create Index API on elastic.co + * @deprecated Prefer {@link #createAsync(CreateIndexRequest, RequestOptions, ActionListener)} */ + @Deprecated public void createAsync(CreateIndexRequest createIndexRequest, ActionListener listener, Header... headers) { restHighLevelClient.performRequestAsyncAndParseEntity(createIndexRequest, RequestConverters::createIndex, CreateIndexResponse::fromXContent, listener, emptySet(), headers); } /** - * Updates the mappings on an index using the Put Mapping API + * Updates the mappings on an index using the Put Mapping API. + * See + * Put Mapping API on elastic.co + * @param putMappingRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public PutMappingResponse putMapping(PutMappingRequest putMappingRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(putMappingRequest, RequestConverters::putMapping, options, + PutMappingResponse::fromXContent, emptySet()); + } + + /** + * Updates the mappings on an index using the Put Mapping API. *

* See * Put Mapping API on elastic.co + * @deprecated Prefer {@link #putMapping(PutMappingRequest, RequestOptions)} */ + @Deprecated public PutMappingResponse putMapping(PutMappingRequest putMappingRequest, Header... headers) throws IOException { return restHighLevelClient.performRequestAndParseEntity(putMappingRequest, RequestConverters::putMapping, PutMappingResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously updates the mappings on an index using the Put Mapping API + * Asynchronously updates the mappings on an index using the Put Mapping API. + * See + * Put Mapping API on elastic.co + * @param putMappingRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void putMappingAsync(PutMappingRequest putMappingRequest, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(putMappingRequest, RequestConverters::putMapping, options, + PutMappingResponse::fromXContent, listener, emptySet()); + } + + /** + * Asynchronously updates the mappings on an index using the Put Mapping API. *

* See * Put Mapping API on elastic.co + * @deprecated Prefer {@link #putMappingAsync(PutMappingRequest, RequestOptions, ActionListener)} */ + @Deprecated public void putMappingAsync(PutMappingRequest putMappingRequest, ActionListener listener, Header... headers) { restHighLevelClient.performRequestAsyncAndParseEntity(putMappingRequest, RequestConverters::putMapping, @@ -143,242 +235,507 @@ public final class IndicesClient { } /** - * Retrieves the mappings on an index or indices using the Get Mapping API - *

+ * Retrieves the mappings on an index or indices using the Get Mapping API. * See * Get Mapping API on elastic.co + * @param getMappingsRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response */ - public GetMappingsResponse getMappings(GetMappingsRequest getMappingsRequest, Header... headers) throws IOException { - return restHighLevelClient.performRequestAndParseEntity(getMappingsRequest, RequestConverters::getMappings, - GetMappingsResponse::fromXContent, emptySet(), headers); + public GetMappingsResponse getMappings(GetMappingsRequest getMappingsRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(getMappingsRequest, RequestConverters::getMappings, options, + GetMappingsResponse::fromXContent, emptySet()); } /** - * Asynchronously retrieves the mappings on an index on indices using the Get Mapping API - *

+ * Asynchronously retrieves the mappings on an index on indices using the Get Mapping API. * See * Get Mapping API on elastic.co + * @param getMappingsRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion */ - public void getMappingsAsync(GetMappingsRequest getMappingsRequest, ActionListener listener, - Header... headers) { - restHighLevelClient.performRequestAsyncAndParseEntity(getMappingsRequest, RequestConverters::getMappings, - GetMappingsResponse::fromXContent, listener, emptySet(), headers); + public void getMappingsAsync(GetMappingsRequest getMappingsRequest, RequestOptions options, + ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(getMappingsRequest, RequestConverters::getMappings, options, + GetMappingsResponse::fromXContent, listener, emptySet()); } /** - * Updates aliases using the Index Aliases API + * Updates aliases using the Index Aliases API. + * See + * Index Aliases API on elastic.co + * @param indicesAliasesRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public IndicesAliasesResponse updateAliases(IndicesAliasesRequest indicesAliasesRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(indicesAliasesRequest, RequestConverters::updateAliases, options, + IndicesAliasesResponse::fromXContent, emptySet()); + } + + /** + * Updates aliases using the Index Aliases API. *

* See * Index Aliases API on elastic.co + * @deprecated {@link #updateAliases(IndicesAliasesRequest, RequestOptions)} */ + @Deprecated public IndicesAliasesResponse updateAliases(IndicesAliasesRequest indicesAliasesRequest, Header... headers) throws IOException { return restHighLevelClient.performRequestAndParseEntity(indicesAliasesRequest, RequestConverters::updateAliases, IndicesAliasesResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously updates aliases using the Index Aliases API + * Asynchronously updates aliases using the Index Aliases API. + * See + * Index Aliases API on elastic.co + * @param indicesAliasesRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void updateAliasesAsync(IndicesAliasesRequest indicesAliasesRequest, RequestOptions options, + ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(indicesAliasesRequest, RequestConverters::updateAliases, options, + IndicesAliasesResponse::fromXContent, listener, emptySet()); + } + + /** + * Asynchronously updates aliases using the Index Aliases API. *

* See * Index Aliases API on elastic.co + * @deprecated Prefer {@link #updateAliasesAsync(IndicesAliasesRequest, RequestOptions, ActionListener)} */ + @Deprecated public void updateAliasesAsync(IndicesAliasesRequest indicesAliasesRequest, ActionListener listener, - Header... headers) { + Header... headers) { restHighLevelClient.performRequestAsyncAndParseEntity(indicesAliasesRequest, RequestConverters::updateAliases, IndicesAliasesResponse::fromXContent, listener, emptySet(), headers); } /** - * Opens an index using the Open Index API + * Opens an index using the Open Index API. + * See + * Open Index API on elastic.co + * @param openIndexRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public OpenIndexResponse open(OpenIndexRequest openIndexRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(openIndexRequest, RequestConverters::openIndex, options, + OpenIndexResponse::fromXContent, emptySet()); + } + + /** + * Opens an index using the Open Index API. *

* See * Open Index API on elastic.co + * @deprecated Prefer {@link #open(OpenIndexRequest, RequestOptions)} */ + @Deprecated public OpenIndexResponse open(OpenIndexRequest openIndexRequest, Header... headers) throws IOException { return restHighLevelClient.performRequestAndParseEntity(openIndexRequest, RequestConverters::openIndex, OpenIndexResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously opens an index using the Open Index API + * Asynchronously opens an index using the Open Index API. + * See + * Open Index API on elastic.co + * @param openIndexRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void openAsync(OpenIndexRequest openIndexRequest, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(openIndexRequest, RequestConverters::openIndex, options, + OpenIndexResponse::fromXContent, listener, emptySet()); + } + + /** + * Asynchronously opens an index using the Open Index API. *

* See * Open Index API on elastic.co + * @deprecated Prefer {@link #openAsync(OpenIndexRequest, RequestOptions, ActionListener)} */ + @Deprecated public void openAsync(OpenIndexRequest openIndexRequest, ActionListener listener, Header... headers) { restHighLevelClient.performRequestAsyncAndParseEntity(openIndexRequest, RequestConverters::openIndex, OpenIndexResponse::fromXContent, listener, emptySet(), headers); } /** - * Closes an index using the Close Index API + * Closes an index using the Close Index API. + * See + * Close Index API on elastic.co + * @param closeIndexRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public CloseIndexResponse close(CloseIndexRequest closeIndexRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(closeIndexRequest, RequestConverters::closeIndex, options, + CloseIndexResponse::fromXContent, emptySet()); + } + + /** + * Closes an index using the Close Index API. *

* See * Close Index API on elastic.co + * @deprecated Prefer {@link #close(CloseIndexRequest, RequestOptions)} */ + @Deprecated public CloseIndexResponse close(CloseIndexRequest closeIndexRequest, Header... headers) throws IOException { return restHighLevelClient.performRequestAndParseEntity(closeIndexRequest, RequestConverters::closeIndex, CloseIndexResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously closes an index using the Close Index API + * Asynchronously closes an index using the Close Index API. + * See + * Close Index API on elastic.co + * @param closeIndexRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void closeAsync(CloseIndexRequest closeIndexRequest, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(closeIndexRequest, RequestConverters::closeIndex, options, + CloseIndexResponse::fromXContent, listener, emptySet()); + } + + + /** + * Asynchronously closes an index using the Close Index API. *

* See * Close Index API on elastic.co + * @deprecated Prefer {@link #closeAsync(CloseIndexRequest, RequestOptions, ActionListener)} */ + @Deprecated public void closeAsync(CloseIndexRequest closeIndexRequest, ActionListener listener, Header... headers) { restHighLevelClient.performRequestAsyncAndParseEntity(closeIndexRequest, RequestConverters::closeIndex, CloseIndexResponse::fromXContent, listener, emptySet(), headers); } /** - * Checks if one or more aliases exist using the Aliases Exist API + * Checks if one or more aliases exist using the Aliases Exist API. + * See + * Indices Aliases API on elastic.co + * @param getAliasesRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request + */ + public boolean existsAlias(GetAliasesRequest getAliasesRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequest(getAliasesRequest, RequestConverters::existsAlias, options, + RestHighLevelClient::convertExistsResponse, emptySet()); + } + + /** + * Checks if one or more aliases exist using the Aliases Exist API. *

* See * Indices Aliases API on elastic.co + * @deprecated Prefer {@link #existsAlias(GetAliasesRequest, RequestOptions)} */ + @Deprecated public boolean existsAlias(GetAliasesRequest getAliasesRequest, Header... headers) throws IOException { return restHighLevelClient.performRequest(getAliasesRequest, RequestConverters::existsAlias, RestHighLevelClient::convertExistsResponse, emptySet(), headers); } /** - * Asynchronously checks if one or more aliases exist using the Aliases Exist API + * Asynchronously checks if one or more aliases exist using the Aliases Exist API. + * See + * Indices Aliases API on elastic.co + * @param getAliasesRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void existsAliasAsync(GetAliasesRequest getAliasesRequest, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsync(getAliasesRequest, RequestConverters::existsAlias, options, + RestHighLevelClient::convertExistsResponse, listener, emptySet()); + } + + /** + * Asynchronously checks if one or more aliases exist using the Aliases Exist API. *

* See * Indices Aliases API on elastic.co + * @deprecated Prefer {@link #existsAliasAsync(GetAliasesRequest, RequestOptions, ActionListener)} */ + @Deprecated public void existsAliasAsync(GetAliasesRequest getAliasesRequest, ActionListener listener, Header... headers) { restHighLevelClient.performRequestAsync(getAliasesRequest, RequestConverters::existsAlias, RestHighLevelClient::convertExistsResponse, listener, emptySet(), headers); } /** - * Refresh one or more indices using the Refresh API + * Refresh one or more indices using the Refresh API. + * See Refresh API on elastic.co + * @param refreshRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public RefreshResponse refresh(RefreshRequest refreshRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(refreshRequest, RequestConverters::refresh, options, + RefreshResponse::fromXContent, emptySet()); + } + + /** + * Refresh one or more indices using the Refresh API. *

* See Refresh API on elastic.co + * @deprecated Prefer {@link #refresh(RefreshRequest, RequestOptions)} */ + @Deprecated public RefreshResponse refresh(RefreshRequest refreshRequest, Header... headers) throws IOException { return restHighLevelClient.performRequestAndParseEntity(refreshRequest, RequestConverters::refresh, RefreshResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously refresh one or more indices using the Refresh API + * Asynchronously refresh one or more indices using the Refresh API. + * See Refresh API on elastic.co + * @param refreshRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void refreshAsync(RefreshRequest refreshRequest, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(refreshRequest, RequestConverters::refresh, options, + RefreshResponse::fromXContent, listener, emptySet()); + } + + /** + * Asynchronously refresh one or more indices using the Refresh API. *

* See Refresh API on elastic.co + * @deprecated Prefer {@link #refreshAsync(RefreshRequest, RequestOptions, ActionListener)} */ + @Deprecated public void refreshAsync(RefreshRequest refreshRequest, ActionListener listener, Header... headers) { restHighLevelClient.performRequestAsyncAndParseEntity(refreshRequest, RequestConverters::refresh, RefreshResponse::fromXContent, listener, emptySet(), headers); } /** - * Flush one or more indices using the Flush API + * Flush one or more indices using the Flush API. + * See Flush API on elastic.co + * @param flushRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public FlushResponse flush(FlushRequest flushRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(flushRequest, RequestConverters::flush, options, + FlushResponse::fromXContent, emptySet()); + } + + /** + * Flush one or more indices using the Flush API. *

* See Flush API on elastic.co + * @deprecated Prefer {@link #flush(FlushRequest, RequestOptions)} */ + @Deprecated public FlushResponse flush(FlushRequest flushRequest, Header... headers) throws IOException { return restHighLevelClient.performRequestAndParseEntity(flushRequest, RequestConverters::flush, FlushResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously flush one or more indices using the Flush API + * Asynchronously flush one or more indices using the Flush API. + * See Flush API on elastic.co + * @param flushRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void flushAsync(FlushRequest flushRequest, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(flushRequest, RequestConverters::flush, options, + FlushResponse::fromXContent, listener, emptySet()); + } + + /** + * Asynchronously flush one or more indices using the Flush API. *

* See Flush API on elastic.co + * @deprecated Prefer {@link #flushAsync(FlushRequest, RequestOptions, ActionListener)} */ + @Deprecated public void flushAsync(FlushRequest flushRequest, ActionListener listener, Header... headers) { restHighLevelClient.performRequestAsyncAndParseEntity(flushRequest, RequestConverters::flush, FlushResponse::fromXContent, listener, emptySet(), headers); } - /** Initiate a synced flush manually using the synced flush API - *

- * See - * Synced flush API on elastic.co - */ - public SyncedFlushResponse flushSynced(SyncedFlushRequest syncedFlushRequest, Header... headers) throws IOException { - return restHighLevelClient.performRequestAndParseEntity(syncedFlushRequest, RequestConverters::flushSynced, - SyncedFlushResponse::fromXContent, emptySet(), headers); - } - /** - * Asynchronously initiate a synced flush manually using the synced flush API - *

+ * Initiate a synced flush manually using the synced flush API. * See * Synced flush API on elastic.co + * @param syncedFlushRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response */ - public void flushSyncedAsync(SyncedFlushRequest syncedFlushRequest, ActionListener listener, Header... headers) { - restHighLevelClient.performRequestAsyncAndParseEntity(syncedFlushRequest, RequestConverters::flushSynced, - SyncedFlushResponse::fromXContent, listener, emptySet(), headers); + public SyncedFlushResponse flushSynced(SyncedFlushRequest syncedFlushRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(syncedFlushRequest, RequestConverters::flushSynced, options, + SyncedFlushResponse::fromXContent, emptySet()); } + /** + * Asynchronously initiate a synced flush manually using the synced flush API. + * See + * Synced flush API on elastic.co + * @param syncedFlushRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void flushSyncedAsync(SyncedFlushRequest syncedFlushRequest, RequestOptions options, + ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(syncedFlushRequest, RequestConverters::flushSynced, options, + SyncedFlushResponse::fromXContent, listener, emptySet()); + } /** - * Retrieve the settings of one or more indices - *

+ * Retrieve the settings of one or more indices. * See * Indices Get Settings API on elastic.co + * @param getSettingsRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response */ - public GetSettingsResponse getSettings(GetSettingsRequest getSettingsRequest, Header... headers) throws IOException { - return restHighLevelClient.performRequestAndParseEntity(getSettingsRequest, RequestConverters::getSettings, - GetSettingsResponse::fromXContent, emptySet(), headers); + public GetSettingsResponse getSettings(GetSettingsRequest getSettingsRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(getSettingsRequest, RequestConverters::getSettings, options, + GetSettingsResponse::fromXContent, emptySet()); } /** - * Asynchronously retrieve the settings of one or more indices - *

+ * Asynchronously retrieve the settings of one or more indices. * See * Indices Get Settings API on elastic.co + * @param getSettingsRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion */ - public void getSettingsAsync(GetSettingsRequest getSettingsRequest, ActionListener listener, Header... headers) { - restHighLevelClient.performRequestAsyncAndParseEntity(getSettingsRequest, RequestConverters::getSettings, - GetSettingsResponse::fromXContent, listener, emptySet(), headers); + public void getSettingsAsync(GetSettingsRequest getSettingsRequest, RequestOptions options, + ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(getSettingsRequest, RequestConverters::getSettings, options, + GetSettingsResponse::fromXContent, listener, emptySet()); } /** - * Force merge one or more indices using the Force Merge API + * Force merge one or more indices using the Force Merge API. + * See + * Force Merge API on elastic.co + * @param forceMergeRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public ForceMergeResponse forceMerge(ForceMergeRequest forceMergeRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(forceMergeRequest, RequestConverters::forceMerge, options, + ForceMergeResponse::fromXContent, emptySet()); + } + + /** + * Force merge one or more indices using the Force Merge API. *

* See * Force Merge API on elastic.co + * @deprecated Prefer {@link #forceMerge(ForceMergeRequest, RequestOptions)} */ + @Deprecated public ForceMergeResponse forceMerge(ForceMergeRequest forceMergeRequest, Header... headers) throws IOException { return restHighLevelClient.performRequestAndParseEntity(forceMergeRequest, RequestConverters::forceMerge, ForceMergeResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously force merge one or more indices using the Force Merge API + * Asynchronously force merge one or more indices using the Force Merge API. + * See + * Force Merge API on elastic.co + * @param forceMergeRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void forceMergeAsync(ForceMergeRequest forceMergeRequest, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(forceMergeRequest, RequestConverters::forceMerge, options, + ForceMergeResponse::fromXContent, listener, emptySet()); + } + + /** + * Asynchronously force merge one or more indices using the Force Merge API. *

* See * Force Merge API on elastic.co + * @deprecated Prefer {@link #forceMergeAsync(ForceMergeRequest, RequestOptions, ActionListener)} */ + @Deprecated public void forceMergeAsync(ForceMergeRequest forceMergeRequest, ActionListener listener, Header... headers) { restHighLevelClient.performRequestAsyncAndParseEntity(forceMergeRequest, RequestConverters::forceMerge, ForceMergeResponse::fromXContent, listener, emptySet(), headers); } /** - * Clears the cache of one or more indices using the Clear Cache API + * Clears the cache of one or more indices using the Clear Cache API. + * See + * Clear Cache API on elastic.co + * @param clearIndicesCacheRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public ClearIndicesCacheResponse clearCache(ClearIndicesCacheRequest clearIndicesCacheRequest, + RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(clearIndicesCacheRequest, RequestConverters::clearCache, options, + ClearIndicesCacheResponse::fromXContent, emptySet()); + } + + /** + * Clears the cache of one or more indices using the Clear Cache API. *

* See * Clear Cache API on elastic.co + * @deprecated Prefer {@link #clearCache(ClearIndicesCacheRequest, RequestOptions)} */ + @Deprecated public ClearIndicesCacheResponse clearCache(ClearIndicesCacheRequest clearIndicesCacheRequest, Header... headers) throws IOException { return restHighLevelClient.performRequestAndParseEntity(clearIndicesCacheRequest, RequestConverters::clearCache, ClearIndicesCacheResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously clears the cache of one or more indices using the Clear Cache API + * Asynchronously clears the cache of one or more indices using the Clear Cache API. + * See + * Clear Cache API on elastic.co + * @param clearIndicesCacheRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void clearCacheAsync(ClearIndicesCacheRequest clearIndicesCacheRequest, RequestOptions options, + ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(clearIndicesCacheRequest, RequestConverters::clearCache, options, + ClearIndicesCacheResponse::fromXContent, listener, emptySet()); + } + + /** + * Asynchronously clears the cache of one or more indices using the Clear Cache API. *

* See * Clear Cache API on elastic.co + * @deprecated Prefer {@link #clearCacheAsync(ClearIndicesCacheRequest, RequestOptions, ActionListener)} */ + @Deprecated public void clearCacheAsync(ClearIndicesCacheRequest clearIndicesCacheRequest, ActionListener listener, Header... headers) { restHighLevelClient.performRequestAsyncAndParseEntity(clearIndicesCacheRequest, RequestConverters::clearCache, @@ -387,17 +744,57 @@ public final class IndicesClient { /** * Checks if the index (indices) exists or not. - *

* See * Indices Exists API on elastic.co + * @param request the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request */ - public boolean exists(GetIndexRequest request, Header... headers) throws IOException { + public boolean exists(GetIndexRequest request, RequestOptions options) throws IOException { return restHighLevelClient.performRequest( request, RequestConverters::indicesExist, + options, RestHighLevelClient::convertExistsResponse, - Collections.emptySet(), - headers + Collections.emptySet() + ); + } + + /** + * Checks if the index (indices) exists or not. + *

+ * See + * Indices Exists API on elastic.co + * @deprecated Prefer {@link #exists(GetIndexRequest, RequestOptions)} + */ + @Deprecated + public boolean exists(GetIndexRequest request, Header... headers) throws IOException { + return restHighLevelClient.performRequest( + request, + RequestConverters::indicesExist, + RestHighLevelClient::convertExistsResponse, + Collections.emptySet(), + headers + ); + } + + /** + * Asynchronously checks if the index (indices) exists or not. + * See + * Indices Exists API on elastic.co + * @param request the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void existsAsync(GetIndexRequest request, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsync( + request, + RequestConverters::indicesExist, + options, + RestHighLevelClient::convertExistsResponse, + listener, + Collections.emptySet() ); } @@ -406,7 +803,9 @@ public final class IndicesClient { *

* See * Indices Exists API on elastic.co + * @deprecated Prefer {@link #existsAsync(GetIndexRequest, RequestOptions, ActionListener)} */ + @Deprecated public void existsAsync(GetIndexRequest request, ActionListener listener, Header... headers) { restHighLevelClient.performRequestAsync( request, @@ -419,88 +818,213 @@ public final class IndicesClient { } /** - * Shrinks an index using the Shrink Index API + * Shrinks an index using the Shrink Index API. + * See + * Shrink Index API on elastic.co + * @param resizeRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public ResizeResponse shrink(ResizeRequest resizeRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(resizeRequest, RequestConverters::shrink, options, + ResizeResponse::fromXContent, emptySet()); + } + + /** + * Shrinks an index using the Shrink Index API. *

* See * Shrink Index API on elastic.co + * @deprecated Prefer {@link #shrink(ResizeRequest, RequestOptions)} */ + @Deprecated public ResizeResponse shrink(ResizeRequest resizeRequest, Header... headers) throws IOException { return restHighLevelClient.performRequestAndParseEntity(resizeRequest, RequestConverters::shrink, ResizeResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously shrinks an index using the Shrink index API + * Asynchronously shrinks an index using the Shrink index API. + * See + * Shrink Index API on elastic.co + * @param resizeRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void shrinkAsync(ResizeRequest resizeRequest, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(resizeRequest, RequestConverters::shrink, options, + ResizeResponse::fromXContent, listener, emptySet()); + } + + /** + * Asynchronously shrinks an index using the Shrink index API. *

* See * Shrink Index API on elastic.co + * @deprecated Prefer {@link #shrinkAsync(ResizeRequest, RequestOptions, ActionListener)} */ + @Deprecated public void shrinkAsync(ResizeRequest resizeRequest, ActionListener listener, Header... headers) { restHighLevelClient.performRequestAsyncAndParseEntity(resizeRequest, RequestConverters::shrink, ResizeResponse::fromXContent, listener, emptySet(), headers); } /** - * Splits an index using the Split Index API + * Splits an index using the Split Index API. + * See + * Split Index API on elastic.co + * @param resizeRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public ResizeResponse split(ResizeRequest resizeRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(resizeRequest, RequestConverters::split, options, + ResizeResponse::fromXContent, emptySet()); + } + + /** + * Splits an index using the Split Index API. *

* See * Split Index API on elastic.co + * @deprecated {@link #split(ResizeRequest, RequestOptions)} */ + @Deprecated public ResizeResponse split(ResizeRequest resizeRequest, Header... headers) throws IOException { return restHighLevelClient.performRequestAndParseEntity(resizeRequest, RequestConverters::split, ResizeResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously splits an index using the Split Index API + * Asynchronously splits an index using the Split Index API. + * See + * Split Index API on elastic.co + * @param resizeRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void splitAsync(ResizeRequest resizeRequest, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(resizeRequest, RequestConverters::split, options, + ResizeResponse::fromXContent, listener, emptySet()); + } + + /** + * Asynchronously splits an index using the Split Index API. *

* See * Split Index API on elastic.co + * @deprecated Prefer {@link #splitAsync(ResizeRequest, RequestOptions, ActionListener)} */ + @Deprecated public void splitAsync(ResizeRequest resizeRequest, ActionListener listener, Header... headers) { restHighLevelClient.performRequestAsyncAndParseEntity(resizeRequest, RequestConverters::split, ResizeResponse::fromXContent, listener, emptySet(), headers); } /** - * Rolls over an index using the Rollover Index API + * Rolls over an index using the Rollover Index API. + * See + * Rollover Index API on elastic.co + * @param rolloverRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public RolloverResponse rollover(RolloverRequest rolloverRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(rolloverRequest, RequestConverters::rollover, options, + RolloverResponse::fromXContent, emptySet()); + } + + /** + * Rolls over an index using the Rollover Index API. *

* See * Rollover Index API on elastic.co + * @deprecated Prefer {@link #rollover(RolloverRequest, RequestOptions)} */ + @Deprecated public RolloverResponse rollover(RolloverRequest rolloverRequest, Header... headers) throws IOException { return restHighLevelClient.performRequestAndParseEntity(rolloverRequest, RequestConverters::rollover, RolloverResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously rolls over an index using the Rollover Index API + * Asynchronously rolls over an index using the Rollover Index API. + * See + * Rollover Index API on elastic.co + * @param rolloverRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void rolloverAsync(RolloverRequest rolloverRequest, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(rolloverRequest, RequestConverters::rollover, options, + RolloverResponse::fromXContent, listener, emptySet()); + } + + /** + * Asynchronously rolls over an index using the Rollover Index API. *

* See * Rollover Index API on elastic.co + * @deprecated Prefer {@link #rolloverAsync(RolloverRequest, RequestOptions, ActionListener)} */ + @Deprecated public void rolloverAsync(RolloverRequest rolloverRequest, ActionListener listener, Header... headers) { restHighLevelClient.performRequestAsyncAndParseEntity(rolloverRequest, RequestConverters::rollover, RolloverResponse::fromXContent, listener, emptySet(), headers); } /** - * Updates specific index level settings using the Update Indices Settings API + * Updates specific index level settings using the Update Indices Settings API. + * See Update Indices Settings + * API on elastic.co + * @param updateSettingsRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public UpdateSettingsResponse putSettings(UpdateSettingsRequest updateSettingsRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(updateSettingsRequest, RequestConverters::indexPutSettings, options, + UpdateSettingsResponse::fromXContent, emptySet()); + } + + /** + * Updates specific index level settings using the Update Indices Settings API. *

* See Update Indices Settings * API on elastic.co + * @deprecated Prefer {@link #putSettings(UpdateSettingsRequest, RequestOptions)} */ + @Deprecated public UpdateSettingsResponse putSettings(UpdateSettingsRequest updateSettingsRequest, Header... headers) throws IOException { return restHighLevelClient.performRequestAndParseEntity(updateSettingsRequest, RequestConverters::indexPutSettings, UpdateSettingsResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously updates specific index level settings using the Update Indices Settings API + * Asynchronously updates specific index level settings using the Update Indices Settings API. + * See Update Indices Settings + * API on elastic.co + * @param updateSettingsRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void putSettingsAsync(UpdateSettingsRequest updateSettingsRequest, RequestOptions options, + ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(updateSettingsRequest, RequestConverters::indexPutSettings, options, + UpdateSettingsResponse::fromXContent, listener, emptySet()); + } + + /** + * Asynchronously updates specific index level settings using the Update Indices Settings API. *

* See Update Indices Settings * API on elastic.co + * @deprecated Prefer {@link #putSettingsAsync(UpdateSettingsRequest, RequestOptions, ActionListener)} */ + @Deprecated public void putSettingsAsync(UpdateSettingsRequest updateSettingsRequest, ActionListener listener, Header... headers) { restHighLevelClient.performRequestAsyncAndParseEntity(updateSettingsRequest, RequestConverters::indexPutSettings, @@ -508,25 +1032,31 @@ public final class IndicesClient { } /** - * Puts an index template using the Index Templates API - *

+ * Puts an index template using the Index Templates API. * See Index Templates API * on elastic.co + * @param putIndexTemplateRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response */ - public PutIndexTemplateResponse putTemplate(PutIndexTemplateRequest putIndexTemplateRequest, Header... headers) throws IOException { - return restHighLevelClient.performRequestAndParseEntity(putIndexTemplateRequest, RequestConverters::putTemplate, - PutIndexTemplateResponse::fromXContent, emptySet(), headers); + public PutIndexTemplateResponse putTemplate(PutIndexTemplateRequest putIndexTemplateRequest, + RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(putIndexTemplateRequest, RequestConverters::putTemplate, options, + PutIndexTemplateResponse::fromXContent, emptySet()); } /** - * Asynchronously puts an index template using the Index Templates API - *

+ * Asynchronously puts an index template using the Index Templates API. * See Index Templates API * on elastic.co + * @param putIndexTemplateRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion */ - public void putTemplateAsync(PutIndexTemplateRequest putIndexTemplateRequest, - ActionListener listener, Header... headers) { - restHighLevelClient.performRequestAsyncAndParseEntity(putIndexTemplateRequest, RequestConverters::putTemplate, - PutIndexTemplateResponse::fromXContent, listener, emptySet(), headers); + public void putTemplateAsync(PutIndexTemplateRequest putIndexTemplateRequest, RequestOptions options, + ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(putIndexTemplateRequest, RequestConverters::putTemplate, options, + PutIndexTemplateResponse::fromXContent, listener, emptySet()); } } diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/IngestClient.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/IngestClient.java index 72b1813f939..5c5a82b52f4 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/IngestClient.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/IngestClient.java @@ -19,7 +19,6 @@ package org.elasticsearch.client; -import org.apache.http.Header; import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.ingest.DeletePipelineRequest; import org.elasticsearch.action.ingest.GetPipelineRequest; @@ -45,70 +44,85 @@ public final class IngestClient { } /** - * Add a pipeline or update an existing pipeline - *

+ * Add a pipeline or update an existing pipeline. * See * Put Pipeline API on elastic.co + * @param request the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response */ - public WritePipelineResponse putPipeline(PutPipelineRequest request, Header... headers) throws IOException { - return restHighLevelClient.performRequestAndParseEntity( request, RequestConverters::putPipeline, - WritePipelineResponse::fromXContent, emptySet(), headers); + public WritePipelineResponse putPipeline(PutPipelineRequest request, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity( request, RequestConverters::putPipeline, options, + WritePipelineResponse::fromXContent, emptySet()); } /** - * Asynchronously add a pipeline or update an existing pipeline - *

+ * Asynchronously add a pipeline or update an existing pipeline. * See * Put Pipeline API on elastic.co + * @param request the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion */ - public void putPipelineAsync(PutPipelineRequest request, ActionListener listener, Header... headers) { - restHighLevelClient.performRequestAsyncAndParseEntity( request, RequestConverters::putPipeline, - WritePipelineResponse::fromXContent, listener, emptySet(), headers); + public void putPipelineAsync(PutPipelineRequest request, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity( request, RequestConverters::putPipeline, options, + WritePipelineResponse::fromXContent, listener, emptySet()); } /** - * Get an existing pipeline - *

+ * Get an existing pipeline. * See * Get Pipeline API on elastic.co + * @param request the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response */ - public GetPipelineResponse getPipeline(GetPipelineRequest request, Header... headers) throws IOException { - return restHighLevelClient.performRequestAndParseEntity( request, RequestConverters::getPipeline, - GetPipelineResponse::fromXContent, emptySet(), headers); + public GetPipelineResponse getPipeline(GetPipelineRequest request, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity( request, RequestConverters::getPipeline, options, + GetPipelineResponse::fromXContent, emptySet()); } /** - * Asynchronously get an existing pipeline - *

+ * Asynchronously get an existing pipeline. * See * Get Pipeline API on elastic.co + * @param request the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion */ - public void getPipelineAsync(GetPipelineRequest request, ActionListener listener, Header... headers) { - restHighLevelClient.performRequestAsyncAndParseEntity( request, RequestConverters::getPipeline, - GetPipelineResponse::fromXContent, listener, emptySet(), headers); + public void getPipelineAsync(GetPipelineRequest request, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity( request, RequestConverters::getPipeline, options, + GetPipelineResponse::fromXContent, listener, emptySet()); } /** - * Delete an existing pipeline - *

+ * Delete an existing pipeline. * See * * Delete Pipeline API on elastic.co + * @param request the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response */ - public WritePipelineResponse deletePipeline(DeletePipelineRequest request, Header... headers) throws IOException { - return restHighLevelClient.performRequestAndParseEntity( request, RequestConverters::deletePipeline, - WritePipelineResponse::fromXContent, emptySet(), headers); + public WritePipelineResponse deletePipeline(DeletePipelineRequest request, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity( request, RequestConverters::deletePipeline, options, + WritePipelineResponse::fromXContent, emptySet()); } /** - * Asynchronously delete an existing pipeline - *

+ * Asynchronously delete an existing pipeline. * See * * Delete Pipeline API on elastic.co + * @param request the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion */ - public void deletePipelineAsync(DeletePipelineRequest request, ActionListener listener, Header... headers) { - restHighLevelClient.performRequestAsyncAndParseEntity( request, RequestConverters::deletePipeline, - WritePipelineResponse::fromXContent, listener, emptySet(), headers); + public void deletePipelineAsync(DeletePipelineRequest request, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity( request, RequestConverters::deletePipeline, options, + WritePipelineResponse::fromXContent, listener, emptySet()); } } diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/RequestConverters.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/RequestConverters.java index e5a45e19fe0..b061289888c 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/RequestConverters.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/RequestConverters.java @@ -710,7 +710,7 @@ final class RequestConverters { return request; } - static Request getSettings(GetSettingsRequest getSettingsRequest) throws IOException { + static Request getSettings(GetSettingsRequest getSettingsRequest) { String[] indices = getSettingsRequest.indices() == null ? Strings.EMPTY_ARRAY : getSettingsRequest.indices(); String[] names = getSettingsRequest.names() == null ? Strings.EMPTY_ARRAY : getSettingsRequest.names(); diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/RestHighLevelClient.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/RestHighLevelClient.java index a9587b73c19..8980508c487 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/RestHighLevelClient.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/RestHighLevelClient.java @@ -285,16 +285,19 @@ public class RestHighLevelClient implements Closeable { } /** - * Executes a bulk request using the Bulk API - * + * Executes a bulk request using the Bulk API. * See Bulk API on elastic.co + * @param bulkRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response */ public final BulkResponse bulk(BulkRequest bulkRequest, RequestOptions options) throws IOException { return performRequestAndParseEntity(bulkRequest, RequestConverters::bulk, options, BulkResponse::fromXContent, emptySet()); } /** - * Executes a bulk request using the Bulk API + * Executes a bulk request using the Bulk API. * * See Bulk API on elastic.co * @deprecated Prefer {@link #bulk(BulkRequest, RequestOptions)} @@ -305,16 +308,18 @@ public class RestHighLevelClient implements Closeable { } /** - * Asynchronously executes a bulk request using the Bulk API - * + * Asynchronously executes a bulk request using the Bulk API. * See Bulk API on elastic.co + * @param bulkRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion */ public final void bulkAsync(BulkRequest bulkRequest, RequestOptions options, ActionListener listener) { performRequestAsyncAndParseEntity(bulkRequest, RequestConverters::bulk, options, BulkResponse::fromXContent, listener, emptySet()); } /** - * Asynchronously executes a bulk request using the Bulk API + * Asynchronously executes a bulk request using the Bulk API. * * See Bulk API on elastic.co * @deprecated Prefer {@link #bulkAsync(BulkRequest, RequestOptions, ActionListener)} @@ -326,194 +331,482 @@ public class RestHighLevelClient implements Closeable { /** * Pings the remote Elasticsearch cluster and returns true if the ping succeeded, false otherwise + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return true if the ping succeeded, false otherwise + * @throws IOException in case there is a problem sending the request */ + public final boolean ping(RequestOptions options) throws IOException { + return performRequest(new MainRequest(), (request) -> RequestConverters.ping(), options, RestHighLevelClient::convertExistsResponse, + emptySet()); + } + + /** + * Pings the remote Elasticsearch cluster and returns true if the ping succeeded, false otherwise + * @deprecated Prefer {@link #ping(RequestOptions)} + */ + @Deprecated public final boolean ping(Header... headers) throws IOException { return performRequest(new MainRequest(), (request) -> RequestConverters.ping(), RestHighLevelClient::convertExistsResponse, emptySet(), headers); } /** - * Get the cluster info otherwise provided when sending an HTTP request to port 9200 + * Get the cluster info otherwise provided when sending an HTTP request to '/' + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response */ + public final MainResponse info(RequestOptions options) throws IOException { + return performRequestAndParseEntity(new MainRequest(), (request) -> RequestConverters.info(), options, + MainResponse::fromXContent, emptySet()); + } + + /** + * Get the cluster info otherwise provided when sending an HTTP request to port 9200 + * @deprecated Prefer {@link #info(RequestOptions)} + */ + @Deprecated public final MainResponse info(Header... headers) throws IOException { return performRequestAndParseEntity(new MainRequest(), (request) -> RequestConverters.info(), MainResponse::fromXContent, emptySet(), headers); } /** - * Retrieves a document by id using the Get API + * Retrieves a document by id using the Get API. + * See Get API on elastic.co + * @param getRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public final GetResponse get(GetRequest getRequest, RequestOptions options) throws IOException { + return performRequestAndParseEntity(getRequest, RequestConverters::get, options, GetResponse::fromXContent, singleton(404)); + } + + /** + * Retrieves a document by id using the Get API. * * See Get API on elastic.co + * @deprecated Prefer {@link #get(GetRequest, RequestOptions)} */ + @Deprecated public final GetResponse get(GetRequest getRequest, Header... headers) throws IOException { return performRequestAndParseEntity(getRequest, RequestConverters::get, GetResponse::fromXContent, singleton(404), headers); } /** - * Asynchronously retrieves a document by id using the Get API + * Asynchronously retrieves a document by id using the Get API. + * See Get API on elastic.co + * @param getRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public final void getAsync(GetRequest getRequest, RequestOptions options, ActionListener listener) { + performRequestAsyncAndParseEntity(getRequest, RequestConverters::get, options, GetResponse::fromXContent, listener, + singleton(404)); + } + + /** + * Asynchronously retrieves a document by id using the Get API. * * See Get API on elastic.co + * @deprecated Prefer {@link #getAsync(GetRequest, RequestOptions, ActionListener)} */ + @Deprecated public final void getAsync(GetRequest getRequest, ActionListener listener, Header... headers) { performRequestAsyncAndParseEntity(getRequest, RequestConverters::get, GetResponse::fromXContent, listener, singleton(404), headers); } /** - * Retrieves multiple documents by id using the Multi Get API + * Retrieves multiple documents by id using the Multi Get API. + * See Multi Get API on elastic.co + * @param multiGetRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public final MultiGetResponse multiGet(MultiGetRequest multiGetRequest, RequestOptions options) throws IOException { + return performRequestAndParseEntity(multiGetRequest, RequestConverters::multiGet, options, MultiGetResponse::fromXContent, + singleton(404)); + } + + /** + * Retrieves multiple documents by id using the Multi Get API. * * See Multi Get API on elastic.co + * @deprecated Prefer {@link #multiGet(MultiGetRequest, RequestOptions)} */ + @Deprecated public final MultiGetResponse multiGet(MultiGetRequest multiGetRequest, Header... headers) throws IOException { return performRequestAndParseEntity(multiGetRequest, RequestConverters::multiGet, MultiGetResponse::fromXContent, singleton(404), headers); } /** - * Asynchronously retrieves multiple documents by id using the Multi Get API + * Asynchronously retrieves multiple documents by id using the Multi Get API. + * See Multi Get API on elastic.co + * @param multiGetRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public final void multiGetAsync(MultiGetRequest multiGetRequest, RequestOptions options, ActionListener listener) { + performRequestAsyncAndParseEntity(multiGetRequest, RequestConverters::multiGet, options, MultiGetResponse::fromXContent, listener, + singleton(404)); + } + + /** + * Asynchronously retrieves multiple documents by id using the Multi Get API. * * See Multi Get API on elastic.co + * @deprecated Prefer {@link #multiGetAsync(MultiGetRequest, RequestOptions, ActionListener)} */ + @Deprecated public final void multiGetAsync(MultiGetRequest multiGetRequest, ActionListener listener, Header... headers) { performRequestAsyncAndParseEntity(multiGetRequest, RequestConverters::multiGet, MultiGetResponse::fromXContent, listener, singleton(404), headers); } /** - * Checks for the existence of a document. Returns true if it exists, false otherwise + * Checks for the existence of a document. Returns true if it exists, false otherwise. + * See Get API on elastic.co + * @param getRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return true if the document exists, false otherwise + * @throws IOException in case there is a problem sending the request + */ + public final boolean exists(GetRequest getRequest, RequestOptions options) throws IOException { + return performRequest(getRequest, RequestConverters::exists, options, RestHighLevelClient::convertExistsResponse, emptySet()); + } + + /** + * Checks for the existence of a document. Returns true if it exists, false otherwise. * * See Get API on elastic.co + * @deprecated Prefer {@link #exists(GetRequest, RequestOptions)} */ + @Deprecated public final boolean exists(GetRequest getRequest, Header... headers) throws IOException { return performRequest(getRequest, RequestConverters::exists, RestHighLevelClient::convertExistsResponse, emptySet(), headers); } /** - * Asynchronously checks for the existence of a document. Returns true if it exists, false otherwise + * Asynchronously checks for the existence of a document. Returns true if it exists, false otherwise. + * See Get API on elastic.co + * @param getRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public final void existsAsync(GetRequest getRequest, RequestOptions options, ActionListener listener) { + performRequestAsync(getRequest, RequestConverters::exists, options, RestHighLevelClient::convertExistsResponse, listener, + emptySet()); + } + + /** + * Asynchronously checks for the existence of a document. Returns true if it exists, false otherwise. * * See Get API on elastic.co + * @deprecated Prefer {@link #existsAsync(GetRequest, RequestOptions, ActionListener)} */ + @Deprecated public final void existsAsync(GetRequest getRequest, ActionListener listener, Header... headers) { performRequestAsync(getRequest, RequestConverters::exists, RestHighLevelClient::convertExistsResponse, listener, emptySet(), headers); } /** - * Index a document using the Index API + * Index a document using the Index API. + * See Index API on elastic.co + * @param indexRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public final IndexResponse index(IndexRequest indexRequest, RequestOptions options) throws IOException { + return performRequestAndParseEntity(indexRequest, RequestConverters::index, options, IndexResponse::fromXContent, emptySet()); + } + + /** + * Index a document using the Index API. * * See Index API on elastic.co + * @deprecated Prefer {@link #index(IndexRequest, RequestOptions)} */ + @Deprecated public final IndexResponse index(IndexRequest indexRequest, Header... headers) throws IOException { return performRequestAndParseEntity(indexRequest, RequestConverters::index, IndexResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously index a document using the Index API + * Asynchronously index a document using the Index API. + * See Index API on elastic.co + * @param indexRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public final void indexAsync(IndexRequest indexRequest, RequestOptions options, ActionListener listener) { + performRequestAsyncAndParseEntity(indexRequest, RequestConverters::index, options, IndexResponse::fromXContent, listener, + emptySet()); + } + + /** + * Asynchronously index a document using the Index API. * * See Index API on elastic.co + * @deprecated Prefer {@link #indexAsync(IndexRequest, RequestOptions, ActionListener)} */ + @Deprecated public final void indexAsync(IndexRequest indexRequest, ActionListener listener, Header... headers) { performRequestAsyncAndParseEntity(indexRequest, RequestConverters::index, IndexResponse::fromXContent, listener, emptySet(), headers); } /** - * Updates a document using the Update API + * Updates a document using the Update API. + * See Update API on elastic.co + * @param updateRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public final UpdateResponse update(UpdateRequest updateRequest, RequestOptions options) throws IOException { + return performRequestAndParseEntity(updateRequest, RequestConverters::update, options, UpdateResponse::fromXContent, emptySet()); + } + + /** + * Updates a document using the Update API. *

* See Update API on elastic.co + * @deprecated Prefer {@link #update(UpdateRequest, RequestOptions)} */ + @Deprecated public final UpdateResponse update(UpdateRequest updateRequest, Header... headers) throws IOException { return performRequestAndParseEntity(updateRequest, RequestConverters::update, UpdateResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously updates a document using the Update API + * Asynchronously updates a document using the Update API. + * See Update API on elastic.co + * @param updateRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public final void updateAsync(UpdateRequest updateRequest, RequestOptions options, ActionListener listener) { + performRequestAsyncAndParseEntity(updateRequest, RequestConverters::update, options, UpdateResponse::fromXContent, listener, + emptySet()); + } + + /** + * Asynchronously updates a document using the Update API. *

* See Update API on elastic.co + * @deprecated Prefer {@link #updateAsync(UpdateRequest, RequestOptions, ActionListener)} */ + @Deprecated public final void updateAsync(UpdateRequest updateRequest, ActionListener listener, Header... headers) { performRequestAsyncAndParseEntity(updateRequest, RequestConverters::update, UpdateResponse::fromXContent, listener, emptySet(), headers); } /** - * Deletes a document by id using the Delete API + * Deletes a document by id using the Delete API. + * See Delete API on elastic.co + * @param deleteRequest the reuqest + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public final DeleteResponse delete(DeleteRequest deleteRequest, RequestOptions options) throws IOException { + return performRequestAndParseEntity(deleteRequest, RequestConverters::delete, options, DeleteResponse::fromXContent, + singleton(404)); + } + + /** + * Deletes a document by id using the Delete API. * * See Delete API on elastic.co + * @deprecated Prefer {@link #delete(DeleteRequest, RequestOptions)} */ + @Deprecated public final DeleteResponse delete(DeleteRequest deleteRequest, Header... headers) throws IOException { return performRequestAndParseEntity(deleteRequest, RequestConverters::delete, DeleteResponse::fromXContent, singleton(404), headers); } /** - * Asynchronously deletes a document by id using the Delete API - * + * Asynchronously deletes a document by id using the Delete API. * See Delete API on elastic.co + * @param deleteRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion */ - public final void deleteAsync(DeleteRequest deleteRequest, ActionListener listener, Header... headers) { - performRequestAsyncAndParseEntity(deleteRequest, RequestConverters::delete, DeleteResponse::fromXContent, listener, - Collections.singleton(404), headers); + public final void deleteAsync(DeleteRequest deleteRequest, RequestOptions options, ActionListener listener) { + performRequestAsyncAndParseEntity(deleteRequest, RequestConverters::delete, options, DeleteResponse::fromXContent, listener, + Collections.singleton(404)); } /** - * Executes a search using the Search API + * Asynchronously deletes a document by id using the Delete API. + * + * See Delete API on elastic.co + * @deprecated Prefer {@link #deleteAsync(DeleteRequest, RequestOptions, ActionListener)} + */ + @Deprecated + public final void deleteAsync(DeleteRequest deleteRequest, ActionListener listener, Header... headers) { + performRequestAsyncAndParseEntity(deleteRequest, RequestConverters::delete, DeleteResponse::fromXContent, listener, + Collections.singleton(404), headers); + } + + /** + * Executes a search request using the Search API. + * See Search API on elastic.co + * @param searchRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public final SearchResponse search(SearchRequest searchRequest, RequestOptions options) throws IOException { + return performRequestAndParseEntity(searchRequest, RequestConverters::search, options, SearchResponse::fromXContent, emptySet()); + } + + /** + * Executes a search using the Search API. * * See Search API on elastic.co + * @deprecated Prefer {@link #search(SearchRequest, RequestOptions)} */ + @Deprecated public final SearchResponse search(SearchRequest searchRequest, Header... headers) throws IOException { return performRequestAndParseEntity(searchRequest, RequestConverters::search, SearchResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously executes a search using the Search API + * Asynchronously executes a search using the Search API. + * See Search API on elastic.co + * @param searchRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public final void searchAsync(SearchRequest searchRequest, RequestOptions options, ActionListener listener) { + performRequestAsyncAndParseEntity(searchRequest, RequestConverters::search, options, SearchResponse::fromXContent, listener, + emptySet()); + } + + /** + * Asynchronously executes a search using the Search API. * * See Search API on elastic.co + * @deprecated Prefer {@link #searchAsync(SearchRequest, RequestOptions, ActionListener)} */ + @Deprecated public final void searchAsync(SearchRequest searchRequest, ActionListener listener, Header... headers) { performRequestAsyncAndParseEntity(searchRequest, RequestConverters::search, SearchResponse::fromXContent, listener, emptySet(), headers); } /** - * Executes a multi search using the msearch API + * Executes a multi search using the msearch API. + * See Multi search API on + * elastic.co + * @param multiSearchRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public final MultiSearchResponse multiSearch(MultiSearchRequest multiSearchRequest, RequestOptions options) throws IOException { + return performRequestAndParseEntity(multiSearchRequest, RequestConverters::multiSearch, options, MultiSearchResponse::fromXContext, + emptySet()); + } + + /** + * Executes a multi search using the msearch API. * * See Multi search API on * elastic.co + * @deprecated Prefer {@link #multiSearch(MultiSearchRequest, RequestOptions)} */ + @Deprecated public final MultiSearchResponse multiSearch(MultiSearchRequest multiSearchRequest, Header... headers) throws IOException { return performRequestAndParseEntity(multiSearchRequest, RequestConverters::multiSearch, MultiSearchResponse::fromXContext, emptySet(), headers); } /** - * Asynchronously executes a multi search using the msearch API + * Asynchronously executes a multi search using the msearch API. + * See Multi search API on + * elastic.co + * @param searchRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public final void multiSearchAsync(MultiSearchRequest searchRequest, RequestOptions options, + ActionListener listener) { + performRequestAsyncAndParseEntity(searchRequest, RequestConverters::multiSearch, options, MultiSearchResponse::fromXContext, + listener, emptySet()); + } + + /** + * Asynchronously executes a multi search using the msearch API. * * See Multi search API on * elastic.co + * @deprecated Prefer {@link #multiSearchAsync(MultiSearchRequest, RequestOptions, ActionListener)} */ + @Deprecated public final void multiSearchAsync(MultiSearchRequest searchRequest, ActionListener listener, Header... headers) { performRequestAsyncAndParseEntity(searchRequest, RequestConverters::multiSearch, MultiSearchResponse::fromXContext, listener, emptySet(), headers); } /** - * Executes a search using the Search Scroll API + * Executes a search using the Search Scroll API. + * See Search Scroll + * API on elastic.co + * @param searchScrollRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public final SearchResponse searchScroll(SearchScrollRequest searchScrollRequest, RequestOptions options) throws IOException { + return performRequestAndParseEntity(searchScrollRequest, RequestConverters::searchScroll, options, SearchResponse::fromXContent, + emptySet()); + } + + /** + * Executes a search using the Search Scroll API. * * See Search Scroll * API on elastic.co + * @deprecated Prefer {@link #searchScroll(SearchScrollRequest, RequestOptions)} */ + @Deprecated public final SearchResponse searchScroll(SearchScrollRequest searchScrollRequest, Header... headers) throws IOException { return performRequestAndParseEntity(searchScrollRequest, RequestConverters::searchScroll, SearchResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously executes a search using the Search Scroll API + * Asynchronously executes a search using the Search Scroll API. + * See Search Scroll + * API on elastic.co + * @param searchScrollRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public final void searchScrollAsync(SearchScrollRequest searchScrollRequest, RequestOptions options, + ActionListener listener) { + performRequestAsyncAndParseEntity(searchScrollRequest, RequestConverters::searchScroll, options, SearchResponse::fromXContent, + listener, emptySet()); + } + + /** + * Asynchronously executes a search using the Search Scroll API. * * See Search Scroll * API on elastic.co + * @deprecated Prefer {@link #searchScrollAsync(SearchScrollRequest, RequestOptions, ActionListener)} */ + @Deprecated public final void searchScrollAsync(SearchScrollRequest searchScrollRequest, ActionListener listener, Header... headers) { performRequestAsyncAndParseEntity(searchScrollRequest, RequestConverters::searchScroll, SearchResponse::fromXContent, @@ -521,22 +814,54 @@ public class RestHighLevelClient implements Closeable { } /** - * Clears one or more scroll ids using the Clear Scroll API + * Clears one or more scroll ids using the Clear Scroll API. + * See + * Clear Scroll API on elastic.co + * @param clearScrollRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public final ClearScrollResponse clearScroll(ClearScrollRequest clearScrollRequest, RequestOptions options) throws IOException { + return performRequestAndParseEntity(clearScrollRequest, RequestConverters::clearScroll, options, ClearScrollResponse::fromXContent, + emptySet()); + } + + /** + * Clears one or more scroll ids using the Clear Scroll API. * * See * Clear Scroll API on elastic.co + * @deprecated Prefer {@link #clearScroll(ClearScrollRequest, RequestOptions)} */ + @Deprecated public final ClearScrollResponse clearScroll(ClearScrollRequest clearScrollRequest, Header... headers) throws IOException { return performRequestAndParseEntity(clearScrollRequest, RequestConverters::clearScroll, ClearScrollResponse::fromXContent, emptySet(), headers); } /** - * Asynchronously clears one or more scroll ids using the Clear Scroll API + * Asynchronously clears one or more scroll ids using the Clear Scroll API. + * See + * Clear Scroll API on elastic.co + * @param clearScrollRequest the reuqest + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public final void clearScrollAsync(ClearScrollRequest clearScrollRequest, RequestOptions options, + ActionListener listener) { + performRequestAsyncAndParseEntity(clearScrollRequest, RequestConverters::clearScroll, options, ClearScrollResponse::fromXContent, + listener, emptySet()); + } + + /** + * Asynchronously clears one or more scroll ids using the Clear Scroll API. * * See * Clear Scroll API on elastic.co + * @deprecated Prefer {@link #clearScrollAsync(ClearScrollRequest, RequestOptions, ActionListener)} */ + @Deprecated public final void clearScrollAsync(ClearScrollRequest clearScrollRequest, ActionListener listener, Header... headers) { performRequestAsyncAndParseEntity(clearScrollRequest, RequestConverters::clearScroll, ClearScrollResponse::fromXContent, @@ -545,47 +870,79 @@ public class RestHighLevelClient implements Closeable { /** * Executes a request using the Search Template API. - * * See Search Template API * on elastic.co. + * @param searchTemplateRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response */ public final SearchTemplateResponse searchTemplate(SearchTemplateRequest searchTemplateRequest, - Header... headers) throws IOException { - return performRequestAndParseEntity(searchTemplateRequest, RequestConverters::searchTemplate, - SearchTemplateResponse::fromXContent, emptySet(), headers); + RequestOptions options) throws IOException { + return performRequestAndParseEntity(searchTemplateRequest, RequestConverters::searchTemplate, options, + SearchTemplateResponse::fromXContent, emptySet()); } /** - * Asynchronously executes a request using the Search Template API + * Asynchronously executes a request using the Search Template API. * * See Search Template API * on elastic.co. */ - public final void searchTemplateAsync(SearchTemplateRequest searchTemplateRequest, - ActionListener listener, - Header... headers) { - performRequestAsyncAndParseEntity(searchTemplateRequest, RequestConverters::searchTemplate, - SearchTemplateResponse::fromXContent, listener, emptySet(), headers); + public final void searchTemplateAsync(SearchTemplateRequest searchTemplateRequest, RequestOptions options, + ActionListener listener) { + performRequestAsyncAndParseEntity(searchTemplateRequest, RequestConverters::searchTemplate, options, + SearchTemplateResponse::fromXContent, listener, emptySet()); } + /** + * Executes a request using the Ranking Evaluation API. + * See Ranking Evaluation API + * on elastic.co + * @param rankEvalRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + */ + public final RankEvalResponse rankEval(RankEvalRequest rankEvalRequest, RequestOptions options) throws IOException { + return performRequestAndParseEntity(rankEvalRequest, RequestConverters::rankEval, options, RankEvalResponse::fromXContent, + emptySet()); + } /** * Executes a request using the Ranking Evaluation API. * * See Ranking Evaluation API * on elastic.co + * @deprecated Prefer {@link #rankEval(RankEvalRequest, RequestOptions)} */ + @Deprecated public final RankEvalResponse rankEval(RankEvalRequest rankEvalRequest, Header... headers) throws IOException { return performRequestAndParseEntity(rankEvalRequest, RequestConverters::rankEval, RankEvalResponse::fromXContent, emptySet(), headers); } + /** + * Asynchronously executes a request using the Ranking Evaluation API. + * See Ranking Evaluation API + * on elastic.co + * @param rankEvalRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public final void rankEvalAsync(RankEvalRequest rankEvalRequest, RequestOptions options, ActionListener listener) { + performRequestAsyncAndParseEntity(rankEvalRequest, RequestConverters::rankEval, options, RankEvalResponse::fromXContent, listener, + emptySet()); + } + /** * Asynchronously executes a request using the Ranking Evaluation API. * * See Ranking Evaluation API * on elastic.co + * @deprecated Prefer {@link #rankEvalAsync(RankEvalRequest, RequestOptions, ActionListener)} */ + @Deprecated public final void rankEvalAsync(RankEvalRequest rankEvalRequest, ActionListener listener, Header... headers) { performRequestAsyncAndParseEntity(rankEvalRequest, RequestConverters::rankEval, RankEvalResponse::fromXContent, listener, emptySet(), headers); @@ -593,27 +950,31 @@ public class RestHighLevelClient implements Closeable { /** * Executes a request using the Field Capabilities API. - * * See Field Capabilities API * on elastic.co. + * @param fieldCapabilitiesRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response */ public final FieldCapabilitiesResponse fieldCaps(FieldCapabilitiesRequest fieldCapabilitiesRequest, - Header... headers) throws IOException { - return performRequestAndParseEntity(fieldCapabilitiesRequest, RequestConverters::fieldCaps, - FieldCapabilitiesResponse::fromXContent, emptySet(), headers); + RequestOptions options) throws IOException { + return performRequestAndParseEntity(fieldCapabilitiesRequest, RequestConverters::fieldCaps, options, + FieldCapabilitiesResponse::fromXContent, emptySet()); } /** * Asynchronously executes a request using the Field Capabilities API. - * * See Field Capabilities API * on elastic.co. + * @param fieldCapabilitiesRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion */ - public final void fieldCapsAsync(FieldCapabilitiesRequest fieldCapabilitiesRequest, - ActionListener listener, - Header... headers) { - performRequestAsyncAndParseEntity(fieldCapabilitiesRequest, RequestConverters::fieldCaps, - FieldCapabilitiesResponse::fromXContent, listener, emptySet(), headers); + public final void fieldCapsAsync(FieldCapabilitiesRequest fieldCapabilitiesRequest, RequestOptions options, + ActionListener listener) { + performRequestAsyncAndParseEntity(fieldCapabilitiesRequest, RequestConverters::fieldCaps, options, + FieldCapabilitiesResponse::fromXContent, listener, emptySet()); } @Deprecated diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/SnapshotClient.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/SnapshotClient.java index 104bc912711..b7cd2d52732 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/SnapshotClient.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/SnapshotClient.java @@ -19,7 +19,6 @@ package org.elasticsearch.client; -import org.apache.http.Header; import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.admin.cluster.repositories.delete.DeleteRepositoryRequest; import org.elasticsearch.action.admin.cluster.repositories.delete.DeleteRepositoryResponse; @@ -49,97 +48,117 @@ public final class SnapshotClient { /** * Gets a list of snapshot repositories. If the list of repositories is empty or it contains a single element "_all", all * registered repositories are returned. - *

* See Snapshot and Restore * API on elastic.co + * @param getRepositoriesRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response */ - public GetRepositoriesResponse getRepositories(GetRepositoriesRequest getRepositoriesRequest, Header... headers) + public GetRepositoriesResponse getRepositories(GetRepositoriesRequest getRepositoriesRequest, RequestOptions options) throws IOException { - return restHighLevelClient.performRequestAndParseEntity(getRepositoriesRequest, RequestConverters::getRepositories, - GetRepositoriesResponse::fromXContent, emptySet(), headers); + return restHighLevelClient.performRequestAndParseEntity(getRepositoriesRequest, RequestConverters::getRepositories, options, + GetRepositoriesResponse::fromXContent, emptySet()); } /** * Asynchronously gets a list of snapshot repositories. If the list of repositories is empty or it contains a single element "_all", all * registered repositories are returned. - *

* See Snapshot and Restore * API on elastic.co + * @param getRepositoriesRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion */ - public void getRepositoriesAsync(GetRepositoriesRequest getRepositoriesRequest, - ActionListener listener, Header... headers) { - restHighLevelClient.performRequestAsyncAndParseEntity(getRepositoriesRequest, RequestConverters::getRepositories, - GetRepositoriesResponse::fromXContent, listener, emptySet(), headers); + public void getRepositoriesAsync(GetRepositoriesRequest getRepositoriesRequest, RequestOptions options, + ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(getRepositoriesRequest, RequestConverters::getRepositories, options, + GetRepositoriesResponse::fromXContent, listener, emptySet()); } /** * Creates a snapshot repository. - *

* See Snapshot and Restore * API on elastic.co + * @param putRepositoryRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response */ - public PutRepositoryResponse createRepository(PutRepositoryRequest putRepositoryRequest, Header... headers) throws IOException { - return restHighLevelClient.performRequestAndParseEntity(putRepositoryRequest, RequestConverters::createRepository, - PutRepositoryResponse::fromXContent, emptySet(), headers); + public PutRepositoryResponse createRepository(PutRepositoryRequest putRepositoryRequest, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(putRepositoryRequest, RequestConverters::createRepository, options, + PutRepositoryResponse::fromXContent, emptySet()); } /** * Asynchronously creates a snapshot repository. - *

* See Snapshot and Restore * API on elastic.co + * @param putRepositoryRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion */ - public void createRepositoryAsync(PutRepositoryRequest putRepositoryRequest, - ActionListener listener, Header... headers) { - restHighLevelClient.performRequestAsyncAndParseEntity(putRepositoryRequest, RequestConverters::createRepository, - PutRepositoryResponse::fromXContent, listener, emptySet(), headers); + public void createRepositoryAsync(PutRepositoryRequest putRepositoryRequest, RequestOptions options, + ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(putRepositoryRequest, RequestConverters::createRepository, options, + PutRepositoryResponse::fromXContent, listener, emptySet()); } /** * Deletes a snapshot repository. - *

* See Snapshot and Restore * API on elastic.co + * @param deleteRepositoryRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response */ - public DeleteRepositoryResponse deleteRepository(DeleteRepositoryRequest deleteRepositoryRequest, Header... headers) + public DeleteRepositoryResponse deleteRepository(DeleteRepositoryRequest deleteRepositoryRequest, RequestOptions options) throws IOException { - return restHighLevelClient.performRequestAndParseEntity(deleteRepositoryRequest, RequestConverters::deleteRepository, - DeleteRepositoryResponse::fromXContent, emptySet(), headers); + return restHighLevelClient.performRequestAndParseEntity(deleteRepositoryRequest, RequestConverters::deleteRepository, options, + DeleteRepositoryResponse::fromXContent, emptySet()); } /** * Asynchronously deletes a snapshot repository. - *

* See Snapshot and Restore * API on elastic.co + * @param deleteRepositoryRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion */ - public void deleteRepositoryAsync(DeleteRepositoryRequest deleteRepositoryRequest, - ActionListener listener, Header... headers) { - restHighLevelClient.performRequestAsyncAndParseEntity(deleteRepositoryRequest, RequestConverters::deleteRepository, - DeleteRepositoryResponse::fromXContent, listener, emptySet(), headers); + public void deleteRepositoryAsync(DeleteRepositoryRequest deleteRepositoryRequest, RequestOptions options, + ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(deleteRepositoryRequest, RequestConverters::deleteRepository, options, + DeleteRepositoryResponse::fromXContent, listener, emptySet()); } /** * Verifies a snapshot repository. - *

* See Snapshot and Restore * API on elastic.co + * @param verifyRepositoryRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response */ - public VerifyRepositoryResponse verifyRepository(VerifyRepositoryRequest verifyRepositoryRequest, Header... headers) + public VerifyRepositoryResponse verifyRepository(VerifyRepositoryRequest verifyRepositoryRequest, RequestOptions options) throws IOException { - return restHighLevelClient.performRequestAndParseEntity(verifyRepositoryRequest, RequestConverters::verifyRepository, - VerifyRepositoryResponse::fromXContent, emptySet(), headers); + return restHighLevelClient.performRequestAndParseEntity(verifyRepositoryRequest, RequestConverters::verifyRepository, options, + VerifyRepositoryResponse::fromXContent, emptySet()); } /** * Asynchronously verifies a snapshot repository. - *

* See Snapshot and Restore * API on elastic.co + * @param verifyRepositoryRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion */ - public void verifyRepositoryAsync(VerifyRepositoryRequest verifyRepositoryRequest, - ActionListener listener, Header... headers) { - restHighLevelClient.performRequestAsyncAndParseEntity(verifyRepositoryRequest, RequestConverters::verifyRepository, - VerifyRepositoryResponse::fromXContent, listener, emptySet(), headers); + public void verifyRepositoryAsync(VerifyRepositoryRequest verifyRepositoryRequest, RequestOptions options, + ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(verifyRepositoryRequest, RequestConverters::verifyRepository, options, + VerifyRepositoryResponse::fromXContent, listener, emptySet()); } } diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/TasksClient.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/TasksClient.java index 214f1e7884a..f4a76e78b94 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/TasksClient.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/TasksClient.java @@ -19,7 +19,6 @@ package org.elasticsearch.client; -import org.apache.http.Header; import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksRequest; import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksResponse; @@ -33,7 +32,7 @@ import static java.util.Collections.emptySet; *

* See Task Management API on elastic.co */ -public class TasksClient { +public final class TasksClient { private final RestHighLevelClient restHighLevelClient; TasksClient(RestHighLevelClient restHighLevelClient) { @@ -41,24 +40,29 @@ public class TasksClient { } /** - * Get current tasks using the Task Management API - *

+ * Get current tasks using the Task Management API. * See * Task Management API on elastic.co + * @param request the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response */ - public ListTasksResponse list(ListTasksRequest request, Header... headers) throws IOException { - return restHighLevelClient.performRequestAndParseEntity(request, RequestConverters::listTasks, ListTasksResponse::fromXContent, - emptySet(), headers); + public ListTasksResponse list(ListTasksRequest request, RequestOptions options) throws IOException { + return restHighLevelClient.performRequestAndParseEntity(request, RequestConverters::listTasks, options, + ListTasksResponse::fromXContent, emptySet()); } /** - * Asynchronously get current tasks using the Task Management API - *

+ * Asynchronously get current tasks using the Task Management API. * See * Task Management API on elastic.co + * @param request the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion */ - public void listAsync(ListTasksRequest request, ActionListener listener, Header... headers) { - restHighLevelClient.performRequestAsyncAndParseEntity(request, RequestConverters::listTasks, ListTasksResponse::fromXContent, - listener, emptySet(), headers); + public void listAsync(ListTasksRequest request, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity(request, RequestConverters::listTasks, options, + ListTasksResponse::fromXContent, listener, emptySet()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/BulkProcessorIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/BulkProcessorIT.java index 9782b1016b4..d41c47177f9 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/BulkProcessorIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/BulkProcessorIT.java @@ -20,8 +20,6 @@ package org.elasticsearch.client; import com.carrotsearch.randomizedtesting.generators.RandomPicks; -import org.apache.http.entity.ContentType; -import org.apache.http.nio.entity.NStringEntity; import org.elasticsearch.action.bulk.BulkItemResponse; import org.elasticsearch.action.bulk.BulkProcessor; import org.elasticsearch.action.bulk.BulkRequest; @@ -39,7 +37,6 @@ import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.common.xcontent.json.JsonXContent; import java.util.Arrays; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -81,7 +78,7 @@ public class BulkProcessorIT extends ESRestHighLevelClientTestCase { assertThat(listener.afterCounts.get(), equalTo(1)); assertThat(listener.bulkFailures.size(), equalTo(0)); assertResponseItems(listener.bulkItems, numDocs); - assertMultiGetResponse(highLevelClient().multiGet(multiGetRequest), numDocs); + assertMultiGetResponse(highLevelClient().multiGet(multiGetRequest, RequestOptions.DEFAULT), numDocs); } } @@ -107,7 +104,7 @@ public class BulkProcessorIT extends ESRestHighLevelClientTestCase { assertThat(listener.afterCounts.get(), equalTo(1)); assertThat(listener.bulkFailures.size(), equalTo(0)); assertResponseItems(listener.bulkItems, numDocs); - assertMultiGetResponse(highLevelClient().multiGet(multiGetRequest), numDocs); + assertMultiGetResponse(highLevelClient().multiGet(multiGetRequest, RequestOptions.DEFAULT), numDocs); } } @@ -159,7 +156,7 @@ public class BulkProcessorIT extends ESRestHighLevelClientTestCase { assertThat(ids.add(bulkItemResponse.getId()), equalTo(true)); } - assertMultiGetResponse(highLevelClient().multiGet(multiGetRequest), numDocs); + assertMultiGetResponse(highLevelClient().multiGet(multiGetRequest, RequestOptions.DEFAULT), numDocs); } public void testBulkProcessorWaitOnClose() throws Exception { @@ -190,7 +187,7 @@ public class BulkProcessorIT extends ESRestHighLevelClientTestCase { } assertThat(listener.bulkFailures.size(), equalTo(0)); assertResponseItems(listener.bulkItems, numDocs); - assertMultiGetResponse(highLevelClient().multiGet(multiGetRequest), numDocs); + assertMultiGetResponse(highLevelClient().multiGet(multiGetRequest, RequestOptions.DEFAULT), numDocs); } public void testBulkProcessorConcurrentRequestsReadOnlyIndex() throws Exception { @@ -267,7 +264,7 @@ public class BulkProcessorIT extends ESRestHighLevelClientTestCase { } } - assertMultiGetResponse(highLevelClient().multiGet(multiGetRequest), testDocs); + assertMultiGetResponse(highLevelClient().multiGet(multiGetRequest, RequestOptions.DEFAULT), testDocs); } private static MultiGetRequest indexDocs(BulkProcessor processor, int numDocs) throws Exception { diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/BulkProcessorRetryIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/BulkProcessorRetryIT.java index 597d35a9996..fe6aa6b1017 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/BulkProcessorRetryIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/BulkProcessorRetryIT.java @@ -127,8 +127,8 @@ public class BulkProcessorRetryIT extends ESRestHighLevelClientTestCase { } } - highLevelClient().indices().refresh(new RefreshRequest()); - int multiGetResponsesCount = highLevelClient().multiGet(multiGetRequest).getResponses().length; + highLevelClient().indices().refresh(new RefreshRequest(), RequestOptions.DEFAULT); + int multiGetResponsesCount = highLevelClient().multiGet(multiGetRequest, RequestOptions.DEFAULT).getResponses().length; if (rejectedExecutionExpected) { assertThat(multiGetResponsesCount, lessThanOrEqualTo(numberOfAsyncOps)); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ClusterClientIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ClusterClientIT.java index 9314bb2e36c..f1110163b25 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ClusterClientIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ClusterClientIT.java @@ -57,6 +57,7 @@ public class ClusterClientIT extends ESRestHighLevelClientTestCase { setRequest.persistentSettings(map); ClusterUpdateSettingsResponse setResponse = execute(setRequest, highLevelClient().cluster()::putSettings, + highLevelClient().cluster()::putSettingsAsync, highLevelClient().cluster()::putSettings, highLevelClient().cluster()::putSettingsAsync); assertAcked(setResponse); @@ -79,6 +80,7 @@ public class ClusterClientIT extends ESRestHighLevelClientTestCase { resetRequest.persistentSettings("{\"" + persistentSettingKey + "\": null }", XContentType.JSON); ClusterUpdateSettingsResponse resetResponse = execute(resetRequest, highLevelClient().cluster()::putSettings, + highLevelClient().cluster()::putSettingsAsync, highLevelClient().cluster()::putSettings, highLevelClient().cluster()::putSettingsAsync); assertThat(resetResponse.getTransientSettings().get(transientSettingKey), equalTo(null)); @@ -100,6 +102,7 @@ public class ClusterClientIT extends ESRestHighLevelClientTestCase { clusterUpdateSettingsRequest.transientSettings(Settings.builder().put(setting, value).build()); ElasticsearchException exception = expectThrows(ElasticsearchException.class, () -> execute(clusterUpdateSettingsRequest, + highLevelClient().cluster()::putSettings, highLevelClient().cluster()::putSettingsAsync, highLevelClient().cluster()::putSettings, highLevelClient().cluster()::putSettingsAsync)); assertThat(exception.status(), equalTo(RestStatus.BAD_REQUEST)); assertThat(exception.getMessage(), equalTo( diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/CrudIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/CrudIT.java index f384e5706b0..81c894f242f 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/CrudIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/CrudIT.java @@ -68,12 +68,14 @@ public class CrudIT extends ESRestHighLevelClientTestCase { { // Testing deletion String docId = "id"; - highLevelClient().index(new IndexRequest("index", "type", docId).source(Collections.singletonMap("foo", "bar"))); + highLevelClient().index( + new IndexRequest("index", "type", docId).source(Collections.singletonMap("foo", "bar")), RequestOptions.DEFAULT); DeleteRequest deleteRequest = new DeleteRequest("index", "type", docId); if (randomBoolean()) { deleteRequest.version(1L); } - DeleteResponse deleteResponse = execute(deleteRequest, highLevelClient()::delete, highLevelClient()::deleteAsync); + DeleteResponse deleteResponse = execute(deleteRequest, highLevelClient()::delete, highLevelClient()::deleteAsync, + highLevelClient()::delete, highLevelClient()::deleteAsync); assertEquals("index", deleteResponse.getIndex()); assertEquals("type", deleteResponse.getType()); assertEquals(docId, deleteResponse.getId()); @@ -83,7 +85,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { // Testing non existing document String docId = "does_not_exist"; DeleteRequest deleteRequest = new DeleteRequest("index", "type", docId); - DeleteResponse deleteResponse = execute(deleteRequest, highLevelClient()::delete, highLevelClient()::deleteAsync); + DeleteResponse deleteResponse = execute(deleteRequest, highLevelClient()::delete, highLevelClient()::deleteAsync, + highLevelClient()::delete, highLevelClient()::deleteAsync); assertEquals("index", deleteResponse.getIndex()); assertEquals("type", deleteResponse.getType()); assertEquals(docId, deleteResponse.getId()); @@ -92,10 +95,12 @@ public class CrudIT extends ESRestHighLevelClientTestCase { { // Testing version conflict String docId = "version_conflict"; - highLevelClient().index(new IndexRequest("index", "type", docId).source(Collections.singletonMap("foo", "bar"))); + highLevelClient().index( + new IndexRequest("index", "type", docId).source(Collections.singletonMap("foo", "bar")), RequestOptions.DEFAULT); DeleteRequest deleteRequest = new DeleteRequest("index", "type", docId).version(2); ElasticsearchException exception = expectThrows(ElasticsearchException.class, - () -> execute(deleteRequest, highLevelClient()::delete, highLevelClient()::deleteAsync)); + () -> execute(deleteRequest, highLevelClient()::delete, highLevelClient()::deleteAsync, + highLevelClient()::delete, highLevelClient()::deleteAsync)); assertEquals(RestStatus.CONFLICT, exception.status()); assertEquals("Elasticsearch exception [type=version_conflict_engine_exception, reason=[type][" + docId + "]: " + "version conflict, current version [1] is different than the one provided [2]]", exception.getMessage()); @@ -104,10 +109,12 @@ public class CrudIT extends ESRestHighLevelClientTestCase { { // Testing version type String docId = "version_type"; - highLevelClient().index(new IndexRequest("index", "type", docId).source(Collections.singletonMap("foo", "bar")) - .versionType(VersionType.EXTERNAL).version(12)); + highLevelClient().index( + new IndexRequest("index", "type", docId).source(Collections.singletonMap("foo", "bar")) + .versionType(VersionType.EXTERNAL).version(12), RequestOptions.DEFAULT); DeleteRequest deleteRequest = new DeleteRequest("index", "type", docId).versionType(VersionType.EXTERNAL).version(13); - DeleteResponse deleteResponse = execute(deleteRequest, highLevelClient()::delete, highLevelClient()::deleteAsync); + DeleteResponse deleteResponse = execute(deleteRequest, highLevelClient()::delete, highLevelClient()::deleteAsync, + highLevelClient()::delete, highLevelClient()::deleteAsync); assertEquals("index", deleteResponse.getIndex()); assertEquals("type", deleteResponse.getType()); assertEquals(docId, deleteResponse.getId()); @@ -116,11 +123,13 @@ public class CrudIT extends ESRestHighLevelClientTestCase { { // Testing version type with a wrong version String docId = "wrong_version"; - highLevelClient().index(new IndexRequest("index", "type", docId).source(Collections.singletonMap("foo", "bar")) - .versionType(VersionType.EXTERNAL).version(12)); + highLevelClient().index( + new IndexRequest("index", "type", docId).source(Collections.singletonMap("foo", "bar")) + .versionType(VersionType.EXTERNAL).version(12), RequestOptions.DEFAULT); ElasticsearchStatusException exception = expectThrows(ElasticsearchStatusException.class, () -> { DeleteRequest deleteRequest = new DeleteRequest("index", "type", docId).versionType(VersionType.EXTERNAL).version(10); - execute(deleteRequest, highLevelClient()::delete, highLevelClient()::deleteAsync); + execute(deleteRequest, highLevelClient()::delete, highLevelClient()::deleteAsync, + highLevelClient()::delete, highLevelClient()::deleteAsync); }); assertEquals(RestStatus.CONFLICT, exception.status()); assertEquals("Elasticsearch exception [type=version_conflict_engine_exception, reason=[type][" + @@ -130,9 +139,11 @@ public class CrudIT extends ESRestHighLevelClientTestCase { { // Testing routing String docId = "routing"; - highLevelClient().index(new IndexRequest("index", "type", docId).source(Collections.singletonMap("foo", "bar")).routing("foo")); + highLevelClient().index(new IndexRequest("index", "type", docId).source(Collections.singletonMap("foo", "bar")).routing("foo"), + RequestOptions.DEFAULT); DeleteRequest deleteRequest = new DeleteRequest("index", "type", docId).routing("foo"); - DeleteResponse deleteResponse = execute(deleteRequest, highLevelClient()::delete, highLevelClient()::deleteAsync); + DeleteResponse deleteResponse = execute(deleteRequest, highLevelClient()::delete, highLevelClient()::deleteAsync, + highLevelClient()::delete, highLevelClient()::deleteAsync); assertEquals("index", deleteResponse.getIndex()); assertEquals("type", deleteResponse.getType()); assertEquals(docId, deleteResponse.getId()); @@ -143,23 +154,27 @@ public class CrudIT extends ESRestHighLevelClientTestCase { public void testExists() throws IOException { { GetRequest getRequest = new GetRequest("index", "type", "id"); - assertFalse(execute(getRequest, highLevelClient()::exists, highLevelClient()::existsAsync)); + assertFalse(execute(getRequest, highLevelClient()::exists, highLevelClient()::existsAsync, + highLevelClient()::exists, highLevelClient()::existsAsync)); } IndexRequest index = new IndexRequest("index", "type", "id"); index.source("{\"field1\":\"value1\",\"field2\":\"value2\"}", XContentType.JSON); index.setRefreshPolicy(RefreshPolicy.IMMEDIATE); - highLevelClient().index(index); + highLevelClient().index(index, RequestOptions.DEFAULT); { GetRequest getRequest = new GetRequest("index", "type", "id"); - assertTrue(execute(getRequest, highLevelClient()::exists, highLevelClient()::existsAsync)); + assertTrue(execute(getRequest, highLevelClient()::exists, highLevelClient()::existsAsync, + highLevelClient()::exists, highLevelClient()::existsAsync)); } { GetRequest getRequest = new GetRequest("index", "type", "does_not_exist"); - assertFalse(execute(getRequest, highLevelClient()::exists, highLevelClient()::existsAsync)); + assertFalse(execute(getRequest, highLevelClient()::exists, highLevelClient()::existsAsync, + highLevelClient()::exists, highLevelClient()::existsAsync)); } { GetRequest getRequest = new GetRequest("index", "type", "does_not_exist").version(1); - assertFalse(execute(getRequest, highLevelClient()::exists, highLevelClient()::existsAsync)); + assertFalse(execute(getRequest, highLevelClient()::exists, highLevelClient()::existsAsync, + highLevelClient()::exists, highLevelClient()::existsAsync)); } } @@ -167,7 +182,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { { GetRequest getRequest = new GetRequest("index", "type", "id"); ElasticsearchException exception = expectThrows(ElasticsearchException.class, - () -> execute(getRequest, highLevelClient()::get, highLevelClient()::getAsync)); + () -> execute(getRequest, highLevelClient()::get, highLevelClient()::getAsync, + highLevelClient()::get, highLevelClient()::getAsync)); assertEquals(RestStatus.NOT_FOUND, exception.status()); assertEquals("Elasticsearch exception [type=index_not_found_exception, reason=no such index]", exception.getMessage()); assertEquals("index", exception.getMetadata("es.index").get(0)); @@ -176,11 +192,12 @@ public class CrudIT extends ESRestHighLevelClientTestCase { String document = "{\"field1\":\"value1\",\"field2\":\"value2\"}"; index.source(document, XContentType.JSON); index.setRefreshPolicy(RefreshPolicy.IMMEDIATE); - highLevelClient().index(index); + highLevelClient().index(index, RequestOptions.DEFAULT); { GetRequest getRequest = new GetRequest("index", "type", "id").version(2); ElasticsearchException exception = expectThrows(ElasticsearchException.class, - () -> execute(getRequest, highLevelClient()::get, highLevelClient()::getAsync)); + () -> execute(getRequest, highLevelClient()::get, highLevelClient()::getAsync, + highLevelClient()::get, highLevelClient()::getAsync)); assertEquals(RestStatus.CONFLICT, exception.status()); assertEquals("Elasticsearch exception [type=version_conflict_engine_exception, " + "reason=[type][id]: " + "version conflict, current version [1] is different than the one provided [2]]", exception.getMessage()); @@ -191,7 +208,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { if (randomBoolean()) { getRequest.version(1L); } - GetResponse getResponse = execute(getRequest, highLevelClient()::get, highLevelClient()::getAsync); + GetResponse getResponse = execute(getRequest, highLevelClient()::get, highLevelClient()::getAsync, + highLevelClient()::get, highLevelClient()::getAsync); assertEquals("index", getResponse.getIndex()); assertEquals("type", getResponse.getType()); assertEquals("id", getResponse.getId()); @@ -202,7 +220,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { } { GetRequest getRequest = new GetRequest("index", "type", "does_not_exist"); - GetResponse getResponse = execute(getRequest, highLevelClient()::get, highLevelClient()::getAsync); + GetResponse getResponse = execute(getRequest, highLevelClient()::get, highLevelClient()::getAsync, + highLevelClient()::get, highLevelClient()::getAsync); assertEquals("index", getResponse.getIndex()); assertEquals("type", getResponse.getType()); assertEquals("does_not_exist", getResponse.getId()); @@ -214,7 +233,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { { GetRequest getRequest = new GetRequest("index", "type", "id"); getRequest.fetchSourceContext(new FetchSourceContext(false, Strings.EMPTY_ARRAY, Strings.EMPTY_ARRAY)); - GetResponse getResponse = execute(getRequest, highLevelClient()::get, highLevelClient()::getAsync); + GetResponse getResponse = execute(getRequest, highLevelClient()::get, highLevelClient()::getAsync, + highLevelClient()::get, highLevelClient()::getAsync); assertEquals("index", getResponse.getIndex()); assertEquals("type", getResponse.getType()); assertEquals("id", getResponse.getId()); @@ -230,7 +250,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { } else { getRequest.fetchSourceContext(new FetchSourceContext(true, Strings.EMPTY_ARRAY, new String[]{"field2"})); } - GetResponse getResponse = execute(getRequest, highLevelClient()::get, highLevelClient()::getAsync); + GetResponse getResponse = execute(getRequest, highLevelClient()::get, highLevelClient()::getAsync, + highLevelClient()::get, highLevelClient()::getAsync); assertEquals("index", getResponse.getIndex()); assertEquals("type", getResponse.getType()); assertEquals("id", getResponse.getId()); @@ -248,7 +269,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { MultiGetRequest multiGetRequest = new MultiGetRequest(); multiGetRequest.add("index", "type", "id1"); multiGetRequest.add("index", "type", "id2"); - MultiGetResponse response = execute(multiGetRequest, highLevelClient()::multiGet, highLevelClient()::multiGetAsync); + MultiGetResponse response = execute(multiGetRequest, highLevelClient()::multiGet, highLevelClient()::multiGetAsync, + highLevelClient()::multiGet, highLevelClient()::multiGetAsync); assertEquals(2, response.getResponses().length); assertTrue(response.getResponses()[0].isFailed()); @@ -275,12 +297,13 @@ public class CrudIT extends ESRestHighLevelClientTestCase { index = new IndexRequest("index", "type", "id2"); index.source("{\"field\":\"value2\"}", XContentType.JSON); bulk.add(index); - highLevelClient().bulk(bulk); + highLevelClient().bulk(bulk, RequestOptions.DEFAULT); { MultiGetRequest multiGetRequest = new MultiGetRequest(); multiGetRequest.add("index", "type", "id1"); multiGetRequest.add("index", "type", "id2"); - MultiGetResponse response = execute(multiGetRequest, highLevelClient()::multiGet, highLevelClient()::multiGetAsync); + MultiGetResponse response = execute(multiGetRequest, highLevelClient()::multiGet, highLevelClient()::multiGetAsync, + highLevelClient()::multiGet, highLevelClient()::multiGetAsync); assertEquals(2, response.getResponses().length); assertFalse(response.getResponses()[0].isFailed()); @@ -305,7 +328,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { IndexRequest indexRequest = new IndexRequest("index", "type"); indexRequest.source(XContentBuilder.builder(xContentType.xContent()).startObject().field("test", "test").endObject()); - IndexResponse indexResponse = execute(indexRequest, highLevelClient()::index, highLevelClient()::indexAsync); + IndexResponse indexResponse = execute(indexRequest, highLevelClient()::index, highLevelClient()::indexAsync, + highLevelClient()::index, highLevelClient()::indexAsync); assertEquals(RestStatus.CREATED, indexResponse.status()); assertEquals(DocWriteResponse.Result.CREATED, indexResponse.getResult()); assertEquals("index", indexResponse.getIndex()); @@ -326,7 +350,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { IndexRequest indexRequest = new IndexRequest("index", "type", "id"); indexRequest.source(XContentBuilder.builder(xContentType.xContent()).startObject().field("version", 1).endObject()); - IndexResponse indexResponse = execute(indexRequest, highLevelClient()::index, highLevelClient()::indexAsync); + IndexResponse indexResponse = execute(indexRequest, highLevelClient()::index, highLevelClient()::indexAsync, + highLevelClient()::index, highLevelClient()::indexAsync); assertEquals(RestStatus.CREATED, indexResponse.status()); assertEquals("index", indexResponse.getIndex()); assertEquals("type", indexResponse.getType()); @@ -336,7 +361,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { indexRequest = new IndexRequest("index", "type", "id"); indexRequest.source(XContentBuilder.builder(xContentType.xContent()).startObject().field("version", 2).endObject()); - indexResponse = execute(indexRequest, highLevelClient()::index, highLevelClient()::indexAsync); + indexResponse = execute(indexRequest, highLevelClient()::index, highLevelClient()::indexAsync, + highLevelClient()::index, highLevelClient()::indexAsync); assertEquals(RestStatus.OK, indexResponse.status()); assertEquals("index", indexResponse.getIndex()); assertEquals("type", indexResponse.getType()); @@ -348,7 +374,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { wrongRequest.source(XContentBuilder.builder(xContentType.xContent()).startObject().field("field", "test").endObject()); wrongRequest.version(5L); - execute(wrongRequest, highLevelClient()::index, highLevelClient()::indexAsync); + execute(wrongRequest, highLevelClient()::index, highLevelClient()::indexAsync, + highLevelClient()::index, highLevelClient()::indexAsync); }); assertEquals(RestStatus.CONFLICT, exception.status()); assertEquals("Elasticsearch exception [type=version_conflict_engine_exception, reason=[type][id]: " + @@ -361,7 +388,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { indexRequest.source(XContentBuilder.builder(xContentType.xContent()).startObject().field("field", "test").endObject()); indexRequest.setPipeline("missing"); - execute(indexRequest, highLevelClient()::index, highLevelClient()::indexAsync); + execute(indexRequest, highLevelClient()::index, highLevelClient()::indexAsync, + highLevelClient()::index, highLevelClient()::indexAsync); }); assertEquals(RestStatus.BAD_REQUEST, exception.status()); @@ -374,7 +402,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { indexRequest.version(12L); indexRequest.versionType(VersionType.EXTERNAL); - IndexResponse indexResponse = execute(indexRequest, highLevelClient()::index, highLevelClient()::indexAsync); + IndexResponse indexResponse = execute(indexRequest, highLevelClient()::index, highLevelClient()::indexAsync, + highLevelClient()::index, highLevelClient()::indexAsync); assertEquals(RestStatus.CREATED, indexResponse.status()); assertEquals("index", indexResponse.getIndex()); assertEquals("type", indexResponse.getType()); @@ -386,14 +415,16 @@ public class CrudIT extends ESRestHighLevelClientTestCase { indexRequest.source(XContentBuilder.builder(xContentType.xContent()).startObject().field("field", "test").endObject()); indexRequest.opType(DocWriteRequest.OpType.CREATE); - IndexResponse indexResponse = execute(indexRequest, highLevelClient()::index, highLevelClient()::indexAsync); + IndexResponse indexResponse = execute(indexRequest, highLevelClient()::index, highLevelClient()::indexAsync, + highLevelClient()::index, highLevelClient()::indexAsync); assertEquals(RestStatus.CREATED, indexResponse.status()); assertEquals("index", indexResponse.getIndex()); assertEquals("type", indexResponse.getType()); assertEquals("with_create_op_type", indexResponse.getId()); ElasticsearchStatusException exception = expectThrows(ElasticsearchStatusException.class, () -> { - execute(indexRequest, highLevelClient()::index, highLevelClient()::indexAsync); + execute(indexRequest, highLevelClient()::index, highLevelClient()::indexAsync, + highLevelClient()::index, highLevelClient()::indexAsync); }); assertEquals(RestStatus.CONFLICT, exception.status()); @@ -408,7 +439,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { updateRequest.doc(singletonMap("field", "value"), randomFrom(XContentType.values())); ElasticsearchStatusException exception = expectThrows(ElasticsearchStatusException.class, () -> - execute(updateRequest, highLevelClient()::update, highLevelClient()::updateAsync)); + execute(updateRequest, highLevelClient()::update, highLevelClient()::updateAsync, + highLevelClient()::update, highLevelClient()::updateAsync)); assertEquals(RestStatus.NOT_FOUND, exception.status()); assertEquals("Elasticsearch exception [type=document_missing_exception, reason=[type][does_not_exist]: document missing]", exception.getMessage()); @@ -416,7 +448,7 @@ public class CrudIT extends ESRestHighLevelClientTestCase { { IndexRequest indexRequest = new IndexRequest("index", "type", "id"); indexRequest.source(singletonMap("field", "value")); - IndexResponse indexResponse = highLevelClient().index(indexRequest); + IndexResponse indexResponse = highLevelClient().index(indexRequest, RequestOptions.DEFAULT); assertEquals(RestStatus.CREATED, indexResponse.status()); UpdateRequest updateRequest = new UpdateRequest("index", "type", "id"); @@ -431,7 +463,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { updateRequestConflict.version(indexResponse.getVersion()); ElasticsearchStatusException exception = expectThrows(ElasticsearchStatusException.class, () -> - execute(updateRequestConflict, highLevelClient()::update, highLevelClient()::updateAsync)); + execute(updateRequestConflict, highLevelClient()::update, highLevelClient()::updateAsync, + highLevelClient()::update, highLevelClient()::updateAsync)); assertEquals(RestStatus.CONFLICT, exception.status()); assertEquals("Elasticsearch exception [type=version_conflict_engine_exception, reason=[type][id]: version conflict, " + "current version [2] is different than the one provided [1]]", exception.getMessage()); @@ -439,7 +472,7 @@ public class CrudIT extends ESRestHighLevelClientTestCase { { IndexRequest indexRequest = new IndexRequest("index", "type", "with_script"); indexRequest.source(singletonMap("counter", 12)); - IndexResponse indexResponse = highLevelClient().index(indexRequest); + IndexResponse indexResponse = highLevelClient().index(indexRequest, RequestOptions.DEFAULT); assertEquals(RestStatus.CREATED, indexResponse.status()); UpdateRequest updateRequest = new UpdateRequest("index", "type", "with_script"); @@ -447,7 +480,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { updateRequest.script(script); updateRequest.fetchSource(true); - UpdateResponse updateResponse = execute(updateRequest, highLevelClient()::update, highLevelClient()::updateAsync); + UpdateResponse updateResponse = execute(updateRequest, highLevelClient()::update, highLevelClient()::updateAsync, + highLevelClient()::update, highLevelClient()::updateAsync); assertEquals(RestStatus.OK, updateResponse.status()); assertEquals(DocWriteResponse.Result.UPDATED, updateResponse.getResult()); assertEquals(2L, updateResponse.getVersion()); @@ -459,7 +493,7 @@ public class CrudIT extends ESRestHighLevelClientTestCase { indexRequest.source("field_1", "one", "field_3", "three"); indexRequest.version(12L); indexRequest.versionType(VersionType.EXTERNAL); - IndexResponse indexResponse = highLevelClient().index(indexRequest); + IndexResponse indexResponse = highLevelClient().index(indexRequest, RequestOptions.DEFAULT); assertEquals(RestStatus.CREATED, indexResponse.status()); assertEquals(12L, indexResponse.getVersion()); @@ -467,7 +501,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { updateRequest.doc(singletonMap("field_2", "two"), randomFrom(XContentType.values())); updateRequest.fetchSource("field_*", "field_3"); - UpdateResponse updateResponse = execute(updateRequest, highLevelClient()::update, highLevelClient()::updateAsync); + UpdateResponse updateResponse = execute(updateRequest, highLevelClient()::update, highLevelClient()::updateAsync, + highLevelClient()::update, highLevelClient()::updateAsync); assertEquals(RestStatus.OK, updateResponse.status()); assertEquals(DocWriteResponse.Result.UPDATED, updateResponse.getResult()); assertEquals(13L, updateResponse.getVersion()); @@ -481,14 +516,15 @@ public class CrudIT extends ESRestHighLevelClientTestCase { { IndexRequest indexRequest = new IndexRequest("index", "type", "noop"); indexRequest.source("field", "value"); - IndexResponse indexResponse = highLevelClient().index(indexRequest); + IndexResponse indexResponse = highLevelClient().index(indexRequest, RequestOptions.DEFAULT); assertEquals(RestStatus.CREATED, indexResponse.status()); assertEquals(1L, indexResponse.getVersion()); UpdateRequest updateRequest = new UpdateRequest("index", "type", "noop"); updateRequest.doc(singletonMap("field", "value"), randomFrom(XContentType.values())); - UpdateResponse updateResponse = execute(updateRequest, highLevelClient()::update, highLevelClient()::updateAsync); + UpdateResponse updateResponse = execute(updateRequest, highLevelClient()::update, highLevelClient()::updateAsync, + highLevelClient()::update, highLevelClient()::updateAsync); assertEquals(RestStatus.OK, updateResponse.status()); assertEquals(DocWriteResponse.Result.NOOP, updateResponse.getResult()); assertEquals(1L, updateResponse.getVersion()); @@ -506,7 +542,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { updateRequest.doc(singletonMap("doc_status", "updated")); updateRequest.fetchSource(true); - UpdateResponse updateResponse = execute(updateRequest, highLevelClient()::update, highLevelClient()::updateAsync); + UpdateResponse updateResponse = execute(updateRequest, highLevelClient()::update, highLevelClient()::updateAsync, + highLevelClient()::update, highLevelClient()::updateAsync); assertEquals(RestStatus.CREATED, updateResponse.status()); assertEquals("index", updateResponse.getIndex()); assertEquals("type", updateResponse.getType()); @@ -521,7 +558,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { updateRequest.fetchSource(true); updateRequest.docAsUpsert(true); - UpdateResponse updateResponse = execute(updateRequest, highLevelClient()::update, highLevelClient()::updateAsync); + UpdateResponse updateResponse = execute(updateRequest, highLevelClient()::update, highLevelClient()::updateAsync, + highLevelClient()::update, highLevelClient()::updateAsync); assertEquals(RestStatus.CREATED, updateResponse.status()); assertEquals("index", updateResponse.getIndex()); assertEquals("type", updateResponse.getType()); @@ -537,7 +575,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { updateRequest.scriptedUpsert(true); updateRequest.upsert(singletonMap("level", "A")); - UpdateResponse updateResponse = execute(updateRequest, highLevelClient()::update, highLevelClient()::updateAsync); + UpdateResponse updateResponse = execute(updateRequest, highLevelClient()::update, highLevelClient()::updateAsync, + highLevelClient()::update, highLevelClient()::updateAsync); assertEquals(RestStatus.CREATED, updateResponse.status()); assertEquals("index", updateResponse.getIndex()); assertEquals("type", updateResponse.getType()); @@ -552,7 +591,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { UpdateRequest updateRequest = new UpdateRequest("index", "type", "id"); updateRequest.doc(new IndexRequest().source(Collections.singletonMap("field", "doc"), XContentType.JSON)); updateRequest.upsert(new IndexRequest().source(Collections.singletonMap("field", "upsert"), XContentType.YAML)); - execute(updateRequest, highLevelClient()::update, highLevelClient()::updateAsync); + execute(updateRequest, highLevelClient()::update, highLevelClient()::updateAsync, + highLevelClient()::update, highLevelClient()::updateAsync); }); assertEquals("Update request cannot have different content types for doc [JSON] and upsert [YAML] documents", exception.getMessage()); @@ -575,7 +615,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { if (opType == DocWriteRequest.OpType.DELETE) { if (erroneous == false) { assertEquals(RestStatus.CREATED, - highLevelClient().index(new IndexRequest("index", "test", id).source("field", -1)).status()); + highLevelClient().index( + new IndexRequest("index", "test", id).source("field", -1), RequestOptions.DEFAULT).status()); } DeleteRequest deleteRequest = new DeleteRequest("index", "test", id); bulkRequest.add(deleteRequest); @@ -593,7 +634,7 @@ public class CrudIT extends ESRestHighLevelClientTestCase { } else if (opType == DocWriteRequest.OpType.CREATE) { IndexRequest createRequest = new IndexRequest("index", "test", id).source(source, xContentType).create(true); if (erroneous) { - assertEquals(RestStatus.CREATED, highLevelClient().index(createRequest).status()); + assertEquals(RestStatus.CREATED, highLevelClient().index(createRequest, RequestOptions.DEFAULT).status()); } bulkRequest.add(createRequest); @@ -602,14 +643,16 @@ public class CrudIT extends ESRestHighLevelClientTestCase { .doc(new IndexRequest().source(source, xContentType)); if (erroneous == false) { assertEquals(RestStatus.CREATED, - highLevelClient().index(new IndexRequest("index", "test", id).source("field", -1)).status()); + highLevelClient().index( + new IndexRequest("index", "test", id).source("field", -1), RequestOptions.DEFAULT).status()); } bulkRequest.add(updateRequest); } } } - BulkResponse bulkResponse = execute(bulkRequest, highLevelClient()::bulk, highLevelClient()::bulkAsync); + BulkResponse bulkResponse = execute(bulkRequest, highLevelClient()::bulk, highLevelClient()::bulkAsync, + highLevelClient()::bulk, highLevelClient()::bulkAsync); assertEquals(RestStatus.OK, bulkResponse.status()); assertTrue(bulkResponse.getTook().getMillis() > 0); assertEquals(nbItems, bulkResponse.getItems().length); @@ -662,7 +705,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { if (opType == DocWriteRequest.OpType.DELETE) { if (erroneous == false) { assertEquals(RestStatus.CREATED, - highLevelClient().index(new IndexRequest("index", "test", id).source("field", -1)).status()); + highLevelClient().index( + new IndexRequest("index", "test", id).source("field", -1), RequestOptions.DEFAULT).status()); } DeleteRequest deleteRequest = new DeleteRequest("index", "test", id); processor.add(deleteRequest); @@ -678,7 +722,7 @@ public class CrudIT extends ESRestHighLevelClientTestCase { } else if (opType == DocWriteRequest.OpType.CREATE) { IndexRequest createRequest = new IndexRequest("index", "test", id).source(xContentType, "id", i).create(true); if (erroneous) { - assertEquals(RestStatus.CREATED, highLevelClient().index(createRequest).status()); + assertEquals(RestStatus.CREATED, highLevelClient().index(createRequest, RequestOptions.DEFAULT).status()); } processor.add(createRequest); @@ -687,7 +731,8 @@ public class CrudIT extends ESRestHighLevelClientTestCase { .doc(new IndexRequest().source(xContentType, "id", i)); if (erroneous == false) { assertEquals(RestStatus.CREATED, - highLevelClient().index(new IndexRequest("index", "test", id).source("field", -1)).status()); + highLevelClient().index( + new IndexRequest("index", "test", id).source("field", -1), RequestOptions.DEFAULT).status()); } processor.add(updateRequest); } @@ -739,14 +784,14 @@ public class CrudIT extends ESRestHighLevelClientTestCase { { IndexRequest indexRequest = new IndexRequest(indexPattern, "type", "id#1"); indexRequest.source("field", "value"); - IndexResponse indexResponse = highLevelClient().index(indexRequest); + IndexResponse indexResponse = highLevelClient().index(indexRequest, RequestOptions.DEFAULT); assertEquals(expectedIndex, indexResponse.getIndex()); assertEquals("type", indexResponse.getType()); assertEquals("id#1", indexResponse.getId()); } { GetRequest getRequest = new GetRequest(indexPattern, "type", "id#1"); - GetResponse getResponse = highLevelClient().get(getRequest); + GetResponse getResponse = highLevelClient().get(getRequest, RequestOptions.DEFAULT); assertTrue(getResponse.isExists()); assertEquals(expectedIndex, getResponse.getIndex()); assertEquals("type", getResponse.getType()); @@ -757,21 +802,21 @@ public class CrudIT extends ESRestHighLevelClientTestCase { { IndexRequest indexRequest = new IndexRequest("index", "type", docId); indexRequest.source("field", "value"); - IndexResponse indexResponse = highLevelClient().index(indexRequest); + IndexResponse indexResponse = highLevelClient().index(indexRequest, RequestOptions.DEFAULT); assertEquals("index", indexResponse.getIndex()); assertEquals("type", indexResponse.getType()); assertEquals(docId, indexResponse.getId()); } { GetRequest getRequest = new GetRequest("index", "type", docId); - GetResponse getResponse = highLevelClient().get(getRequest); + GetResponse getResponse = highLevelClient().get(getRequest, RequestOptions.DEFAULT); assertTrue(getResponse.isExists()); assertEquals("index", getResponse.getIndex()); assertEquals("type", getResponse.getType()); assertEquals(docId, getResponse.getId()); } - assertTrue(highLevelClient().indices().exists(new GetIndexRequest().indices(indexPattern, "index"))); + assertTrue(highLevelClient().indices().exists(new GetIndexRequest().indices(indexPattern, "index"), RequestOptions.DEFAULT)); } public void testParamsEncode() throws IOException { @@ -781,14 +826,14 @@ public class CrudIT extends ESRestHighLevelClientTestCase { IndexRequest indexRequest = new IndexRequest("index", "type", "id"); indexRequest.source("field", "value"); indexRequest.routing(routing); - IndexResponse indexResponse = highLevelClient().index(indexRequest); + IndexResponse indexResponse = highLevelClient().index(indexRequest, RequestOptions.DEFAULT); assertEquals("index", indexResponse.getIndex()); assertEquals("type", indexResponse.getType()); assertEquals("id", indexResponse.getId()); } { GetRequest getRequest = new GetRequest("index", "type", "id").routing(routing); - GetResponse getResponse = highLevelClient().get(getRequest); + GetResponse getResponse = highLevelClient().get(getRequest, RequestOptions.DEFAULT); assertTrue(getResponse.isExists()); assertEquals("index", getResponse.getIndex()); assertEquals("type", getResponse.getType()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ESRestHighLevelClientTestCase.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ESRestHighLevelClientTestCase.java index f7a934405c2..14fe0e01d31 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ESRestHighLevelClientTestCase.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ESRestHighLevelClientTestCase.java @@ -60,23 +60,60 @@ public abstract class ESRestHighLevelClientTestCase extends ESRestTestCase { * Executes the provided request using either the sync method or its async variant, both provided as functions */ protected static Resp execute(Req request, SyncMethod syncMethod, - AsyncMethod asyncMethod, Header... headers) throws IOException { + AsyncMethod asyncMethod) throws IOException { if (randomBoolean()) { - return syncMethod.execute(request, headers); + return syncMethod.execute(request, RequestOptions.DEFAULT); } else { PlainActionFuture future = PlainActionFuture.newFuture(); - asyncMethod.execute(request, future, headers); + asyncMethod.execute(request, RequestOptions.DEFAULT, future); return future.actionGet(); } } @FunctionalInterface protected interface SyncMethod { - Response execute(Request request, Header... headers) throws IOException; + Response execute(Request request, RequestOptions options) throws IOException; } @FunctionalInterface protected interface AsyncMethod { + void execute(Request request, RequestOptions options, ActionListener listener); + } + + /** + * Executes the provided request using either the sync method or its async variant, both provided as functions + */ + @Deprecated + protected static Resp execute(Req request, SyncMethod syncMethod, AsyncMethod asyncMethod, + SyncMethodWithHeaders syncMethodWithHeaders, + AsyncMethodWithHeaders asyncMethodWithHeaders) throws IOException { + switch(randomIntBetween(0, 3)) { + case 0: + return syncMethod.execute(request, RequestOptions.DEFAULT); + case 1: + PlainActionFuture future = PlainActionFuture.newFuture(); + asyncMethod.execute(request, RequestOptions.DEFAULT, future); + return future.actionGet(); + case 2: + return syncMethodWithHeaders.execute(request); + case 3: + PlainActionFuture futureWithHeaders = PlainActionFuture.newFuture(); + asyncMethodWithHeaders.execute(request, futureWithHeaders); + return futureWithHeaders.actionGet(); + default: + throw new UnsupportedOperationException(); + } + } + + @Deprecated + @FunctionalInterface + protected interface SyncMethodWithHeaders { + Response execute(Request request, Header... headers) throws IOException; + } + + @Deprecated + @FunctionalInterface + protected interface AsyncMethodWithHeaders { void execute(Request request, ActionListener listener, Header... headers); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/IndicesClientIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/IndicesClientIT.java index 55357e06ab2..986c3380ff3 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/IndicesClientIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/IndicesClientIT.java @@ -110,6 +110,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { boolean response = execute( request, highLevelClient().indices()::exists, + highLevelClient().indices()::existsAsync, + highLevelClient().indices()::exists, highLevelClient().indices()::existsAsync ); assertTrue(response); @@ -125,6 +127,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { boolean response = execute( request, highLevelClient().indices()::exists, + highLevelClient().indices()::existsAsync, + highLevelClient().indices()::exists, highLevelClient().indices()::existsAsync ); assertFalse(response); @@ -143,6 +147,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { boolean response = execute( request, highLevelClient().indices()::exists, + highLevelClient().indices()::existsAsync, + highLevelClient().indices()::exists, highLevelClient().indices()::existsAsync ); assertFalse(response); @@ -160,7 +166,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { CreateIndexRequest createIndexRequest = new CreateIndexRequest(indexName); CreateIndexResponse createIndexResponse = - execute(createIndexRequest, highLevelClient().indices()::create, highLevelClient().indices()::createAsync); + execute(createIndexRequest, highLevelClient().indices()::create, highLevelClient().indices()::createAsync, + highLevelClient().indices()::create, highLevelClient().indices()::createAsync); assertTrue(createIndexResponse.isAcknowledged()); assertTrue(indexExists(indexName)); @@ -188,7 +195,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { createIndexRequest.mapping("type_name", mappingBuilder); CreateIndexResponse createIndexResponse = - execute(createIndexRequest, highLevelClient().indices()::create, highLevelClient().indices()::createAsync); + execute(createIndexRequest, highLevelClient().indices()::create, highLevelClient().indices()::createAsync, + highLevelClient().indices()::create, highLevelClient().indices()::createAsync); assertTrue(createIndexResponse.isAcknowledged()); Map getIndexResponse = getAsMap(indexName); @@ -323,7 +331,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { putMappingRequest.source(mappingBuilder); PutMappingResponse putMappingResponse = - execute(putMappingRequest, highLevelClient().indices()::putMapping, highLevelClient().indices()::putMappingAsync); + execute(putMappingRequest, highLevelClient().indices()::putMapping, highLevelClient().indices()::putMappingAsync, + highLevelClient().indices()::putMapping, highLevelClient().indices()::putMappingAsync); assertTrue(putMappingResponse.isAcknowledged()); Map getIndexResponse = getAsMap(indexName); @@ -375,7 +384,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest(indexName); DeleteIndexResponse deleteIndexResponse = - execute(deleteIndexRequest, highLevelClient().indices()::delete, highLevelClient().indices()::deleteAsync); + execute(deleteIndexRequest, highLevelClient().indices()::delete, highLevelClient().indices()::deleteAsync, + highLevelClient().indices()::delete, highLevelClient().indices()::deleteAsync); assertTrue(deleteIndexResponse.isAcknowledged()); assertFalse(indexExists(indexName)); @@ -388,7 +398,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest(nonExistentIndex); ElasticsearchException exception = expectThrows(ElasticsearchException.class, - () -> execute(deleteIndexRequest, highLevelClient().indices()::delete, highLevelClient().indices()::deleteAsync)); + () -> execute(deleteIndexRequest, highLevelClient().indices()::delete, highLevelClient().indices()::deleteAsync, + highLevelClient().indices()::delete, highLevelClient().indices()::deleteAsync)); assertEquals(RestStatus.NOT_FOUND, exception.status()); } } @@ -407,6 +418,7 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { addAction.routing("routing").searchRouting("search_routing").filter("{\"term\":{\"year\":2016}}"); aliasesAddRequest.addAliasAction(addAction); IndicesAliasesResponse aliasesAddResponse = execute(aliasesAddRequest, highLevelClient().indices()::updateAliases, + highLevelClient().indices()::updateAliasesAsync, highLevelClient().indices()::updateAliases, highLevelClient().indices()::updateAliasesAsync); assertTrue(aliasesAddResponse.isAcknowledged()); assertThat(aliasExists(alias), equalTo(true)); @@ -425,6 +437,7 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { AliasActions removeAction = new AliasActions(AliasActions.Type.REMOVE).index(index).alias(alias); aliasesAddRemoveRequest.addAliasAction(removeAction); IndicesAliasesResponse aliasesAddRemoveResponse = execute(aliasesAddRemoveRequest, highLevelClient().indices()::updateAliases, + highLevelClient().indices()::updateAliasesAsync, highLevelClient().indices()::updateAliases, highLevelClient().indices()::updateAliasesAsync); assertTrue(aliasesAddRemoveResponse.isAcknowledged()); assertThat(aliasExists(alias), equalTo(false)); @@ -436,6 +449,7 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { AliasActions removeIndexAction = new AliasActions(AliasActions.Type.REMOVE_INDEX).index(index); aliasesRemoveIndexRequest.addAliasAction(removeIndexAction); IndicesAliasesResponse aliasesRemoveIndexResponse = execute(aliasesRemoveIndexRequest, highLevelClient().indices()::updateAliases, + highLevelClient().indices()::updateAliasesAsync, highLevelClient().indices()::updateAliases, highLevelClient().indices()::updateAliasesAsync); assertTrue(aliasesRemoveIndexResponse.isAcknowledged()); assertThat(aliasExists(alias), equalTo(false)); @@ -453,7 +467,9 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { IndicesAliasesRequest nonExistentIndexRequest = new IndicesAliasesRequest(); nonExistentIndexRequest.addAliasAction(new AliasActions(AliasActions.Type.ADD).index(nonExistentIndex).alias(alias)); ElasticsearchException exception = expectThrows(ElasticsearchException.class, () -> execute(nonExistentIndexRequest, - highLevelClient().indices()::updateAliases, highLevelClient().indices()::updateAliasesAsync)); + highLevelClient().indices()::updateAliases, highLevelClient().indices()::updateAliasesAsync, + highLevelClient().indices()::updateAliases, + highLevelClient().indices()::updateAliasesAsync)); assertThat(exception.status(), equalTo(RestStatus.NOT_FOUND)); assertThat(exception.getMessage(), equalTo("Elasticsearch exception [type=index_not_found_exception, reason=no such index]")); assertThat(exception.getMetadata("es.index"), hasItem(nonExistentIndex)); @@ -463,7 +479,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { mixedRequest.addAliasAction(new AliasActions(AliasActions.Type.ADD).indices(index).aliases(alias)); mixedRequest.addAliasAction(new AliasActions(AliasActions.Type.REMOVE).indices(nonExistentIndex).alias(alias)); exception = expectThrows(ElasticsearchStatusException.class, - () -> execute(mixedRequest, highLevelClient().indices()::updateAliases, highLevelClient().indices()::updateAliasesAsync)); + () -> execute(mixedRequest, highLevelClient().indices()::updateAliases, highLevelClient().indices()::updateAliasesAsync, + highLevelClient().indices()::updateAliases, highLevelClient().indices()::updateAliasesAsync)); assertThat(exception.status(), equalTo(RestStatus.NOT_FOUND)); assertThat(exception.getMessage(), equalTo("Elasticsearch exception [type=index_not_found_exception, reason=no such index]")); assertThat(exception.getMetadata("es.index"), hasItem(nonExistentIndex)); @@ -475,6 +492,7 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { removeIndexRequest.addAliasAction(new AliasActions(AliasActions.Type.ADD).index(nonExistentIndex).alias(alias)); removeIndexRequest.addAliasAction(new AliasActions(AliasActions.Type.REMOVE_INDEX).indices(nonExistentIndex)); exception = expectThrows(ElasticsearchException.class, () -> execute(removeIndexRequest, highLevelClient().indices()::updateAliases, + highLevelClient().indices()::updateAliasesAsync, highLevelClient().indices()::updateAliases, highLevelClient().indices()::updateAliasesAsync)); assertThat(exception.status(), equalTo(RestStatus.NOT_FOUND)); assertThat(exception.getMessage(), equalTo("Elasticsearch exception [type=index_not_found_exception, reason=no such index]")); @@ -495,6 +513,7 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { OpenIndexRequest openIndexRequest = new OpenIndexRequest(index); OpenIndexResponse openIndexResponse = execute(openIndexRequest, highLevelClient().indices()::open, + highLevelClient().indices()::openAsync, highLevelClient().indices()::open, highLevelClient().indices()::openAsync); assertTrue(openIndexResponse.isAcknowledged()); @@ -508,19 +527,22 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { OpenIndexRequest openIndexRequest = new OpenIndexRequest(nonExistentIndex); ElasticsearchException exception = expectThrows(ElasticsearchException.class, - () -> execute(openIndexRequest, highLevelClient().indices()::open, highLevelClient().indices()::openAsync)); + () -> execute(openIndexRequest, highLevelClient().indices()::open, highLevelClient().indices()::openAsync, + highLevelClient().indices()::open, highLevelClient().indices()::openAsync)); assertEquals(RestStatus.NOT_FOUND, exception.status()); OpenIndexRequest lenientOpenIndexRequest = new OpenIndexRequest(nonExistentIndex); lenientOpenIndexRequest.indicesOptions(IndicesOptions.lenientExpandOpen()); OpenIndexResponse lenientOpenIndexResponse = execute(lenientOpenIndexRequest, highLevelClient().indices()::open, + highLevelClient().indices()::openAsync, highLevelClient().indices()::open, highLevelClient().indices()::openAsync); assertThat(lenientOpenIndexResponse.isAcknowledged(), equalTo(true)); OpenIndexRequest strictOpenIndexRequest = new OpenIndexRequest(nonExistentIndex); strictOpenIndexRequest.indicesOptions(IndicesOptions.strictExpandOpen()); ElasticsearchException strictException = expectThrows(ElasticsearchException.class, - () -> execute(openIndexRequest, highLevelClient().indices()::open, highLevelClient().indices()::openAsync)); + () -> execute(openIndexRequest, highLevelClient().indices()::open, highLevelClient().indices()::openAsync, + highLevelClient().indices()::open, highLevelClient().indices()::openAsync)); assertEquals(RestStatus.NOT_FOUND, strictException.status()); } @@ -532,6 +554,7 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { CloseIndexRequest closeIndexRequest = new CloseIndexRequest(index); CloseIndexResponse closeIndexResponse = execute(closeIndexRequest, highLevelClient().indices()::close, + highLevelClient().indices()::closeAsync, highLevelClient().indices()::close, highLevelClient().indices()::closeAsync); assertTrue(closeIndexResponse.isAcknowledged()); @@ -547,7 +570,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { CloseIndexRequest closeIndexRequest = new CloseIndexRequest(nonExistentIndex); ElasticsearchException exception = expectThrows(ElasticsearchException.class, - () -> execute(closeIndexRequest, highLevelClient().indices()::close, highLevelClient().indices()::closeAsync)); + () -> execute(closeIndexRequest, highLevelClient().indices()::close, highLevelClient().indices()::closeAsync, + highLevelClient().indices()::close, highLevelClient().indices()::closeAsync)); assertEquals(RestStatus.NOT_FOUND, exception.status()); } @@ -561,7 +585,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { createIndex(index, settings); RefreshRequest refreshRequest = new RefreshRequest(index); RefreshResponse refreshResponse = - execute(refreshRequest, highLevelClient().indices()::refresh, highLevelClient().indices()::refreshAsync); + execute(refreshRequest, highLevelClient().indices()::refresh, highLevelClient().indices()::refreshAsync, + highLevelClient().indices()::refresh, highLevelClient().indices()::refreshAsync); assertThat(refreshResponse.getTotalShards(), equalTo(1)); assertThat(refreshResponse.getSuccessfulShards(), equalTo(1)); assertThat(refreshResponse.getFailedShards(), equalTo(0)); @@ -572,7 +597,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { assertFalse(indexExists(nonExistentIndex)); RefreshRequest refreshRequest = new RefreshRequest(nonExistentIndex); ElasticsearchException exception = expectThrows(ElasticsearchException.class, - () -> execute(refreshRequest, highLevelClient().indices()::refresh, highLevelClient().indices()::refreshAsync)); + () -> execute(refreshRequest, highLevelClient().indices()::refresh, highLevelClient().indices()::refreshAsync, + highLevelClient().indices()::refresh, highLevelClient().indices()::refreshAsync)); assertEquals(RestStatus.NOT_FOUND, exception.status()); } } @@ -587,7 +613,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { createIndex(index, settings); FlushRequest flushRequest = new FlushRequest(index); FlushResponse flushResponse = - execute(flushRequest, highLevelClient().indices()::flush, highLevelClient().indices()::flushAsync); + execute(flushRequest, highLevelClient().indices()::flush, highLevelClient().indices()::flushAsync, + highLevelClient().indices()::flush, highLevelClient().indices()::flushAsync); assertThat(flushResponse.getTotalShards(), equalTo(1)); assertThat(flushResponse.getSuccessfulShards(), equalTo(1)); assertThat(flushResponse.getFailedShards(), equalTo(0)); @@ -598,7 +625,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { assertFalse(indexExists(nonExistentIndex)); FlushRequest flushRequest = new FlushRequest(nonExistentIndex); ElasticsearchException exception = expectThrows(ElasticsearchException.class, - () -> execute(flushRequest, highLevelClient().indices()::flush, highLevelClient().indices()::flushAsync)); + () -> execute(flushRequest, highLevelClient().indices()::flush, highLevelClient().indices()::flushAsync, + highLevelClient().indices()::flush, highLevelClient().indices()::flushAsync)); assertEquals(RestStatus.NOT_FOUND, exception.status()); } } @@ -646,7 +674,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { createIndex(index, settings); ClearIndicesCacheRequest clearCacheRequest = new ClearIndicesCacheRequest(index); ClearIndicesCacheResponse clearCacheResponse = - execute(clearCacheRequest, highLevelClient().indices()::clearCache, highLevelClient().indices()::clearCacheAsync); + execute(clearCacheRequest, highLevelClient().indices()::clearCache, highLevelClient().indices()::clearCacheAsync, + highLevelClient().indices()::clearCache, highLevelClient().indices()::clearCacheAsync); assertThat(clearCacheResponse.getTotalShards(), equalTo(1)); assertThat(clearCacheResponse.getSuccessfulShards(), equalTo(1)); assertThat(clearCacheResponse.getFailedShards(), equalTo(0)); @@ -657,8 +686,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { assertFalse(indexExists(nonExistentIndex)); ClearIndicesCacheRequest clearCacheRequest = new ClearIndicesCacheRequest(nonExistentIndex); ElasticsearchException exception = expectThrows(ElasticsearchException.class, - () -> execute(clearCacheRequest, highLevelClient().indices()::clearCache, - highLevelClient().indices()::clearCacheAsync)); + () -> execute(clearCacheRequest, highLevelClient().indices()::clearCache, highLevelClient().indices()::clearCacheAsync, + highLevelClient().indices()::clearCache, highLevelClient().indices()::clearCacheAsync)); assertEquals(RestStatus.NOT_FOUND, exception.status()); } } @@ -673,7 +702,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { createIndex(index, settings); ForceMergeRequest forceMergeRequest = new ForceMergeRequest(index); ForceMergeResponse forceMergeResponse = - execute(forceMergeRequest, highLevelClient().indices()::forceMerge, highLevelClient().indices()::forceMergeAsync); + execute(forceMergeRequest, highLevelClient().indices()::forceMerge, highLevelClient().indices()::forceMergeAsync, + highLevelClient().indices()::forceMerge, highLevelClient().indices()::forceMergeAsync); assertThat(forceMergeResponse.getTotalShards(), equalTo(1)); assertThat(forceMergeResponse.getSuccessfulShards(), equalTo(1)); assertThat(forceMergeResponse.getFailedShards(), equalTo(0)); @@ -684,25 +714,30 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { assertFalse(indexExists(nonExistentIndex)); ForceMergeRequest forceMergeRequest = new ForceMergeRequest(nonExistentIndex); ElasticsearchException exception = expectThrows(ElasticsearchException.class, - () -> execute(forceMergeRequest, highLevelClient().indices()::forceMerge, highLevelClient().indices()::forceMergeAsync)); + () -> execute(forceMergeRequest, highLevelClient().indices()::forceMerge, highLevelClient().indices()::forceMergeAsync, + highLevelClient().indices()::forceMerge, highLevelClient().indices()::forceMergeAsync)); assertEquals(RestStatus.NOT_FOUND, exception.status()); } } public void testExistsAlias() throws IOException { GetAliasesRequest getAliasesRequest = new GetAliasesRequest("alias"); - assertFalse(execute(getAliasesRequest, highLevelClient().indices()::existsAlias, highLevelClient().indices()::existsAliasAsync)); + assertFalse(execute(getAliasesRequest, highLevelClient().indices()::existsAlias, highLevelClient().indices()::existsAliasAsync, + highLevelClient().indices()::existsAlias, highLevelClient().indices()::existsAliasAsync)); createIndex("index", Settings.EMPTY); client().performRequest(HttpPut.METHOD_NAME, "/index/_alias/alias"); - assertTrue(execute(getAliasesRequest, highLevelClient().indices()::existsAlias, highLevelClient().indices()::existsAliasAsync)); + assertTrue(execute(getAliasesRequest, highLevelClient().indices()::existsAlias, highLevelClient().indices()::existsAliasAsync, + highLevelClient().indices()::existsAlias, highLevelClient().indices()::existsAliasAsync)); GetAliasesRequest getAliasesRequest2 = new GetAliasesRequest(); getAliasesRequest2.aliases("alias"); getAliasesRequest2.indices("index"); - assertTrue(execute(getAliasesRequest2, highLevelClient().indices()::existsAlias, highLevelClient().indices()::existsAliasAsync)); + assertTrue(execute(getAliasesRequest2, highLevelClient().indices()::existsAlias, highLevelClient().indices()::existsAliasAsync, + highLevelClient().indices()::existsAlias, highLevelClient().indices()::existsAliasAsync)); getAliasesRequest2.indices("does_not_exist"); - assertFalse(execute(getAliasesRequest2, highLevelClient().indices()::existsAlias, highLevelClient().indices()::existsAliasAsync)); + assertFalse(execute(getAliasesRequest2, highLevelClient().indices()::existsAlias, highLevelClient().indices()::existsAliasAsync, + highLevelClient().indices()::existsAlias, highLevelClient().indices()::existsAliasAsync)); } @SuppressWarnings("unchecked") @@ -722,7 +757,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { .putNull("index.routing.allocation.require._name") .build(); resizeRequest.setTargetIndex(new CreateIndexRequest("target").settings(targetSettings).alias(new Alias("alias"))); - ResizeResponse resizeResponse = highLevelClient().indices().shrink(resizeRequest); + ResizeResponse resizeResponse = execute(resizeRequest, highLevelClient().indices()::shrink, + highLevelClient().indices()::shrinkAsync, highLevelClient().indices()::shrink, highLevelClient().indices()::shrinkAsync); assertTrue(resizeResponse.isAcknowledged()); assertTrue(resizeResponse.isShardsAcknowledged()); Map getIndexResponse = getAsMap("target"); @@ -744,7 +780,8 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { resizeRequest.setResizeType(ResizeType.SPLIT); Settings targetSettings = Settings.builder().put("index.number_of_shards", 4).put("index.number_of_replicas", 0).build(); resizeRequest.setTargetIndex(new CreateIndexRequest("target").settings(targetSettings).alias(new Alias("alias"))); - ResizeResponse resizeResponse = highLevelClient().indices().split(resizeRequest); + ResizeResponse resizeResponse = execute(resizeRequest, highLevelClient().indices()::split, highLevelClient().indices()::splitAsync, + highLevelClient().indices()::split, highLevelClient().indices()::splitAsync); assertTrue(resizeResponse.isAcknowledged()); assertTrue(resizeResponse.isShardsAcknowledged()); Map getIndexResponse = getAsMap("target"); @@ -757,12 +794,13 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { } public void testRollover() throws IOException { - highLevelClient().indices().create(new CreateIndexRequest("test").alias(new Alias("alias"))); + highLevelClient().indices().create(new CreateIndexRequest("test").alias(new Alias("alias")), RequestOptions.DEFAULT); RolloverRequest rolloverRequest = new RolloverRequest("alias", "test_new"); rolloverRequest.addMaxIndexDocsCondition(1); { RolloverResponse rolloverResponse = execute(rolloverRequest, highLevelClient().indices()::rollover, + highLevelClient().indices()::rolloverAsync, highLevelClient().indices()::rollover, highLevelClient().indices()::rolloverAsync); assertFalse(rolloverResponse.isRolledOver()); assertFalse(rolloverResponse.isDryRun()); @@ -773,15 +811,16 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { assertEquals("test_new", rolloverResponse.getNewIndex()); } - highLevelClient().index(new IndexRequest("test", "type", "1").source("field", "value")); + highLevelClient().index(new IndexRequest("test", "type", "1").source("field", "value"), RequestOptions.DEFAULT); highLevelClient().index(new IndexRequest("test", "type", "2").source("field", "value") - .setRefreshPolicy(WriteRequest.RefreshPolicy.WAIT_UNTIL)); + .setRefreshPolicy(WriteRequest.RefreshPolicy.WAIT_UNTIL), RequestOptions.DEFAULT); //without the refresh the rollover may not happen as the number of docs seen may be off { rolloverRequest.addMaxIndexAgeCondition(new TimeValue(1)); rolloverRequest.dryRun(true); RolloverResponse rolloverResponse = execute(rolloverRequest, highLevelClient().indices()::rollover, + highLevelClient().indices()::rolloverAsync, highLevelClient().indices()::rollover, highLevelClient().indices()::rolloverAsync); assertFalse(rolloverResponse.isRolledOver()); assertTrue(rolloverResponse.isDryRun()); @@ -796,6 +835,7 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { rolloverRequest.dryRun(false); rolloverRequest.addMaxIndexSizeCondition(new ByteSizeValue(1, ByteSizeUnit.MB)); RolloverResponse rolloverResponse = execute(rolloverRequest, highLevelClient().indices()::rollover, + highLevelClient().indices()::rolloverAsync, highLevelClient().indices()::rollover, highLevelClient().indices()::rolloverAsync); assertTrue(rolloverResponse.isRolledOver()); assertFalse(rolloverResponse.isDryRun()); @@ -830,6 +870,7 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { UpdateSettingsRequest dynamicSettingRequest = new UpdateSettingsRequest(); dynamicSettingRequest.settings(Settings.builder().put(dynamicSettingKey, dynamicSettingValue).build()); UpdateSettingsResponse response = execute(dynamicSettingRequest, highLevelClient().indices()::putSettings, + highLevelClient().indices()::putSettingsAsync, highLevelClient().indices()::putSettings, highLevelClient().indices()::putSettingsAsync); assertTrue(response.isAcknowledged()); @@ -840,6 +881,7 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { UpdateSettingsRequest staticSettingRequest = new UpdateSettingsRequest(); staticSettingRequest.settings(Settings.builder().put(staticSettingKey, staticSettingValue).build()); ElasticsearchException exception = expectThrows(ElasticsearchException.class, () -> execute(staticSettingRequest, + highLevelClient().indices()::putSettings, highLevelClient().indices()::putSettingsAsync, highLevelClient().indices()::putSettings, highLevelClient().indices()::putSettingsAsync)); assertThat(exception.getMessage(), startsWith("Elasticsearch exception [type=illegal_argument_exception, " @@ -850,6 +892,7 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { closeIndex(index); response = execute(staticSettingRequest, highLevelClient().indices()::putSettings, + highLevelClient().indices()::putSettingsAsync, highLevelClient().indices()::putSettings, highLevelClient().indices()::putSettingsAsync); assertTrue(response.isAcknowledged()); openIndex(index); @@ -860,6 +903,7 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { UpdateSettingsRequest unmodifiableSettingRequest = new UpdateSettingsRequest(); unmodifiableSettingRequest.settings(Settings.builder().put(unmodifiableSettingKey, unmodifiableSettingValue).build()); exception = expectThrows(ElasticsearchException.class, () -> execute(unmodifiableSettingRequest, + highLevelClient().indices()::putSettings, highLevelClient().indices()::putSettingsAsync, highLevelClient().indices()::putSettings, highLevelClient().indices()::putSettingsAsync)); assertThat(exception.getMessage(), startsWith( "Elasticsearch exception [type=illegal_argument_exception, " @@ -887,12 +931,14 @@ public class IndicesClientIT extends ESRestHighLevelClientTestCase { indexUpdateSettingsRequest.settings(Settings.builder().put(setting, value).build()); ElasticsearchException exception = expectThrows(ElasticsearchException.class, () -> execute(indexUpdateSettingsRequest, + highLevelClient().indices()::putSettings, highLevelClient().indices()::putSettingsAsync, highLevelClient().indices()::putSettings, highLevelClient().indices()::putSettingsAsync)); assertEquals(RestStatus.NOT_FOUND, exception.status()); assertThat(exception.getMessage(), equalTo("Elasticsearch exception [type=index_not_found_exception, reason=no such index]")); createIndex(index, Settings.EMPTY); exception = expectThrows(ElasticsearchException.class, () -> execute(indexUpdateSettingsRequest, + highLevelClient().indices()::putSettings, highLevelClient().indices()::putSettingsAsync, highLevelClient().indices()::putSettings, highLevelClient().indices()::putSettingsAsync)); assertThat(exception.status(), equalTo(RestStatus.BAD_REQUEST)); assertThat(exception.getMessage(), equalTo( diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/PingAndInfoIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/PingAndInfoIT.java index b4d8828eb7e..057ea49f9a9 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/PingAndInfoIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/PingAndInfoIT.java @@ -28,12 +28,12 @@ import java.util.Map; public class PingAndInfoIT extends ESRestHighLevelClientTestCase { public void testPing() throws IOException { - assertTrue(highLevelClient().ping()); + assertTrue(highLevelClient().ping(RequestOptions.DEFAULT)); } @SuppressWarnings("unchecked") public void testInfo() throws IOException { - MainResponse info = highLevelClient().info(); + MainResponse info = highLevelClient().info(RequestOptions.DEFAULT); // compare with what the low level client outputs Map infoAsMap = entityAsMap(adminClient().performRequest(HttpGet.METHOD_NAME, "/")); assertEquals(infoAsMap.get("cluster_name"), info.getClusterName().value()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/RankEvalIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/RankEvalIT.java index 9497bdded05..1e12f3f5e62 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/RankEvalIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/RankEvalIT.java @@ -82,8 +82,8 @@ public class RankEvalIT extends ESRestHighLevelClientTestCase { RankEvalSpec spec = new RankEvalSpec(specifications, metric); RankEvalRequest rankEvalRequest = new RankEvalRequest(spec, new String[] { "index", "index2" }); - RankEvalResponse response = execute(rankEvalRequest, highLevelClient()::rankEval, - highLevelClient()::rankEvalAsync); + RankEvalResponse response = execute(rankEvalRequest, highLevelClient()::rankEval, highLevelClient()::rankEvalAsync, + highLevelClient()::rankEval, highLevelClient()::rankEvalAsync); // the expected Prec@ for the first query is 5/7 and the expected Prec@ for the second is 1/7, divided by 2 to get the average double expectedPrecision = (1.0 / 7.0 + 5.0 / 7.0) / 2.0; assertEquals(expectedPrecision, response.getEvaluationResult(), Double.MIN_VALUE); @@ -117,7 +117,8 @@ public class RankEvalIT extends ESRestHighLevelClientTestCase { // now try this when test2 is closed client().performRequest("POST", "index2/_close", Collections.emptyMap()); rankEvalRequest.indicesOptions(IndicesOptions.fromParameters(null, "true", null, SearchRequest.DEFAULT_INDICES_OPTIONS)); - response = execute(rankEvalRequest, highLevelClient()::rankEval, highLevelClient()::rankEvalAsync); + response = execute(rankEvalRequest, highLevelClient()::rankEval, highLevelClient()::rankEvalAsync, + highLevelClient()::rankEval, highLevelClient()::rankEvalAsync); } private static List createRelevant(String indexName, String... docs) { diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/RestHighLevelClientTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/RestHighLevelClientTests.java index 5ca9b05f73a..9084a547c16 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/RestHighLevelClientTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/RestHighLevelClientTests.java @@ -20,7 +20,6 @@ package org.elasticsearch.client; import com.fasterxml.jackson.core.JsonParseException; - import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpHost; @@ -28,10 +27,7 @@ import org.apache.http.HttpResponse; import org.apache.http.ProtocolVersion; import org.apache.http.RequestLine; import org.apache.http.StatusLine; -import org.apache.http.client.methods.HttpDelete; import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpHead; -import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ByteArrayEntity; import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; @@ -77,9 +73,6 @@ import org.elasticsearch.search.suggest.Suggest; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.InternalAggregationTestCase; import org.junit.Before; -import org.mockito.ArgumentMatcher; -import org.mockito.internal.matchers.ArrayEquals; -import org.mockito.internal.matchers.VarargMatcher; import java.io.IOException; import java.net.SocketTimeoutException; @@ -124,25 +117,22 @@ public class RestHighLevelClientTests extends ESTestCase { } public void testPingSuccessful() throws IOException { - Header[] headers = randomHeaders(random(), "Header"); Response response = mock(Response.class); when(response.getStatusLine()).thenReturn(newStatusLine(RestStatus.OK)); when(restClient.performRequest(any(Request.class))).thenReturn(response); - assertTrue(restHighLevelClient.ping(headers)); + assertTrue(restHighLevelClient.ping(RequestOptions.DEFAULT)); } public void testPing404NotFound() throws IOException { - Header[] headers = randomHeaders(random(), "Header"); Response response = mock(Response.class); when(response.getStatusLine()).thenReturn(newStatusLine(RestStatus.NOT_FOUND)); when(restClient.performRequest(any(Request.class))).thenReturn(response); - assertFalse(restHighLevelClient.ping(headers)); + assertFalse(restHighLevelClient.ping(RequestOptions.DEFAULT)); } public void testPingSocketTimeout() throws IOException { - Header[] headers = randomHeaders(random(), "Header"); when(restClient.performRequest(any(Request.class))).thenThrow(new SocketTimeoutException()); - expectThrows(SocketTimeoutException.class, () -> restHighLevelClient.ping(headers)); + expectThrows(SocketTimeoutException.class, () -> restHighLevelClient.ping(RequestOptions.DEFAULT)); } public void testInfo() throws IOException { @@ -150,18 +140,17 @@ public class RestHighLevelClientTests extends ESTestCase { MainResponse testInfo = new MainResponse("nodeName", Version.CURRENT, new ClusterName("clusterName"), "clusterUuid", Build.CURRENT); mockResponse(testInfo); - MainResponse receivedInfo = restHighLevelClient.info(headers); + MainResponse receivedInfo = restHighLevelClient.info(RequestOptions.DEFAULT); assertEquals(testInfo, receivedInfo); } public void testSearchScroll() throws IOException { - Header[] headers = randomHeaders(random(), "Header"); SearchResponse mockSearchResponse = new SearchResponse(new SearchResponseSections(SearchHits.empty(), InternalAggregations.EMPTY, null, false, false, null, 1), randomAlphaOfLengthBetween(5, 10), 5, 5, 0, 100, ShardSearchFailure.EMPTY_ARRAY, SearchResponse.Clusters.EMPTY); mockResponse(mockSearchResponse); - SearchResponse searchResponse = restHighLevelClient.searchScroll(new SearchScrollRequest(randomAlphaOfLengthBetween(5, 10)), - headers); + SearchResponse searchResponse = restHighLevelClient.searchScroll( + new SearchScrollRequest(randomAlphaOfLengthBetween(5, 10)), RequestOptions.DEFAULT); assertEquals(mockSearchResponse.getScrollId(), searchResponse.getScrollId()); assertEquals(0, searchResponse.getHits().totalHits); assertEquals(5, searchResponse.getTotalShards()); @@ -170,12 +159,11 @@ public class RestHighLevelClientTests extends ESTestCase { } public void testClearScroll() throws IOException { - Header[] headers = randomHeaders(random(), "Header"); ClearScrollResponse mockClearScrollResponse = new ClearScrollResponse(randomBoolean(), randomIntBetween(0, Integer.MAX_VALUE)); mockResponse(mockClearScrollResponse); ClearScrollRequest clearScrollRequest = new ClearScrollRequest(); clearScrollRequest.addScrollId(randomAlphaOfLengthBetween(5, 10)); - ClearScrollResponse clearScrollResponse = restHighLevelClient.clearScroll(clearScrollRequest, headers); + ClearScrollResponse clearScrollResponse = restHighLevelClient.clearScroll(clearScrollRequest, RequestOptions.DEFAULT); assertEquals(mockClearScrollResponse.isSucceeded(), clearScrollResponse.isSucceeded()); assertEquals(mockClearScrollResponse.getNumFreed(), clearScrollResponse.getNumFreed()); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/SearchIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/SearchIT.java index e147642fc73..80d09acf281 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/SearchIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/SearchIT.java @@ -164,7 +164,8 @@ public class SearchIT extends ESRestHighLevelClientTestCase { public void testSearchMatchQuery() throws IOException { SearchRequest searchRequest = new SearchRequest("index"); searchRequest.source(new SearchSourceBuilder().query(new MatchQueryBuilder("num", 10))); - SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync); + SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync, + highLevelClient()::search, highLevelClient()::searchAsync); assertSearchHeader(searchResponse); assertNull(searchResponse.getAggregations()); assertNull(searchResponse.getSuggest()); @@ -190,7 +191,8 @@ public class SearchIT extends ESRestHighLevelClientTestCase { searchSourceBuilder.aggregation(new TermsAggregationBuilder("agg1", ValueType.STRING).field("type.keyword")); searchSourceBuilder.size(0); searchRequest.source(searchSourceBuilder); - SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync); + SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync, + highLevelClient()::search, highLevelClient()::searchAsync); assertSearchHeader(searchResponse); assertNull(searchResponse.getSuggest()); assertEquals(Collections.emptyMap(), searchResponse.getProfileResults()); @@ -216,7 +218,8 @@ public class SearchIT extends ESRestHighLevelClientTestCase { searchRequest.source(searchSourceBuilder); ElasticsearchStatusException exception = expectThrows(ElasticsearchStatusException.class, - () -> execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync)); + () -> execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync, + highLevelClient()::search, highLevelClient()::searchAsync)); assertEquals(RestStatus.BAD_REQUEST, exception.status()); } @@ -226,7 +229,8 @@ public class SearchIT extends ESRestHighLevelClientTestCase { .addRange("first", 0, 30).addRange("second", 31, 200)); searchSourceBuilder.size(0); searchRequest.source(searchSourceBuilder); - SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync); + SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync, + highLevelClient()::search, highLevelClient()::searchAsync); assertSearchHeader(searchResponse); assertNull(searchResponse.getSuggest()); assertEquals(Collections.emptyMap(), searchResponse.getProfileResults()); @@ -257,7 +261,8 @@ public class SearchIT extends ESRestHighLevelClientTestCase { searchSourceBuilder.aggregation(agg); searchSourceBuilder.size(0); searchRequest.source(searchSourceBuilder); - SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync); + SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync, + highLevelClient()::search, highLevelClient()::searchAsync); assertSearchHeader(searchResponse); assertNull(searchResponse.getSuggest()); assertEquals(Collections.emptyMap(), searchResponse.getProfileResults()); @@ -308,7 +313,8 @@ public class SearchIT extends ESRestHighLevelClientTestCase { searchSourceBuilder.aggregation(new MatrixStatsAggregationBuilder("agg1").fields(Arrays.asList("num", "num2"))); searchSourceBuilder.size(0); searchRequest.source(searchSourceBuilder); - SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync); + SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync, + highLevelClient()::search, highLevelClient()::searchAsync); assertSearchHeader(searchResponse); assertNull(searchResponse.getSuggest()); assertEquals(Collections.emptyMap(), searchResponse.getProfileResults()); @@ -397,7 +403,8 @@ public class SearchIT extends ESRestHighLevelClientTestCase { SearchRequest searchRequest = new SearchRequest(indexName); searchRequest.source(searchSourceBuilder); - SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync); + SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync, + highLevelClient()::search, highLevelClient()::searchAsync); assertSearchHeader(searchResponse); assertNull(searchResponse.getSuggest()); assertEquals(Collections.emptyMap(), searchResponse.getProfileResults()); @@ -437,7 +444,8 @@ public class SearchIT extends ESRestHighLevelClientTestCase { searchSourceBuilder.size(0); searchRequest.source(searchSourceBuilder); - SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync); + SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync, + highLevelClient()::search, highLevelClient()::searchAsync); assertSearchHeader(searchResponse); assertNull(searchResponse.getAggregations()); assertEquals(Collections.emptyMap(), searchResponse.getProfileResults()); @@ -469,7 +477,8 @@ public class SearchIT extends ESRestHighLevelClientTestCase { { SearchRequest searchRequest = new SearchRequest("test").source(SearchSourceBuilder.searchSource() .scriptField("result", new Script("null"))); - SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync); + SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync, + highLevelClient()::search, highLevelClient()::searchAsync); SearchHit searchHit = searchResponse.getHits().getAt(0); List values = searchHit.getFields().get("result").getValues(); assertNotNull(values); @@ -479,7 +488,8 @@ public class SearchIT extends ESRestHighLevelClientTestCase { { SearchRequest searchRequest = new SearchRequest("test").source(SearchSourceBuilder.searchSource() .scriptField("result", new Script("new HashMap()"))); - SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync); + SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync, + highLevelClient()::search, highLevelClient()::searchAsync); SearchHit searchHit = searchResponse.getHits().getAt(0); List values = searchHit.getFields().get("result").getValues(); assertNotNull(values); @@ -491,7 +501,8 @@ public class SearchIT extends ESRestHighLevelClientTestCase { { SearchRequest searchRequest = new SearchRequest("test").source(SearchSourceBuilder.searchSource() .scriptField("result", new Script("new String[]{}"))); - SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync); + SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync, + highLevelClient()::search, highLevelClient()::searchAsync); SearchHit searchHit = searchResponse.getHits().getAt(0); List values = searchHit.getFields().get("result").getValues(); assertNotNull(values); @@ -513,7 +524,8 @@ public class SearchIT extends ESRestHighLevelClientTestCase { SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().size(35).sort("field", SortOrder.ASC); SearchRequest searchRequest = new SearchRequest("test").scroll(TimeValue.timeValueMinutes(2)).source(searchSourceBuilder); - SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync); + SearchResponse searchResponse = execute(searchRequest, highLevelClient()::search, highLevelClient()::searchAsync, + highLevelClient()::search, highLevelClient()::searchAsync); try { long counter = 0; @@ -525,6 +537,7 @@ public class SearchIT extends ESRestHighLevelClientTestCase { } searchResponse = execute(new SearchScrollRequest(searchResponse.getScrollId()).scroll(TimeValue.timeValueMinutes(2)), + highLevelClient()::searchScroll, highLevelClient()::searchScrollAsync, highLevelClient()::searchScroll, highLevelClient()::searchScrollAsync); assertThat(searchResponse.getHits().getTotalHits(), equalTo(100L)); @@ -534,6 +547,7 @@ public class SearchIT extends ESRestHighLevelClientTestCase { } searchResponse = execute(new SearchScrollRequest(searchResponse.getScrollId()).scroll(TimeValue.timeValueMinutes(2)), + highLevelClient()::searchScroll, highLevelClient()::searchScrollAsync, highLevelClient()::searchScroll, highLevelClient()::searchScrollAsync); assertThat(searchResponse.getHits().getTotalHits(), equalTo(100L)); @@ -545,14 +559,14 @@ public class SearchIT extends ESRestHighLevelClientTestCase { ClearScrollRequest clearScrollRequest = new ClearScrollRequest(); clearScrollRequest.addScrollId(searchResponse.getScrollId()); ClearScrollResponse clearScrollResponse = execute(clearScrollRequest, - // Not using a method reference to work around https://bugs.eclipse.org/bugs/show_bug.cgi?id=517951 - (request, headers) -> highLevelClient().clearScroll(request, headers), - (request, listener, headers) -> highLevelClient().clearScrollAsync(request, listener, headers)); + highLevelClient()::clearScroll, highLevelClient()::clearScrollAsync, + highLevelClient()::clearScroll, highLevelClient()::clearScrollAsync); assertThat(clearScrollResponse.getNumFreed(), greaterThan(0)); assertTrue(clearScrollResponse.isSucceeded()); SearchScrollRequest scrollRequest = new SearchScrollRequest(searchResponse.getScrollId()).scroll(TimeValue.timeValueMinutes(2)); ElasticsearchStatusException exception = expectThrows(ElasticsearchStatusException.class, () -> execute(scrollRequest, + highLevelClient()::searchScroll, highLevelClient()::searchScrollAsync, highLevelClient()::searchScroll, highLevelClient()::searchScrollAsync)); assertEquals(RestStatus.NOT_FOUND, exception.status()); assertThat(exception.getRootCause(), instanceOf(ElasticsearchException.class)); @@ -574,7 +588,8 @@ public class SearchIT extends ESRestHighLevelClientTestCase { multiSearchRequest.add(searchRequest3); MultiSearchResponse multiSearchResponse = - execute(multiSearchRequest, highLevelClient()::multiSearch, highLevelClient()::multiSearchAsync); + execute(multiSearchRequest, highLevelClient()::multiSearch, highLevelClient()::multiSearchAsync, + highLevelClient()::multiSearch, highLevelClient()::multiSearchAsync); assertThat(multiSearchResponse.getTook().millis(), Matchers.greaterThanOrEqualTo(0L)); assertThat(multiSearchResponse.getResponses().length, Matchers.equalTo(3)); @@ -616,7 +631,8 @@ public class SearchIT extends ESRestHighLevelClientTestCase { multiSearchRequest.add(searchRequest3); MultiSearchResponse multiSearchResponse = - execute(multiSearchRequest, highLevelClient()::multiSearch, highLevelClient()::multiSearchAsync); + execute(multiSearchRequest, highLevelClient()::multiSearch, highLevelClient()::multiSearchAsync, + highLevelClient()::multiSearch, highLevelClient()::multiSearchAsync); assertThat(multiSearchResponse.getTook().millis(), Matchers.greaterThanOrEqualTo(0L)); assertThat(multiSearchResponse.getResponses().length, Matchers.equalTo(3)); @@ -664,7 +680,8 @@ public class SearchIT extends ESRestHighLevelClientTestCase { multiSearchRequest.add(searchRequest3); MultiSearchResponse multiSearchResponse = - execute(multiSearchRequest, highLevelClient()::multiSearch, highLevelClient()::multiSearchAsync); + execute(multiSearchRequest, highLevelClient()::multiSearch, highLevelClient()::multiSearchAsync, + highLevelClient()::multiSearch, highLevelClient()::multiSearchAsync); assertThat(multiSearchResponse.getTook().millis(), Matchers.greaterThanOrEqualTo(0L)); assertThat(multiSearchResponse.getResponses().length, Matchers.equalTo(3)); @@ -727,7 +744,8 @@ public class SearchIT extends ESRestHighLevelClientTestCase { multiSearchRequest.add(searchRequest2); MultiSearchResponse multiSearchResponse = - execute(multiSearchRequest, highLevelClient()::multiSearch, highLevelClient()::multiSearchAsync); + execute(multiSearchRequest, highLevelClient()::multiSearch, highLevelClient()::multiSearchAsync, + highLevelClient()::multiSearch, highLevelClient()::multiSearchAsync); assertThat(multiSearchResponse.getTook().millis(), Matchers.greaterThanOrEqualTo(0L)); assertThat(multiSearchResponse.getResponses().length, Matchers.equalTo(2)); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/CRUDDocumentationIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/CRUDDocumentationIT.java index 6641aa2fc7d..ef92e28a072 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/CRUDDocumentationIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/CRUDDocumentationIT.java @@ -48,6 +48,7 @@ import org.elasticsearch.action.update.UpdateRequest; import org.elasticsearch.action.update.UpdateResponse; import org.elasticsearch.client.ESRestHighLevelClientTestCase; import org.elasticsearch.client.Request; +import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.Response; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.common.Strings; @@ -72,13 +73,12 @@ import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import static java.util.Collections.singletonMap; import static org.hamcrest.Matchers.arrayWithSize; -import static org.hamcrest.Matchers.hasEntry; import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.hasEntry; import static org.hamcrest.Matchers.hasKey; import static org.hamcrest.Matchers.not; -import static java.util.Collections.emptyMap; -import static java.util.Collections.singletonMap; /** * This class is used to generate the Java CRUD API documentation. @@ -112,7 +112,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { IndexRequest indexRequest = new IndexRequest("posts", "doc", "1") .source(jsonMap); // <1> //end::index-request-map - IndexResponse indexResponse = client.index(indexRequest); + IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT); assertEquals(indexResponse.getResult(), DocWriteResponse.Result.CREATED); } { @@ -128,7 +128,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { IndexRequest indexRequest = new IndexRequest("posts", "doc", "1") .source(builder); // <1> //end::index-request-xcontent - IndexResponse indexResponse = client.index(indexRequest); + IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT); assertEquals(indexResponse.getResult(), DocWriteResponse.Result.UPDATED); } { @@ -138,7 +138,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { "postDate", new Date(), "message", "trying out Elasticsearch"); // <1> //end::index-request-shortcut - IndexResponse indexResponse = client.index(indexRequest); + IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT); assertEquals(indexResponse.getResult(), DocWriteResponse.Result.UPDATED); } { @@ -156,7 +156,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { //end::index-request-string // tag::index-execute - IndexResponse indexResponse = client.index(request); + IndexResponse indexResponse = client.index(request, RequestOptions.DEFAULT); // end::index-execute assertEquals(indexResponse.getResult(), DocWriteResponse.Result.UPDATED); @@ -214,7 +214,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { .source("field", "value") .version(1); try { - IndexResponse response = client.index(request); + IndexResponse response = client.index(request, RequestOptions.DEFAULT); } catch(ElasticsearchException e) { if (e.status() == RestStatus.CONFLICT) { // <1> @@ -228,7 +228,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { .source("field", "value") .opType(DocWriteRequest.OpType.CREATE); try { - IndexResponse response = client.index(request); + IndexResponse response = client.index(request, RequestOptions.DEFAULT); } catch(ElasticsearchException e) { if (e.status() == RestStatus.CONFLICT) { // <1> @@ -257,7 +257,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { listener = new LatchedActionListener<>(listener, latch); // tag::index-execute-async - client.indexAsync(request, listener); // <1> + client.indexAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::index-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -268,7 +268,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { RestHighLevelClient client = highLevelClient(); { IndexRequest indexRequest = new IndexRequest("posts", "doc", "1").source("field", 0); - IndexResponse indexResponse = client.index(indexRequest); + IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT); assertSame(indexResponse.status(), RestStatus.CREATED); Request request = new Request("POST", "/_scripts/increment-field"); @@ -297,7 +297,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { "ctx._source.field += params.count", parameters); // <2> request.script(inline); // <3> //end::update-request-with-inline-script - UpdateResponse updateResponse = client.update(request); + UpdateResponse updateResponse = client.update(request, RequestOptions.DEFAULT); assertEquals(updateResponse.getResult(), DocWriteResponse.Result.UPDATED); assertEquals(4, updateResponse.getGetResult().getSource().get("field")); @@ -307,7 +307,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { new Script(ScriptType.STORED, null, "increment-field", parameters); // <1> request.script(stored); // <2> //end::update-request-with-stored-script - updateResponse = client.update(request); + updateResponse = client.update(request, RequestOptions.DEFAULT); assertEquals(updateResponse.getResult(), DocWriteResponse.Result.UPDATED); assertEquals(8, updateResponse.getGetResult().getSource().get("field")); } @@ -319,7 +319,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { UpdateRequest request = new UpdateRequest("posts", "doc", "1") .doc(jsonMap); // <1> //end::update-request-with-doc-as-map - UpdateResponse updateResponse = client.update(request); + UpdateResponse updateResponse = client.update(request, RequestOptions.DEFAULT); assertEquals(updateResponse.getResult(), DocWriteResponse.Result.UPDATED); } { @@ -334,7 +334,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { UpdateRequest request = new UpdateRequest("posts", "doc", "1") .doc(builder); // <1> //end::update-request-with-doc-as-xcontent - UpdateResponse updateResponse = client.update(request); + UpdateResponse updateResponse = client.update(request, RequestOptions.DEFAULT); assertEquals(updateResponse.getResult(), DocWriteResponse.Result.UPDATED); } { @@ -343,7 +343,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { .doc("updated", new Date(), "reason", "daily update"); // <1> //end::update-request-shortcut - UpdateResponse updateResponse = client.update(request); + UpdateResponse updateResponse = client.update(request, RequestOptions.DEFAULT); assertEquals(updateResponse.getResult(), DocWriteResponse.Result.UPDATED); } { @@ -357,7 +357,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { //end::update-request-with-doc-as-string request.fetchSource(true); // tag::update-execute - UpdateResponse updateResponse = client.update(request); + UpdateResponse updateResponse = client.update(request, RequestOptions.DEFAULT); // end::update-execute assertEquals(updateResponse.getResult(), DocWriteResponse.Result.UPDATED); @@ -406,7 +406,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { UpdateRequest request = new UpdateRequest("posts", "type", "does_not_exist") .doc("field", "value"); try { - UpdateResponse updateResponse = client.update(request); + UpdateResponse updateResponse = client.update(request, RequestOptions.DEFAULT); } catch (ElasticsearchException e) { if (e.status() == RestStatus.NOT_FOUND) { // <1> @@ -420,7 +420,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { .doc("field", "value") .version(1); try { - UpdateResponse updateResponse = client.update(request); + UpdateResponse updateResponse = client.update(request, RequestOptions.DEFAULT); } catch(ElasticsearchException e) { if (e.status() == RestStatus.CONFLICT) { // <1> @@ -433,7 +433,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { //tag::update-request-no-source request.fetchSource(true); // <1> //end::update-request-no-source - UpdateResponse updateResponse = client.update(request); + UpdateResponse updateResponse = client.update(request, RequestOptions.DEFAULT); assertEquals(updateResponse.getResult(), DocWriteResponse.Result.UPDATED); assertNotNull(updateResponse.getGetResult()); assertEquals(3, updateResponse.getGetResult().sourceAsMap().size()); @@ -445,7 +445,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { String[] excludes = Strings.EMPTY_ARRAY; request.fetchSource(new FetchSourceContext(true, includes, excludes)); // <1> //end::update-request-source-include - UpdateResponse updateResponse = client.update(request); + UpdateResponse updateResponse = client.update(request, RequestOptions.DEFAULT); assertEquals(updateResponse.getResult(), DocWriteResponse.Result.UPDATED); Map sourceAsMap = updateResponse.getGetResult().sourceAsMap(); assertEquals(2, sourceAsMap.size()); @@ -459,7 +459,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { String[] excludes = new String[]{"updated"}; request.fetchSource(new FetchSourceContext(true, includes, excludes)); // <1> //end::update-request-source-exclude - UpdateResponse updateResponse = client.update(request); + UpdateResponse updateResponse = client.update(request, RequestOptions.DEFAULT); assertEquals(updateResponse.getResult(), DocWriteResponse.Result.UPDATED); Map sourceAsMap = updateResponse.getGetResult().sourceAsMap(); assertEquals(2, sourceAsMap.size()); @@ -525,7 +525,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { listener = new LatchedActionListener<>(listener, latch); // tag::update-execute-async - client.updateAsync(request, listener); // <1> + client.updateAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::update-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -537,7 +537,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { { IndexRequest indexRequest = new IndexRequest("posts", "doc", "1").source("field", "value"); - IndexResponse indexResponse = client.index(indexRequest); + IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT); assertSame(indexResponse.status(), RestStatus.CREATED); } @@ -550,7 +550,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { // end::delete-request // tag::delete-execute - DeleteResponse deleteResponse = client.delete(request); + DeleteResponse deleteResponse = client.delete(request, RequestOptions.DEFAULT); // end::delete-execute assertSame(deleteResponse.getResult(), DocWriteResponse.Result.DELETED); @@ -595,7 +595,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { { // tag::delete-notfound DeleteRequest request = new DeleteRequest("posts", "doc", "does_not_exist"); - DeleteResponse deleteResponse = client.delete(request); + DeleteResponse deleteResponse = client.delete(request, RequestOptions.DEFAULT); if (deleteResponse.getResult() == DocWriteResponse.Result.NOT_FOUND) { // <1> } @@ -603,13 +603,14 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { } { - IndexResponse indexResponse = client.index(new IndexRequest("posts", "doc", "1").source("field", "value")); + IndexResponse indexResponse = client.index(new IndexRequest("posts", "doc", "1").source("field", "value") + , RequestOptions.DEFAULT); assertSame(indexResponse.status(), RestStatus.CREATED); // tag::delete-conflict try { DeleteRequest request = new DeleteRequest("posts", "doc", "1").version(2); - DeleteResponse deleteResponse = client.delete(request); + DeleteResponse deleteResponse = client.delete(request, RequestOptions.DEFAULT); } catch (ElasticsearchException exception) { if (exception.status() == RestStatus.CONFLICT) { // <1> @@ -618,7 +619,8 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { // end::delete-conflict } { - IndexResponse indexResponse = client.index(new IndexRequest("posts", "doc", "async").source("field", "value")); + IndexResponse indexResponse = client.index(new IndexRequest("posts", "doc", "async").source("field", "value"), + RequestOptions.DEFAULT); assertSame(indexResponse.status(), RestStatus.CREATED); DeleteRequest request = new DeleteRequest("posts", "doc", "async"); @@ -642,7 +644,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { listener = new LatchedActionListener<>(listener, latch); // tag::delete-execute-async - client.deleteAsync(request, listener); // <1> + client.deleteAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::delete-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -662,7 +664,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { .source(XContentType.JSON,"field", "baz")); // end::bulk-request // tag::bulk-execute - BulkResponse bulkResponse = client.bulk(request); + BulkResponse bulkResponse = client.bulk(request, RequestOptions.DEFAULT); // end::bulk-execute assertSame(bulkResponse.status(), RestStatus.OK); assertFalse(bulkResponse.hasFailures()); @@ -676,7 +678,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { request.add(new IndexRequest("posts", "doc", "4") // <3> .source(XContentType.JSON,"field", "baz")); // end::bulk-request-with-mixed-operations - BulkResponse bulkResponse = client.bulk(request); + BulkResponse bulkResponse = client.bulk(request, RequestOptions.DEFAULT); assertSame(bulkResponse.status(), RestStatus.OK); assertFalse(bulkResponse.hasFailures()); @@ -775,7 +777,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { .source("user", "kimchy", "postDate", new Date(), "message", "trying out Elasticsearch"); - IndexResponse indexResponse = client.index(indexRequest); + IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT); assertEquals(indexResponse.getResult(), DocWriteResponse.Result.CREATED); } { @@ -787,7 +789,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { //end::get-request //tag::get-execute - GetResponse getResponse = client.get(getRequest); + GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT); //end::get-execute assertTrue(getResponse.isExists()); assertEquals(3, getResponse.getSourceAsMap().size()); @@ -810,7 +812,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { //tag::get-request-no-source request.fetchSourceContext(FetchSourceContext.DO_NOT_FETCH_SOURCE); // <1> //end::get-request-no-source - GetResponse getResponse = client.get(request); + GetResponse getResponse = client.get(request, RequestOptions.DEFAULT); assertNull(getResponse.getSourceInternal()); } { @@ -822,7 +824,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { new FetchSourceContext(true, includes, excludes); request.fetchSourceContext(fetchSourceContext); // <1> //end::get-request-source-include - GetResponse getResponse = client.get(request); + GetResponse getResponse = client.get(request, RequestOptions.DEFAULT); Map sourceAsMap = getResponse.getSourceAsMap(); assertEquals(2, sourceAsMap.size()); assertEquals("trying out Elasticsearch", sourceAsMap.get("message")); @@ -837,7 +839,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { new FetchSourceContext(true, includes, excludes); request.fetchSourceContext(fetchSourceContext); // <1> //end::get-request-source-exclude - GetResponse getResponse = client.get(request); + GetResponse getResponse = client.get(request, RequestOptions.DEFAULT); Map sourceAsMap = getResponse.getSourceAsMap(); assertEquals(2, sourceAsMap.size()); assertEquals("kimchy", sourceAsMap.get("user")); @@ -847,7 +849,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { GetRequest request = new GetRequest("posts", "doc", "1"); //tag::get-request-stored request.storedFields("message"); // <1> - GetResponse getResponse = client.get(request); + GetResponse getResponse = client.get(request, RequestOptions.DEFAULT); String message = getResponse.getField("message").getValue(); // <2> //end::get-request-stored assertEquals("trying out Elasticsearch", message); @@ -897,7 +899,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { listener = new LatchedActionListener<>(listener, latch); //tag::get-execute-async - client.getAsync(request, listener); // <1> + client.getAsync(request, RequestOptions.DEFAULT, listener); // <1> //end::get-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -906,7 +908,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { //tag::get-indexnotfound GetRequest request = new GetRequest("does_not_exist", "doc", "1"); try { - GetResponse getResponse = client.get(request); + GetResponse getResponse = client.get(request, RequestOptions.DEFAULT); } catch (ElasticsearchException e) { if (e.status() == RestStatus.NOT_FOUND) { // <1> @@ -918,7 +920,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { // tag::get-conflict try { GetRequest request = new GetRequest("posts", "doc", "1").version(2); - GetResponse getResponse = client.get(request); + GetResponse getResponse = client.get(request, RequestOptions.DEFAULT); } catch (ElasticsearchException exception) { if (exception.status() == RestStatus.CONFLICT) { // <1> @@ -940,7 +942,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { // end::exists-request { // tag::exists-execute - boolean exists = client.exists(getRequest); + boolean exists = client.exists(getRequest, RequestOptions.DEFAULT); // end::exists-execute assertFalse(exists); } @@ -964,7 +966,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { listener = new LatchedActionListener<>(listener, latch); // tag::exists-execute-async - client.existsAsync(getRequest, listener); // <1> + client.existsAsync(getRequest, RequestOptions.DEFAULT, listener); // <1> // end::exists-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -1091,7 +1093,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { source.put("baz", "val3"); client.index(new IndexRequest("index", "type", "example_id") .source(source) - .setRefreshPolicy(RefreshPolicy.IMMEDIATE)); + .setRefreshPolicy(RefreshPolicy.IMMEDIATE), RequestOptions.DEFAULT); { // tag::multi-get-request @@ -1120,7 +1122,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { // end::multi-get-request-top-level-extras // tag::multi-get-execute - MultiGetResponse response = client.multiGet(request); + MultiGetResponse response = client.multiGet(request, RequestOptions.DEFAULT); // end::multi-get-execute // tag::multi-get-response @@ -1184,7 +1186,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { request.add(new MultiGetRequest.Item("index", "type", "example_id") .fetchSourceContext(FetchSourceContext.DO_NOT_FETCH_SOURCE)); // <1> // end::multi-get-request-no-source - MultiGetItemResponse item = unwrapAndAssertExample(client.multiGet(request)); + MultiGetItemResponse item = unwrapAndAssertExample(client.multiGet(request, RequestOptions.DEFAULT)); assertNull(item.getResponse().getSource()); } { @@ -1197,7 +1199,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { request.add(new MultiGetRequest.Item("index", "type", "example_id") .fetchSourceContext(fetchSourceContext)); // <1> // end::multi-get-request-source-include - MultiGetItemResponse item = unwrapAndAssertExample(client.multiGet(request)); + MultiGetItemResponse item = unwrapAndAssertExample(client.multiGet(request, RequestOptions.DEFAULT)); assertThat(item.getResponse().getSource(), hasEntry("foo", "val1")); assertThat(item.getResponse().getSource(), hasEntry("bar", "val2")); assertThat(item.getResponse().getSource(), not(hasKey("baz"))); @@ -1212,7 +1214,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { request.add(new MultiGetRequest.Item("index", "type", "example_id") .fetchSourceContext(fetchSourceContext)); // <1> // end::multi-get-request-source-exclude - MultiGetItemResponse item = unwrapAndAssertExample(client.multiGet(request)); + MultiGetItemResponse item = unwrapAndAssertExample(client.multiGet(request, RequestOptions.DEFAULT)); assertThat(item.getResponse().getSource(), not(hasKey("foo"))); assertThat(item.getResponse().getSource(), not(hasKey("bar"))); assertThat(item.getResponse().getSource(), hasEntry("baz", "val3")); @@ -1222,7 +1224,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { // tag::multi-get-request-stored request.add(new MultiGetRequest.Item("index", "type", "example_id") .storedFields("foo")); // <1> - MultiGetResponse response = client.multiGet(request); + MultiGetResponse response = client.multiGet(request, RequestOptions.DEFAULT); MultiGetItemResponse item = response.getResponses()[0]; String value = item.getResponse().getField("foo").getValue(); // <2> // end::multi-get-request-stored @@ -1234,7 +1236,7 @@ public class CRUDDocumentationIT extends ESRestHighLevelClientTestCase { MultiGetRequest request = new MultiGetRequest(); request.add(new MultiGetRequest.Item("index", "type", "example_id") .version(1000L)); - MultiGetResponse response = client.multiGet(request); + MultiGetResponse response = client.multiGet(request, RequestOptions.DEFAULT); MultiGetItemResponse item = response.getResponses()[0]; assertNull(item.getResponse()); // <1> Exception e = item.getFailure().getFailure(); // <2> diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/ClusterClientDocumentationIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/ClusterClientDocumentationIT.java index 304c5010a47..e8dd4025ba9 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/ClusterClientDocumentationIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/ClusterClientDocumentationIT.java @@ -23,27 +23,19 @@ import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.LatchedActionListener; import org.elasticsearch.action.admin.cluster.settings.ClusterUpdateSettingsRequest; import org.elasticsearch.action.admin.cluster.settings.ClusterUpdateSettingsResponse; -import org.elasticsearch.action.ingest.GetPipelineRequest; -import org.elasticsearch.action.ingest.GetPipelineResponse; -import org.elasticsearch.action.ingest.PutPipelineRequest; -import org.elasticsearch.action.ingest.DeletePipelineRequest; -import org.elasticsearch.action.ingest.WritePipelineResponse; import org.elasticsearch.client.ESRestHighLevelClientTestCase; +import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.cluster.routing.allocation.decider.EnableAllocationDecider; -import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.ByteSizeUnit; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.indices.recovery.RecoverySettings; -import org.elasticsearch.ingest.PipelineConfiguration; import java.io.IOException; -import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; -import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @@ -134,7 +126,7 @@ public class ClusterClientDocumentationIT extends ESRestHighLevelClientTestCase // end::put-settings-request-masterTimeout // tag::put-settings-execute - ClusterUpdateSettingsResponse response = client.cluster().putSettings(request); + ClusterUpdateSettingsResponse response = client.cluster().putSettings(request, RequestOptions.DEFAULT); // end::put-settings-execute // tag::put-settings-response @@ -150,7 +142,7 @@ public class ClusterClientDocumentationIT extends ESRestHighLevelClientTestCase request.transientSettings(Settings.builder().putNull(transientSettingKey).build()); // <1> // tag::put-settings-request-reset-transient request.persistentSettings(Settings.builder().putNull(persistentSettingKey)); - ClusterUpdateSettingsResponse resetResponse = client.cluster().putSettings(request); + ClusterUpdateSettingsResponse resetResponse = client.cluster().putSettings(request, RequestOptions.DEFAULT); assertTrue(resetResponse.isAcknowledged()); } @@ -180,7 +172,7 @@ public class ClusterClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::put-settings-execute-async - client.cluster().putSettingsAsync(request, listener); // <1> + client.cluster().putSettingsAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::put-settings-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IndicesClientDocumentationIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IndicesClientDocumentationIT.java index c3decd93a17..2b81e4a4adc 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IndicesClientDocumentationIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IndicesClientDocumentationIT.java @@ -64,6 +64,7 @@ import org.elasticsearch.action.support.ActiveShardCount; import org.elasticsearch.action.support.DefaultShardOperationFailedException; import org.elasticsearch.action.support.IndicesOptions; import org.elasticsearch.client.ESRestHighLevelClientTestCase; +import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.client.SyncedFlushResponse; import org.elasticsearch.cluster.metadata.MappingMetaData; @@ -111,7 +112,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase RestHighLevelClient client = highLevelClient(); { - CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("twitter")); + CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("twitter"), RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } @@ -130,7 +131,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::indices-exists-request-optionals // tag::indices-exists-response - boolean exists = client.indices().exists(request); + boolean exists = client.indices().exists(request, RequestOptions.DEFAULT); // end::indices-exists-response assertTrue(exists); } @@ -140,7 +141,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase RestHighLevelClient client = highLevelClient(); { - CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("twitter")); + CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("twitter"), RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } @@ -167,7 +168,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::indices-exists-async - client.indices().existsAsync(request, listener); // <1> + client.indices().existsAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::indices-exists-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -177,7 +178,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase RestHighLevelClient client = highLevelClient(); { - CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("posts")); + CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("posts"), RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } @@ -199,7 +200,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::delete-index-request-indicesOptions // tag::delete-index-execute - DeleteIndexResponse deleteIndexResponse = client.indices().delete(request); + DeleteIndexResponse deleteIndexResponse = client.indices().delete(request, RequestOptions.DEFAULT); // end::delete-index-execute // tag::delete-index-response @@ -212,7 +213,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // tag::delete-index-notfound try { DeleteIndexRequest request = new DeleteIndexRequest("does_not_exist"); - client.indices().delete(request); + client.indices().delete(request, RequestOptions.DEFAULT); } catch (ElasticsearchException exception) { if (exception.status() == RestStatus.NOT_FOUND) { // <1> @@ -226,7 +227,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase final RestHighLevelClient client = highLevelClient(); { - CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("posts")); + CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("posts"), RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } @@ -253,7 +254,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::delete-index-execute-async - client.indices().deleteAsync(request, listener); // <1> + client.indices().deleteAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::delete-index-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -289,7 +290,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase "}", // <2> XContentType.JSON); // end::create-index-request-mappings - CreateIndexResponse createIndexResponse = client.indices().create(request); + CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } @@ -306,7 +307,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase jsonMap.put("tweet", tweet); request.mapping("tweet", jsonMap); // <1> //end::create-index-mappings-map - CreateIndexResponse createIndexResponse = client.indices().create(request); + CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } { @@ -332,7 +333,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase builder.endObject(); request.mapping("tweet", builder); // <1> //end::create-index-mappings-xcontent - CreateIndexResponse createIndexResponse = client.indices().create(request); + CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } { @@ -340,7 +341,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase //tag::create-index-mappings-shortcut request.mapping("tweet", "message", "type=text"); // <1> //end::create-index-mappings-shortcut - CreateIndexResponse createIndexResponse = client.indices().create(request); + CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } @@ -362,7 +363,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase request.waitForActiveShards(ActiveShardCount.DEFAULT); // <2> // end::create-index-request-waitForActiveShards { - CreateIndexResponse createIndexResponse = client.indices().create(request); + CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } @@ -387,7 +388,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::create-index-whole-source // tag::create-index-execute - CreateIndexResponse createIndexResponse = client.indices().create(request); + CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT); // end::create-index-execute // tag::create-index-response @@ -426,7 +427,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::create-index-execute-async - client.indices().createAsync(request, listener); // <1> + client.indices().createAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::create-index-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -437,7 +438,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase RestHighLevelClient client = highLevelClient(); { - CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("twitter")); + CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("twitter"), RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } @@ -459,7 +460,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase "}", // <1> XContentType.JSON); // end::put-mapping-request-source - PutMappingResponse putMappingResponse = client.indices().putMapping(request); + PutMappingResponse putMappingResponse = client.indices().putMapping(request, RequestOptions.DEFAULT); assertTrue(putMappingResponse.isAcknowledged()); } @@ -473,7 +474,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase jsonMap.put("properties", properties); request.source(jsonMap); // <1> //end::put-mapping-map - PutMappingResponse putMappingResponse = client.indices().putMapping(request); + PutMappingResponse putMappingResponse = client.indices().putMapping(request, RequestOptions.DEFAULT); assertTrue(putMappingResponse.isAcknowledged()); } { @@ -494,14 +495,14 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase builder.endObject(); request.source(builder); // <1> //end::put-mapping-xcontent - PutMappingResponse putMappingResponse = client.indices().putMapping(request); + PutMappingResponse putMappingResponse = client.indices().putMapping(request, RequestOptions.DEFAULT); assertTrue(putMappingResponse.isAcknowledged()); } { //tag::put-mapping-shortcut request.source("message", "type=text"); // <1> //end::put-mapping-shortcut - PutMappingResponse putMappingResponse = client.indices().putMapping(request); + PutMappingResponse putMappingResponse = client.indices().putMapping(request, RequestOptions.DEFAULT); assertTrue(putMappingResponse.isAcknowledged()); } @@ -515,7 +516,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::put-mapping-request-masterTimeout // tag::put-mapping-execute - PutMappingResponse putMappingResponse = client.indices().putMapping(request); + PutMappingResponse putMappingResponse = client.indices().putMapping(request, RequestOptions.DEFAULT); // end::put-mapping-execute // tag::put-mapping-response @@ -529,7 +530,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase final RestHighLevelClient client = highLevelClient(); { - CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("twitter")); + CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("twitter"), RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } @@ -556,7 +557,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::put-mapping-execute-async - client.indices().putMappingAsync(request, listener); // <1> + client.indices().putMappingAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::put-mapping-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -601,7 +602,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::get-mapping-request-indicesOptions // tag::get-mapping-execute - GetMappingsResponse getMappingResponse = client.indices().getMappings(request); + GetMappingsResponse getMappingResponse = client.indices().getMappings(request, RequestOptions.DEFAULT); // end::get-mapping-execute // tag::get-mapping-response @@ -683,7 +684,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase }); // tag::get-mapping-execute-async - client.indices().getMappingsAsync(request, listener); // <1> + client.indices().getMappingsAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::get-mapping-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -694,7 +695,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase RestHighLevelClient client = highLevelClient(); { - CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("index")); + CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("index"), RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } @@ -721,7 +722,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::open-index-request-indicesOptions // tag::open-index-execute - OpenIndexResponse openIndexResponse = client.indices().open(request); + OpenIndexResponse openIndexResponse = client.indices().open(request, RequestOptions.DEFAULT); // end::open-index-execute // tag::open-index-response @@ -751,7 +752,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::open-index-execute-async - client.indices().openAsync(request, listener); // <1> + client.indices().openAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::open-index-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -761,7 +762,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // tag::open-index-notfound try { OpenIndexRequest request = new OpenIndexRequest("does_not_exist"); - client.indices().open(request); + client.indices().open(request, RequestOptions.DEFAULT); } catch (ElasticsearchException exception) { if (exception.status() == RestStatus.BAD_REQUEST) { // <1> @@ -790,7 +791,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::refresh-request-indicesOptions // tag::refresh-execute - RefreshResponse refreshResponse = client.indices().refresh(request); + RefreshResponse refreshResponse = client.indices().refresh(request, RequestOptions.DEFAULT); // end::refresh-execute // tag::refresh-response @@ -819,7 +820,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::refresh-execute-async - client.indices().refreshAsync(request, listener); // <1> + client.indices().refreshAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::refresh-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -829,7 +830,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // tag::refresh-notfound try { RefreshRequest request = new RefreshRequest("does_not_exist"); - client.indices().refresh(request); + client.indices().refresh(request, RequestOptions.DEFAULT); } catch (ElasticsearchException exception) { if (exception.status() == RestStatus.NOT_FOUND) { // <1> @@ -866,7 +867,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::flush-request-force // tag::flush-execute - FlushResponse flushResponse = client.indices().flush(request); + FlushResponse flushResponse = client.indices().flush(request, RequestOptions.DEFAULT); // end::flush-execute // tag::flush-response @@ -895,7 +896,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::flush-execute-async - client.indices().flushAsync(request, listener); // <1> + client.indices().flushAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::flush-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -905,7 +906,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // tag::flush-notfound try { FlushRequest request = new FlushRequest("does_not_exist"); - client.indices().flush(request); + client.indices().flush(request, RequestOptions.DEFAULT); } catch (ElasticsearchException exception) { if (exception.status() == RestStatus.NOT_FOUND) { // <1> @@ -934,7 +935,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::flush-synced-request-indicesOptions // tag::flush-synced-execute - SyncedFlushResponse flushSyncedResponse = client.indices().flushSynced(request); + SyncedFlushResponse flushSyncedResponse = client.indices().flushSynced(request, RequestOptions.DEFAULT); // end::flush-synced-execute // tag::flush-synced-response @@ -978,7 +979,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::flush-synced-execute-async - client.indices().flushSyncedAsync(request, listener); // <1> + client.indices().flushSyncedAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::flush-synced-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -988,7 +989,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // tag::flush-synced-notfound try { SyncedFlushRequest request = new SyncedFlushRequest("does_not_exist"); - client.indices().flushSynced(request); + client.indices().flushSynced(request, RequestOptions.DEFAULT); } catch (ElasticsearchException exception) { if (exception.status() == RestStatus.NOT_FOUND) { // <1> @@ -1003,7 +1004,8 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase { Settings settings = Settings.builder().put("number_of_shards", 3).build(); - CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("index", settings)); + CreateIndexResponse createIndexResponse = client.indices().create( + new CreateIndexRequest("index", settings), RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } @@ -1020,7 +1022,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::get-settings-request-indicesOptions // tag::get-settings-execute - GetSettingsResponse getSettingsResponse = client.indices().getSettings(request); + GetSettingsResponse getSettingsResponse = client.indices().getSettings(request, RequestOptions.DEFAULT); // end::get-settings-execute // tag::get-settings-response @@ -1055,7 +1057,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::get-settings-execute-async - client.indices().getSettingsAsync(request, listener); // <1> + client.indices().getSettingsAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::get-settings-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -1066,7 +1068,8 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase { Settings settings = Settings.builder().put("number_of_shards", 3).build(); - CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("index", settings)); + CreateIndexResponse createIndexResponse = client.indices().create( + new CreateIndexRequest("index", settings), RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } @@ -1077,7 +1080,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase request.includeDefaults(true); // <1> // end::get-settings-request-include-defaults - GetSettingsResponse getSettingsResponse = client.indices().getSettings(request); + GetSettingsResponse getSettingsResponse = client.indices().getSettings(request, RequestOptions.DEFAULT); String numberOfShardsString = getSettingsResponse.getSetting("index", "index.number_of_shards"); Settings indexSettings = getSettingsResponse.getIndexToSettings().get("index"); Integer numberOfShards = indexSettings.getAsInt("index.number_of_shards", null); @@ -1107,7 +1110,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase final CountDownLatch latch = new CountDownLatch(1); listener = new LatchedActionListener<>(listener, latch); - client.indices().getSettingsAsync(request, listener); + client.indices().getSettingsAsync(request, RequestOptions.DEFAULT, listener); assertTrue(latch.await(30L, TimeUnit.SECONDS)); } @@ -1142,7 +1145,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::force-merge-request-flush // tag::force-merge-execute - ForceMergeResponse forceMergeResponse = client.indices().forceMerge(request); + ForceMergeResponse forceMergeResponse = client.indices().forceMerge(request, RequestOptions.DEFAULT); // end::force-merge-execute // tag::force-merge-response @@ -1167,14 +1170,14 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::force-merge-execute-listener // tag::force-merge-execute-async - client.indices().forceMergeAsync(request, listener); // <1> + client.indices().forceMergeAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::force-merge-execute-async } { // tag::force-merge-notfound try { ForceMergeRequest request = new ForceMergeRequest("does_not_exist"); - client.indices().forceMerge(request); + client.indices().forceMerge(request, RequestOptions.DEFAULT); } catch (ElasticsearchException exception) { if (exception.status() == RestStatus.NOT_FOUND) { // <1> @@ -1219,7 +1222,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::clear-cache-request-fields // tag::clear-cache-execute - ClearIndicesCacheResponse clearCacheResponse = client.indices().clearCache(request); + ClearIndicesCacheResponse clearCacheResponse = client.indices().clearCache(request, RequestOptions.DEFAULT); // end::clear-cache-execute // tag::clear-cache-response @@ -1248,7 +1251,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::clear-cache-execute-async - client.indices().clearCacheAsync(request, listener); // <1> + client.indices().clearCacheAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::clear-cache-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -1258,7 +1261,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // tag::clear-cache-notfound try { ClearIndicesCacheRequest request = new ClearIndicesCacheRequest("does_not_exist"); - client.indices().clearCache(request); + client.indices().clearCache(request, RequestOptions.DEFAULT); } catch (ElasticsearchException exception) { if (exception.status() == RestStatus.NOT_FOUND) { // <1> @@ -1272,7 +1275,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase RestHighLevelClient client = highLevelClient(); { - CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("index")); + CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("index"), RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } @@ -1295,7 +1298,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::close-index-request-indicesOptions // tag::close-index-execute - CloseIndexResponse closeIndexResponse = client.indices().close(request); + CloseIndexResponse closeIndexResponse = client.indices().close(request, RequestOptions.DEFAULT); // end::close-index-execute // tag::close-index-response @@ -1323,7 +1326,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::close-index-execute-async - client.indices().closeAsync(request, listener); // <1> + client.indices().closeAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::close-index-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -1335,7 +1338,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase { CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("index") - .alias(new Alias("alias"))); + .alias(new Alias("alias")), RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } @@ -1363,7 +1366,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::exists-alias-request-local // tag::exists-alias-execute - boolean exists = client.indices().existsAlias(request); + boolean exists = client.indices().existsAlias(request, RequestOptions.DEFAULT); // end::exists-alias-execute assertTrue(exists); @@ -1386,7 +1389,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::exists-alias-execute-async - client.indices().existsAliasAsync(request, listener); // <1> + client.indices().existsAliasAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::exists-alias-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -1397,13 +1400,13 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase RestHighLevelClient client = highLevelClient(); { - CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("index1")); + CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("index1"), RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); - createIndexResponse = client.indices().create(new CreateIndexRequest("index2")); + createIndexResponse = client.indices().create(new CreateIndexRequest("index2"), RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); - createIndexResponse = client.indices().create(new CreateIndexRequest("index3")); + createIndexResponse = client.indices().create(new CreateIndexRequest("index3"), RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); - createIndexResponse = client.indices().create(new CreateIndexRequest("index4")); + createIndexResponse = client.indices().create(new CreateIndexRequest("index4"), RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } @@ -1448,7 +1451,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // tag::update-aliases-execute IndicesAliasesResponse indicesAliasesResponse = - client.indices().updateAliases(request); + client.indices().updateAliases(request, RequestOptions.DEFAULT); // end::update-aliases-execute // tag::update-aliases-response @@ -1482,7 +1485,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::update-aliases-execute-async - client.indices().updateAliasesAsync(request, listener); // <1> + client.indices().updateAliasesAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::update-aliases-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -1527,7 +1530,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::shrink-index-request-aliases // tag::shrink-index-execute - ResizeResponse resizeResponse = client.indices().shrink(request); + ResizeResponse resizeResponse = client.indices().shrink(request, RequestOptions.DEFAULT); // end::shrink-index-execute // tag::shrink-index-response @@ -1556,7 +1559,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::shrink-index-execute-async - client.indices().shrinkAsync(request, listener); // <1> + client.indices().shrinkAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::shrink-index-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -1597,7 +1600,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::split-index-request-aliases // tag::split-index-execute - ResizeResponse resizeResponse = client.indices().split(request); + ResizeResponse resizeResponse = client.indices().split(request, RequestOptions.DEFAULT); // end::split-index-execute // tag::split-index-response @@ -1626,7 +1629,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::split-index-execute-async - client.indices().splitAsync(request,listener); // <1> + client.indices().splitAsync(request, RequestOptions.DEFAULT,listener); // <1> // end::split-index-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -1636,7 +1639,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase RestHighLevelClient client = highLevelClient(); { - client.indices().create(new CreateIndexRequest("index-1").alias(new Alias("alias"))); + client.indices().create(new CreateIndexRequest("index-1").alias(new Alias("alias")), RequestOptions.DEFAULT); } // tag::rollover-request @@ -1673,7 +1676,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // end::rollover-request-alias // tag::rollover-execute - RolloverResponse rolloverResponse = client.indices().rollover(request); + RolloverResponse rolloverResponse = client.indices().rollover(request, RequestOptions.DEFAULT); // end::rollover-execute // tag::rollover-response @@ -1712,7 +1715,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::rollover-execute-async - client.indices().rolloverAsync(request,listener); // <1> + client.indices().rolloverAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::rollover-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -1722,7 +1725,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase RestHighLevelClient client = highLevelClient(); { - CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("index")); + CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("index"), RequestOptions.DEFAULT); assertTrue(createIndexResponse.isAcknowledged()); } @@ -1785,7 +1788,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase // tag::put-settings-execute UpdateSettingsResponse updateSettingsResponse = - client.indices().putSettings(request); + client.indices().putSettings(request, RequestOptions.DEFAULT); // end::put-settings-execute // tag::put-settings-response @@ -1814,7 +1817,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::put-settings-execute-async - client.indices().putSettingsAsync(request,listener); // <1> + client.indices().putSettingsAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::put-settings-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -1849,7 +1852,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase "}", // <2> XContentType.JSON); // end::put-template-request-mappings-json - assertTrue(client.indices().putTemplate(request).isAcknowledged()); + assertTrue(client.indices().putTemplate(request, RequestOptions.DEFAULT).isAcknowledged()); } { //tag::put-template-request-mappings-map @@ -1863,7 +1866,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase jsonMap.put("tweet", tweet); request.mapping("tweet", jsonMap); // <1> //end::put-template-request-mappings-map - assertTrue(client.indices().putTemplate(request).isAcknowledged()); + assertTrue(client.indices().putTemplate(request, RequestOptions.DEFAULT).isAcknowledged()); } { //tag::put-template-request-mappings-xcontent @@ -1887,13 +1890,13 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase builder.endObject(); request.mapping("tweet", builder); // <1> //end::put-template-request-mappings-xcontent - assertTrue(client.indices().putTemplate(request).isAcknowledged()); + assertTrue(client.indices().putTemplate(request, RequestOptions.DEFAULT).isAcknowledged()); } { //tag::put-template-request-mappings-shortcut request.mapping("tweet", "message", "type=text"); // <1> //end::put-template-request-mappings-shortcut - assertTrue(client.indices().putTemplate(request).isAcknowledged()); + assertTrue(client.indices().putTemplate(request, RequestOptions.DEFAULT).isAcknowledged()); } // tag::put-template-request-aliases @@ -1947,7 +1950,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase request.create(false); // make test happy // tag::put-template-execute - PutIndexTemplateResponse putTemplateResponse = client.indices().putTemplate(request); + PutIndexTemplateResponse putTemplateResponse = client.indices().putTemplate(request, RequestOptions.DEFAULT); // end::put-template-execute // tag::put-template-response @@ -1975,7 +1978,7 @@ public class IndicesClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::put-template-execute-async - client.indices().putTemplateAsync(request, listener); // <1> + client.indices().putTemplateAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::put-template-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IngestClientDocumentationIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IngestClientDocumentationIT.java index 7971e49da44..f5bdc9f2f3e 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IngestClientDocumentationIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IngestClientDocumentationIT.java @@ -27,6 +27,7 @@ import org.elasticsearch.action.ingest.GetPipelineResponse; import org.elasticsearch.action.ingest.PutPipelineRequest; import org.elasticsearch.action.ingest.WritePipelineResponse; import org.elasticsearch.client.ESRestHighLevelClientTestCase; +import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.unit.TimeValue; @@ -86,7 +87,7 @@ public class IngestClientDocumentationIT extends ESRestHighLevelClientTestCase { // end::put-pipeline-request-masterTimeout // tag::put-pipeline-execute - WritePipelineResponse response = client.ingest().putPipeline(request); // <1> + WritePipelineResponse response = client.ingest().putPipeline(request, RequestOptions.DEFAULT); // <1> // end::put-pipeline-execute // tag::put-pipeline-response @@ -129,7 +130,7 @@ public class IngestClientDocumentationIT extends ESRestHighLevelClientTestCase { listener = new LatchedActionListener<>(listener, latch); // tag::put-pipeline-execute-async - client.ingest().putPipelineAsync(request, listener); // <1> + client.ingest().putPipelineAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::put-pipeline-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -154,7 +155,7 @@ public class IngestClientDocumentationIT extends ESRestHighLevelClientTestCase { // end::get-pipeline-request-masterTimeout // tag::get-pipeline-execute - GetPipelineResponse response = client.ingest().getPipeline(request); // <1> + GetPipelineResponse response = client.ingest().getPipeline(request, RequestOptions.DEFAULT); // <1> // end::get-pipeline-execute // tag::get-pipeline-response @@ -199,7 +200,7 @@ public class IngestClientDocumentationIT extends ESRestHighLevelClientTestCase { listener = new LatchedActionListener<>(listener, latch); // tag::get-pipeline-execute-async - client.ingest().getPipelineAsync(request, listener); // <1> + client.ingest().getPipelineAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::get-pipeline-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -229,7 +230,7 @@ public class IngestClientDocumentationIT extends ESRestHighLevelClientTestCase { // end::delete-pipeline-request-masterTimeout // tag::delete-pipeline-execute - WritePipelineResponse response = client.ingest().deletePipeline(request); // <1> + WritePipelineResponse response = client.ingest().deletePipeline(request, RequestOptions.DEFAULT); // <1> // end::delete-pipeline-execute // tag::delete-pipeline-response @@ -269,7 +270,7 @@ public class IngestClientDocumentationIT extends ESRestHighLevelClientTestCase { listener = new LatchedActionListener<>(listener, latch); // tag::delete-pipeline-execute-async - client.ingest().deletePipelineAsync(request, listener); // <1> + client.ingest().deletePipelineAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::delete-pipeline-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/MigrationDocumentationIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/MigrationDocumentationIT.java index 489d4d9b1ed..b56fb3359ff 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/MigrationDocumentationIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/MigrationDocumentationIT.java @@ -19,10 +19,6 @@ package org.elasticsearch.client.documentation; -import org.apache.http.HttpEntity; -import org.apache.http.HttpStatus; -import org.apache.http.entity.ContentType; -import org.apache.http.nio.entity.NStringEntity; import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.delete.DeleteRequest; import org.elasticsearch.action.delete.DeleteResponse; @@ -31,12 +27,10 @@ import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.index.IndexResponse; import org.elasticsearch.client.ESRestHighLevelClientTestCase; import org.elasticsearch.client.Request; +import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.Response; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.cluster.health.ClusterHealthStatus; -import org.elasticsearch.common.Strings; -import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.rest.RestStatus; @@ -45,11 +39,6 @@ import java.io.IOException; import java.io.InputStream; import java.util.Map; -import static java.util.Collections.emptyMap; -import static java.util.Collections.singletonMap; -import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF_REPLICAS; -import static org.elasticsearch.cluster.metadata.IndexMetaData.SETTING_NUMBER_OF_SHARDS; - /** * This class is used to generate the documentation for the * docs/java-rest/high-level/migration.asciidoc page. @@ -98,14 +87,14 @@ public class MigrationDocumentationIT extends ESRestHighLevelClientTestCase { //end::migration-request-ctor //tag::migration-request-ctor-execution - IndexResponse response = client.index(request); + IndexResponse response = client.index(request, RequestOptions.DEFAULT); //end::migration-request-ctor-execution assertEquals(RestStatus.CREATED, response.status()); } { //tag::migration-request-async-execution DeleteRequest request = new DeleteRequest("index", "doc", "id"); // <1> - client.deleteAsync(request, new ActionListener() { // <2> + client.deleteAsync(request, RequestOptions.DEFAULT, new ActionListener() { // <2> @Override public void onResponse(DeleteResponse deleteResponse) { // <3> @@ -117,12 +106,12 @@ public class MigrationDocumentationIT extends ESRestHighLevelClientTestCase { } }); //end::migration-request-async-execution - assertBusy(() -> assertFalse(client.exists(new GetRequest("index", "doc", "id")))); + assertBusy(() -> assertFalse(client.exists(new GetRequest("index", "doc", "id"), RequestOptions.DEFAULT))); } { //tag::migration-request-sync-execution DeleteRequest request = new DeleteRequest("index", "doc", "id"); - DeleteResponse response = client.delete(request); // <1> + DeleteResponse response = client.delete(request, RequestOptions.DEFAULT); // <1> //end::migration-request-sync-execution assertEquals(RestStatus.NOT_FOUND, response.status()); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/MiscellaneousDocumentationIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/MiscellaneousDocumentationIT.java index 504ea797c35..2186bd8ebfd 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/MiscellaneousDocumentationIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/MiscellaneousDocumentationIT.java @@ -24,6 +24,7 @@ import org.elasticsearch.Build; import org.elasticsearch.Version; import org.elasticsearch.action.main.MainResponse; import org.elasticsearch.client.ESRestHighLevelClientTestCase; +import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.cluster.ClusterName; @@ -40,7 +41,7 @@ public class MiscellaneousDocumentationIT extends ESRestHighLevelClientTestCase RestHighLevelClient client = highLevelClient(); { //tag::main-execute - MainResponse response = client.info(); + MainResponse response = client.info(RequestOptions.DEFAULT); //end::main-execute //tag::main-response ClusterName clusterName = response.getClusterName(); // <1> @@ -60,7 +61,7 @@ public class MiscellaneousDocumentationIT extends ESRestHighLevelClientTestCase public void testPing() throws IOException { RestHighLevelClient client = highLevelClient(); //tag::ping-execute - boolean response = client.ping(); + boolean response = client.ping(RequestOptions.DEFAULT); //end::ping-execute assertTrue(response); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/SearchDocumentationIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/SearchDocumentationIT.java index 463c5f7d12f..cf6409bab64 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/SearchDocumentationIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/SearchDocumentationIT.java @@ -42,6 +42,7 @@ import org.elasticsearch.action.support.IndicesOptions; import org.elasticsearch.action.support.WriteRequest; import org.elasticsearch.client.ESRestHighLevelClientTestCase; import org.elasticsearch.client.Request; +import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.Response; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestHighLevelClient; @@ -143,7 +144,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { // tag::search-request-preference searchRequest.preference("_local"); // <1> // end::search-request-preference - assertNotNull(client.search(searchRequest)); + assertNotNull(client.search(searchRequest, RequestOptions.DEFAULT)); } { // tag::search-source-basics @@ -176,7 +177,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { // end::search-source-setter // tag::search-execute - SearchResponse searchResponse = client.search(searchRequest); + SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); // end::search-execute // tag::search-execute-listener @@ -198,7 +199,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { listener = new LatchedActionListener<>(listener, latch); // tag::search-execute-async - client.searchAsync(searchRequest, listener); // <1> + client.searchAsync(searchRequest, RequestOptions.DEFAULT, listener); // <1> // end::search-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -296,7 +297,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { request.add(new IndexRequest("posts", "doc", "3") .source(XContentType.JSON, "company", "Elastic", "age", 40)); request.setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE); - BulkResponse bulkResponse = client.bulk(request); + BulkResponse bulkResponse = client.bulk(request, RequestOptions.DEFAULT); assertSame(RestStatus.OK, bulkResponse.status()); assertFalse(bulkResponse.hasFailures()); } @@ -312,7 +313,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { // end::search-request-aggregations searchSourceBuilder.query(QueryBuilders.matchAllQuery()); searchRequest.source(searchSourceBuilder); - SearchResponse searchResponse = client.search(searchRequest); + SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); { // tag::search-request-aggregations-get Aggregations aggregations = searchResponse.getAggregations(); @@ -369,7 +370,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { request.add(new IndexRequest("posts", "doc", "3").source(XContentType.JSON, "user", "tlrx")); request.add(new IndexRequest("posts", "doc", "4").source(XContentType.JSON, "user", "cbuescher")); request.setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE); - BulkResponse bulkResponse = client.bulk(request); + BulkResponse bulkResponse = client.bulk(request, RequestOptions.DEFAULT); assertSame(RestStatus.OK, bulkResponse.status()); assertFalse(bulkResponse.hasFailures()); } @@ -384,7 +385,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { searchSourceBuilder.suggest(suggestBuilder); // end::search-request-suggestion searchRequest.source(searchSourceBuilder); - SearchResponse searchResponse = client.search(searchRequest); + SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); { // tag::search-request-suggestion-get Suggest suggest = searchResponse.getSuggest(); // <1> @@ -416,7 +417,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { .source(XContentType.JSON, "title", "The Future of Federated Search in Elasticsearch", "user", Arrays.asList("kimchy", "tanguy"), "innerObject", Collections.singletonMap("key", "value"))); request.setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE); - BulkResponse bulkResponse = client.bulk(request); + BulkResponse bulkResponse = client.bulk(request, RequestOptions.DEFAULT); assertSame(RestStatus.OK, bulkResponse.status()); assertFalse(bulkResponse.hasFailures()); } @@ -437,7 +438,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { .should(matchQuery("title", "Elasticsearch")) .should(matchQuery("user", "kimchy"))); searchRequest.source(searchSourceBuilder); - SearchResponse searchResponse = client.search(searchRequest); + SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); { // tag::search-request-highlighting-get SearchHits hits = searchResponse.getHits(); @@ -472,7 +473,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { IndexRequest request = new IndexRequest("posts", "doc", "1") .source(XContentType.JSON, "tags", "elasticsearch", "comments", 123); request.setRefreshPolicy(WriteRequest.RefreshPolicy.WAIT_UNTIL); - IndexResponse indexResponse = client.index(request); + IndexResponse indexResponse = client.index(request, RequestOptions.DEFAULT); assertSame(RestStatus.CREATED, indexResponse.status()); } { @@ -485,7 +486,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { searchSourceBuilder.aggregation(AggregationBuilders.histogram("by_comments").field("comments").interval(100)); searchRequest.source(searchSourceBuilder); - SearchResponse searchResponse = client.search(searchRequest); + SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); // tag::search-request-profiling-get Map profilingResults = searchResponse.getProfileResults(); // <1> @@ -548,7 +549,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { request.add(new IndexRequest("posts", "doc", "3") .source(XContentType.JSON, "title", "The Future of Federated Search in Elasticsearch")); request.setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE); - BulkResponse bulkResponse = client.bulk(request); + BulkResponse bulkResponse = client.bulk(request, RequestOptions.DEFAULT); assertSame(RestStatus.OK, bulkResponse.status()); assertFalse(bulkResponse.hasFailures()); } @@ -561,7 +562,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { searchSourceBuilder.size(size); // <1> searchRequest.source(searchSourceBuilder); searchRequest.scroll(TimeValue.timeValueMinutes(1L)); // <2> - SearchResponse searchResponse = client.search(searchRequest); + SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); String scrollId = searchResponse.getScrollId(); // <3> SearchHits hits = searchResponse.getHits(); // <4> // end::search-scroll-init @@ -572,7 +573,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { // tag::search-scroll2 SearchScrollRequest scrollRequest = new SearchScrollRequest(scrollId); // <1> scrollRequest.scroll(TimeValue.timeValueSeconds(30)); - SearchResponse searchScrollResponse = client.searchScroll(scrollRequest); + SearchResponse searchScrollResponse = client.searchScroll(scrollRequest, RequestOptions.DEFAULT); scrollId = searchScrollResponse.getScrollId(); // <2> hits = searchScrollResponse.getHits(); // <3> assertEquals(3, hits.getTotalHits()); @@ -582,14 +583,14 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { ClearScrollRequest clearScrollRequest = new ClearScrollRequest(); clearScrollRequest.addScrollId(scrollId); - ClearScrollResponse clearScrollResponse = client.clearScroll(clearScrollRequest); + ClearScrollResponse clearScrollResponse = client.clearScroll(clearScrollRequest, RequestOptions.DEFAULT); assertTrue(clearScrollResponse.isSucceeded()); } { SearchRequest searchRequest = new SearchRequest(); searchRequest.scroll("60s"); - SearchResponse initialSearchResponse = client.search(searchRequest); + SearchResponse initialSearchResponse = client.search(searchRequest, RequestOptions.DEFAULT); String scrollId = initialSearchResponse.getScrollId(); SearchScrollRequest scrollRequest = new SearchScrollRequest(); @@ -601,7 +602,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { // end::scroll-request-arguments // tag::search-scroll-execute-sync - SearchResponse searchResponse = client.searchScroll(scrollRequest); + SearchResponse searchResponse = client.searchScroll(scrollRequest, RequestOptions.DEFAULT); // end::search-scroll-execute-sync assertEquals(0, searchResponse.getFailedShards()); @@ -648,7 +649,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { // end::clear-scroll-add-scroll-ids // tag::clear-scroll-execute - ClearScrollResponse response = client.clearScroll(request); + ClearScrollResponse response = client.clearScroll(request, RequestOptions.DEFAULT); // end::clear-scroll-execute // tag::clear-scroll-response @@ -678,7 +679,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { listener = new LatchedActionListener<>(listener, clearScrollLatch); // tag::clear-scroll-execute-async - client.clearScrollAsync(request, listener); // <1> + client.clearScrollAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::clear-scroll-execute-async assertTrue(clearScrollLatch.await(30L, TimeUnit.SECONDS)); @@ -692,14 +693,14 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { searchSourceBuilder.query(matchQuery("title", "Elasticsearch")); searchRequest.source(searchSourceBuilder); - SearchResponse searchResponse = client.search(searchRequest); // <1> + SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); // <1> String scrollId = searchResponse.getScrollId(); SearchHit[] searchHits = searchResponse.getHits().getHits(); while (searchHits != null && searchHits.length > 0) { // <2> SearchScrollRequest scrollRequest = new SearchScrollRequest(scrollId); // <3> scrollRequest.scroll(scroll); - searchResponse = client.searchScroll(scrollRequest); + searchResponse = client.searchScroll(scrollRequest, RequestOptions.DEFAULT); scrollId = searchResponse.getScrollId(); searchHits = searchResponse.getHits().getHits(); // <4> @@ -707,7 +708,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { ClearScrollRequest clearScrollRequest = new ClearScrollRequest(); // <5> clearScrollRequest.addScrollId(scrollId); - ClearScrollResponse clearScrollResponse = client.clearScroll(clearScrollRequest); + ClearScrollResponse clearScrollResponse = client.clearScroll(clearScrollRequest, RequestOptions.DEFAULT); boolean succeeded = clearScrollResponse.isSucceeded(); // end::search-scroll-example assertTrue(succeeded); @@ -737,7 +738,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { // end::search-template-request-inline // tag::search-template-response - SearchTemplateResponse response = client.searchTemplate(request); + SearchTemplateResponse response = client.searchTemplate(request, RequestOptions.DEFAULT); SearchResponse searchResponse = response.getResponse(); // end::search-template-response @@ -749,7 +750,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { // end::render-search-template-request // tag::render-search-template-response - SearchTemplateResponse renderResponse = client.searchTemplate(request); + SearchTemplateResponse renderResponse = client.searchTemplate(request, RequestOptions.DEFAULT); BytesReference source = renderResponse.getSource(); // <1> // end::render-search-template-response @@ -802,7 +803,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { // end::search-template-request-options // tag::search-template-execute - SearchTemplateResponse response = client.searchTemplate(request); + SearchTemplateResponse response = client.searchTemplate(request, RequestOptions.DEFAULT); // end::search-template-execute SearchResponse searchResponse = response.getResponse(); @@ -828,7 +829,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { listener = new LatchedActionListener<>(listener, latch); // tag::search-template-execute-async - client.searchTemplateAsync(request, listener); // <1> + client.searchTemplateAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::search-template-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -849,7 +850,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { // end::field-caps-request-indicesOptions // tag::field-caps-execute - FieldCapabilitiesResponse response = client.fieldCaps(request); + FieldCapabilitiesResponse response = client.fieldCaps(request, RequestOptions.DEFAULT); // end::field-caps-execute // tag::field-caps-response @@ -892,7 +893,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { listener = new LatchedActionListener<>(listener, latch); // tag::field-caps-execute-async - client.fieldCapsAsync(request, listener); // <1> + client.fieldCapsAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::field-caps-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -918,7 +919,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { // end::rank-eval-request-basic // tag::rank-eval-execute - RankEvalResponse response = client.rankEval(request); + RankEvalResponse response = client.rankEval(request, RequestOptions.DEFAULT); // end::rank-eval-execute // tag::rank-eval-response @@ -962,7 +963,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { listener = new LatchedActionListener<>(listener, latch); // tag::rank-eval-execute-async - client.rankEvalAsync(request, listener); // <1> + client.rankEvalAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::rank-eval-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -987,7 +988,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { request.add(secondSearchRequest); // end::multi-search-request-basic // tag::multi-search-execute - MultiSearchResponse response = client.multiSearch(request); + MultiSearchResponse response = client.multiSearch(request, RequestOptions.DEFAULT); // end::multi-search-execute // tag::multi-search-response MultiSearchResponse.Item firstResponse = response.getResponses()[0]; // <1> @@ -1019,7 +1020,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { listener = new LatchedActionListener<>(listener, latch); // tag::multi-search-execute-async - client.multiSearchAsync(request, listener); // <1> + client.multiSearchAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::multi-search-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -1030,7 +1031,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { request.add(new SearchRequest("posts") // <1> .types("doc")); // <2> // end::multi-search-request-index - MultiSearchResponse response = client.multiSearch(request); + MultiSearchResponse response = client.multiSearch(request, RequestOptions.DEFAULT); MultiSearchResponse.Item firstResponse = response.getResponses()[0]; assertNull(firstResponse.getFailure()); SearchResponse searchResponse = firstResponse.getResponse(); @@ -1041,12 +1042,12 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { private void indexSearchTestData() throws IOException { CreateIndexRequest authorsRequest = new CreateIndexRequest("authors") .mapping("doc", "user", "type=keyword,doc_values=false"); - CreateIndexResponse authorsResponse = highLevelClient().indices().create(authorsRequest); + CreateIndexResponse authorsResponse = highLevelClient().indices().create(authorsRequest, RequestOptions.DEFAULT); assertTrue(authorsResponse.isAcknowledged()); CreateIndexRequest reviewersRequest = new CreateIndexRequest("contributors") .mapping("doc", "user", "type=keyword"); - CreateIndexResponse reviewersResponse = highLevelClient().indices().create(reviewersRequest); + CreateIndexResponse reviewersResponse = highLevelClient().indices().create(reviewersRequest, RequestOptions.DEFAULT); assertTrue(reviewersResponse.isAcknowledged()); BulkRequest bulkRequest = new BulkRequest(); @@ -1067,7 +1068,7 @@ public class SearchDocumentationIT extends ESRestHighLevelClientTestCase { bulkRequest.setRefreshPolicy(WriteRequest.RefreshPolicy.IMMEDIATE); - BulkResponse bulkResponse = highLevelClient().bulk(bulkRequest); + BulkResponse bulkResponse = highLevelClient().bulk(bulkRequest, RequestOptions.DEFAULT); assertSame(RestStatus.OK, bulkResponse.status()); assertFalse(bulkResponse.hasFailures()); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/SnapshotClientDocumentationIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/SnapshotClientDocumentationIT.java index 2890ad50c26..8c158a91a51 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/SnapshotClientDocumentationIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/SnapshotClientDocumentationIT.java @@ -30,6 +30,7 @@ import org.elasticsearch.action.admin.cluster.repositories.put.PutRepositoryResp import org.elasticsearch.action.admin.cluster.repositories.verify.VerifyRepositoryRequest; import org.elasticsearch.action.admin.cluster.repositories.verify.VerifyRepositoryResponse; import org.elasticsearch.client.ESRestHighLevelClientTestCase; +import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.cluster.metadata.RepositoryMetaData; import org.elasticsearch.common.settings.Settings; @@ -134,7 +135,7 @@ public class SnapshotClientDocumentationIT extends ESRestHighLevelClientTestCase // end::create-repository-request-verify // tag::create-repository-execute - PutRepositoryResponse response = client.snapshot().createRepository(request); + PutRepositoryResponse response = client.snapshot().createRepository(request, RequestOptions.DEFAULT); // end::create-repository-execute // tag::create-repository-response @@ -168,7 +169,7 @@ public class SnapshotClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::create-repository-execute-async - client.snapshot().createRepositoryAsync(request, listener); // <1> + client.snapshot().createRepositoryAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::create-repository-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -197,7 +198,7 @@ public class SnapshotClientDocumentationIT extends ESRestHighLevelClientTestCase // end::get-repository-request-masterTimeout // tag::get-repository-execute - GetRepositoriesResponse response = client.snapshot().getRepositories(request); + GetRepositoriesResponse response = client.snapshot().getRepositories(request, RequestOptions.DEFAULT); // end::get-repository-execute // tag::get-repository-response @@ -232,7 +233,7 @@ public class SnapshotClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::get-repository-execute-async - client.snapshot().getRepositoriesAsync(request, listener); // <1> + client.snapshot().getRepositoriesAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::get-repository-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -258,7 +259,7 @@ public class SnapshotClientDocumentationIT extends ESRestHighLevelClientTestCase // end::delete-repository-request-timeout // tag::delete-repository-execute - DeleteRepositoryResponse response = client.snapshot().deleteRepository(request); + DeleteRepositoryResponse response = client.snapshot().deleteRepository(request, RequestOptions.DEFAULT); // end::delete-repository-execute // tag::delete-repository-response @@ -292,7 +293,7 @@ public class SnapshotClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::delete-repository-execute-async - client.snapshot().deleteRepositoryAsync(request, listener); // <1> + client.snapshot().deleteRepositoryAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::delete-repository-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -317,7 +318,7 @@ public class SnapshotClientDocumentationIT extends ESRestHighLevelClientTestCase // end::verify-repository-request-timeout // tag::verify-repository-execute - VerifyRepositoryResponse response = client.snapshot().verifyRepository(request); + VerifyRepositoryResponse response = client.snapshot().verifyRepository(request, RequestOptions.DEFAULT); // end::verify-repository-execute // tag::verify-repository-response @@ -352,7 +353,7 @@ public class SnapshotClientDocumentationIT extends ESRestHighLevelClientTestCase listener = new LatchedActionListener<>(listener, latch); // tag::verify-repository-execute-async - client.snapshot().verifyRepositoryAsync(request, listener); // <1> + client.snapshot().verifyRepositoryAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::verify-repository-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -363,6 +364,6 @@ public class SnapshotClientDocumentationIT extends ESRestHighLevelClientTestCase PutRepositoryRequest request = new PutRepositoryRequest(repositoryName); request.type(FsRepository.TYPE); request.settings("{\"location\": \".\"}", XContentType.JSON); - assertTrue(highLevelClient().snapshot().createRepository(request).isAcknowledged()); + assertTrue(highLevelClient().snapshot().createRepository(request, RequestOptions.DEFAULT).isAcknowledged()); } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/TasksClientDocumentationIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/TasksClientDocumentationIT.java index faf447a4143..0d62a2d29a0 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/TasksClientDocumentationIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/TasksClientDocumentationIT.java @@ -27,6 +27,7 @@ import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksRequest; import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksResponse; import org.elasticsearch.action.admin.cluster.node.tasks.list.TaskGroup; import org.elasticsearch.client.ESRestHighLevelClientTestCase; +import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.tasks.TaskId; @@ -90,7 +91,7 @@ public class TasksClientDocumentationIT extends ESRestHighLevelClientTestCase { ListTasksRequest request = new ListTasksRequest(); // tag::list-tasks-execute - ListTasksResponse response = client.tasks().list(request); + ListTasksResponse response = client.tasks().list(request, RequestOptions.DEFAULT); // end::list-tasks-execute assertThat(response, notNullValue()); @@ -139,7 +140,7 @@ public class TasksClientDocumentationIT extends ESRestHighLevelClientTestCase { listener = new LatchedActionListener<>(listener, latch); // tag::list-tasks-execute-async - client.tasks().listAsync(request, listener); // <1> + client.tasks().listAsync(request, RequestOptions.DEFAULT, listener); // <1> // end::list-tasks-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); diff --git a/qa/ccs-unavailable-clusters/src/test/java/org/elasticsearch/search/CrossClusterSearchUnavailableClusterIT.java b/qa/ccs-unavailable-clusters/src/test/java/org/elasticsearch/search/CrossClusterSearchUnavailableClusterIT.java index f7b87905b24..73df782c920 100644 --- a/qa/ccs-unavailable-clusters/src/test/java/org/elasticsearch/search/CrossClusterSearchUnavailableClusterIT.java +++ b/qa/ccs-unavailable-clusters/src/test/java/org/elasticsearch/search/CrossClusterSearchUnavailableClusterIT.java @@ -36,6 +36,7 @@ import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchScrollRequest; import org.elasticsearch.client.Request; +import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; import org.elasticsearch.client.RestClient; @@ -133,19 +134,20 @@ public class CrossClusterSearchUnavailableClusterIT extends ESRestTestCase { updateRemoteClusterSettings(Collections.singletonMap("seeds", remoteNode.getAddress().toString())); for (int i = 0; i < 10; i++) { - restHighLevelClient.index(new IndexRequest("index", "doc", String.valueOf(i)).source("field", "value")); + restHighLevelClient.index( + new IndexRequest("index", "doc", String.valueOf(i)).source("field", "value"), RequestOptions.DEFAULT); } Response refreshResponse = client().performRequest(new Request("POST", "/index/_refresh")); assertEquals(200, refreshResponse.getStatusLine().getStatusCode()); { - SearchResponse response = restHighLevelClient.search(new SearchRequest("index")); + SearchResponse response = restHighLevelClient.search(new SearchRequest("index"), RequestOptions.DEFAULT); assertSame(SearchResponse.Clusters.EMPTY, response.getClusters()); assertEquals(10, response.getHits().totalHits); assertEquals(10, response.getHits().getHits().length); } { - SearchResponse response = restHighLevelClient.search(new SearchRequest("index", "remote1:index")); + SearchResponse response = restHighLevelClient.search(new SearchRequest("index", "remote1:index"), RequestOptions.DEFAULT); assertEquals(2, response.getClusters().getTotal()); assertEquals(2, response.getClusters().getSuccessful()); assertEquals(0, response.getClusters().getSkipped()); @@ -153,7 +155,7 @@ public class CrossClusterSearchUnavailableClusterIT extends ESRestTestCase { assertEquals(10, response.getHits().getHits().length); } { - SearchResponse response = restHighLevelClient.search(new SearchRequest("remote1:index")); + SearchResponse response = restHighLevelClient.search(new SearchRequest("remote1:index"), RequestOptions.DEFAULT); assertEquals(1, response.getClusters().getTotal()); assertEquals(1, response.getClusters().getSuccessful()); assertEquals(0, response.getClusters().getSkipped()); @@ -161,14 +163,15 @@ public class CrossClusterSearchUnavailableClusterIT extends ESRestTestCase { } { - SearchResponse response = restHighLevelClient.search(new SearchRequest("index", "remote1:index").scroll("1m")); + SearchResponse response = restHighLevelClient.search(new SearchRequest("index", "remote1:index").scroll("1m"), + RequestOptions.DEFAULT); assertEquals(2, response.getClusters().getTotal()); assertEquals(2, response.getClusters().getSuccessful()); assertEquals(0, response.getClusters().getSkipped()); assertEquals(10, response.getHits().totalHits); assertEquals(10, response.getHits().getHits().length); String scrollId = response.getScrollId(); - SearchResponse scrollResponse = restHighLevelClient.searchScroll(new SearchScrollRequest(scrollId)); + SearchResponse scrollResponse = restHighLevelClient.searchScroll(new SearchScrollRequest(scrollId), RequestOptions.DEFAULT); assertSame(SearchResponse.Clusters.EMPTY, scrollResponse.getClusters()); assertEquals(10, scrollResponse.getHits().totalHits); assertEquals(0, scrollResponse.getHits().getHits().length); @@ -179,7 +182,7 @@ public class CrossClusterSearchUnavailableClusterIT extends ESRestTestCase { updateRemoteClusterSettings(Collections.singletonMap("skip_unavailable", true)); { - SearchResponse response = restHighLevelClient.search(new SearchRequest("index", "remote1:index")); + SearchResponse response = restHighLevelClient.search(new SearchRequest("index", "remote1:index"), RequestOptions.DEFAULT); assertEquals(2, response.getClusters().getTotal()); assertEquals(1, response.getClusters().getSuccessful()); assertEquals(1, response.getClusters().getSkipped()); @@ -187,7 +190,7 @@ public class CrossClusterSearchUnavailableClusterIT extends ESRestTestCase { assertEquals(10, response.getHits().getHits().length); } { - SearchResponse response = restHighLevelClient.search(new SearchRequest("remote1:index")); + SearchResponse response = restHighLevelClient.search(new SearchRequest("remote1:index"), RequestOptions.DEFAULT); assertEquals(1, response.getClusters().getTotal()); assertEquals(0, response.getClusters().getSuccessful()); assertEquals(1, response.getClusters().getSkipped()); @@ -195,14 +198,15 @@ public class CrossClusterSearchUnavailableClusterIT extends ESRestTestCase { } { - SearchResponse response = restHighLevelClient.search(new SearchRequest("index", "remote1:index").scroll("1m")); + SearchResponse response = restHighLevelClient.search(new SearchRequest("index", "remote1:index").scroll("1m"), + RequestOptions.DEFAULT); assertEquals(2, response.getClusters().getTotal()); assertEquals(1, response.getClusters().getSuccessful()); assertEquals(1, response.getClusters().getSkipped()); assertEquals(10, response.getHits().totalHits); assertEquals(10, response.getHits().getHits().length); String scrollId = response.getScrollId(); - SearchResponse scrollResponse = restHighLevelClient.searchScroll(new SearchScrollRequest(scrollId)); + SearchResponse scrollResponse = restHighLevelClient.searchScroll(new SearchScrollRequest(scrollId), RequestOptions.DEFAULT); assertSame(SearchResponse.Clusters.EMPTY, scrollResponse.getClusters()); assertEquals(10, scrollResponse.getHits().totalHits); assertEquals(0, scrollResponse.getHits().getHits().length); @@ -266,19 +270,19 @@ public class CrossClusterSearchUnavailableClusterIT extends ESRestTestCase { private static void assertSearchConnectFailure() { { ElasticsearchException exception = expectThrows(ElasticsearchException.class, - () -> restHighLevelClient.search(new SearchRequest("index", "remote1:index"))); + () -> restHighLevelClient.search(new SearchRequest("index", "remote1:index"), RequestOptions.DEFAULT)); ElasticsearchException rootCause = (ElasticsearchException)exception.getRootCause(); assertThat(rootCause.getMessage(), containsString("connect_exception")); } { ElasticsearchException exception = expectThrows(ElasticsearchException.class, - () -> restHighLevelClient.search(new SearchRequest("remote1:index"))); + () -> restHighLevelClient.search(new SearchRequest("remote1:index"), RequestOptions.DEFAULT)); ElasticsearchException rootCause = (ElasticsearchException)exception.getRootCause(); assertThat(rootCause.getMessage(), containsString("connect_exception")); } { ElasticsearchException exception = expectThrows(ElasticsearchException.class, - () -> restHighLevelClient.search(new SearchRequest("remote1:index").scroll("1m"))); + () -> restHighLevelClient.search(new SearchRequest("remote1:index").scroll("1m"), RequestOptions.DEFAULT)); ElasticsearchException rootCause = (ElasticsearchException)exception.getRootCause(); assertThat(rootCause.getMessage(), containsString("connect_exception")); } From 4158387554ff2ff18fd0fbb10f8e6f2de55d35c8 Mon Sep 17 00:00:00 2001 From: Tim Brooks Date: Wed, 6 Jun 2018 15:36:13 -0600 Subject: [PATCH 06/62] Cleanup nio http thread names (#31148) This is related to #28898. This commit adds the acceptor thread name to the method checking if this thread is a transport thread. Additionally, it modifies the nio http transport to use the same worker name as the netty4 http server transport. --- .../java/org/elasticsearch/nio/RoundRobinSupplier.java | 1 + .../org/elasticsearch/http/nio/NioHttpServerTransport.java | 7 ++----- .../java/org/elasticsearch/http/HttpServerTransport.java | 2 ++ .../main/java/org/elasticsearch/transport/Transports.java | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/RoundRobinSupplier.java b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/RoundRobinSupplier.java index 4d4de689fe7..c35dca1c959 100644 --- a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/RoundRobinSupplier.java +++ b/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/RoundRobinSupplier.java @@ -38,6 +38,7 @@ final class RoundRobinSupplier implements Supplier { this.selectorsSet.set(true); } + @Override public S get() { S[] selectors = this.selectors; return selectors[counter.getAndIncrement() % selectors.length]; diff --git a/plugins/transport-nio/src/main/java/org/elasticsearch/http/nio/NioHttpServerTransport.java b/plugins/transport-nio/src/main/java/org/elasticsearch/http/nio/NioHttpServerTransport.java index 495dbf97293..076c4ca84d5 100644 --- a/plugins/transport-nio/src/main/java/org/elasticsearch/http/nio/NioHttpServerTransport.java +++ b/plugins/transport-nio/src/main/java/org/elasticsearch/http/nio/NioHttpServerTransport.java @@ -108,9 +108,6 @@ public class NioHttpServerTransport extends AbstractHttpServerTransport { (s) -> Integer.toString(EsExecutors.numberOfProcessors(s) * 2), (s) -> Setting.parseInt(s, 1, "http.nio.worker_count"), Setting.Property.NodeScope); - private static final String TRANSPORT_WORKER_THREAD_NAME_PREFIX = "http_nio_transport_worker"; - private static final String TRANSPORT_ACCEPTOR_THREAD_NAME_PREFIX = "http_nio_transport_acceptor"; - private final BigArrays bigArrays; private final ThreadPool threadPool; private final NamedXContentRegistry xContentRegistry; @@ -177,8 +174,8 @@ public class NioHttpServerTransport extends AbstractHttpServerTransport { try { int acceptorCount = NIO_HTTP_ACCEPTOR_COUNT.get(settings); int workerCount = NIO_HTTP_WORKER_COUNT.get(settings); - nioGroup = new NioGroup(daemonThreadFactory(this.settings, TRANSPORT_ACCEPTOR_THREAD_NAME_PREFIX), acceptorCount, - daemonThreadFactory(this.settings, TRANSPORT_WORKER_THREAD_NAME_PREFIX), workerCount, + nioGroup = new NioGroup(daemonThreadFactory(this.settings, HTTP_SERVER_ACCEPTOR_THREAD_NAME_PREFIX), acceptorCount, + daemonThreadFactory(this.settings, HTTP_SERVER_WORKER_THREAD_NAME_PREFIX), workerCount, (s) -> new EventHandler(this::nonChannelExceptionCaught, s)); channelFactory = new HttpChannelFactory(); this.boundAddress = createBoundHttpAddress(); diff --git a/server/src/main/java/org/elasticsearch/http/HttpServerTransport.java b/server/src/main/java/org/elasticsearch/http/HttpServerTransport.java index de345a39fd6..0ce8edcf3b6 100644 --- a/server/src/main/java/org/elasticsearch/http/HttpServerTransport.java +++ b/server/src/main/java/org/elasticsearch/http/HttpServerTransport.java @@ -29,6 +29,8 @@ public interface HttpServerTransport extends LifecycleComponent { String HTTP_SERVER_WORKER_THREAD_NAME_PREFIX = "http_server_worker"; + String HTTP_SERVER_ACCEPTOR_THREAD_NAME_PREFIX = "http_server_acceptor"; + BoundTransportAddress boundAddress(); HttpInfo info(); diff --git a/server/src/main/java/org/elasticsearch/transport/Transports.java b/server/src/main/java/org/elasticsearch/transport/Transports.java index 2adf07bad23..ddd22a7fb86 100644 --- a/server/src/main/java/org/elasticsearch/transport/Transports.java +++ b/server/src/main/java/org/elasticsearch/transport/Transports.java @@ -40,6 +40,7 @@ public enum Transports { final String threadName = t.getName(); for (String s : Arrays.asList( HttpServerTransport.HTTP_SERVER_WORKER_THREAD_NAME_PREFIX, + HttpServerTransport.HTTP_SERVER_ACCEPTOR_THREAD_NAME_PREFIX, TcpTransport.TRANSPORT_SERVER_WORKER_THREAD_NAME_PREFIX, TcpTransport.TRANSPORT_CLIENT_BOSS_THREAD_NAME_PREFIX, TEST_MOCK_TRANSPORT_THREAD_PREFIX, From 7f0c2e89c2f8a428978b2b873ff0c33834c0f455 Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Wed, 6 Jun 2018 14:46:20 -0700 Subject: [PATCH 07/62] [DOCS] Moves X-Pack setup to docs (#31145) --- docs/reference/index.asciidoc | 6 ++-- .../setup/bootstrap-checks-xes.asciidoc | 0 docs/reference/setup/install.asciidoc | 5 ++-- docs/reference/setup/install/deb.asciidoc | 2 +- .../reference/setup/install}/docker.asciidoc | 1 - .../setup/install/next-steps.asciidoc | 7 ++--- docs/reference/setup/install/rpm.asciidoc | 2 +- docs/reference/setup/install/windows.asciidoc | 2 +- .../setup/install}/xpack-indices.asciidoc | 0 .../setup/install/zip-targz.asciidoc | 2 +- .../setup/install/zip-windows.asciidoc | 2 +- .../reference}/setup/setup-xclient.asciidoc | 1 + .../reference}/setup/setup-xes.asciidoc | 0 .../en/setup/images/ElasticsearchFlow.jpg | Bin 48275 -> 0 bytes x-pack/docs/en/setup/next-steps.asciidoc | 10 ------- x-pack/docs/en/setup/xpack-passwords.asciidoc | 27 ------------------ x-pack/docs/en/setup/xpack-tls.asciidoc | 16 ----------- 17 files changed, 14 insertions(+), 69 deletions(-) rename {x-pack/docs/en => docs/reference}/setup/bootstrap-checks-xes.asciidoc (100%) rename {x-pack/docs/en/setup => docs/reference/setup/install}/docker.asciidoc (99%) rename {x-pack/docs/en/setup => docs/reference/setup/install}/xpack-indices.asciidoc (100%) rename {x-pack/docs/en => docs/reference}/setup/setup-xclient.asciidoc (99%) rename {x-pack/docs/en => docs/reference}/setup/setup-xes.asciidoc (100%) delete mode 100644 x-pack/docs/en/setup/images/ElasticsearchFlow.jpg delete mode 100644 x-pack/docs/en/setup/next-steps.asciidoc delete mode 100644 x-pack/docs/en/setup/xpack-passwords.asciidoc delete mode 100644 x-pack/docs/en/setup/xpack-tls.asciidoc diff --git a/docs/reference/index.asciidoc b/docs/reference/index.asciidoc index 17cdde32b07..adbdc01db1e 100644 --- a/docs/reference/index.asciidoc +++ b/docs/reference/index.asciidoc @@ -14,17 +14,17 @@ include::getting-started.asciidoc[] include::setup.asciidoc[] -include::{xes-repo-dir}/setup/setup-xes.asciidoc[] +include::setup/setup-xes.asciidoc[] include::{xes-repo-dir}/monitoring/configuring-monitoring.asciidoc[] include::{xes-repo-dir}/security/configuring-es.asciidoc[] -include::{xes-repo-dir}/setup/setup-xclient.asciidoc[] +include::setup/setup-xclient.asciidoc[] include::settings/configuring-xes.asciidoc[] -include::{xes-repo-dir}/setup/bootstrap-checks-xes.asciidoc[] +include::setup/bootstrap-checks-xes.asciidoc[] :edit_url: include::upgrade.asciidoc[] diff --git a/x-pack/docs/en/setup/bootstrap-checks-xes.asciidoc b/docs/reference/setup/bootstrap-checks-xes.asciidoc similarity index 100% rename from x-pack/docs/en/setup/bootstrap-checks-xes.asciidoc rename to docs/reference/setup/bootstrap-checks-xes.asciidoc diff --git a/docs/reference/setup/install.asciidoc b/docs/reference/setup/install.asciidoc index 7668d45ee35..783cb804e7a 100644 --- a/docs/reference/setup/install.asciidoc +++ b/docs/reference/setup/install.asciidoc @@ -65,6 +65,5 @@ include::install/rpm.asciidoc[] include::install/windows.asciidoc[] -ifdef::include-xpack[] -include::{xes-repo-dir}/setup/docker.asciidoc[] -endif::include-xpack[] +include::install/docker.asciidoc[] + diff --git a/docs/reference/setup/install/deb.asciidoc b/docs/reference/setup/install/deb.asciidoc index af9d35f3f16..2abacf947c7 100644 --- a/docs/reference/setup/install/deb.asciidoc +++ b/docs/reference/setup/install/deb.asciidoc @@ -139,7 +139,7 @@ ifdef::include-xpack[] ==== Enable automatic creation of {xpack} indices {xpack} will try to automatically create a number of indices within Elasticsearch. -include::{xes-repo-dir}/setup/xpack-indices.asciidoc[] +include::xpack-indices.asciidoc[] endif::include-xpack[] diff --git a/x-pack/docs/en/setup/docker.asciidoc b/docs/reference/setup/install/docker.asciidoc similarity index 99% rename from x-pack/docs/en/setup/docker.asciidoc rename to docs/reference/setup/install/docker.asciidoc index 6ad6ef0fe6c..0e62fa207f6 100644 --- a/x-pack/docs/en/setup/docker.asciidoc +++ b/docs/reference/setup/install/docker.asciidoc @@ -1,4 +1,3 @@ -[role="xpack"] [[docker]] === Install {es} with Docker diff --git a/docs/reference/setup/install/next-steps.asciidoc b/docs/reference/setup/install/next-steps.asciidoc index 1e004eeee6b..e52cdfee077 100644 --- a/docs/reference/setup/install/next-steps.asciidoc +++ b/docs/reference/setup/install/next-steps.asciidoc @@ -1,11 +1,10 @@ [role="exclude"] ==== Next steps -You now have a test Elasticsearch environment set up. Before you start -serious development or go into production with Elasticsearch, you will need to -do some additional setup: +You now have a test {es} environment set up. Before you start +serious development or go into production with {es}, you must do some additional +setup: * Learn how to <>. * Configure <>. * Configure <>. - diff --git a/docs/reference/setup/install/rpm.asciidoc b/docs/reference/setup/install/rpm.asciidoc index a44b0b37d31..aad7cf5bf3b 100644 --- a/docs/reference/setup/install/rpm.asciidoc +++ b/docs/reference/setup/install/rpm.asciidoc @@ -126,7 +126,7 @@ ifdef::include-xpack[] ==== Enable automatic creation of {xpack} indices {xpack} will try to automatically create a number of indices within {es}. -include::{xes-repo-dir}/setup/xpack-indices.asciidoc[] +include::xpack-indices.asciidoc[] endif::include-xpack[] diff --git a/docs/reference/setup/install/windows.asciidoc b/docs/reference/setup/install/windows.asciidoc index 861daa160e7..56bb953c18e 100644 --- a/docs/reference/setup/install/windows.asciidoc +++ b/docs/reference/setup/install/windows.asciidoc @@ -337,7 +337,7 @@ ifdef::include-xpack[] ==== Enable automatic creation of {xpack} indices {xpack} will try to automatically create a number of indices within {es}. -include::{xes-repo-dir}/setup/xpack-indices.asciidoc[] +include::xpack-indices.asciidoc[] endif::include-xpack[] diff --git a/x-pack/docs/en/setup/xpack-indices.asciidoc b/docs/reference/setup/install/xpack-indices.asciidoc similarity index 100% rename from x-pack/docs/en/setup/xpack-indices.asciidoc rename to docs/reference/setup/install/xpack-indices.asciidoc diff --git a/docs/reference/setup/install/zip-targz.asciidoc b/docs/reference/setup/install/zip-targz.asciidoc index 94de390656b..f44742c648e 100644 --- a/docs/reference/setup/install/zip-targz.asciidoc +++ b/docs/reference/setup/install/zip-targz.asciidoc @@ -85,7 +85,7 @@ ifdef::include-xpack[] ==== Enable automatic creation of {xpack} indices {xpack} will try to automatically create a number of indices within {es}. -include::{xes-repo-dir}/setup/xpack-indices.asciidoc[] +include::xpack-indices.asciidoc[] endif::include-xpack[] diff --git a/docs/reference/setup/install/zip-windows.asciidoc b/docs/reference/setup/install/zip-windows.asciidoc index 18c1272d25d..cd86a626891 100644 --- a/docs/reference/setup/install/zip-windows.asciidoc +++ b/docs/reference/setup/install/zip-windows.asciidoc @@ -53,7 +53,7 @@ ifdef::include-xpack[] ==== Enable automatic creation of {xpack} indices {xpack} will try to automatically create a number of indices within {es}. -include::{xes-repo-dir}/setup/xpack-indices.asciidoc[] +include::xpack-indices.asciidoc[] endif::include-xpack[] diff --git a/x-pack/docs/en/setup/setup-xclient.asciidoc b/docs/reference/setup/setup-xclient.asciidoc similarity index 99% rename from x-pack/docs/en/setup/setup-xclient.asciidoc rename to docs/reference/setup/setup-xclient.asciidoc index b94d4fe9c10..4282264e395 100644 --- a/x-pack/docs/en/setup/setup-xclient.asciidoc +++ b/docs/reference/setup/setup-xclient.asciidoc @@ -1,4 +1,5 @@ [role="xpack"] +[testenv="basic"] [[setup-xpack-client]] == Configuring {xpack} Java Clients diff --git a/x-pack/docs/en/setup/setup-xes.asciidoc b/docs/reference/setup/setup-xes.asciidoc similarity index 100% rename from x-pack/docs/en/setup/setup-xes.asciidoc rename to docs/reference/setup/setup-xes.asciidoc diff --git a/x-pack/docs/en/setup/images/ElasticsearchFlow.jpg b/x-pack/docs/en/setup/images/ElasticsearchFlow.jpg deleted file mode 100644 index 41fd8508c7ad4a03846652b667123704b063f501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48275 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

4_$)~*$^Ou5<-<7?PVp|l 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

HT_@~%e!|&{txe&Hj1a-2*e2! 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. -* Configure <>. -* Configure <>. diff --git a/x-pack/docs/en/setup/xpack-passwords.asciidoc b/x-pack/docs/en/setup/xpack-passwords.asciidoc deleted file mode 100644 index 0d9dc22f3b3..00000000000 --- a/x-pack/docs/en/setup/xpack-passwords.asciidoc +++ /dev/null @@ -1,27 +0,0 @@ - -. Set the passwords for all built-in users. -+ --- -If you have enabled {security}, it provides built-in user credentials to help you -get up and running. The +elasticsearch-setup-passwords+ command is the simplest -method to set the built-in users' passwords for the first time. - -For example, you can run the command in an "interactive" mode, which prompts you -to enter new passwords for the `elastic`, `kibana`, and `logstash_system` users: - -[source,shell] --------------------------------------------------- -bin/elasticsearch-setup-passwords interactive --------------------------------------------------- - -For more information about the command options, see <>. - -IMPORTANT: The `elasticsearch-setup-passwords` command uses a transient -bootstrap password that is no longer valid after the command runs successfully. -You cannot run the `elasticsearch-setup-passwords` command a second time. -Instead, you can update passwords from the **Management > Users** UI in {kib} or -use the security user API. - -For more information, see -{xpack-ref}/setting-up-authentication.html#set-built-in-user-passwords[Setting Built-in User Passwords]. --- diff --git a/x-pack/docs/en/setup/xpack-tls.asciidoc b/x-pack/docs/en/setup/xpack-tls.asciidoc deleted file mode 100644 index 033339b3610..00000000000 --- a/x-pack/docs/en/setup/xpack-tls.asciidoc +++ /dev/null @@ -1,16 +0,0 @@ - -. Configure Transport Layer Security (TLS/SSL). -+ --- -If have enabled {security}, you must configure TLS for internode-communication. - -NOTE: This requirement applies to clusters with more than one node and to -clusters with a single node that listens on an external interface. Single-node -clusters that use a loopback interface do not have this requirement. For more -information, see -{xpack-ref}/encrypting-communications.html[Encrypting Communications]. - --- -.. <>. - -.. <>. From 95795c8935b2c421ae47dcbb0e2300ac2905ec5a Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Wed, 6 Jun 2018 21:56:52 -0400 Subject: [PATCH 08/62] Pass main class by environment variable (#31149) A previous refactoring of the CLI scripts migrated all of the CLI tools to shell to a common script, elasticsearch-cli. This approach is fine in Bash where it is easy to tear arguments apart but it doesn't work so well on Windows where quoting is insane. To avoid having to tear the arguments apart to separate the first argument to elasticsearch-cli from the remaining arguments, we instead choose a strategy where we can avoid tearing the arguments apart. To do this, we will instead pass the main class by an environment variable and then we can pass the arguments straight through. This will let us avoid awful quoting issues on Windows. This is the non-Windows side of that effort and the Windows side will be in a follow-up. --- distribution/src/bin/elasticsearch-cli | 4 ++-- distribution/src/bin/elasticsearch-keystore | 2 +- distribution/src/bin/elasticsearch-plugin | 2 +- distribution/src/bin/elasticsearch-translog | 2 +- x-pack/plugin/security/src/main/bin/elasticsearch-certgen | 2 +- x-pack/plugin/security/src/main/bin/elasticsearch-certutil | 2 +- x-pack/plugin/security/src/main/bin/elasticsearch-migrate | 4 ++-- .../plugin/security/src/main/bin/elasticsearch-saml-metadata | 2 +- .../security/src/main/bin/elasticsearch-setup-passwords | 2 +- x-pack/plugin/security/src/main/bin/elasticsearch-syskeygen | 2 +- x-pack/plugin/security/src/main/bin/elasticsearch-users | 2 +- x-pack/plugin/watcher/src/main/bin/elasticsearch-croneval | 2 +- 12 files changed, 14 insertions(+), 14 deletions(-) diff --git a/distribution/src/bin/elasticsearch-cli b/distribution/src/bin/elasticsearch-cli index c49c1a51619..5699b3feb58 100644 --- a/distribution/src/bin/elasticsearch-cli +++ b/distribution/src/bin/elasticsearch-cli @@ -24,5 +24,5 @@ exec \ -Des.distribution.flavor="$ES_DISTRIBUTION_FLAVOR" \ -Des.distribution.type="$ES_DISTRIBUTION_TYPE" \ -cp "$ES_CLASSPATH" \ - $1 \ - "${@:2}" + "$ES_MAIN_CLASS" \ + "$@" diff --git a/distribution/src/bin/elasticsearch-keystore b/distribution/src/bin/elasticsearch-keystore index ebe24179a0e..7086342aabf 100755 --- a/distribution/src/bin/elasticsearch-keystore +++ b/distribution/src/bin/elasticsearch-keystore @@ -1,5 +1,5 @@ #!/bin/bash +ES_MAIN_CLASS=org.elasticsearch.common.settings.KeyStoreCli \ "`dirname "$0"`"/elasticsearch-cli \ - org.elasticsearch.common.settings.KeyStoreCli \ "$@" diff --git a/distribution/src/bin/elasticsearch-plugin b/distribution/src/bin/elasticsearch-plugin index adfb4a88ad2..fb9c8e5aa3f 100755 --- a/distribution/src/bin/elasticsearch-plugin +++ b/distribution/src/bin/elasticsearch-plugin @@ -1,6 +1,6 @@ #!/bin/bash +ES_MAIN_CLASS=org.elasticsearch.plugins.PluginCli \ ES_ADDITIONAL_CLASSPATH_DIRECTORIES=lib/tools/plugin-cli \ "`dirname "$0"`"/elasticsearch-cli \ - org.elasticsearch.plugins.PluginCli \ "$@" diff --git a/distribution/src/bin/elasticsearch-translog b/distribution/src/bin/elasticsearch-translog index 33350aaf0b6..28b2ea80a38 100755 --- a/distribution/src/bin/elasticsearch-translog +++ b/distribution/src/bin/elasticsearch-translog @@ -1,5 +1,5 @@ #!/bin/bash +ES_MAIN_CLASS=org.elasticsearch.index.translog.TranslogToolCli \ "`dirname "$0"`"/elasticsearch-cli \ - org.elasticsearch.index.translog.TranslogToolCli \ "$@" diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-certgen b/x-pack/plugin/security/src/main/bin/elasticsearch-certgen index 67d51684520..582f3ed10f7 100644 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-certgen +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-certgen @@ -4,7 +4,7 @@ # or more contributor license agreements. Licensed under the Elastic License; # you may not use this file except in compliance with the Elastic License. +ES_MAIN_CLASS=org.elasticsearch.xpack.core.ssl.CertificateGenerateTool \ ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ "`dirname "$0"`"/elasticsearch-cli \ - org.elasticsearch.xpack.core.ssl.CertificateGenerateTool \ "$@" diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-certutil b/x-pack/plugin/security/src/main/bin/elasticsearch-certutil index eb245fd0b0e..352a5e8364c 100644 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-certutil +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-certutil @@ -4,7 +4,7 @@ # or more contributor license agreements. Licensed under the Elastic License; # you may not use this file except in compliance with the Elastic License. +ES_MAIN_CLASS=org.elasticsearch.xpack.core.ssl.CertificateTool \ ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ "`dirname "$0"`"/elasticsearch-cli \ - org.elasticsearch.xpack.core.ssl.CertificateTool \ "$@" diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-migrate b/x-pack/plugin/security/src/main/bin/elasticsearch-migrate index dc3f360361d..604343e9e1b 100755 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-migrate +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-migrate @@ -4,7 +4,7 @@ # or more contributor license agreements. Licensed under the Elastic License; # you may not use this file except in compliance with the Elastic License. +ES_MAIN_CLASS=org.elasticsearch.xpack.security.authc.esnative.ESNativeRealmMigrateTool \ ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ "`dirname "$0"`"/elasticsearch-cli \ - org.elasticsearch.xpack.security.authc.esnative.ESNativeRealmMigrateTool \ - "$@" \ No newline at end of file + "$@" diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-saml-metadata b/x-pack/plugin/security/src/main/bin/elasticsearch-saml-metadata index 48274ab7efa..15c448fb9e9 100644 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-saml-metadata +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-saml-metadata @@ -4,7 +4,7 @@ # or more contributor license agreements. Licensed under the Elastic License; # you may not use this file except in compliance with the Elastic License. +ES_MAIN_CLASS=org.elasticsearch.xpack.security.authc.saml.SamlMetadataCommand \ ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ "`dirname "$0"`"/elasticsearch-cli \ - org.elasticsearch.xpack.security.authc.saml.SamlMetadataCommand \ "$@" diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-setup-passwords b/x-pack/plugin/security/src/main/bin/elasticsearch-setup-passwords index d896efcfcbe..b7ef0ad01f0 100644 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-setup-passwords +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-setup-passwords @@ -4,7 +4,7 @@ # or more contributor license agreements. Licensed under the Elastic License; # you may not use this file except in compliance with the Elastic License. +ES_MAIN_CLASS=org.elasticsearch.xpack.security.authc.esnative.tool.SetupPasswordTool \ ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ "`dirname "$0"`"/elasticsearch-cli \ - org.elasticsearch.xpack.security.authc.esnative.tool.SetupPasswordTool \ "$@" diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-syskeygen b/x-pack/plugin/security/src/main/bin/elasticsearch-syskeygen index 954b0884007..9d3ce7fece3 100755 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-syskeygen +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-syskeygen @@ -4,7 +4,7 @@ # or more contributor license agreements. Licensed under the Elastic License; # you may not use this file except in compliance with the Elastic License. +ES_MAIN_CLASS=org.elasticsearch.xpack.security.crypto.tool.SystemKeyTool \ ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ "`dirname "$0"`"/elasticsearch-cli \ - org.elasticsearch.xpack.security.crypto.tool.SystemKeyTool \ "$@" diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-users b/x-pack/plugin/security/src/main/bin/elasticsearch-users index 6caeece8cbc..8fd0ed5a874 100755 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-users +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-users @@ -4,7 +4,7 @@ # or more contributor license agreements. Licensed under the Elastic License; # you may not use this file except in compliance with the Elastic License. +ES_MAIN_CLASS=org.elasticsearch.xpack.security.authc.file.tool.UsersTool \ ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ "`dirname "$0"`"/elasticsearch-cli \ - org.elasticsearch.xpack.security.authc.file.tool.UsersTool \ "$@" diff --git a/x-pack/plugin/watcher/src/main/bin/elasticsearch-croneval b/x-pack/plugin/watcher/src/main/bin/elasticsearch-croneval index c7185d16756..451656e1463 100755 --- a/x-pack/plugin/watcher/src/main/bin/elasticsearch-croneval +++ b/x-pack/plugin/watcher/src/main/bin/elasticsearch-croneval @@ -4,7 +4,7 @@ # or more contributor license agreements. Licensed under the Elastic License; # you may not use this file except in compliance with the Elastic License. +ES_MAIN_CLASS=org.elasticsearch.xpack.watcher.trigger.schedule.tool.CronEvalTool \ ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-watcher-env" \ "`dirname "$0"`"/elasticsearch-cli \ - org.elasticsearch.xpack.watcher.trigger.schedule.tool.CronEvalTool \ "$@" From 01b5a46c24d24895aa3a4eb78917534161fb76d4 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Wed, 6 Jun 2018 21:57:58 -0400 Subject: [PATCH 09/62] Pass main class by environment variable on Windows (#31156) A previous refactoring of the CLI scripts migrated all of the CLI tools to shell to a common script, elasticsearch-cli. This approach is fine in Bash where it is easy to tear arguments apart but it doesn't work so well on Windows where quoting is insane. To avoid having to tear the arguments apart to separate the first argument to elasticsearch-cli from the remaining arguments, we instead choose a strategy where we can avoid tearing the arguments apart. To do this, we will instead pass the main class by an environment variable and then we can pass the arguments straight through. This will let us avoid awful quoting issues on Windows. This is the Windows side of that effort and the Bash side was in a previous commit. --- distribution/src/bin/elasticsearch-cli.bat | 9 ++------- distribution/src/bin/elasticsearch-keystore.bat | 2 +- distribution/src/bin/elasticsearch-plugin.bat | 2 +- distribution/src/bin/elasticsearch-translog.bat | 2 +- .../security/src/main/bin/elasticsearch-certgen.bat | 2 +- .../security/src/main/bin/elasticsearch-certutil.bat | 2 +- .../security/src/main/bin/elasticsearch-migrate.bat | 2 +- .../src/main/bin/elasticsearch-saml-metadata.bat | 2 +- .../src/main/bin/elasticsearch-setup-passwords.bat | 2 +- .../security/src/main/bin/elasticsearch-syskeygen.bat | 2 +- .../plugin/security/src/main/bin/elasticsearch-users.bat | 2 +- .../watcher/src/main/bin/elasticsearch-croneval.bat | 2 +- 12 files changed, 13 insertions(+), 18 deletions(-) diff --git a/distribution/src/bin/elasticsearch-cli.bat b/distribution/src/bin/elasticsearch-cli.bat index e85abdee448..b668a7c06c2 100644 --- a/distribution/src/bin/elasticsearch-cli.bat +++ b/distribution/src/bin/elasticsearch-cli.bat @@ -6,11 +6,6 @@ if defined ES_ADDITIONAL_SOURCES ( ) ) -for /f "tokens=1*" %%a in ("%*") do ( - set main_class=%%a - set arguments=%%b -) - if defined ES_ADDITIONAL_CLASSPATH_DIRECTORIES ( for %%a in ("%ES_ADDITIONAL_CLASSPATH_DIRECTORIES:;=","%") do ( set ES_CLASSPATH=!ES_CLASSPATH!;!ES_HOME!/%%a/* @@ -24,5 +19,5 @@ if defined ES_ADDITIONAL_CLASSPATH_DIRECTORIES ( -Des.distribution.flavor="%ES_DISTRIBUTION_FLAVOR%" ^ -Des.distribution.type="%ES_DISTRIBUTION_TYPE%" ^ -cp "%ES_CLASSPATH%" ^ - %main_class% ^ - %arguments% + "%ES_MAIN_CLASS%" ^ + %* diff --git a/distribution/src/bin/elasticsearch-keystore.bat b/distribution/src/bin/elasticsearch-keystore.bat index 380a3e501d5..b43182a273f 100644 --- a/distribution/src/bin/elasticsearch-keystore.bat +++ b/distribution/src/bin/elasticsearch-keystore.bat @@ -3,8 +3,8 @@ setlocal enabledelayedexpansion setlocal enableextensions +set ES_MAIN_CLASS=org.elasticsearch.common.settings.KeyStoreCli call "%~dp0elasticsearch-cli.bat" ^ - org.elasticsearch.common.settings.KeyStoreCli ^ %%* ^ || exit /b 1 diff --git a/distribution/src/bin/elasticsearch-plugin.bat b/distribution/src/bin/elasticsearch-plugin.bat index 5d7b1d7a828..7e71de790f0 100644 --- a/distribution/src/bin/elasticsearch-plugin.bat +++ b/distribution/src/bin/elasticsearch-plugin.bat @@ -3,9 +3,9 @@ setlocal enabledelayedexpansion setlocal enableextensions +set ES_MAIN_CLASS=org.elasticsearch.plugins.PluginCli set ES_ADDITIONAL_CLASSPATH_DIRECTORIES=lib/tools/plugin-cli call "%~dp0elasticsearch-cli.bat" ^ - org.elasticsearch.plugins.PluginCli ^ %%* ^ || exit /b 1 diff --git a/distribution/src/bin/elasticsearch-translog.bat b/distribution/src/bin/elasticsearch-translog.bat index 9c4cefcf2fe..6a2e3046205 100644 --- a/distribution/src/bin/elasticsearch-translog.bat +++ b/distribution/src/bin/elasticsearch-translog.bat @@ -3,8 +3,8 @@ setlocal enabledelayedexpansion setlocal enableextensions +set ES_MAIN_CLASS=org.elasticsearch.index.translog.TranslogToolCli call "%~dp0elasticsearch-cli.bat" ^ - org.elasticsearch.index.translog.TranslogToolCli ^ %%* ^ || exit /b 1 diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-certgen.bat b/x-pack/plugin/security/src/main/bin/elasticsearch-certgen.bat index 01f3c0f21cd..b5842b57b16 100644 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-certgen.bat +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-certgen.bat @@ -7,9 +7,9 @@ rem you may not use this file except in compliance with the Elastic License. setlocal enabledelayedexpansion setlocal enableextensions +set ES_MAIN_CLASS=org.elasticsearch.xpack.core.ssl.CertificateGenerateTool set ES_ADDITIONAL_SOURCES=x-pack-env;x-pack-security-env call "%~dp0elasticsearch-cli.bat" ^ - org.elasticsearch.xpack.core.ssl.CertificateGenerateTool ^ %%* ^ || exit /b 1 diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-certutil.bat b/x-pack/plugin/security/src/main/bin/elasticsearch-certutil.bat index f8a5fd9880a..2e397190f23 100644 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-certutil.bat +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-certutil.bat @@ -7,9 +7,9 @@ rem you may not use this file except in compliance with the Elastic License. setlocal enabledelayedexpansion setlocal enableextensions +set ES_MAIN_CLASS=org.elasticsearch.xpack.core.ssl.CertificateTool set ES_ADDITIONAL_SOURCES=x-pack-env;x-pack-security-env call "%~dp0elasticsearch-cli.bat" ^ - org.elasticsearch.xpack.core.ssl.CertificateTool ^ %%* ^ || exit /b 1 diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-migrate.bat b/x-pack/plugin/security/src/main/bin/elasticsearch-migrate.bat index 67faf2ea66a..4b8e4f926d7 100644 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-migrate.bat +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-migrate.bat @@ -7,9 +7,9 @@ rem you may not use this file except in compliance with the Elastic License. setlocal enabledelayedexpansion setlocal enableextensions +set ES_MAIN_CLASS=org.elasticsearch.xpack.security.authc.esnative.ESNativeRealmMigrateTool set ES_ADDITIONAL_SOURCES=x-pack-env;x-pack-security-env call "%~dp0elasticsearch-cli.bat" ^ - org.elasticsearch.xpack.security.authc.esnative.ESNativeRealmMigrateTool ^ %%* ^ || exit /b 1 diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-saml-metadata.bat b/x-pack/plugin/security/src/main/bin/elasticsearch-saml-metadata.bat index 6cdd539a81d..64a272dfbb5 100644 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-saml-metadata.bat +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-saml-metadata.bat @@ -7,9 +7,9 @@ rem you may not use this file except in compliance with the Elastic License. setlocal enabledelayedexpansion setlocal enableextensions +set ES_MAIN_CLASS=org.elasticsearch.xpack.security.authc.saml.SamlMetadataCommand set ES_ADDITIONAL_SOURCES=x-pack-env;x-pack-security-env call "%~dp0elasticsearch-cli.bat" ^ - org.elasticsearch.xpack.security.authc.saml.SamlMetadataCommand ^ %%* ^ || exit /b 1 diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-setup-passwords.bat b/x-pack/plugin/security/src/main/bin/elasticsearch-setup-passwords.bat index e3ea134ae43..3c956ca47ba 100644 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-setup-passwords.bat +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-setup-passwords.bat @@ -7,9 +7,9 @@ rem you may not use this file except in compliance with the Elastic License. setlocal enabledelayedexpansion setlocal enableextensions +set ES_MAIN_CLASS=org.elasticsearch.xpack.security.authc.esnative.tool.SetupPasswordTool set ES_ADDITIONAL_SOURCES=x-pack-env;x-pack-security-env call "%~dp0elasticsearch-cli.bat" ^ - org.elasticsearch.xpack.security.authc.esnative.tool.SetupPasswordTool ^ %%* ^ || exit /b 1 diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-syskeygen.bat b/x-pack/plugin/security/src/main/bin/elasticsearch-syskeygen.bat index 570eef619ec..11414872d07 100644 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-syskeygen.bat +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-syskeygen.bat @@ -7,9 +7,9 @@ rem you may not use this file except in compliance with the Elastic License. setlocal enabledelayedexpansion setlocal enableextensions +set ES_MAIN_CLASS=org.elasticsearch.xpack.security.crypto.tool.SystemKeyTool set ES_ADDITIONAL_SOURCES=x-pack-env;x-pack-security-env call "%~dp0elasticsearch-cli.bat" ^ - org.elasticsearch.xpack.security.crypto.tool.SystemKeyTool ^ %%* ^ || exit /b 1 diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-users.bat b/x-pack/plugin/security/src/main/bin/elasticsearch-users.bat index 2975fbe87b9..9b35895ed86 100644 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-users.bat +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-users.bat @@ -7,9 +7,9 @@ rem you may not use this file except in compliance with the Elastic License. setlocal enabledelayedexpansion setlocal enableextensions +set ES_MAIN_CLASS=org.elasticsearch.xpack.security.authc.file.tool.UsersTool set ES_ADDITIONAL_SOURCES=x-pack-env;x-pack-security-env call "%~dp0elasticsearch-cli.bat" ^ - org.elasticsearch.xpack.security.authc.file.tool.UsersTool ^ %%* ^ || exit /b 1 diff --git a/x-pack/plugin/watcher/src/main/bin/elasticsearch-croneval.bat b/x-pack/plugin/watcher/src/main/bin/elasticsearch-croneval.bat index 281b06cf77b..2b4a33c9f9e 100644 --- a/x-pack/plugin/watcher/src/main/bin/elasticsearch-croneval.bat +++ b/x-pack/plugin/watcher/src/main/bin/elasticsearch-croneval.bat @@ -7,9 +7,9 @@ rem you may not use this file except in compliance with the Elastic License. setlocal enabledelayedexpansion setlocal enableextensions +set ES_MAIN_CLASS=org.elasticsearch.xpack.watcher.trigger.schedule.tool.CronEvalTool set ES_ADDITIONAL_SOURCES=x-pack-env;x-pack-watcher-env call "%~dp0elasticsearch-cli.bat" ^ - org.elasticsearch.xpack.watcher.trigger.schedule.tool.CronEvalTool ^ %%* ^ || exit /b 1 From bd3aabac970a47b7096c01195207e8c9acad3489 Mon Sep 17 00:00:00 2001 From: Tim Vernum Date: Thu, 7 Jun 2018 12:03:19 +1000 Subject: [PATCH 10/62] [TEST] Make SSL restrictions update atomic (#31050) SSLTrustRestrictionsTests updates the restrictions YML file during the test run to change the set of restrictions. This update was small, but it wasn't atomic. If the yml file is reloaded while empty or invalid, then it causes all SSL certificates to be considered invalid (until it is reloaded again), which could break the sniffing/administrative client that runs underneath the tests. --- .../xpack/ssl/SSLTrustRestrictionsTests.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/ssl/SSLTrustRestrictionsTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/ssl/SSLTrustRestrictionsTests.java index 085e0c187e7..edf512f49cb 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/ssl/SSLTrustRestrictionsTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/ssl/SSLTrustRestrictionsTests.java @@ -28,6 +28,7 @@ import javax.net.ssl.SSLSocket; import javax.net.ssl.SSLSocketFactory; import java.io.IOException; import java.net.SocketException; +import java.nio.file.AtomicMoveNotSupportedException; import java.nio.file.Files; import java.nio.file.Path; import java.security.PrivateKey; @@ -35,6 +36,8 @@ import java.security.cert.X509Certificate; import java.util.Collections; import java.util.concurrent.TimeUnit; +import static java.nio.file.StandardCopyOption.ATOMIC_MOVE; +import static java.nio.file.StandardCopyOption.REPLACE_EXISTING; import static org.hamcrest.Matchers.is; /** @@ -46,11 +49,6 @@ import static org.hamcrest.Matchers.is; @TestLogging("org.elasticsearch.xpack.ssl.RestrictedTrustManager:DEBUG") public class SSLTrustRestrictionsTests extends SecurityIntegTestCase { - /** - * Use a small keysize for performance, since the keys are only used in this test, but a large enough keysize - * to get past the SSL algorithm checker - */ - private static final int RESOURCE_RELOAD_MILLIS = 3; private static final TimeValue MAX_WAIT_RELOAD = TimeValue.timeValueSeconds(1); @@ -61,6 +59,7 @@ public class SSLTrustRestrictionsTests extends SecurityIntegTestCase { private static CertificateInfo trustedCert; private static CertificateInfo untrustedCert; private static Path restrictionsPath; + private static Path restrictionsTmpPath; @Override protected int maxNumberOfNodes() { @@ -124,6 +123,8 @@ public class SSLTrustRestrictionsTests extends SecurityIntegTestCase { .put(nodeSSL); restrictionsPath = configPath.resolve("trust_restrictions.yml"); + restrictionsTmpPath = configPath.resolve("trust_restrictions.tmp"); + writeRestrictions("*.trusted"); builder.put("xpack.ssl.trust_restrictions.path", restrictionsPath); builder.put("resource.reload.interval.high", RESOURCE_RELOAD_MILLIS + "ms"); @@ -133,7 +134,12 @@ public class SSLTrustRestrictionsTests extends SecurityIntegTestCase { private void writeRestrictions(String trustedPattern) { try { - Files.write(restrictionsPath, Collections.singleton("trust.subject_name: \"" + trustedPattern + "\"")); + Files.write(restrictionsTmpPath, Collections.singleton("trust.subject_name: \"" + trustedPattern + "\"")); + try { + Files.move(restrictionsTmpPath, restrictionsPath, REPLACE_EXISTING, ATOMIC_MOVE); + } catch (final AtomicMoveNotSupportedException e) { + Files.move(restrictionsTmpPath, restrictionsPath, REPLACE_EXISTING); + } } catch (IOException e) { throw new ElasticsearchException("failed to write restrictions", e); } From 8be13615793a964560b96eea7681e70a8e62d5d2 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Wed, 6 Jun 2018 22:51:43 -0400 Subject: [PATCH 11/62] Adjust indentation in CLI scripts This commit adjusts the indentation in the CLI scripts to give a clear visual indication that the line being indented is a continuation of the previous line. --- distribution/src/bin/elasticsearch-keystore | 2 +- distribution/src/bin/elasticsearch-plugin | 2 +- distribution/src/bin/elasticsearch-translog | 2 +- x-pack/plugin/security/src/main/bin/elasticsearch-certgen | 2 +- x-pack/plugin/security/src/main/bin/elasticsearch-certutil | 2 +- x-pack/plugin/security/src/main/bin/elasticsearch-migrate | 2 +- x-pack/plugin/security/src/main/bin/elasticsearch-saml-metadata | 2 +- .../plugin/security/src/main/bin/elasticsearch-setup-passwords | 2 +- x-pack/plugin/security/src/main/bin/elasticsearch-syskeygen | 2 +- x-pack/plugin/security/src/main/bin/elasticsearch-users | 2 +- x-pack/plugin/watcher/src/main/bin/elasticsearch-croneval | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/distribution/src/bin/elasticsearch-keystore b/distribution/src/bin/elasticsearch-keystore index 7086342aabf..49e1aa7437a 100755 --- a/distribution/src/bin/elasticsearch-keystore +++ b/distribution/src/bin/elasticsearch-keystore @@ -1,5 +1,5 @@ #!/bin/bash ES_MAIN_CLASS=org.elasticsearch.common.settings.KeyStoreCli \ -"`dirname "$0"`"/elasticsearch-cli \ + "`dirname "$0"`"/elasticsearch-cli \ "$@" diff --git a/distribution/src/bin/elasticsearch-plugin b/distribution/src/bin/elasticsearch-plugin index fb9c8e5aa3f..1c11cfb35f2 100755 --- a/distribution/src/bin/elasticsearch-plugin +++ b/distribution/src/bin/elasticsearch-plugin @@ -1,6 +1,6 @@ #!/bin/bash ES_MAIN_CLASS=org.elasticsearch.plugins.PluginCli \ -ES_ADDITIONAL_CLASSPATH_DIRECTORIES=lib/tools/plugin-cli \ + ES_ADDITIONAL_CLASSPATH_DIRECTORIES=lib/tools/plugin-cli \ "`dirname "$0"`"/elasticsearch-cli \ "$@" diff --git a/distribution/src/bin/elasticsearch-translog b/distribution/src/bin/elasticsearch-translog index 28b2ea80a38..aa5bfb32df1 100755 --- a/distribution/src/bin/elasticsearch-translog +++ b/distribution/src/bin/elasticsearch-translog @@ -1,5 +1,5 @@ #!/bin/bash ES_MAIN_CLASS=org.elasticsearch.index.translog.TranslogToolCli \ -"`dirname "$0"`"/elasticsearch-cli \ + "`dirname "$0"`"/elasticsearch-cli \ "$@" diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-certgen b/x-pack/plugin/security/src/main/bin/elasticsearch-certgen index 582f3ed10f7..4a192ac3b16 100644 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-certgen +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-certgen @@ -5,6 +5,6 @@ # you may not use this file except in compliance with the Elastic License. ES_MAIN_CLASS=org.elasticsearch.xpack.core.ssl.CertificateGenerateTool \ -ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ + ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ "`dirname "$0"`"/elasticsearch-cli \ "$@" diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-certutil b/x-pack/plugin/security/src/main/bin/elasticsearch-certutil index 352a5e8364c..a13be812f0b 100644 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-certutil +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-certutil @@ -5,6 +5,6 @@ # you may not use this file except in compliance with the Elastic License. ES_MAIN_CLASS=org.elasticsearch.xpack.core.ssl.CertificateTool \ -ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ + ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ "`dirname "$0"`"/elasticsearch-cli \ "$@" diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-migrate b/x-pack/plugin/security/src/main/bin/elasticsearch-migrate index 604343e9e1b..183722d9c93 100755 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-migrate +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-migrate @@ -5,6 +5,6 @@ # you may not use this file except in compliance with the Elastic License. ES_MAIN_CLASS=org.elasticsearch.xpack.security.authc.esnative.ESNativeRealmMigrateTool \ -ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ + ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ "`dirname "$0"`"/elasticsearch-cli \ "$@" diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-saml-metadata b/x-pack/plugin/security/src/main/bin/elasticsearch-saml-metadata index 15c448fb9e9..2b2637b094d 100644 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-saml-metadata +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-saml-metadata @@ -5,6 +5,6 @@ # you may not use this file except in compliance with the Elastic License. ES_MAIN_CLASS=org.elasticsearch.xpack.security.authc.saml.SamlMetadataCommand \ -ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ + ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ "`dirname "$0"`"/elasticsearch-cli \ "$@" diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-setup-passwords b/x-pack/plugin/security/src/main/bin/elasticsearch-setup-passwords index b7ef0ad01f0..3c5887fc675 100644 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-setup-passwords +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-setup-passwords @@ -5,6 +5,6 @@ # you may not use this file except in compliance with the Elastic License. ES_MAIN_CLASS=org.elasticsearch.xpack.security.authc.esnative.tool.SetupPasswordTool \ -ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ + ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ "`dirname "$0"`"/elasticsearch-cli \ "$@" diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-syskeygen b/x-pack/plugin/security/src/main/bin/elasticsearch-syskeygen index 9d3ce7fece3..a5d988945fd 100755 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-syskeygen +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-syskeygen @@ -5,6 +5,6 @@ # you may not use this file except in compliance with the Elastic License. ES_MAIN_CLASS=org.elasticsearch.xpack.security.crypto.tool.SystemKeyTool \ -ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ + ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ "`dirname "$0"`"/elasticsearch-cli \ "$@" diff --git a/x-pack/plugin/security/src/main/bin/elasticsearch-users b/x-pack/plugin/security/src/main/bin/elasticsearch-users index 8fd0ed5a874..9d445887fee 100755 --- a/x-pack/plugin/security/src/main/bin/elasticsearch-users +++ b/x-pack/plugin/security/src/main/bin/elasticsearch-users @@ -5,6 +5,6 @@ # you may not use this file except in compliance with the Elastic License. ES_MAIN_CLASS=org.elasticsearch.xpack.security.authc.file.tool.UsersTool \ -ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ + ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-security-env" \ "`dirname "$0"`"/elasticsearch-cli \ "$@" diff --git a/x-pack/plugin/watcher/src/main/bin/elasticsearch-croneval b/x-pack/plugin/watcher/src/main/bin/elasticsearch-croneval index 451656e1463..1c55587f556 100755 --- a/x-pack/plugin/watcher/src/main/bin/elasticsearch-croneval +++ b/x-pack/plugin/watcher/src/main/bin/elasticsearch-croneval @@ -5,6 +5,6 @@ # you may not use this file except in compliance with the Elastic License. ES_MAIN_CLASS=org.elasticsearch.xpack.watcher.trigger.schedule.tool.CronEvalTool \ -ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-watcher-env" \ + ES_ADDITIONAL_SOURCES="x-pack-env;x-pack-watcher-env" \ "`dirname "$0"`"/elasticsearch-cli \ "$@" From b30aa3137d1c56f032ec7c6cc4f3209c9e3172d5 Mon Sep 17 00:00:00 2001 From: Jim Ferenczi Date: Thu, 7 Jun 2018 09:29:26 +0200 Subject: [PATCH 12/62] Reject long regex in query_string (#31136) This change applies the existing `index.max_regex_length` to regex queries produced by the `query_string` query. Relates #28344 --- .../rest-api-spec/test/search/30_limits.yml | 22 +++++++++++++++++++ .../index/search/QueryStringQueryParser.java | 8 +++++++ 2 files changed, 30 insertions(+) diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/search/30_limits.yml b/rest-api-spec/src/main/resources/rest-api-spec/test/search/30_limits.yml index 905635e1d10..8b51a6c2d39 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/test/search/30_limits.yml +++ b/rest-api-spec/src/main/resources/rest-api-spec/test/search/30_limits.yml @@ -122,3 +122,25 @@ setup: ]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[\\t])*))*\\>(?:(?:\\r\\n)?[ \\t])*)(?:,\\s*( | \".\\[\\]]))|\"(?:[^\\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[\\t]))*\"(?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:( | \\[\"()<>@,;:\\\\\".\\[\\]]))|\"(?:[^\\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[\\t]))*\"(?:(?:\\r\\n)?[\\t" + + - do: + catch: /The length of regex \[1110\]/ + search: + index: test_1 + body: + query: + query_string: + query: "/^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[\\t])*)(?:\\.(?:(?:\\r\\n)?[\\t])*(?:[^()<>@,;:\\\\\" | + .\\[\\]\\000-\\031]+(?:(?:(?:\\r\\n)?[\\t])+|\\Z|(?=[\\[\"()<>@,;:\\\\\".\\[\\]]))|\\[([^\\[\\ | + ]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[\\t])*))*(?:,@(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@,;:\\\\\".\\ | + [\\]\\000-\\031]+(?:(?:(?:\\r\\n)?[\\t])+|\\Z|(?=[\\[\"()<>@,;:\\\\\".\\[\\]]))|\\[([^\\[\\]\\ | + r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[\\t])*)(?:\\.(?:(?:\\r\\n)?[\\t])*(?:[^()<>@,;:\\\\\".\\[\\] | + \\000-\\031]+(?:(?:(?:\\r\\n)?[\\t])+|\\Z|(?=[\\[\"()<>@,;:\\\\\".\\[\\]]))|\\[([^\\[\\]\\r\\\\] | + |\\\\.)*\\](?:(?:\\r\\n)?[\\t])*))*)*:(?:(?:\\r\\n)?[\\t])*)?(?:[^()<>@,;:\\\\\".\\[\\] \\0 | + 00-\\031]+(?:(?:(?:\\r\\n)?[\\t])+|\\Z|(?=[\\[\"()<>@,;:\\\\\".\\[\\]]))|\"(?:[^\\\"\\r\\\\]|\\\\ | + .|(?:(?:\\r\\n)?[\\t]))*\"(?:(?:\\r\\n)?[\\t])*)(?:\\.(?:(?:\\r\\n)?[ \\t])*(?:[^()<>@, | + ;:\\\\\".\\[\\]\\000-\\031]+(?:(?:(?:\\r\\n)?[\\t])+|\\Z|(?=[\\[\"()<>@,;:\\\\\".\\[\\]]))|\"(? | + :[^\\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[\\t]))*\"(?:(?:\\r\\n)?[\\t])*))*@(?:(?:\\r\\n)?[ \\t])* | + ]))|\\[([^\\[\\]\\r\\\\]|\\\\.)*\\](?:(?:\\r\\n)?[\\t])*))*\\>(?:(?:\\r\\n)?[ \\t])*)(?:,\\s*( | + \".\\[\\]]))|\"(?:[^\\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[\\t]))*\"(?:(?:\\r\\n)?[ \\t])*)(?:\\.(?:( | + \\[\"()<>@,;:\\\\\".\\[\\]]))|\"(?:[^\\\"\\r\\\\]|\\\\.|(?:(?:\\r\\n)?[\\t]))*\"(?:(?:\\r\\n)?[\\t/" diff --git a/server/src/main/java/org/elasticsearch/index/search/QueryStringQueryParser.java b/server/src/main/java/org/elasticsearch/index/search/QueryStringQueryParser.java index 590bcf5e4e0..50406ed5834 100644 --- a/server/src/main/java/org/elasticsearch/index/search/QueryStringQueryParser.java +++ b/server/src/main/java/org/elasticsearch/index/search/QueryStringQueryParser.java @@ -46,6 +46,7 @@ import org.elasticsearch.core.internal.io.IOUtils; import org.elasticsearch.common.lucene.search.Queries; import org.elasticsearch.common.regex.Regex; import org.elasticsearch.common.unit.Fuzziness; +import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.mapper.FieldNamesFieldMapper; import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.MapperService; @@ -657,6 +658,13 @@ public class QueryStringQueryParser extends XQueryParser { @Override protected Query getRegexpQuery(String field, String termStr) throws ParseException { + final int maxAllowedRegexLength = context.getIndexSettings().getMaxRegexLength(); + if (termStr.length() > maxAllowedRegexLength) { + throw new IllegalArgumentException( + "The length of regex [" + termStr.length() + "] used in the [query_string] has exceeded " + + "the allowed maximum of [" + maxAllowedRegexLength + "]. This maximum can be set by changing the [" + + IndexSettings.MAX_REGEX_LENGTH_SETTING.getKey() + "] index level setting."); + } Map fields = extractMultiFields(field, false); if (fields.isEmpty()) { return newUnmappedFieldQuery(termStr); From 75a676c70bb4333bde6f6b1cd89940c82d8299ad Mon Sep 17 00:00:00 2001 From: Nirmal Chidambaram Date: Thu, 7 Jun 2018 07:34:39 +0000 Subject: [PATCH 13/62] Fail `span_multi` queries that exceeds boolean max clause limit (#30913) By default span_multi query will limit term expansions = boolean max clause. This will limit high heap usage in case of high cardinality term expansions. This applies only if top_terms_N is not used in inner multi query. --- .../query-dsl/span-multi-term-query.asciidoc | 13 ++-- .../query/SpanMultiTermQueryBuilder.java | 67 +++++++++++++++++-- .../query/SpanMultiTermQueryBuilderTests.java | 35 +++++++++- .../search/query/SearchQueryIT.java | 33 +++++++++ 4 files changed, 134 insertions(+), 14 deletions(-) diff --git a/docs/reference/query-dsl/span-multi-term-query.asciidoc b/docs/reference/query-dsl/span-multi-term-query.asciidoc index ff7af83451b..40bd1553298 100644 --- a/docs/reference/query-dsl/span-multi-term-query.asciidoc +++ b/docs/reference/query-dsl/span-multi-term-query.asciidoc @@ -37,10 +37,9 @@ GET /_search -------------------------------------------------- // CONSOLE -WARNING: By default `span_multi queries are rewritten to a `span_or` query -containing **all** the expanded terms. This can be expensive if the number of expanded -terms is large. To avoid an unbounded expansion you can set the -<> of the multi term query to `top_terms_*` -rewrite. Or, if you use `span_multi` on `prefix` query only, you can -activate the <> field option of the `text` field instead. This will -rewrite any prefix query on the field to a a single term query that matches the indexed prefix. \ No newline at end of file +WARNING: `span_multi` queries will hit too many clauses failure if the number of terms that match the query exceeds the +boolean query limit (defaults to 1024).To avoid an unbounded expansion you can set the <> of the multi term query to `top_terms_*` rewrite. Or, if you use `span_multi` on `prefix` query only, +you can activate the <> field option of the `text` field instead. This will +rewrite any prefix query on the field to a a single term query that matches the indexed prefix. + diff --git a/server/src/main/java/org/elasticsearch/index/query/SpanMultiTermQueryBuilder.java b/server/src/main/java/org/elasticsearch/index/query/SpanMultiTermQueryBuilder.java index b574cadc423..0576a68a85b 100644 --- a/server/src/main/java/org/elasticsearch/index/query/SpanMultiTermQueryBuilder.java +++ b/server/src/main/java/org/elasticsearch/index/query/SpanMultiTermQueryBuilder.java @@ -19,6 +19,9 @@ package org.elasticsearch.index.query; import org.apache.lucene.index.Term; +import org.apache.lucene.index.IndexReader; +import org.apache.lucene.index.TermContext; +import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.BoostQuery; import org.apache.lucene.search.ConstantScoreQuery; import org.apache.lucene.search.MultiTermQuery; @@ -26,11 +29,15 @@ import org.apache.lucene.search.PrefixQuery; import org.apache.lucene.search.Query; import org.apache.lucene.search.TermQuery; import org.apache.lucene.search.spans.FieldMaskingSpanQuery; +import org.apache.lucene.search.ScoringRewrite; +import org.apache.lucene.search.TopTermsRewrite; import org.apache.lucene.search.spans.SpanBoostQuery; import org.apache.lucene.search.spans.SpanMultiTermQueryWrapper; +import org.apache.lucene.search.spans.SpanOrQuery; import org.apache.lucene.search.spans.SpanQuery; import org.apache.lucene.search.spans.SpanTermQuery; import org.elasticsearch.Version; +import org.elasticsearch.ElasticsearchException; import org.elasticsearch.common.ParseField; import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.io.stream.StreamInput; @@ -42,6 +49,8 @@ import org.elasticsearch.index.mapper.TextFieldMapper; import org.elasticsearch.index.query.support.QueryParsers; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; import java.util.Objects; /** @@ -49,12 +58,10 @@ import java.util.Objects; * as a {@link SpanQueryBuilder} so it can be nested. */ public class SpanMultiTermQueryBuilder extends AbstractQueryBuilder - implements SpanQueryBuilder { + implements SpanQueryBuilder { public static final String NAME = "span_multi"; - private static final ParseField MATCH_FIELD = new ParseField("match"); - private final MultiTermQueryBuilder multiTermQueryBuilder; public SpanMultiTermQueryBuilder(MultiTermQueryBuilder multiTermQueryBuilder) { @@ -83,7 +90,7 @@ public class SpanMultiTermQueryBuilder extends AbstractQueryBuilder> delegate = new ScoringRewrite>() { + + @Override + protected List getTopLevelBuilder() { + return new ArrayList(); + } + + @Override + protected Query build(List builder) { + return new SpanOrQuery((SpanQuery[]) builder.toArray(new SpanQuery[builder.size()])); + } + + @Override + protected void checkMaxClauseCount(int count) { + if (count > maxExpansions) { + throw new ElasticsearchException("[" + multiTermQuery.toString() + " ] " + + "exceeds maxClauseCount [ Boolean maxClauseCount is set to " + BooleanQuery.getMaxClauseCount() + "]"); + } + } + + @Override + protected void addClause(List topLevel, Term term, int docCount, float boost, TermContext states) { + SpanTermQuery q = new SpanTermQuery(term, states); + topLevel.add(q); + } + }; + } + @Override protected Query doToQuery(QueryShardContext context) throws IOException { Query subQuery = multiTermQueryBuilder.toQuery(context); @@ -190,10 +240,15 @@ public class SpanMultiTermQueryBuilder extends AbstractQueryBuilder((MultiTermQuery) subQuery); + if (((MultiTermQuery) subQuery).getRewriteMethod() instanceof TopTermsRewrite == false) { + ((SpanMultiTermQueryWrapper) spanQuery).setRewriteMethod(new + TopTermSpanBooleanQueryRewriteWithMaxClause(BooleanQuery.getMaxClauseCount())); + } } if (boost != AbstractQueryBuilder.DEFAULT_BOOST) { return new SpanBoostQuery(spanQuery, boost); } + return spanQuery; } diff --git a/server/src/test/java/org/elasticsearch/index/query/SpanMultiTermQueryBuilderTests.java b/server/src/test/java/org/elasticsearch/index/query/SpanMultiTermQueryBuilderTests.java index b7781682359..fae66dd68bc 100644 --- a/server/src/test/java/org/elasticsearch/index/query/SpanMultiTermQueryBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/index/query/SpanMultiTermQueryBuilderTests.java @@ -34,7 +34,6 @@ import org.elasticsearch.Version; import org.elasticsearch.common.Strings; import org.elasticsearch.common.compress.CompressedXContent; import org.elasticsearch.common.io.stream.StreamOutput; -import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.mapper.MapperService; import org.elasticsearch.search.internal.SearchContext; @@ -238,4 +237,38 @@ public class SpanMultiTermQueryBuilderTests extends AbstractQueryTestCase reqs = new ArrayList<>(); + int origBoolMaxClauseCount = BooleanQuery.getMaxClauseCount(); + try { + BooleanQuery.setMaxClauseCount(2); + for (int i = 0; i < BooleanQuery.getMaxClauseCount() + 1; i++) { + reqs.add(client().prepareIndex("test", "_doc", Integer.toString(i)).setSource("body", "foo" + + Integer.toString(i) + " bar baz")); + } + indexRandom(true, false, reqs); + + QueryBuilder queryBuilder = new SpanNearQueryBuilder(new SpanMultiTermQueryBuilder(QueryBuilders.wildcardQuery + ("body", "f*")), 0).addClause(new SpanTermQueryBuilder("body", "bar")); + + expectThrows(ElasticsearchException.class, () -> + client().prepareSearch().setIndices("test").setQuery(queryBuilder).get()); + } finally { + BooleanQuery.setMaxClauseCount(origBoolMaxClauseCount); + } + + } + } From 458bca11bc4e1376f0c75171dd376be2bf64fae6 Mon Sep 17 00:00:00 2001 From: Adrien Grand Date: Thu, 7 Jun 2018 10:05:37 +0200 Subject: [PATCH 14/62] Add a `feature_vector` field. (#31102) This field is similar to the `feature` field but is better suited to index sparse feature vectors. A use-case for this field could be to record topics associated with every documents alongside a metric that quantifies how well the topic is connected to this document, and then boost queries based on the topics that the logged user is interested in. Relates #27552 --- docs/reference/mapping/types.asciidoc | 4 +- .../mapping/types/feature-vector.asciidoc | 64 ++++++ .../query-dsl/feature-query.asciidoc | 94 +++++++-- .../index/mapper/FeatureFieldMapper.java | 7 +- .../mapper/FeatureVectorFieldMapper.java | 182 ++++++++++++++++++ .../index/mapper/MapperExtrasPlugin.java | 1 + .../index/query/FeatureQueryBuilder.java | 42 ++-- .../index/mapper/FeatureFieldMapperTests.java | 7 +- .../mapper/FeatureVectorFieldMapperTests.java | 130 +++++++++++++ .../mapper/FeatureVectorFieldTypeTests.java | 29 +++ .../index/query/FeatureQueryBuilderTests.java | 20 +- .../test/feature_vector/10_basic.yml | 103 ++++++++++ 12 files changed, 635 insertions(+), 48 deletions(-) create mode 100644 docs/reference/mapping/types/feature-vector.asciidoc create mode 100644 modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/FeatureVectorFieldMapper.java create mode 100644 modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/FeatureVectorFieldMapperTests.java create mode 100644 modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/FeatureVectorFieldTypeTests.java create mode 100644 modules/mapper-extras/src/test/resources/rest-api-spec/test/feature_vector/10_basic.yml diff --git a/docs/reference/mapping/types.asciidoc b/docs/reference/mapping/types.asciidoc index ecb2e8dace2..9b71d7e7404 100644 --- a/docs/reference/mapping/types.asciidoc +++ b/docs/reference/mapping/types.asciidoc @@ -42,6 +42,8 @@ string:: <> and <> <>:: Record numeric features to boost hits at query time. +<>:: Record numeric feature vectors to boost hits at query time. + [float] === Multi-fields @@ -90,4 +92,4 @@ include::types/parent-join.asciidoc[] include::types/feature.asciidoc[] - +include::types/feature-vector.asciidoc[] diff --git a/docs/reference/mapping/types/feature-vector.asciidoc b/docs/reference/mapping/types/feature-vector.asciidoc new file mode 100644 index 00000000000..2ce3c017fe3 --- /dev/null +++ b/docs/reference/mapping/types/feature-vector.asciidoc @@ -0,0 +1,64 @@ +[[feature-vector]] +=== Feature vector datatype + +A `feature_vector` field can index numeric feature vectors, so that they can +later be used to boost documents in queries with a +<> query. + +It is analogous to the <> datatype but is better suited +when the list of features is sparse so that it wouldn't be reasonable to add +one field to the mappings for each of them. + +[source,js] +-------------------------------------------------- +PUT my_index +{ + "mappings": { + "_doc": { + "properties": { + "topics": { + "type": "feature_vector" <1> + } + } + } + } +} + +PUT my_index/_doc/1 +{ + "topics": { <2> + "politics": 20, + "economics": 50.8 + } +} + +PUT my_index/_doc/2 +{ + "topics": { + "politics": 5.2, + "sports": 80.1 + } +} + +GET my_index/_search +{ + "query": { + "feature": { + "field": "topics.politics" + } + } +} +-------------------------------------------------- +// CONSOLE +<1> Feature vector fields must use the `feature_vector` field type +<2> Feature vector fields must be a hash with string keys and strictly positive numeric values + +NOTE: `feature_vector` fields only support single-valued features and strictly +positive values. Multi-valued fields and zero or negative values will be rejected. + +NOTE: `feature_vector` fields do not support sorting or aggregating and may +only be queried using <> queries. + +NOTE: `feature_vector` fields only preserve 9 significant bits for the +precision, which translates to a relative error of about 0.4%. + diff --git a/docs/reference/query-dsl/feature-query.asciidoc b/docs/reference/query-dsl/feature-query.asciidoc index 19c29b1cf3a..387278a432a 100644 --- a/docs/reference/query-dsl/feature-query.asciidoc +++ b/docs/reference/query-dsl/feature-query.asciidoc @@ -2,9 +2,10 @@ === Feature Query The `feature` query is a specialized query that only works on -<> fields. Its goal is to boost the score of documents based -on the values of numeric features. It is typically put in a `should` clause of -a <> query so that its score is added to the score +<> fields and <> fields. +Its goal is to boost the score of documents based on the values of numeric +features. It is typically put in a `should` clause of a +<> query so that its score is added to the score of the query. Compared to using <> or other @@ -13,7 +14,16 @@ efficiently skip non-competitive hits when <> is set to `false`. Speedups may be spectacular. -Here is an example: +Here is an example that indexes various features: + - https://en.wikipedia.org/wiki/PageRank[`pagerank`], a measure of the + importance of a website, + - `url_length`, the length of the url, which typically correlates negatively + with relevance, + - `topics`, which associates a list of topics with every document alongside a + measure of how well the document is connected to this topic. + +Then the example includes an example query that searches for `"2016"` and boosts +based or `pagerank`, `url_length` and the `sports` topic. [source,js] -------------------------------------------------- @@ -28,6 +38,9 @@ PUT test "url_length": { "type": "feature", "positive_score_impact": false + }, + "topics": { + "type": "feature_vector" } } } @@ -36,32 +49,73 @@ PUT test PUT test/_doc/1 { - "pagerank": 10, - "url_length": 50 + "url": "http://en.wikipedia.org/wiki/2016_Summer_Olympics", + "content": "Rio 2016", + "pagerank": 50.3, + "url_length": 42, + "topics": { + "sports": 50, + "brazil": 30 + } } PUT test/_doc/2 { - "pagerank": 100, - "url_length": 20 + "url": "http://en.wikipedia.org/wiki/2016_Brazilian_Grand_Prix", + "content": "Formula One motor race held on 13 November 2016 at the Autódromo José Carlos Pace in São Paulo, Brazil", + "pagerank": 50.3, + "url_length": 47, + "topics": { + "sports": 35, + "formula one": 65, + "brazil": 20 + } +} + +PUT test/_doc/3 +{ + "url": "http://en.wikipedia.org/wiki/Deadpool_(film)", + "content": "Deadpool is a 2016 American superhero film", + "pagerank": 50.3, + "url_length": 37, + "topics": { + "movies": 60, + "super hero": 65 + } } POST test/_refresh -GET test/_search +GET test/_search { "query": { - "feature": { - "field": "pagerank" - } - } -} - -GET test/_search -{ - "query": { - "feature": { - "field": "url_length" + "bool": { + "must": [ + { + "match": { + "content": "2016" + } + } + ], + "should": [ + { + "feature": { + "field": "pagerank" + } + }, + { + "feature": { + "field": "url_length", + "boost": 0.1 + } + }, + { + "feature": { + "field": "topics.sports", + "boost": 0.4 + } + } + ] } } } diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/FeatureFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/FeatureFieldMapper.java index 30e18ae6d68..70ecf06e58a 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/FeatureFieldMapper.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/FeatureFieldMapper.java @@ -165,8 +165,7 @@ public class FeatureFieldMapper extends FieldMapper { @Override public IndexFieldData.Builder fielddataBuilder(String fullyQualifiedIndexName) { - failIfNoDocValues(); - return new DocValuesIndexFieldData.Builder(); + throw new UnsupportedOperationException("[feature] fields do not support sorting, scripting or aggregating"); } @Override @@ -229,10 +228,6 @@ public class FeatureFieldMapper extends FieldMapper { protected void doXContentBody(XContentBuilder builder, boolean includeDefaults, Params params) throws IOException { super.doXContentBody(builder, includeDefaults, params); - if (includeDefaults || fieldType().nullValue() != null) { - builder.field("null_value", fieldType().nullValue()); - } - if (includeDefaults || fieldType().positiveScoreImpact() == false) { builder.field("positive_score_impact", fieldType().positiveScoreImpact()); } diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/FeatureVectorFieldMapper.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/FeatureVectorFieldMapper.java new file mode 100644 index 00000000000..7b4b9e62fa3 --- /dev/null +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/FeatureVectorFieldMapper.java @@ -0,0 +1,182 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.index.mapper; + +import org.apache.lucene.document.FeatureField; +import org.apache.lucene.index.IndexOptions; +import org.apache.lucene.index.IndexableField; +import org.apache.lucene.index.Term; +import org.apache.lucene.search.Query; +import org.apache.lucene.search.TermQuery; +import org.elasticsearch.common.lucene.Lucene; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.xcontent.XContentParser.Token; +import org.elasticsearch.index.fielddata.IndexFieldData; +import org.elasticsearch.index.query.QueryShardContext; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +/** + * A {@link FieldMapper} that exposes Lucene's {@link FeatureField} as a sparse + * vector of features. + */ +public class FeatureVectorFieldMapper extends FieldMapper { + + public static final String CONTENT_TYPE = "feature_vector"; + + public static class Defaults { + public static final MappedFieldType FIELD_TYPE = new FeatureVectorFieldType(); + + static { + FIELD_TYPE.setTokenized(false); + FIELD_TYPE.setIndexOptions(IndexOptions.NONE); + FIELD_TYPE.setHasDocValues(false); + FIELD_TYPE.setOmitNorms(true); + FIELD_TYPE.freeze(); + } + } + + public static class Builder extends FieldMapper.Builder { + + public Builder(String name) { + super(name, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); + builder = this; + } + + @Override + public FeatureVectorFieldType fieldType() { + return (FeatureVectorFieldType) super.fieldType(); + } + + @Override + public FeatureVectorFieldMapper build(BuilderContext context) { + setupFieldType(context); + return new FeatureVectorFieldMapper( + name, fieldType, defaultFieldType, + context.indexSettings(), multiFieldsBuilder.build(this, context), copyTo); + } + } + + public static class TypeParser implements Mapper.TypeParser { + @Override + public Mapper.Builder parse(String name, Map node, ParserContext parserContext) throws MapperParsingException { + FeatureVectorFieldMapper.Builder builder = new FeatureVectorFieldMapper.Builder(name); + return builder; + } + } + + public static final class FeatureVectorFieldType extends MappedFieldType { + + public FeatureVectorFieldType() { + setIndexAnalyzer(Lucene.KEYWORD_ANALYZER); + setSearchAnalyzer(Lucene.KEYWORD_ANALYZER); + } + + protected FeatureVectorFieldType(FeatureVectorFieldType ref) { + super(ref); + } + + public FeatureVectorFieldType clone() { + return new FeatureVectorFieldType(this); + } + + @Override + public String typeName() { + return CONTENT_TYPE; + } + + @Override + public Query existsQuery(QueryShardContext context) { + throw new UnsupportedOperationException("[feature_vector] fields do not support [exists] queries"); + } + + @Override + public IndexFieldData.Builder fielddataBuilder(String fullyQualifiedIndexName) { + throw new UnsupportedOperationException("[feature_vector] fields do not support sorting, scripting or aggregating"); + } + + @Override + public Query termQuery(Object value, QueryShardContext context) { + throw new UnsupportedOperationException("Queries on [feature_vector] fields are not supported"); + } + } + + private FeatureVectorFieldMapper(String simpleName, MappedFieldType fieldType, MappedFieldType defaultFieldType, + Settings indexSettings, MultiFields multiFields, CopyTo copyTo) { + super(simpleName, fieldType, defaultFieldType, indexSettings, multiFields, copyTo); + assert fieldType.indexOptions().compareTo(IndexOptions.DOCS_AND_FREQS) <= 0; + } + + @Override + protected FeatureVectorFieldMapper clone() { + return (FeatureVectorFieldMapper) super.clone(); + } + + @Override + public FeatureVectorFieldType fieldType() { + return (FeatureVectorFieldType) super.fieldType(); + } + + @Override + public FieldMapper parse(ParseContext context) throws IOException { + if (context.externalValueSet()) { + throw new IllegalArgumentException("[feature_vector] fields can't be used in multi-fields"); + } + + if (context.parser().currentToken() != Token.START_OBJECT) { + throw new IllegalArgumentException("[feature_vector] fields must be json objects, expected a START_OBJECT but got: " + + context.parser().currentToken()); + } + + String feature = null; + for (Token token = context.parser().nextToken(); token != Token.END_OBJECT; token = context.parser().nextToken()) { + if (token == Token.FIELD_NAME) { + feature = context.parser().currentName(); + } else if (token == Token.VALUE_NULL) { + // ignore feature, this is consistent with numeric fields + } else if (token == Token.VALUE_NUMBER || token == Token.VALUE_STRING) { + final String key = name() + "." + feature; + float value = context.parser().floatValue(true); + if (context.doc().getByKey(key) != null) { + throw new IllegalArgumentException("[feature_vector] fields do not support indexing multiple values for the same " + + "feature [" + key + "] in the same document"); + } + context.doc().addWithKey(key, new FeatureField(name(), feature, value)); + } else { + throw new IllegalArgumentException("[feature_vector] fields take hashes that map a feature to a strictly positive " + + "float, but got unexpected token " + token); + } + } + return null; // no mapping update + } + + @Override + protected void parseCreateField(ParseContext context, List fields) throws IOException { + throw new AssertionError("parse is implemented directly"); + } + + @Override + protected String contentType() { + return CONTENT_TYPE; + } + +} diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/MapperExtrasPlugin.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/MapperExtrasPlugin.java index 4a9aea21a8a..513f052212f 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/MapperExtrasPlugin.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/mapper/MapperExtrasPlugin.java @@ -38,6 +38,7 @@ public class MapperExtrasPlugin extends Plugin implements MapperPlugin, SearchPl mappers.put(ScaledFloatFieldMapper.CONTENT_TYPE, new ScaledFloatFieldMapper.TypeParser()); mappers.put(TokenCountFieldMapper.CONTENT_TYPE, new TokenCountFieldMapper.TypeParser()); mappers.put(FeatureFieldMapper.CONTENT_TYPE, new FeatureFieldMapper.TypeParser()); + mappers.put(FeatureVectorFieldMapper.CONTENT_TYPE, new FeatureVectorFieldMapper.TypeParser()); return Collections.unmodifiableMap(mappers); } diff --git a/modules/mapper-extras/src/main/java/org/elasticsearch/index/query/FeatureQueryBuilder.java b/modules/mapper-extras/src/main/java/org/elasticsearch/index/query/FeatureQueryBuilder.java index 761de46731d..3b7fb97eab1 100644 --- a/modules/mapper-extras/src/main/java/org/elasticsearch/index/query/FeatureQueryBuilder.java +++ b/modules/mapper-extras/src/main/java/org/elasticsearch/index/query/FeatureQueryBuilder.java @@ -28,6 +28,8 @@ import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.ConstructingObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.mapper.FeatureFieldMapper.FeatureFieldType; +import org.elasticsearch.index.mapper.FeatureMetaFieldMapper; +import org.elasticsearch.index.mapper.FeatureVectorFieldMapper.FeatureVectorFieldType; import org.elasticsearch.index.mapper.MappedFieldType; import java.io.IOException; @@ -48,7 +50,7 @@ public final class FeatureQueryBuilder extends AbstractQueryBuilder mapper.parse(SourceToParse.source("test", "type", "1", BytesReference .bytes(XContentFactory.jsonBuilder() .startObject() @@ -151,7 +152,7 @@ public class FeatureFieldMapperTests extends ESSingleNodeTestCase { .endObject()), XContentType.JSON))); assertEquals("[feature] fields do not support indexing multiple values for the same field [field] in the same document", - e.getCause().getMessage());*/ + e.getCause().getMessage()); e = expectThrows(MapperParsingException.class, () -> mapper.parse(SourceToParse.source("test", "type", "1", BytesReference diff --git a/modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/FeatureVectorFieldMapperTests.java b/modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/FeatureVectorFieldMapperTests.java new file mode 100644 index 00000000000..fccb62b1a34 --- /dev/null +++ b/modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/FeatureVectorFieldMapperTests.java @@ -0,0 +1,130 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.index.mapper; + +import org.apache.lucene.document.FeatureField; +import org.apache.lucene.index.IndexableField; +import org.elasticsearch.common.Strings; +import org.elasticsearch.common.bytes.BytesReference; +import org.elasticsearch.common.compress.CompressedXContent; +import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.common.xcontent.XContentType; +import org.elasticsearch.index.IndexService; +import org.elasticsearch.plugins.Plugin; +import org.elasticsearch.test.ESSingleNodeTestCase; +import org.hamcrest.Matchers; +import org.junit.Before; + +import java.io.IOException; +import java.util.Arrays; +import java.util.Collection; + +public class FeatureVectorFieldMapperTests extends ESSingleNodeTestCase { + + IndexService indexService; + DocumentMapperParser parser; + + @Before + public void setup() { + indexService = createIndex("test"); + parser = indexService.mapperService().documentMapperParser(); + } + + @Override + protected Collection> getPlugins() { + return pluginList(MapperExtrasPlugin.class); + } + + public void testDefaults() throws Exception { + String mapping = Strings.toString(XContentFactory.jsonBuilder().startObject().startObject("type") + .startObject("properties").startObject("field").field("type", "feature_vector").endObject().endObject() + .endObject().endObject()); + + DocumentMapper mapper = parser.parse("type", new CompressedXContent(mapping)); + + assertEquals(mapping, mapper.mappingSource().toString()); + + ParsedDocument doc1 = mapper.parse(SourceToParse.source("test", "type", "1", BytesReference + .bytes(XContentFactory.jsonBuilder() + .startObject() + .startObject("field") + .field("foo", 10) + .field("bar", 20) + .endObject() + .endObject()), + XContentType.JSON)); + + IndexableField[] fields = doc1.rootDoc().getFields("field"); + assertEquals(2, fields.length); + assertThat(fields[0], Matchers.instanceOf(FeatureField.class)); + FeatureField featureField1 = (FeatureField) fields[0]; + assertThat(featureField1.stringValue(), Matchers.equalTo("foo")); + FeatureField featureField2 = (FeatureField) fields[1]; + assertThat(featureField2.stringValue(), Matchers.equalTo("bar")); + + int freq1 = FeatureFieldMapperTests.getFrequency(featureField1.tokenStream(null, null)); + int freq2 = FeatureFieldMapperTests.getFrequency(featureField2.tokenStream(null, null)); + assertTrue(freq1 < freq2); + } + + public void testRejectMultiValuedFields() throws MapperParsingException, IOException { + String mapping = Strings.toString(XContentFactory.jsonBuilder().startObject().startObject("type") + .startObject("properties").startObject("field").field("type", "feature_vector").endObject().startObject("foo") + .startObject("properties").startObject("field").field("type", "feature_vector").endObject().endObject() + .endObject().endObject().endObject().endObject()); + + DocumentMapper mapper = parser.parse("type", new CompressedXContent(mapping)); + + assertEquals(mapping, mapper.mappingSource().toString()); + + MapperParsingException e = expectThrows(MapperParsingException.class, + () -> mapper.parse(SourceToParse.source("test", "type", "1", BytesReference + .bytes(XContentFactory.jsonBuilder() + .startObject() + .startObject("field") + .field("foo", Arrays.asList(10, 20)) + .endObject() + .endObject()), + XContentType.JSON))); + assertEquals("[feature_vector] fields take hashes that map a feature to a strictly positive float, but got unexpected token " + + "START_ARRAY", e.getCause().getMessage()); + + e = expectThrows(MapperParsingException.class, + () -> mapper.parse(SourceToParse.source("test", "type", "1", BytesReference + .bytes(XContentFactory.jsonBuilder() + .startObject() + .startArray("foo") + .startObject() + .startObject("field") + .field("bar", 10) + .endObject() + .endObject() + .startObject() + .startObject("field") + .field("bar", 20) + .endObject() + .endObject() + .endArray() + .endObject()), + XContentType.JSON))); + assertEquals("[feature_vector] fields do not support indexing multiple values for the same feature [foo.field.bar] in the same " + + "document", e.getCause().getMessage()); + } +} diff --git a/modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/FeatureVectorFieldTypeTests.java b/modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/FeatureVectorFieldTypeTests.java new file mode 100644 index 00000000000..e8d84ce7a02 --- /dev/null +++ b/modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/FeatureVectorFieldTypeTests.java @@ -0,0 +1,29 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.index.mapper; + +public class FeatureVectorFieldTypeTests extends FieldTypeTestCase { + + @Override + protected MappedFieldType createDefaultFieldType() { + return new FeatureVectorFieldMapper.FeatureVectorFieldType(); + } + +} diff --git a/modules/mapper-extras/src/test/java/org/elasticsearch/index/query/FeatureQueryBuilderTests.java b/modules/mapper-extras/src/test/java/org/elasticsearch/index/query/FeatureQueryBuilderTests.java index f9101447ef7..dd7b42487fd 100644 --- a/modules/mapper-extras/src/test/java/org/elasticsearch/index/query/FeatureQueryBuilderTests.java +++ b/modules/mapper-extras/src/test/java/org/elasticsearch/index/query/FeatureQueryBuilderTests.java @@ -33,8 +33,10 @@ import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.test.AbstractQueryTestCase; import java.io.IOException; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.List; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.Matchers.either; @@ -46,7 +48,8 @@ public class FeatureQueryBuilderTests extends AbstractQueryTestCase fields = new ArrayList<>(); + fields.add("my_feature_field"); + fields.add("unmapped_field"); + fields.add("my_feature_vector_field.feature"); + if (mayUseNegativeField) { + fields.add("my_negative_feature_field"); + } + + final String field = randomFrom(fields); + return new FeatureQueryBuilder(field, function); } @Override @@ -103,7 +117,7 @@ public class FeatureQueryBuilderTests extends AbstractQueryTestCase parseQuery(query).toQuery(createShardContext())); - assertEquals("[feature] query only works on [feature] fields, not [text]", e.getMessage()); + assertEquals("[feature] query only works on [feature] fields and features of [feature_vector] fields, not [text]", e.getMessage()); } public void testIllegalCombination() throws IOException { diff --git a/modules/mapper-extras/src/test/resources/rest-api-spec/test/feature_vector/10_basic.yml b/modules/mapper-extras/src/test/resources/rest-api-spec/test/feature_vector/10_basic.yml new file mode 100644 index 00000000000..9cb8fa9c18d --- /dev/null +++ b/modules/mapper-extras/src/test/resources/rest-api-spec/test/feature_vector/10_basic.yml @@ -0,0 +1,103 @@ +setup: + - skip: + version: " - 6.99.99" + reason: "The feature_vector field was introduced in 7.0.0" + + - do: + indices.create: + index: test + body: + settings: + number_of_replicas: 0 + mappings: + _doc: + properties: + tags: + type: feature_vector + + - do: + index: + index: test + type: _doc + id: 1 + body: + tags: + foo: 3 + bar: 5 + + - do: + index: + index: test + type: _doc + id: 2 + body: + tags: + bar: 6 + quux: 10 + + - do: + indices.refresh: {} + +--- +"Log": + + - do: + search: + body: + query: + feature: + field: tags.bar + log: + scaling_factor: 3 + + - match: + hits.total: 2 + + - match: + hits.hits.0._id: "2" + + - match: + hits.hits.1._id: "1" + +--- +"Saturation": + + - do: + search: + body: + query: + feature: + field: tags.bar + saturation: + pivot: 20 + + - match: + hits.total: 2 + + - match: + hits.hits.0._id: "2" + + - match: + hits.hits.1._id: "1" + +--- +"Sigmoid": + + - do: + search: + body: + query: + feature: + field: tags.bar + sigmoid: + pivot: 20 + exponent: 0.6 + + - match: + hits.total: 2 + + - match: + hits.hits.0._id: "2" + + - match: + hits.hits.1._id: "1" From 749d39061a4a76b7264c443cb3235f72520ec0a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Bigaj?= <4rafalbigaj@gmail.com> Date: Thu, 7 Jun 2018 10:43:31 +0200 Subject: [PATCH 15/62] [Docs] Correct minor typos in templates.asciidoc (#31167) --- docs/reference/mapping/dynamic/templates.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/reference/mapping/dynamic/templates.asciidoc b/docs/reference/mapping/dynamic/templates.asciidoc index 4a15436b804..bdb00916755 100644 --- a/docs/reference/mapping/dynamic/templates.asciidoc +++ b/docs/reference/mapping/dynamic/templates.asciidoc @@ -115,7 +115,7 @@ PUT my_index/_doc/1 [[match-unmatch]] ==== `match` and `unmatch` -The `match` parameter uses a pattern to match on the fieldname, while +The `match` parameter uses a pattern to match on the field name, while `unmatch` uses a pattern to exclude fields matched by `match`. The following example matches all `string` fields whose name starts with @@ -259,7 +259,7 @@ PUT my_index/_doc/1 -------------------------------------------------- // CONSOLE <1> The `english` field is mapped as a `string` field with the `english` analyzer. -<2> The `count` field is mapped as a `long` field with `doc_values` disabled +<2> The `count` field is mapped as a `long` field with `doc_values` disabled. [[template-examples]] ==== Template examples From b5f05f676cfd0c6576f4ea19ab61729e0a38e6b5 Mon Sep 17 00:00:00 2001 From: Tanguy Leroux Date: Thu, 7 Jun 2018 10:48:31 +0200 Subject: [PATCH 16/62] Remove BlobContainer.move() method (#31100) closes #30680 --- .../blobstore/url/URLBlobContainer.java | 5 - .../azure/AzureStorageTestServer.java | 36 +------ .../azure/AzureBlobContainer.java | 16 ---- .../repositories/azure/AzureBlobStore.java | 16 +--- .../azure/AzureStorageService.java | 3 - .../azure/AzureStorageServiceImpl.java | 18 ---- .../azure/AzureStorageServiceMock.java | 37 +------- .../gcs/GoogleCloudStorageTestServer.java | 65 ------------- .../gcs/GoogleCloudStorageBlobContainer.java | 6 -- .../gcs/GoogleCloudStorageBlobStore.java | 24 ----- .../cloud/storage/StorageRpcOptionUtils.java | 11 --- .../repositories/gcs/MockStorage.java | 24 +---- .../repositories/hdfs/HdfsBlobContainer.java | 12 --- .../repositories/s3/AmazonS3TestServer.java | 94 +++++-------------- .../repositories/s3/S3BlobContainer.java | 23 ----- .../repositories/s3/MockAmazonS3.java | 20 ---- .../common/blobstore/BlobContainer.java | 16 ---- .../common/blobstore/fs/FsBlobContainer.java | 33 +++---- .../SharedClusterSnapshotRestoreIT.java | 2 +- .../mockstore/BlobContainerWrapper.java | 5 - .../snapshots/mockstore/MockRepository.java | 26 +---- .../ESBlobStoreContainerTestCase.java | 12 +-- 22 files changed, 56 insertions(+), 448 deletions(-) diff --git a/modules/repository-url/src/main/java/org/elasticsearch/common/blobstore/url/URLBlobContainer.java b/modules/repository-url/src/main/java/org/elasticsearch/common/blobstore/url/URLBlobContainer.java index 04be1d0a751..fb20b73b61c 100644 --- a/modules/repository-url/src/main/java/org/elasticsearch/common/blobstore/url/URLBlobContainer.java +++ b/modules/repository-url/src/main/java/org/elasticsearch/common/blobstore/url/URLBlobContainer.java @@ -82,11 +82,6 @@ public class URLBlobContainer extends AbstractBlobContainer { throw new UnsupportedOperationException("URL repository doesn't support this operation"); } - @Override - public void move(String from, String to) throws IOException { - throw new UnsupportedOperationException("URL repository doesn't support this operation"); - } - /** * This operation is not supported by URLBlobContainer */ diff --git a/plugins/repository-azure/qa/microsoft-azure-storage/src/test/java/org/elasticsearch/repositories/azure/AzureStorageTestServer.java b/plugins/repository-azure/qa/microsoft-azure-storage/src/test/java/org/elasticsearch/repositories/azure/AzureStorageTestServer.java index 584428f9a45..b1450b79fab 100644 --- a/plugins/repository-azure/qa/microsoft-azure-storage/src/test/java/org/elasticsearch/repositories/azure/AzureStorageTestServer.java +++ b/plugins/repository-azure/qa/microsoft-azure-storage/src/test/java/org/elasticsearch/repositories/azure/AzureStorageTestServer.java @@ -33,7 +33,6 @@ import java.util.Objects; import java.util.concurrent.atomic.AtomicLong; import static java.nio.charset.StandardCharsets.UTF_8; -import static java.util.Collections.emptyList; import static java.util.Collections.emptyMap; import static java.util.Collections.singletonMap; @@ -159,44 +158,13 @@ public class AzureStorageTestServer { objectsPaths("PUT " + endpoint + "/{container}").forEach(path -> handlers.insert(path, (params, headers, body, requestId) -> { final String destContainerName = params.get("container"); + final String destBlobName = objectName(params); final Container destContainer =containers.get(destContainerName); if (destContainer == null) { return newContainerNotFoundError(requestId); } - - final String destBlobName = objectName(params); - - // Request is a copy request - List headerCopySource = headers.getOrDefault("x-ms-copy-source", emptyList()); - if (headerCopySource.isEmpty() == false) { - String srcBlobName = headerCopySource.get(0); - - Container srcContainer = null; - for (Container container : containers.values()) { - String prefix = endpoint + "/" + container.name + "/"; - if (srcBlobName.startsWith(prefix)) { - srcBlobName = srcBlobName.replaceFirst(prefix, ""); - srcContainer = container; - break; - } - } - - if (srcContainer == null || srcContainer.objects.containsKey(srcBlobName) == false) { - return newBlobNotFoundError(requestId); - } - - byte[] bytes = srcContainer.objects.get(srcBlobName); - if (bytes != null) { - destContainer.objects.put(destBlobName, bytes); - return new Response(RestStatus.ACCEPTED, singletonMap("x-ms-copy-status", "success"), "text/plain", EMPTY_BYTE); - } else { - return newBlobNotFoundError(requestId); - } - } else { - destContainer.objects.put(destBlobName, body); - } - + destContainer.objects.put(destBlobName, body); return new Response(RestStatus.CREATED, emptyMap(), "text/plain", EMPTY_BYTE); }) ); diff --git a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureBlobContainer.java b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureBlobContainer.java index 8f7671697db..dd85bfc2181 100644 --- a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureBlobContainer.java +++ b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureBlobContainer.java @@ -127,22 +127,6 @@ public class AzureBlobContainer extends AbstractBlobContainer { } } - @Override - public void move(String sourceBlobName, String targetBlobName) throws IOException { - logger.trace("move({}, {})", sourceBlobName, targetBlobName); - try { - String source = keyPath + sourceBlobName; - String target = keyPath + targetBlobName; - - logger.debug("moving blob [{}] to [{}] in container {{}}", source, target, blobStore); - - blobStore.moveBlob(source, target); - } catch (URISyntaxException | StorageException e) { - logger.warn("can not move blob [{}] to [{}] in container {{}}: {}", sourceBlobName, targetBlobName, blobStore, e.getMessage()); - throw new IOException(e); - } - } - @Override public Map listBlobs() throws IOException { logger.trace("listBlobs()"); diff --git a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureBlobStore.java b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureBlobStore.java index 7e8987ae945..fede20bfb76 100644 --- a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureBlobStore.java +++ b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureBlobStore.java @@ -97,31 +97,23 @@ public class AzureBlobStore extends AbstractComponent implements BlobStore { return this.client.doesContainerExist(this.clientName, this.locMode, container); } - public boolean blobExists(String blob) throws URISyntaxException, StorageException - { + public boolean blobExists(String blob) throws URISyntaxException, StorageException { return this.client.blobExists(this.clientName, this.locMode, container, blob); } - public void deleteBlob(String blob) throws URISyntaxException, StorageException - { + public void deleteBlob(String blob) throws URISyntaxException, StorageException { this.client.deleteBlob(this.clientName, this.locMode, container, blob); } - public InputStream getInputStream(String blob) throws URISyntaxException, StorageException, IOException - { + public InputStream getInputStream(String blob) throws URISyntaxException, StorageException, IOException { return this.client.getInputStream(this.clientName, this.locMode, container, blob); } - public Map listBlobsByPrefix(String keyPath, String prefix) + public Map listBlobsByPrefix(String keyPath, String prefix) throws URISyntaxException, StorageException { return this.client.listBlobsByPrefix(this.clientName, this.locMode, container, keyPath, prefix); } - public void moveBlob(String sourceBlob, String targetBlob) throws URISyntaxException, StorageException - { - this.client.moveBlob(this.clientName, this.locMode, container, sourceBlob, targetBlob); - } - public void writeBlob(String blobName, InputStream inputStream, long blobSize) throws URISyntaxException, StorageException { this.client.writeBlob(this.clientName, this.locMode, container, blobName, inputStream, blobSize); } diff --git a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureStorageService.java b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureStorageService.java index 3337c07e6ee..8cd3835e3e6 100644 --- a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureStorageService.java +++ b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureStorageService.java @@ -57,9 +57,6 @@ public interface AzureStorageService { Map listBlobsByPrefix(String account, LocationMode mode, String container, String keyPath, String prefix) throws URISyntaxException, StorageException; - void moveBlob(String account, LocationMode mode, String container, String sourceBlob, String targetBlob) - throws URISyntaxException, StorageException; - void writeBlob(String account, LocationMode mode, String container, String blobName, InputStream inputStream, long blobSize) throws URISyntaxException, StorageException; diff --git a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureStorageServiceImpl.java b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureStorageServiceImpl.java index 6f4f8cfea96..339aec43c25 100644 --- a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureStorageServiceImpl.java +++ b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureStorageServiceImpl.java @@ -287,24 +287,6 @@ public class AzureStorageServiceImpl extends AbstractComponent implements AzureS return blobsBuilder.immutableMap(); } - @Override - public void moveBlob(String account, LocationMode mode, String container, String sourceBlob, String targetBlob) - throws URISyntaxException, StorageException { - logger.debug("moveBlob container [{}], sourceBlob [{}], targetBlob [{}]", container, sourceBlob, targetBlob); - - CloudBlobClient client = this.getSelectedClient(account, mode); - CloudBlobContainer blobContainer = client.getContainerReference(container); - CloudBlockBlob blobSource = blobContainer.getBlockBlobReference(sourceBlob); - if (SocketAccess.doPrivilegedException(() -> blobSource.exists(null, null, generateOperationContext(account)))) { - CloudBlockBlob blobTarget = blobContainer.getBlockBlobReference(targetBlob); - SocketAccess.doPrivilegedVoidException(() -> { - blobTarget.startCopy(blobSource, null, null, null, generateOperationContext(account)); - blobSource.delete(DeleteSnapshotsOption.NONE, null, null, generateOperationContext(account)); - }); - logger.debug("moveBlob container [{}], sourceBlob [{}], targetBlob [{}] -> done", container, sourceBlob, targetBlob); - } - } - @Override public void writeBlob(String account, LocationMode mode, String container, String blobName, InputStream inputStream, long blobSize) throws URISyntaxException, StorageException { diff --git a/plugins/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureStorageServiceMock.java b/plugins/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureStorageServiceMock.java index 80035d8f788..0e0f73446ba 100644 --- a/plugins/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureStorageServiceMock.java +++ b/plugins/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureStorageServiceMock.java @@ -106,18 +106,6 @@ public class AzureStorageServiceMock extends AbstractComponent implements AzureS return blobsBuilder.immutableMap(); } - @Override - public void moveBlob(String account, LocationMode mode, String container, String sourceBlob, String targetBlob) - throws URISyntaxException, StorageException { - for (String blobName : blobs.keySet()) { - if (endsWithIgnoreCase(blobName, sourceBlob)) { - ByteArrayOutputStream outputStream = blobs.get(blobName); - blobs.put(blobName.replace(sourceBlob, targetBlob), outputStream); - blobs.remove(blobName); - } - } - } - @Override public void writeBlob(String account, LocationMode mode, String container, String blobName, InputStream inputStream, long blobSize) throws URISyntaxException, StorageException { @@ -137,7 +125,7 @@ public class AzureStorageServiceMock extends AbstractComponent implements AzureS * @param prefix the prefix to look for * @see java.lang.String#startsWith */ - public static boolean startsWithIgnoreCase(String str, String prefix) { + private static boolean startsWithIgnoreCase(String str, String prefix) { if (str == null || prefix == null) { return false; } @@ -152,29 +140,6 @@ public class AzureStorageServiceMock extends AbstractComponent implements AzureS return lcStr.equals(lcPrefix); } - /** - * Test if the given String ends with the specified suffix, - * ignoring upper/lower case. - * - * @param str the String to check - * @param suffix the suffix to look for - * @see java.lang.String#startsWith - */ - public static boolean endsWithIgnoreCase(String str, String suffix) { - if (str == null || suffix == null) { - return false; - } - if (str.endsWith(suffix)) { - return true; - } - if (str.length() < suffix.length()) { - return false; - } - String lcStr = str.substring(0, suffix.length()).toLowerCase(Locale.ROOT); - String lcPrefix = suffix.toLowerCase(Locale.ROOT); - return lcStr.equals(lcPrefix); - } - private static class PermissionRequiringInputStream extends ByteArrayInputStream { private PermissionRequiringInputStream(byte[] buf) { diff --git a/plugins/repository-gcs/qa/google-cloud-storage/src/test/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageTestServer.java b/plugins/repository-gcs/qa/google-cloud-storage/src/test/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageTestServer.java index a9832ae318d..fd09b46c73f 100644 --- a/plugins/repository-gcs/qa/google-cloud-storage/src/test/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageTestServer.java +++ b/plugins/repository-gcs/qa/google-cloud-storage/src/test/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageTestServer.java @@ -367,47 +367,6 @@ public class GoogleCloudStorageTestServer { return newResponse(RestStatus.OK, emptyMap(), buildObjectResource(bucket.name, objectId, body)); }); - // Rewrite or Copy Object - // - // https://cloud.google.com/storage/docs/json_api/v1/objects/rewrite - // https://cloud.google.com/storage/docs/json_api/v1/objects/copy - handlers.insert("POST " + endpoint + "/storage/v1/b/{srcBucket}/o/{src}/{action}/b/{destBucket}/o/{dest}", - (params, headers, body) -> { - final String action = params.get("action"); - if ((action.equals("rewriteTo") == false) && (action.equals("copyTo") == false)) { - return newError(RestStatus.INTERNAL_SERVER_ERROR, "Action not implemented. None of \"rewriteTo\" or \"copyTo\"."); - } - final String source = params.get("src"); - if (Strings.hasText(source) == false) { - return newError(RestStatus.INTERNAL_SERVER_ERROR, "source object name is missing"); - } - final Bucket srcBucket = buckets.get(params.get("srcBucket")); - if (srcBucket == null) { - return newError(RestStatus.NOT_FOUND, "source bucket not found"); - } - final String dest = params.get("dest"); - if (Strings.hasText(dest) == false) { - return newError(RestStatus.INTERNAL_SERVER_ERROR, "destination object name is missing"); - } - final Bucket destBucket = buckets.get(params.get("destBucket")); - if (destBucket == null) { - return newError(RestStatus.NOT_FOUND, "destination bucket not found"); - } - final byte[] sourceBytes = srcBucket.objects.get(source); - if (sourceBytes == null) { - return newError(RestStatus.NOT_FOUND, "source object not found"); - } - destBucket.objects.put(dest, sourceBytes); - if (action.equals("rewriteTo")) { - final XContentBuilder respBuilder = jsonBuilder(); - buildRewriteResponse(respBuilder, destBucket.name, dest, sourceBytes.length); - return newResponse(RestStatus.OK, emptyMap(), respBuilder); - } else { - assert action.equals("copyTo"); - return newResponse(RestStatus.OK, emptyMap(), buildObjectResource(destBucket.name, dest, sourceBytes)); - } - }); - // List Objects // // https://cloud.google.com/storage/docs/json_api/v1/objects/list @@ -701,28 +660,4 @@ public class GoogleCloudStorageTestServer { .field("size", String.valueOf(bytes.length)) .endObject(); } - - /** - * Builds the rewrite response as defined by - * https://cloud.google.com/storage/docs/json_api/v1/objects/rewrite - */ - private static XContentBuilder buildRewriteResponse(final XContentBuilder builder, - final String destBucket, - final String dest, - final int byteSize) throws IOException { - builder.startObject() - .field("kind", "storage#rewriteResponse") - .field("totalBytesRewritten", String.valueOf(byteSize)) - .field("objectSize", String.valueOf(byteSize)) - .field("done", true) - .startObject("resource") - .field("kind", "storage#object") - .field("id", String.join("/", destBucket, dest)) - .field("name", dest) - .field("bucket", destBucket) - .field("size", String.valueOf(byteSize)) - .endObject() - .endObject(); - return builder; - } } diff --git a/plugins/repository-gcs/src/main/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageBlobContainer.java b/plugins/repository-gcs/src/main/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageBlobContainer.java index 83353990510..54bbd316f76 100644 --- a/plugins/repository-gcs/src/main/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageBlobContainer.java +++ b/plugins/repository-gcs/src/main/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageBlobContainer.java @@ -26,7 +26,6 @@ import org.elasticsearch.common.blobstore.support.AbstractBlobContainer; import java.io.IOException; import java.io.InputStream; -import java.nio.file.FileAlreadyExistsException; import java.util.Map; class GoogleCloudStorageBlobContainer extends AbstractBlobContainer { @@ -74,11 +73,6 @@ class GoogleCloudStorageBlobContainer extends AbstractBlobContainer { blobStore.deleteBlob(buildKey(blobName)); } - @Override - public void move(String sourceBlobName, String targetBlobName) throws IOException { - blobStore.moveBlob(buildKey(sourceBlobName), buildKey(targetBlobName)); - } - protected String buildKey(String blobName) { assert blobName != null; return path + blobName; diff --git a/plugins/repository-gcs/src/main/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageBlobStore.java b/plugins/repository-gcs/src/main/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageBlobStore.java index 83aafdde2b1..78fd9461ad5 100644 --- a/plugins/repository-gcs/src/main/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageBlobStore.java +++ b/plugins/repository-gcs/src/main/java/org/elasticsearch/repositories/gcs/GoogleCloudStorageBlobStore.java @@ -27,7 +27,6 @@ import com.google.cloud.storage.BlobInfo; import com.google.cloud.storage.Bucket; import com.google.cloud.storage.Storage; import com.google.cloud.storage.Storage.BlobListOption; -import com.google.cloud.storage.Storage.CopyRequest; import com.google.cloud.storage.StorageException; import org.elasticsearch.common.SuppressForbidden; import org.elasticsearch.common.blobstore.BlobContainer; @@ -314,29 +313,6 @@ class GoogleCloudStorageBlobStore extends AbstractComponent implements BlobStore } } - /** - * Moves a blob within the same bucket - * - * @param sourceBlobName name of the blob to move - * @param targetBlobName new name of the blob in the same bucket - */ - void moveBlob(String sourceBlobName, String targetBlobName) throws IOException { - final BlobId sourceBlobId = BlobId.of(bucket, sourceBlobName); - final BlobId targetBlobId = BlobId.of(bucket, targetBlobName); - final CopyRequest request = CopyRequest.newBuilder() - .setSource(sourceBlobId) - .setTarget(targetBlobId) - .build(); - SocketAccess.doPrivilegedVoidIOException(() -> { - // There's no atomic "move" in GCS so we need to copy and delete - storage.copy(request).getResult(); - final boolean deleted = storage.delete(sourceBlobId); - if (deleted == false) { - throw new IOException("Failed to move source [" + sourceBlobName + "] to target [" + targetBlobName + "]"); - } - }); - } - private static String buildKey(String keyPath, String s) { assert s != null; return keyPath + s; diff --git a/plugins/repository-gcs/src/test/java/com/google/cloud/storage/StorageRpcOptionUtils.java b/plugins/repository-gcs/src/test/java/com/google/cloud/storage/StorageRpcOptionUtils.java index f2b8a0571ad..a08ae2f9f8a 100644 --- a/plugins/repository-gcs/src/test/java/com/google/cloud/storage/StorageRpcOptionUtils.java +++ b/plugins/repository-gcs/src/test/java/com/google/cloud/storage/StorageRpcOptionUtils.java @@ -21,8 +21,6 @@ package com.google.cloud.storage; import com.google.cloud.storage.spi.v1.StorageRpc; -import static org.mockito.Mockito.mock; - /** * Utility class that exposed Google SDK package protected methods to * create specific StorageRpc objects in unit tests. @@ -42,13 +40,4 @@ public class StorageRpcOptionUtils { } return null; } - - public static CopyWriter createCopyWriter(final Blob result) { - return new CopyWriter(mock(StorageOptions.class), mock(StorageRpc.RewriteResponse.class)) { - @Override - public Blob getResult() { - return result; - } - }; - } } diff --git a/plugins/repository-gcs/src/test/java/org/elasticsearch/repositories/gcs/MockStorage.java b/plugins/repository-gcs/src/test/java/org/elasticsearch/repositories/gcs/MockStorage.java index 1b31b3018e4..605d1798ee8 100644 --- a/plugins/repository-gcs/src/test/java/org/elasticsearch/repositories/gcs/MockStorage.java +++ b/plugins/repository-gcs/src/test/java/org/elasticsearch/repositories/gcs/MockStorage.java @@ -38,7 +38,6 @@ import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; import com.google.cloud.storage.StorageRpcOptionUtils; import com.google.cloud.storage.StorageTestUtils; - import org.elasticsearch.core.internal.io.IOUtils; import java.io.ByteArrayInputStream; @@ -125,24 +124,6 @@ class MockStorage implements Storage { return get(BlobId.of(blobInfo.getBucket(), blobInfo.getName())); } - @Override - public CopyWriter copy(CopyRequest copyRequest) { - if (bucketName.equals(copyRequest.getSource().getBucket()) == false) { - throw new StorageException(404, "Source bucket not found"); - } - if (bucketName.equals(copyRequest.getTarget().getBucket()) == false) { - throw new StorageException(404, "Target bucket not found"); - } - - final byte[] bytes = blobs.get(copyRequest.getSource().getName()); - if (bytes == null) { - throw new StorageException(404, "Source blob does not exist"); - } - blobs.put(copyRequest.getTarget().getName(), bytes); - return StorageRpcOptionUtils - .createCopyWriter(get(BlobId.of(copyRequest.getTarget().getBucket(), copyRequest.getTarget().getName()))); - } - @Override public Page list(String bucket, BlobListOption... options) { if (bucketName.equals(bucket) == false) { @@ -269,6 +250,11 @@ class MockStorage implements Storage { // Everything below this line is not implemented. + @Override + public CopyWriter copy(CopyRequest copyRequest) { + return null; + } + @Override public Bucket create(BucketInfo bucketInfo, BucketTargetOption... options) { return null; diff --git a/plugins/repository-hdfs/src/main/java/org/elasticsearch/repositories/hdfs/HdfsBlobContainer.java b/plugins/repository-hdfs/src/main/java/org/elasticsearch/repositories/hdfs/HdfsBlobContainer.java index 1052dc9ded9..23557ae6cf8 100644 --- a/plugins/repository-hdfs/src/main/java/org/elasticsearch/repositories/hdfs/HdfsBlobContainer.java +++ b/plugins/repository-hdfs/src/main/java/org/elasticsearch/repositories/hdfs/HdfsBlobContainer.java @@ -23,7 +23,6 @@ import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.Options.CreateOpts; import org.apache.hadoop.fs.Path; -import org.elasticsearch.SpecialPermission; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.blobstore.BlobMetaData; import org.elasticsearch.common.blobstore.BlobPath; @@ -37,9 +36,6 @@ import java.io.IOException; import java.io.InputStream; import java.nio.file.FileAlreadyExistsException; import java.nio.file.NoSuchFileException; -import java.security.AccessController; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; import java.util.Collections; import java.util.EnumSet; import java.util.LinkedHashMap; @@ -79,14 +75,6 @@ final class HdfsBlobContainer extends AbstractBlobContainer { } } - @Override - public void move(String sourceBlobName, String targetBlobName) throws IOException { - store.execute((Operation) fileContext -> { - fileContext.rename(new Path(path, sourceBlobName), new Path(path, targetBlobName)); - return null; - }); - } - @Override public InputStream readBlob(String blobName) throws IOException { // FSDataInputStream does buffering internally diff --git a/plugins/repository-s3/qa/amazon-s3/src/test/java/org/elasticsearch/repositories/s3/AmazonS3TestServer.java b/plugins/repository-s3/qa/amazon-s3/src/test/java/org/elasticsearch/repositories/s3/AmazonS3TestServer.java index a3ea287b7f8..029b28320d2 100644 --- a/plugins/repository-s3/qa/amazon-s3/src/test/java/org/elasticsearch/repositories/s3/AmazonS3TestServer.java +++ b/plugins/repository-s3/qa/amazon-s3/src/test/java/org/elasticsearch/repositories/s3/AmazonS3TestServer.java @@ -162,10 +162,9 @@ public class AmazonS3TestServer { }) ); - // PUT Object & PUT Object Copy + // PUT Object // // https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html - // https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html objectsPaths("PUT " + endpoint + "/{bucket}").forEach(path -> handlers.insert(path, (params, headers, body, id) -> { final String destBucketName = params.get("bucket"); @@ -177,65 +176,38 @@ public class AmazonS3TestServer { final String destObjectName = objectName(params); - // Request is a copy request - List headerCopySource = headers.getOrDefault("x-amz-copy-source", emptyList()); - if (headerCopySource.isEmpty() == false) { - String srcObjectName = headerCopySource.get(0); + // This is a chunked upload request. We should have the header "Content-Encoding : aws-chunked,gzip" + // to detect it but it seems that the AWS SDK does not follow the S3 guidelines here. + // + // See https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-streaming.html + // + List headerDecodedContentLength = headers.getOrDefault("X-amz-decoded-content-length", emptyList()); + if (headerDecodedContentLength.size() == 1) { + int contentLength = Integer.valueOf(headerDecodedContentLength.get(0)); - Bucket srcBucket = null; - for (Bucket bucket : buckets.values()) { - String prefix = "/" + bucket.name + "/"; - if (srcObjectName.startsWith(prefix)) { - srcObjectName = srcObjectName.replaceFirst(prefix, ""); - srcBucket = bucket; - break; - } - } - - if (srcBucket == null || srcBucket.objects.containsKey(srcObjectName) == false) { - return newObjectNotFoundError(id, srcObjectName); - } - - byte[] bytes = srcBucket.objects.get(srcObjectName); - if (bytes != null) { - destBucket.objects.put(destObjectName, bytes); - return newCopyResultResponse(id); - } else { - return newObjectNotFoundError(id, srcObjectName); - } - } else { - // This is a chunked upload request. We should have the header "Content-Encoding : aws-chunked,gzip" - // to detect it but it seems that the AWS SDK does not follow the S3 guidelines here. + // Chunked requests have a payload like this: // - // See https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-streaming.html + // 105;chunk-signature=01d0de6be013115a7f4794db8c4b9414e6ec71262cc33ae562a71f2eaed1efe8 + // ... bytes of data .... + // 0;chunk-signature=f890420b1974c5469aaf2112e9e6f2e0334929fd45909e03c0eff7a84124f6a4 // - List headerDecodedContentLength = headers.getOrDefault("X-amz-decoded-content-length", emptyList()); - if (headerDecodedContentLength.size() == 1) { - int contentLength = Integer.valueOf(headerDecodedContentLength.get(0)); - - // Chunked requests have a payload like this: - // - // 105;chunk-signature=01d0de6be013115a7f4794db8c4b9414e6ec71262cc33ae562a71f2eaed1efe8 - // ... bytes of data .... - // 0;chunk-signature=f890420b1974c5469aaf2112e9e6f2e0334929fd45909e03c0eff7a84124f6a4 - // - try (BufferedInputStream inputStream = new BufferedInputStream(new ByteArrayInputStream(body))) { - int b; - // Moves to the end of the first signature line - while ((b = inputStream.read()) != -1) { - if (b == '\n') { - break; - } + try (BufferedInputStream inputStream = new BufferedInputStream(new ByteArrayInputStream(body))) { + int b; + // Moves to the end of the first signature line + while ((b = inputStream.read()) != -1) { + if (b == '\n') { + break; } - - final byte[] bytes = new byte[contentLength]; - inputStream.read(bytes, 0, contentLength); - - destBucket.objects.put(destObjectName, bytes); - return new Response(RestStatus.OK, emptyMap(), "text/plain", EMPTY_BYTE); } + + final byte[] bytes = new byte[contentLength]; + inputStream.read(bytes, 0, contentLength); + + destBucket.objects.put(destObjectName, bytes); + return new Response(RestStatus.OK, emptyMap(), "text/plain", EMPTY_BYTE); } } + return newInternalError(id, "Something is wrong with this PUT request"); }) ); @@ -466,20 +438,6 @@ public class AmazonS3TestServer { return new Response(RestStatus.OK, singletonMap("x-amz-request-id", id), "application/xml", response.toString().getBytes(UTF_8)); } - /** - * S3 Copy Result Response - */ - private static Response newCopyResultResponse(final long requestId) { - final String id = Long.toString(requestId); - final StringBuilder response = new StringBuilder(); - response.append(""); - response.append(""); - response.append("").append(DateUtils.formatISO8601Date(new Date())).append(""); - response.append("").append(requestId).append(""); - response.append(""); - return new Response(RestStatus.OK, singletonMap("x-amz-request-id", id), "application/xml", response.toString().getBytes(UTF_8)); - } - /** * S3 DeleteResult Response */ diff --git a/plugins/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3BlobContainer.java b/plugins/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3BlobContainer.java index 92050e34a5a..173609b7cfe 100644 --- a/plugins/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3BlobContainer.java +++ b/plugins/repository-s3/src/main/java/org/elasticsearch/repositories/s3/S3BlobContainer.java @@ -24,7 +24,6 @@ import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.model.AbortMultipartUploadRequest; import com.amazonaws.services.s3.model.AmazonS3Exception; import com.amazonaws.services.s3.model.CompleteMultipartUploadRequest; -import com.amazonaws.services.s3.model.CopyObjectRequest; import com.amazonaws.services.s3.model.InitiateMultipartUploadRequest; import com.amazonaws.services.s3.model.ObjectListing; import com.amazonaws.services.s3.model.ObjectMetadata; @@ -152,28 +151,6 @@ class S3BlobContainer extends AbstractBlobContainer { }); } - @Override - public void move(String sourceBlobName, String targetBlobName) throws IOException { - try { - CopyObjectRequest request = new CopyObjectRequest(blobStore.bucket(), buildKey(sourceBlobName), - blobStore.bucket(), buildKey(targetBlobName)); - - if (blobStore.serverSideEncryption()) { - ObjectMetadata objectMetadata = new ObjectMetadata(); - objectMetadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION); - request.setNewObjectMetadata(objectMetadata); - } - - SocketAccess.doPrivilegedVoid(() -> { - blobStore.client().copyObject(request); - blobStore.client().deleteObject(blobStore.bucket(), buildKey(sourceBlobName)); - }); - - } catch (AmazonS3Exception e) { - throw new IOException(e); - } - } - @Override public Map listBlobs() throws IOException { return listBlobsByPrefix(null); diff --git a/plugins/repository-s3/src/test/java/org/elasticsearch/repositories/s3/MockAmazonS3.java b/plugins/repository-s3/src/test/java/org/elasticsearch/repositories/s3/MockAmazonS3.java index caa1c0b467e..33d5d5fbc20 100644 --- a/plugins/repository-s3/src/test/java/org/elasticsearch/repositories/s3/MockAmazonS3.java +++ b/plugins/repository-s3/src/test/java/org/elasticsearch/repositories/s3/MockAmazonS3.java @@ -23,8 +23,6 @@ import com.amazonaws.AmazonClientException; import com.amazonaws.SdkClientException; import com.amazonaws.services.s3.AbstractAmazonS3; import com.amazonaws.services.s3.model.AmazonS3Exception; -import com.amazonaws.services.s3.model.CopyObjectRequest; -import com.amazonaws.services.s3.model.CopyObjectResult; import com.amazonaws.services.s3.model.DeleteObjectRequest; import com.amazonaws.services.s3.model.DeleteObjectsRequest; import com.amazonaws.services.s3.model.DeleteObjectsResult; @@ -148,24 +146,6 @@ class MockAmazonS3 extends AbstractAmazonS3 { return listing; } - @Override - public CopyObjectResult copyObject(final CopyObjectRequest request) throws AmazonClientException { - assertThat(request.getSourceBucketName(), equalTo(bucket)); - assertThat(request.getDestinationBucketName(), equalTo(bucket)); - - final String sourceBlobName = request.getSourceKey(); - - final byte[] content = blobs.get(sourceBlobName); - if (content == null) { - AmazonS3Exception exception = new AmazonS3Exception("[" + sourceBlobName + "] does not exist."); - exception.setStatusCode(404); - throw exception; - } - - blobs.put(request.getDestinationKey(), content); - return new CopyObjectResult(); - } - @Override public void deleteObject(final DeleteObjectRequest request) throws AmazonClientException { assertThat(request.getBucketName(), equalTo(bucket)); diff --git a/server/src/main/java/org/elasticsearch/common/blobstore/BlobContainer.java b/server/src/main/java/org/elasticsearch/common/blobstore/BlobContainer.java index 7e3a385443f..db185f1e8c1 100644 --- a/server/src/main/java/org/elasticsearch/common/blobstore/BlobContainer.java +++ b/server/src/main/java/org/elasticsearch/common/blobstore/BlobContainer.java @@ -142,20 +142,4 @@ public interface BlobContainer { * @throws IOException if there were any failures in reading from the blob container. */ Map listBlobsByPrefix(String blobNamePrefix) throws IOException; - - /** - * Renames the source blob into the target blob. If the source blob does not exist or the - * target blob already exists, an exception is thrown. Atomicity of the move operation - * can only be guaranteed on an implementation-by-implementation basis. The only current - * implementation of {@link BlobContainer} for which atomicity can be guaranteed is the - * {@link org.elasticsearch.common.blobstore.fs.FsBlobContainer}. - * - * @param sourceBlobName - * The blob to rename. - * @param targetBlobName - * The name of the blob after the renaming. - * @throws IOException if the source blob does not exist, the target blob already exists, - * or there were any failures in reading from the blob container. - */ - void move(String sourceBlobName, String targetBlobName) throws IOException; } diff --git a/server/src/main/java/org/elasticsearch/common/blobstore/fs/FsBlobContainer.java b/server/src/main/java/org/elasticsearch/common/blobstore/fs/FsBlobContainer.java index 6f1df0011b1..a58802ecd18 100644 --- a/server/src/main/java/org/elasticsearch/common/blobstore/fs/FsBlobContainer.java +++ b/server/src/main/java/org/elasticsearch/common/blobstore/fs/FsBlobContainer.java @@ -142,14 +142,7 @@ public class FsBlobContainer extends AbstractBlobContainer { Streams.copy(inputStream, outputStream); } IOUtils.fsync(tempBlobPath, false); - - final Path blobPath = path.resolve(blobName); - // If the target file exists then Files.move() behaviour is implementation specific - // the existing file might be replaced or this method fails by throwing an IOException. - if (Files.exists(blobPath)) { - throw new FileAlreadyExistsException("blob [" + blobPath + "] already exists, cannot overwrite"); - } - Files.move(tempBlobPath, blobPath, StandardCopyOption.ATOMIC_MOVE); + moveBlobAtomic(tempBlob, blobName); } catch (IOException ex) { try { deleteBlobIgnoringIfNotExists(tempBlob); @@ -162,6 +155,17 @@ public class FsBlobContainer extends AbstractBlobContainer { } } + public void moveBlobAtomic(final String sourceBlobName, final String targetBlobName) throws IOException { + final Path sourceBlobPath = path.resolve(sourceBlobName); + final Path targetBlobPath = path.resolve(targetBlobName); + // If the target file exists then Files.move() behaviour is implementation specific + // the existing file might be replaced or this method fails by throwing an IOException. + if (Files.exists(targetBlobPath)) { + throw new FileAlreadyExistsException("blob [" + targetBlobPath + "] already exists, cannot overwrite"); + } + Files.move(sourceBlobPath, targetBlobPath, StandardCopyOption.ATOMIC_MOVE); + } + public static String tempBlobName(final String blobName) { return "pending-" + blobName + "-" + UUIDs.randomBase64UUID(); } @@ -174,17 +178,4 @@ public class FsBlobContainer extends AbstractBlobContainer { public static boolean isTempBlobName(final String blobName) { return blobName.startsWith(TEMP_FILE_PREFIX); } - - @Override - public void move(String source, String target) throws IOException { - Path sourcePath = path.resolve(source); - Path targetPath = path.resolve(target); - // If the target file exists then Files.move() behaviour is implementation specific - // the existing file might be replaced or this method fails by throwing an IOException. - if (Files.exists(targetPath)) { - throw new FileAlreadyExistsException("blob [" + targetPath + "] already exists, cannot overwrite"); - } - Files.move(sourcePath, targetPath, StandardCopyOption.ATOMIC_MOVE); - IOUtils.fsync(path, true); - } } diff --git a/server/src/test/java/org/elasticsearch/snapshots/SharedClusterSnapshotRestoreIT.java b/server/src/test/java/org/elasticsearch/snapshots/SharedClusterSnapshotRestoreIT.java index d761a5ef492..7e5f9dbb820 100644 --- a/server/src/test/java/org/elasticsearch/snapshots/SharedClusterSnapshotRestoreIT.java +++ b/server/src/test/java/org/elasticsearch/snapshots/SharedClusterSnapshotRestoreIT.java @@ -3103,7 +3103,7 @@ public class SharedClusterSnapshotRestoreIT extends AbstractSnapshotIntegTestCas .put("location", repoPath) .put("random_control_io_exception_rate", randomIntBetween(5, 20) / 100f) // test that we can take a snapshot after a failed one, even if a partial index-N was written - .put("atomic_move", false) + .put("allow_atomic_operations", false) .put("random", randomAlphaOfLength(10)))); logger.info("--> indexing some data"); diff --git a/server/src/test/java/org/elasticsearch/snapshots/mockstore/BlobContainerWrapper.java b/server/src/test/java/org/elasticsearch/snapshots/mockstore/BlobContainerWrapper.java index 089955d140f..b5c63397241 100644 --- a/server/src/test/java/org/elasticsearch/snapshots/mockstore/BlobContainerWrapper.java +++ b/server/src/test/java/org/elasticsearch/snapshots/mockstore/BlobContainerWrapper.java @@ -77,9 +77,4 @@ public class BlobContainerWrapper implements BlobContainer { public Map listBlobsByPrefix(String blobNamePrefix) throws IOException { return delegate.listBlobsByPrefix(blobNamePrefix); } - - @Override - public void move(String sourceBlobName, String targetBlobName) throws IOException { - delegate.move(sourceBlobName, targetBlobName); - } } diff --git a/server/src/test/java/org/elasticsearch/snapshots/mockstore/MockRepository.java b/server/src/test/java/org/elasticsearch/snapshots/mockstore/MockRepository.java index 5fa884adbfe..d0702acf103 100644 --- a/server/src/test/java/org/elasticsearch/snapshots/mockstore/MockRepository.java +++ b/server/src/test/java/org/elasticsearch/snapshots/mockstore/MockRepository.java @@ -109,7 +109,7 @@ public class MockRepository extends FsRepository { /** Allows blocking on writing the snapshot file at the end of snapshot creation to simulate a died master node */ private volatile boolean blockAndFailOnWriteSnapFile; - private volatile boolean atomicMove; + private volatile boolean allowAtomicOperations; private volatile boolean blocked = false; @@ -126,7 +126,7 @@ public class MockRepository extends FsRepository { blockAndFailOnWriteSnapFile = metadata.settings().getAsBoolean("block_on_snap", false); randomPrefix = metadata.settings().get("random", "default"); waitAfterUnblock = metadata.settings().getAsLong("wait_after_unblock", 0L); - atomicMove = metadata.settings().getAsBoolean("atomic_move", true); + allowAtomicOperations = metadata.settings().getAsBoolean("allow_atomic_operations", true); logger.info("starting mock repository with random prefix {}", randomPrefix); mockBlobStore = new MockBlobStore(super.blobStore()); } @@ -345,24 +345,6 @@ public class MockRepository extends FsRepository { return super.listBlobsByPrefix(blobNamePrefix); } - @Override - public void move(String sourceBlob, String targetBlob) throws IOException { - if (blockOnWriteIndexFile && targetBlob.startsWith("index-")) { - blockExecutionAndMaybeWait(targetBlob); - } - if (atomicMove) { - // atomic move since this inherits from FsBlobContainer which provides atomic moves - maybeIOExceptionOrBlock(targetBlob); - super.move(sourceBlob, targetBlob); - } else { - // simulate a non-atomic move, since many blob container implementations - // will not have an atomic move, and we should be able to handle that - maybeIOExceptionOrBlock(targetBlob); - super.writeBlob(targetBlob, super.readBlob(sourceBlob), 0L); - super.deleteBlob(sourceBlob); - } - } - @Override public void writeBlob(String blobName, InputStream inputStream, long blobSize) throws IOException { maybeIOExceptionOrBlock(blobName); @@ -377,14 +359,14 @@ public class MockRepository extends FsRepository { @Override public void writeBlobAtomic(final String blobName, final InputStream inputStream, final long blobSize) throws IOException { final Random random = RandomizedContext.current().getRandom(); - if (random.nextBoolean()) { + if (allowAtomicOperations && random.nextBoolean()) { if ((delegate() instanceof FsBlobContainer) && (random.nextBoolean())) { // Simulate a failure between the write and move operation in FsBlobContainer final String tempBlobName = FsBlobContainer.tempBlobName(blobName); super.writeBlob(tempBlobName, inputStream, blobSize); maybeIOExceptionOrBlock(blobName); final FsBlobContainer fsBlobContainer = (FsBlobContainer) delegate(); - fsBlobContainer.move(tempBlobName, blobName); + fsBlobContainer.moveBlobAtomic(tempBlobName, blobName); } else { // Atomic write since it is potentially supported // by the delegating blob container diff --git a/test/framework/src/main/java/org/elasticsearch/repositories/ESBlobStoreContainerTestCase.java b/test/framework/src/main/java/org/elasticsearch/repositories/ESBlobStoreContainerTestCase.java index be06e09c6ff..13f9e9debc9 100644 --- a/test/framework/src/main/java/org/elasticsearch/repositories/ESBlobStoreContainerTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/repositories/ESBlobStoreContainerTestCase.java @@ -36,7 +36,6 @@ import java.util.HashMap; import java.util.Map; import static org.elasticsearch.repositories.ESBlobStoreTestCase.randomBytes; -import static org.elasticsearch.repositories.ESBlobStoreTestCase.readBlobFully; import static org.elasticsearch.repositories.ESBlobStoreTestCase.writeRandomBlob; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.notNullValue; @@ -73,7 +72,7 @@ public abstract class ESBlobStoreContainerTestCase extends ESTestCase { } } - public void testMoveAndList() throws IOException { + public void testList() throws IOException { try(BlobStore store = newBlobStore()) { final BlobContainer container = store.blobContainer(new BlobPath()); assertThat(container.listBlobs().size(), equalTo(0)); @@ -109,15 +108,6 @@ public abstract class ESBlobStoreContainerTestCase extends ESTestCase { assertThat(container.listBlobsByPrefix("foo-").size(), equalTo(numberOfFooBlobs)); assertThat(container.listBlobsByPrefix("bar-").size(), equalTo(numberOfBarBlobs)); assertThat(container.listBlobsByPrefix("baz-").size(), equalTo(0)); - - String newName = "bar-new"; - // Move to a new location - container.move(name, newName); - assertThat(container.listBlobsByPrefix(name).size(), equalTo(0)); - blobs = container.listBlobsByPrefix(newName); - assertThat(blobs.size(), equalTo(1)); - assertThat(blobs.get(newName).length(), equalTo(generatedBlobs.get(name))); - assertThat(data, equalTo(readBlobFully(container, newName, length))); } } From 6ad721765604b9f69715acd7317944a0d0b088ca Mon Sep 17 00:00:00 2001 From: David Turner Date: Thu, 7 Jun 2018 12:38:57 +0100 Subject: [PATCH 17/62] Remove reference to multiple fields with one name (#31127) If there is only one type per index then each field's name is unique. --- docs/reference/mapping/params/fielddata.asciidoc | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/reference/mapping/params/fielddata.asciidoc b/docs/reference/mapping/params/fielddata.asciidoc index 19899c76d8a..ff959b98b6e 100644 --- a/docs/reference/mapping/params/fielddata.asciidoc +++ b/docs/reference/mapping/params/fielddata.asciidoc @@ -100,11 +100,6 @@ PUT my_index/_mapping/_doc <1> The mapping that you specify for `my_field` should consist of the existing mapping for that field, plus the `fielddata` parameter. -TIP: The `fielddata.*` parameter must have the same settings for fields of the -same name in the same index. Its value can be updated on existing fields -using the <>. - - [[field-data-filtering]] ==== `fielddata_frequency_filter` From 280a2f55d64b64663058e216273f8047dd01e425 Mon Sep 17 00:00:00 2001 From: Jim Ferenczi Date: Thu, 7 Jun 2018 13:37:29 +0200 Subject: [PATCH 18/62] Fix random failure on SearchQueryIT#testTermExpansionExceptionOnSpanFailure This change moves an integration test that relies on setting the value of a static variable (boolean max clause count) to an unit test where we are sure that the same jvm is used to access the static variable. --- .../query/SpanMultiTermQueryBuilder.java | 71 +++++++++---------- .../query/SpanMultiTermQueryBuilderTests.java | 39 ++++++++-- .../search/query/SearchQueryIT.java | 27 ------- 3 files changed, 70 insertions(+), 67 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/index/query/SpanMultiTermQueryBuilder.java b/server/src/main/java/org/elasticsearch/index/query/SpanMultiTermQueryBuilder.java index 0576a68a85b..9aca0c0fc0d 100644 --- a/server/src/main/java/org/elasticsearch/index/query/SpanMultiTermQueryBuilder.java +++ b/server/src/main/java/org/elasticsearch/index/query/SpanMultiTermQueryBuilder.java @@ -137,47 +137,42 @@ public class SpanMultiTermQueryBuilder extends AbstractQueryBuilder> delegate = new ScoringRewrite>() { - - @Override - protected List getTopLevelBuilder() { - return new ArrayList(); - } - - @Override - protected Query build(List builder) { - return new SpanOrQuery((SpanQuery[]) builder.toArray(new SpanQuery[builder.size()])); - } - - @Override - protected void checkMaxClauseCount(int count) { - if (count > maxExpansions) { - throw new ElasticsearchException("[" + multiTermQuery.toString() + " ] " + - "exceeds maxClauseCount [ Boolean maxClauseCount is set to " + BooleanQuery.getMaxClauseCount() + "]"); + final MultiTermQuery.RewriteMethod delegate = new ScoringRewrite>() { + @Override + protected List getTopLevelBuilder() { + return new ArrayList(); } - } - @Override - protected void addClause(List topLevel, Term term, int docCount, float boost, TermContext states) { - SpanTermQuery q = new SpanTermQuery(term, states); - topLevel.add(q); - } - }; + @Override + protected Query build(List builder) { + return new SpanOrQuery((SpanQuery[]) builder.toArray(new SpanQuery[builder.size()])); + } + + @Override + protected void checkMaxClauseCount(int count) { + if (count > maxExpansions) { + throw new RuntimeException("[" + query.toString() + " ] " + + "exceeds maxClauseCount [ Boolean maxClauseCount is set to " + BooleanQuery.getMaxClauseCount() + "]"); + } + } + + @Override + protected void addClause(List topLevel, Term term, int docCount, float boost, TermContext states) { + SpanTermQuery q = new SpanTermQuery(term, states); + topLevel.add(q); + } + }; + return (SpanQuery) delegate.rewrite(reader, query); + } } @Override @@ -222,6 +217,7 @@ public class SpanMultiTermQueryBuilder extends AbstractQueryBuilder(prefixQuery); } else { String origFieldName = ((PrefixQueryBuilder) multiTermQueryBuilder).fieldName(); @@ -240,9 +236,12 @@ public class SpanMultiTermQueryBuilder extends AbstractQueryBuilder((MultiTermQuery) subQuery); - if (((MultiTermQuery) subQuery).getRewriteMethod() instanceof TopTermsRewrite == false) { - ((SpanMultiTermQueryWrapper) spanQuery).setRewriteMethod(new - TopTermSpanBooleanQueryRewriteWithMaxClause(BooleanQuery.getMaxClauseCount())); + } + if (subQuery instanceof MultiTermQuery) { + MultiTermQuery multiTermQuery = (MultiTermQuery) subQuery; + SpanMultiTermQueryWrapper wrapper = (SpanMultiTermQueryWrapper) spanQuery; + if (multiTermQuery.getRewriteMethod() instanceof TopTermsRewrite == false) { + wrapper.setRewriteMethod(new TopTermSpanBooleanQueryRewriteWithMaxClause()); } } if (boost != AbstractQueryBuilder.DEFAULT_BOOST) { diff --git a/server/src/test/java/org/elasticsearch/index/query/SpanMultiTermQueryBuilderTests.java b/server/src/test/java/org/elasticsearch/index/query/SpanMultiTermQueryBuilderTests.java index fae66dd68bc..c93df5b7519 100644 --- a/server/src/test/java/org/elasticsearch/index/query/SpanMultiTermQueryBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/index/query/SpanMultiTermQueryBuilderTests.java @@ -19,7 +19,13 @@ package org.elasticsearch.index.query; +import org.apache.lucene.analysis.core.WhitespaceAnalyzer; +import org.apache.lucene.document.Field; +import org.apache.lucene.document.TextField; +import org.apache.lucene.index.IndexReader; +import org.apache.lucene.index.RandomIndexWriter; import org.apache.lucene.index.Term; +import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.BoostQuery; import org.apache.lucene.search.MultiTermQuery; import org.apache.lucene.search.PrefixQuery; @@ -30,6 +36,7 @@ import org.apache.lucene.search.spans.SpanBoostQuery; import org.apache.lucene.search.spans.SpanMultiTermQueryWrapper; import org.apache.lucene.search.spans.SpanQuery; import org.apache.lucene.search.spans.SpanTermQuery; +import org.apache.lucene.store.Directory; import org.elasticsearch.Version; import org.elasticsearch.common.Strings; import org.elasticsearch.common.compress.CompressedXContent; @@ -41,6 +48,7 @@ import org.elasticsearch.test.AbstractQueryTestCase; import java.io.IOException; +import static java.util.Collections.singleton; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.equalTo; @@ -251,14 +259,37 @@ public class SpanMultiTermQueryBuilderTests extends AbstractQueryTestCase query.rewrite(reader)); + assertThat(exc.getMessage(), containsString("maxClauseCount")); + + } finally { + BooleanQuery.setMaxClauseCount(origBoolMaxClauseCount); + } + } + } + } } public void testTopNMultiTermsRewriteInsideSpan() throws Exception { - - Query query = QueryBuilders.spanMultiTermQueryBuilder(QueryBuilders.prefixQuery("foo", "b").rewrite - ("top_terms_boost_2000")). - toQuery(createShardContext()); + Query query = QueryBuilders.spanMultiTermQueryBuilder( + QueryBuilders.prefixQuery("foo", "b").rewrite("top_terms_boost_2000") + ).toQuery(createShardContext()); if (query instanceof SpanBoostQuery) { query = ((SpanBoostQuery)query).getQuery(); diff --git a/server/src/test/java/org/elasticsearch/search/query/SearchQueryIT.java b/server/src/test/java/org/elasticsearch/search/query/SearchQueryIT.java index 5dd669119e5..c3df8d778a7 100644 --- a/server/src/test/java/org/elasticsearch/search/query/SearchQueryIT.java +++ b/server/src/test/java/org/elasticsearch/search/query/SearchQueryIT.java @@ -1825,31 +1825,4 @@ public class SearchQueryIT extends ESIntegTestCase { SearchResponse searchResponse = client().prepareSearch("test").setQuery(range).get(); assertHitCount(searchResponse, 1); } - - public void testTermExpansionExceptionOnSpanFailure() throws ExecutionException, InterruptedException { - Settings.Builder builder = Settings.builder(); - builder.put(SETTING_NUMBER_OF_SHARDS, 1).build(); - - createIndex("test", builder.build()); - ArrayList reqs = new ArrayList<>(); - int origBoolMaxClauseCount = BooleanQuery.getMaxClauseCount(); - try { - BooleanQuery.setMaxClauseCount(2); - for (int i = 0; i < BooleanQuery.getMaxClauseCount() + 1; i++) { - reqs.add(client().prepareIndex("test", "_doc", Integer.toString(i)).setSource("body", "foo" + - Integer.toString(i) + " bar baz")); - } - indexRandom(true, false, reqs); - - QueryBuilder queryBuilder = new SpanNearQueryBuilder(new SpanMultiTermQueryBuilder(QueryBuilders.wildcardQuery - ("body", "f*")), 0).addClause(new SpanTermQueryBuilder("body", "bar")); - - expectThrows(ElasticsearchException.class, () -> - client().prepareSearch().setIndices("test").setQuery(queryBuilder).get()); - } finally { - BooleanQuery.setMaxClauseCount(origBoolMaxClauseCount); - } - - } - } From c352ff1615a3f6e5b4b04481dc6d33c13825e0d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20B=C3=BCscher?= Date: Thu, 7 Jun 2018 13:52:10 +0200 Subject: [PATCH 19/62] Share common parser in some AcknowledgedResponses (#31169) Several AcknowledgedResponse implementations only parse the boolean acknowledged flag and then create an instance of their class using that flag. This can be simplified by adding this basic parser to the superclass, provide a common helper method and call the appropriate ctor in the fromXContent methods. --- .../delete/DeleteRepositoryResponse.java | 10 +--------- .../repositories/put/PutRepositoryResponse.java | 10 +--------- .../indices/alias/IndicesAliasesResponse.java | 2 +- .../admin/indices/close/CloseIndexResponse.java | 10 +--------- .../indices/delete/DeleteIndexResponse.java | 10 +--------- .../indices/mapping/put/PutMappingResponse.java | 11 +---------- .../settings/put/UpdateSettingsResponse.java | 11 +---------- .../template/put/PutIndexTemplateResponse.java | 9 +-------- .../action/ingest/WritePipelineResponse.java | 11 +---------- .../support/master/AcknowledgedResponse.java | 16 ++++++++++++++++ 10 files changed, 25 insertions(+), 75 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/action/admin/cluster/repositories/delete/DeleteRepositoryResponse.java b/server/src/main/java/org/elasticsearch/action/admin/cluster/repositories/delete/DeleteRepositoryResponse.java index 1f1fe524c64..f67d74cd118 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/cluster/repositories/delete/DeleteRepositoryResponse.java +++ b/server/src/main/java/org/elasticsearch/action/admin/cluster/repositories/delete/DeleteRepositoryResponse.java @@ -20,7 +20,6 @@ package org.elasticsearch.action.admin.cluster.repositories.delete; import org.elasticsearch.action.support.master.AcknowledgedResponse; -import org.elasticsearch.common.xcontent.ConstructingObjectParser; import org.elasticsearch.common.xcontent.XContentParser; /** @@ -28,13 +27,6 @@ import org.elasticsearch.common.xcontent.XContentParser; */ public class DeleteRepositoryResponse extends AcknowledgedResponse { - private static final ConstructingObjectParser PARSER = - new ConstructingObjectParser<>("delete_repository", true, args -> new DeleteRepositoryResponse((boolean) args[0])); - - static { - declareAcknowledgedField(PARSER); - } - DeleteRepositoryResponse() { } @@ -43,6 +35,6 @@ public class DeleteRepositoryResponse extends AcknowledgedResponse { } public static DeleteRepositoryResponse fromXContent(XContentParser parser) { - return PARSER.apply(parser, null); + return new DeleteRepositoryResponse(parseAcknowledged(parser)); } } diff --git a/server/src/main/java/org/elasticsearch/action/admin/cluster/repositories/put/PutRepositoryResponse.java b/server/src/main/java/org/elasticsearch/action/admin/cluster/repositories/put/PutRepositoryResponse.java index 52a1a736ec7..23aae119e0d 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/cluster/repositories/put/PutRepositoryResponse.java +++ b/server/src/main/java/org/elasticsearch/action/admin/cluster/repositories/put/PutRepositoryResponse.java @@ -20,7 +20,6 @@ package org.elasticsearch.action.admin.cluster.repositories.put; import org.elasticsearch.action.support.master.AcknowledgedResponse; -import org.elasticsearch.common.xcontent.ConstructingObjectParser; import org.elasticsearch.common.xcontent.XContentParser; /** @@ -28,13 +27,6 @@ import org.elasticsearch.common.xcontent.XContentParser; */ public class PutRepositoryResponse extends AcknowledgedResponse { - private static final ConstructingObjectParser PARSER = new ConstructingObjectParser<>("put_repository", - true, args -> new PutRepositoryResponse((boolean) args[0])); - - static { - declareAcknowledgedField(PARSER); - } - PutRepositoryResponse() { } @@ -43,6 +35,6 @@ public class PutRepositoryResponse extends AcknowledgedResponse { } public static PutRepositoryResponse fromXContent(XContentParser parser) { - return PARSER.apply(parser, null); + return new PutRepositoryResponse(parseAcknowledged(parser)); } } diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/alias/IndicesAliasesResponse.java b/server/src/main/java/org/elasticsearch/action/admin/indices/alias/IndicesAliasesResponse.java index ebfc82fec74..31ebcbf0f0a 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/alias/IndicesAliasesResponse.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/alias/IndicesAliasesResponse.java @@ -42,6 +42,6 @@ public class IndicesAliasesResponse extends AcknowledgedResponse { } public static IndicesAliasesResponse fromXContent(XContentParser parser) { - return PARSER.apply(parser, null); + return new IndicesAliasesResponse(parseAcknowledged(parser)); } } \ No newline at end of file diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/close/CloseIndexResponse.java b/server/src/main/java/org/elasticsearch/action/admin/indices/close/CloseIndexResponse.java index bfebaee5e59..96a3e150af1 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/close/CloseIndexResponse.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/close/CloseIndexResponse.java @@ -20,20 +20,12 @@ package org.elasticsearch.action.admin.indices.close; import org.elasticsearch.action.support.master.AcknowledgedResponse; -import org.elasticsearch.common.xcontent.ConstructingObjectParser; import org.elasticsearch.common.xcontent.XContentParser; /** * A response for a close index action. */ public class CloseIndexResponse extends AcknowledgedResponse { - private static final ConstructingObjectParser PARSER = new ConstructingObjectParser<>("close_index", true, - args -> new CloseIndexResponse((boolean) args[0])); - - static { - declareAcknowledgedField(PARSER); - } - CloseIndexResponse() { } @@ -42,6 +34,6 @@ public class CloseIndexResponse extends AcknowledgedResponse { } public static CloseIndexResponse fromXContent(XContentParser parser) { - return PARSER.apply(parser, null); + return new CloseIndexResponse(parseAcknowledged(parser)); } } diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexResponse.java b/server/src/main/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexResponse.java index 3a04dc5b70b..b86549f536d 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexResponse.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexResponse.java @@ -20,7 +20,6 @@ package org.elasticsearch.action.admin.indices.delete; import org.elasticsearch.action.support.master.AcknowledgedResponse; -import org.elasticsearch.common.xcontent.ConstructingObjectParser; import org.elasticsearch.common.xcontent.XContentParser; /** @@ -28,13 +27,6 @@ import org.elasticsearch.common.xcontent.XContentParser; */ public class DeleteIndexResponse extends AcknowledgedResponse { - private static final ConstructingObjectParser PARSER = new ConstructingObjectParser<>("delete_index", - true, args -> new DeleteIndexResponse((boolean) args[0])); - - static { - declareAcknowledgedField(PARSER); - } - DeleteIndexResponse() { } @@ -43,6 +35,6 @@ public class DeleteIndexResponse extends AcknowledgedResponse { } public static DeleteIndexResponse fromXContent(XContentParser parser) { - return PARSER.apply(parser, null); + return new DeleteIndexResponse(parseAcknowledged(parser)); } } diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingResponse.java b/server/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingResponse.java index 1e022474955..4b2eac95c3a 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingResponse.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingResponse.java @@ -20,7 +20,6 @@ package org.elasticsearch.action.admin.indices.mapping.put; import org.elasticsearch.action.support.master.AcknowledgedResponse; -import org.elasticsearch.common.xcontent.ConstructingObjectParser; import org.elasticsearch.common.xcontent.XContentParser; /** @@ -28,15 +27,7 @@ import org.elasticsearch.common.xcontent.XContentParser; */ public class PutMappingResponse extends AcknowledgedResponse { - private static final ConstructingObjectParser PARSER = new ConstructingObjectParser<>("put_mapping", - true, args -> new PutMappingResponse((boolean) args[0])); - - static { - declareAcknowledgedField(PARSER); - } - protected PutMappingResponse() { - } protected PutMappingResponse(boolean acknowledged) { @@ -44,6 +35,6 @@ public class PutMappingResponse extends AcknowledgedResponse { } public static PutMappingResponse fromXContent(XContentParser parser) { - return PARSER.apply(parser, null); + return new PutMappingResponse(parseAcknowledged(parser)); } } diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/settings/put/UpdateSettingsResponse.java b/server/src/main/java/org/elasticsearch/action/admin/indices/settings/put/UpdateSettingsResponse.java index 022f575f1d0..6792d185926 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/settings/put/UpdateSettingsResponse.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/settings/put/UpdateSettingsResponse.java @@ -20,7 +20,6 @@ package org.elasticsearch.action.admin.indices.settings.put; import org.elasticsearch.action.support.master.AcknowledgedResponse; -import org.elasticsearch.common.xcontent.ConstructingObjectParser; import org.elasticsearch.common.xcontent.XContentParser; /** @@ -28,13 +27,6 @@ import org.elasticsearch.common.xcontent.XContentParser; */ public class UpdateSettingsResponse extends AcknowledgedResponse { - private static final ConstructingObjectParser PARSER = new ConstructingObjectParser<>( - "update_index_settings", true, args -> new UpdateSettingsResponse((boolean) args[0])); - - static { - declareAcknowledgedField(PARSER); - } - UpdateSettingsResponse() { } @@ -43,7 +35,6 @@ public class UpdateSettingsResponse extends AcknowledgedResponse { } public static UpdateSettingsResponse fromXContent(XContentParser parser) { - return PARSER.apply(parser, null); + return new UpdateSettingsResponse(parseAcknowledged(parser)); } - } diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/template/put/PutIndexTemplateResponse.java b/server/src/main/java/org/elasticsearch/action/admin/indices/template/put/PutIndexTemplateResponse.java index 59b00bd719b..b2dab55a3d9 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/template/put/PutIndexTemplateResponse.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/template/put/PutIndexTemplateResponse.java @@ -19,7 +19,6 @@ package org.elasticsearch.action.admin.indices.template.put; import org.elasticsearch.action.support.master.AcknowledgedResponse; -import org.elasticsearch.common.xcontent.ConstructingObjectParser; import org.elasticsearch.common.xcontent.XContentParser; /** @@ -34,13 +33,7 @@ public class PutIndexTemplateResponse extends AcknowledgedResponse { super(acknowledged); } - private static final ConstructingObjectParser PARSER; - static { - PARSER = new ConstructingObjectParser<>("put_index_template", true, args -> new PutIndexTemplateResponse((boolean) args[0])); - declareAcknowledgedField(PARSER); - } - public static PutIndexTemplateResponse fromXContent(XContentParser parser) { - return PARSER.apply(parser, null); + return new PutIndexTemplateResponse(parseAcknowledged(parser)); } } diff --git a/server/src/main/java/org/elasticsearch/action/ingest/WritePipelineResponse.java b/server/src/main/java/org/elasticsearch/action/ingest/WritePipelineResponse.java index b3bda3f1521..293a62b66f2 100644 --- a/server/src/main/java/org/elasticsearch/action/ingest/WritePipelineResponse.java +++ b/server/src/main/java/org/elasticsearch/action/ingest/WritePipelineResponse.java @@ -20,21 +20,12 @@ package org.elasticsearch.action.ingest; import org.elasticsearch.action.support.master.AcknowledgedResponse; -import org.elasticsearch.common.xcontent.ConstructingObjectParser; import org.elasticsearch.common.xcontent.ToXContentObject; import org.elasticsearch.common.xcontent.XContentParser; public class WritePipelineResponse extends AcknowledgedResponse implements ToXContentObject { - private static final ConstructingObjectParser PARSER = new ConstructingObjectParser<>( - "write_pipeline_response", true, args -> new WritePipelineResponse((boolean) args[0])); - - static { - declareAcknowledgedField(PARSER); - } - WritePipelineResponse() { - } public WritePipelineResponse(boolean acknowledged) { @@ -42,6 +33,6 @@ public class WritePipelineResponse extends AcknowledgedResponse implements ToXCo } public static WritePipelineResponse fromXContent(XContentParser parser) { - return PARSER.apply(parser, null); + return new WritePipelineResponse(parseAcknowledged(parser)); } } diff --git a/server/src/main/java/org/elasticsearch/action/support/master/AcknowledgedResponse.java b/server/src/main/java/org/elasticsearch/action/support/master/AcknowledgedResponse.java index 41c806bc205..594dcda8c66 100644 --- a/server/src/main/java/org/elasticsearch/action/support/master/AcknowledgedResponse.java +++ b/server/src/main/java/org/elasticsearch/action/support/master/AcknowledgedResponse.java @@ -26,6 +26,7 @@ import org.elasticsearch.common.xcontent.ConstructingObjectParser; import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.ToXContentObject; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; import java.io.IOException; import java.util.Objects; @@ -88,6 +89,21 @@ public abstract class AcknowledgedResponse extends ActionResponse implements ToX } + /** + * A generic parser that simply parses the acknowledged flag + */ + private static final ConstructingObjectParser ACKNOWLEDGED_FLAG_PARSER = new ConstructingObjectParser<>( + "acknowledged_flag", true, args -> (Boolean) args[0]); + + static { + ACKNOWLEDGED_FLAG_PARSER.declareField(constructorArg(), (parser, context) -> parser.booleanValue(), ACKNOWLEDGED, + ObjectParser.ValueType.BOOLEAN); + } + + protected static boolean parseAcknowledged(XContentParser parser) { + return ACKNOWLEDGED_FLAG_PARSER.apply(parser, null); + } + @Override public boolean equals(Object o) { if (this == o) { From 7a9d9b0abfa09f816aeaa92c17bfe538b060e45d Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Thu, 7 Jun 2018 11:11:13 -0400 Subject: [PATCH 20/62] Add support for ignore_unmapped to geo sort (#31153) Adds support for `ignore_unmapped` parameter in geo distance sorting, which is functionally equivalent to specifying an `unmapped_type` in the field sort. Closes #28152 --- docs/reference/search/request/sort.asciidoc | 11 +++- .../search/sort/GeoDistanceSortBuilder.java | 41 ++++++++++++-- .../search/sort/GeoDistanceIT.java | 54 +++++++++++++++++++ .../sort/GeoDistanceSortBuilderTests.java | 9 +++- 4 files changed, 108 insertions(+), 7 deletions(-) diff --git a/docs/reference/search/request/sort.asciidoc b/docs/reference/search/request/sort.asciidoc index ac1c8388e83..2cee0f3a58c 100644 --- a/docs/reference/search/request/sort.asciidoc +++ b/docs/reference/search/request/sort.asciidoc @@ -288,8 +288,9 @@ GET /_search "pin.location" : [-70, 40], "order" : "asc", "unit" : "km", - "mode" : "min", - "distance_type" : "arc" + "mode" : "min", + "distance_type" : "arc", + "ignore_unmapped": true } } ], @@ -317,6 +318,12 @@ GET /_search The unit to use when computing sort values. The default is `m` (meters). + +`ignore_unmapped`:: + + Indicates if the unmapped field should be treated as a missing value. Setting it to `true` is equivalent to specifying + an `unmapped_type` in the field sort. The default is `false` (unmapped field are causing the search to fail). + NOTE: geo distance sorting does not support configurable missing values: the distance will always be considered equal to +Infinity+ when a document does not have values for the field that is used for distance computation. diff --git a/server/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java b/server/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java index cfa5a240dea..712af37de5f 100644 --- a/server/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java @@ -81,6 +81,7 @@ public class GeoDistanceSortBuilder extends SortBuilder private static final ParseField DISTANCE_TYPE_FIELD = new ParseField("distance_type"); private static final ParseField VALIDATION_METHOD_FIELD = new ParseField("validation_method"); private static final ParseField SORTMODE_FIELD = new ParseField("mode", "sort_mode"); + private static final ParseField IGNORE_UNMAPPED = new ParseField("ignore_unmapped"); private final String fieldName; private final List points = new ArrayList<>(); @@ -97,6 +98,8 @@ public class GeoDistanceSortBuilder extends SortBuilder private GeoValidationMethod validation = DEFAULT_VALIDATION; + private boolean ignoreUnmapped = false; + /** * Constructs a new distance based sort on a geo point like field. * @@ -152,6 +155,7 @@ public class GeoDistanceSortBuilder extends SortBuilder this.nestedPath = original.nestedPath; this.validation = original.validation; this.nestedSort = original.nestedSort; + this.ignoreUnmapped = original.ignoreUnmapped; } /** @@ -171,6 +175,10 @@ public class GeoDistanceSortBuilder extends SortBuilder nestedSort = in.readOptionalWriteable(NestedSortBuilder::new); } validation = GeoValidationMethod.readFromStream(in); + // TODO: Change to 6_4_0 after backport + if (in.getVersion().onOrAfter(Version.V_7_0_0_alpha1)) { + ignoreUnmapped = in.readBoolean(); + } } @Override @@ -187,6 +195,10 @@ public class GeoDistanceSortBuilder extends SortBuilder out.writeOptionalWriteable(nestedSort); } validation.writeTo(out); + // TODO: Change to 6_4_0 after backport + if (out.getVersion().onOrAfter(Version.V_7_0_0_alpha1)) { + out.writeBoolean(ignoreUnmapped); + } } /** @@ -374,6 +386,18 @@ public class GeoDistanceSortBuilder extends SortBuilder return this; } + /** + * Returns true if unmapped geo fields should be treated as located at an infinite distance + */ + public boolean ignoreUnmapped() { + return ignoreUnmapped; + } + + public GeoDistanceSortBuilder ignoreUnmapped(boolean ignoreUnmapped) { + this.ignoreUnmapped = ignoreUnmapped; + return this; + } + @Override public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { builder.startObject(); @@ -403,6 +427,7 @@ public class GeoDistanceSortBuilder extends SortBuilder builder.field(NESTED_FIELD.getPreferredName(), nestedSort); } builder.field(VALIDATION_METHOD_FIELD.getPreferredName(), validation); + builder.field(IGNORE_UNMAPPED.getPreferredName(), ignoreUnmapped); builder.endObject(); builder.endObject(); @@ -434,14 +459,15 @@ public class GeoDistanceSortBuilder extends SortBuilder Objects.equals(nestedFilter, other.nestedFilter) && Objects.equals(nestedPath, other.nestedPath) && Objects.equals(validation, other.validation) && - Objects.equals(nestedSort, other.nestedSort); + Objects.equals(nestedSort, other.nestedSort) && + ignoreUnmapped == other.ignoreUnmapped; } @Override public int hashCode() { return Objects.hash(this.fieldName, this.points, this.geoDistance, this.unit, this.sortMode, this.order, this.nestedFilter, - this.nestedPath, this.validation, this.nestedSort); + this.nestedPath, this.validation, this.nestedSort, this.ignoreUnmapped); } /** @@ -465,6 +491,7 @@ public class GeoDistanceSortBuilder extends SortBuilder String nestedPath = null; NestedSortBuilder nestedSort = null; GeoValidationMethod validation = null; + boolean ignoreUnmapped = false; XContentParser.Token token; String currentName = parser.currentName(); @@ -509,6 +536,8 @@ public class GeoDistanceSortBuilder extends SortBuilder } else if (NESTED_PATH_FIELD.match(currentName, parser.getDeprecationHandler())) { DEPRECATION_LOGGER.deprecated("[nested_path] has been deprecated in favour of the [nested] parameter"); nestedPath = parser.text(); + } else if (IGNORE_UNMAPPED.match(currentName, parser.getDeprecationHandler())) { + ignoreUnmapped = parser.booleanValue(); } else if (token == Token.VALUE_STRING){ if (fieldName != null && fieldName.equals(currentName) == false) { throw new ParsingException( @@ -554,6 +583,7 @@ public class GeoDistanceSortBuilder extends SortBuilder if (validation != null) { result.validation(validation); } + result.ignoreUnmapped(ignoreUnmapped); return result; } @@ -596,8 +626,11 @@ public class GeoDistanceSortBuilder extends SortBuilder MappedFieldType fieldType = context.fieldMapper(fieldName); if (fieldType == null) { - throw new IllegalArgumentException("failed to find mapper for [" + fieldName - + "] for geo distance based sort"); + if (ignoreUnmapped) { + fieldType = context.getMapperService().unmappedFieldType("geo_point"); + } else { + throw new IllegalArgumentException("failed to find mapper for [" + fieldName + "] for geo distance based sort"); + } } final IndexGeoPointFieldData geoIndexFieldData = context.getForField(fieldType); diff --git a/server/src/test/java/org/elasticsearch/search/sort/GeoDistanceIT.java b/server/src/test/java/org/elasticsearch/search/sort/GeoDistanceIT.java index 6eff821c5c3..965dcb3e8cc 100644 --- a/server/src/test/java/org/elasticsearch/search/sort/GeoDistanceIT.java +++ b/server/src/test/java/org/elasticsearch/search/sort/GeoDistanceIT.java @@ -49,6 +49,7 @@ import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSear import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.hasId; import static org.hamcrest.Matchers.closeTo; import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.greaterThan; public class GeoDistanceIT extends ESIntegTestCase { @@ -406,4 +407,57 @@ public class GeoDistanceIT extends ESIntegTestCase { assertHitCount(result, 1); } + public void testDistanceSortingWithUnmappedField() throws Exception { + XContentBuilder xContentBuilder = XContentFactory.jsonBuilder().startObject().startObject("type1").startObject("properties") + .startObject("locations").field("type", "geo_point"); + xContentBuilder.endObject().endObject().endObject().endObject(); + assertAcked(prepareCreate("test1").addMapping("type1", xContentBuilder)); + assertAcked(prepareCreate("test2")); + ensureGreen(); + + client().prepareIndex("test1", "type1", "1") + .setSource(jsonBuilder().startObject().array("names", "Times Square", "Tribeca").startArray("locations") + // to NY: 5.286 km + .startObject().field("lat", 40.759011).field("lon", -73.9844722).endObject() + // to NY: 0.4621 km + .startObject().field("lat", 40.718266).field("lon", -74.007819).endObject().endArray().endObject()) + .execute().actionGet(); + + client().prepareIndex("test2", "type1", "2") + .setSource(jsonBuilder().startObject().array("names", "Wall Street", "Soho").endObject()) + .execute().actionGet(); + + refresh(); + + // Order: Asc + SearchResponse searchResponse = client().prepareSearch("test1", "test2").setQuery(matchAllQuery()) + .addSort(SortBuilders.geoDistanceSort("locations", 40.7143528, -74.0059731).ignoreUnmapped(true).order(SortOrder.ASC)).execute() + .actionGet(); + + assertHitCount(searchResponse, 2); + assertOrderedSearchHits(searchResponse, "1", "2"); + assertThat(((Number) searchResponse.getHits().getAt(0).getSortValues()[0]).doubleValue(), closeTo(462.1d, 10d)); + assertThat(((Number) searchResponse.getHits().getAt(1).getSortValues()[0]).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + + // Order: Desc + searchResponse = client().prepareSearch("test1", "test2").setQuery(matchAllQuery()) + .addSort( + SortBuilders.geoDistanceSort("locations", 40.7143528, -74.0059731).ignoreUnmapped(true).order(SortOrder.DESC) + ).execute() + .actionGet(); + + // Doc with missing geo point is first, is consistent with 0.20.x + assertHitCount(searchResponse, 2); + assertOrderedSearchHits(searchResponse, "2", "1"); + assertThat(((Number) searchResponse.getHits().getAt(0).getSortValues()[0]).doubleValue(), equalTo(Double.POSITIVE_INFINITY)); + assertThat(((Number) searchResponse.getHits().getAt(1).getSortValues()[0]).doubleValue(), closeTo(5286d, 10d)); + + // Make sure that by default the unmapped fields continue to fail + searchResponse = client().prepareSearch("test1", "test2").setQuery(matchAllQuery()) + .addSort( SortBuilders.geoDistanceSort("locations", 40.7143528, -74.0059731).order(SortOrder.DESC)).execute() + .actionGet(); + assertThat(searchResponse.getFailedShards(), greaterThan(0)); + assertHitCount(searchResponse, 1); + } + } diff --git a/server/src/test/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderTests.java b/server/src/test/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderTests.java index 1109bdfc1f1..9a3f520f96f 100644 --- a/server/src/test/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/search/sort/GeoDistanceSortBuilderTests.java @@ -47,6 +47,7 @@ import org.elasticsearch.index.query.QueryShardContext; import org.elasticsearch.index.query.RangeQueryBuilder; import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.MultiValueMode; +import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.geo.RandomGeoGenerator; import java.io.IOException; @@ -121,6 +122,9 @@ public class GeoDistanceSortBuilderTests extends AbstractSortTestCase randomFrom(GeoValidationMethod.values()))); break; + case 8: + result.ignoreUnmapped(result.ignoreUnmapped() == false); + break; } return result; } From 56207ea43deaa6e6bb25ad0f887ee2b029ce0e40 Mon Sep 17 00:00:00 2001 From: Nik Everett Date: Thu, 7 Jun 2018 11:19:34 -0400 Subject: [PATCH 21/62] QA: Set better node names on rolling restart tests These should help with debugging failures. --- qa/rolling-upgrade/build.gradle | 1 + x-pack/qa/rolling-upgrade-basic/build.gradle | 1 + 2 files changed, 2 insertions(+) diff --git a/qa/rolling-upgrade/build.gradle b/qa/rolling-upgrade/build.gradle index 6c4004074fa..5fc5764ceb5 100644 --- a/qa/rolling-upgrade/build.gradle +++ b/qa/rolling-upgrade/build.gradle @@ -83,6 +83,7 @@ for (Version version : bwcVersions.wireCompatible) { * just stopped's data directory. */ dataDir = { nodeNumber -> oldClusterTest.nodes[stopNode].dataDir } setting 'repositories.url.allowed_urls', 'http://snapshot.test*' + setting 'node.name', "upgraded-node-${stopNode}" } } diff --git a/x-pack/qa/rolling-upgrade-basic/build.gradle b/x-pack/qa/rolling-upgrade-basic/build.gradle index 3592d34c9f4..916f71dd05c 100644 --- a/x-pack/qa/rolling-upgrade-basic/build.gradle +++ b/x-pack/qa/rolling-upgrade-basic/build.gradle @@ -63,6 +63,7 @@ for (Version version : bwcVersions.wireCompatible) { setting 'xpack.ml.enabled', 'false' setting 'xpack.watcher.enabled', 'false' setting 'xpack.license.self_generated.type', 'basic' + setting 'node.name', "upgraded-node-${stopNode}" } } From 237f9b89308568ff662a06e6e49d75708e2468ae Mon Sep 17 00:00:00 2001 From: Tim Brooks Date: Thu, 7 Jun 2018 09:46:36 -0600 Subject: [PATCH 22/62] Add nio-transport as option for http smoke tests (#31162) This is related to #27260 and #28898. This commit adds the transport-nio plugin as a random option when running the http smoke tests. As part of this PR, I identified an issue where cors support was not properly enabled causing these tests to fail when using transport-nio. This commit also fixes that issue. --- .../netty4/Netty4HttpServerTransport.java | 12 ++-------- .../http/nio/NioHttpServerTransport.java | 10 +-------- .../http/nio/HttpReadWriteHandlerTests.java | 4 +++- qa/smoke-test-http/build.gradle | 1 + .../elasticsearch/http/HttpSmokeTestCase.java | 22 ++++++++++++++----- .../http/HttpHandlingSettings.java | 7 ++++-- .../xpack/sql/action/SqlLicenseIT.java | 4 +++- 7 files changed, 32 insertions(+), 28 deletions(-) diff --git a/modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java b/modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java index 31c1214f034..61825ad4d27 100644 --- a/modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java +++ b/modules/transport-netty4/src/main/java/org/elasticsearch/http/netty4/Netty4HttpServerTransport.java @@ -202,15 +202,7 @@ public class Netty4HttpServerTransport extends AbstractHttpServerTransport { this.maxHeaderSize = SETTING_HTTP_MAX_HEADER_SIZE.get(settings); this.maxInitialLineLength = SETTING_HTTP_MAX_INITIAL_LINE_LENGTH.get(settings); this.pipeliningMaxEvents = SETTING_PIPELINING_MAX_EVENTS.get(settings); - this.httpHandlingSettings = new HttpHandlingSettings(Math.toIntExact(maxContentLength.getBytes()), - Math.toIntExact(maxChunkSize.getBytes()), - Math.toIntExact(maxHeaderSize.getBytes()), - Math.toIntExact(maxInitialLineLength.getBytes()), - SETTING_HTTP_RESET_COOKIES.get(settings), - SETTING_HTTP_COMPRESSION.get(settings), - SETTING_HTTP_COMPRESSION_LEVEL.get(settings), - SETTING_HTTP_DETAILED_ERRORS_ENABLED.get(settings), - pipeliningMaxEvents); + this.httpHandlingSettings = HttpHandlingSettings.fromSettings(settings); this.maxCompositeBufferComponents = SETTING_HTTP_NETTY_MAX_COMPOSITE_BUFFER_COMPONENTS.get(settings); this.workerCount = SETTING_HTTP_WORKER_COUNT.get(settings); @@ -446,7 +438,7 @@ public class Netty4HttpServerTransport extends AbstractHttpServerTransport { if (handlingSettings.isCompression()) { ch.pipeline().addLast("encoder_compress", new HttpContentCompressor(handlingSettings.getCompressionLevel())); } - if (SETTING_CORS_ENABLED.get(transport.settings())) { + if (handlingSettings.isCorsEnabled()) { ch.pipeline().addLast("cors", new Netty4CorsHandler(transport.getCorsConfig())); } ch.pipeline().addLast("pipelining", new Netty4HttpPipeliningHandler(transport.logger, transport.pipeliningMaxEvents)); diff --git a/plugins/transport-nio/src/main/java/org/elasticsearch/http/nio/NioHttpServerTransport.java b/plugins/transport-nio/src/main/java/org/elasticsearch/http/nio/NioHttpServerTransport.java index 076c4ca84d5..92289350bba 100644 --- a/plugins/transport-nio/src/main/java/org/elasticsearch/http/nio/NioHttpServerTransport.java +++ b/plugins/transport-nio/src/main/java/org/elasticsearch/http/nio/NioHttpServerTransport.java @@ -137,15 +137,7 @@ public class NioHttpServerTransport extends AbstractHttpServerTransport { ByteSizeValue maxHeaderSize = SETTING_HTTP_MAX_HEADER_SIZE.get(settings); ByteSizeValue maxInitialLineLength = SETTING_HTTP_MAX_INITIAL_LINE_LENGTH.get(settings); int pipeliningMaxEvents = SETTING_PIPELINING_MAX_EVENTS.get(settings); - this.httpHandlingSettings = new HttpHandlingSettings(Math.toIntExact(maxContentLength.getBytes()), - Math.toIntExact(maxChunkSize.getBytes()), - Math.toIntExact(maxHeaderSize.getBytes()), - Math.toIntExact(maxInitialLineLength.getBytes()), - SETTING_HTTP_RESET_COOKIES.get(settings), - SETTING_HTTP_COMPRESSION.get(settings), - SETTING_HTTP_COMPRESSION_LEVEL.get(settings), - SETTING_HTTP_DETAILED_ERRORS_ENABLED.get(settings), - pipeliningMaxEvents); + this.httpHandlingSettings = HttpHandlingSettings.fromSettings(settings);; this.corsConfig = buildCorsConfig(settings); this.tcpNoDelay = SETTING_HTTP_TCP_NO_DELAY.get(settings); diff --git a/plugins/transport-nio/src/test/java/org/elasticsearch/http/nio/HttpReadWriteHandlerTests.java b/plugins/transport-nio/src/test/java/org/elasticsearch/http/nio/HttpReadWriteHandlerTests.java index 56cbab5295a..dbd247b9671 100644 --- a/plugins/transport-nio/src/test/java/org/elasticsearch/http/nio/HttpReadWriteHandlerTests.java +++ b/plugins/transport-nio/src/test/java/org/elasticsearch/http/nio/HttpReadWriteHandlerTests.java @@ -56,6 +56,7 @@ import java.nio.ByteBuffer; import java.util.List; import java.util.function.BiConsumer; +import static org.elasticsearch.http.HttpTransportSettings.SETTING_CORS_ENABLED; import static org.elasticsearch.http.HttpTransportSettings.SETTING_HTTP_COMPRESSION; import static org.elasticsearch.http.HttpTransportSettings.SETTING_HTTP_COMPRESSION_LEVEL; import static org.elasticsearch.http.HttpTransportSettings.SETTING_HTTP_DETAILED_ERRORS_ENABLED; @@ -94,7 +95,8 @@ public class HttpReadWriteHandlerTests extends ESTestCase { SETTING_HTTP_COMPRESSION.getDefault(settings), SETTING_HTTP_COMPRESSION_LEVEL.getDefault(settings), SETTING_HTTP_DETAILED_ERRORS_ENABLED.getDefault(settings), - SETTING_PIPELINING_MAX_EVENTS.getDefault(settings)); + SETTING_PIPELINING_MAX_EVENTS.getDefault(settings), + SETTING_CORS_ENABLED.getDefault(settings)); ThreadContext threadContext = new ThreadContext(settings); nioSocketChannel = mock(NioSocketChannel.class); handler = new HttpReadWriteHandler(nioSocketChannel, transport, httpHandlingSettings, NamedXContentRegistry.EMPTY, diff --git a/qa/smoke-test-http/build.gradle b/qa/smoke-test-http/build.gradle index 03440912d04..ef1a97fc7ab 100644 --- a/qa/smoke-test-http/build.gradle +++ b/qa/smoke-test-http/build.gradle @@ -23,6 +23,7 @@ apply plugin: 'elasticsearch.test-with-dependencies' dependencies { testCompile project(path: ':modules:transport-netty4', configuration: 'runtime') // for http + testCompile project(path: ':plugins:transport-nio', configuration: 'runtime') // for http } integTestRunner { diff --git a/qa/smoke-test-http/src/test/java/org/elasticsearch/http/HttpSmokeTestCase.java b/qa/smoke-test-http/src/test/java/org/elasticsearch/http/HttpSmokeTestCase.java index 316acb02a75..bac5423e751 100644 --- a/qa/smoke-test-http/src/test/java/org/elasticsearch/http/HttpSmokeTestCase.java +++ b/qa/smoke-test-http/src/test/java/org/elasticsearch/http/HttpSmokeTestCase.java @@ -25,6 +25,7 @@ import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.transport.MockTcpTransportPlugin; import org.elasticsearch.transport.Netty4Plugin; import org.elasticsearch.transport.nio.MockNioTransportPlugin; +import org.elasticsearch.transport.nio.NioTransportPlugin; import org.junit.BeforeClass; import java.util.Arrays; @@ -39,9 +40,9 @@ public abstract class HttpSmokeTestCase extends ESIntegTestCase { @SuppressWarnings("unchecked") @BeforeClass public static void setUpTransport() { - nodeTransportTypeKey = getTypeKey(randomFrom(getTestTransportPlugin(), Netty4Plugin.class)); - nodeHttpTypeKey = getTypeKey(Netty4Plugin.class); - clientTypeKey = getTypeKey(randomFrom(getTestTransportPlugin(), Netty4Plugin.class)); + nodeTransportTypeKey = getTypeKey(randomFrom(getTestTransportPlugin(), Netty4Plugin.class, NioTransportPlugin.class)); + nodeHttpTypeKey = getHttpTypeKey(randomFrom(Netty4Plugin.class, NioTransportPlugin.class)); + clientTypeKey = getTypeKey(randomFrom(getTestTransportPlugin(), Netty4Plugin.class, NioTransportPlugin.class)); } private static String getTypeKey(Class clazz) { @@ -49,12 +50,23 @@ public abstract class HttpSmokeTestCase extends ESIntegTestCase { return MockTcpTransportPlugin.MOCK_TCP_TRANSPORT_NAME; } else if (clazz.equals(MockNioTransportPlugin.class)) { return MockNioTransportPlugin.MOCK_NIO_TRANSPORT_NAME; + } else if (clazz.equals(NioTransportPlugin.class)) { + return NioTransportPlugin.NIO_TRANSPORT_NAME; } else { assert clazz.equals(Netty4Plugin.class); return Netty4Plugin.NETTY_TRANSPORT_NAME; } } + private static String getHttpTypeKey(Class clazz) { + if (clazz.equals(NioTransportPlugin.class)) { + return NioTransportPlugin.NIO_HTTP_TRANSPORT_NAME; + } else { + assert clazz.equals(Netty4Plugin.class); + return Netty4Plugin.NETTY_HTTP_TRANSPORT_NAME; + } + } + @Override protected boolean addMockHttpTransport() { return false; // enable http @@ -70,12 +82,12 @@ public abstract class HttpSmokeTestCase extends ESIntegTestCase { @Override protected Collection> nodePlugins() { - return Arrays.asList(getTestTransportPlugin(), Netty4Plugin.class); + return Arrays.asList(getTestTransportPlugin(), Netty4Plugin.class, NioTransportPlugin.class); } @Override protected Collection> transportClientPlugins() { - return Arrays.asList(getTestTransportPlugin(), Netty4Plugin.class); + return Arrays.asList(getTestTransportPlugin(), Netty4Plugin.class, NioTransportPlugin.class); } @Override diff --git a/server/src/main/java/org/elasticsearch/http/HttpHandlingSettings.java b/server/src/main/java/org/elasticsearch/http/HttpHandlingSettings.java index 7559b058ea7..b296050822f 100644 --- a/server/src/main/java/org/elasticsearch/http/HttpHandlingSettings.java +++ b/server/src/main/java/org/elasticsearch/http/HttpHandlingSettings.java @@ -22,6 +22,7 @@ package org.elasticsearch.http; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.ByteSizeValue; +import static org.elasticsearch.http.HttpTransportSettings.SETTING_CORS_ENABLED; import static org.elasticsearch.http.HttpTransportSettings.SETTING_HTTP_COMPRESSION; import static org.elasticsearch.http.HttpTransportSettings.SETTING_HTTP_COMPRESSION_LEVEL; import static org.elasticsearch.http.HttpTransportSettings.SETTING_HTTP_DETAILED_ERRORS_ENABLED; @@ -47,7 +48,7 @@ public class HttpHandlingSettings { public HttpHandlingSettings(int maxContentLength, int maxChunkSize, int maxHeaderSize, int maxInitialLineLength, boolean resetCookies, boolean compression, int compressionLevel, boolean detailedErrorsEnabled, - int pipeliningMaxEvents) { + int pipeliningMaxEvents, boolean corsEnabled) { this.maxContentLength = maxContentLength; this.maxChunkSize = maxChunkSize; this.maxHeaderSize = maxHeaderSize; @@ -57,6 +58,7 @@ public class HttpHandlingSettings { this.compressionLevel = compressionLevel; this.detailedErrorsEnabled = detailedErrorsEnabled; this.pipeliningMaxEvents = pipeliningMaxEvents; + this.corsEnabled = corsEnabled; } public static HttpHandlingSettings fromSettings(Settings settings) { @@ -68,7 +70,8 @@ public class HttpHandlingSettings { SETTING_HTTP_COMPRESSION.get(settings), SETTING_HTTP_COMPRESSION_LEVEL.get(settings), SETTING_HTTP_DETAILED_ERRORS_ENABLED.get(settings), - SETTING_PIPELINING_MAX_EVENTS.get(settings)); + SETTING_PIPELINING_MAX_EVENTS.get(settings), + SETTING_CORS_ENABLED.get(settings)); } public int getMaxContentLength() { diff --git a/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/action/SqlLicenseIT.java b/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/action/SqlLicenseIT.java index 27597c93fd0..a755d2b4f59 100644 --- a/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/action/SqlLicenseIT.java +++ b/x-pack/plugin/sql/src/test/java/org/elasticsearch/xpack/sql/action/SqlLicenseIT.java @@ -20,6 +20,7 @@ import org.elasticsearch.search.fetch.subphase.DocValueFieldsContext; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import org.elasticsearch.test.hamcrest.ElasticsearchAssertions; import org.elasticsearch.transport.Netty4Plugin; +import org.elasticsearch.transport.nio.NioTransportPlugin; import org.elasticsearch.xpack.sql.plugin.SqlQueryAction; import org.elasticsearch.xpack.sql.plugin.SqlQueryRequestBuilder; import org.elasticsearch.xpack.sql.plugin.SqlQueryResponse; @@ -66,9 +67,10 @@ public class SqlLicenseIT extends AbstractLicensesIntegrationTestCase { @Override protected Settings nodeSettings(int nodeOrdinal) { // Enable http so we can test JDBC licensing because only exists on the REST layer. + String httpPlugin = randomBoolean() ? Netty4Plugin.NETTY_HTTP_TRANSPORT_NAME : NioTransportPlugin.NIO_TRANSPORT_NAME; return Settings.builder() .put(super.nodeSettings(nodeOrdinal)) - .put(NetworkModule.HTTP_TYPE_KEY, Netty4Plugin.NETTY_HTTP_TRANSPORT_NAME) + .put(NetworkModule.HTTP_TYPE_KEY, httpPlugin) .build(); } From d0f35d204e4a0d7806d5b92ca0caa17016d039e6 Mon Sep 17 00:00:00 2001 From: Lisa Cawley Date: Thu, 7 Jun 2018 08:55:14 -0700 Subject: [PATCH 23/62] [DOCS] Clarifies recommendation for audit index output type (#31146) --- .../docs/en/security/auditing/event-types.asciidoc | 1 - .../docs/en/security/auditing/output-index.asciidoc | 6 +++++- .../en/security/auditing/output-logfile.asciidoc | 1 - x-pack/docs/en/security/auditing/overview.asciidoc | 13 ++++--------- 4 files changed, 9 insertions(+), 12 deletions(-) diff --git a/x-pack/docs/en/security/auditing/event-types.asciidoc b/x-pack/docs/en/security/auditing/event-types.asciidoc index 1a6d4b02b0c..100de2da13a 100644 --- a/x-pack/docs/en/security/auditing/event-types.asciidoc +++ b/x-pack/docs/en/security/auditing/event-types.asciidoc @@ -1,5 +1,4 @@ [role="xpack"] -[float] [[audit-event-types]] === Audit event types diff --git a/x-pack/docs/en/security/auditing/output-index.asciidoc b/x-pack/docs/en/security/auditing/output-index.asciidoc index e3ba805d715..a07bd7a8d06 100644 --- a/x-pack/docs/en/security/auditing/output-index.asciidoc +++ b/x-pack/docs/en/security/auditing/output-index.asciidoc @@ -1,5 +1,4 @@ [role="xpack"] -[float] [[audit-index]] === Index audit output @@ -36,3 +35,8 @@ xpack.security.audit.index.settings: number_of_shards: 1 number_of_replicas: 1 ---------------------------- + +NOTE: Audit events are batched for indexing so there is a lag before +events appear in the index. You can control how frequently batches of +events are pushed to the index by setting +`xpack.security.audit.index.flush_interval` in `elasticsearch.yml`. diff --git a/x-pack/docs/en/security/auditing/output-logfile.asciidoc b/x-pack/docs/en/security/auditing/output-logfile.asciidoc index 095f57cf61e..849046bdb9d 100644 --- a/x-pack/docs/en/security/auditing/output-logfile.asciidoc +++ b/x-pack/docs/en/security/auditing/output-logfile.asciidoc @@ -1,5 +1,4 @@ [role="xpack"] -[float] [[audit-log-output]] === Logfile audit output diff --git a/x-pack/docs/en/security/auditing/overview.asciidoc b/x-pack/docs/en/security/auditing/overview.asciidoc index b60122612a0..b874af3d1c4 100644 --- a/x-pack/docs/en/security/auditing/overview.asciidoc +++ b/x-pack/docs/en/security/auditing/overview.asciidoc @@ -29,12 +29,7 @@ indexing by setting `xpack.security.audit.outputs` in `elasticsearch.yml`: xpack.security.audit.outputs: [ index, logfile ] ---------------------------- -The `index` output type should be used in conjunction with the `logfile` -output type Because it is possible for the `index` output type to lose -messages if the target index is unavailable, the `access.log` should be -used as the official record of events. - -NOTE: Audit events are batched for indexing so there is a lag before -events appear in the index. You can control how frequently batches of -events are pushed to the index by setting -`xpack.security.audit.index.flush_interval` in `elasticsearch.yml`. +TIP: If you choose to enable the `index` output type, we strongly recommend that +you still use the `logfile` output as the official record of events. If the +target index is unavailable (for example, during a rolling upgrade), the `index` +output can lose messages. From 1de38a24882630fdb3ffd30499e74c592b671de5 Mon Sep 17 00:00:00 2001 From: lcawl Date: Thu, 7 Jun 2018 09:26:00 -0700 Subject: [PATCH 24/62] [DOCS] Moves ML content to stack-docs --- .../docs/en/ml/getting-started-data.asciidoc | 210 ----------- .../en/ml/getting-started-forecast.asciidoc | 76 ---- .../docs/en/ml/getting-started-multi.asciidoc | 211 ----------- .../docs/en/ml/getting-started-next.asciidoc | 55 --- .../en/ml/getting-started-single.asciidoc | 331 ------------------ .../en/ml/getting-started-wizards.asciidoc | 99 ------ x-pack/docs/en/ml/getting-started.asciidoc | 92 ----- .../docs/en/ml/images/ml-gs-aggregations.jpg | Bin 27119 -> 0 bytes x-pack/docs/en/ml/images/ml-gs-duration.jpg | Bin 30675 -> 0 bytes .../en/ml/images/ml-gs-forecast-actual.jpg | Bin 311318 -> 0 bytes .../docs/en/ml/images/ml-gs-forecast-open.jpg | Bin 54718 -> 0 bytes .../en/ml/images/ml-gs-forecast-results.jpg | Bin 300201 -> 0 bytes x-pack/docs/en/ml/images/ml-gs-forecast.jpg | Bin 292666 -> 0 bytes .../docs/en/ml/images/ml-gs-job1-analysis.jpg | Bin 407757 -> 0 bytes .../en/ml/images/ml-gs-job1-anomalies.jpg | Bin 136552 -> 0 bytes .../docs/en/ml/images/ml-gs-job1-datafeed.jpg | Bin 160591 -> 0 bytes .../ml/images/ml-gs-job1-explorer-anomaly.jpg | Bin 241230 -> 0 bytes .../docs/en/ml/images/ml-gs-job1-explorer.jpg | Bin 137352 -> 0 bytes .../docs/en/ml/images/ml-gs-job1-manage1.jpg | Bin 158033 -> 0 bytes .../docs/en/ml/images/ml-gs-job1-results.jpg | Bin 223646 -> 0 bytes x-pack/docs/en/ml/images/ml-gs-job1-time.jpg | Bin 179062 -> 0 bytes x-pack/docs/en/ml/images/ml-gs-job1.jpg | Bin 251279 -> 0 bytes .../ml/images/ml-gs-job2-explorer-anomaly.jpg | Bin 254727 -> 0 bytes .../en/ml/images/ml-gs-job2-explorer-host.jpg | Bin 66094 -> 0 bytes .../ml/images/ml-gs-job2-explorer-table.jpg | Bin 124817 -> 0 bytes .../docs/en/ml/images/ml-gs-job2-explorer.jpg | Bin 235927 -> 0 bytes x-pack/docs/en/ml/images/ml-gs-job2-split.jpg | Bin 144276 -> 0 bytes x-pack/docs/en/ml/images/ml-gs-multi-job.jpg | Bin 86364 -> 0 bytes x-pack/docs/en/ml/images/ml-gs-single-job.jpg | Bin 89013 -> 0 bytes x-pack/docs/en/ml/limitations.asciidoc | 198 ----------- x-pack/docs/en/ml/troubleshooting.asciidoc | 116 ------ 31 files changed, 1388 deletions(-) delete mode 100644 x-pack/docs/en/ml/getting-started-data.asciidoc delete mode 100644 x-pack/docs/en/ml/getting-started-forecast.asciidoc delete mode 100644 x-pack/docs/en/ml/getting-started-multi.asciidoc delete mode 100644 x-pack/docs/en/ml/getting-started-next.asciidoc delete mode 100644 x-pack/docs/en/ml/getting-started-single.asciidoc delete mode 100644 x-pack/docs/en/ml/getting-started-wizards.asciidoc delete mode 100644 x-pack/docs/en/ml/getting-started.asciidoc delete mode 100644 x-pack/docs/en/ml/images/ml-gs-aggregations.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-duration.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-forecast-actual.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-forecast-open.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-forecast-results.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-forecast.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-job1-analysis.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-job1-anomalies.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-job1-datafeed.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-job1-explorer-anomaly.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-job1-explorer.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-job1-manage1.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-job1-results.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-job1-time.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-job1.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-job2-explorer-anomaly.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-job2-explorer-host.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-job2-explorer-table.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-job2-explorer.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-job2-split.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-multi-job.jpg delete mode 100644 x-pack/docs/en/ml/images/ml-gs-single-job.jpg delete mode 100644 x-pack/docs/en/ml/limitations.asciidoc delete mode 100644 x-pack/docs/en/ml/troubleshooting.asciidoc diff --git a/x-pack/docs/en/ml/getting-started-data.asciidoc b/x-pack/docs/en/ml/getting-started-data.asciidoc deleted file mode 100644 index 6a0c6bbecc8..00000000000 --- a/x-pack/docs/en/ml/getting-started-data.asciidoc +++ /dev/null @@ -1,210 +0,0 @@ -[[ml-gs-data]] -=== Identifying Data for Analysis - -For the purposes of this tutorial, we provide sample data that you can play with -and search in {es}. When you consider your own data, however, it's important to -take a moment and think about where the {xpackml} features will be most -impactful. - -The first consideration is that it must be time series data. The {ml} features -are designed to model and detect anomalies in time series data. - -The second consideration, especially when you are first learning to use {ml}, -is the importance of the data and how familiar you are with it. Ideally, it is -information that contains key performance indicators (KPIs) for the health, -security, or success of your business or system. It is information that you need -to monitor and act on when anomalous behavior occurs. You might even have {kib} -dashboards that you're already using to watch this data. The better you know the -data, the quicker you will be able to create {ml} jobs that generate useful -insights. - -The final consideration is where the data is located. This tutorial assumes that -your data is stored in {es}. It guides you through the steps required to create -a _{dfeed}_ that passes data to a job. If your own data is outside of {es}, -analysis is still possible by using a post data API. - -IMPORTANT: If you want to create {ml} jobs in {kib}, you must use {dfeeds}. -That is to say, you must store your input data in {es}. When you create -a job, you select an existing index pattern and {kib} configures the {dfeed} -for you under the covers. - - -[float] -[[ml-gs-sampledata]] -==== Obtaining a Sample Data Set - -In this step we will upload some sample data to {es}. This is standard -{es} functionality, and is needed to set the stage for using {ml}. - -The sample data for this tutorial contains information about the requests that -are received by various applications and services in a system. A system -administrator might use this type of information to track the total number of -requests across all of the infrastructure. If the number of requests increases -or decreases unexpectedly, for example, this might be an indication that there -is a problem or that resources need to be redistributed. By using the {xpack} -{ml} features to model the behavior of this data, it is easier to identify -anomalies and take appropriate action. - -Download this sample data by clicking here: -https://download.elastic.co/demos/machine_learning/gettingstarted/server_metrics.tar.gz[server_metrics.tar.gz] - -Use the following commands to extract the files: - -[source,sh] ----------------------------------- -tar -zxvf server_metrics.tar.gz ----------------------------------- - -Each document in the server-metrics data set has the following schema: - -[source,js] ----------------------------------- -{ - "index": - { - "_index":"server-metrics", - "_type":"metric", - "_id":"1177" - } -} -{ - "@timestamp":"2017-03-23T13:00:00", - "accept":36320, - "deny":4156, - "host":"server_2", - "response":2.4558210155, - "service":"app_3", - "total":40476 -} ----------------------------------- -// NOTCONSOLE - -TIP: The sample data sets include summarized data. For example, the `total` -value is a sum of the requests that were received by a specific service at a -particular time. If your data is stored in {es}, you can generate -this type of sum or average by using aggregations. One of the benefits of -summarizing data this way is that {es} automatically distributes -these calculations across your cluster. You can then feed this summarized data -into {xpackml} instead of raw results, which reduces the volume -of data that must be considered while detecting anomalies. For the purposes of -this tutorial, however, these summary values are stored in {es}. For more -information, see <>. - -Before you load the data set, you need to set up {ref}/mapping.html[_mappings_] -for the fields. Mappings divide the documents in the index into logical groups -and specify a field's characteristics, such as the field's searchability or -whether or not it's _tokenized_, or broken up into separate words. - -The sample data includes an `upload_server-metrics.sh` script, which you can use -to create the mappings and load the data set. You can download it by clicking -here: https://download.elastic.co/demos/machine_learning/gettingstarted/upload_server-metrics.sh[upload_server-metrics.sh] -Before you run it, however, you must edit the USERNAME and PASSWORD variables -with your actual user ID and password. - -The script runs a command similar to the following example, which sets up a -mapping for the data set: - -[source,sh] ----------------------------------- -curl -u elastic:x-pack-test-password -X PUT -H 'Content-Type: application/json' -http://localhost:9200/server-metrics -d '{ - "settings":{ - "number_of_shards":1, - "number_of_replicas":0 - }, - "mappings":{ - "metric":{ - "properties":{ - "@timestamp":{ - "type":"date" - }, - "accept":{ - "type":"long" - }, - "deny":{ - "type":"long" - }, - "host":{ - "type":"keyword" - }, - "response":{ - "type":"float" - }, - "service":{ - "type":"keyword" - }, - "total":{ - "type":"long" - } - } - } - } -}' ----------------------------------- -// NOTCONSOLE - -NOTE: If you run this command, you must replace `x-pack-test-password` with your -actual password. - -You can then use the {es} `bulk` API to load the data set. The -`upload_server-metrics.sh` script runs commands similar to the following -example, which loads the four JSON files: - -[source,sh] ----------------------------------- -curl -u elastic:x-pack-test-password -X POST -H "Content-Type: application/json" -http://localhost:9200/server-metrics/_bulk --data-binary "@server-metrics_1.json" - -curl -u elastic:x-pack-test-password -X POST -H "Content-Type: application/json" -http://localhost:9200/server-metrics/_bulk --data-binary "@server-metrics_2.json" - -curl -u elastic:x-pack-test-password -X POST -H "Content-Type: application/json" -http://localhost:9200/server-metrics/_bulk --data-binary "@server-metrics_3.json" - -curl -u elastic:x-pack-test-password -X POST -H "Content-Type: application/json" -http://localhost:9200/server-metrics/_bulk --data-binary "@server-metrics_4.json" ----------------------------------- -// NOTCONSOLE - -TIP: This will upload 200MB of data. This is split into 4 files as there is a -maximum 100MB limit when using the `_bulk` API. - -These commands might take some time to run, depending on the computing resources -available. - -You can verify that the data was loaded successfully with the following command: - -[source,sh] ----------------------------------- -curl 'http://localhost:9200/_cat/indices?v' -u elastic:x-pack-test-password ----------------------------------- -// NOTCONSOLE - -You should see output similar to the following: - -[source,txt] ----------------------------------- -health status index ... pri rep docs.count ... -green open server-metrics ... 1 0 905940 ... ----------------------------------- -// NOTCONSOLE - -Next, you must define an index pattern for this data set: - -. Open {kib} in your web browser and log in. If you are running {kib} -locally, go to `http://localhost:5601/`. - -. Click the **Management** tab, then **{kib}** > **Index Patterns**. - -. If you already have index patterns, click **Create Index** to define a new -one. Otherwise, the **Create index pattern** wizard is already open. - -. For this tutorial, any pattern that matches the name of the index you've -loaded will work. For example, enter `server-metrics*` as the index pattern. - -. In the **Configure settings** step, select the `@timestamp` field in the -**Time Filter field name** list. - -. Click **Create index pattern**. - -This data set can now be analyzed in {ml} jobs in {kib}. diff --git a/x-pack/docs/en/ml/getting-started-forecast.asciidoc b/x-pack/docs/en/ml/getting-started-forecast.asciidoc deleted file mode 100644 index bc445195bd4..00000000000 --- a/x-pack/docs/en/ml/getting-started-forecast.asciidoc +++ /dev/null @@ -1,76 +0,0 @@ -[[ml-gs-forecast]] -=== Creating Forecasts - -In addition to detecting anomalous behavior in your data, you can use -{ml} to predict future behavior. For more information, see <>. - -To create a forecast in {kib}: - -. Go to the **Single Metric Viewer** and select one of the jobs that you created -in this tutorial. For example, select the `total-requests` job. - -. Click **Forecast**. + -+ --- -[role="screenshot"] -image::images/ml-gs-forecast.jpg["Create a forecast from the Single Metric Viewer"] --- - -. Specify a duration for your forecast. This value indicates how far to -extrapolate beyond the last record that was processed. You must use time units, -such as `30d` for 30 days. For more information, see -{ref}/common-options.html#time-units[Time Units]. In this example, we use a -duration of 1 week: + -+ --- -[role="screenshot"] -image::images/ml-gs-duration.jpg["Specify a duration of 1w"] --- - -. View the forecast in the **Single Metric Viewer**: + -+ --- -[role="screenshot"] -image::images/ml-gs-forecast-results.jpg["View a forecast from the Single Metric Viewer"] - -The yellow line in the chart represents the predicted data values. The shaded -yellow area represents the bounds for the predicted values, which also gives an -indication of the confidence of the predictions. Note that the bounds generally -increase with time (that is to say, the confidence levels decrease), since you -are forecasting further into the future. Eventually if the confidence levels are -too low, the forecast stops. --- - -. Optional: Compare the forecast to actual data. + -+ --- -You can try this with the sample data by choosing a subset of the data when you -create the job, as described in <>. Create the forecast then process -the remaining data, as described in <>. --- - -.. After you restart the {dfeed}, re-open the forecast by selecting the job in -the **Single Metric Viewer**, clicking **Forecast**, and selecting your forecast -from the list. For example: + -+ --- -[role="screenshot"] -image::images/ml-gs-forecast-open.jpg["Open a forecast in the Single Metric Viewer"] --- - -.. View the forecast and actual data in the **Single Metric Viewer**: + -+ --- -[role="screenshot"] -image::images/ml-gs-forecast-actual.jpg["View a forecast over actual data in the Single Metric Viewer"] - -The chart contains the actual data values, the bounds for the expected values, -the anomalies, the forecast data values, and the bounds for the forecast. This -combination of actual and forecast data gives you an indication of how well the -{xpack} {ml} features can extrapolate the future behavior of the data. --- - -Now that you have seen how easy it is to create forecasts with the sample data, -consider what type of events you might want to predict in your own data. For -more information and ideas, as well as a list of limitations related to -forecasts, see <>. diff --git a/x-pack/docs/en/ml/getting-started-multi.asciidoc b/x-pack/docs/en/ml/getting-started-multi.asciidoc deleted file mode 100644 index 804abacc605..00000000000 --- a/x-pack/docs/en/ml/getting-started-multi.asciidoc +++ /dev/null @@ -1,211 +0,0 @@ -[[ml-gs-multi-jobs]] -=== Creating Multi-metric Jobs - -The multi-metric job wizard in {kib} provides a simple way to create more -complex jobs with multiple detectors. For example, in the single metric job, you -were tracking total requests versus time. You might also want to track other -metrics like average response time or the maximum number of denied requests. -Instead of creating jobs for each of those metrics, you can combine them in a -multi-metric job. - -You can also use multi-metric jobs to split a single time series into multiple -time series based on a categorical field. For example, you can split the data -based on its hostnames, locations, or users. Each time series is modeled -independently. By looking at temporal patterns on a per entity basis, you might -spot things that might have otherwise been hidden in the lumped view. - -Conceptually, you can think of this as running many independent single metric -jobs. By bundling them together in a multi-metric job, however, you can see an -overall score and shared influencers for all the metrics and all the entities in -the job. Multi-metric jobs therefore scale better than having many independent -single metric jobs and provide better results when you have influencers that are -shared across the detectors. - -The sample data for this tutorial contains information about the requests that -are received by various applications and services in a system. Let's assume that -you want to monitor the requests received and the response time. In particular, -you might want to track those metrics on a per service basis to see if any -services have unusual patterns. - -To create a multi-metric job in {kib}: - -. Open {kib} in your web browser and log in. If you are running {kib} locally, -go to `http://localhost:5601/`. - -. Click **Machine Learning** in the side navigation, then click **Create new job**. - -. Select the index pattern that you created for the sample data. For example, -`server-metrics*`. - -. In the **Use a wizard** section, click **Multi metric**. - -. Configure the job by providing the following job settings: + -+ --- -[role="screenshot"] -image::images/ml-gs-multi-job.jpg["Create a new job from the server-metrics index"] --- - -.. For the **Fields**, select `high mean(response)` and `sum(total)`. This -creates two detectors and specifies the analysis function and field that each -detector uses. The first detector uses the high mean function to detect -unusually high average values for the `response` field in each bucket. The -second detector uses the sum function to detect when the sum of the `total` -field is anomalous in each bucket. For more information about any of the -analytical functions, see <>. - -.. For the **Bucket span**, enter `10m`. This value specifies the size of the -interval that the analysis is aggregated into. As was the case in the single -metric example, this value has a significant impact on the analysis. When you're -creating jobs for your own data, you might need to experiment with different -bucket spans depending on the frequency of the input data, the duration of -typical anomalies, and the frequency at which alerting is required. - -.. For the **Split Data**, select `service`. When you specify this -option, the analysis is segmented such that you have completely independent -baselines for each distinct value of this field. -//TBD: What is the importance of having separate baselines? -There are seven unique service keyword values in the sample data. Thus for each -of the seven services, you will see the high mean response metrics and sum -total metrics. + -+ --- -NOTE: If you are creating a job by using the {ml} APIs or the advanced job -wizard in {kib}, you can accomplish this split by using the -`partition_field_name` property. - --- - -.. For the **Key Fields (Influencers)**, select `host`. Note that the `service` field -is also automatically selected because you used it to split the data. These key -fields are also known as _influencers_. -When you identify a field as an influencer, you are indicating that you think -it contains information about someone or something that influences or -contributes to anomalies. -+ --- -[TIP] -======================== -Picking an influencer is strongly recommended for the following reasons: - -* It allows you to more easily assign blame for the anomaly -* It simplifies and aggregates the results - -The best influencer is the person or thing that you want to blame for the -anomaly. In many cases, users or client IP addresses make excellent influencers. -Influencers can be any field in your data; they do not need to be fields that -are specified in your detectors, though they often are. - -As a best practice, do not pick too many influencers. For example, you generally -do not need more than three. If you pick many influencers, the results can be -overwhelming and there is a small overhead to the analysis. - -======================== -//TBD: Is this something you can determine later from looking at results and -//update your job with if necessary? Is it all post-processing or does it affect -//the ongoing modeling? --- - -. Click **Use full server-metrics* data**. Two graphs are generated for each -`service` value, which represent the high mean `response` values and -sum `total` values over time. For example: -+ --- -[role="screenshot"] -image::images/ml-gs-job2-split.jpg["Kibana charts for data split by service"] --- - -. Provide a name for the job, for example `response_requests_by_app`. The job -name must be unique in your cluster. You can also optionally provide a -description of the job. - -. Click **Create Job**. - -When the job is created, you can choose to view the results, continue the job in -real-time, and create a watch. In this tutorial, we will proceed to view the -results. - -TIP: The `create_multi_metic.sh` script creates a similar job and {dfeed} by -using the {ml} APIs. You can download that script by clicking -here: https://download.elastic.co/demos/machine_learning/gettingstarted/create_multi_metric.sh[create_multi_metric.sh] -For API reference information, see {ref}/ml-apis.html[Machine Learning APIs]. - -[[ml-gs-job2-analyze]] -=== Exploring Multi-metric Job Results - -The {xpackml} features analyze the input stream of data, model its behavior, and -perform analysis based on the two detectors you defined in your job. When an -event occurs outside of the model, that event is identified as an anomaly. - -You can use the **Anomaly Explorer** in {kib} to view the analysis results: - -[role="screenshot"] -image::images/ml-gs-job2-explorer.jpg["Job results in the Anomaly Explorer"] - -You can explore the overall anomaly time line, which shows the maximum anomaly -score for each section in the specified time period. You can change the time -period by using the time picker in the {kib} toolbar. Note that the sections in -this time line do not necessarily correspond to the bucket span. If you change -the time period, the sections change size too. The smallest possible size for -these sections is a bucket. If you specify a large time period, the sections can -span many buckets. - -On the left is a list of the top influencers for all of the detected anomalies -in that same time period. The list includes maximum anomaly scores, which in -this case are aggregated for each influencer, for each bucket, across all -detectors. There is also a total sum of the anomaly scores for each influencer. -You can use this list to help you narrow down the contributing factors and focus -on the most anomalous entities. - -If your job contains influencers, you can also explore swim lanes that -correspond to the values of an influencer. In this example, the swim lanes -correspond to the values for the `service` field that you used to split the data. -Each lane represents a unique application or service name. Since you specified -the `host` field as an influencer, you can also optionally view the results in -swim lanes for each host name: - -[role="screenshot"] -image::images/ml-gs-job2-explorer-host.jpg["Job results sorted by host"] - -By default, the swim lanes are ordered by their maximum anomaly score values. -You can click on the sections in the swim lane to see details about the -anomalies that occurred in that time interval. - -NOTE: The anomaly scores that you see in each section of the **Anomaly Explorer** -might differ slightly. This disparity occurs because for each job we generate -bucket results, influencer results, and record results. Anomaly scores are -generated for each type of result. The anomaly timeline uses the bucket-level -anomaly scores. The list of top influencers uses the influencer-level anomaly -scores. The list of anomalies uses the record-level anomaly scores. For more -information about these different result types, see -{ref}/ml-results-resource.html[Results Resources]. - -Click on a section in the swim lanes to obtain more information about the -anomalies in that time period. For example, click on the red section in the swim -lane for `server_2`: - -[role="screenshot"] -image::images/ml-gs-job2-explorer-anomaly.jpg["Job results for an anomaly"] - -You can see exact times when anomalies occurred and which detectors or metrics -caught the anomaly. Also note that because you split the data by the `service` -field, you see separate charts for each applicable service. In particular, you -see charts for each service for which there is data on the specified host in the -specified time interval. - -Below the charts, there is a table that provides more information, such as the -typical and actual values and the influencers that contributed to the anomaly. - -[role="screenshot"] -image::images/ml-gs-job2-explorer-table.jpg["Job results table"] - -Notice that there are anomalies for both detectors, that is to say for both the -`high_mean(response)` and the `sum(total)` metrics in this time interval. The -table aggregates the anomalies to show the highest severity anomaly per detector -and entity, which is the by, over, or partition field value that is displayed -in the **found for** column. To view all the anomalies without any aggregation, -set the **Interval** to `Show all`. - -By -investigating multiple metrics in a single job, you might see relationships -between events in your data that would otherwise be overlooked. diff --git a/x-pack/docs/en/ml/getting-started-next.asciidoc b/x-pack/docs/en/ml/getting-started-next.asciidoc deleted file mode 100644 index 90d1e7798ee..00000000000 --- a/x-pack/docs/en/ml/getting-started-next.asciidoc +++ /dev/null @@ -1,55 +0,0 @@ -[[ml-gs-next]] -=== Next Steps - -By completing this tutorial, you've learned how you can detect anomalous -behavior in a simple set of sample data. You created single and multi-metric -jobs in {kib}, which creates and opens jobs and creates and starts {dfeeds} for -you under the covers. You examined the results of the {ml} analysis in the -**Single Metric Viewer** and **Anomaly Explorer** in {kib}. You also -extrapolated the future behavior of a job by creating a forecast. - -If you want to learn about advanced job options, you might be interested in -the following video tutorial: -https://www.elastic.co/videos/machine-learning-lab-3-detect-outliers-in-a-population[Machine Learning Lab 3 - Detect Outliers in a Population]. - -If you intend to use {ml} APIs in your applications, a good next step might be -to learn about the APIs by retrieving information about these sample jobs. -For example, the following APIs retrieve information about the jobs and {dfeeds}. - -[source,js] --------------------------------------------------- -GET _xpack/ml/anomaly_detectors - -GET _xpack/ml/datafeeds --------------------------------------------------- -// CONSOLE - -For more information about the {ml} APIs, see <>. - -Ultimately, the next step is to start applying {ml} to your own data. -As mentioned in <>, there are three things to consider when you're -thinking about where {ml} will be most impactful: - -. It must be time series data. -. It should be information that contains key performance indicators for the -health, security, or success of your business or system. The better you know the -data, the quicker you will be able to create jobs that generate useful -insights. -. Ideally, the data is located in {es} and you can therefore create a {dfeed} -that retrieves data in real time. If your data is outside of {es}, you -cannot use {kib} to create your jobs and you cannot use {dfeeds}. Machine -learning analysis is still possible, however, by using APIs to create and manage -jobs and to post data to them. - -Once you have decided which data to analyze, you can start considering which -analysis functions you want to use. For more information, see <>. - -In general, it is a good idea to start with single metric jobs for your -key performance indicators. After you examine these simple analysis results, -you will have a better idea of what the influencers might be. You can create -multi-metric jobs and split the data or create more complex analysis functions -as necessary. For examples of more complicated configuration options, see -<>. - -If you encounter problems, we're here to help. See <> and -<>. diff --git a/x-pack/docs/en/ml/getting-started-single.asciidoc b/x-pack/docs/en/ml/getting-started-single.asciidoc deleted file mode 100644 index 3befdbaf34d..00000000000 --- a/x-pack/docs/en/ml/getting-started-single.asciidoc +++ /dev/null @@ -1,331 +0,0 @@ -[[ml-gs-jobs]] -=== Creating Single Metric Jobs - -At this point in the tutorial, the goal is to detect anomalies in the -total requests received by your applications and services. The sample data -contains a single key performance indicator(KPI) to track this, which is the total -requests over time. It is therefore logical to start by creating a single metric -job for this KPI. - -TIP: If you are using aggregated data, you can create an advanced job -and configure it to use a `summary_count_field_name`. The {ml} algorithms will -make the best possible use of summarized data in this case. For simplicity, in -this tutorial we will not make use of that advanced functionality. For more -information, see <>. - -A single metric job contains a single _detector_. A detector defines the type of -analysis that will occur (for example, `max`, `average`, or `rare` analytical -functions) and the fields that will be analyzed. - -To create a single metric job in {kib}: - -. Open {kib} in your web browser and log in. If you are running {kib} locally, -go to `http://localhost:5601/`. - -. Click **Machine Learning** in the side navigation. - -. Click **Create new job**. - -. Select the index pattern that you created for the sample data. For example, -`server-metrics*`. - -. In the **Use a wizard** section, click **Single metric**. - -. Configure the job by providing the following information: + -+ --- -[role="screenshot"] -image::images/ml-gs-single-job.jpg["Create a new job from the server-metrics index"] --- - -.. For the **Aggregation**, select `Sum`. This value specifies the analysis -function that is used. -+ --- -Some of the analytical functions look for single anomalous data points. For -example, `max` identifies the maximum value that is seen within a bucket. -Others perform some aggregation over the length of the bucket. For example, -`mean` calculates the mean of all the data points seen within the bucket. -Similarly, `count` calculates the total number of data points within the bucket. -In this tutorial, you are using the `sum` function, which calculates the sum of -the specified field's values within the bucket. For descriptions of all the -functions, see <>. --- - -.. For the **Field**, select `total`. This value specifies the field that -the detector uses in the function. -+ --- -NOTE: Some functions such as `count` and `rare` do not require fields. --- - -.. For the **Bucket span**, enter `10m`. This value specifies the size of the -interval that the analysis is aggregated into. -+ --- -The {xpackml} features use the concept of a bucket to divide up the time series -into batches for processing. For example, if you are monitoring -the total number of requests in the system, -using a bucket span of 1 hour would mean that at the end of each hour, it -calculates the sum of the requests for the last hour and computes the -anomalousness of that value compared to previous hours. - -The bucket span has two purposes: it dictates over what time span to look for -anomalous features in data, and also determines how quickly anomalies can be -detected. Choosing a shorter bucket span enables anomalies to be detected more -quickly. However, there is a risk of being too sensitive to natural variations -or noise in the input data. Choosing too long a bucket span can mean that -interesting anomalies are averaged away. There is also the possibility that the -aggregation might smooth out some anomalies based on when the bucket starts -in time. - -The bucket span has a significant impact on the analysis. When you're trying to -determine what value to use, take into account the granularity at which you -want to perform the analysis, the frequency of the input data, the duration of -typical anomalies, and the frequency at which alerting is required. --- - -. Determine whether you want to process all of the data or only part of it. If -you want to analyze all of the existing data, click -**Use full server-metrics* data**. If you want to see what happens when you -stop and start {dfeeds} and process additional data over time, click the time -picker in the {kib} toolbar. Since the sample data spans a period of time -between March 23, 2017 and April 22, 2017, click **Absolute**. Set the start -time to March 23, 2017 and the end time to April 1, 2017, for example. Once -you've got the time range set up, click the **Go** button. + -+ --- -[role="screenshot"] -image::images/ml-gs-job1-time.jpg["Setting the time range for the {dfeed}"] --- -+ --- -A graph is generated, which represents the total number of requests over time. - -Note that the **Estimate bucket span** option is no longer greyed out in the -**Buck span** field. This is an experimental feature that you can use to help -determine an appropriate bucket span for your data. For the purposes of this -tutorial, we will leave the bucket span at 10 minutes. --- - -. Provide a name for the job, for example `total-requests`. The job name must -be unique in your cluster. You can also optionally provide a description of the -job and create a job group. - -. Click **Create Job**. + -+ --- -[role="screenshot"] -image::images/ml-gs-job1.jpg["A graph of the total number of requests over time"] --- - -As the job is created, the graph is updated to give a visual representation of -the progress of {ml} as the data is processed. This view is only available whilst the -job is running. - -When the job is created, you can choose to view the results, continue the job -in real-time, and create a watch. In this tutorial, we will look at how to -manage jobs and {dfeeds} before we view the results. - -TIP: The `create_single_metic.sh` script creates a similar job and {dfeed} by -using the {ml} APIs. You can download that script by clicking -here: https://download.elastic.co/demos/machine_learning/gettingstarted/create_single_metric.sh[create_single_metric.sh] -For API reference information, see {ref}/ml-apis.html[Machine Learning APIs]. - -[[ml-gs-job1-manage]] -=== Managing Jobs - -After you create a job, you can see its status in the **Job Management** tab: + - -[role="screenshot"] -image::images/ml-gs-job1-manage1.jpg["Status information for the total-requests job"] - -The following information is provided for each job: - -Job ID:: -The unique identifier for the job. - -Description:: -The optional description of the job. - -Processed records:: -The number of records that have been processed by the job. - -Memory status:: -The status of the mathematical models. When you create jobs by using the APIs or -by using the advanced options in {kib}, you can specify a `model_memory_limit`. -That value is the maximum amount of memory resources that the mathematical -models can use. Once that limit is approached, data pruning becomes more -aggressive. Upon exceeding that limit, new entities are not modeled. For more -information about this setting, see -{ref}/ml-job-resource.html#ml-apilimits[Analysis Limits]. The memory status -field reflects whether you have reached or exceeded the model memory limit. It -can have one of the following values: + -`ok`::: The models stayed below the configured value. -`soft_limit`::: The models used more than 60% of the configured memory limit -and older unused models will be pruned to free up space. -`hard_limit`::: The models used more space than the configured memory limit. -As a result, not all incoming data was processed. - -Job state:: -The status of the job, which can be one of the following values: + -`opened`::: The job is available to receive and process data. -`closed`::: The job finished successfully with its model state persisted. -The job must be opened before it can accept further data. -`closing`::: The job close action is in progress and has not yet completed. -A closing job cannot accept further data. -`failed`::: The job did not finish successfully due to an error. -This situation can occur due to invalid input data. -If the job had irrevocably failed, it must be force closed and then deleted. -If the {dfeed} can be corrected, the job can be closed and then re-opened. - -{dfeed-cap} state:: -The status of the {dfeed}, which can be one of the following values: + -started::: The {dfeed} is actively receiving data. -stopped::: The {dfeed} is stopped and will not receive data until it is -re-started. - -Latest timestamp:: -The timestamp of the last processed record. - - -If you click the arrow beside the name of job, you can show or hide additional -information, such as the settings, configuration information, or messages for -the job. - -You can also click one of the **Actions** buttons to start the {dfeed}, edit -the job or {dfeed}, and clone or delete the job, for example. - -[float] -[[ml-gs-job1-datafeed]] -==== Managing {dfeeds-cap} - -A {dfeed} can be started and stopped multiple times throughout its lifecycle. -If you want to retrieve more data from {es} and the {dfeed} is stopped, you must -restart it. - -For example, if you did not use the full data when you created the job, you can -now process the remaining data by restarting the {dfeed}: - -. In the **Machine Learning** / **Job Management** tab, click the following -button to start the {dfeed}: image:images/ml-start-feed.jpg["Start {dfeed}"] - - -. Choose a start time and end time. For example, -click **Continue from 2017-04-01 23:59:00** and select **2017-04-30** as the -search end time. Then click **Start**. The date picker defaults to the latest -timestamp of processed data. Be careful not to leave any gaps in the analysis, -otherwise you might miss anomalies. + -+ --- -[role="screenshot"] -image::images/ml-gs-job1-datafeed.jpg["Restarting a {dfeed}"] --- - -The {dfeed} state changes to `started`, the job state changes to `opened`, -and the number of processed records increases as the new data is analyzed. The -latest timestamp information also increases. - -TIP: If your data is being loaded continuously, you can continue running the job -in real time. For this, start your {dfeed} and select **No end time**. - -If you want to stop the {dfeed} at this point, you can click the following -button: image:images/ml-stop-feed.jpg["Stop {dfeed}"] - -Now that you have processed all the data, let's start exploring the job results. - -[[ml-gs-job1-analyze]] -=== Exploring Single Metric Job Results - -The {xpackml} features analyze the input stream of data, model its behavior, -and perform analysis based on the detectors you defined in your job. When an -event occurs outside of the model, that event is identified as an anomaly. - -Result records for each anomaly are stored in `.ml-anomalies-*` indices in {es}. -By default, the name of the index where {ml} results are stored is labelled -`shared`, which corresponds to the `.ml-anomalies-shared` index. - -You can use the **Anomaly Explorer** or the **Single Metric Viewer** in {kib} to -view the analysis results. - -Anomaly Explorer:: - This view contains swim lanes showing the maximum anomaly score over time. - There is an overall swim lane that shows the overall score for the job, and - also swim lanes for each influencer. By selecting a block in a swim lane, the - anomaly details are displayed alongside the original source data (where - applicable). - -Single Metric Viewer:: - This view contains a chart that represents the actual and expected values over - time. This is only available for jobs that analyze a single time series and - where `model_plot_config` is enabled. As in the **Anomaly Explorer**, anomalous - data points are shown in different colors depending on their score. - -By default when you view the results for a single metric job, the -**Single Metric Viewer** opens: -[role="screenshot"] -image::images/ml-gs-job1-analysis.jpg["Single Metric Viewer for total-requests job"] - - -The blue line in the chart represents the actual data values. The shaded blue -area represents the bounds for the expected values. The area between the upper -and lower bounds are the most likely values for the model. If a value is outside -of this area then it can be said to be anomalous. - -If you slide the time selector from the beginning of the data to the end of the -data, you can see how the model improves as it processes more data. At the -beginning, the expected range of values is pretty broad and the model is not -capturing the periodicity in the data. But it quickly learns and begins to -reflect the daily variation. - -Any data points outside the range that was predicted by the model are marked -as anomalies. When you have high volumes of real-life data, many anomalies -might be found. These vary in probability from very likely to highly unlikely, -that is to say, from not particularly anomalous to highly anomalous. There -can be none, one or two or tens, sometimes hundreds of anomalies found within -each bucket. There can be many thousands found per job. In order to provide -a sensible view of the results, an _anomaly score_ is calculated for each bucket -time interval. The anomaly score is a value from 0 to 100, which indicates -the significance of the observed anomaly compared to previously seen anomalies. -The highly anomalous values are shown in red and the low scored values are -indicated in blue. An interval with a high anomaly score is significant and -requires investigation. - -Slide the time selector to a section of the time series that contains a red -anomaly data point. If you hover over the point, you can see more information -about that data point. You can also see details in the **Anomalies** section -of the viewer. For example: -[role="screenshot"] -image::images/ml-gs-job1-anomalies.jpg["Single Metric Viewer Anomalies for total-requests job"] - -For each anomaly you can see key details such as the time, the actual and -expected ("typical") values, and their probability. - -By default, the table contains all anomalies that have a severity of "warning" -or higher in the selected section of the timeline. If you are only interested in -critical anomalies, for example, you can change the severity threshold for this -table. - -The anomalies table also automatically calculates an interval for the data in -the table. If the time difference between the earliest and latest records in the -table is less than two days, the data is aggregated by hour to show the details -of the highest severity anomaly for each detector. Otherwise, it is -aggregated by day. You can change the interval for the table, for example, to -show all anomalies. - -You can see the same information in a different format by using the -**Anomaly Explorer**: -[role="screenshot"] -image::images/ml-gs-job1-explorer.jpg["Anomaly Explorer for total-requests job"] - - -Click one of the red sections in the swim lane to see details about the anomalies -that occurred in that time interval. For example: -[role="screenshot"] -image::images/ml-gs-job1-explorer-anomaly.jpg["Anomaly Explorer details for total-requests job"] - -After you have identified anomalies, often the next step is to try to determine -the context of those situations. For example, are there other factors that are -contributing to the problem? Are the anomalies confined to particular -applications or servers? You can begin to troubleshoot these situations by -layering additional jobs or creating multi-metric jobs. diff --git a/x-pack/docs/en/ml/getting-started-wizards.asciidoc b/x-pack/docs/en/ml/getting-started-wizards.asciidoc deleted file mode 100644 index 2eb6b5c2904..00000000000 --- a/x-pack/docs/en/ml/getting-started-wizards.asciidoc +++ /dev/null @@ -1,99 +0,0 @@ -[[ml-gs-wizards]] -=== Creating Jobs in {kib} -++++ -Creating Jobs -++++ - -Machine learning jobs contain the configuration information and metadata -necessary to perform an analytical task. They also contain the results of the -analytical task. - -[NOTE] --- -This tutorial uses {kib} to create jobs and view results, but you can -alternatively use APIs to accomplish most tasks. -For API reference information, see {ref}/ml-apis.html[Machine Learning APIs]. - -The {xpackml} features in {kib} use pop-ups. You must configure your -web browser so that it does not block pop-up windows or create an -exception for your {kib} URL. --- - -{kib} provides wizards that help you create typical {ml} jobs. For example, you -can use wizards to create single metric, multi-metric, population, and advanced -jobs. - -To see the job creation wizards: - -. Open {kib} in your web browser and log in. If you are running {kib} locally, -go to `http://localhost:5601/`. - -. Click **Machine Learning** in the side navigation. - -. Click **Create new job**. - -. Click the `server-metrics*` index pattern. - -You can then choose from a list of job wizards. For example: - -[role="screenshot"] -image::images/ml-create-job.jpg["Job creation wizards in {kib}"] - -If you are not certain which wizard to use, there is also a **Data Visualizer** -that can help you explore the fields in your data. - -To learn more about the sample data: - -. Click **Data Visualizer**. + -+ --- -[role="screenshot"] -image::images/ml-data-visualizer.jpg["Data Visualizer in {kib}"] --- - -. Select a time period that you're interested in exploring by using the time -picker in the {kib} toolbar. Alternatively, click -**Use full server-metrics* data** to view data over the full time range. In this -sample data, the documents relate to March and April 2017. - -. Optional: Change the number of documents per shard that are used in the -visualizations. There is a relatively small number of documents in the sample -data, so you can choose a value of `all`. For larger data sets, keep in mind -that using a large sample size increases query run times and increases the load -on the cluster. - -[role="screenshot"] -image::images/ml-data-metrics.jpg["Data Visualizer output for metrics in {kib}"] - -The fields in the indices are listed in two sections. The first section contains -the numeric ("metric") fields. The second section contains non-metric fields -(such as `keyword`, `text`, `date`, `boolean`, `ip`, and `geo_point` data types). - -For metric fields, the **Data Visualizer** indicates how many documents contain -the field in the selected time period. It also provides information about the -minimum, median, and maximum values, the number of distinct values, and their -distribution. You can use the distribution chart to get a better idea of how -the values in the data are clustered. Alternatively, you can view the top values -for metric fields. For example: - -[role="screenshot"] -image::images/ml-data-topmetrics.jpg["Data Visualizer output for top values in {kib}"] - -For date fields, the **Data Visualizer** provides the earliest and latest field -values and the number and percentage of documents that contain the field -during the selected time period. For example: - -[role="screenshot"] -image::images/ml-data-dates.jpg["Data Visualizer output for date fields in {kib}"] - -For keyword fields, the **Data Visualizer** provides the number of distinct -values, a list of the top values, and the number and percentage of documents -that contain the field during the selected time period. For example: - -[role="screenshot"] -image::images/ml-data-keywords.jpg["Data Visualizer output for date fields in {kib}"] - -In this tutorial, you will create single and multi-metric jobs that use the -`total`, `response`, `service`, and `host` fields. Though there is an option to -create an advanced job directly from the **Data Visualizer**, we will use the -single and multi-metric job creation wizards instead. diff --git a/x-pack/docs/en/ml/getting-started.asciidoc b/x-pack/docs/en/ml/getting-started.asciidoc deleted file mode 100644 index 0f1b7164d4a..00000000000 --- a/x-pack/docs/en/ml/getting-started.asciidoc +++ /dev/null @@ -1,92 +0,0 @@ -[[ml-getting-started]] -== Getting started with machine learning -++++ -Getting started -++++ - -Ready to get some hands-on experience with the {xpackml} features? This -tutorial shows you how to: - -* Load a sample data set into {es} -* Create single and multi-metric {ml} jobs in {kib} -* Use the results to identify possible anomalies in the data - -At the end of this tutorial, you should have a good idea of what {ml} is and -will hopefully be inspired to use it to detect anomalies in your own data. - -You might also be interested in these video tutorials, which use the same sample -data: - -* https://www.elastic.co/videos/machine-learning-tutorial-creating-a-single-metric-job[Machine Learning for the Elastic Stack: Creating a single metric job] -* https://www.elastic.co/videos/machine-learning-tutorial-creating-a-multi-metric-job[Machine Learning for the Elastic Stack: Creating a multi-metric job] - - -[float] -[[ml-gs-sysoverview]] -=== System Overview - -To follow the steps in this tutorial, you will need the following -components of the Elastic Stack: - -* {es} {version}, which stores the data and the analysis results -* {kib} {version}, which provides a helpful user interface for creating and -viewing jobs - -See the https://www.elastic.co/support/matrix[Elastic Support Matrix] for -information about supported operating systems. - -See {stack-ref}/installing-elastic-stack.html[Installing the Elastic Stack] for -information about installing each of the components. - -NOTE: To get started, you can install {es} and {kib} on a -single VM or even on your laptop (requires 64-bit OS). -As you add more data and your traffic grows, -you'll want to replace the single {es} instance with a cluster. - -By default, when you install {es} and {kib}, {xpack} is installed and the -{ml} features are enabled. You cannot use {ml} with the free basic license, but -you can try all of the {xpack} features with a <>. - -If you have multiple nodes in your cluster, you can optionally dedicate nodes to -specific purposes. If you want to control which nodes are -_machine learning nodes_ or limit which nodes run resource-intensive -activity related to jobs, see -{ref}/modules-node.html#modules-node-xpack[{ml} node settings]. - -[float] -[[ml-gs-users]] -==== Users, Roles, and Privileges - -The {xpackml} features implement cluster privileges and built-in roles to -make it easier to control which users have authority to view and manage the jobs, -{dfeeds}, and results. - -By default, you can perform all of the steps in this tutorial by using the -built-in `elastic` super user. However, the password must be set before the user -can do anything. For information about how to set that password, see -<>. - -If you are performing these steps in a production environment, take extra care -because `elastic` has the `superuser` role and you could inadvertently make -significant changes to the system. You can alternatively assign the -`machine_learning_admin` and `kibana_user` roles to a user ID of your choice. - -For more information, see <> and <>. - -:edit_url: https://github.com/elastic/elasticsearch/edit/{branch}/x-pack/docs/en/ml/getting-started-data.asciidoc -include::getting-started-data.asciidoc[] - -:edit_url: https://github.com/elastic/elasticsearch/edit/{branch}/x-pack/docs/en/ml/getting-started-wizards.asciidoc -include::getting-started-wizards.asciidoc[] - -:edit_url: https://github.com/elastic/elasticsearch/edit/{branch}/x-pack/docs/en/ml/getting-started-single.asciidoc -include::getting-started-single.asciidoc[] - -:edit_url: https://github.com/elastic/elasticsearch/edit/{branch}/x-pack/docs/en/ml/getting-started-multi.asciidoc -include::getting-started-multi.asciidoc[] - -:edit_url: https://github.com/elastic/elasticsearch/edit/{branch}/x-pack/docs/en/ml/getting-started-forecast.asciidoc -include::getting-started-forecast.asciidoc[] - -:edit_url: https://github.com/elastic/elasticsearch/edit/{branch}/x-pack/docs/en/ml/getting-started-next.asciidoc -include::getting-started-next.asciidoc[] diff --git a/x-pack/docs/en/ml/images/ml-gs-aggregations.jpg b/x-pack/docs/en/ml/images/ml-gs-aggregations.jpg deleted file mode 100644 index 446dce797276555f211d824243220f1b94e34f7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27119 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 TP2C>)GI$lEA7aCo{r{T)4Yl;b diff --git a/x-pack/docs/en/ml/images/ml-gs-duration.jpg b/x-pack/docs/en/ml/images/ml-gs-duration.jpg deleted file mode 100644 index 0e93b3f4ccd07b5a7077412638f3d87d77fb0266..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30675 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 z 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 diff --git a/x-pack/docs/en/ml/images/ml-gs-forecast-actual.jpg b/x-pack/docs/en/ml/images/ml-gs-forecast-actual.jpg deleted file mode 100644 index 6733b6e3477e8f68fae80c549c3053456e13734e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 311318 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

GzG<26HXzYOPv2VW) X+dn7V|9idZ-&QsLKlvjv_5QyAEJQrS diff --git a/x-pack/docs/en/ml/images/ml-gs-forecast-open.jpg b/x-pack/docs/en/ml/images/ml-gs-forecast-open.jpg deleted file mode 100644 index e654c9e7804ace4420893fdf1917f951cf352700..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54718 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 XEHXiDMIF7#Sr9+{#`mkh;^2P*m$tjX diff --git a/x-pack/docs/en/ml/images/ml-gs-forecast-results.jpg b/x-pack/docs/en/ml/images/ml-gs-forecast-results.jpg deleted file mode 100644 index f6911b4193996b369fa42566862ad82e753fc185..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300201 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

f;}-5s5a#Hx9D^T+MElxy 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

}k?fjPY?C$N&LiRmPXF_*)rAX8B-y+w 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

hHMDfkJko&a{~XMv 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%0D^JK3Q$>e}nb6^C|1Hfu_|4VDi8%Nq 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∾}Vs?}mufW#czO_m`f6veN=}*I!J-4ntTOC`y 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 MXHov*IbG@cU-ZByl>h($ diff --git a/x-pack/docs/en/ml/images/ml-gs-forecast.jpg b/x-pack/docs/en/ml/images/ml-gs-forecast.jpg deleted file mode 100644 index eeb8923b412c439bdee53a06018d04f712243730..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 292666 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

N`!BKy5(|dTtv#`Zc!bpQ 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 z⩔9UhpS(0(LR<)hjD$_%v^#=4SN*M0~m;l+}(T+MWipY$P;Qgie@#vLFym2yPu- zIPqw}zPP@`%Wo(9>exFK@@n8M&ghK(=sE}VQvlDIXNLu{ZHhpzzExe|tf&jid8I9^-JapAq$2VJ>w?NS87IZ)Sk>PqKwKs&`(2-LnS zlp-$)MEige2=_&jHE&n|iApcx|A!PU2|6ZvUf%%GkVo4#2B_0i(@4WzEfG;6~Df z!_%{+FaKj+*4CHr3l{uC5!=1uITxcMi`HcR&YV{LRc_F{oFX(OXbGqRzIrA8q4*e! zA{#xwv=JCde&4J{z9kMl(|dR=8^d{ibrX1L`8L3BN`@j3+)K3a(<^X`)E|dId}p7I zZ8v~Z*h0Q>%#AyAc8^?J8d>mu$Fw-G?P>{gW{ut0|8^bNCn#?>iDgWoWpZmV9-<2gX@1Y8h zy^KT_y z;8ymiyXW*<2+m5Q+fmf0Qc&&$!=GwY4A#~USRYTCFw6DGcxhON67!g`^h!?a0jOf5 z_|USxmr84NNFg5%o=TdEz6pHb{v%cQ-h%+gCL8M;K5o|P>O4RzIG2b^u0p`n`o7{g zty_A{&gSg%s`bpM;gZDgExq0hgh~1v6nm3HmU{`TEqvbl>xYIc^zgbVv-p~SRj8SD zUc@lmGx~GDQl`#j`-kkzotN*#<1;hoSA6UH;C!k!YHm|g<2W7PCjZkp>XG-}s#%Mz z{4y#iFG<5Hqck|X;vc$^WLo?4qXg{S^5=!sO|AVUTGjHqf9)SSXdPW1%T%jDL1%%7 zrDAh{|Ln}{0~*8+IyLPiTbjycb^35M{!PE?vTy(2{apS?eYW-fTa%Cn1USoL_O7+V5lJxwL5tnJs^wGS)KXg|)u+)-o7l%nKXBPt^ zsk{JM&P>)j7PT&|17?~Mljs}%4_!ZvoA_VWD5d)!FY%pZR83$O>6}3y{gMxG+geT* z=I&ly)abeMu2l8Gr8sAup3q*$tUn#&KZSGf!{cN-=(}Fb@bLIci&4ewElpmrR zJD$!Eh;`eM?s56oB9kiwPhe@Q7Eq>^2VHv8Cf}Vrm1trT;-u?w7qw?nlQ{&|jsFYl zgmisO-0ndJ7HzUW*c6!l?65G`olikIa8t9Q;jHWxZx33;wvOiJ>rhMrp7Vl#{joae zw;5s*4)2kdWh)ztvQ^+0m@#^gSj}mxWtF7tUzcms6O?$%FH;;`qqh&a7Q2`TaPH9L zd|ee{`zz}g*g|y4g3+u@JVd>huT7#4i6|xun2YP<2HL0T5w0x{?;P`mcMso`uE0xU!pteG_(k3Tsw5U=_xS& zRa*v>WpZw94t2%p2dAE{cpYfM|I3evO4oYwf8wX#1I3^7;10KiK)0WbRVGy^DQ1#M z9+|0aJ6Q}(DMwaIDUfBJnHHOyxz?(ZbEZ3?=X9sXwVl30qJ^#>U=?HQ@27+RSee3)^LWlGuE#-2x zO-+#n<&#=(($8Q*sU^pz@yU1!$1-Jsy}#OCC3Z24wK#Jnu(bI>H2bjmJ<_$?Vy5J| z^`S|7T-iuPv+ddtMwG<7+YU_9x)q4H#-pra9MnXaYgq(0q%YqYphl$&;)K-s}E;^9azc1B~U% z63rB96dvE%ZM>1kv*@w7WTtIuV=1xG7;J)+PfaK-Y;Lx1FaqY{!p_ksci<(Ig37|C z#TX4o!sl;^Y5JTr(O}!#CBrmt?=XMGO15^vKJ)Eg^q=E0=jt8z z7wgQAP3{$?%%D<^PLQy6P(p*;jQcu0ktIRU)!=yfRi>@OB!X3E+{yB-@jI?}BD^I} zWeCTYRB9^hQsf{?8?)6(f2uU;hY?5(J@6j|Xsg&QJwEybOy%T#ceSuAW z4I|l1bsw~pD4gV2=IIKmE8brqzaX}XbxqP@dG|ui%1p1PlMZ9Px7Br+^cY8N7=pQ zdP>Top_-XN*WT8eTtrrXJKR}1empd;hb9sk3rP@<4$pC1F+vn_q&sbt^)P~IgCPff z`y>@95tSM0P-)S2jn=i_kb8&@Ua6$0x3ta9scTw;!7NvA{AFRD^Mvg6y3p6N0qZ9I zD;~1xbD63Q*zsQ*S>32@S_G>nO;GB(cgXB_y0|iloq5Ava}5-&sI)EsBfpw6aQAv( zS-&7;4CTx{9H8l-zRQ=QcgORYI{0v!uBO?i8cr%eEWkWfgWICql$3=LzI`?XcDBzb zUl(HfkmOc`YlhVobJ=X}%zKPX%0vSsNi5Mgoxf+T`4m@&hj~u@%N^(wL5!kJvu7FY z&J7}i3#B%Ht4BU?1g0(dRCkSe49s*Z899Kc$lU?yA={G$sc`&gsHLVg?+czZG8=c4 z+rdg$_%l?|H@sqkdDhhVE)L<3YDSd63gxPpDw>BDEiJj2=tpS{yuTl{^Cr4rOiHqi zb#k+|Xf^x5j@DB{`K(}CQ*Tn^3nn-=@()iTt*9Uz{X>^N5zYT!UZDG*mhS)41$gm^ z3J#Hm#Nk@MxAL*GTYh#u1Biu(4BjM9E(=xF5A7w)69FTSJmFW3X`tx~tu)O)u1xV&-1(5toWMs@Z!J_ae83}g{A;+t{v{Z05LhPo8_y9t_Jfqu&MSN{`|JC(wy$4 ztZlLCYXy@xH#_2Sqj+{`aUX(`foRu{QiYF&WAdqwNWyK4*WA~#B%aIj@q9nZaz+n& zPgN|PT5j|#S-75Ru4e7_2Wne5pMqTsnbM+U(?(xQtWZ2S>ycsxx9#{CQ)7%5bv#nX zEqD+P0%^{zCT0oh+WqU5!S6d6b@#XMv?8UF9UQY-#~x=GTV&@?iKs}`$9Fegj%*{XCSuAm)$X;T~fhzEPcbpbP$2F zuMTv{*M1qFr1@Oi460(Trwi@taZoYtA*$a_b8bTPI{N&C>t{UWO$Di0qb?Jm@s%; z>*LbGcCt^LmopnCkM4H;O~GTU_rQn`otKQgI9RUE_j{X7 ziqNKvZIlJie>ucAVE6mh8`QPIc)9jrEzgZ6X~73QmUc>g`VaC84W3ohnW!57^6U!E zN}-iCaU*Xt_WO__7oW8R=B+F~X@0RFfM!DRDqa2xnPSa9y&zGdUrl1IR z2WO2~*Lm53I-4zZ*;2bAhR}zPS3|O7*dBG*Bo%q_v?`7g?_@5^rdsnMmR798iMlr| z>TA2rQo}JcvN5(v#Q@XbkOP6mR<~j#i2yzWib{l=U0pS4&=J+fw?y9-Z0JR9%OqD) zqLzTsv<(GBi@BU_l;^V!$?Rwj;7&^V(cJhP6{xNBQqn5R>2b}*6vH>@kA=@I@}WM8 z6sp9#&Q+VP2fxbo(E^Cq8~QmpGzXHwT-u5|#zuY&L!LVU-F%qnt=q{)nhv@bVh_aa zZQMX!zAD7nn1X+bPh9dy&lgqlEZRX=Zvs>)3C_gXcHDvr>9wsbCGv%#`n+xr4U!|oNe>{dh8N2aUF2?ApOxLP%a|rK!RuUVZHhsVT&9gZnQ*Tpn zzha^g)(H$<9-9LDTNV{(G=( zi9D-nnsE>03lu;(2v|(RO8Wa+ydpGIgVw!azDDN`u3H@VKdRoE-NFCR$x6VEkJ8Tb zVYt0-x@FY6r0Y$N5!chFY=LQrX*>F^EaaH@g5B(H><9VG_6$Ku>xtM+g3d1hZ{bn|AiiaK@fuEM8@&oL}a5JK2Nj{g)%uYFNPg ze|k#(w+`9==LLLWHxx7=107*yiro4EN@X^fy@Ib*B}7UxW@*>hyXX@2l42 z8R!oN?!Sh6RYBS>^~fkhZJ1Edfk8{SbS{{dD%Mh5kz0UH3l~M&LG*;D_tv(G0=SxrTVf+89B0K}7RcHzl7V->r@QAIi}Z=LZ>57zhT-$)jZ9>*~fFop3*U5s<35fp=W?V;Hu43~~5E94iT8 zW0doafEj3lnl(A6Ju?@ClQ&P*3_=cCLcM1pWdVrQ=CiyDpNsnTuRx1UqDIo6tMg%* zvn-Z78u1GV(e^NzFb9EWnTFIINJHm=Mx}@@k}jFd6`2Us+peH$d1P|b z%-5QB) z>o{4-?8UQF2x~f7%$n2ZmlkF>KB!^0`arq~@)CMp+h~sJc!})4CFAEGd*j_cuuIOq z|AlSxnG(<0V-mhLV-{#T;wWxEkZX2Q9NJ?V(^YW1%f2)a!M2ryO>NwjK^Y|0N>2Yo z@X8C&(|CPkf3h6%tnee;G)KI#M=r-gWXLEdXKYFjERyd5keHOh{?4BoJ7(WxJz++@ zEBb2#Se<~NImYZgf7+fEZed4WMY?JQepinMs^+oF5y=i7I<3{~fj-f4^1KbU zI#P)F(1nGgrr6$oe#Iv^bLWrI#$tBH?snpNa`Lm-Zt>5idY)bZVj|b`O&^ z&C8#_$PmU7MGxQfwjy`*X{q0~ibUOVQ^Y*T>0t0E)~D&xUdU^=$%_4)nP@ZJY5kk# z9#+8KvSFNpvZjS-&)5+Z6+~-A7{0ls*;zuQO?K}7+dHHs_*#7l-!)W=1Vq9XLg8@` zaqY#(SRf087x-sgx|YPRb)&Dyp*=GDn(X4N^3D#&OLr;uWrbgVYrB)fL-+6Lt%iDB zY$%K#@ORHlEoZ%Huz|EYBhKM|%g1Thv%X1N5Y6+C@?T~7CAa_5czQyrj{V_N zX99}7avdbx@RT2U+ejbUIz+M8TIDfw3S2`HQ{aB*;}6DRVXpt~{>S zyxP72BYhGIILmPQiZbX(GEgen(AzEu8tYXdHoTmWiTwRl0B!&Isj~u>Dz-br2hv3c2G2LhX`5{WugMxg1cs}zb6ba4)oNYM8>rmqc+aP zNE~s3uS5{N0d1j2=(sj|GZl0aekSogGEsMySR@&wn`v3 z7p`a7(a5b~*qFK`11ln$mTzOM6{8?Apt2jFSMt0-&v{$~9m*~``SpY7w<{yRwJyz3 zib6Jk^b|MBihLYciz5m5bo_RY;>rE)8AIXOZi%gM zoM$jihLER=yPd$OFs%;S|&aj}_Qa0#!*!3=zx6iy|$G2-T)sbj2p5$$?;9>%Z*Mn9v zYQmQ!A};F3bcZFUy?w1XLwh^csm=kgZ`APM(W{!q*3=n6CLQI>0mE;68gvjh+Vdf( zwcLZ@|A+1ui9|~{u@XoYy?D_4uipA%5@|I?x@~cw#q*6!=-a*sw|CCP8TcTI6=wZa zsM90WA3s>GwD_=1GQAKIanmPeZxz>W)}`Bxd+xpo{fc3?Ze@P{7*NEGFcb<}xwar- zQBkm*ae~g@OZ@y9Blhy+zV3ZfY5ENmZ)~SvbMu44OFr5Ww&C*Bao|ToNX(j-{M;L~ zRbrtKNQ6BPQSN>cpvg<&BH}xN^jLR%f+jujlhw~Z4cKd7K|*Xkrp0qTV|BNS<1^q= z?owRqmzBR`^DktG{9RlK&;niVUTPGGdfWJ2rp3S#z09YIbjKIYal)cxc2;c>dLp|$A8_}a|{KhMDwGq zjfzzjMD)`>AT1xHmyMEBS7OjvM~=fgg+t!11=}*?;!6+eBuqLdyM7kOb@fzK{R*A@ zBtc-K-=8G2t_Z1O`ZW)A=`qhYwwsR8v^g=AB%D?l626pChT3QjN-EJN;IBK(Z)Bkl z(NQ_fq5QQV4p?B|eM{1DZH+dUEB~8eLHp`Q*aFfHKhoaFKtDP!l|2O zYLWn2NTZ>>!(+A`mv$K`DP&*Dtm|T%_qbIPaVNhZ#JEe=HV#X$s({^cs~Lh1k3FmI z6OH1OjVk)|;ZY{d=nY`|PVk{>ryAeZF)xgbdTYryjBhJG^ypU*M7aAacupT%pI~p) zg0Vd9>K4Wq6X0=qjP)GSJ>_8h76pcKv@bOx>6@<1cV_Wa2D{Ko%6J$L2*VP>@!Rk) zD(|ZgMsbqLv$$;%DAefdoImHrexwSWhfVKDk%GOE^wD}BzqcNL=Icj9TcwT<%T6zg z8&yDxb-7}Tw{omBLU8HsPu$xVZq+thhKKhFugrF-n^{HsRo+7CKp84@?Ef*(UT^%bmc}ENEq}1aGbHzPkbpr%xm=mvW;kFpIin4UZrc@T-vUiFy7K6o zu4Ztk_3Vc4z0TLYm4}>GF$%K8XM5c|(f~g`X?%IbC4m-_lB;yyiljvgnf|;wDnK8Y zOWfdQLhV1n&#-$$uH}5v4M-Syme!w17nt>Qgh)|oI3>PnFDw%(@y%x1S{(SH^kwmlcFnbc~7= zwMfKQ{=MnES$(X_X?fDX=qu#aBxm0aAlK&c2aIDYsAv2=sCJ~%so)|<$M!?-k!r9e z@sp5mq7s=oLAK|rG@{ePo_29(RTYu^r|_E$NZKoJ_P+oNym8lE+K@h5ZT9|CxP zJU9)P%$E8{)3!WF&)yENpT#undcv&0{8jjH#Kv3YhKA^VIbG76R<1Nlsa?o>a%9-? z3qo=Z!WmT^e?Vm5z??a{7h$<5L*yRcWvkL*#g=OpcYzYRZtmsz-)n z!Us#hf}dW18F)QlU4{}d(hr-{%tckxulbJmV-MP&H5_`4TnLX;~(K>~q9T1wd9P8h;%9F-W7x3M$&JE}8 zx(XfUFZaF7$ELQnAx=xoR)!H;JyF1ZR-wZWLl<1shu}<%>4m(I&4apf5H1^k8-r3 zX7+s^sR@|cRGgl~Db|VVLWw~vP{zrl#KDuEe8s2|@EsyFBeSqCLTx?6YTtqKdi-Tm zU9~%81my24TrKH8bm@s+rdu}TNyCpf(}CO}(#+lB@{?gr80kPy(Z}XFtg;W`T*LjQ zpDgYZvR91XRE~^?z|^`XhtywwA7Qf%d7;JZJW)llvNg@uZ(VyA<&nOwm`{rq6E?~D zotA2lo&6lf4%VRbE$zO`!X`R(W&^_8Qr{| z6R32ywdcYErG&eJ^ayfjwDG%if#vbdt*f(Fkgl@#pxV zbw}TLq=MR_kbYWLp$JvwRDaZ@v~nr|x^Jt3MJM9IV4u{l5ocyr4W4UCgH4E;?*p6i zY0Ur6i+yX^rc+K02cd;k(Ohy5rgkM=FATYNj3%jDs>%A8Wte5WuAX4U2vmrco7)`( z@)*9|+Sd>Y^%&H1CG%yTp50)O=TI?up!^VJFD*wFd

7suYBG`e;ufHgz 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%0Dm)FmKPJc$MmP3D??EsUuj*H|`Oo70w( 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

##vluqq3A~b$E;Ykn|Ald#@d!}- zzZ-4>B5VO@qZh~@=msC~PJ_v+Xlf4w=xa1RTy2fcC<`RG0}%w5fqVlOKra4qaprG>{5>~u<*mNLy4Mx=2%{6F;-`H& z(7Q(pT3`dprSFEiewZpLU9 zyY-G$tn{Ow2cyS5+wLG<)YwuD_GSC+4M5Oe2V!&2^k_!PTDP`Lad!t!cUje*v<$J4 z_-riKr}aHe{0HL;iPv0`1@zx(F4YiPfnG(5$&k3C_;m5%#;r(@6OW!w;UD(m6Kkoe zjtiC>*|kQ7?1RYt@Tz&!mxP~G397!NL=Oy*fPlBqMUa+oyHdexa z<&K|<7EDyEXJEiII~f9f-1ktUP8zP!F`i1#{c~jP*ev4|ZG%Gl904XCxGL9K81AUP zF^W}lObK590bh3II6Fun?yT(AXY+IArONp?h7#AFV^uHD7vGq z$YYv)nmu1G^xQOI?hB1se%W4Rko>hd&AV`J(Sc#Dw=ZHoh_rS zMxlyBREl|cq1zAZ)Zu-mT^EkQ&`Y0Ym;?(`tnlZXJsx-n*BFJ;U$ z5Tjlg&V+=N?PbA7$+s2>Z9grD^!`cCRezGWo6k9NC5|7 zdi)!Kq-d2T;eisJG>Nx)mmF)Pa@!1iN%BDiUn>h zLP8&8#}rOXoBIF0?fCg4>x|bCcPF1!8#@#AYC5u1s!NrV8GpI36wfG8he_8e$!o_7 z)DeUSWrMV}HIgVJy+50@(Oivt6*}JsWz$3L#2t<`A}CcD9o`&$^;}ZKz8G<3h&TF#&YmO{yN);JAR)7|y;$G26uKOk)uUfHE#_g}Rj*>Jd<*9(llQ zB`bZ%*fe2JA7d`HvFUBT=jY`SEK=6+>Ynno)3y&JD;`c{9l zGGH`6kMe3RJ6o<=$2mf&_Hepn zjQ!OznQ0AR6@*1T*uR-=6NgaP!38`^s;2RiNq97Sh;k7X+{FkRYXuj?MO0SX>8*$# zWxcIfOV%rj)x&1Gzg$VybAI+rI_v>+1Bvox9^&w_G`?qK)=^TWImN`pe#^`;_3tmJ zp0>@zDOh5_oA>5#QC8`r{AlOp-Vjm?AuzSYpw34U-rHKiSzEhtwnx@V_T#%FL(jwcH78xaBCz~y0&&^ zGgt-=Qu%o5#kOIZK)J?|dS{q_I4{(qO%NsG>|V3V_cNT(!;s8yF8NOeUp;jOhHuFa z7}(mx*f$N)Y*?RsDyUo8x+uNDT6?7~wc*yFMmOcyr_Y0*$$61UDxOmOfaD#&v(ZL} zT%vBNBVgZ3c@4Ec^vYV?%rsweDMfrwZy3!j;+E_+!$rexO*-hq{tzG5A2p6!4V+Z? zmi9ig#aDmh^UvIN%ai}a8Sx)C7XXdUer|Ojua4Lu0tDrf@vukM+LCbwYnyMw!W?p% zgVxiWK37%U86WRlmCttz@KQ6-rjhLmN?Jp5w#TaotE!6XrfF`hP@H?+F9w;7j$KLn z+vs6juw)MnFy^YwN$3WjZI@sFaqCURBQkfaa3-(LB|Q&^8}S!C@V{#}U7Tl{HG2gs z-J$yWqz9%<#I@RkFO3@oh!@sPAD4T0lDvc9~MsIXX(l?9?#N9jg z7Thb++dgme8&3c*s|%ccW7gnv2B7gEXD>a4AEsZnbN#89FkJMxJHq{<7vH*VdUq9e zk=X9k%`(FAdL_gq>(Pf(C;s$D)M&x5u9=3Ip5^aOay(DfOhSexOZ9Kn+N2nMSor!= z=uFr6(5-oqsA9B3Oy{>zoTziZj@hk^!f#8r^`z&X?S>ZYV|$o8&eGJ$ouf3LK*Er2 zrzscx(^%apl!%9q+wQOmr34Aq9c0v(d|u^FwK4Fl@OYfLafMHo>Os(vj|;ITs^b%? z)tYu0ecJRv#-ts|u5U9p5rjM*% zf(YjPSzkx4m}kYafsRb5;1gAvC$-7}%W8{^exQb`Dd{KJXn3xO)@JFe`PX}ISR{X4 z-(Q-wFZ>ZFQlIDLb^Qi^B&pC>9_@iNASg2tsVPE0O&|ZhrT>9{>H2 z<%$+lglhc)nYV`j61no=GqX@WSsn;sQdmA3pD4@c4%Uz^DBVd7m10 zH*;~}9(-19(K7sny=AA>A1r=Jnq2<&i!SMq-&R|0sYFJ1>p(qBlfCnjgEc!?%8uG_ z?(_S8w*0*gq8BA6izfB$eQogcr8xJgk^H@^g8SRoVnzq~uOYvkzoBayrK@wCmKw%u z^gH>v#bi;Yp~Cp2!cOK+9(=QjEN#_TJCRZo*PQI`KRyXkq@l^67@9i~JVW2t8e5(4 zPzO=M^(mq;D=(L|#}#Z`0V|BCm0qzMmvsnyQ`Ylcz3J(anzq(2hWqE5j;v!-%+`ks zX0N2Sub^c|b`%QqVI^Y)f*TVN+!+eVUf*(lJ})1sk@g_g)Hl@r_3W+(i}C#es#D}S zSMYfgx?#xULco9CdI0K+DqqOMXkEcxG>xrw;OUaAj;)6KXz1Pj^WVcE|NIOEM|avE z#H^maM2T#=X^l9S(xhr$p+{`o^Wx~|XXV59wUv0EvsUX3``GBzB=FVRS7qlbp3Z1* z(0!gA%k(LbM{^~jB#v@;U_}Sie8u+*A-5-854_w94vzk}R>aXi`CpVG|Hv@jj|K|1 zj`vjg6BE=hx_TF2fJ9@7=on35+5>7(e#mo*)~1vG7qANu3kn0WJ(Tg%_bmNuThx}4 z=r@shcPHEU*?xVfg9sa- zsLV|2n_w>~R@JT(2#VYZYkkO)c9AeL6<_Zy3{lpk@<)wxTMnuc-zI}XY* zfJyK+;CnOBOQaX;m%|uU2$f&s@!T4rx!lqpdtkl9O+9gy51oDNk))NtG&X~9b?ya(#`JTSul!NEyGmQCEWnJ`O$Tfm0mU$%y9 z90h93bB>EnCM)8^l2O~&iQH`a^W|oRg(Xu74`KQNzmu!5G5g|^#W9@@E|FMX(k7YK zm}uq(@&67)8v}SWF2Q!m_BiQ?OB3m$=WBvh z=hROrg|x0kuXi_U@icw$b(hFbo&LNM6OQ54Rl%m27gpM~?qy86t_As*3{)r8r}T`+ zBOsBA@X-!;uQ~anNGgJY?nN_!pMb;iST!X!;J-C2oH^^I1k2B)~6?oerU1 z=qbq1Nyy`kmzB##JVW<;7#2yx)z9Xh0(z_74ksw1WtQ0@UJTP@99;p}V^ZexV;c$Y zedvnmxa-h;7!+$c6?417mm;n44Kn50F?XmfD2g$dgypGaj+5qh+H{zvCVP(zrJ6If z=LCWBK^K>XuNMPo;mb&^{V$bbG)BTK_~r;xx^RUBhG7*NG1DzRc|2L z8d(&0o3AXr?p?M8B(=(w|1MF6J|#guaQgQtqLLwb7Om~24 zm_Nb0T~@*Qf~LrinagWnM)B&&pIp_pxKD>FbN+=mmQ6P3N%(aC*5iL%%{zxXIPXA3 zc|y=nuD{oT{n;g#6O^3IXwB1tK72_;3-%LOyN3@yHdW|(Vk=XC0R ziK*f*N6y5?l2UTgQXBl8`wCQ_R5k=$8^)c*RQqI);vHQNiYVAL+h#0?Ni4z2elB24Df)h-;VGz#C?lz>%+?!;C> zy)X1lQW)mr%Tq&UFP>I6H*VKo`qUei;<>~UZ|N9yu_Z<7Shanec)t92u~}E;#q*rD z+c(?dKK*;Nu)o{y?`Um5XUc=7Erc}5c0BK&T6*4zZb6U9MX!LWf`i{DNhuG8B+>8H zZlw1unbalBycXmT61B|r)CM)t&+AGOK_=cf{#J%cgdep*5jlEe^^}cmzV2lG%bM`{ zmfaJbORa~Zq@TxidWGtn!1<-s&#Bxm7&|p~Jjs5ew{T}Fp)lL8s>%Ut6` zFbC;_DX{Y-KS`PO{8)@W)+6DZDVE8_Hs z(0=P!Ut+FAPaj+XF_-U%~OG%U;{a!%nr^g&4`Lwc*!(Zj) zRphf@KjG0hyK$fNKu)W^J{l%vx6kpeo~j7myY;$F>;Mq8zsspm)WXCm@LBYCAv?}H zhIA0G5E(gwzdVd&_U4fFJe53s=TC9^_!CP_;A=HQb|?DIYzVL(G)ll6A`3!gqwc=l z-nP>!D3*)xDZ@|a8BMf0b1 za-*NI=TvC+UEVE~=S{0rMmk3lMcuN~s!Rp#1a|O_Jh&k1`ZgO_%HnHQshMo};tM6U z2Mgz%@B{ii{+v1vrHZ220^XQ!{=P{46A1VRf+P4MpZjHKGdhMt9r?+%lI8S>zntqY zhn{KVhnS6>D3)3`91jgikiYjR-Rkx38$Fbcya%tr^Jn+&t+7pQp~>o z&?)!(<}guVdOlD?w#`Sf!Edn0#gYn}Ek_9jlsYuiHFMb(k7m$OPOT#fGprJ!DTE`( zP+eaA1k`Q_Il(N=g4uI=w||(-Ew+BX7V)yolSe1gL`3DsxiC{!(T|`Bua&8t@GpOT zk^Y5e`!`V>Ua;|bQiK)5q0JozqpJYOpL6A>{ae}pxM}73JHP(Fpp5Da~}e03%3pXRarG*mFIUHWJ&DER3HtU3L{ns3KY7%$u}?*- z)63K97>|a3YoKDBU24R#bhtrSzw-Dn-r(Cpjt$th653V=V;M;T{qQ#{TF%%IH zW2GgMNOo23q>~47y01@~9MaEkDqD7fY(l0b`*MP`!jjlNbH z{l1XoFb0S+ostdVrkTu|gi-R^Kt;_97Omh0+jT>=|8~cI!Zdm~) zFZ39CqidFj$H95?mY&sp=+;`!5L&gaFd+{%v0?;;GAKj6Kk1+qWh@e^kX;v(n;ivCN(=Q5<30 z>2*f$n$zdY(`AbXV{7uP&QQx??LFdOry7`}PYnalOSar{0x_RYeM9X~T*rAseRKdL ziwfldvKF{${8roN_KM*C8|kPfZmK5Fis1p)K|=QjtFE71!iqp^1?Xg$mBGFcSu=yy zfd0Z(W|{VAO07x4lOtqQIYMv|7hf#*@V9g7$15Y#_8bTLN~KS{>TM8S^OkT>RqFFG z4|f}7iHqf$%49@JFRLM8+3lJdWJKZ1j9Yll^S#2ywXC&%!i0B*{oYh`wO4HarihEm z6MW!FEyzPeqF`6I_KM>`E!r)@AE8ku8?SIT-AAIg4d>zWlgmbTFAOAk{-*Og;Q^Fs z<}P-*Z7;670V%Dr_2$hva8nz{5qv4dxh?gR z>z552u*U^uW_+64{4@uMfu4IkpSZwb6KwL6iva$=dNId=|HjRhyQRziq02cq3-VHa zaKY(PLzLwq3RC0zPp+(Y`#|;nYzC;Y2LJCyQP|i!ry~Xhe7nJd%;@tqFJv=llK5iw zPyfPiph>O%^2%qW{Q>{&=Kujrwt{!Ig4su2f<&DyE*w?26gOCkn|I#;jmIDD|DO~1 zFTMiYSr{xcR}9YGb~B?XNIIW3zRlsaZ+O@5)W~M^KwInllc{oRFb^9e}>sOvOZJ zd$F7p@4f3?UD!O#P@-0gY4z2$I@VU#p(Wq@T|L#B2Ng6agB-h4> zwvkzUkEPP9DcCjt0p(~V?z(c?-R$&G@K%MCyOfKsW{`U1xi>)@ORZv}<8|)pFLN$? z=4yW>{g~JaoNt>*29BKTV4)6;GFS7A3av?hEZ)EIYw3fL_eWU)JQ3(fb^Swc%MlGoF{*v z+NHK7&``%~<+khO^>0s+#0!j&26E*MDTu_?5P;yxo7+y=djOx$GduvOFGxY4V6EQ; zdh~e=dGDIUl^K`Gs9vajiTY-cKz;eP>+QF$*1g5HYpy-QtJ%#3C68-Xs-@$1;vjU($SE4_Id7H${}2WMoWCKTPAYbaF{-=~L4 ztgt6K%HTf^cTQ9lAQFrn(zW<{#B?0WMDb1+8$xoGJwNqU9yeHh5ibn4ru@~EH8Dfz zr~k8A>;JkLLwt&mr0sc|zOi*ye~biWeUIs3o9Tr2{J8YxJY=zeYw|xo)Bnvi+qXav zgGoI}v($1-e7(d2atwnTJ{0yC?2Lb0x*C#gtdeP}wQsP`W8BJNq{5hzqTChTV-~qu zurg9Jxl?_jP9jyGu(4%~zFHK_$mKFrHy zt{LR!StjMp_KNOWGM4)sibD<)6dzm}+%27LQ)7@`n&f*cQwT4hmc)@ShNL9rn3jU= zS!<#gN964}xU;d#lxx)>xQ_nyV&`#u>;Hi}<3GHj|IP3Gx2q}S?N2U16_Hlv%%MU> zmz$fERRZP?->hqC&AG9WZg|k{>l-cQ-g*J#^N&|DM)&;)h5UF*Su4POI&nw-FQxg< zKcn6Ls!IRQH|hUvb<5wjb3zG%>s@oSL0K0O2Qd#mmT{|tyedz_xlg@y62~tE3LX0G zqmRgBeqRpsZgF#_7Qedg_kas4OVJNz&R1JL9P!h!Q|sv<)h|<#8O2ip)s#?nE3nX2 z>jByjDAHdFs}qSy)H%pohD|`Y;ajh+;BfNoY7S?5Aiy)`;JvyApG#K@E-}nBv{a9w zItf;nC$F`iP%BkQ>R^2(g*%D5)Y>hOse)HKX_5B!)Yb}PZL!6rt|F!C zPEpiFbjlFkC3w;

Y8L67Pu!mGfXzOiT3MErPL_J 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 diff --git a/x-pack/docs/en/ml/images/ml-gs-job1-datafeed.jpg b/x-pack/docs/en/ml/images/ml-gs-job1-datafeed.jpg deleted file mode 100644 index aa36b5f13ea4c044ddd177a1910f97bddfaad57b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 160591 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

$5?zW11T~$W=X~xklnmFb{-$)LbT`(A*3< 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ⅈsFR4K(MhjF-VY6CVzx(>b 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%0DvULLc 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 diff --git a/x-pack/docs/en/ml/images/ml-gs-job1-explorer-anomaly.jpg b/x-pack/docs/en/ml/images/ml-gs-job1-explorer-anomaly.jpg deleted file mode 100644 index 9e6c76a5518ddedd0f6abe76f8cff070a34c1f3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 241230 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�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%0Do@=4S9Ih%%jYIx95`71ff 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 diff --git a/x-pack/docs/en/ml/images/ml-gs-job1-explorer.jpg b/x-pack/docs/en/ml/images/ml-gs-job1-explorer.jpg deleted file mode 100644 index bb436a72e5064f8f9fa2c8d32518047c84f6f486..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137352 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

  • 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

    <(C&$=8Jbi#7{lmzevU2$oaPg8}l04cSPL z*vfEA7*+4(+pyJ`98CMp4fDSo<@pwvT_XnHRKOtQh#NWkdTFFV_Zj|{028)>y+3Q4 zT{292isQYF+x5o+4SW8k|NeoVsFS;kS#4z}r3^;k*~47`+MLWlA4s)krImD@STsug zsN+bmueqLNAzv3!+jI||xK=j7mygHX*XoM2d9pV?;0ZG09;U{#3G)tbO>3Hph6yq+ z4KTG(RbML00!A@ECUY^<8AK90l;UO84anl-GGwz)^Q*(McWHq?0`DB3UYUZS&HMPb z>0ckJVmnrg>mWiXTYX>@|S}ky@~&%%R_sB5+Y;j$B*leuu?OIM)=lGb7gPy zZ?gaUvVyy(q(_{+`3WhetW})d;fg8Mm{WYLS2v(OPOqy-4&Z69T_? zST_v$kAUy3c;2u}=sgvW2w_avS2u>ythwU8^UOW`J9D48@4BOf$`aOU$}P9fA3$57 zAQUasIob%tM88tYsZVXLe<;XFEB8S%cr;?jp*BZZnryjmr7;*6-TM|pot_S8E>^xX z#|u$7S+Pj?a2CpH4smAeS0R@C<%mHXOO4B=4R4(DvMRZ*-|~GFxpkxVASfQ)7K#=@ zp%EA4Ob#Qkx#T+T+aQ|K9Z9Ih$2hyvmO$%anmrvad@jI@YxJsU1f2{VM z&?%(0EOrNNgu6`Q|2~w&a{-jdzGns4!cmXQ*!xLA@URSB8Sr)92YlH=wN2qThlX5! z)bz6hA$NsY$MBt9e|l$8Zj2jDFWRRH8Snh7S=UAn)f0hRZFa)(xk#2K2KB zHfMntSK3ba32HfaIkTM+|#azN866PTS?)2GP4m1s7QVuN}m zkzw{4Z2GDGS!1#eSkp5Xg5H%Dv=k;0C@h@&5{!w^Br z>ek2TK#T1w$Ju?~|CAYR+na%hwYQaBLI+g&Ipm=?BsnOZ6^fvpQjNh}LTA2x0JZOQ zb0jip&4en>J8T1B6jJSlqe*(C^JD7#t<{f z$#d22y3fwwiRHK>+wT15cRt=hReVaG>6*v#6hT%G+snIbbT{bDOG zmN_1}}B=pa59n1-Io2^(;h?M7}ybjCxuSjd<55PU` z+a}?UxHOJ>lZY~s9v|FhJ*466iBifKN&G<;4&?-n7;F)g6Z!u9BlNL>lCSk?m+B`+ zuVGGqXCha4|LoNF1sG6Ik+VMfRk>93c5c02vfZ#LpC`Y86J5$(yKhGtxF~!@T`wKhC?@`X;0a;20+<+hV0qr#aQ2PS$Rj3u{004N4SXc zVC*&2mYya=A-HC=1Pq7;(q-6Qk?x{T`})=`fv2aW=KN{`CAbk6_(;Au_A<;dG5#7< zv?9-5H&FK!rtW$*+%@!(u0;2$ubTPKhox`oCxdVb%Q;}Ld;c6B0AswENQGZZ?DNRm zBLnhITu`_gwW0_h*Gx58BYcJXnrF!LPL@5+Je|L%n44}aHxT_n1Qy-eI_@#_DRY^T)umO z&Y@S05u5z&m^uTWA(TvhfYP++yFbHHMV?aL!{ghg#T8UWB68A~MvG+xjUsVDKx0pJ zykD$cXJy>knY}NC!DTXh@9aCj%!@3G$B36CG>>%%LM<0Oj!RN+NrcK-VLbT0*%!9t zfHCfiM*wYGgvMnc=(3%EIUI0PCLr)$y@c7`!nO8-3IB)SDZJ~42Gb;u#%um+ zM)&!JoaMJE_RG7M z20K16q^K56btLaccDr7J?4Cs~*wW{z#**v~T@D2z;~-eZ*YiV;AY>_GLkz?maa}i^ zKPkjG?>mxhUj|`v!n&FB;L;NVG(AkH0fW`B?3@dW?MIg4`gK0ED?9$>;5b6#-f8!G zbt#`AgFxxOxLSBoB(?Eg$UQd!deoLzEc;k!3x?abi+i+Srn)#uT$8+D#ePYgPKuzQ z|8kgu|BYBqIoFOWYq~#t@IvcHMRYTK=~g~EGTzZaYmf1ZaefQB*#t9^NpBYV@Z|0~ ze@u{Uxm!DX{L2Vqq8NGuI*Aijr$SadCbgU{6%QVq#0Jg=^0LDa4~X&1gXDfR7(|-F za5q-nz-5ipVSTRfE<2PUMAMu?N-vdo&Ar8q5AC)boLxVZFr|!Nv3!YM$Uybw2KY@h z+QK5wzSj%%-ygRWTXPpPAq@>ft%8`+(m#itG+lpQFrrFxv8m}(4hjqRAEC=}GbHLt z+XDkhat4d?v%J&Q@Oh<`R6Hb{AjDRpnJv5{6%$RT5Z7zVj=PY3=4xx>eaW};G{?2$ z5eiW1^d@TDyl(!z=jDa$RX0Kkxa%W4pl$M&0M4yKx+=6k8;aE~2U5zu4PUWB+vRRY z5u^x?4=ESEQ;N$H~~kfUCN(_9)$F;xh@g|gD?TSv|n<@bhe?~iH-v&)5@c*%CX zRO9T1Hq678+8bD3uWkrk|01^>iJ8fOFt~VG+_j;X{hETM zsc!mc0Zg>E*nZaB-hj-KoBDT@^ra8b^u=PQw(jVjS$3V4HQ&Qo{uBRuJvzvrDZ4&G z02~*R*1dr*wLPP|1*hhYh19j;0ZRhYrZ-3!g8_MTDDC_zj=EoW4=qP<*hlF&kU4v; za{9Fs3U|{`?)TJia>psrRg2REbsnY0b&4WZ(U8&}q$XiGE1c6#zPSMPq+?2J&!YHg zsBGx4nDUFoz5#_}71JaC^ht2^6KiM?mO=3`0bDBlDH7BTn*C=7)O3TUJ~jR9a&lrL zS4%gEV5kd?|xC>eLUq28!BwiLX7F znImqX;&T3{vOue`$4ie)L5?jVgz`AofekX35=0bLbS4Vy+r2l0cHt{o(SRw7gzZj4 zKucv4No^w|1D2<7(ZyWJKJg08b;LRD4g!tLU$z$>tKGag;<7M?n-o)??QNX75C)A^ zbOqfJSqjra9qQJ_pOwl`K^YMpF*JJ5e%J9@cMnJ!av3(%a9!*)3s-&O^Yh{nS3fQT z!caGEkid_^Q1r}cVT{vmXu-(pcC6r~=q!V=veu;^*oJoJRRlrzbRVf#TgNe@Zb!j` z6p4QI++ZW0R>nmx*SM9m1`Z%?&iwSz4eiUn&!)JjdH2`y-$w!Mx6Uz-A?W(@;^P<;Y;RtPobKFZu@ zayIobEoX8o*(m@l{<~#=FyWUhwIzcfxD9*-=05LX+#z%W7%vs|t8x?fhpfWh!91yoeLw%-#mT8j)cBoPRE-twpXLcBw(>EE9p`AcyR`pE{mi6>+fjAenJgoG{%;vu!90KCw~MTe#{_l)(5ye%xM|(~!?Re0f1NFO1Ftli z&HIxY#qJ_@(QzY9<)P$LbufLUC>aV zqbNjyv0g$z{qt=SL+1wtM22BUvBl`;rYk0**!pbglO=tf<>)ER7JkXm>) zZ@} zgAx3@VV^NA37{})>H;?N^n!~ixtbcdxffs^+hG^PPFe;8IDUj&O%DDd-5@XfYkHLl3u3^RgF#-8b(W6 zH2m@cIV=x7Ga<1gKu35)FR$j4+gUaePz`8zKzr?e5$s$ zFF3N%&R_ZJ#G|_Fm!rk(R8!I*te3hx0e&>sr1q!K7r^nOAEhE4uIQ3N`Za@858t$` zsSeBt^judQ*)#t>#q7Sv%&!4z{>eR*f>_2rcE_;6Gn77=8lq(0KS{Aly5O!poQBUq zxEJi+vFS?z=7Y2AXD`WrUcG6N9Z&aZC{jVPe}eq(!aQS>w!gG+z$4?wpfqK_ZNKpE z%u`jYT;CH{y#t0T??%rhxe7K&Ek+ec1X^}l<6ljfF8UbQB4s3#vEm8j`))Nplnlwy{++o9{gC!!!nOCS*!7I#1P zE)7=;vj*``bC)h4W4{ecdXG57I+%pl8m&%8ibp2hJFd3z^UodFpW<7bO_hK&%Ah*+ zqYiv#Ld*KpbTpNCJHOtwT@pqYwk~=HFzR>uhzw$NeWH9&Q!YAJL^^s;7HQZ~+ zLDV^j+|#`FK=IxD7_=wmF!4Jv4c&7ri@@+gY4xIas7m1_W9AXrDaXfn=i?kA5TDz} z>Ks8%_5EjR@Hq6~9QA#zBZ8fFL$3EC`1R`VtNQyAo;##|W-1Pr*g5(JkveZb(A#^L zWgy5j3(4)uwN-|v7Opxz_C=Z`z4b(kv%58m2}esndf>_)<6&OInbh`Ts+5Kwyyp2% zSlz4ZxY&vQzBr7sHT&q5F%nxi-1z3J=u7vL=oi&EY82~3J~NQy#WTM2+_{!qiuVdR zot;toxh`?fmdCfBm_YCGnztW55c}uoCGuvcqOvK-&Slr8kR_SjQnYtHQzf!}Q~qu) z^XMUR0^rh+W&e9O3)5s6qqpbApIhq_Lx?uvM z= z_pd#_@Or2jx!^5Sqgml|UMW%ybFm^HG`Z9k;>hn5`SIah-=^(YBhf#WG8N4*305Rx zYH}Pw|Kz7rTJZQ_co)P670PhB;3_6W#x?CX@S^FXjGO~yVoko6y?K}Q^KL=|cLeoD zRdln$bXN=?=SDS*BokX?m?=0sEZ%fzc=Yw5N#fAcJN6BN@gxB&ogqWW*Kgmxg>rF- zjl#=|61O4WKzDB~X-LAXNlOW&_7sAV(8b$w4+Yb>jJ=OM*{3vBehn|WQDq?A zfAY%J^%VAVsYsWwNlfLE6^pA0bzu?~VJj8KFu+GS{V-IME>#}uNI#7UD0~NM;M2D3i`7&c=y8wO|`W|%5iGo>eJ2q z%(Uf~PJ}V}7STw~Uc#64L*V~vW7*{<%;8#HGOPi{X)rAbXjRb~B_g@aepR<6PT-Vh zBNIH=uAbTKCFIb&G{X6v0teRCs#7eCm<1SN+WUI7r$+beg}x5i!r|3+S;G!qaT0wP zWO+6AnJMRvqJqH2J-MeX(5J=#{qeE>$aruVb*vn+wc`P5>p|>);Pc#@H4`!o(A_{d z@b=3Jv2o3R?*!kGK|j@f*-e-^E;sng@hOTPO?^!Zp2CP7=w{kGi?U)@Tx~CN zGK<4D@-m(XnJF7Ui9e@K_ofM)9&_EiW~(;q^Oxh|0}|ngO~()4)ADrLx*Yu)3siw7 zT}`UGjOd)pN~i|BI;abjD?kVCe8;Uv?lrDjLWy3eHs(gyu=3^IrNU+sM;DUhvRtW^ zK|t?b_KnV!`RxJ`aH5V+|B50009`Qg+sU>iLA~Q}U>o+w@d?dQ`Q2UlOA+$$UkZo+ zgMe#dJV!<#9OzyGcddfEr^1TIT(VhBx#w|>f`RS}We+${r^#&rJgg1ex-w%5Y#3Ho z3!x0K2ocqmuE~`loke=uKo&|ewPo@u#|!1Fb*G7h2HMx2=4(&kSP5897H$p|0ePUN zQekRqWov0IalWkV;sYT$x;=6RwGAr2pI37Oq?>DXJz=j<`u=|Ttc8x4T$&?tT}c?z zI`j!cbY>1#t5X$dUYRIa+8yao9~=MDl5*eJjJhYOsUoj_N>9`TC&xl(9s%={LN?MI z=j3dsk#8Y_^fI%PaM;@}dynSA6Om8J6!W57wr4B6#|dDj2OHRx&<*}gmsK5dErT?% z5{;QsII|DE&})05WqtZh8${>FQo1ha{WML`w*M)TvCJ?nvm$js;1NC`BrbD0#JnA2 z+`ca+3Br4=T0N$Zk*XvAmqR8S8<5BUAmDdu^p=~%#t8e+&a@C)4c)_*p%n&uoXZ;w zGE2>9JDGmuH0Ao-toO+AP#S#M;9tNw88!s?4&f+%(gc4%%aw?>5Hv|EH&Kvh{w-HW zIh#7x!pf4a37+`ZTPC0#GEPrj&7z9o;wB~W-Q?=at%a8{M}NImy*nV1BgNP>27Dgh znxidXo4m0vV?BYf_QQE7(MHksv^)5P&BOVfF|EM(s&@qX7vGd}J3h$-Xz+n}>vb{AK)maL1YJn#}q)^MP&uAct1G za>brnnfm(B07{h>ISq}l z8H7nCQ$Rn@G<j~j zfznNoeXi_tl+N1JT-(fFIzT$)Y_p%K$dMmP>2iCYvg9V1uF;T}O3qiG72e}@jM`n9 z*WDeHSCAIbs6m8CoMbO#(zc;8lLcIX57ku~bH*?9%F*E$=g-Z3$Qs^o^U=LQ1Lc_n zydL&XYvU+4!xC(}H>O0EH-@#J*n|;;&bZTzKp@`(Vp|=;9SPYuR0$TQ5{N)41t88p z1(tY#KxVi*4kCJR^KJw9f{jc|R<=?GO`2j?PbfapuZp=3%UlxHVfGZPE6g2OHF^HK zPc<%W;uXFSI+-GTG6k{{Jw?%6O`^9TQ4&JbvbTdX6))AG+VBoX=$cVr|0IysJ=3cmSnMf|o^+99rQsv*l&(BEg_GCm6HG8q#- z6|0*&xL+;v)#vKAA6Hvz`>QP)r@HxC;ELwxYWs;em36g$G$&0iQwcpS>!&-XSsB^|_; z0g524Y#J7c5vxu=z6`gy6c@gf>+$G4qV65>&#?Y80y(Xidrg^s{Milk+6w#Sp!A9( z*`Z-Fxgpl>T3_MJ#4@}r&be4s*U6GiViLm8(XW3`o&HgK3c=s&fK6-%*#t{M^My|? z6_H}ZTwpYJ)hCGYs1NtpO9_P5U21i`5?%HOIP!gECoXRP3j%)*-a0!^yTd>`*FY&s z{j&tOi9NVT3F*Yp`kPw_TcEBFZs{vvX)U5`l}@^zfa$@4*Vsw?yAV zPn+;+3JOEDEsHMUz~9aR1VelPVTL z_p8Y~^i+SuBsbI7H`{W0f+nSqKE^yepzW_rXPOqc3x}^bKMowb%6to7JP@${6G)&1 zPqoyup!K!WQOMof8_AJ5)5dQ?1f%pr|j{2#gcv)FKW5|41EYQbFwb^5WiViL4>HzZ`zZ z^!b}F{T@8FV##eA{0nTJ?HbxQ$s197lor~eD@FceRZ3CVQs=8bs2y9FAn9B>p%Q(5 z<){|CA9Eb+OIQU!qyCAMa*cw+YMZXw&^oc}_?bkYew0=gKBTL}*-&(w5qzieM`Ee} z+dN{jtj)&%hE)Udl%Pl0IsmMPm0J_;_QSXF6S4oovO%NjpUz+n&Qf{Ow;F;nn;rIf{ zmV+Yi6b%{LabgUUV?zre8=UK&(ZJnD33P%AWSH^Q22;}Ec^MS@u>Nid(`*CvWSLv` ze6P7|miCEeyr%K54l6O=)&S$X>nkW}37opl z^?|`}Dp~1*%(ousswJrXgPH4|nmYS5Cs zZr8``>fOZcM2Qh*(0b_6ZeX0I)I@lt%U@LLUq~Z};Y8n3Sbx?f0!ZbtES|>M=j(u9 z1bo&G@^UlJhBjPkFV)d93m>{Ny;stToj5ab8t5?llMG^f1htKj^9EiaZXuquSw)5W zqg=Yn4M&$uL-tI2(NC@e3^ESyb*alas$uHI%?%k)8Z7FiGJT z8TXTrsID20xNKT7`=GlSMCAWSr`+WyG9%fiL5Pk6Rf6#PqyNIw2YkUU$3#GvXD|yl zsyn0`0q+#-kdWpJlUSO-{0S0dq>==Ei4$c**gXQ@ZY1yb54w~o3!nn~v&u!7ACe9j z?rkNS)X@Zmh?URTOJ#DACDDwrt8Hs831`?>;6-fW1oxv_Wt31q^K8(2yLb0vbT7;r z-dM;0&!*J+o(v;X0Kds-A}={N)hq48Hwg_@e_P7E+o4N>A=N zBqf0nM<2ASPb4$F;b7M&J}|RzuuLwBskO;U*?gjl#bb5HJ$a*OiY}m}lh-D+ z_9JZbtXKVYp#04~bU_h6eEx8 zc{~3&Z{m4%%vlE{Ly3ko>PCx&WE+))_jt~_JP13b+`+4O?HSMUKpiu=yGQ*NXRN=+ zqAYASh6uIoYr5(hlLLsD?-kz?E6z$0{apk>Zqx1s2@!kkU*aWh0&L?V3^AK#!35X- z#uUd2k>0rY&qldJSngxWHGvAR3U7ptm>^-s5wy>{?;yp=p>Pn+_Eg(V>7)*Cnp9qg ztOlA!vF!djtab!0W<6zmq-@)spF&Zyp!&xq|A5O_< z=+!~Pl_DBM@JR@6_mn|g@it#{gFNOrZ&Oep|9x^KlG7`$pQ_#%pW{ok1q|IxaqD${nH`Ar~}7!4`dzglnX1# zmj`~zL5`A-dnNx6vF+jd+hIv!!Qyta!So_-QMOiq)XOK0aJVhJUP82Q@$=$?sFYuO(aaE-Oc$|?(O?q%71xBVl3Z=-87>1W$dpx4+I zu#c@Lyv{=X<*>n@WPM`u0zq4s=!+8~0lC)-``14|8`0P4my;7uPu}DIf>R!LlQ?$& za;ChZBh>5E^!be5joEmnIi2%WwOVAy4_hRsn(&*{cuy+aGIZpZZQuv^Pv}8BST92@ zbz*!YB`fUTc#yyk8{Y>IO*?#SVDm-OY=F}BX%Rd)Vzj)%r!O~j<^IaGeo*xU6S;F* z;(53L?`a)qxXKHMD9r zO?cg@R_X0-w44=tm&VCH6nLZ)V9hAKY2?DN7WUYZzio7cpyT}Sx~rn!Ph^HX1$iL! z|2Y!b7_78;#*GCeUB8vSYN&jW^IRJX>F{6e4E(o_LWc>}M(dJ-($z2BG&b)qcIKN& za>3o-ik&9>zohwET&pFH z)doSN+$VRaelXjcHNbDk+A)|WtXNNrYE5HSt@BYfeL|U~h22~EDkeELcVfKM>W}?7 zllSfFE_~VRUw|>aYZCh$1>6c=!H4G~9*Gx~4@6efxF)+MS(`rpb5#A_#uXv$G~_~8 zB;Xp2vH%Ekjem)9P&Z9NHCtA;$5=+XcM$P@qgHe#k$hRyHXujF>g_k9k}s&vnzZ4I z`T6-(ny~`xD}%W0W+af%uiK!mh=f-b~ISm#Ou7#KC|n6B>wb6GPKYrm-$*#DbzE-OCRV$AK!<}LNO^B*q|@4RZof;+e6i>h`|3dAo#rb#SI!)s zE|6OvrfO_z1pF$_7|4gz)Y#ESX}kwDZd}$sY^o+LIiI;>9%UYbT1jHT)M&XN-~9rI zFCVt4LnPP1v8xMK7}-t2f6?BB@0hQ!9fJ*gd_H@X7rqP01%1-MoJB}K8`SLX?Gj*(V0T2l`^ym^vx;z@7}3EsxRkzi zjPKa1L)}DprMX`WeVc!LUy16lV*JQWV$MP^&`jqC#JJ3@$aZWge|Ld&a~c zo?cQm)WJ%mEY$9y8Mo9y4*RShS-cl*r!mN-{$%{FY@v*Fh1L^fZ}WUyPQ2b>Vs#39 zE%^dMtBsk5I%-~*sLXVu257=wM@V9IK%sfVhHsz`?z`)A#ur*Dhphq=*&-P*DRz$`HSbL?n17Y(L@V1AWbL|Udl^^vt zb|7;@3y;T?Tp9&i^D~WK*81n3VlUv!7hS(Z(JyQz{O$fP!doB3I><@}Qp`|pAZwac z$bg}{J#@;R7YokB%iTU?RKodc^{m~C!u7^`FL)}>9NVL|+RZyO(&V7pUCYZv(9|K% z^0n;`E2S?b2|ObDkyfLItLHsOTN?zQ7`BdP_|U4oM7pzWeO&tz%}h2mHWqrTj5o|o z6>OvYw!2vf8FGRUg2&`UR6e)v;BRhs|9H=y1n-!)64DuWhvx?J)u7@F_|F(O9Qa5~ zkwN1S^8iVTVVV~`zqs?+FTb-w@?eXL{rPloc+K-( ztlx%>^^xMVCt2D2?<~?auH_b`{@5noh}f%n9ryL6>`Gbjg>NnicOZoB!V#3nYC z3>4jN6CLZnWpLqlSIH->*3k&r(NYezeA2{_7Kt;W_RJFcV4spt`$F+MbdN9E>rD9g zu>7~sC!JDf9{LTxnt$rMPgKVHC{Jqgup(p81JuAHt(|0DkG56*Lpm1j!&#&8l@lxN z?WV9~S3IVW^^UDPLBsxE?7ewBlzsa??rz^zNUNzNmC9X62~!CnNn*-2l_Vr>vcz0% zC`%KCqD&=8mZ@ynW-5DVWSg>0_GQA%m|@nd-|61c{nYb$p6}=P$M^Sp-G6w!jLVG6 z`+6_ud7Q^_oK~#Tmze=>bEm8y=!%6lUg7oa63f^3?-^7*@Ai2yf21vwH0;VgnRzY= zGqLbxlP+<65~5So`OJFCqrC9CCjoA)zL(M$XHVc1bQbL&63e>zyb#q#;c&d2`#vYv zJ7)w&M%6?#XDH2!j81PRIdr+Gv>b)L_p1up7N}2+d$Fs%hHmAyt>uk`G^~uQbCS2o zd-=rd=AmxS`Kg#TT!E^r?@IPGKE4RRTzTRI&!yH)hNmdD1?P^YAH9@)>b2)SX+4{& z%2Rd65^J8uxD1<~IDLfg`fEXTgb&woe!{T^XFD#eW!lq6L0swCs~!bOt%(E_P+=dE z+d{)O$q!GF9;n2H2D{84w12 zi1LsuqO<5hc#bx}9VbDA268Yv0+GrwI*jyxm6ELAt}n;Q>L;_^+caO(J|z@lWOQY$ zOFYP*OcJ)ccOPi#GvASwEbRiHIkXwpcURMgt<^8W1r z&18;O4mxBOHt^c;n!8rp z=$Uf^@jBi#J7%}m9#ULyLm|%G`G{bJyjp6C^GWuix7Xet{N?bARpW=5QvUAajFfLJ zbF?}qg?WA(*G{~QoKS5jZ^styLLBi@v{pa)HtE2Vz808kyxdCNfx+F8*jcoMg5z#$ z=MFD8qIJ11l4C;YGfTS~Az!Jqm~fR)MqSJpj+De`%d=bBUORijI&aO*Ny81zYw2FJ zei?45{DCf<<&jCBe<@M_h0GrJ_BH>JpXq~;rqp0{*G+G_Ca4t~2Nw4~9tvs8)1us9 zuX}7A7*b#C`z2=2(Gwm8wuLjjo+Pw}n(d*3w;$%CJ?@0THc_9?ufsfU7v;+8XW5Hw zbmfCiy&Mj^XGKb6h}W^waWAv3sn(p?dH${Rj`k$Nl6*8`umGLbsc5~CuR1^tSl)pk{d)1JlGI*U8hUF(L^1cF$jhvJnr>*kxK7@xcYJ<=2T zBiMMKh?M*BAGYTC2U~Ys{5YZwqV(vXbEhp=CvCqKRDRqlJmNreTxAMH&dX}D z^wP)^=RJW*Q?f0!#;l6#w{BZae_Y^_Is-&EBT0YFo#=4>-E+UnIy3jIo>MtPbB?;q z({qO}CvTi0#ND$MuVxh$y@^#@YrN;Y;!JA5cEusG$)hI`-UXk}tIW9)Z`D%0I@VMA z?cg-M+J>(c5L-%e3Pv#}hXFXi}rRTj0hvvT=8MWl<^<>T?6ROj1#ogm#uWw0Ix$CQx8mnQy!wEtCU^}<`0p&m1jR-i7O1cQA$6RtM!3RYpSMxSt92bU;`g{Pm|vV+oL)yypr1C z6a*AZRmmEss%UxfC8&xruR^BqtYI(^>fW4^hJ6tMe)-?yn#}XiPemh8h#%H^h$WNd9^SKMCe#F zA8y)-yoXdseIryj@#vm4GBm`~H}gOL{6I$_BCu zdLv@(`K{t?j10cyBEns*vd=e|Kt--PgceL?Ga(+g!w9DJq6)>~{5AEfCs|&-NZf0e zbcde{hf*en2g%0G)TCCL_S_ZpZ{HtbO2Q!%?lt`dzEp*8PA!X33w|UbPs|`*a_kw2s(L1Noz1A_S8g*qNK&1 z$k`~K9@on{J{(=R!T(isv-wA4_GE35i0)}i{fj-C6LjE{rWJ0W#gfj1DtOE6%>pmDs3D^H1XO308ZKrJw4-k>GYc}@*5^af9%p6(8({! zIO@ef^|yYN5_TYWQlDkx7XkS>0fD(o9Fn^+%e3yYAHB;hE}Ed2d6||U6ZXn^#|^lM4Tjf)l#QjRFIQ8CxhiCQWTIbc#!5{-@Xqi@j=?~ ziM_lba*@ua_ceto-X|{|&Azg6PE+F2g~By?(xAZe@24`a079Je%8!~%zFSlnW;U&H zfOv$(5C_*|c!To56c1)aiErc#ikK4D^q>4(>jI7oQEAu*3m*ll$W=!xZDsY^gt}$* zOAut-OBLj0^L8{MLEn3g=?R~gmm^#83;KRoedB3w$V2go9A8|z?)SwvSo$*DTvNOi zOOo-i)TZdvh0Do-U!_v^LPlEZ`j){fLb!8mbYV8#9EOY!j~8v+UzA}LV;3(dt$r-~ zv@Rqw4;ikh8BM{?_Km56rPjH*4W5fn&)LQ2~{A@0Q52Q|r$o@Y)loOacgb86C-q;ux>XFcm;ZyyPNsjJC{0u9D` zL~;g}nLh5UXeClM=>s7PBh+CA{F`gMwKUYI1nz&?SEe2vHSHOh%gcgW&DukW~jg@In)vb!e*) zSBcD|cAO?k%8)Q}JZ1nB?@MPjqK1H>H$@2+Hm?3E<(blp9@|0_6-nbcx;Gh(htZs=fQ8I;o;V_(pr3gJ3>6!FOg)EQ}Z-ED-2vC~_cfJ`soltbQ zpvmbChNb#mIoDoqX656|k!eeo7{83YI;WJZ!`~;xdNKY1jPy;iVT{DWZ>BfxEmDkX7fKh{zhTj_|>O$8=goi%?`*ga=l2^Nk%#AF7q7nP;TQafZI zQo$RELzlyLZ{;q8)jw?jKIOLpMGU<8H>sSDAEJz~EX<_(6sAa$^UOVT(h3~NYkeY; zLmsb){~UU3Rr8_~L2q7EMWZiN1hp{Fp(;{l!}63|9H4Ujd@=J*oBEQKi?p?HNz%s# zKNvl37|N*TVdK#d-MO7&o3>4+h8u2~7g!44n)DloIBqV+H+Px4d35fQJeGuGJLnV) z@{yVV9`;ws51C+Mp@^DZXdRIR|6Ytx$lXX9vBtOJ!?D`n8fnNM6pAdqN|_wCU&mG{ zsP6MY?+h2j#C2@ozIl%UJaG!Iu&YrI+-nSH zJ{@6p3p0Eiio+9)q#Sj&lW|Kd3uNBs*l-MkuM|9cg*_%@3^@h!<4n+E7V7_mlrQ%d za#Jr3BT=K@vI`@Ft?Na2!x_E2&DokeVvrVb<@5cuD*Hpu+fr{@=~ADpPm8ndO{w3% z^n&JIMC;?Dyq>azb3PhNblNeb&^}BY##?}AG5GOesY^5Moc9$Y-CC>>+-{e+n zWG(_lZeaq*uya#o+RR2p*>DC_`Gd{xla+I$&N*ItTYO{I<7FA7K97ZC5o+*sHk1@% zhh2m+FlBFQBuGyG7HbYQAZ5G2+9432>qv9971wE!2g{tN&zQvrODbu~j#o{BuKmkf;)7jOIi%wtUN}H1 zOZsr=tJGf70I}2FgN;M=A$U&h6-VdKljcoDdr-^!?jy&2s8uaQQJvW?G(ox@J5}}C z$rC5zFzOqh-fCHX22t&E#TV--$Wh0mUK!`=D)=;1-v)Nwwz}AbNoTL(4TVIRz^jM% zoo-Gc>~jAr9Lv)z#&C3D_1irHL+8%Vu&=DeGH;S+vIE7$aM%fsQ^V=Gx550TPJlWE z-unXz&W7H&;9YiQTkM-jj>Q1jGwcn!YuG94rkgFa4|PqrL|mz1!7IV0xO~8C^y8J4 z^?I!obZZ)T88=kMN^fYNzed4wJF`V4XlvEA2ts+NacVfSO z_=dXDs%W2(;b*MKFc$TIB$9gELOXUU-64Fl>e7jwHL(`2?#C%T8rrb*wGsxqdO~~e zl{T8ca2ns$j^E18p_KrGedmjo<2jq|9)HB?bM+{qHcSgIEGc1Z<{b_jKR+w>;f=?!pfzBCn|oK%00*hSL=> zW@bcW(i2;kc@0S5iDg;W>rN|VKQU5|%o^X_wXExA$>5yg2L6tquF5k$^FOZfs3)Cn zF1TkF{4Pn0zv*^tbW(2vjY2CGnIp%gLH1wZ^qQ~<{cwY3!K#dmxZpS8bh$Qe7I@X_>|7-|#XVXBE=YS}Uy?&}&^i}Ru~^CJ144JdDf zYIEGr6=5^p%Iivz-hQxY_IqSD`Jfrvv{QlNel*Ou7Cukzh3Nw&dkyB!H zs~f`dn(qrZd1)c-TVFNaaP7!h(_Y}^IB_Ony_>LsE~3h;xrf{_PD=71;AWelVyWnM3 zidPt2NJGg^O0}-ax|T#_U1xDzLW6C({5-a`*^ylBSN%#^{w({SylxZmau(_wS=m0@+QkXVyfqw-MT#l<}9sOzl(j zK7N=G!n6r+5`{IkL9Ek@6>c1$#`&OUu%CY*H!HA*IE9lX$%UvnPU0cdg)lN z;7fQzM`4=rw8J@=0j-3Vl)rbqcQcZEK^x$*rPU7e6Sst*&W*-}OO+)5_?$h|?t6d_4 zUs)F|Sf%;w<@2laBpQz{Vl~!7-85E64_WK0-$o0@&l&U>yq1$u5}2w!IJY3d`crCT z%e?IHA>-K}*Yoe|SB%WHn>zn`;rlD)doLZif=(T5(^-F9cXbbb?)nG(Ol>{CwnZel zvL`lW?x%$QR~OpWyFGE=KhM?4)g^2xslsTf(Tot20LicLmp5>U9~Tv}#cFlfW2Pp> z@+vIOl0|!>jI%?Rx;db8Kk|Y@&kW&X^`t_ujfC>GR_(ub9-TPu=9(`gmRYE)MS86- z(q?we6NktRY8xeZ#WIRc_g3l6OnD#SxH87sP2p~S+$O}~Rd&#U1_#BMySBz57EZl( zvcCwTo`A)gcAoy{(sR_sU;%a4?~$*`jc)twI6aZb6#xYPx1^X6q=VfMH@XtACv1Z(}jx)dX{W6j|-f{u|iaTTh zSdoXEkA@vr?d2IzOFpO?tuOrOOQphtCRlB4C^>_4@BsZ7g8_0k4&K1GB4ORfkO@c; zrh?n|caKYnKe>eboeyTwW*TaY0uDmvA-uWSBI)T!nNlI1*A<1v@5P#HL$>gFf<1@@y=+o8;-8J|&{H^&&2V^yk@mN5u!s8%trzas_xR6);0L{b9 zg<(SCvb@({*g0_tyn>>$dP-tTiTL6l);a9#^1z6|h7IMTEH zh1eN>D;^Tl(=H#slVuRw%>;6)@MMGc??ttE5|ctCxBLUT<1Z?}(^UK$Ffu!U(3jci z8>sSM@*LqQUy;@qO!N+c`?G{OLe>K%C@ukahXy0LPg=;uiZsss2F`U=WCrrXdh6ct ze-6b3Nb{?B_`4r&pc5pR4&UqSE2shaDrwZZVX@rslNY1yx5z?(NrY3$LFo4`ezo=3 z4jB(f@gXVQt}!e&MY}I?N$9;Wc9R-963PoiW3CsAwPDBwZWuycX5p~Lov z<;4*P5oRr7%oPqzp>{kghn*o#XyuKF^PngDrV7slR7n_1vY*U8i|!a^@ZM0liuQu< zUfOM$EP5xnch3;*li<28$Opg*{O?Hh=D&05H~m4WzppQgyXo_D1kLt$1Wo&25Hu^= z4fxwSps}K(6%nCl$MV!q@CQ-7hRG5?|KPyG+4uR`6`uDP=^M_m`DZ)VG~lQk0d9tAg7=C^Gki+B=Id+<1mMJ-4)oI!xWZ*&;a(F zR~SS3M7AorQ$!lMHOhQy`TnJ#{@ zp@c))0uaDMCTdt+SMJsL2a4{Rm}*nZ;H+lAzNu)hE5m=mGfWFXXTYj;IDnLG#PHe} z!e3ISF;U33rIW;maB;0ew9z+GdgJZihbt* zFIe1mp^4EK)8qOcP`}btgbBgcGW$?X;S=G)A(B6yqe2o6z|M&y8cG@nNj#lrjKTd9 zC80tDUcuJ^gsD+{*a+M)rSy*;?CxT$U<(q6A7+a~{ZxNJC^R%5PMDfA+OswTQXeSs zh0QQwxt~!RSul?b+g}Ta*y^NzfzOX~KwC#|9M8sygK<#A0I#;oE`b+ea+||mbPCWO z1Bx4xgJlx}tFR*(D5mzmg0Th*{(!OWj)AeXNGxl-K!q?10E#7alt}JL1!*jQ9XLf% zCnFzcF`;h@y`8cO?k_qa8Bs?({Kg|49j(|maEGR){}~)bDTnjjBOa9#C<+pwUk#?6 z%Ir6jtn-&Ox4*=0)tB8n`3`>!adZzr6o0W#?eE(MIEy_w;;^nx%mA|+pcUPfND=^Q z%zoDz=GYg#ZAf#k?^me}t<;t^V(QXIK`QTcWGV(B$pft-oD*}IM5TH+p$?$9>_ zAezRzi5v17#?UOu1xOyO1L+=ONFj_HtWNnp+AbE9LUmjvwdfA0O%xPBcUm5K#6mEQ zD`cI;wyEwycL^7h`R?L<;*YqgY~|4v{0!;Yk(<*x)&b`r@|)%9ZknVaAx?ZF4wlsq z;T-&q<5bQhNSISMz{6ioxnL$(jTxCeibv4j>8@!BVGofn6QAiQzh!WATuJ-MqXYLB zwo_S&4a!#(DAv9EDit7c6r@!W*1%(YN#!+TZ{Z%jK_6n9G4Jx2ZDet<3g9d?0u7(F zm_8ZF2XUem2s#3jB;$UEbslGoL2YVqYVBBoocrj}jr)Bq8mRHrxX4Y$M5HtkFlAeR zFZU2^hi?>`t1phsFaPrxw_nsQEx;(jzw-f6B0qeGwDgH#$#<)fMzrv%r9zicKtuO= z8)X^X=0i_#<$~o7lvnzy zjLfuy$Fi??Y+rG@a(;-L=e}LjY#vUY^lHPF)PX{tN~IhB1Abs!=%EWz%o>8{IgZqLZb2z?Umd|<`t;)`ip(`L)NX&qO zoh+?YwGauIE#Ap@Y9-BPMp6!cVrk4^=FJ`M7 zFAuBUvA_6Ba`HCav`18(#{l66^0(@-=+|u8lrM=*Tgmc0nhTX)dKvexb*xkEV6W(R zdpunez?;gVir%%m?OP{E&!C(yvMZvpSd8hmA3yQk4OptzRVmBuz_xPntv5!J*y#KD zU8G~t{^gaYmD&zWw@iy%Q2p6X_NLj~)T4eE$8*;Q30C484L@@T?@UB^eT6vHz{jC- zYv(l~&Kcq;hdp+`+C)tst|91?B9At9pQgH3+8{1CS@91jz~<-({pTf zWLX4Hu2Zh{P_giH?xwJ>~)m*!+ zuN5Y+4X}q8>`e)j zz^T|@Vc8SW9ZeM9Hi6w^k23fGDw6e*E-aTXd>gdt>DnLVr=vgnCrAA!NBt*9{U=BL zCrAA!NBt*9{U=BLCrAA!M};&Wm<9je%uxrh8TTMZ-Oz5yWqs-9?54jGOWk_US8nyD zQWLfz8stTir|m-s#K?;t0HS=1h3%$>mY83Zz!R)$aClp()%8;p(q7-||!%0}Lw+3*2z6fp7fIw!8MRUCwLuC%!^U zGfbTtpmk>^C+*y_V zw;HI?{ItNNuTsYy>3oyI<-zpV$s|CyMsL3&NB|)Dhj9hz9^>H)<5-^TOP5o z;Fn$dPijt79!D8RKEUs9cb_FT=9jhMuPMl6MAOXbRpWC4R05>e1a48fwqj;wWW&^H zvzqQ5%ZsIYwccCjvcPZQ=0NXNkGUpK>aCr#N>QzLamn=H_v{17vfj?`&bYRmq2x9{ zW~k+5Slc&`qi)m2v&I*+Xz{nRy4qUavuPU$k6JT5oJUsZp)g2OOl3i?A!J=YtFvG`m7h` zD#uy*)l-$7su-7t7QYNh+E?k|wV$}IIxi~ke*32+-#WTQ4>1@&9+mfsYO4=>=&MoV zu_|4aZ_t*jyffVoP(-W?xOJ;ak*nCKD#_w`lUSk+p z-LWTWt(BTKYZp!Ssi>f|@%ftrr>tK3BBC8$xoztLvY)tQT5WpHtbCGQ?z*V>#mx2d z0w!KJd2YFi@#~hJ4MD8u-Y4Dn7!%WdgH4(@NqTadn;B7e-Q1D~ABk+~x~6ysi{Q`_*yh=pRk9wvmJz)fK+^xBtT1hVyaW*uWaAgJRL<^+(rr4g?%8k2|!%X!>F5!gj7ZQDN-|4eE4e zePn$Aeya0OZ)VUtk^Sn5&X9|`CerD;n{IBlm)qjgqf&n3$#71+BtlBiGkY0cfd7RJ9R_IR{2Sr=DIBn`Ft!7^BQ>2V#m+x6!ojlC0*F^g?skt z>VURQVe22(*3E63e(BYukYtBN=bvkLZ+?0bRrfY$&LhaMx}qLhGkp$Lr!LD7>2;}T zy+7Kl{=V3>RCexp|MrvKDK3Z7h_2-eDP5V>npx^uKCb2EuF9F2%yK=AR;K`q#6bHR zgSxH=!LkcV7g8O!wixwA=ZD*iS_d!UC#1C1inph@hl3gOkQj#E!Nt?fVKTYO{Z>7`+>j;g#~>_NL?TfTT?qnWJhv|P0* zHCy+}+>BdsZ`PF+qe8C8PB;^*w2e21RWIg!08is09ev+y4X^aV~#}9-Y$E=5JANd949J5jdswHt2q0u5 zLm`vv2W2ah=}@BqZO@reRXYWY+)YGgzH-@oomQHh=GAa?px&kzEm|V>j67wm6#2Go z>WXU``Sl+b_bo9gJShFH5R=eDrV&2@!8s6lf$vXbdD_Rc@5z1Y%$Ut%%<{FU&9g~x z{?*X^k%Veor|x_%IP!+s#sf#Pb$u!q?~Bl%ExTU(b$Jdot)zc^J8}s#7kgBCHvhbi zqCG#(tqqH@bHyC@PQR~cRhw~X)2&D8NmE27*QypJI=sfOzN0vGFR3wT)p)iI)GgD@ z`tj`Uk{m|AL!0W9k9>zBEgjk=#&%Y6PC9Pou5 zxv8y~DD`VE)gCZJcKT9;6~`HABmI~QB6SzcixIJ6W?7rtBvZ{c^ZFIp5$YF+bL_k_ z+Y3V$;?0SFtl^ufW`2$ASv-~{#nr`l#Us%yBaAt zdOUXK3pOSw@1SQJy*^J#fjl$qfF9Y_`Id8w9XD~<+qy+(<%+z9N!G`X`@WekE!2Rx zLb@L0xQtIuuc_nn%sgkJNv+K*7hMnq`?csbKi_CO-&3ju7yU)Cbn>x{lZ}PPf~1C; z^+?x-(3AZ3Dz&2z zRYyMVk(Q+3gHDsg5n@d!R`q?Ag4VIa3iC!M_BATAQdMI7fbhu60yXMDcyIAtwSxh8 z&Z_O`&}h*xrqxWK90pk7R3yfNvH&T4I9UWmjE4&)40*8@6|^+`NE!ZZGoc&}MQme$g;EwNpY9V#yuW$)B>f%a>AAOS1^3IB`%UhF6L+|4!c)f@eGSmBUk>q!7%RHnafl?%8%2 zpukbvQ79dLvmNazA0hD%R^D}!W-HbtMX;&jAlOTJrBGV6vphqADHsN9AT%4(r7{D< zeh6xlxZed}0-5&7Ao!b#9VOXsR_Ql&K(}k+c||~KkipA|55XIgT9qYNC!>KA{SuQw zgTX{!QK7+QKR-r78{dnSY*B1~-AEu9rQsm!K1#;AWm{G=2 zt=-~lY@`t{nNo|N2LA|5flQi2rTaxL%#FDcGtbHS(kyBfH>ksR^dmw?L{~>+M)w+E`1>WDXPwz0rAYcLvSGCOjS8@5E^NobO)doRJ=h7}~O# zD5(>YD~45P!urdH?9QGI%&Aw@sYod^6`H_O>vPS1dg)PYodi4F;r6FK4N9m>d2h$~ zJ`OwjIz2^7ny7HVhcda|r&Odvqt#v5Miov;AuWMFe_7GT|dUP={J}Hu&^~b8ETi9m( zB^Jx`Rc1T%5uFx@7l2^%|HO2Ua%CzT%cho*wuJDZi@cz4B%4~NSw+7mUIWY97WN}g zphqlp=b3Ufy0O!!9XKqn8FqfM0#TGM!S!9Rq_!jq|9e5$;-3n_zL$GZe@?COZ2$@! z(k799fDF2dv5B-FI?}Bs{6HKg$AE3p(>`1xttNxQDld|*axGEKxP9K#`C3~;a|2)%(Mw1I+s{`hvNkv@?Ao-i{; zpOvqbKcj{}2>idwci3h+ZOG}4FA&slaCp)i=n3@iUe%0JU8)7B!zlShK-dnHyn8;% zcYe;2F&f>Vm(6rXDUE^*Zy1Vw(xaQZKOPT!K(8be^8vHqI;^ocRJATP?3>4!kDqs7 zAhzQn6F-o^k?ZAs?)qIm#oh9|eCqjk(kM@lx4uR&gu2~*B;oAjm%!31s3RP^O9Hy7 zpN zCzcazLCYv`j{U3K)rF`ZOQP_4xBt*Sy?4S6oTK2wxOK1*uk|}z9J6W*su%D7Ztyj8Xqbhb-mHpVB zGCv=<#h$6~aX6BnlC=DvKk zeD$#-QWJi&!x>yfzMTR_JD5*XTjOhfahX8SHmD zwVY8lWPJ0D@sNF1D>alcB@fTKOW4ZyEIco-Fl*D9zM0A1?;>9`+61VTt+=t@VA;pE zy`tTY2R2XKC8ZFr@0-}lXheq1*=BG1J=-@C+g&kyL+y=h!)Lbdm9j2ay_(`yziZ`A zlIFObqRn$iSRa86XLS}eOa4oIf_VK)e%a~vt!7`A81B8bEA!k9@AXG(m$f*i%`;k% zE81u{X1xW>K4I6Hb*_YJR%sk>d}Vh-lHo?Cx( z$YH~qPVex^R{F~>EyY-v<5%*7hkGUAc`B^N9sKMRueKs}>A7X6=iSvdQLnbui5<+i zqN=%RifS zc_nbXg-1L_=*p_AN$#`CQT-{{76eq?1AJ;LJQ#?93!jq;<4|dIC)@0Y3W)bV)=QAn%0bBv`}Yz& zXb#!gS>g~j{xhtQ_}xO8?^C#g)?=JeQmn<*S;e&K9`TfaYj?u>!|r79cXlUZ6Sv)e zwDlk*B4y?^Ks2nQ4*PIh*{Z@3q1t=cE1BJW0ltuG{=mk>l<$US!B_&>Gkx$|?~U73 zh9kU@8%7>kB_vB$Rs77pBq`!&SN<|Kxx<1jaw920up}Q&zcC#wxYLG!z|Y{UszilI zk7bu5X>c~rFg_XqlD3n>4>Pxv&>#Dn=u5Yg@wIt|qP%=ehw@)XKu%DnSZ-8N5hyt$ zSG)hnSE*oCD|>1FuU!1i?^F;z9)A-_7~u21O1*u5qWm~=UE#hhITR+|Z}tI(f}p80|3hvMUU0YB}`nOFR_~d_+^SKu?2D~tEc=wiJmK0zIy%-0O-dFeB3uuBl zZIE73g>#-#;6Eyb4bzPz+)tIpb{Gbu5U2GRJmSN1T%IM#M0)W$p$$}iRNsYHIz5O# z8u)l@9+#SvjRA^poFDob&KQ611DMh9z$x)}UB@ZX6vA*E^s}Sh!ll!LeV2(Eh?19J zrdea>%@Ea6@Zp;w58DO#&?dPty$#IBzXqem$y8n+Hr^@ft5i9Sm3HD!=aJ8dJhnp> z&OF;iqlxKY#NU2Ua}&uU-z_Ud2B2@4(+e+mRG%p=9Dz7xyIc|91U0mShVE!a!_O|r z4wHLfZ&h@Osp7#&e6Y6`ga(sS<=C+g0d+nD{RE(CeVR(UjvlJp`BjQw){VC;SVZd- zk`#+B=yeMfD$o8*1#w`E@&EVAiRt`wiISiclDBE(-_KSLtcA9$g?6q4W)iYcw1-r(Lfep*@|TrYr^S~M9Ln`Im7mhI+b>Dfkf^DjTNA? zQMH#cC>W%L9V#&ph{pGUnG4`qy(aBs*oxE%9;%lEpFxaqu-EQ3 zGxvw&Eu(Ug<=OCb2gUwgT%1_Fm92kBY))Jq!G zUxXQv1~afOx(JrKe2?FF=pBP^mFz+O^PbqLVyq~K8`a}|hcps}t|BBP(1#Mi0t`;R z@T|{+qF%XE=fdq9!bl;d4t8+Lk@~=! zs^=J~1W_$hIBAX!P>>kyf;J~%zA8$o9~CKl`#x4#(h@}*QdlHuBbRd^dCY77pj`q; z+EooINC~^@x~gHd{n5MF#|*aUDX!qa!Kh5C936u{oHK-CO;Hh^gF zpNTDPG=#IH!u(%nr*T$S4Q4HXkzh@BwsmwFo^!xnflfa&|H5Pg_ywq88Ny7*m$^3O z!O{2oVct60Ts@3~7xv3@tc8mcBm-pHknUL+%d_zuG4aV$@ON@x&idb&RKx;Y{mrC8 z^G}ls(m~(D!S5xv#5fE&z#Yap()hh3D1M0QC@odajC&&vJ%^F8sE|bEnPTi(7E&<+ z6{XYE=l3Yc7lbuz!7vOI(o5Q~9X41YBu<%WwFSASmnbnnQ8cwgOiTXl#<><>>;7-c z?BqJ|OSC^A^e5C4}sg?91@t#}7$Q*Um zS$5VYZl}&I$f&9+I1}zKT37sJar*h16F2YP+q^H_4ZX7Fa<8?u3o#`=eaG;w$jPs! zP+WJ0RJ@2PZVRd?Tz_i%+$}3FV#iU`Y`n_b>BadMhV%HRAvTgh-paM+4hC$rYp_3_ zRj+m9iSL%=z9`|n`Ub~}4K22drl|Hec3!)yAb$h1;g&3IMoAlSCQ4ToU0~|YWv@VH z@URP+DQ?qxe6B`=w<}@(2lb~Op4Ez%GA0DHF->x=Zpf0(JQo(>;8!OZ|6v=3mKovJ z7CiWIhx?~UMuApdtY#H&-PX4IgZ`0~p%uDIa@idXb(Gk$5kk}Ordw-1IaRd89$Xw! z*5)cL?^Q5-lPbyPnoacz!Ut-(7hGGH2Z;+&kKyn8f`> zEbxWZcQyC3XFmiInZ!cuB>n@wOtCy;Huh!zI`yrhO5@iqBROm9_tD}T-;P8UST1y| zNb1^=YrU%;S=TX+YL0x4rOwQAXCcFidgLrcU1u+BZwp>{BBJum&p&yP~x)~`m1&HdoFIBj~m6AHC8#Q($ORm5M`ytqlw`sTMVSU+ss~`*g zN0$GOEdL)_{y(z(e`NXp$nyV@<^Lng|3{WTT8IBfmjC}NS^h9`BW{T5w8RH9$R}_K z=V|uNqH&qv+RJEd{VMfzw*%*x98-5C@jZWPlD?#WZV%yP?o94f z4B`tJoOMY+i^HL})M^tF=D=IOC?G;R?2v8|ctCU#KbU>3|GzE$1XyR(k8Kp)8T)k# zhv8Vb8A|j*#krJ{3t`Hr8VgMVjbW@vH@e?Gxq!M?D_%pSaKFMwt{-N zElHr`v%s@t)V+Tw4SN~e_8*(~-*W;$2bl@r)9>c}flx00nR)-#Rv`S$MxfRpob!bL zV?H9)vj}Wj$N=XPl&+#m7#6}&{%`I2V{HI9`OB_9wDM6aQ3_{jcKT^Ko4wrW|(j|x(U0TUxbnfJED1kC)Q zBsXgLoJLQOzK+nTA7VWXVMb#2tF>kcoAJPp5Z2^50~U4c5?E~zhpgRy=<5}aid5l! zk3*4c!#bqbz-dh1b`Sh4q+?IoZywb>Znor~UeZSd^1uNq2?V(3wgg++&!nNsP#@70 zK~do$?g8$5FE6#VK-CC*rn9zY)Q;r8HQIl+3R&WV#N9EWa;W6-*W%2l8G|2{MjA{9n506IOn6(dQ2=_||v4ebhVV2R`}nKO-gz zzMKSjx{zwo{AN&3tjg6{{#|X#qi$?(@OQwq7)3jEc6+jvVe}NQ^7TeCFd|1V*nI-M zFTc?dneV?!wEzwnR&W!^(d!mGA5)zIF3nY_MmPc*Y%WpJrlR(Uf6TG1HNVw>&B)_N zUD=mia2I}N2k>CP^qY9R5d3fQJRMoe5juw+TNam&1 z{P^cj6EYApN%o@sErDdTfwl)W+ftoVV5S#zza@hezf%dqQK-T)nLtG~E`}SvN%yBRgGPD7nZBNI|NY}p3U&DCQ+!cE zuj+dP8sE~-0YIDB7^pE-VD@^`ic|%1HfT<~XC}h#mKOz!lP>?z?p_0FKHLY~$I5tg z1iK53j~<1=tN+h^?X|!2wI>5E{FkqN9P=_C@a*M&G*KBWylI23-@g_!e_wf6gFn%3 z<~fpJqRk(yU&3_pZg7|SScQB!1n_cI(ny>U42)%#u zBGnkb1ThrE4JG=@>fq3DnhElX5HW-=a2G6wkw1g)aP2h|1@_`KM*E3`6=O$~P=l;@ zNHfz1xl6nERVr^U+=^na%UEyvTKc+g{edx4#Rr6OpNf%5uzoir|D?rlZlkndr5>6G z`~5bJH+D!Vsg))aU|=dgccIP;~chH>znqBL+>@hS@jWYx)E?7+eB>! zKYG0$j0g(d(xY8npqlyv=XpFh(@ljPpZpj#2m=dAO^FZU?+M{eGyO4DuL9V5AQ#gE zn(@CT2V5NfeS&x%7@IS$P`^y}0D~STn<0yIm|E0hqp>-ZOH|I8Q>4#uhfg{P)r2w( z$CV*X{ep*mgS!J)#TzR50%60-e3l3;l3>3|?NsuU#ybM(EC;GY)5Kxo8gRrWvKhSL z1T+%3TI6kf)*}$9RQUb^>owF9r65V8){Ng9d+Dj8TLpw&LuZI19z)_!V{P8Ye9vWL z2e=gE4vR4;N5F$gkX*OI^)4)M1D3%V3yo_wkvEOCY_I;g#TR|l3k)2hxrW6@kmjdA znBX}*_JW{DAp`A$w#OvqrUQeok#)UB@7t#KecAxpM>P<)uERRC4C8xk$u)( zzA%ZG!|;I>XK&INN+RjEbr||nT_#bG*@6gnYrX#L%*1OJJw^Wy%$fm~nLo@`O$1g2KB0hrKrshjRb_ z$8}m%lhk5W7$1m@43iT0E=Z@rU6r*KJ=3$ni~~U;SL;_ zIbQCGHdTgY2h6qgKdKB>R#z$z2yRv4IhwjoXb)ZuY6abv1%2wC=o3n*Az>?1M2K4% z(zK6MIFQXO7gWrQZ^?Q}neCz*gu0%6TPY_uR>jEKqkrh6g+RYpD)udgj0;>+Q{0eC z>%$^dsoUz|lmI*NW6el;WE4VnMqIol+f7#3&aFGnN>@oBazD1KN`Oy!Y8|dkRdDVo zGqmU=W&SEn2dr&AY62fACAlgtNZ$fq1CbkpG^h5p?eBNEyl%q{gQQ1` zvWzX1+~8COg4DRZ<9bO9DVGu({G40zfk459%s~G%QkDkyp88QpjCX~M^^r%P*vb0U zL@rl-&eE5EobM{Ty)ezzAc`tm_VR76>G}5dvO^C( zmE5W;diA;f3#IXCkpvK~XF|XT->LVY!IGz@AQ}CP|}0nr9X!^bWw~= zdu&~}JE9JVhTeUBCLV=g99cZ%)nK-j=A6vfMe(fw>CbQ+A3^7MVnU})h)5e$W7TR~y{ z*dK_14lMqS!r1Nd_iHCV39&I0XwoFqMkJj1#+(`DbrfzwM2b_gL5v+isYQDSq=UN5dHr`)0-OZQ3S6SFxim4Bn{f5(Qe|;#TBAYHp=;?X0ZvCCd1# z46|;YmhPI&JBmj?4#c^hIbZK~t8yM^K;;^Hzj%a}ODc(=xKu&7R8GF5>7ThlcL;V& zGO9JVEd{`%pbFTV>J3@f=C)z+} zK?E620Nd$uQsLLSl9K=prxp8>0j3@wO1>q9I!aPx#KNo5i(ATmvSp{t3E;&`cu}=& z3~NwAcm-KB!t(+7Mrj&?g>M53=lQ`g6%U16+Oe0+sMcY4wGHfRMs!S^ujJ<8wf!p)`d_;2}p3l}2-wRj&p0-w5i zA4G4n2xeUI38W6Im=!c#0HrU`<1woe23x#DP-);R9UaG~DKGQeOO%`c?ha*2+A%+? zfne*ryxJi^j{?ef_kl@LG7Wq^dz>*0E|8Mg4tTA3N*cr#1>*Q0Do{occ9^AwSWX@M zt9{-}tHnyyOT(6!i8j@p--g$4$TL3=vI)~avk3zzFao^#3&e6soi<9CmE&ej%4scZ z`JKY&qy8iB>C7*LC)c$_Jz;UG3ik6ax5irnMKANsYl@nLQZi$HIptwt(tW4}zDe*E zg|coHB(KQs4TPY5>HsULsZ8Sqg2q!))m#h0B|NBar%*$8VI9#mjK>c6(Lj(8?kka| zfuSt{E7xD#%*EWkb@9q|a3i_|rXz~EfzU}+T#RFHM$zwS)!c1d>``oo&>f^iR#n`V zTLXm(Yczj=TT;ND;BtqMQ1Qe3%d__M<%W1>2JF9rz!7u&BLMRem0B*nO(rgfo|?I^ zWW98=_&?&x8|0e~-_X2^6N>A`>^nY*Veq^fa&1F%6i zfiy7KV_@a+{eH-#^pAUvki`@bjgFa#fXU}x!72vu+OHapUI5z=N&rwXPgL52xV6t| zsHV_Sisg?e5Nij(>X8dl`3d>@%(L;!ieoK8hH=Kxn&LJ-y(C{X{kUy1??y zGy%hNb+bAHg+_)?5m;hOz_dQipV^0B;If9y&Vo|e-ZLy&sJ7R=+~-I!T1gNtT~pg#3M7Q?{ofuDzVLC-JX zNV$xVBfvXJZc3r#3Tx81h4BSB$RzvX79cvX-^qGR`L>ogx928aGO7<1uI988kR>>#{U@FN4kmR!_IFusRmi*z9oIUSf-1fO zu$u1IkZx2oOAk&WFpE$U@SB7h41fyu53s~goi$SmGesL&i$IAMj6K~?loNf-FOb=( zDAp_gS*ZYgzY$pQaBk2U-m5AgKiLzEUi4jpbEB%3na!=_7A|D7h5&|<4mkztaReIb z3TCOuv?~Tmr|b9I0NcMz6ah=S%(%R?B4L=GQd7sknzh#uKia~O#&fYIih*vpr4$p) z@Bj#~uw;y&%4|^mX*6Y4sSBL0hJRD=cTQmlEdgAeZQMsj6SHk*8wdo#LH4t82{Aht zK6efro6$UfvfW}~ezLvcDe=X{L2siM6efL%b8^FA3)?L{RU_j z+gPBs0)3+f*p}m340wvF#B#OmX|82{Y@=nMe&)9%bv<+sPr_4mrf-@^Rbs%L^?JWl zcbgbpp2HhjfbAD}mNv*k0nr{kr4%g4I@OMut%ic4TB8kkS`sWWWKqF$%bNK-d_OJ4 zUB2c^$yT*@Gnn6~(wg5o+=|Coz+CbCTB^on3#BnoQp_A8CCFo&&@Y&` z`Vy9H6(s4r+<$iM<)Yjrz6U^&J7t>D`05L)YZ!@_7*1YFfaw(hG%yGDcoP}xK}2H2 zn5IENH3!27T5_jp#?H$+$TogP{zX8Dy+nKnW+o-;z5=%hTb5C#lHduCGc;i`Yt=Si1}MQ^ zcnB8vqj08}n9H?_IxzC~K^8ZGS(T8GPF`J&`+rrsSGM(>-9kXge6KWE3exo%amAd4 zeNi-czuR|A8HB1et*Z359N?ziUlRqYo;(OZ@L<}GGU3d#>0T9JFl##sGTp!e_x>tZ ztNyBVvlb*6NUK`+zzabD;tK;R2vDAK6c3sPUEr;Pt`YhxuaPU1G=j(>R8NHAjGBqI zs{TQolCMHNj$%c~59xBSPDKK-6EJNJ(k%WWH8OpkC<4_ef zntZ~EDz`^c(|MoC)@a^qPe<#WlKrV1Mw80`G0s#CIit9XdgtJjrke8Ub3Y zGX*$b=#-Sj^BQ$XiG zZY#LM%S&XJ5$UM^;My-;3S`L?8@fV!E1JCi$vxY2r`I%anK_v$8_$w-cU~zclAI2! z2GQ@IRv(P2n@?EBfXmJOKcj2N9^?)1uUA(PA>)G}Qwm5)kmiDE^|cq5t$<$G(2XJp zf+Jl|JTEH0*Ha3ZZ%86tI01UU&l9XfNo2=07-yH4Nbjqe_aNsKZGl-i{QX4ld^}5# zE*@%vMnn5Al>o*LuzDyMS*bWOa07(~T)McVKNFksW&ATU*=43Z&V#7Q%b+q&`ULIX zJq_$5UTACLc0;BZ7^T222upax0P**;;#}rk1R#Kxz*ZjXon}pySV@5j zK>;3INEHdcAeagr?U4ifoghhWLCl#rPoNWQR{wqLl@2_X)fJqKP$vM2o)s1pHW}*fqtQZGNJ_7!m zzAk7i{@{A2GPsJINEs4LrqFBn(PWs173ilrqVn*ci-qwMA7)YUONhL1k8Rg)Vy7?R~~yg|C)J_1WOdi$07aB1#71Pi%oC;DT7!?{)QDQA@~H~OWj(sRXhdksaA>jzorB;34hHSj0d0-v&GQ*!7r$u z{qEqdXR`10EHwc2K#G$uJYu&@b_D&DCF6N%tnU{AMyP!aJ08>VH4Uo2-c*xfDK5wl z9>HutmEupt&Hvq$CqehGytKY1AUJ_ZX6oDKF1CUE(l-&dGAWo7TbVTIl)@)7!J`Fx zOc#262(*g?R&r2w`h>X*BrMkG;lY-~AojF@c8W(W==Vg&_d*x=?x4D$pfec*pFlI< z@iSb^ag^`uNf7I=(#Dem3GIgOARuf;Nu0w^U5jBAL(2;(KiMWm0delfEmRMj7Eh1E z{Jo7wm&OfVVR3*lw--@HoLgT2a@$$jWB_z(-}_NW1Ed>%inws{ggymaVaq+J&EKJej1yT7@ z&-FO}a$%A5i9CIOu=RE^uYfd=KN9{+9jXPyMSp4py<1aFMDIHkfbwAb@eAn-`tm+QT*y&7@J!dPlnR#x;qAE`ZxBx>{3>ep6;7-qUM%Dvbn~k zs8{B0GGmYFK)E}Hy-w1q-gR9cDUl4+^RCJgwvUWQIVq$)_fBiKsS48&3a>v`8PsX= zjy)SR*MRUrFXkJB991>BBT&|^2F|Hq>QO%W;KuPeckhW9ulD1xjLrm%tOd-+*st$y za?h>!Yt?E`5Z{bR-M*#h4GeBdNO79A6Y@l{aFnmYqM>Zem5hQ;6$hYHmK)Z7EmGut zeB?>{4#nV4oq5vRCA63i@7t+DuF#azY2g>!Si*L3V(l`{u}8-V;{`eSA*>YMk-A=OY4y3|K;Y;Y;5qqm`Z&4Pp{V#lS9p&q!Vt+`FbD~*W275ZWAfRI3!(dMR`{?E4Xy0J|q zEZ$<+fIRN8%V}yH*Vqticb6U2Rb<>tJyz9Oi+X}mXnTg}b>Vbv(GIs4DjIlELgXka z3p0L+q#r;)eO&Ka-UCWgf@bnx?*~GKb&`ztRtjr=d^2KHUq5%mJJaJ^NT?Hn_YU`X z^a1gGw{L)om<{04`+zMp3cMH(sqOIXO5yl@ST-TbE!6yY*lf2M|)gX`IC(j{dsOnO4)mxoa)aF zuLFQ-(78QXHnI))@0^zo_*Mo#MUjN?E!mDd zk$v2q%jejl=kam@CkYvWPZGKlMEU&nG7WV{B&V$Z7z6TBAgB0n8xMfG6Vkrntn(M3 zbDUAX`g~O@P`=9%yGyVCMeTl#ULhs(FKYK+)NU2(A9ZII|3&Toi`oVICB$f+c@HeI z8Zf6t&{Nyg0{ueE02T^FIe;U`-L3{LbN zxJb8x&|u{{tXH7o*8C1~8DKqnA(p6>j=TR2Dg9dgzA03#wlAv;R3?UoM)T6eft538 zE`9s6`?tD-!2h}mtOWi2>m=~6lfb`D0-$`cMj!BBCxL&R1lF_*_}58*4r@Sd!}mL) znYE};Tq0xwl87WwI$2r(HrExkApEbB09&YL4HJMW;)VZp5-?kV3H;YdfX&1lwD>jt zbrSgh;UqBQR7RYV1|)NS)-@77gVPIEDt1tAqQ^F2sx>{Ot4Iv=)w6w>j_?69g~fwf z14!PCz{P@)4^Y|5BPE*>Kz}h6kB5A=YJUd=t>gGXk2@Jdzs5TR0E|WIqg>0)P5(Q( ze5<4cNaw{m^j)B?1mK&`+?R}f<9z>iD+p?9B zNcL>{D9VEsg#~$i#RDc>V%4wo{H35>gmI0)UvXa4zPPy#S)nL~uL>T>jSn`3s6s zX{Fk}k14f|AvdKm*4T@tB`n0n{?#7sL-t=S)M(h90KW&XK+UpntT!;|O+c}g%nM`{ z0aQ?HGW&>>H?%)a3*g@Nvh4L}02jRHDP$7LdTLVw@UCHQ5a!*eh3w^uCb(`Ysv-q2 zLoog~q5fJ72*aO@S;H7Dc6B2)xK$)T_+YoOl<;(2`93Ga!cH>24B#Ekznt0Uy`0sQ zktMhAhamunY+lm7HOgK{L=%auxovws*N7!hLXtm5#6z0SQ4-m@TWq9=W; zbQn5Q=BtpIUH~3Bz*HqdFN1qbz=F?DL5VrIl8vIuwa(x50GH3fTzUM~sSnU4_ZOF9*LK{+Ygy|2GBs# z%NR~etb0L5gdu9Q6?MK*?k8ImhGh9Y1i)4Shp=U|lywO8$*hx=rwAmyiP9?$u>cn2 z2A2=_10o1;a2dBKL`EPeFii>q%1t08iV;#Uxj4$S%Ub>Swg<+S6b>9T+Z5wRm(+?| zfIjgQm&pn(eaq$O#uOh#Ox>)SR=}KZr97cviRYEt2T~J z0_Ce|_EvExst!xT06>L-&=ZE?R>cC4>4Uu`f2Tj01;gjByW_tCibQcEfcjYeqE(=S z!53B2UJM2c7}ZVJx>&WCsnc2Tv>F!Lom8^+Ii@}UHHA5Xss0Hy%nOzN4DEk|>cz04 z)(_EpOZI}Xi*aHBZS^yS9V-s;N`Fqerp*80PIODLP8$$sYoS1#`!SfF%U#i!L(Tu} zsrHcS!P4fmVxmfcPuc^~MGWu?ODRVYf)K2D7}RNrf3+ue$>^eC2pCJv0-riet@PVf zRZMWrQ8n-;mNjDpzLD!15Kzi&CjK?EpAiFgbNz&&kSlZ73kWc``h}-VM;8RjGCsv6T z7{o(|G2m`Q7%!(^G(Lv*!e8lo{7smoDd{KMRie6?6R?ldZ~`h(#D%TYAz;X*-{ytQ zHfD|h*FE*-l)lCw)YLt|AjgmQEeJ1eFHxb@0Q(s^$|$P`3NpH0z&8aCwg69e(0Wt@ znYars=sA9-U;n)d_+nN^ET*syf*B6*GJhA_Cp6&ZwODdr>FlgIdLTln-2iL_Ek+~Nnm+;rHcMv!Hr)V zpdl=Hm`Yayvl|KALEL;R8)x0&OwY6>_p;xwRe&*r9Oj40k}Q4{@Qc!Lt9j#wUPC>9 z2D2v4ahA3Oh$Jz&slb517D{Fs4vUL|Y3iGXD!_b#0jstZvL)NC7#hQnT8MfCuqRuB zn8s`+sY(8ty0c46MVA#Es5&{83INjEyaeOvDj?XlTH~iSWr3CF$dblVi3cc0L*{oZ z333hTuFi*YU(l*DZi-WLrd*oUdb>=aL=6o0&`}e5BJiBa$5LTHJ;gmA*tn(QkGtXi zZjJ_vMS^koR~xm1#EGx7sMnW(&*pnz9TJ(30UPY6lwYKT0^8-=6GCTz&+pU#e|fIr%k3TGCA!6h-}pakwM zNw66n4%JfmoylBPgV0>gQLsJ$9yGH*=y+3i&!^<;xeW@f8Tqxf1K%(X5vbo;k<%Ff zQkMerHV^}F=?gyl?hU>|fEB)x(b#e~>qg(!VA}{>`xgRSSuS7X*d>j7vA+L}#%Ze) zpZ?Makuq*7(q!%NtrUlZedEjVaM5`<=;Mrh{1oLl*JFJ+~inOonjv9Aqv~cFQ zJZm9_VO>*+nY6*o*Ax3riB<7e^pW-FvlZ()IpX3$Fx#GWbKk&sT(PKY$I(}p(f3(D+^f7)k^2DOGld3%?VBf{ zbJ<==zwZGTStP%B&^53E!hlX}wnrlIsh>Tx%R?y?-CT2V!nm$5?94t-|NyL;-o z1KsHmy){gxGiDk%$l@>K)4fFtoHXCn=B0kGup;)Lxvb$k7^;a$5r{*vd*Y>>WJ+JX zq7z2)g0Air_IHjTBw>GCN6Pdm+0O)H(lPyRTH|0nlhhn!m5k$Ol$xlGUCsD0G5$LY z1DaJII#7H^cv(l{K=9kkI-(`FwIvQ8dG*NW#E(=v$aaQvYT!+Uw#S~)8z0`>+b`$T zXhb&=aP#$nt8+@ZI% z@H^}o8c@G>`xCV)w~oeGmaZ2K@k~kJFgS7re+^M3n)jI}<_TI0RTjBQq6T)Waz!dT zi$|ZPjT~2Qm?}z(v8YyciZ(`XN1n-}@`+2>WRWDfUzFR&Y!ID(wMe+*_`F4bF>>J* z>dJd7Y$yKn0D3jYYultJB)p%}dQ*j>j{6wf=bv3<5;n|r*ylN-+ehhuRYB~oxCW$V3Q~L2De;KvS#o0+P*Ug8pyC7uels?UjC_z zO`QL#mTRej9w>i-c4}wB@LSFJ)18Vp(MBmLHh6Al&*Sz-4Ue@NevQA8dE1KmKJn7Q zWQ1Kv_VJ-S*>SoU`!XB0X-}yOw7|DEABI2FCKZ&&pO!wZ2NnMMdwsd$7agIk?QB7M z-KTfNlSesVWyY9x=l2Sx&1u0IDJvt{+kLFMAnJ7U)>Vq%i5D?~J} z3=9mls9LT}EVX_wT9zYpc%`ZNg_sM`x(Wgo9oJRXfDfG$l+nNcrPT*4CAUGNa%ioJWJ%7)aE3y|ETWr_vkX9nmZLED~GU?Ht z2uYdl%{6JBnl3RHaX#fONwdBRET?<$Cu&ZTpHnVY-m<-Fq+3ng4;E%VtySeW^v`_t z+HGy5WKF5Vo(nAeVex`DFPu5)j__4crE*lbBj)VE01eD5F|=TpqT(RDflnihJ(Hpt z`Y^7iuT1x`>hA#cyeU?(o*K*O0J}*IvFPb4c$c*gMk813Ut=nJSMTfYL{vLt^O)E16yU%w! z^*;@KzT1-E8+>vCw~(2)OqA2^_p+SshE$|(M4s!}%WKnPt}$?@^U#se*ft@hCSR!H z)uyDQLD<^5rX=@pi z-F!u|GJ1m5_vE^~M&{e?9aZV6RxKjb-(q-E}QA?;Ms zq|LrPu5SQ3krJ3mSaE3I@Yj2DXb&%Jqt$m$lQRKtbMQm==b=-=6yTl)2dv)45Kv=L zeT^azSoIO%Qcsbny*)7xtXig%-klZMyYNtG@JEV!jj!5nJH;GWrY=~sw14d9IKp{v zJ6FT_<&Rm+w|hOq83>joZvB<-UygU<%8C8%Ywh~3R(Y3J6AX33_%WbVj>>48mP7km z5-xx4jIfXzVA$F2FOk&XsZ2{Eoq{}YAO=6UnkIPWurbKt)B|F79-MkNXX7QPTp;cH zdpK&Yc%Z;~HRd1Eca%Simqw`KF{^d*Fc<8+7LoH7>oCw+ZIq+76I>9n0; zLxE3=*Y~~J*J3=PPO|kqc7(fyG~R8gEx`&-PFHm_TI`gasr@`^KsOwvj5wI=hHj5~w`Ge`v+kRZ%zjQn@OXu0~&-8g5E`D)u>(=djc0I9%jW za=ejzWNpHjW9zG-FWlWp?gHTbYdY(78yhpu<>Z8Xhv@E6*t-3DA*VZ`inWXB=ZxOL zFwLOh)rvV?3}7vA*^Kh)<2E7Z!}P|scaQcLsn;d{5LNc8qa@Et!8jyynj;TJ7>>*| z?+7>T2^hy*DZNg21w39ZbYx~7=Z-?Ey+Ai&^zP+C}>^CssG{>s7&86^ex5X{s5XJI+ zal*)~s41Y<>7+yd_DkUMQ-~dZYGMvLhYZ%-O8!GS0mZWXd5L_Tl@BPF6uH;8%4OI z+MZw58B3f7>_UkS5LN%RG|_aM7WVmS&dWx~0|Ye{vW@0J7WB#L!y4;i&lT1UL|(k- zIOLh~1#56H==Hq47dFu#DAx6=G1v}7#BqPM0c>*p9XHh>uTikoJ<_yC@yIg;#UBIu zP7?>tyx*;@INPOj+q|PVov(g~bmVA?;rA1|$bn5!y(p2z*ua1wdLOb`vD$CkIwQO>7 z6CIy9>cL`9AF3M_Z%Is}1+6Ceat*-^q9-oD@i*D|F?vB7yPokI>YdwQjw{|pAy#se z)yZ&Wy=hJ}gNBSg@%#qormC__{Rm?nYIcY)?O<5ykI1ONMVwQ+-74;a3%~ag+*7=r z{x|6>%yguFqH98x+8(r4)cMS?2A*b~kx_|BnQHZCr~3jJgCQ9Kw6Pr5J4cIROzktL zp~-3iW_t!qq^n;bN0nl{g*4yTYt;5!w6Wpq8KZlw#s=L^Gw+oXM*?BDc*cnqhtxx9 zGtxpb=FwLp%rqYTvFQeu?b%VsDwh+#AKdU!`em%I_eqB^_#+xd$nx07mpRgcr+awc zpF9+O@;H9enmL?8J97A+vbat9E9?)a>;)?@JF;|A>hdgGUiH-eI4pg*!>!k8(scWZ z2{c+`5PUxUQm1~csG;Z1D{tdvXBpo^sq#!S02hbbfhx2vnQI&4G<9odT4l$5l;!jD z$5XMA4^#;1zf;Xv+olMi(+=rM$1H?fV!nTy*q;vhy}1efzWt!Fqif61qT*>zH~x$s|l@-E&0Ec`E@*I3-~qu0bpKFs<^F4Qg5I_-ath9Tp$e zcc8^tG;UP=OZ^9hgVoWGzo*3N1A75?g4%l^C8v)ClWKcRYLDHK2CRIKeOIDId0$KP z(6UfWKq<>g&3X?0Sj%fuQ2eIEZhUc$<2j8-P?&ECt zf{^?E{&R*I^0f97Ztq%yFq-!MPa;lgIA0k0Er`Fu;c-^%fAfb>?WO!doj*nj5`0e> zTY(oHDQK~~*L__&GbLinA+?L_^TjEII%?}MS?aRB7OI|_DN~YmLFGW1ZQ6o3b&c|d z8TTZ5sqVS9lFwqJNfT?2U4cn~$<*+tj6Ru^BN7`RlO8Z1n(^E{s=l|wtVp5hBkx$lH))<;bW_G6D$bf3A@^u#Q0tK zf*q5iO`+&ZTnwPU77~R;YBXmJ-T(Hs#qh={Fg(CbKM)p6oQ;hBFrq7>XQnM$x%tAU zF`8*tuazjF92WL`U~kvrD-}_jYPmNGLvI2;ef#fol3b<14}P_b@OL4i(lP6)K*yHS zol@dY+8?S})1ZsyUSFUPq=j3r{u9<7rSaJ?eF>e7vE=XPBb)v9*?A1_GS+z(cKGs* z=+l^+@G~Ry34ao8PXPh9J0rl2lpQ=6Y7UDdYXk^A|HxJpcJ$5uffoTFuJarv_xkBSq{2YX|e3t+>?@ zHli(`7caed8vG&odhZ{06-By0&1@YrROJ8(vDLNlBK2|CFiSDFu%JmqKcl2ovLK+W zFJ!zZM%gV9JvOB)de5JG>$y&$O&bgZ$8Rp48--@-m+Ep|qsjJ;TU8o`6wP%Qp!p*M zlSjbzCb>6q{%X#L+~_%FW9ukcp&%W}n42Oy>#&2_gOAjLF-dN{4-EiG54 z8L5rHj?kr^I%|})W^aRE47}9Zv#3|tEEOVH*lKP_4k7LG4&Qyf^6fkJ$xSccb=V2p zm!#dOdR^eZFDN5}CuIGBgQZ7bi9h{AIjC)93i5q!k=%}@NR&lK)zn$vVK_Rzxvov# zEIYSw$=2S%XMD#2i>;XsY|=ZFc~0WYelgOyVpL=oZ+g|oDKO&{g&KNk&Jw0exRBBA|ywl#b0cHKu+*d}6{@#Nx% zf}kDYou--@6$gFTNKH>TAKrEQ1OEc?7?Y7Z4tdSkL#Y{yfIiN4Rf8b4DRZ%XXx^-x zM&awWC6LU+J;S^SY_*3{TsEN(mTTVDD3Nq-)Jk5!CrU zpZp|R01)4CctVD-lQ>}y+hX5V5Xk z7^latEgtgE5`0v&-?-LQxT69Y@^=r-bQ^R?*J-!%^PE=NB5_w})4GU9Wo+~SMjW9; zV7TM}Gooa>R|RM^%!QNpQUn7AbRgWeMkTQxSW|UUv6P~4G(55O_*9uwYW;hgjB|ZQ z_qH}y7fRp=pmDu9Qt0ZQU0ahA*w&S@J^14xM1$`ldnnDfuMxB`wv6-~_*$fc>%87g zlhO>VH0pN}xMGp0JBK+maYmC|5H2ewg`X}vJACxufaokbVMk#NkhMkw!p5c3= zULsR2igO_t&WpNx>#v(hT%WipnM0fnPJK9eHGM2-0#!Savek}Tq+0~DSqrbf=IK1%`G>JY1>@64; zK-HX!#p6RMo_|rYtscE8?|Ba$-A8G$9M>le&h<@rMNH>~1fj18Nmh7NKou|S1 zD+S~BQ>Dt4iGISWgg_PPx2`&sJz|Rj;Q|pJe4}{H<&igPmGt6<&O!E-g8=Lb$ z^KA4EY9=GO%8$K`wUzZ1z8Ph0&$9@pX{2tuEPH6^8&N}&x5L!PWP_nfN}%yOQl59T zqBftl@PsDJt_OHW?!$sk?=E{D7&-Pe*vw6iYF;!qbj0eoOB^;~^FexPWoM zx6dkIcBc&Tq|?SMs{Y=z##eQ&7f(HIJ?nt{&XMd_gp+sdxGEaJAhkj*QR1|ixdJN8 zUro-;uH#1!hC>>FT@)HL=&BxAOZAz+*zOy(%xE+xa-b1@$NZk}N z7q^efH}54H@YPHQd+dmcBFBL!{p=}wdt{xp`S(9kEI@ND>#6H~kLv>)4R@b9E&7=6 z_N|8}_In*eO6SpPp=0x#3T=B7a+>-G15FjEw@EQF<9DJo9MLlM-b#b2A2dDH@Nsfn zjD5`PJ6;OIM9SsBapC&Y$*#i_hZrgaX0KIXkSEz211qRT=QkwDi)9xXbhJhiEw^X9 zeWE;#QDlbQZ&0r?lc%uztL?Pzkw^Kp6Zwj6sazs+RJOsjqskB4M)&JG5HgRnB;`nq zeKhQ-tiGPkeO)s~(w2>dW}GH7Im+jwO?@(^-WD{}8Fnn()j9amV2i`K2f;gU!4C;4 z4;=JPW#pWbmeh3&!K-8E#?!#@qJQgWb5v+cPD7p ziTEGubc@{La97Y;Bcgm;{g#uZCr-?Eux#!Fbs2mPwi+XrJ071%Q-o3UtMvVdT&!J2 z!|hR_$L_h_v$NCPS67iE$b+9Cg&Ds~pM2AEYM+ZL-=lCUF9{XojPWLN-$#E-C?|5O z93iDl`nEqXsw$pQYKTmL1{lLKkJMSqeRPs#2%MQ7&y6e$oj+@2xb^XCNQ*a;Kmwpf zjyYQ@tSU{t7X%2M+6>*q>@KHH`v~)+-!|HPx|M%lU|QE!NW||=M87ZQ2#j5veenpA zC#qL!+=B`)H~XV`R#uKQ7ysJT`0|Gk8wczM`&-)Ce%XpSVWfU>4|V>~{LSB`>Rd!H zQe-Y~H9;CW0gl|mjGIL6ChyOld`jd&8Ug^<4%-@?d|{8_D_B2qjzECylriqnegBiq z);PJdbn>v}^K*W;Y}uH`v?GgfuP^v4LH|jlAO%xteyJ_ho`*TUFS{@!Qs*S3&iI|c zgph7kJ}T;qFVbz7Lmemc0340UbfRHu@RW$9wRcp+2l-h zn|xMRjN;sHrrGiOW5?@PY}#Yew-Ta-(s$drwJM!B__<=&ld=u&!faFyt`76weecP* z4XzUU)N4Tnxs|~O`-~}7$@$X?s%q`~Eu+cnLM}<<`G2{4_d8o}Um@77rAzVr45(B9 zOKjwlZO46BZh@1DdZAUv{n3|qCK5J2Y>aT^3=KQ__I;T|G|RH+$f6>vmAJ)A$Thd` z2c|a|ewAu9R+v1@+DSts?alHTHKj~EaYhp4EQA&kb+xqHBHPa2Z8l5}8b9ev<{Epn zcnYbAr{Kya1zevPQYNAj8LAW}#z$dXszP|)AEQq-jGpj(KqoHp&^we>HI4IczNq!! z{Lrv{$MMRSLhI>pS^^bT2HnJv6Abd&WvY;bQAEed&r!IwzN<^q z`=d9z(~fl#A+&)-9pnyX%>8lb6P~IYaE;Iwur|Us}Ppc)#>T9&!k(t%bdQP!V%1-#=edyMg zSCIyDO?nRYFN>P);iNV7zT3?V&b@4NhCab$&sQ{dn45l8C`Oe>qnF4XZTb}Q}8eRuGDA~Z~AqSc(4yf;NQhV-eSC>k)gS_3e z1YKXl=9UYY#cdm_F?Sbt7s5U~CJF2mB1zujFL-E2wm>euqs#pmCLl<(4@1Vgcf97}|!Dv)gs#6!a>Alv{y&NX*vrrqs-Z zQLjb$J2xonw=y)S+XuBNkB0?@2x%_-r5X9zg;OP6J@->H&zK{X*-|1@9(py~dL8EjZ%wu9{axG|8rG(N%aKv_ys za$<3t_kEpBA&Qup>9{#bc4W~Np6VP=lc^`-!>)h7sQplsUqh&LO0EM}O5|RWQ?^Dt zjJA5}+yFDBeNT72wOC#d8yD;7h?P0~eK=CSxILcF-v0Le+B=p7H=QK!Tzgh2Y1MfO z@)m~5C5&OQ$g9~j*<{y{AB~l;j?%BPuk)Lo&)tleN7v6ba*`$UU_r94|i z3E#3QksnEjok%-o!3;pja@#~bh}%R{PV&svk0eWl5U)_xvPGXQPy|FQb>;M?C3^Dz zFdj6S^y{1GU|T}gN!L67WDACDWyn(XD~KD4)YCgUTr;a83AxdlQ4+VvQ`=5xI`k-1 zZ}vOyopHLX@5G6j5tawa8utW}L#!kQdnqvsN<@c`Z^my|=sw|kG}KWj>kXP}az@EAy~%%+NNvu(`WO#w!_Brpnr&-HY1pnn`X% zr#j!JV*OO$efxVnZSA6Bk3AxLYR`OE$zF(r5G}#YEwtf)gu8=O0QoEJDU5uhNSHye; zweGfEtRQY=TtTGu49^X_Qe~XVEwUmyPE3pkQL7K7nYJc(b-vs!#RipthT=KZcw9TH zazKJ$j^m^0R0I@%>4l`XE1#?EEQeC+%*l{9=I zIhc3rtp2xL60AxG(-Bi%vOCa};M@pmgj*Qv-?=J**w~QLNxR)u>*1Uv;%XrMJcK-V zPIji;!NK4}n#-{>d|ei$?BkwG3=ZV<;#sdY_#aRU$Tp2W2)dv(dV9pd#@&Siu&BG$ zk)Oq3FUNPiIOB)iJJ6BWs3PjQ4Gvv(4$wY1%Jk$H;C2 z76uQt2uI%HUT1lNecfrP*Bjcs`PMA}%pbJ~@>Dd(B#1^@4twKnvy{RdSeDKha4ciE{)_m%A6YrX+6a?%) z#ZZ>eK*&Z}74^4X4NB|*dJ%4v=?bM1?8fH=g1$$pb%{h)Ucv37=c;w}bWd7w33JPq zd!G^6x_>?W2u^@9I4($$2c;}-6&M9m-gBU3mW$g}n8O3J!_fG%q^FWH=5W>A565jQX=dz2#GBX^cuu_J?}{9LAM;(- z9+wbstz$|v%<|Z+Ghti#%=1Zd8%-Ii%p$dYNX?Iw@hY5ey2|?3M;py=_gw3qF^Vg6 zat(FU_D}bFDXwAisaiv7ug@vf+}_-AmqlgP*OEOY6m&V9dz;qPmb6>=$Ywj^lmpRU zEDwma9&qE7RV`GC;5{p@`b{K5(<>BLGx`0#E2f&5+y0S?KAT7N4MfU&kVI0nol(L= zyhA+Jux;-;8xRS@+Om-`bAArI4Ut2|ShpC$*()v=8s& z;?zByyK;g@Qixat@3NM|^V3@&q)Ge%%hv(;v ze4nNwhhRqqSt9jr746-ybpFQwf!b4jpo1S>rb331&P} z@SQ8JLJ1R)o#FxIAMxUAZ|I_11gA>rOJX-Q1 z7jc%5rAUBRY;jxH`sR^CT|%1e5JD#_R(aZ)@GV_a}L6ajCY)+dG4fCsYWx3j7$cFiAb*@krF;3-Rd1lxf9X z;)x{8|7q{Nqng^*e&Hx0A}WG(l&F9x2uK$}Vxx-@P^yrPbR!_Wg+x?9dQ*@ZX#!#h z(tD%}2neC~1f-XQ5&|Ugu6^z}<2!r5=e>8_`T3K_=xt?b}&##QJ zQ@qKEt>IH6JB_0&6%28_bMEKriV!Fc?&Iu~x%nYz9oa*gU{jDh?NPHjj{VR`04v|3%3SQwsk38 z0RE^T_qp{8q~+R`HUa$_TRWqq0?rZ+5jY))sX z3UaaA) z!B9SICoTka_$LSs3kCBq*lC8;eL}zkIE)qHluJE0I0yGV{b+ITUSdI{W;5*|58k*6 z4iXVL_=`UJ-F=p=cy*KlnoaFA;+LXgQW@@Lt@4b&bXfVM5cv^|*HiM=89gTjl~DPV z>Ty$>meB zqK#hOF=et8l<-oI^NMu;@!pZ^Qb5h_SQ;jpkAz;`*}p^`A|@n~%x{y=bWjt`tI~U* zr8Rw?x-#z9KN&#fUG>}@xh}VJ$tpK(eAN0{c$)ak=`U|=>{NU>O)*n!q(KDjhqY6t=P3U;DwJ#12? z60XPIbj`E7An#sY-@DbPM8^-$Uh@xsJg4%2)9*ks!?sori27k<>E}oRU~bi9ElmoL zhMGgji4h3%99_byyJdDot@!JyL9L9H0x*?ocO4DFoie8laZNRkjad_c3Z6aB)_U*gbTzjqReXNI9$B*Q3vQ z?an>mIcuCk)2A0h?65D@_`a)Jk$GEWOiienz1Xc1E?y;ranm+VJ<;#MqnB*WeX?Q& zOw)L-zAU6zG%3SQ*RqO*vKK{TNr;^U65ntyrPBR(xAtHqU1^vj44(=ef6m zXI~t-iqYA%rwCDR&agiRe;#TAzd)a~+uWXFqr&y@Wrrt=54bZ|U;cOoWOQWr{sZQ- zHlVB6{JdW+7ny#z@E`$TSBde9dRc7}lf}@Sn$!#3tGS=c@Sbd+nU+9;`tpN=eK&cN zkNjd2d&BY`i^7&zD8eFxs{K^(k?;K{#xcV;f84yho9=eUsx})Xc~3c(k_nLEj?((5 z{y>`lvKGkmUeRo*Ntr%aLlWv0Pyv+?8wRwkFk+=coMU){{oBJ*rs3u;yIvgNS zZvoVXt|9bDkd+xyNNavJHL2GB6HO1FOMcigThTXl{QQ_nzuCn#PK^tKe3G+3_vtam zTgf=L8xT|ERpcOWF+D2;l+y>A16g39czmpkaA9n3u^owk{#`|@FE(*8t2B2j%gWa zov#OQcQ2w4@PR@-+=@3(AhA;Q`b?Mjv`=o!HR)i_NH0M>fyaY8JUsSyOR8b368+Kw zNs2k8>bWZDj>!EUpr?2IsV8_8OtGg1lA4;7I2_H8S$SoveZ#uP$`in(@TL1En4Khn zt|P`tkMC5DwhOO(aZ?8&qyDOh^{W>B&%u8YtDoOO0sa;i@PGC*cO&g8)o~j23dsXw zMyM27$ms%gmfnMMm7D8pwzXA=uir-Ee6!u;o|}U}pfdyiYf-Vk8A{N9^7Da4A29+t zka2nfK2*6eC>FK9cO88=C81K7vyV1MPS}Pw(cj86nYk+enC7 zvH5=s2l+p{@BgUz^G7%i>JMnpWjwD$;~JxUq$cg31H``3&EOzclgg@jgO!`gH=_AD5A8>2gSHRX4^z{~aDqz%?5OSxHbPAVuPTxGrNIU_P)I1LFmevF zO^TIu{nD-XtM!-Paqd|h3quXTPJjQG8u%eBdE(L%*{n7Uy4t(qHa+@FW1 zhkmTDtnWMDBuJ0eP(I;-o&olCGBRiyeUO@a3$Lm+x;lUf!X#TPO1R2%=!zxQWyd6* zOG?3qf#|83mD0geTnv7MEh!bKmS_^sD76TPwo7m`-gymN|(D?oc@E8=rawkB8JX}^&Om_Pj{;kR%Z@XWx62*$m=4~ z_Aenva0h@)8Vg#O6rtJ@1Axw#d0p?PGAG?T_-z&cWz3a{=BV%EmnG}&8pym(Q186N z#}YO$h;woo-fTi~wl$znA`D4s(cyRNH7TllEpNOt4W0>Kke&aV+JLuC+@LuZ?LyTN1=Fr_3U7_r81Lv zoA$;B>rawlK{V5V0>`k=?+Obq3s)%isc=gjQy&vFVM@RGo_#>zBK81zXw@8OG0Bhy zb|UJ95w}T`LD`Gd5!KfxCMdb^LsyngPIo#Ax1SHHym8Yfy8HcX7-(lnqLm?n?1g|B zCwzqPL|6+}U;)Wb+TP1DTQbX`*X4X7s-H-IP+VQGX29npCY=6ukfuUSBFz)mgPdrd zq+A%jRyWgPz8%-M_PC}z273&+@!w;7&I+k~XK_(S%*;pweX@I0PqGmE%SknA5+Q)M z#rtwNPjoN5tIQib)@m>{Rv1&>x;2^fz&!kybgOrr zY3Y_dDM;6fRN_Y;@7BrVWbaoP1d3o`)MM}+>(nw)pXGE-7cN<4(fA;VRU-nc64HP@*_#VG>CVhYd4QQ4{B*|ZEAq^TL<?cGrT)Q_ik8ghtd6o@5saiJn-`!}w-- zmR>MT{t$$rnyZ&qCJ3gS(HS*yaV7-iM72)ZcxhCPFHHZFD)GKWE&RBeho3))MGzkhK-vFEF!z8GNlsS4h z!gD5r)YO3DsRbAKMCNSp-Yp&cWLNFzUeRe1_xRiHjKiV1`aA#)wu>juucG!ZAr1^V z0k!ltA~aa_T>eC!gOfs}QD29*(L$qgw$Z5n>0kDSveDt_qi?sgdO|&FsR@(tI$^pj zcx&I^=M~WO^nUCx6Z$HO{Nv$~$F5x=SB5X|xZ z$<@ff@f%$Mg5=wj3VMRt5o%%27c?J3#K*p|dh$J!`S6obOitRjunGRh$#)P!ZG6}B zm=?^$GhxG>j}^4$A~DGj`MZ34-)x*u2wokFa!<8RrhTH9L8jm1m~81WYVzZZ4jfOd zavtp#DLP2O;?}4n?}OsH`qK2l!&Vmqg>E6r`IQZ_>Oe@Wz9sLz6g3M*#;x>_mRr*$ zs^Alb#-!F*f8S@*hZBgzj!U93L7;=(&8Z;eY2)hqfI0lX&5PxaXTXEJ2(%@<0Gip5 znhgb5g{6p8(-3=(BKmEDVi76ei{hqjHC1W%G6GZNAIet zjCAV}Rc%5KujA-lnbEN)ipic~Ff$9iLpq<6oaVsGuC@7NaaXZ&bYMefhYJLdmXK)- zx*Xh$4clW53H1b@fTx2?@n`!9x_M5_lW!tb$+xdK44SHDL$63p7nGi4?U{m=RIIR) znVP_*I>@1)ptAMmB%}o5HommoBY-svZ`CJ{;p`^7d_<4x7JHL4Kgy#$d8{6!_alD8#`*#s{=>Ut#jy;ms@(8)DIr0{3;dE8s+5S@RqKeYsNfq62WjmudlOK^k zqL!4;dveO#^820@^4?eU5pG14XwrCUh%R4Hf#oL`kjKasO=&8v*AgOs2|pfLUUK67 zAjBc+(1G*t*U;{hpk|v5<^bSInH@^<>JW-Zri&Q@WB}uiotC zwvsG4y%Ou@RZR%?QE;co(u208N7~wua`gB00Lp)!X#Xqv(JtJWe7q&w=wyqnO}4p- z$w;$>(`wdblR}Eru-)v@eWn?3Bkm~8jjBs@c`2l<86eo=XE7P?C#(YdS{s@XlQDmc zJJc}h#6_kJ;bw0?-!q-i~>TlxH{HhFEl7hi1pgADdIM zmNG%Vv&ZCiY&VJ>c>-J@Y19>ot2if`)^cl5+Bf4-Q9*`2yPSdLn z>N%DRKu4KP`%_OIDznKZ;j{SVjc!=y{b4>a5s;oO!VoA_JfpFYcUBGol~gD@TT1kC zAB`#9@*=#m)6u$t)Io!sW?tW?tQYq0JT_%*d)HDDIU*!FGes4%Up)Z$Pj!x>zeta+ z&s-r(mBBwcCbtFAw6h%U1H+@Y7B^|bD|>tXTcUx==2=nRLqQEH&sk;xY^)oUX904s z{xm}U`%jRqzjPpl!Ao8bvj0xIQL%UV+S_>TJaup^Me>S#SV?P(NJLlA(w9{%zGoE1 zFbvw4K@F$OMANz9rVu`0jl7*I?OAmtNJ4JXKLdA(wN{I9X263EyIs*+$`&974O?rS zQ#K=ROsa(Vx7!5S1RZ#LKBUY3fgKar8=*swIZqAUcc#hGi^pJaO{!}a-0w!8dXcLy zz4-H`m~r2ak2h*-S2w1-{0c8Jb*VD#KVkINOHtQZ8lC(p&SZ4R7Qd%N_yw}w#9+dx z-%ZvS(GjgRGnBZ+^E}o{7k;K>8W87S*fYKYGf+(yIWSe`-HM77IF1fq^FW0sQ)075 zmQUuarl%GbLA@2~N;`T*hBUMWO>eDV;=Fj)2D~s=FHety*qGpKqd5TCibH1m@DL(8 z%9C9{R-ve3pA{Fz$LKf`2bC9#N6WFM(i@^~KsXqp%P7uz5mbXMQf$N#c5s?XuqXL9 z2?_Pps$^R}Nw!O}&(!=lmQoY`6|;Tvae{d;z3*#ywS0usjkCt}j8+&c1P*v{R31o|n-nEKF1W(pJp) z20jFNf(xnG8?4xWK!d?T`<7zVnahI8LmaalDdIs95wXo1of4guhh?>HJOo{wjbZOX zQH66?Uhd1&?0_+b``8nEfPS{aqykx~^$50Xo##n)OR7?$@lN89p>NoxPO!SknR@u2`oXMYPo^?a*$rE%8_fKje=+SRJ8G&9ES?)iF`Kebm5ebQ#2iWa{QaG zSUe1iWCqS+%K#v^->NH`*hkobrYA|M(Fu0H8W+;EBf$J2*FTGGQNaAQe9CT){xS85 zK3Mkvtuj!66pGm?YmO|FOp*h6R8S87NV z4U|OQ?+Be5l5voNt_u9kXa5PcRWs91>f`TpQDyIpn1oMeSX4aILq?3E8l+Hg>`59g zfJfA#mhJ0I!6B^Y@Q}}gtvyYYglhu>FEoGLcJ%&uxx0(={lhnHTrRQ)bKb~cb8Ud@ zcch7v?P;e1W5Qd zAONY=5j@gKX{4qRrb1=_oAjuyo>yv8R8Qh@i3h!^w?9zhn>r{7<;8i`WwzxT=_byS zJHoBsI@%7s@S_LpKSFk)gw*&M<3m#wxi1*pix4nP;giqfo*VU~0ictNalk!J&=v^b zvn&|XNj!MB>xjdwmwxd1x*7riJb4Mkv&-KVFklUG+p586TaZV1ig)aJ;2C)si*jNr z;FEGmcI4uJ=%p=w>r9}?$u{9(0Nr_zUW0&=?=821OT63sT@Ei8f4_M;`7nl%V)2;G z_pwE!LRlNy=~|N7rf{M~lQ1au1~_f%H1aH?d8*W##<5NbB=fFJOovOewPY;%(UNf? zSa}nV8alYy)s*8>RmsR}mxE5tU+)8kQ1|MLsp&G6tIDo`vpBUXR6*ehSPwp-u z7dqWqZ%sd2878QVbyi@ra%i2Lv(qf*im( z81>87LDVaHYtQA6`8f9-hidagq~G0<)mH7bd>eE~R6zb%mB^YZ2w_2j5<>unN=@_B zafm&NdQo!)pFz7abb0-gJnkqJuZdqNlRoxnsn^QMY;x~v!u-9eq<+3W0+X|tbpOzn zl6)kWwD={rk6QZu(;i?mT3|nJIvrBx(w2s5q(I7nhN>3Ab9#z(*~{{5^sU}n1*c4u z1I)3{cQ7)*O-kx?%jx&ZVWKx?k0sMzzGt5wV;pG%dI7BTES#+*6qsRjf*!ba>SX<8 zpK!~%q3tuy9c;U?R{hSB=RQMAg?I1Y1V(}LdDitKt$<)!g8|MS3qlyuOL32L&t=z6~Dka}K8>jF^M#l00_Py}0j~iqk?jXXOh|#4S zqRs<}FuqYpe!zZk9U=442RZbpv&+b>z6(IR@`R|9Qo9Y z(#kFw*P5=JVlb%2a^a)%kAy~%0I!*cc%w$ssgAg-t6H{lPFfS%DxmvvH^A?J@N6p0 zOtmHeeYC^K4iu>VwBtGN!$Ky zjibfiSdz~LohhG9Jsq|Sco;$nm4%R}xY7OTp-AMJ#mU3p=juu2S?<&C=F11<$IJ`p z*EFhZH>}MKDQHPiPpvP-zo;stW~8#;z*t^U@wegLlBE4B8l+kXinV>eNS|4IJhi7L?oM!Ky&17tpKxq*HD6 zVuQG8G)i!cfDS^~=67LWRCA;6PTQ+$`1{o=g<|-K_?x1|9aD0*6Z9soTmiBC7-~Tu zW($w^USX?E@FQ{Ucm#FDCD2}Zu5S8~1seckgYTl{lrUzvk4SB_xwteB1$$R^1LEuu8 z%;v*kHSMl|9U^Kt9U2Au996O}%owVdtD{CjUT408QJ;^FIaWx>>CKOI!kMezy;qDn z*{~D+RVksprx|h*$RZPP<#0@PU>0f^@% z^Ae=0OxEz?`GwpByM6BJn{!Xc$COqkDqLG#;|J@`{{=&I^kU|}#XIDW=Q#9>3DvN1 z&l2lSJT9kKR)GV$&C%iSGVUb9_7=}S@4{Cp;9vsC0aUqC2+q#bW0h;s<egL zp?753j+RfXUl@YO9pqwGZV=;}pMg>R&rH#ev;&2>Q-B2H_9j(`yN&4hu|LBHCy!H% zF6~0x?6~r9Qt*@+-n>A2Y)ubbTxvXHOuHVn&Ughp@ESsadWs)}u;LBK4~sF5K>-1g zA=qAY5+GoRYe6N=qneGsqJW6P&;{gY=x;M|0=VD&aW6mtvj*f8Gx#B-$EaPQ=xwmv zPY@afaN4f?1ii+_00;UBq5=Ngq5Bf*NCi~W@EV|EsR5<&p&6Q4452ol4s%NuHQfxD zQeOuzsoDPosr>|TGpqoNAM6}(C_vxwGH&-2#VCx1qssgxeL{-RZsTiNiRk0?5!IjC zotXQ*ArAWTAx|Xo!(_SN1&y;d2n(N%HmBzUy2?}R$S%g&5|UG4%-$r%^+;6$goNpWo&6>G$miF7&!&R`k; z-;W&X{~Nhk0G9QK8M<0D0sLj^)lblYtuB}*RXy`|#^~~B*r#7Le&y=zOYE+vy@S`FWvHGYUsgT6M!JYzq^(elhrRUxtwPbnif z?B(t%`i)4R`C%I5Qa})&G#~9kI)XI-5oiMV(I25L`_KLks6U=50}_ae4G&PWWmFX7 z3s7Ooku#o?M5dws<7bhL=nbiy1*8~JnifSC!ew5IW}^zXswt+!U058w&9W1ggdUcK z=3LC4mSbiCr7M3*gJ}%VAbFkH@bVHMKOcYX?o$l zbWV_tZ;g?Lpj`Q7(3cg=vRz@C=}io<+l4dy5#6fN>>A}l+`)_=!J5YmbIzy#vQ_Nh*d4~XpPpBD!V0>mZ?1&t}xi6 z(#^0Y@=jmf#Fjb33!j@FHO0B>=8JU37oB!)<6n;0!%HknpIS=hj&6wb!hhL&DxHny z);-4V`{a1P(T2H-W?jnVxQiY6VrLIthtH0#Ha@m^FlN-hQF8id#>Ez$9pjB%@9VnL zF0=$33*esT0>qZScgxFQ>ZK4`DiE@Y)X|I}Nkke+iJ=Pv_Qfkoxqxc)UC-@k8dnqJ z9uS>|&jYdJRzmGlOIE!WEf*+zh-{{u1X*3i zK-fFtlBdyv>FrBr-DI!B)#}5k%I_x-Mx;Uv>2ZH_d0k6=LGCGTc8A=cynf7 z`VOFcB)z#K+TcqHa45$I$)o6O>jjfQe*j8eI?bG}(e2H|;|CDACv&5G;v0n|NKT_BJ{5Y^c(GXTOp7~YIVsl|zGD$P+}%SHLT5-l zFA>`80C(MP=UQ&i8u$Uubp5cM|JF;%+;@*%VwjHUeYW|Qc{l%1#IvF5wuYR+(lbUo z_muh?ck=Vt^e(NecKBMa^a&azK8-x|Dv3*$co#L$=F1P9^>f-q(cY zx^4Z76Ou4b9=gGtS&m(N0Cpn??kK>6!Cr6nyK}*-v?5{Y{t-c|SI)8BS_DnCvhBl| z>37afwVEF%Mi(o>m4Z(h^v&U&%tlO&7<`s4B{2fZ5ATH0tX-|w{R8c`dQH4GL3k^Ax;Gzrr(bYLu zyKh2W?8OWA7v2yS=4Z(e>hIW>ZWR(Ctss?2H9noU%K~H&O4hR1%fhNmZHo`scpOVd zTaq%PXxz*lzEdSu~Fl@SLe05oBj}125jGT*mqCW0;v{k5Vv=!fP4!F2lgFr zz#C#dJq#QMwPk1=)CSp*M0aj#4pQ}gRh6@h1D3Dp9$uZxcsiHzpTW@nojyPC$J6Ql zyMYj;3n}AW2>@_Nj-_;?9sLx|0grwM>*_EW+1ktAe3P=Bsfs!=Un0`0u+b<2-V3~S zT^rce0@cWN?k!c7mf@pU#XaEn`gBVGIr~}{LaR$ym&D^|{ks`r9=n;Y03+w=O#ivE0jU|i2ONF{a)Iut@pBP0TKrB)|K5-? z49G-Di#6~!?uQ-Ps5|SYp6KSWuISv}^JTPZnv6{4N z&P|Mvdh1#yeK0P%e)IHP&LZ(hmFX2ZNge@6Ngms8v&%|{WZ zW#h8F54~(bwg3_?znRXzpIi4Ud&G4*P{3C9E3|R#oby^D1N!Tg`&SHZr>H34F;a73 z6Bl?T1hhI{*z$2QvmE#`eP#BPFuZ@d0I#q zI^#cwGsgXPn*DxhUDAzkOIVu+78!0sN{F9)`eBwfb{~0NabI&bmnN2eRqdRR6l1uK zF~Hu;8kKHztfQUsI)mY_6Vc7|4VW!ohNiuM-pe1aUSjQo%$HZ=nf+Nm773RdJ( zZF>)Rj7FU+0$haBa4Q98n#0ac9zk6`ynFkg8w(5h(;0j7L4NIJwVCa73ru?gn;D6=!ME&tve1G1pzY$aZ?UVTr*jo7WZv8LrR{wu9*6x4h zlj|RSF4UjmNCq|LkM^x!?L{kMKY8_`lt6#h)cf zjHB#u!G12S($PY^R5(WKaq)o5tw-Eft&ctF`})zJ=Ycr;V|Unhu~p4|0mPvJoIS=( znvLq#bO-m{V{!em^XfU1Y>o1W&a#PTeG)<9W9`f7?**t*7s+g_Z>=4s3tB1+KaN~j zN!djg`vgp<+cx_eNhmbllZg~8P?^+|vP*Q5ELftOF&-~u8&=)+>l>OxM+R{j<$w2F zUoj-!w086OfdcFl(O=o=Q%ZtL{`Ly8apuK@dj>f1x-!{3tP#1QVV%$Cb{jA9Q1J^3 zyQOYEvDi;m3HN!3T<%)bg-GLDIf~gSMw{jsr3!OC4`WOd$*}ENr-Q1xvxkqu zaajwaQR1o%hxReo+6<=i1%Ew=PiPkG=$% zQ1Hrs0wMnp+yC&vUrqed@nAx?8@SEL9>0g#4?X93&q%^AwGfAb3Y|4sFu>2LSD zJ$)`CK*x>xgUr%ML6^b;6~Zl!t~E}NJ2*azXk9Y5Z;;aDX#RH8CU~Oz#%XkK&zY`$ zH%6}-SK@RbW_k>KVDyPDCBWJoK3i>g09}yyTytmh}_31_$;) zv?f|ljYB|vAabrmp|+^|{FrRv8_h(KR@h{Vc>cJSXb{p;-*jI2jH-)RDT)n;9Utm6 zL~;}NMxf;s8R)14Oc&#lgWoNHPdFnnBY@%0z)-X&V6eBKCQ-o~?VZ_5R;;-2*5UH% ziq(|oyDK|Tu8f(Dx0T8rsr|Y$xZ~7#LvliNo=;qpE-5v6tt`Mk-!ZxUbN@NHC^pkV zBMLtyPkrEDft#D-^|jfRE$2x} z_0%0AaT}s@jv5NjYam2(Eg_}KQ}kd5V2-k*U8tnY0p`eWceI^XD^(I6n96LG@@xyuYTazHNayo|%B#ry9DKS3SIm!=~*9g>@b-C3J-Y{p)kSREjHaxYj_ znx%>NV)&obzQuSk=m6YTuBFW<(wrkGohMs9ZXjQNz4KS@q}uAZWn|sfO#omr08VB8 zRl4@CFN1#6Ob2vF&*Gz5G|g9=v6!F!tuL`Tx__N|4#4?M0qlq6DFD;Zo9Iaw9NLTp z7z(0*sn{41P4{1f?8&a-viukVWL<{lTiogtT@<{G?cHH$UzVoh05IWKKn00LrKkQ^ ziy{3hobR_-&|5e7uQU5^=dR@M>rRcf1lUercQdh5k5e*N)+sLfdUhs8^L&--)lsge z%X%90QCQN#k6krsp3z2wH>*V^N6sI5C=v-g z3{L+7atkOhq5_~;=3^xLU@1>u+B33=qas#L+KLhO<&(+7yNOMuW zH3sC5^X$R>&)9J=Zx<`A0ahZ{LT)#RcN|T%@ls9R`w7yezs1?_PbiM=Ezbl8!Y}uV zM6;P`nJL;H%20D?H*DB5p0DbckuOjtE~_`-JpK9ga%??)>aLp&kzkdiG{j+HHUU#R z9#;%sjseUpNc57Wkyo6trS@V8!@iF(V#X*Vq64Rx5VwgERoL~yEs2o}m6h%y#WD%t zq@*gb@uB&;faQJLWz=yL;ULwVv`&}`UHR4N@JM;0x4oyQ-O<9ixC;gkLnSJi0^|GY zk7BJ~5IPezCyM7%v_F)3iVQ||IUvws1HPLbkzLw(26`W|3-j;>JMoT7$xcdn#)Sw? zs;492BI3NfQt}dtW1)OBJPV|i?rRg>8FBGYbd0sKvcjzAc5nvSaC)sE(?`=hO`#H@ zH%*rv?3>_JF)B*%SGIH*>4cR%o=psX^KNQPoDpQXBy4tfU&eozZ|&c>9gVo07omIzB!;{;2$GR#haDV81KN z2AaBbcCb5lUkq`-=v6@2ymtQ@u5_k1xx01yLZ$Am^1jN&1Gn=IRZWyKTc;oQOT)HE z2MJvuYn0?7)EM9UJYk_`n3(#i0U?pnzWCKp_j6%d!?n12Pyt{zcHI~ILG224r1sQD zrB?6H{qk4kp`4<93qykxp4g>Tx8j?sMeR@T_I-_sYjjk4E~wnDK)xDv{@Y?VR}NQ> zRHWHjZ}9{@_u^EsUJbxjc+~JriG3*7oa3H>2LWE$K{3u7$99y>-hYcJaK7a3|CxGt zlVU@SJb}qt^n2KvSn#1D4`tKjnQNKTQtLh3{=!~=zoJc8*zt6}f-XVq3;QX=!-1^@ z;p%eyinM3mmbR2#%)$6-d7SuZ7Zt8mP-Iuodh#~p1kHzPNP54J?9#+`+=$UJ)SSRL zS0A9&#FcF>tjS$^{`~Sr!DmOl$TsjrZj?H8n*=A+eF(QA?RA>s1W@6>kVTuTpI5wY zKdse1d%k&%>7wv4AM5yyh@;!$bNtwnH&(}CjjPT(POy6k>$u$R-uA2RW4Cg2@->v) zqvZm4#l!XQ84o34u+9KkM~phw*fotiHR0ok#VCMF6sOcW^yMX2_*^SJtcGWeFIk|X z?MRV5;Vv$!$0cX0pKkD5!)K$EH|E_Bn~V&BQV+5Vr=EEG)p*!SR7^+8e*~tBJj33( zY34x)%@;8Gp*PySG}PCF&C^%s{{HOG$o^k0z4-f}@Sm28-^2}%y9WlQH^zk>B>X)^ zqX%VR>P9>rZ~PJBnWjle=*rv^*8dy=Y zUew&5Aj>@{BccYoFo_GU1v19iA1?bqI;gF=x4abqpwo2Oeu7*83V<6xK*Xs*?EhVO zi2umzfc&kLYWF5!p#nZbvm`s=0O`-gz9)WZ-8wBopa)>zS+8^Yys9N9A)FFhJSeJ2 z&#ExbOL{I(R;I2GulMkv@5}l9%-bjLGS2!BjX+4+Fy;jTXoDn*_~@kXD29ncF`*4~G6|)atz#X>hohKy(If;&rn^=61b{0_aoklPp-5JrdQt0{+xg*1f@C?|H<-`H=A`Da zPs&CHH&4HOl!jaafU>_J*a7c!+!2~ql&GHJs+(isOmN)c$Pf1?>&?%#eb`)v1wGue zXLc2%l$%3O&vZ=SEgeV3IzK{~$gn`jKrN-*kbkpP(KX|YS_iZqnWClH$~>^QoWS> z-dw^*%jft@jM;hv^P9b37cCiYLuzi!c`~4U?oi>%SdEvq=+0W4_I5Ffug{sk6~3|z z9U1$=o9G2&mnsWisCD_cfF6sv=Q zKKanvc%cf#MAas45Dd>H!y7-f2cl)~9S}}faJSU66n~$?*P!H;=pfLP-f26%TK3U3F>S+hxE~h1uTJ!*+cG_9gFGtv(o-rsG1ZVy8h`?X#jHU&Y)D8gH@D*Zr1sn zac1xVr8{4;vpHh4ndBGAUPpDv@o-GM*Ft&yYJp#@dDG=l_5@e$t$W%^He7+cU-gg_}FN_s6$>fpC&Ky*Kn~GQ=7}i6% zr@>(4sYUb=nz3!pLPfNvW4=inB2?wpkm8S#*y+@<+E`ub%Cp0cFPeIIU*|fgZ&b|Z_IM>?GYF;n>i%u5f5xc)_c3Y+Xh0K@rvd%K ziWV0pNA$^BUXMgS=YoUKQyDDIgiT@Vwd&Iamu63@dkrw+3?^(LF6}yjL5c6W%|l6U%+-z z6C1xBwhi~0^fgTBdxViFF#qU}0VDJ1W6v3}{H^KUET9qDKiGz596O1;-e(KEEGmq9)0Wa)?{)ND}6g$vWt9G zS=lPL)6;$gvx4tkiXU)}AKw$|q$HAmM28UY=S%SBhGqB^t(T^7#FC6j^_wf7YRaEQ z=s(Kvy#0J21-^fWrcqR;YkmsO5!R-Q?;RAbvhJPZ<@qGr>@un5rorbLXvwYab~&Ea zi=I3%MaIozt$Pu$q|(HSgs`!#Cp~im@%|&C0o?WNq>5GjfPCr>P+xq7*6Z`Q&P7e= zfenb_oh(G-h`f(C0R!PN@fEKVETq70pPwKBfb7s(7odjDUGNhTxSL$_q(YHw`ZnAk zN%xbB*QeQ{(dHG4F#gal*VXJYt1_BQF7`j>tO1Uo7*f9?kkTsVZ)^+kBYWF>e)AXKP!lX^->sOqi z!CNgaR*=04tJ4Z&a~EQ>bvefzKg-`IxNn|ZTj_T1i0`kG-w!1<8LB`5-D6-hH}Bxn z?6w`fyA-=O^&&`s68LwLtkfRrxjP1$GqA9yGyD~OxGj}xM#O(CyaTXzz64&z6u|GA z1xhP_Le2h8W7^0IQ{d=#B1x?b^GFl!_$2Z&UZ+8yLqk_a6~v5?1A;s!RTxk%sLo|D z34nfnr;Pv%D@8z(A(V*Sql5R3U`L-8ym`wxy}%#l&B4NU@S^(Tm~{FfF?{LcSP yi{jt;f0(Ah)Qdf|ST@N1(J|D*!(D$^9*m@q-aXHQqHvc3175H}c@FtG@;?CQaal_M diff --git a/x-pack/docs/en/ml/images/ml-gs-job1-time.jpg b/x-pack/docs/en/ml/images/ml-gs-job1-time.jpg deleted file mode 100644 index 9cecf7e8b541472ff7adffeff63ce4c780510cf0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 179062 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

    S+<>ivp+-N4W| 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 diff --git a/x-pack/docs/en/ml/images/ml-gs-job1.jpg b/x-pack/docs/en/ml/images/ml-gs-job1.jpg deleted file mode 100644 index 7251bfc3f6bfa180eab937796f8b678aa8879da7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 251279 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%0A?!`t_oW*NT2WsQ5t=LcQa^PeN=b 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

    W=I1PMR1=PKB!a*Mw#`?JugnUGuF)-D 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 diff --git a/x-pack/docs/en/ml/images/ml-gs-job2-explorer-host.jpg b/x-pack/docs/en/ml/images/ml-gs-job2-explorer-host.jpg deleted file mode 100644 index cfe3f4fba6da778bb667ba968cb90b81b3a0eba5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66094 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 z 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

    #t`|-UPidWd0;TM55Y)9S45V4N7dyE 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 z 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 Nm!bQ=|JH9~zXPv9#Pt9G diff --git a/x-pack/docs/en/ml/images/ml-gs-job2-explorer.jpg b/x-pack/docs/en/ml/images/ml-gs-job2-explorer.jpg deleted file mode 100644 index 20809aa3d1b321a157534065f2707f96f68402c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 235927 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

    8O<~NEfU|R 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⋙Es5)`?r&}o#pGjiys%3 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 diff --git a/x-pack/docs/en/ml/images/ml-gs-job2-split.jpg b/x-pack/docs/en/ml/images/ml-gs-job2-split.jpg deleted file mode 100644 index 4e07b865532a6729e7acb3f69d303bd378fefbfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 144276 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 diff --git a/x-pack/docs/en/ml/images/ml-gs-multi-job.jpg b/x-pack/docs/en/ml/images/ml-gs-multi-job.jpg deleted file mode 100644 index 03bb6ae11967a6088d714d438f518d17db3f8623..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86364 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 diff --git a/x-pack/docs/en/ml/images/ml-gs-single-job.jpg b/x-pack/docs/en/ml/images/ml-gs-single-job.jpg deleted file mode 100644 index 5d813444db9b9ed0459a05f6e2800247b313837a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89013 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�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 pLvt>a#TWnR7e~%rda)Sys`t01BkoHly>. - -Additionally, a dictionary used to influence the categorization process contains -only English words. This means categorization might work better in English than -in other languages. The ability to customize the dictionary will be added in a -future release. - -[float] -=== Pop-ups must be enabled in browsers -//See x-pack-elasticsearch/#844 - -The {xpackml} features in {kib} use pop-ups. You must configure your -web browser so that it does not block pop-up windows or create an -exception for your {kib} URL. - -[float] -=== Anomaly Explorer omissions and limitations -//See x-pack-elasticsearch/#844 and x-pack-kibana/#1461 - -In {kib}, Anomaly Explorer charts are not displayed for anomalies -that were due to categorization, `time_of_day` functions, or `time_of_week` -functions. Those particular results do not display well as time series -charts. - -The charts are also not displayed for detectors that use script fields. In that -case, the original source data cannot be easily searched because it has been -somewhat transformed by the script. - -The Anomaly Explorer charts can also look odd in circumstances where there -is very little data to plot. For example, if there is only one data point, it is -represented as a single dot. If there are only two data points, they are joined -by a line. - -[float] -=== Jobs close on the {dfeed} end date -//See x-pack-elasticsearch/#1037 - -If you start a {dfeed} and specify an end date, it will close the job when -the {dfeed} stops. This behavior avoids having numerous open one-time jobs. - -If you do not specify an end date when you start a {dfeed}, the job -remains open when you stop the {dfeed}. This behavior avoids the overhead -of closing and re-opening large jobs when there are pauses in the {dfeed}. - -[float] -=== Jobs created in {kib} must use {dfeeds} - -If you create jobs in {kib}, you must use {dfeeds}. If the data that you want to -analyze is not stored in {es}, you cannot use {dfeeds} and therefore you cannot -create your jobs in {kib}. You can, however, use the {ml} APIs to create jobs -and to send batches of data directly to the jobs. For more information, see -<> and <>. - -[float] -=== Post data API requires JSON format - -The post data API enables you to send data to a job for analysis. The data that -you send to the job must use the JSON format. - -For more information about this API, see -{ref}/ml-post-data.html[Post Data to Jobs]. - - -[float] -=== Misleading high missing field counts -//See x-pack-elasticsearch/#684 - -One of the counts associated with a {ml} job is `missing_field_count`, -which indicates the number of records that are missing a configured field. -//This information is most useful when your job analyzes CSV data. In this case, -//missing fields indicate data is not being analyzed and you might receive poor results. - -Since jobs analyze JSON data, the `missing_field_count` might be misleading. -Missing fields might be expected due to the structure of the data and therefore -do not generate poor results. - -For more information about `missing_field_count`, -see {ref}/ml-jobstats.html#ml-datacounts[Data Counts Objects]. - - -[float] -=== Terms aggregation size affects data analysis -//See x-pack-elasticsearch/#601 - -By default, the `terms` aggregation returns the buckets for the top ten terms. -You can change this default behavior by setting the `size` parameter. - -If you are send pre-aggregated data to a job for analysis, you must ensure -that the `size` is configured correctly. Otherwise, some data might not be -analyzed. - - -[float] -=== Time-based index patterns are not supported -//See x-pack-elasticsearch/#1910 - -It is not possible to create an {xpackml} analysis job that uses time-based -index patterns, for example `[logstash-]YYYY.MM.DD`. -This applies to the single metric or multi metric job creation wizards in {kib}. - - -[float] -=== Fields named "by", "count", or "over" cannot be used to split data -//See x-pack-elasticsearch/#858 - -You cannot use the following field names in the `by_field_name` or -`over_field_name` properties in a job: `by`; `count`; `over`. This limitation -also applies to those properties when you create advanced jobs in {kib}. - - -[float] -=== Jobs created in {kib} use model plot config and pre-aggregated data -//See x-pack-elasticsearch/#844 - -If you create single or multi-metric jobs in {kib}, it might enable some -options under the covers that you'd want to reconsider for large or -long-running jobs. - -For example, when you create a single metric job in {kib}, it generally -enables the `model_plot_config` advanced configuration option. That configuration -option causes model information to be stored along with the results and provides -a more detailed view into anomaly detection. It is specifically used by the -**Single Metric Viewer** in {kib}. When this option is enabled, however, it can -add considerable overhead to the performance of the system. If you have jobs -with many entities, for example data from tens of thousands of servers, storing -this additional model information for every bucket might be problematic. If you -are not certain that you need this option or if you experience performance -issues, edit your job configuration to disable this option. - -For more information, see -{ref}/ml-job-resource.html#ml-apimodelplotconfig[Model Plot Config]. - -Likewise, when you create a single or multi-metric job in {kib}, in some cases -it uses aggregations on the data that it retrieves from {es}. One of the -benefits of summarizing data this way is that {es} automatically distributes -these calculations across your cluster. This summarized data is then fed into -{xpackml} instead of raw results, which reduces the volume of data that must -be considered while detecting anomalies. However, if you have two jobs, one of -which uses pre-aggregated data and another that does not, their results might -differ. This difference is due to the difference in precision of the input data. -The {ml} analytics are designed to be aggregation-aware and the likely increase -in performance that is gained by pre-aggregating the data makes the potentially -poorer precision worthwhile. If you want to view or change the aggregations -that are used in your job, refer to the `aggregations` property in your {dfeed}. - -For more information, see {ref}/ml-datafeed-resource.html[Datafeed Resources]. - -[float] -=== Security Integration - -When {security} is enabled, a {dfeed} stores the roles of the user who created -or updated the {dfeed} **at that time**. This means that if those roles are -updated then the {dfeed} subsequently runs with the new permissions that are -associated with the roles. However, if the user's roles are adjusted after -creating or updating the {dfeed}, the {dfeed} continues to run with the -permissions that were associated with the original roles. For more information, -see <>. - -[float] -=== Forecasts cannot be created for population jobs - -If you use an `over_field_name` property in your job (that is to say, it's a -_population job_), you cannot create a forecast. If you try to create a forecast -for this type of job, an error occurs. For more information about forecasts, -see <>. - -[float] -=== Forecasts cannot be created for jobs that use geographic, rare, or time functions - -If you use any of the following analytical functions in your job, you cannot -create a forecast: - -* `lat_long` -* `rare` and `freq_rare` -* `time_of_day` and `time_of_week` - -If you try to create a forecast for this type of job, an error occurs. For more -information about any of these functions, see <>. - -[float] -=== Jobs must be stopped before upgrades - -You must stop any {ml} jobs that are running before you start the upgrade -process. For more information, see <> and -{stack-ref}/upgrading-elastic-stack.html[Upgrading the Elastic Stack]. diff --git a/x-pack/docs/en/ml/troubleshooting.asciidoc b/x-pack/docs/en/ml/troubleshooting.asciidoc deleted file mode 100644 index d5244cebdae..00000000000 --- a/x-pack/docs/en/ml/troubleshooting.asciidoc +++ /dev/null @@ -1,116 +0,0 @@ -[[ml-troubleshooting]] -== {xpackml} Troubleshooting -++++ -{xpackml} -++++ - -Use the information in this section to troubleshoot common problems and find -answers for frequently asked questions. - -* <> -* <> - -To get help, see <>. - -[[ml-rollingupgrade]] -=== Machine learning features unavailable after rolling upgrade - -This problem occurs after you upgrade all of the nodes in your cluster to -{version} by using rolling upgrades. When you try to use {xpackml} features for -the first time, all attempts fail, though `GET _xpack` and `GET _xpack/usage` -indicate that {xpack} is enabled. - -*Symptoms:* - -* Errors when you click *Machine Learning* in {kib}. -For example: `Jobs list could not be created` and `An internal server error occurred`. -* Null pointer and remote transport exceptions when you run {ml} APIs such as -`GET _xpack/ml/anomaly_detectors` and `GET _xpack/ml/datafeeds`. -* Errors in the log files on the master nodes. -For example: `unable to install ml metadata upon startup` - -*Resolution:* - -After you upgrade all master-eligible nodes to {es} {version} and {xpack} -{version}, restart the current master node, which triggers the {xpackml} -features to re-initialize. - -For more information, see {ref}/rolling-upgrades.html[Rolling upgrades]. - -[[ml-mappingclash]] -=== Job creation failure due to mapping clash - -This problem occurs when you try to create a job. - -*Symptoms:* - -* Illegal argument exception occurs when you click *Create Job* in {kib} or run -the create job API. For example: -`Save failed: [status_exception] This job would cause a mapping clash -with existing field [field_name] - avoid the clash by assigning a dedicated -results index` or `Save failed: [illegal_argument_exception] Can't merge a non -object mapping [field_name] with an object mapping [field_name]`. - -*Resolution:* - -This issue typically occurs when two or more jobs store their results in the -same index and the results contain fields with the same name but different -data types or different `fields` settings. - -By default, {ml} results are stored in the `.ml-anomalies-shared` index in {es}. -To resolve this issue, click *Advanced > Use dedicated index* when you create -the job in {kib}. If you are using the create job API, specify an index name in -the `results_index_name` property. - -[[ml-jobnames]] -=== {kib} cannot display jobs with invalid characters in their name - -This problem occurs when you create a job by using the -{ref}/ml-put-job.html[Create Jobs API] then try to view that job in {kib}. In -particular, the problem occurs when you use a period(.) in the job identifier. - -*Symptoms:* - -* When you try to open a job (named, for example, `job.test` in the -**Anomaly Explorer** or the **Single Metric Viewer**, the job name is split and -the text after the period is assumed to be the job name. If a job does not exist -with that abbreviated name, an error occurs. For example: -`Warning Requested job test does not exist`. If a job exists with that -abbreviated name, it is displayed. - -*Resolution:* - -Create jobs in {kib} or ensure that you create jobs with valid identifiers when -you use the {ml} APIs. For more information about valid identifiers, see -{ref}/ml-put-job.html[Create Jobs API] or -{ref}/ml-job-resource.html[Job Resources]. - -[[ml-upgradedf]] - -=== Upgraded nodes fail to start due to {dfeed} issues - -This problem occurs when you have a {dfeed} that contains search or query -domain specific language (DSL) that was discontinued. For example, if you -created a {dfeed} query in 5.x using search syntax that was deprecated in 5.x -and removed in 6.0, you must fix the {dfeed} before you upgrade to 6.0. - -*Symptoms:* - -* If {ref}/logging.html#deprecation-logging[deprecation logging] is enabled -before the upgrade, deprecation messages are generated when the {dfeeds} attempt -to retrieve data. -* After the upgrade, nodes fail to start and the error indicates that they -failed to read the local state. - -*Resolution:* - -Before you upgrade, identify the problematic search or query DSL. In 5.6.5 and -later, the Upgrade Assistant detects these scenarios. If you cannot fix the DSL -before the upgrade, you must delete the {dfeed} then re-create it with valid DSL -after the upgrade. - -If you do not fix or delete the {dfeed} before the upgrade, in order to successfully -start the failing nodes you must downgrade the nodes then fix the problem per -above. - -See also {stack-ref}/upgrading-elastic-stack.html[Upgrading the Elastic Stack]. From dfcc939ef88636954e7ccabb2949a6b70c3554ce Mon Sep 17 00:00:00 2001 From: Nik Everett Date: Thu, 7 Jun 2018 13:05:36 -0400 Subject: [PATCH 25/62] QA: Better seed nodes for rolling restart Use all running nodes as unicast seeds in the rolling restart tests to avoid a race between pinging and the tests. Without this if the tests are too fast then when a new node comes up and pings its single configured seed node that node *might* not have a ping from the other running node. --- .../gradle/test/ClusterConfiguration.groovy | 5 +++-- qa/rolling-upgrade/build.gradle | 15 +++++++------ x-pack/qa/rolling-upgrade-basic/build.gradle | 15 +++++++------ x-pack/qa/rolling-upgrade/build.gradle | 21 +++++++++++-------- 4 files changed, 33 insertions(+), 23 deletions(-) diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/ClusterConfiguration.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/ClusterConfiguration.groovy index cd6c7c36ee6..5c363ac043a 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/ClusterConfiguration.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/test/ClusterConfiguration.groovy @@ -87,8 +87,9 @@ class ClusterConfiguration { * A closure to call which returns the unicast host to connect to for cluster formation. * * This allows multi node clusters, or a new cluster to connect to an existing cluster. - * The closure takes two arguments, the NodeInfo for the first node in the cluster, and - * an AntBuilder which may be used to wait on conditions before returning. + * The closure takes three arguments, the NodeInfo for the first node in the cluster, + * the NodeInfo for the node current being configured, an AntBuilder which may be used + * to wait on conditions before returning. */ @Input Closure unicastTransportUri = { NodeInfo seedNode, NodeInfo node, AntBuilder ant -> diff --git a/qa/rolling-upgrade/build.gradle b/qa/rolling-upgrade/build.gradle index 5fc5764ceb5..bfd37863cc2 100644 --- a/qa/rolling-upgrade/build.gradle +++ b/qa/rolling-upgrade/build.gradle @@ -89,8 +89,9 @@ for (Version version : bwcVersions.wireCompatible) { Task oneThirdUpgradedTest = tasks.create(name: "${baseName}#oneThirdUpgradedTest", type: RestIntegTestTask) - configureUpgradeCluster("oneThirdUpgradedTestCluster", oldClusterTestRunner, - 0, { oldClusterTest.nodes.get(1).transportUri() }) + configureUpgradeCluster("oneThirdUpgradedTestCluster", oldClusterTestRunner, 0, + // Use all running nodes as seed nodes so there is no race between pinging and the tests + { oldClusterTest.nodes.get(1).transportUri() + ',' + oldClusterTest.nodes.get(2).transportUri() }) Task oneThirdUpgradedTestRunner = tasks.getByName("${baseName}#oneThirdUpgradedTestRunner") oneThirdUpgradedTestRunner.configure { @@ -101,8 +102,9 @@ for (Version version : bwcVersions.wireCompatible) { Task twoThirdsUpgradedTest = tasks.create(name: "${baseName}#twoThirdsUpgradedTest", type: RestIntegTestTask) - configureUpgradeCluster("twoThirdsUpgradedTestCluster", oneThirdUpgradedTestRunner, - 1, { oneThirdUpgradedTest.nodes.get(0).transportUri() }) + configureUpgradeCluster("twoThirdsUpgradedTestCluster", oneThirdUpgradedTestRunner, 1, + // Use all running nodes as seed nodes so there is no race between pinging and the tests + { oldClusterTest.nodes.get(2).transportUri() + ',' + oneThirdUpgradedTest.nodes.get(0).transportUri() }) Task twoThirdsUpgradedTestRunner = tasks.getByName("${baseName}#twoThirdsUpgradedTestRunner") twoThirdsUpgradedTestRunner.configure { @@ -113,8 +115,9 @@ for (Version version : bwcVersions.wireCompatible) { Task upgradedClusterTest = tasks.create(name: "${baseName}#upgradedClusterTest", type: RestIntegTestTask) - configureUpgradeCluster("upgradedClusterTestCluster", twoThirdsUpgradedTestRunner, - 2, { twoThirdsUpgradedTest.nodes.get(0).transportUri() }) + configureUpgradeCluster("upgradedClusterTestCluster", twoThirdsUpgradedTestRunner, 2, + // Use all running nodes as seed nodes so there is no race between pinging and the tests + { oneThirdUpgradedTest.nodes.get(0).transportUri() + ',' + twoThirdsUpgradedTest.nodes.get(0).transportUri() }) Task upgradedClusterTestRunner = tasks.getByName("${baseName}#upgradedClusterTestRunner") upgradedClusterTestRunner.configure { diff --git a/x-pack/qa/rolling-upgrade-basic/build.gradle b/x-pack/qa/rolling-upgrade-basic/build.gradle index 916f71dd05c..6d5b250b460 100644 --- a/x-pack/qa/rolling-upgrade-basic/build.gradle +++ b/x-pack/qa/rolling-upgrade-basic/build.gradle @@ -69,8 +69,9 @@ for (Version version : bwcVersions.wireCompatible) { Task oneThirdUpgradedTest = tasks.create(name: "${baseName}#oneThirdUpgradedTest", type: RestIntegTestTask) - configureUpgradeCluster("oneThirdUpgradedTestCluster", oldClusterTestRunner, - 0, { oldClusterTest.nodes.get(1).transportUri() }) + configureUpgradeCluster("oneThirdUpgradedTestCluster", oldClusterTestRunner, 0, + // Use all running nodes as seed nodes so there is no race between pinging and the tests + { oldClusterTest.nodes.get(1).transportUri() + ',' + oldClusterTest.nodes.get(2).transportUri() }) Task oneThirdUpgradedTestRunner = tasks.getByName("${baseName}#oneThirdUpgradedTestRunner") oneThirdUpgradedTestRunner.configure { @@ -81,8 +82,9 @@ for (Version version : bwcVersions.wireCompatible) { Task twoThirdsUpgradedTest = tasks.create(name: "${baseName}#twoThirdsUpgradedTest", type: RestIntegTestTask) - configureUpgradeCluster("twoThirdsUpgradedTestCluster", oneThirdUpgradedTestRunner, - 1, { oneThirdUpgradedTest.nodes.get(0).transportUri() }) + configureUpgradeCluster("twoThirdsUpgradedTestCluster", oneThirdUpgradedTestRunner, 1, + // Use all running nodes as seed nodes so there is no race between pinging and the tests + { oldClusterTest.nodes.get(2).transportUri() + ',' + oneThirdUpgradedTest.nodes.get(0).transportUri() }) Task twoThirdsUpgradedTestRunner = tasks.getByName("${baseName}#twoThirdsUpgradedTestRunner") twoThirdsUpgradedTestRunner.configure { @@ -93,8 +95,9 @@ for (Version version : bwcVersions.wireCompatible) { Task upgradedClusterTest = tasks.create(name: "${baseName}#upgradedClusterTest", type: RestIntegTestTask) - configureUpgradeCluster("upgradedClusterTestCluster", twoThirdsUpgradedTestRunner, - 2, { twoThirdsUpgradedTest.nodes.get(0).transportUri() }) + configureUpgradeCluster("upgradedClusterTestCluster", twoThirdsUpgradedTestRunner, 2, + // Use all running nodes as seed nodes so there is no race between pinging and the tests + { oneThirdUpgradedTest.nodes.get(0).transportUri() + ',' + twoThirdsUpgradedTest.nodes.get(0).transportUri() }) Task upgradedClusterTestRunner = tasks.getByName("${baseName}#upgradedClusterTestRunner") upgradedClusterTestRunner.configure { diff --git a/x-pack/qa/rolling-upgrade/build.gradle b/x-pack/qa/rolling-upgrade/build.gradle index f11addb42b8..351f33b9412 100644 --- a/x-pack/qa/rolling-upgrade/build.gradle +++ b/x-pack/qa/rolling-upgrade/build.gradle @@ -203,8 +203,9 @@ subprojects { Task oneThirdUpgradedTest = tasks.create(name: "${baseName}#oneThirdUpgradedTest", type: RestIntegTestTask) - configureUpgradeCluster("oneThirdUpgradedTestCluster", oldClusterTestRunner, - 0, { oldClusterTest.nodes.get(1).transportUri() }) + configureUpgradeCluster("oneThirdUpgradedTestCluster", oldClusterTestRunner, 0, + // Use all running nodes as seed nodes so there is no race between pinging and the tests + { oldClusterTest.nodes.get(1).transportUri() + ',' + oldClusterTest.nodes.get(2).transportUri() }) Task oneThirdUpgradedTestRunner = tasks.getByName("${baseName}#oneThirdUpgradedTestRunner") oneThirdUpgradedTestRunner.configure { @@ -221,8 +222,9 @@ subprojects { Task twoThirdsUpgradedTest = tasks.create(name: "${baseName}#twoThirdsUpgradedTest", type: RestIntegTestTask) - configureUpgradeCluster("twoThirdsUpgradedTestCluster", oneThirdUpgradedTestRunner, - 1, { oneThirdUpgradedTest.nodes.get(0).transportUri() }) + configureUpgradeCluster("twoThirdsUpgradedTestCluster", oneThirdUpgradedTestRunner, 1, + // Use all running nodes as seed nodes so there is no race between pinging and the tests + { oldClusterTest.nodes.get(2).transportUri() + ',' + oneThirdUpgradedTest.nodes.get(0).transportUri() }) Task twoThirdsUpgradedTestRunner = tasks.getByName("${baseName}#twoThirdsUpgradedTestRunner") twoThirdsUpgradedTestRunner.configure { @@ -233,16 +235,17 @@ subprojects { Task upgradedClusterTest = tasks.create(name: "${baseName}#upgradedClusterTest", type: RestIntegTestTask) - configureUpgradeCluster("upgradedClusterTestCluster", twoThirdsUpgradedTestRunner, - 2, { twoThirdsUpgradedTest.nodes.get(0).transportUri() }) + configureUpgradeCluster("upgradedClusterTestCluster", twoThirdsUpgradedTestRunner, 2, + // Use all running nodes as seed nodes so there is no race between pinging and the tests + { oneThirdUpgradedTest.nodes.get(0).transportUri() + ',' + twoThirdsUpgradedTest.nodes.get(0).transportUri() }) Task upgradedClusterTestRunner = tasks.getByName("${baseName}#upgradedClusterTestRunner") upgradedClusterTestRunner.configure { systemProperty 'tests.rest.suite', 'upgraded_cluster' /* - * Force stopping all the upgraded nodes after the test runner - * so they are alive during the test. - */ + * Force stopping all the upgraded nodes after the test runner + * so they are alive during the test. + */ finalizedBy "${baseName}#oneThirdUpgradedTestCluster#stop" finalizedBy "${baseName}#twoThirdsUpgradedTestCluster#stop" From 5dc9e87bad4b81a3afa99e4e5b36ce3a29f9a811 Mon Sep 17 00:00:00 2001 From: lcawl Date: Thu, 7 Jun 2018 10:48:21 -0700 Subject: [PATCH 26/62] [DOCS] Fixes broken link in auditing settings --- docs/reference/settings/audit-settings.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference/settings/audit-settings.asciidoc b/docs/reference/settings/audit-settings.asciidoc index 1e477083c90..5995c65a01c 100644 --- a/docs/reference/settings/audit-settings.asciidoc +++ b/docs/reference/settings/audit-settings.asciidoc @@ -87,7 +87,7 @@ Controls how often to roll over to a new index: `hourly`, `daily`, `weekly`, or `xpack.security.audit.index.events.include`:: Specifies the audit events to be indexed. The default value is `anonymous_access_denied, authentication_failed, realm_authentication_failed, access_granted, access_denied, tampered_request, connection_granted, connection_denied, run_as_granted, run_as_denied`. -See {xpack-ref}/auditing.html#audit-event-types[Audit Entry Types] for the +See {xpack-ref}/audit-event-types.html[Audit Entry Types] for the complete list. `xpack.security.audit.index.events.exclude`:: From b32cbc1baa4dbf859cbde91bc7ce5c42929ffadb Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 7 Jun 2018 16:35:34 -0400 Subject: [PATCH 27/62] Move cli sub-project out of server to libs (#31184) This commit moves the cli sub-project out of server to libs where it makes more sense. --- build.gradle | 2 +- {server => libs}/cli/build.gradle | 0 .../cli/licenses/jopt-simple-5.0.2.jar.sha1 | 0 {server => libs}/cli/licenses/jopt-simple-LICENSE.txt | 0 {server => libs}/cli/licenses/jopt-simple-NOTICE.txt | 0 .../src/main/java/org/elasticsearch/cli/Command.java | 0 .../src/main/java/org/elasticsearch/cli/ExitCodes.java | 0 .../main/java/org/elasticsearch/cli/MultiCommand.java | 10 ++++------ .../java/org/elasticsearch/cli/SuppressForbidden.java | 0 .../src/main/java/org/elasticsearch/cli/Terminal.java | 0 .../main/java/org/elasticsearch/cli/UserException.java | 0 11 files changed, 5 insertions(+), 7 deletions(-) rename {server => libs}/cli/build.gradle (100%) rename {server => libs}/cli/licenses/jopt-simple-5.0.2.jar.sha1 (100%) rename {server => libs}/cli/licenses/jopt-simple-LICENSE.txt (100%) rename {server => libs}/cli/licenses/jopt-simple-NOTICE.txt (100%) rename {server => libs}/cli/src/main/java/org/elasticsearch/cli/Command.java (100%) rename {server => libs}/cli/src/main/java/org/elasticsearch/cli/ExitCodes.java (100%) rename {server => libs}/cli/src/main/java/org/elasticsearch/cli/MultiCommand.java (99%) rename {server => libs}/cli/src/main/java/org/elasticsearch/cli/SuppressForbidden.java (100%) rename {server => libs}/cli/src/main/java/org/elasticsearch/cli/Terminal.java (100%) rename {server => libs}/cli/src/main/java/org/elasticsearch/cli/UserException.java (100%) diff --git a/build.gradle b/build.gradle index 620e043d1c0..4721a3520b8 100644 --- a/build.gradle +++ b/build.gradle @@ -205,7 +205,7 @@ subprojects { "org.elasticsearch.gradle:build-tools:${version}": ':build-tools', "org.elasticsearch:rest-api-spec:${version}": ':rest-api-spec', "org.elasticsearch:elasticsearch:${version}": ':server', - "org.elasticsearch:elasticsearch-cli:${version}": ':server:cli', + "org.elasticsearch:elasticsearch-cli:${version}": ':libs:cli', "org.elasticsearch:elasticsearch-core:${version}": ':libs:elasticsearch-core', "org.elasticsearch:elasticsearch-nio:${version}": ':libs:elasticsearch-nio', "org.elasticsearch:elasticsearch-x-content:${version}": ':libs:x-content', diff --git a/server/cli/build.gradle b/libs/cli/build.gradle similarity index 100% rename from server/cli/build.gradle rename to libs/cli/build.gradle diff --git a/server/cli/licenses/jopt-simple-5.0.2.jar.sha1 b/libs/cli/licenses/jopt-simple-5.0.2.jar.sha1 similarity index 100% rename from server/cli/licenses/jopt-simple-5.0.2.jar.sha1 rename to libs/cli/licenses/jopt-simple-5.0.2.jar.sha1 diff --git a/server/cli/licenses/jopt-simple-LICENSE.txt b/libs/cli/licenses/jopt-simple-LICENSE.txt similarity index 100% rename from server/cli/licenses/jopt-simple-LICENSE.txt rename to libs/cli/licenses/jopt-simple-LICENSE.txt diff --git a/server/cli/licenses/jopt-simple-NOTICE.txt b/libs/cli/licenses/jopt-simple-NOTICE.txt similarity index 100% rename from server/cli/licenses/jopt-simple-NOTICE.txt rename to libs/cli/licenses/jopt-simple-NOTICE.txt diff --git a/server/cli/src/main/java/org/elasticsearch/cli/Command.java b/libs/cli/src/main/java/org/elasticsearch/cli/Command.java similarity index 100% rename from server/cli/src/main/java/org/elasticsearch/cli/Command.java rename to libs/cli/src/main/java/org/elasticsearch/cli/Command.java diff --git a/server/cli/src/main/java/org/elasticsearch/cli/ExitCodes.java b/libs/cli/src/main/java/org/elasticsearch/cli/ExitCodes.java similarity index 100% rename from server/cli/src/main/java/org/elasticsearch/cli/ExitCodes.java rename to libs/cli/src/main/java/org/elasticsearch/cli/ExitCodes.java diff --git a/server/cli/src/main/java/org/elasticsearch/cli/MultiCommand.java b/libs/cli/src/main/java/org/elasticsearch/cli/MultiCommand.java similarity index 99% rename from server/cli/src/main/java/org/elasticsearch/cli/MultiCommand.java rename to libs/cli/src/main/java/org/elasticsearch/cli/MultiCommand.java index 054a29e78a6..bcc75a2d1be 100644 --- a/server/cli/src/main/java/org/elasticsearch/cli/MultiCommand.java +++ b/libs/cli/src/main/java/org/elasticsearch/cli/MultiCommand.java @@ -19,17 +19,15 @@ package org.elasticsearch.cli; -import java.io.Closeable; +import joptsimple.NonOptionArgumentSpec; +import joptsimple.OptionSet; +import org.elasticsearch.core.internal.io.IOUtils; + import java.io.IOException; import java.util.Arrays; import java.util.LinkedHashMap; import java.util.Map; -import joptsimple.NonOptionArgumentSpec; -import joptsimple.OptionSet; - -import org.elasticsearch.core.internal.io.IOUtils; - /** * A cli tool which is made up of multiple subcommands. */ diff --git a/server/cli/src/main/java/org/elasticsearch/cli/SuppressForbidden.java b/libs/cli/src/main/java/org/elasticsearch/cli/SuppressForbidden.java similarity index 100% rename from server/cli/src/main/java/org/elasticsearch/cli/SuppressForbidden.java rename to libs/cli/src/main/java/org/elasticsearch/cli/SuppressForbidden.java diff --git a/server/cli/src/main/java/org/elasticsearch/cli/Terminal.java b/libs/cli/src/main/java/org/elasticsearch/cli/Terminal.java similarity index 100% rename from server/cli/src/main/java/org/elasticsearch/cli/Terminal.java rename to libs/cli/src/main/java/org/elasticsearch/cli/Terminal.java diff --git a/server/cli/src/main/java/org/elasticsearch/cli/UserException.java b/libs/cli/src/main/java/org/elasticsearch/cli/UserException.java similarity index 100% rename from server/cli/src/main/java/org/elasticsearch/cli/UserException.java rename to libs/cli/src/main/java/org/elasticsearch/cli/UserException.java From 94be9b471f6959ca5664a4a143809630a908f78e Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 7 Jun 2018 16:50:21 -0400 Subject: [PATCH 28/62] Rename elasticsearch-core to core (#31185) This commit renames :libs:elasticsearch-core to :libs:core. --- build.gradle | 2 +- client/rest/build.gradle | 2 +- client/sniffer/build.gradle | 2 +- client/test/build.gradle | 2 +- libs/build.gradle | 4 ++-- libs/{elasticsearch-core => core}/build.gradle | 8 ++++---- .../src/main/eclipse-build.gradle | 2 +- .../java/org/elasticsearch/bootstrap/JarHell.java | 0 .../org/elasticsearch/bootstrap/JavaVersion.java | 0 .../java/org/elasticsearch/common/Booleans.java | 0 .../org/elasticsearch/common/CheckedFunction.java | 0 .../main/java/org/elasticsearch/common/Glob.java | 0 .../java/org/elasticsearch/common/Nullable.java | 0 .../org/elasticsearch/common/SuppressForbidden.java | 0 .../org/elasticsearch/common/collect/Tuple.java | 0 .../common/concurrent/CompletableContext.java | 0 .../java/org/elasticsearch/common/io/PathUtils.java | 0 .../org/elasticsearch/common/unit/TimeValue.java | 0 .../org/elasticsearch/core/internal/io/IOUtils.java | 0 .../org/elasticsearch/core/internal/io/Streams.java | 0 .../org/elasticsearch/core/internal/io/Streams.java | 0 .../src/test/eclipse-build.gradle | 4 ++-- .../org/elasticsearch/bootstrap/JarHellTests.java | 0 .../elasticsearch/common/collect/TupleTests.java | 0 .../elasticsearch/common/unit/TimeValueTests.java | 0 .../core/internal/io/IOUtilsTests.java | 0 .../core/internal/io/StreamsTests.java | 0 .../elasticsearch/bootstrap/duplicate-classes.jar | Bin .../bootstrap/duplicate-xmlbeans-classes.jar | Bin qa/vagrant/build.gradle | 2 +- settings.gradle | 10 +++++----- x-pack/plugin/sql/jdbc/build.gradle | 2 +- x-pack/plugin/sql/sql-proto/build.gradle | 2 +- x-pack/plugin/sql/sql-shared-proto/build.gradle | 2 +- 34 files changed, 22 insertions(+), 22 deletions(-) rename libs/{elasticsearch-core => core}/build.gradle (93%) rename libs/{elasticsearch-core => core}/src/main/eclipse-build.gradle (68%) rename libs/{elasticsearch-core => core}/src/main/java/org/elasticsearch/bootstrap/JarHell.java (100%) rename libs/{elasticsearch-core => core}/src/main/java/org/elasticsearch/bootstrap/JavaVersion.java (100%) rename libs/{elasticsearch-core => core}/src/main/java/org/elasticsearch/common/Booleans.java (100%) rename libs/{elasticsearch-core => core}/src/main/java/org/elasticsearch/common/CheckedFunction.java (100%) rename libs/{elasticsearch-core => core}/src/main/java/org/elasticsearch/common/Glob.java (100%) rename libs/{elasticsearch-core => core}/src/main/java/org/elasticsearch/common/Nullable.java (100%) rename libs/{elasticsearch-core => core}/src/main/java/org/elasticsearch/common/SuppressForbidden.java (100%) rename libs/{elasticsearch-core => core}/src/main/java/org/elasticsearch/common/collect/Tuple.java (100%) rename libs/{elasticsearch-core => core}/src/main/java/org/elasticsearch/common/concurrent/CompletableContext.java (100%) rename libs/{elasticsearch-core => core}/src/main/java/org/elasticsearch/common/io/PathUtils.java (100%) rename libs/{elasticsearch-core => core}/src/main/java/org/elasticsearch/common/unit/TimeValue.java (100%) rename libs/{elasticsearch-core => core}/src/main/java/org/elasticsearch/core/internal/io/IOUtils.java (100%) rename libs/{elasticsearch-core => core}/src/main/java/org/elasticsearch/core/internal/io/Streams.java (100%) rename libs/{elasticsearch-core => core}/src/main/java9/org/elasticsearch/core/internal/io/Streams.java (100%) rename libs/{elasticsearch-core => core}/src/test/eclipse-build.gradle (54%) rename libs/{elasticsearch-core => core}/src/test/java/org/elasticsearch/bootstrap/JarHellTests.java (100%) rename libs/{elasticsearch-core => core}/src/test/java/org/elasticsearch/common/collect/TupleTests.java (100%) rename libs/{elasticsearch-core => core}/src/test/java/org/elasticsearch/common/unit/TimeValueTests.java (100%) rename libs/{elasticsearch-core => core}/src/test/java/org/elasticsearch/core/internal/io/IOUtilsTests.java (100%) rename libs/{elasticsearch-core => core}/src/test/java/org/elasticsearch/core/internal/io/StreamsTests.java (100%) rename libs/{elasticsearch-core => core}/src/test/resources/org/elasticsearch/bootstrap/duplicate-classes.jar (100%) rename libs/{elasticsearch-core => core}/src/test/resources/org/elasticsearch/bootstrap/duplicate-xmlbeans-classes.jar (100%) diff --git a/build.gradle b/build.gradle index 4721a3520b8..44f94e4630a 100644 --- a/build.gradle +++ b/build.gradle @@ -206,7 +206,7 @@ subprojects { "org.elasticsearch:rest-api-spec:${version}": ':rest-api-spec', "org.elasticsearch:elasticsearch:${version}": ':server', "org.elasticsearch:elasticsearch-cli:${version}": ':libs:cli', - "org.elasticsearch:elasticsearch-core:${version}": ':libs:elasticsearch-core', + "org.elasticsearch:elasticsearch-core:${version}": ':libs:core', "org.elasticsearch:elasticsearch-nio:${version}": ':libs:elasticsearch-nio', "org.elasticsearch:elasticsearch-x-content:${version}": ':libs:x-content', "org.elasticsearch:elasticsearch-secure-sm:${version}": ':libs:secure-sm', diff --git a/client/rest/build.gradle b/client/rest/build.gradle index bcb928495c5..b1ed05a8342 100644 --- a/client/rest/build.gradle +++ b/client/rest/build.gradle @@ -69,7 +69,7 @@ forbiddenApisTest { } // JarHell is part of es server, which we don't want to pull in -// TODO: Not anymore. Now in elasticsearch-core +// TODO: Not anymore. Now in :libs:core jarHell.enabled=false namingConventions { diff --git a/client/sniffer/build.gradle b/client/sniffer/build.gradle index e226656dbd2..41146e0b7ec 100644 --- a/client/sniffer/build.gradle +++ b/client/sniffer/build.gradle @@ -72,7 +72,7 @@ dependencyLicenses { } // JarHell is part of es server, which we don't want to pull in -// TODO: Not anymore. Now in elasticsearch-core +// TODO: Not anymore. Now in :libs:core jarHell.enabled=false namingConventions { diff --git a/client/test/build.gradle b/client/test/build.gradle index fd5777cc8df..8842e8b15e4 100644 --- a/client/test/build.gradle +++ b/client/test/build.gradle @@ -49,7 +49,7 @@ forbiddenApisTest { } // JarHell is part of es server, which we don't want to pull in -// TODO: Not anymore. Now in elasticsearch-core +// TODO: Not anymore. Now in :libs:core jarHell.enabled=false // TODO: should we have licenses for our test deps? diff --git a/libs/build.gradle b/libs/build.gradle index 7f24f69eedc..b0924aa1f54 100644 --- a/libs/build.gradle +++ b/libs/build.gradle @@ -33,12 +33,12 @@ subprojects { dependencies.all { Dependency dep -> Project depProject = dependencyToProject(dep) if (depProject != null - && false == depProject.path.equals(':libs:elasticsearch-core') + && false == depProject.path.equals(':libs:core') && false == isEclipse && depProject.path.startsWith(':libs')) { throw new InvalidUserDataException("projects in :libs " + "may not depend on other projects libs except " - + ":libs:elasticsearch-core but " + + ":libs:core but " + "${project.path} depends on ${depProject.path}") } } diff --git a/libs/elasticsearch-core/build.gradle b/libs/core/build.gradle similarity index 93% rename from libs/elasticsearch-core/build.gradle rename to libs/core/build.gradle index d374e7a8486..2017c2a418a 100644 --- a/libs/elasticsearch-core/build.gradle +++ b/libs/core/build.gradle @@ -81,7 +81,7 @@ dependencies { java9Compile sourceSets.main.output } - if (isEclipse == false || project.path == ":libs:elasticsearch-core-tests") { + if (isEclipse == false || project.path == ":libs:core-tests") { testCompile("org.elasticsearch.test:framework:${version}") { exclude group: 'org.elasticsearch', module: 'elasticsearch-core' } @@ -89,15 +89,15 @@ dependencies { } forbiddenApisMain { - // elasticsearch-core does not depend on server - // TODO: Need to decide how we want to handle for forbidden signatures with the changes to core + // :libs:core does not depend on server + // TODO: Need to decide how we want to handle for forbidden signatures with the changes to server signaturesURLs = [PrecommitTasks.getResource('/forbidden/jdk-signatures.txt')] } if (isEclipse) { // in eclipse the project is under a fake root, we need to change around the source sets sourceSets { - if (project.path == ":libs:elasticsearch-core") { + if (project.path == ":libs:core") { main.java.srcDirs = ['java'] main.resources.srcDirs = ['resources'] } else { diff --git a/libs/elasticsearch-core/src/main/eclipse-build.gradle b/libs/core/src/main/eclipse-build.gradle similarity index 68% rename from libs/elasticsearch-core/src/main/eclipse-build.gradle rename to libs/core/src/main/eclipse-build.gradle index 9c84a4d6bd8..6bc7562f7fd 100644 --- a/libs/elasticsearch-core/src/main/eclipse-build.gradle +++ b/libs/core/src/main/eclipse-build.gradle @@ -1,2 +1,2 @@ -// this is just shell gradle file for eclipse to have separate projects for elasticsearch-core src and tests +// this is just shell gradle file for eclipse to have separate projects for core src and tests apply from: '../../build.gradle' diff --git a/libs/elasticsearch-core/src/main/java/org/elasticsearch/bootstrap/JarHell.java b/libs/core/src/main/java/org/elasticsearch/bootstrap/JarHell.java similarity index 100% rename from libs/elasticsearch-core/src/main/java/org/elasticsearch/bootstrap/JarHell.java rename to libs/core/src/main/java/org/elasticsearch/bootstrap/JarHell.java diff --git a/libs/elasticsearch-core/src/main/java/org/elasticsearch/bootstrap/JavaVersion.java b/libs/core/src/main/java/org/elasticsearch/bootstrap/JavaVersion.java similarity index 100% rename from libs/elasticsearch-core/src/main/java/org/elasticsearch/bootstrap/JavaVersion.java rename to libs/core/src/main/java/org/elasticsearch/bootstrap/JavaVersion.java diff --git a/libs/elasticsearch-core/src/main/java/org/elasticsearch/common/Booleans.java b/libs/core/src/main/java/org/elasticsearch/common/Booleans.java similarity index 100% rename from libs/elasticsearch-core/src/main/java/org/elasticsearch/common/Booleans.java rename to libs/core/src/main/java/org/elasticsearch/common/Booleans.java diff --git a/libs/elasticsearch-core/src/main/java/org/elasticsearch/common/CheckedFunction.java b/libs/core/src/main/java/org/elasticsearch/common/CheckedFunction.java similarity index 100% rename from libs/elasticsearch-core/src/main/java/org/elasticsearch/common/CheckedFunction.java rename to libs/core/src/main/java/org/elasticsearch/common/CheckedFunction.java diff --git a/libs/elasticsearch-core/src/main/java/org/elasticsearch/common/Glob.java b/libs/core/src/main/java/org/elasticsearch/common/Glob.java similarity index 100% rename from libs/elasticsearch-core/src/main/java/org/elasticsearch/common/Glob.java rename to libs/core/src/main/java/org/elasticsearch/common/Glob.java diff --git a/libs/elasticsearch-core/src/main/java/org/elasticsearch/common/Nullable.java b/libs/core/src/main/java/org/elasticsearch/common/Nullable.java similarity index 100% rename from libs/elasticsearch-core/src/main/java/org/elasticsearch/common/Nullable.java rename to libs/core/src/main/java/org/elasticsearch/common/Nullable.java diff --git a/libs/elasticsearch-core/src/main/java/org/elasticsearch/common/SuppressForbidden.java b/libs/core/src/main/java/org/elasticsearch/common/SuppressForbidden.java similarity index 100% rename from libs/elasticsearch-core/src/main/java/org/elasticsearch/common/SuppressForbidden.java rename to libs/core/src/main/java/org/elasticsearch/common/SuppressForbidden.java diff --git a/libs/elasticsearch-core/src/main/java/org/elasticsearch/common/collect/Tuple.java b/libs/core/src/main/java/org/elasticsearch/common/collect/Tuple.java similarity index 100% rename from libs/elasticsearch-core/src/main/java/org/elasticsearch/common/collect/Tuple.java rename to libs/core/src/main/java/org/elasticsearch/common/collect/Tuple.java diff --git a/libs/elasticsearch-core/src/main/java/org/elasticsearch/common/concurrent/CompletableContext.java b/libs/core/src/main/java/org/elasticsearch/common/concurrent/CompletableContext.java similarity index 100% rename from libs/elasticsearch-core/src/main/java/org/elasticsearch/common/concurrent/CompletableContext.java rename to libs/core/src/main/java/org/elasticsearch/common/concurrent/CompletableContext.java diff --git a/libs/elasticsearch-core/src/main/java/org/elasticsearch/common/io/PathUtils.java b/libs/core/src/main/java/org/elasticsearch/common/io/PathUtils.java similarity index 100% rename from libs/elasticsearch-core/src/main/java/org/elasticsearch/common/io/PathUtils.java rename to libs/core/src/main/java/org/elasticsearch/common/io/PathUtils.java diff --git a/libs/elasticsearch-core/src/main/java/org/elasticsearch/common/unit/TimeValue.java b/libs/core/src/main/java/org/elasticsearch/common/unit/TimeValue.java similarity index 100% rename from libs/elasticsearch-core/src/main/java/org/elasticsearch/common/unit/TimeValue.java rename to libs/core/src/main/java/org/elasticsearch/common/unit/TimeValue.java diff --git a/libs/elasticsearch-core/src/main/java/org/elasticsearch/core/internal/io/IOUtils.java b/libs/core/src/main/java/org/elasticsearch/core/internal/io/IOUtils.java similarity index 100% rename from libs/elasticsearch-core/src/main/java/org/elasticsearch/core/internal/io/IOUtils.java rename to libs/core/src/main/java/org/elasticsearch/core/internal/io/IOUtils.java diff --git a/libs/elasticsearch-core/src/main/java/org/elasticsearch/core/internal/io/Streams.java b/libs/core/src/main/java/org/elasticsearch/core/internal/io/Streams.java similarity index 100% rename from libs/elasticsearch-core/src/main/java/org/elasticsearch/core/internal/io/Streams.java rename to libs/core/src/main/java/org/elasticsearch/core/internal/io/Streams.java diff --git a/libs/elasticsearch-core/src/main/java9/org/elasticsearch/core/internal/io/Streams.java b/libs/core/src/main/java9/org/elasticsearch/core/internal/io/Streams.java similarity index 100% rename from libs/elasticsearch-core/src/main/java9/org/elasticsearch/core/internal/io/Streams.java rename to libs/core/src/main/java9/org/elasticsearch/core/internal/io/Streams.java diff --git a/libs/elasticsearch-core/src/test/eclipse-build.gradle b/libs/core/src/test/eclipse-build.gradle similarity index 54% rename from libs/elasticsearch-core/src/test/eclipse-build.gradle rename to libs/core/src/test/eclipse-build.gradle index f43f019941b..b5fe0417428 100644 --- a/libs/elasticsearch-core/src/test/eclipse-build.gradle +++ b/libs/core/src/test/eclipse-build.gradle @@ -1,6 +1,6 @@ -// this is just shell gradle file for eclipse to have separate projects for elasticsearch-core src and tests +// this is just shell gradle file for eclipse to have separate projects for core src and tests apply from: '../../build.gradle' dependencies { - testCompile project(':libs:elasticsearch-core') + testCompile project(':libs:core') } diff --git a/libs/elasticsearch-core/src/test/java/org/elasticsearch/bootstrap/JarHellTests.java b/libs/core/src/test/java/org/elasticsearch/bootstrap/JarHellTests.java similarity index 100% rename from libs/elasticsearch-core/src/test/java/org/elasticsearch/bootstrap/JarHellTests.java rename to libs/core/src/test/java/org/elasticsearch/bootstrap/JarHellTests.java diff --git a/libs/elasticsearch-core/src/test/java/org/elasticsearch/common/collect/TupleTests.java b/libs/core/src/test/java/org/elasticsearch/common/collect/TupleTests.java similarity index 100% rename from libs/elasticsearch-core/src/test/java/org/elasticsearch/common/collect/TupleTests.java rename to libs/core/src/test/java/org/elasticsearch/common/collect/TupleTests.java diff --git a/libs/elasticsearch-core/src/test/java/org/elasticsearch/common/unit/TimeValueTests.java b/libs/core/src/test/java/org/elasticsearch/common/unit/TimeValueTests.java similarity index 100% rename from libs/elasticsearch-core/src/test/java/org/elasticsearch/common/unit/TimeValueTests.java rename to libs/core/src/test/java/org/elasticsearch/common/unit/TimeValueTests.java diff --git a/libs/elasticsearch-core/src/test/java/org/elasticsearch/core/internal/io/IOUtilsTests.java b/libs/core/src/test/java/org/elasticsearch/core/internal/io/IOUtilsTests.java similarity index 100% rename from libs/elasticsearch-core/src/test/java/org/elasticsearch/core/internal/io/IOUtilsTests.java rename to libs/core/src/test/java/org/elasticsearch/core/internal/io/IOUtilsTests.java diff --git a/libs/elasticsearch-core/src/test/java/org/elasticsearch/core/internal/io/StreamsTests.java b/libs/core/src/test/java/org/elasticsearch/core/internal/io/StreamsTests.java similarity index 100% rename from libs/elasticsearch-core/src/test/java/org/elasticsearch/core/internal/io/StreamsTests.java rename to libs/core/src/test/java/org/elasticsearch/core/internal/io/StreamsTests.java diff --git a/libs/elasticsearch-core/src/test/resources/org/elasticsearch/bootstrap/duplicate-classes.jar b/libs/core/src/test/resources/org/elasticsearch/bootstrap/duplicate-classes.jar similarity index 100% rename from libs/elasticsearch-core/src/test/resources/org/elasticsearch/bootstrap/duplicate-classes.jar rename to libs/core/src/test/resources/org/elasticsearch/bootstrap/duplicate-classes.jar diff --git a/libs/elasticsearch-core/src/test/resources/org/elasticsearch/bootstrap/duplicate-xmlbeans-classes.jar b/libs/core/src/test/resources/org/elasticsearch/bootstrap/duplicate-xmlbeans-classes.jar similarity index 100% rename from libs/elasticsearch-core/src/test/resources/org/elasticsearch/bootstrap/duplicate-xmlbeans-classes.jar rename to libs/core/src/test/resources/org/elasticsearch/bootstrap/duplicate-xmlbeans-classes.jar diff --git a/qa/vagrant/build.gradle b/qa/vagrant/build.gradle index a8dfe89b678..23d171f3125 100644 --- a/qa/vagrant/build.gradle +++ b/qa/vagrant/build.gradle @@ -31,7 +31,7 @@ dependencies { compile "org.hamcrest:hamcrest-core:${versions.hamcrest}" compile "org.hamcrest:hamcrest-library:${versions.hamcrest}" - compile project(':libs:elasticsearch-core') + compile project(':libs:core') // pulls in the jar built by this project and its dependencies packagingTest project(path: project.path, configuration: 'runtime') diff --git a/settings.gradle b/settings.gradle index ee88f9bd0ed..3dba0d4ae00 100644 --- a/settings.gradle +++ b/settings.gradle @@ -83,7 +83,7 @@ if (isEclipse) { // eclipse cannot handle an intermediate dependency between main and test, so we must create separate projects // for server-src and server-tests projects << 'server-tests' - projects << 'libs:elasticsearch-core-tests' + projects << 'libs:core-tests' projects << 'libs:elasticsearch-nio-tests' projects << 'libs:x-content-tests' projects << 'libs:secure-sm-tests' @@ -99,10 +99,10 @@ if (isEclipse) { project(":server").buildFileName = 'eclipse-build.gradle' project(":server-tests").projectDir = new File(rootProject.projectDir, 'server/src/test') project(":server-tests").buildFileName = 'eclipse-build.gradle' - project(":libs:elasticsearch-core").projectDir = new File(rootProject.projectDir, 'libs/elasticsearch-core/src/main') - project(":libs:elasticsearch-core").buildFileName = 'eclipse-build.gradle' - project(":libs:elasticsearch-core-tests").projectDir = new File(rootProject.projectDir, 'libs/elasticsearch-core/src/test') - project(":libs:elasticsearch-core-tests").buildFileName = 'eclipse-build.gradle' + project(":libs:core").projectDir = new File(rootProject.projectDir, 'libs/core/src/main') + project(":libs:core").buildFileName = 'eclipse-build.gradle' + project(":libs:core-tests").projectDir = new File(rootProject.projectDir, 'libs/core/src/test') + project(":libs:core-tests").buildFileName = 'eclipse-build.gradle' project(":libs:elasticsearch-nio").projectDir = new File(rootProject.projectDir, 'libs/elasticsearch-nio/src/main') project(":libs:elasticsearch-nio").buildFileName = 'eclipse-build.gradle' project(":libs:elasticsearch-nio-tests").projectDir = new File(rootProject.projectDir, 'libs/elasticsearch-nio/src/test') diff --git a/x-pack/plugin/sql/jdbc/build.gradle b/x-pack/plugin/sql/jdbc/build.gradle index 18755523ac8..26cf913aa27 100644 --- a/x-pack/plugin/sql/jdbc/build.gradle +++ b/x-pack/plugin/sql/jdbc/build.gradle @@ -66,7 +66,7 @@ dependencies { compile (project(':libs:x-content')) { transitive = false } - compile project(':libs:elasticsearch-core') + compile project(':libs:core') runtime "com.fasterxml.jackson.core:jackson-core:${versions.jackson}" testCompile "org.elasticsearch.test:framework:${version}" diff --git a/x-pack/plugin/sql/sql-proto/build.gradle b/x-pack/plugin/sql/sql-proto/build.gradle index e5ac7904432..b1d8497f9b8 100644 --- a/x-pack/plugin/sql/sql-proto/build.gradle +++ b/x-pack/plugin/sql/sql-proto/build.gradle @@ -18,7 +18,7 @@ dependencies { compile (project(':server')) { transitive = false } - compile (project(':libs:elasticsearch-core')) { + compile (project(':libs:core')) { transitive = false } compile (project(':libs:x-content')) { diff --git a/x-pack/plugin/sql/sql-shared-proto/build.gradle b/x-pack/plugin/sql/sql-shared-proto/build.gradle index b6580fbcb01..5a1439f4360 100644 --- a/x-pack/plugin/sql/sql-shared-proto/build.gradle +++ b/x-pack/plugin/sql/sql-shared-proto/build.gradle @@ -11,7 +11,7 @@ description = 'Request and response objects shared by the cli, jdbc ' + 'and the Elasticsearch plugin' dependencies { - compile (project(':libs:elasticsearch-core')) { + compile (project(':libs:core')) { transitive = false } compile (project(':libs:x-content')) { From 5296c11e4f1c1d0022cc1f2685ae51dcdf759d9c Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 7 Jun 2018 17:00:00 -0400 Subject: [PATCH 29/62] Rename elasticsearch-nio to nio (#31186) This commit renames :libs:elasticsearch-nio to :libs:nio. --- build.gradle | 3 +-- libs/{elasticsearch-nio => nio}/build.gradle | 6 +++--- .../src/main/eclipse-build.gradle | 2 +- .../org/elasticsearch/nio/BytesChannelContext.java | 0 .../org/elasticsearch/nio/BytesWriteHandler.java | 0 .../java/org/elasticsearch/nio/ChannelContext.java | 0 .../java/org/elasticsearch/nio/ChannelFactory.java | 0 .../java/org/elasticsearch/nio/EventHandler.java | 0 .../java/org/elasticsearch/nio/FlushOperation.java | 0 .../java/org/elasticsearch/nio/FlushReadyWrite.java | 0 .../org/elasticsearch/nio/InboundChannelBuffer.java | 0 .../main/java/org/elasticsearch/nio/NioChannel.java | 0 .../main/java/org/elasticsearch/nio/NioGroup.java | 0 .../java/org/elasticsearch/nio/NioSelector.java | 0 .../elasticsearch/nio/NioServerSocketChannel.java | 0 .../org/elasticsearch/nio/NioSocketChannel.java | 0 .../org/elasticsearch/nio/ReadWriteHandler.java | 0 .../org/elasticsearch/nio/RoundRobinSupplier.java | 0 .../org/elasticsearch/nio/SelectionKeyUtils.java | 0 .../org/elasticsearch/nio/ServerChannelContext.java | 0 .../org/elasticsearch/nio/SocketChannelContext.java | 0 .../java/org/elasticsearch/nio/WriteOperation.java | 0 .../elasticsearch/nio/utils/ExceptionsHelper.java | 0 .../src/test/eclipse-build.gradle | 4 ++-- .../elasticsearch/nio/BytesChannelContextTests.java | 0 .../org/elasticsearch/nio/ChannelContextTests.java | 0 .../org/elasticsearch/nio/ChannelFactoryTests.java | 0 .../org/elasticsearch/nio/EventHandlerTests.java | 0 .../org/elasticsearch/nio/FlushOperationTests.java | 0 .../nio/InboundChannelBufferTests.java | 0 .../java/org/elasticsearch/nio/NioGroupTests.java | 0 .../org/elasticsearch/nio/NioSelectorTests.java | 0 .../nio/SocketChannelContextTests.java | 0 .../org/elasticsearch/nio/TestSelectionKey.java | 0 .../src/test/resources/testks.jks | Bin settings.gradle | 10 +++++----- 36 files changed, 12 insertions(+), 13 deletions(-) rename libs/{elasticsearch-nio => nio}/build.gradle (89%) rename libs/{elasticsearch-nio => nio}/src/main/eclipse-build.gradle (69%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/BytesChannelContext.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/BytesWriteHandler.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/ChannelContext.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/ChannelFactory.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/EventHandler.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/FlushOperation.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/FlushReadyWrite.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/InboundChannelBuffer.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/NioChannel.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/NioGroup.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/NioSelector.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/NioServerSocketChannel.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/NioSocketChannel.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/ReadWriteHandler.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/RoundRobinSupplier.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/SelectionKeyUtils.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/ServerChannelContext.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/SocketChannelContext.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/WriteOperation.java (100%) rename libs/{elasticsearch-nio => nio}/src/main/java/org/elasticsearch/nio/utils/ExceptionsHelper.java (100%) rename libs/{elasticsearch-nio => nio}/src/test/eclipse-build.gradle (55%) rename libs/{elasticsearch-nio => nio}/src/test/java/org/elasticsearch/nio/BytesChannelContextTests.java (100%) rename libs/{elasticsearch-nio => nio}/src/test/java/org/elasticsearch/nio/ChannelContextTests.java (100%) rename libs/{elasticsearch-nio => nio}/src/test/java/org/elasticsearch/nio/ChannelFactoryTests.java (100%) rename libs/{elasticsearch-nio => nio}/src/test/java/org/elasticsearch/nio/EventHandlerTests.java (100%) rename libs/{elasticsearch-nio => nio}/src/test/java/org/elasticsearch/nio/FlushOperationTests.java (100%) rename libs/{elasticsearch-nio => nio}/src/test/java/org/elasticsearch/nio/InboundChannelBufferTests.java (100%) rename libs/{elasticsearch-nio => nio}/src/test/java/org/elasticsearch/nio/NioGroupTests.java (100%) rename libs/{elasticsearch-nio => nio}/src/test/java/org/elasticsearch/nio/NioSelectorTests.java (100%) rename libs/{elasticsearch-nio => nio}/src/test/java/org/elasticsearch/nio/SocketChannelContextTests.java (100%) rename libs/{elasticsearch-nio => nio}/src/test/java/org/elasticsearch/nio/TestSelectionKey.java (100%) rename libs/{elasticsearch-nio => nio}/src/test/resources/testks.jks (100%) diff --git a/build.gradle b/build.gradle index 44f94e4630a..9d6e0541186 100644 --- a/build.gradle +++ b/build.gradle @@ -205,9 +205,8 @@ subprojects { "org.elasticsearch.gradle:build-tools:${version}": ':build-tools', "org.elasticsearch:rest-api-spec:${version}": ':rest-api-spec', "org.elasticsearch:elasticsearch:${version}": ':server', - "org.elasticsearch:elasticsearch-cli:${version}": ':libs:cli', "org.elasticsearch:elasticsearch-core:${version}": ':libs:core', - "org.elasticsearch:elasticsearch-nio:${version}": ':libs:elasticsearch-nio', + "org.elasticsearch:elasticsearch-nio:${version}": ':libs:nio', "org.elasticsearch:elasticsearch-x-content:${version}": ':libs:x-content', "org.elasticsearch:elasticsearch-secure-sm:${version}": ':libs:secure-sm', "org.elasticsearch.client:elasticsearch-rest-client:${version}": ':client:rest', diff --git a/libs/elasticsearch-nio/build.gradle b/libs/nio/build.gradle similarity index 89% rename from libs/elasticsearch-nio/build.gradle rename to libs/nio/build.gradle index f8b0b8fba13..43c9a133a3f 100644 --- a/libs/elasticsearch-nio/build.gradle +++ b/libs/nio/build.gradle @@ -39,7 +39,7 @@ dependencies { testCompile "junit:junit:${versions.junit}" testCompile "org.hamcrest:hamcrest-all:${versions.hamcrest}" - if (isEclipse == false || project.path == ":libs:elasticsearch-nio-tests") { + if (isEclipse == false || project.path == ":libs:nio-tests") { testCompile("org.elasticsearch.test:framework:${version}") { exclude group: 'org.elasticsearch', module: 'elasticsearch-nio' } @@ -49,7 +49,7 @@ dependencies { if (isEclipse) { // in eclipse the project is under a fake root, we need to change around the source sets sourceSets { - if (project.path == ":libs:elasticsearch-nio") { + if (project.path == ":libs:nio") { main.java.srcDirs = ['java'] main.resources.srcDirs = ['resources'] } else { @@ -60,7 +60,7 @@ if (isEclipse) { } forbiddenApisMain { - // elasticsearch-nio does not depend on core, so only jdk signatures should be checked + // nio does not depend on core, so only jdk signatures should be checked // es-all is not checked as we connect and accept sockets signaturesURLs = [PrecommitTasks.getResource('/forbidden/jdk-signatures.txt')] } diff --git a/libs/elasticsearch-nio/src/main/eclipse-build.gradle b/libs/nio/src/main/eclipse-build.gradle similarity index 69% rename from libs/elasticsearch-nio/src/main/eclipse-build.gradle rename to libs/nio/src/main/eclipse-build.gradle index 5aa089de19e..ae3ab2b13a1 100644 --- a/libs/elasticsearch-nio/src/main/eclipse-build.gradle +++ b/libs/nio/src/main/eclipse-build.gradle @@ -1,3 +1,3 @@ -// this is just shell gradle file for eclipse to have separate projects for elasticsearch-nio src and tests +// this is just shell gradle file for eclipse to have separate projects for nio src and tests apply from: '../../build.gradle' diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/BytesChannelContext.java b/libs/nio/src/main/java/org/elasticsearch/nio/BytesChannelContext.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/BytesChannelContext.java rename to libs/nio/src/main/java/org/elasticsearch/nio/BytesChannelContext.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/BytesWriteHandler.java b/libs/nio/src/main/java/org/elasticsearch/nio/BytesWriteHandler.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/BytesWriteHandler.java rename to libs/nio/src/main/java/org/elasticsearch/nio/BytesWriteHandler.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ChannelContext.java b/libs/nio/src/main/java/org/elasticsearch/nio/ChannelContext.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ChannelContext.java rename to libs/nio/src/main/java/org/elasticsearch/nio/ChannelContext.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ChannelFactory.java b/libs/nio/src/main/java/org/elasticsearch/nio/ChannelFactory.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ChannelFactory.java rename to libs/nio/src/main/java/org/elasticsearch/nio/ChannelFactory.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/EventHandler.java b/libs/nio/src/main/java/org/elasticsearch/nio/EventHandler.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/EventHandler.java rename to libs/nio/src/main/java/org/elasticsearch/nio/EventHandler.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/FlushOperation.java b/libs/nio/src/main/java/org/elasticsearch/nio/FlushOperation.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/FlushOperation.java rename to libs/nio/src/main/java/org/elasticsearch/nio/FlushOperation.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/FlushReadyWrite.java b/libs/nio/src/main/java/org/elasticsearch/nio/FlushReadyWrite.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/FlushReadyWrite.java rename to libs/nio/src/main/java/org/elasticsearch/nio/FlushReadyWrite.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/InboundChannelBuffer.java b/libs/nio/src/main/java/org/elasticsearch/nio/InboundChannelBuffer.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/InboundChannelBuffer.java rename to libs/nio/src/main/java/org/elasticsearch/nio/InboundChannelBuffer.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioChannel.java b/libs/nio/src/main/java/org/elasticsearch/nio/NioChannel.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioChannel.java rename to libs/nio/src/main/java/org/elasticsearch/nio/NioChannel.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioGroup.java b/libs/nio/src/main/java/org/elasticsearch/nio/NioGroup.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioGroup.java rename to libs/nio/src/main/java/org/elasticsearch/nio/NioGroup.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioSelector.java b/libs/nio/src/main/java/org/elasticsearch/nio/NioSelector.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioSelector.java rename to libs/nio/src/main/java/org/elasticsearch/nio/NioSelector.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioServerSocketChannel.java b/libs/nio/src/main/java/org/elasticsearch/nio/NioServerSocketChannel.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioServerSocketChannel.java rename to libs/nio/src/main/java/org/elasticsearch/nio/NioServerSocketChannel.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioSocketChannel.java b/libs/nio/src/main/java/org/elasticsearch/nio/NioSocketChannel.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/NioSocketChannel.java rename to libs/nio/src/main/java/org/elasticsearch/nio/NioSocketChannel.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ReadWriteHandler.java b/libs/nio/src/main/java/org/elasticsearch/nio/ReadWriteHandler.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ReadWriteHandler.java rename to libs/nio/src/main/java/org/elasticsearch/nio/ReadWriteHandler.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/RoundRobinSupplier.java b/libs/nio/src/main/java/org/elasticsearch/nio/RoundRobinSupplier.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/RoundRobinSupplier.java rename to libs/nio/src/main/java/org/elasticsearch/nio/RoundRobinSupplier.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/SelectionKeyUtils.java b/libs/nio/src/main/java/org/elasticsearch/nio/SelectionKeyUtils.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/SelectionKeyUtils.java rename to libs/nio/src/main/java/org/elasticsearch/nio/SelectionKeyUtils.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ServerChannelContext.java b/libs/nio/src/main/java/org/elasticsearch/nio/ServerChannelContext.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/ServerChannelContext.java rename to libs/nio/src/main/java/org/elasticsearch/nio/ServerChannelContext.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/SocketChannelContext.java b/libs/nio/src/main/java/org/elasticsearch/nio/SocketChannelContext.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/SocketChannelContext.java rename to libs/nio/src/main/java/org/elasticsearch/nio/SocketChannelContext.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/WriteOperation.java b/libs/nio/src/main/java/org/elasticsearch/nio/WriteOperation.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/WriteOperation.java rename to libs/nio/src/main/java/org/elasticsearch/nio/WriteOperation.java diff --git a/libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/utils/ExceptionsHelper.java b/libs/nio/src/main/java/org/elasticsearch/nio/utils/ExceptionsHelper.java similarity index 100% rename from libs/elasticsearch-nio/src/main/java/org/elasticsearch/nio/utils/ExceptionsHelper.java rename to libs/nio/src/main/java/org/elasticsearch/nio/utils/ExceptionsHelper.java diff --git a/libs/elasticsearch-nio/src/test/eclipse-build.gradle b/libs/nio/src/test/eclipse-build.gradle similarity index 55% rename from libs/elasticsearch-nio/src/test/eclipse-build.gradle rename to libs/nio/src/test/eclipse-build.gradle index 6b5d202dddd..e30e76b0da5 100644 --- a/libs/elasticsearch-nio/src/test/eclipse-build.gradle +++ b/libs/nio/src/test/eclipse-build.gradle @@ -1,7 +1,7 @@ -// this is just shell gradle file for eclipse to have separate projects for elasticsearch-nio src and tests +// this is just shell gradle file for eclipse to have separate projects for nio src and tests apply from: '../../build.gradle' dependencies { - testCompile project(':libs:elasticsearch-nio') + testCompile project(':libs:nio') } diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/BytesChannelContextTests.java b/libs/nio/src/test/java/org/elasticsearch/nio/BytesChannelContextTests.java similarity index 100% rename from libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/BytesChannelContextTests.java rename to libs/nio/src/test/java/org/elasticsearch/nio/BytesChannelContextTests.java diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/ChannelContextTests.java b/libs/nio/src/test/java/org/elasticsearch/nio/ChannelContextTests.java similarity index 100% rename from libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/ChannelContextTests.java rename to libs/nio/src/test/java/org/elasticsearch/nio/ChannelContextTests.java diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/ChannelFactoryTests.java b/libs/nio/src/test/java/org/elasticsearch/nio/ChannelFactoryTests.java similarity index 100% rename from libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/ChannelFactoryTests.java rename to libs/nio/src/test/java/org/elasticsearch/nio/ChannelFactoryTests.java diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/EventHandlerTests.java b/libs/nio/src/test/java/org/elasticsearch/nio/EventHandlerTests.java similarity index 100% rename from libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/EventHandlerTests.java rename to libs/nio/src/test/java/org/elasticsearch/nio/EventHandlerTests.java diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/FlushOperationTests.java b/libs/nio/src/test/java/org/elasticsearch/nio/FlushOperationTests.java similarity index 100% rename from libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/FlushOperationTests.java rename to libs/nio/src/test/java/org/elasticsearch/nio/FlushOperationTests.java diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/InboundChannelBufferTests.java b/libs/nio/src/test/java/org/elasticsearch/nio/InboundChannelBufferTests.java similarity index 100% rename from libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/InboundChannelBufferTests.java rename to libs/nio/src/test/java/org/elasticsearch/nio/InboundChannelBufferTests.java diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/NioGroupTests.java b/libs/nio/src/test/java/org/elasticsearch/nio/NioGroupTests.java similarity index 100% rename from libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/NioGroupTests.java rename to libs/nio/src/test/java/org/elasticsearch/nio/NioGroupTests.java diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/NioSelectorTests.java b/libs/nio/src/test/java/org/elasticsearch/nio/NioSelectorTests.java similarity index 100% rename from libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/NioSelectorTests.java rename to libs/nio/src/test/java/org/elasticsearch/nio/NioSelectorTests.java diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/SocketChannelContextTests.java b/libs/nio/src/test/java/org/elasticsearch/nio/SocketChannelContextTests.java similarity index 100% rename from libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/SocketChannelContextTests.java rename to libs/nio/src/test/java/org/elasticsearch/nio/SocketChannelContextTests.java diff --git a/libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/TestSelectionKey.java b/libs/nio/src/test/java/org/elasticsearch/nio/TestSelectionKey.java similarity index 100% rename from libs/elasticsearch-nio/src/test/java/org/elasticsearch/nio/TestSelectionKey.java rename to libs/nio/src/test/java/org/elasticsearch/nio/TestSelectionKey.java diff --git a/libs/elasticsearch-nio/src/test/resources/testks.jks b/libs/nio/src/test/resources/testks.jks similarity index 100% rename from libs/elasticsearch-nio/src/test/resources/testks.jks rename to libs/nio/src/test/resources/testks.jks diff --git a/settings.gradle b/settings.gradle index 3dba0d4ae00..0d9be7c2494 100644 --- a/settings.gradle +++ b/settings.gradle @@ -84,7 +84,7 @@ if (isEclipse) { // for server-src and server-tests projects << 'server-tests' projects << 'libs:core-tests' - projects << 'libs:elasticsearch-nio-tests' + projects << 'libs:nio-tests' projects << 'libs:x-content-tests' projects << 'libs:secure-sm-tests' projects << 'libs:grok-tests' @@ -103,10 +103,10 @@ if (isEclipse) { project(":libs:core").buildFileName = 'eclipse-build.gradle' project(":libs:core-tests").projectDir = new File(rootProject.projectDir, 'libs/core/src/test') project(":libs:core-tests").buildFileName = 'eclipse-build.gradle' - project(":libs:elasticsearch-nio").projectDir = new File(rootProject.projectDir, 'libs/elasticsearch-nio/src/main') - project(":libs:elasticsearch-nio").buildFileName = 'eclipse-build.gradle' - project(":libs:elasticsearch-nio-tests").projectDir = new File(rootProject.projectDir, 'libs/elasticsearch-nio/src/test') - project(":libs:elasticsearch-nio-tests").buildFileName = 'eclipse-build.gradle' + project(":libs:nio").projectDir = new File(rootProject.projectDir, 'libs/nio/src/main') + project(":libs:nio").buildFileName = 'eclipse-build.gradle' + project(":libs:nio-tests").projectDir = new File(rootProject.projectDir, 'libs/nio/src/test') + project(":libs:nio-tests").buildFileName = 'eclipse-build.gradle' project(":libs:x-content").projectDir = new File(rootProject.projectDir, 'libs/x-content/src/main') project(":libs:x-content").buildFileName = 'eclipse-build.gradle' project(":libs:x-content-tests").projectDir = new File(rootProject.projectDir, 'libs/x-content/src/test') From d8c0a39c150a9cbfa0862222ee80c03117cbb052 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 7 Jun 2018 17:00:22 -0400 Subject: [PATCH 30/62] Remove vestiges of animal sniffer (#31178) We no longer need animal sniffer because we use JDK functionality (introduced in JDK 9) to target older versions of the JDK for compilation. This functionality means that the JDK handles the problem of ensuring that we do not use JDK APIs from the version that we are compiling from that are not available in the version that we are compiling to. A previous commit removed this for the REST client (where we target JDK 7) but a few traces were left behind. --- .../client/sniff/ElasticsearchHostsSnifferTests.java | 3 --- client/test/build.gradle | 3 --- distribution/tools/launchers/build.gradle | 3 --- 3 files changed, 9 deletions(-) diff --git a/client/sniffer/src/test/java/org/elasticsearch/client/sniff/ElasticsearchHostsSnifferTests.java b/client/sniffer/src/test/java/org/elasticsearch/client/sniff/ElasticsearchHostsSnifferTests.java index f13d1751104..ed2744df31c 100644 --- a/client/sniffer/src/test/java/org/elasticsearch/client/sniff/ElasticsearchHostsSnifferTests.java +++ b/client/sniffer/src/test/java/org/elasticsearch/client/sniff/ElasticsearchHostsSnifferTests.java @@ -30,7 +30,6 @@ import com.sun.net.httpserver.HttpServer; import org.apache.http.Consts; import org.apache.http.HttpHost; import org.apache.http.client.methods.HttpGet; -import org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement; import org.elasticsearch.client.Response; import org.elasticsearch.client.ResponseException; import org.elasticsearch.client.RestClient; @@ -148,8 +147,6 @@ public class ElasticsearchHostsSnifferTests extends RestClientTestCase { return httpServer; } - //animal-sniffer doesn't like our usage of com.sun.net.httpserver.* classes - @IgnoreJRERequirement private static class ResponseHandler implements HttpHandler { private final int sniffTimeoutMillis; private final SniffResponse sniffResponse; diff --git a/client/test/build.gradle b/client/test/build.gradle index 8842e8b15e4..59c45186fe7 100644 --- a/client/test/build.gradle +++ b/client/test/build.gradle @@ -21,7 +21,6 @@ import org.elasticsearch.gradle.precommit.PrecommitTasks import org.gradle.api.JavaVersion apply plugin: 'elasticsearch.build' -apply plugin: 'ru.vyarus.animalsniffer' targetCompatibility = JavaVersion.VERSION_1_7 sourceCompatibility = JavaVersion.VERSION_1_7 @@ -31,8 +30,6 @@ dependencies { compile "com.carrotsearch.randomizedtesting:randomizedtesting-runner:${versions.randomizedrunner}" compile "junit:junit:${versions.junit}" compile "org.hamcrest:hamcrest-all:${versions.hamcrest}" - compile "org.codehaus.mojo:animal-sniffer-annotations:1.15" - signature "org.codehaus.mojo.signature:java17:1.0@signature" } forbiddenApisMain { diff --git a/distribution/tools/launchers/build.gradle b/distribution/tools/launchers/build.gradle index 27e8712ffcb..ff0f4c473a4 100644 --- a/distribution/tools/launchers/build.gradle +++ b/distribution/tools/launchers/build.gradle @@ -21,14 +21,11 @@ import org.elasticsearch.gradle.precommit.PrecommitTasks import org.gradle.api.JavaVersion apply plugin: 'elasticsearch.build' -apply plugin: 'ru.vyarus.animalsniffer' sourceCompatibility = JavaVersion.VERSION_1_7 targetCompatibility = JavaVersion.VERSION_1_7 dependencies { - signature "org.codehaus.mojo.signature:java17:1.0@signature" - testCompile "com.carrotsearch.randomizedtesting:randomizedtesting-runner:${versions.randomizedrunner}" testCompile "junit:junit:${versions.junit}" testCompile "org.hamcrest:hamcrest-all:${versions.hamcrest}" From e481b860a197e7a079e8435aef52ae08fbcc5b7e Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 7 Jun 2018 17:01:06 -0400 Subject: [PATCH 31/62] Enable engine factory to be pluggable (#31183) This commit enables the engine factory to be pluggable based on index settings used when creating the index service for an index. --- .../org/elasticsearch/index/IndexModule.java | 28 +++- .../org/elasticsearch/index/IndexService.java | 8 +- .../elasticsearch/index/shard/IndexShard.java | 5 +- .../elasticsearch/indices/IndicesModule.java | 9 ++ .../elasticsearch/indices/IndicesService.java | 46 +++++- .../java/org/elasticsearch/node/Node.java | 38 +++-- .../elasticsearch/plugins/EnginePlugin.java | 42 ++++++ .../elasticsearch/index/IndexModuleTests.java | 54 +++++--- .../ESIndexLevelReplicationTestCase.java | 3 +- .../RecoveryDuringReplicationTests.java | 5 +- .../index/shard/IndexShardTests.java | 24 +++- .../indices/IndicesServiceTests.java | 131 +++++++++++++++++- .../BlobStoreRepositoryRestoreTests.java | 11 +- .../index/MockEngineFactoryPlugin.java | 14 +- .../index/shard/IndexShardTestCase.java | 5 +- .../xpack/watcher/WatcherPluginTests.java | 3 +- 16 files changed, 350 insertions(+), 76 deletions(-) create mode 100644 server/src/main/java/org/elasticsearch/plugins/EnginePlugin.java diff --git a/server/src/main/java/org/elasticsearch/index/IndexModule.java b/server/src/main/java/org/elasticsearch/index/IndexModule.java index 99a5f73c150..9e859a16956 100644 --- a/server/src/main/java/org/elasticsearch/index/IndexModule.java +++ b/server/src/main/java/org/elasticsearch/index/IndexModule.java @@ -19,8 +19,8 @@ package org.elasticsearch.index; -import org.apache.lucene.search.similarities.Similarity; import org.apache.lucene.search.similarities.BM25Similarity; +import org.apache.lucene.search.similarities.Similarity; import org.apache.lucene.util.SetOnce; import org.elasticsearch.Version; import org.elasticsearch.client.Client; @@ -60,6 +60,7 @@ import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.BiFunction; @@ -104,8 +105,7 @@ public final class IndexModule { private final IndexSettings indexSettings; private final AnalysisRegistry analysisRegistry; - // pkg private so tests can mock - final SetOnce engineFactory = new SetOnce<>(); + private final EngineFactory engineFactory; private SetOnce indexSearcherWrapper = new SetOnce<>(); private final Set indexEventListeners = new HashSet<>(); private final Map> similarities = new HashMap<>(); @@ -115,9 +115,18 @@ public final class IndexModule { private final List indexOperationListeners = new ArrayList<>(); private final AtomicBoolean frozen = new AtomicBoolean(false); - public IndexModule(IndexSettings indexSettings, AnalysisRegistry analysisRegistry) { + /** + * Construct the index module for the index with the specified index settings. The index module contains extension points for plugins + * via {@link org.elasticsearch.plugins.PluginsService#onIndexModule(IndexModule)}. + * + * @param indexSettings the index settings + * @param analysisRegistry the analysis registry + * @param engineFactory the engine factory + */ + public IndexModule(final IndexSettings indexSettings, final AnalysisRegistry analysisRegistry, final EngineFactory engineFactory) { this.indexSettings = indexSettings; this.analysisRegistry = analysisRegistry; + this.engineFactory = Objects.requireNonNull(engineFactory); this.searchOperationListeners.add(new SearchSlowLog(indexSettings)); this.indexOperationListeners.add(new IndexingSlowLog(indexSettings)); } @@ -158,6 +167,15 @@ public final class IndexModule { return indexSettings.getIndex(); } + /** + * The engine factory provided during construction of this index module. + * + * @return the engine factory + */ + EngineFactory getEngineFactory() { + return engineFactory; + } + /** * Adds an {@link IndexEventListener} for this index. All listeners added here * are maintained for the entire index lifecycle on this node. Once an index is closed or deleted these @@ -364,7 +382,7 @@ public final class IndexModule { } return new IndexService(indexSettings, environment, xContentRegistry, new SimilarityService(indexSettings, scriptService, similarities), - shardStoreDeleter, analysisRegistry, engineFactory.get(), circuitBreakerService, bigArrays, threadPool, scriptService, + shardStoreDeleter, analysisRegistry, engineFactory, circuitBreakerService, bigArrays, threadPool, scriptService, client, queryCache, store, eventListener, searcherWrapperFactory, mapperRegistry, indicesFieldDataCache, searchOperationListeners, indexOperationListeners, namedWriteableRegistry); } diff --git a/server/src/main/java/org/elasticsearch/index/IndexService.java b/server/src/main/java/org/elasticsearch/index/IndexService.java index 585406d01a6..5e9e811bc32 100644 --- a/server/src/main/java/org/elasticsearch/index/IndexService.java +++ b/server/src/main/java/org/elasticsearch/index/IndexService.java @@ -139,7 +139,7 @@ public class IndexService extends AbstractIndexComponent implements IndicesClust SimilarityService similarityService, ShardStoreDeleter shardStoreDeleter, AnalysisRegistry registry, - @Nullable EngineFactory engineFactory, + EngineFactory engineFactory, CircuitBreakerService circuitBreakerService, BigArrays bigArrays, ThreadPool threadPool, @@ -188,7 +188,7 @@ public class IndexService extends AbstractIndexComponent implements IndicesClust this.warmer = new IndexWarmer(indexSettings.getSettings(), threadPool, indexFieldData, bitsetFilterCache.createListener(threadPool)); this.indexCache = new IndexCache(indexSettings, queryCache, bitsetFilterCache); - this.engineFactory = engineFactory; + this.engineFactory = Objects.requireNonNull(engineFactory); // initialize this last -- otherwise if the wrapper requires any other member to be non-null we fail with an NPE this.searcherWrapper = wrapperFactory.newWrapper(this); this.searchOperationListeners = Collections.unmodifiableList(searchOperationListeners); @@ -681,9 +681,9 @@ public class IndexService extends AbstractIndexComponent implements IndicesClust void addPendingDelete(ShardId shardId, IndexSettings indexSettings); } - final EngineFactory getEngineFactory() { + public final EngineFactory getEngineFactory() { return engineFactory; - } // pkg private for testing + } final IndexSearcherWrapper getSearcherWrapper() { return searcherWrapper; diff --git a/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java b/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java index 60392ab7990..c76ce128763 100644 --- a/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java @@ -82,7 +82,6 @@ import org.elasticsearch.index.engine.EngineConfig; import org.elasticsearch.index.engine.EngineException; import org.elasticsearch.index.engine.EngineFactory; import org.elasticsearch.index.engine.InternalEngine; -import org.elasticsearch.index.engine.InternalEngineFactory; import org.elasticsearch.index.engine.RefreshFailedEngineException; import org.elasticsearch.index.engine.Segment; import org.elasticsearch.index.engine.SegmentsStats; @@ -194,7 +193,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl protected volatile IndexShardState state; protected volatile long primaryTerm; protected final AtomicReference currentEngineReference = new AtomicReference<>(); - protected final EngineFactory engineFactory; + final EngineFactory engineFactory; private final IndexingOperationListener indexingOperationListeners; private final Runnable globalCheckpointSyncer; @@ -267,7 +266,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl this.warmer = warmer; this.similarityService = similarityService; Objects.requireNonNull(store, "Store must be provided to the index shard"); - this.engineFactory = engineFactory == null ? new InternalEngineFactory() : engineFactory; + this.engineFactory = Objects.requireNonNull(engineFactory); this.store = store; this.indexSortSupplier = indexSortSupplier; this.indexEventListener = indexEventListener; diff --git a/server/src/main/java/org/elasticsearch/indices/IndicesModule.java b/server/src/main/java/org/elasticsearch/indices/IndicesModule.java index 6c786763003..11024286b22 100644 --- a/server/src/main/java/org/elasticsearch/indices/IndicesModule.java +++ b/server/src/main/java/org/elasticsearch/indices/IndicesModule.java @@ -27,6 +27,8 @@ import org.elasticsearch.action.resync.TransportResyncReplicationAction; import org.elasticsearch.common.geo.ShapesAvailability; import org.elasticsearch.common.inject.AbstractModule; import org.elasticsearch.common.io.stream.NamedWriteableRegistry.Entry; +import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.engine.EngineFactory; import org.elasticsearch.index.mapper.BinaryFieldMapper; import org.elasticsearch.index.mapper.BooleanFieldMapper; import org.elasticsearch.index.mapper.CompletionFieldMapper; @@ -60,10 +62,12 @@ import org.elasticsearch.indices.store.TransportNodesListShardStoreMetaData; import org.elasticsearch.plugins.MapperPlugin; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Set; import java.util.function.Function; import java.util.function.Predicate; @@ -234,4 +238,9 @@ public class IndicesModule extends AbstractModule { public MapperRegistry getMapperRegistry() { return mapperRegistry; } + + public Collection>> getEngineFactories() { + return Collections.emptyList(); + } + } diff --git a/server/src/main/java/org/elasticsearch/indices/IndicesService.java b/server/src/main/java/org/elasticsearch/indices/IndicesService.java index 5cdac123655..6716996f634 100644 --- a/server/src/main/java/org/elasticsearch/indices/IndicesService.java +++ b/server/src/main/java/org/elasticsearch/indices/IndicesService.java @@ -25,7 +25,6 @@ import org.apache.lucene.index.DirectoryReader; import org.apache.lucene.store.AlreadyClosedException; import org.apache.lucene.store.LockObtainFailedException; import org.apache.lucene.util.CollectionUtil; -import org.elasticsearch.core.internal.io.IOUtils; import org.apache.lucene.util.RamUsageEstimator; import org.elasticsearch.ElasticsearchException; import org.elasticsearch.ResourceAlreadyExistsException; @@ -45,6 +44,7 @@ import org.elasticsearch.common.CheckedFunction; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.breaker.CircuitBreaker; import org.elasticsearch.common.bytes.BytesReference; +import org.elasticsearch.common.collect.Tuple; import org.elasticsearch.common.component.AbstractLifecycleComponent; import org.elasticsearch.common.io.FileSystemUtils; import org.elasticsearch.common.io.stream.BytesStreamOutput; @@ -67,6 +67,7 @@ import org.elasticsearch.common.xcontent.NamedXContentRegistry; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentType; +import org.elasticsearch.core.internal.io.IOUtils; import org.elasticsearch.env.NodeEnvironment; import org.elasticsearch.env.ShardLock; import org.elasticsearch.env.ShardLockObtainFailedException; @@ -79,6 +80,8 @@ import org.elasticsearch.index.IndexService; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.analysis.AnalysisRegistry; import org.elasticsearch.index.cache.request.ShardRequestCache; +import org.elasticsearch.index.engine.EngineFactory; +import org.elasticsearch.index.engine.InternalEngineFactory; import org.elasticsearch.index.fielddata.IndexFieldDataCache; import org.elasticsearch.index.flush.FlushStats; import org.elasticsearch.index.get.GetStats; @@ -116,10 +119,14 @@ import java.io.Closeable; import java.io.IOException; import java.nio.file.Files; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; +import java.util.Objects; +import java.util.Optional; import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; @@ -172,6 +179,7 @@ public class IndicesService extends AbstractLifecycleComponent private final IndicesRequestCache indicesRequestCache; private final IndicesQueryCache indicesQueryCache; private final MetaStateService metaStateService; + private final Collection>> engineFactoryProviders; @Override protected void doStart() { @@ -183,7 +191,8 @@ public class IndicesService extends AbstractLifecycleComponent AnalysisRegistry analysisRegistry, IndexNameExpressionResolver indexNameExpressionResolver, MapperRegistry mapperRegistry, NamedWriteableRegistry namedWriteableRegistry, ThreadPool threadPool, IndexScopedSettings indexScopedSettings, CircuitBreakerService circuitBreakerService, BigArrays bigArrays, - ScriptService scriptService, Client client, MetaStateService metaStateService) { + ScriptService scriptService, Client client, MetaStateService metaStateService, + Collection>> engineFactoryProviders) { super(settings); this.threadPool = threadPool; this.pluginsService = pluginsService; @@ -214,6 +223,7 @@ public class IndicesService extends AbstractLifecycleComponent this.cleanInterval = INDICES_CACHE_CLEAN_INTERVAL_SETTING.get(settings); this.cacheCleaner = new CacheCleaner(indicesFieldDataCache, indicesRequestCache, logger, threadPool, this.cleanInterval); this.metaStateService = metaStateService; + this.engineFactoryProviders = engineFactoryProviders; } @Override @@ -442,7 +452,7 @@ public class IndicesService extends AbstractLifecycleComponent idxSettings.getNumberOfReplicas(), reason); - final IndexModule indexModule = new IndexModule(idxSettings, analysisRegistry); + final IndexModule indexModule = new IndexModule(idxSettings, analysisRegistry, getEngineFactory(idxSettings)); for (IndexingOperationListener operationListener : indexingOperationListeners) { indexModule.addIndexOperationListener(operationListener); } @@ -466,6 +476,34 @@ public class IndicesService extends AbstractLifecycleComponent ); } + private EngineFactory getEngineFactory(final IndexSettings idxSettings) { + final List> engineFactories = + engineFactoryProviders + .stream() + .map(engineFactoryProvider -> engineFactoryProvider.apply(idxSettings)) + .filter(maybe -> Objects.requireNonNull(maybe).isPresent()) + .collect(Collectors.toList()); + if (engineFactories.isEmpty()) { + return new InternalEngineFactory(); + } else if (engineFactories.size() == 1) { + assert engineFactories.get(0).isPresent(); + return engineFactories.get(0).get(); + } else { + final String message = String.format( + Locale.ROOT, + "multiple engine factories provided for %s: %s", + idxSettings.getIndex(), + engineFactories + .stream() + .map(t -> { + assert t.isPresent(); + return "[" + t.get().getClass().getName() + "]"; + }) + .collect(Collectors.joining(","))); + throw new IllegalStateException(message); + } + } + /** * creates a new mapper service for the given index, in order to do administrative work like mapping updates. * This *should not* be used for document parsing. Doing so will result in an exception. @@ -474,7 +512,7 @@ public class IndicesService extends AbstractLifecycleComponent */ public synchronized MapperService createIndexMapperService(IndexMetaData indexMetaData) throws IOException { final IndexSettings idxSettings = new IndexSettings(indexMetaData, this.settings, indexScopedSettings); - final IndexModule indexModule = new IndexModule(idxSettings, analysisRegistry); + final IndexModule indexModule = new IndexModule(idxSettings, analysisRegistry, getEngineFactory(idxSettings)); pluginsService.onIndexModule(indexModule); return indexModule.newIndexMapperService(xContentRegistry, mapperRegistry, scriptService); } diff --git a/server/src/main/java/org/elasticsearch/node/Node.java b/server/src/main/java/org/elasticsearch/node/Node.java index 44ecb6b04d6..f65b9e018da 100644 --- a/server/src/main/java/org/elasticsearch/node/Node.java +++ b/server/src/main/java/org/elasticsearch/node/Node.java @@ -21,7 +21,6 @@ package org.elasticsearch.node; import org.apache.logging.log4j.Logger; import org.apache.lucene.util.Constants; -import org.elasticsearch.core.internal.io.IOUtils; import org.apache.lucene.util.SetOnce; import org.elasticsearch.Build; import org.elasticsearch.ElasticsearchException; @@ -58,12 +57,10 @@ import org.elasticsearch.cluster.service.ClusterService; import org.elasticsearch.common.StopWatch; import org.elasticsearch.common.component.Lifecycle; import org.elasticsearch.common.component.LifecycleComponent; -import org.elasticsearch.common.inject.Binder; import org.elasticsearch.common.inject.Injector; import org.elasticsearch.common.inject.Key; import org.elasticsearch.common.inject.Module; import org.elasticsearch.common.inject.ModulesBuilder; -import org.elasticsearch.common.inject.util.Providers; import org.elasticsearch.common.io.stream.NamedWriteableRegistry; import org.elasticsearch.common.lease.Releasables; import org.elasticsearch.common.logging.DeprecationLogger; @@ -82,6 +79,7 @@ import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.util.BigArrays; import org.elasticsearch.common.util.PageCacheRecycler; import org.elasticsearch.common.xcontent.NamedXContentRegistry; +import org.elasticsearch.core.internal.io.IOUtils; import org.elasticsearch.discovery.Discovery; import org.elasticsearch.discovery.DiscoveryModule; import org.elasticsearch.discovery.DiscoverySettings; @@ -93,8 +91,10 @@ import org.elasticsearch.gateway.GatewayModule; import org.elasticsearch.gateway.GatewayService; import org.elasticsearch.gateway.MetaStateService; import org.elasticsearch.http.HttpServerTransport; -import org.elasticsearch.http.HttpTransportSettings; +import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.analysis.AnalysisRegistry; +import org.elasticsearch.index.engine.Engine; +import org.elasticsearch.index.engine.EngineFactory; import org.elasticsearch.indices.IndicesModule; import org.elasticsearch.indices.IndicesService; import org.elasticsearch.indices.analysis.AnalysisModule; @@ -109,10 +109,15 @@ import org.elasticsearch.indices.store.IndicesStore; import org.elasticsearch.ingest.IngestService; import org.elasticsearch.monitor.MonitorService; import org.elasticsearch.monitor.jvm.JvmInfo; +import org.elasticsearch.persistent.PersistentTasksClusterService; +import org.elasticsearch.persistent.PersistentTasksExecutor; +import org.elasticsearch.persistent.PersistentTasksExecutorRegistry; +import org.elasticsearch.persistent.PersistentTasksService; import org.elasticsearch.plugins.ActionPlugin; import org.elasticsearch.plugins.AnalysisPlugin; import org.elasticsearch.plugins.ClusterPlugin; import org.elasticsearch.plugins.DiscoveryPlugin; +import org.elasticsearch.plugins.EnginePlugin; import org.elasticsearch.plugins.IngestPlugin; import org.elasticsearch.plugins.MapperPlugin; import org.elasticsearch.plugins.MetaDataUpgrader; @@ -140,10 +145,6 @@ import org.elasticsearch.transport.TransportInterceptor; import org.elasticsearch.transport.TransportService; import org.elasticsearch.usage.UsageService; import org.elasticsearch.watcher.ResourceWatcherService; -import org.elasticsearch.persistent.PersistentTasksClusterService; -import org.elasticsearch.persistent.PersistentTasksExecutor; -import org.elasticsearch.persistent.PersistentTasksExecutorRegistry; -import org.elasticsearch.persistent.PersistentTasksService; import java.io.BufferedWriter; import java.io.Closeable; @@ -161,6 +162,7 @@ import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @@ -395,11 +397,21 @@ public class Node implements Closeable { .flatMap(Function.identity()).collect(toList())); modules.add(new RepositoriesModule(this.environment, pluginsService.filterPlugins(RepositoryPlugin.class), xContentRegistry)); final MetaStateService metaStateService = new MetaStateService(settings, nodeEnvironment, xContentRegistry); - final IndicesService indicesService = new IndicesService(settings, pluginsService, nodeEnvironment, xContentRegistry, - analysisModule.getAnalysisRegistry(), - clusterModule.getIndexNameExpressionResolver(), indicesModule.getMapperRegistry(), namedWriteableRegistry, - threadPool, settingsModule.getIndexScopedSettings(), circuitBreakerService, bigArrays, scriptModule.getScriptService(), - client, metaStateService); + + // collect engine factory providers from server and from plugins + final Collection enginePlugins = pluginsService.filterPlugins(EnginePlugin.class); + final Collection>> engineFactoryProviders = + Stream.concat( + indicesModule.getEngineFactories().stream(), + enginePlugins.stream().map(plugin -> plugin::getEngineFactory)) + .collect(Collectors.toList()); + + final IndicesService indicesService = + new IndicesService(settings, pluginsService, nodeEnvironment, xContentRegistry, analysisModule.getAnalysisRegistry(), + clusterModule.getIndexNameExpressionResolver(), indicesModule.getMapperRegistry(), namedWriteableRegistry, + threadPool, settingsModule.getIndexScopedSettings(), circuitBreakerService, bigArrays, + scriptModule.getScriptService(), client, metaStateService, engineFactoryProviders); + Collection pluginComponents = pluginsService.filterPlugins(Plugin.class).stream() .flatMap(p -> p.createComponents(client, clusterService, threadPool, resourceWatcherService, diff --git a/server/src/main/java/org/elasticsearch/plugins/EnginePlugin.java b/server/src/main/java/org/elasticsearch/plugins/EnginePlugin.java new file mode 100644 index 00000000000..59312945871 --- /dev/null +++ b/server/src/main/java/org/elasticsearch/plugins/EnginePlugin.java @@ -0,0 +1,42 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.plugins; + +import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.engine.EngineFactory; + +import java.util.Optional; + +/** + * A plugin that provides alternative engine implementations. + */ +public interface EnginePlugin { + + /** + * When an index is created this method is invoked for each engine plugin. Engine plugins can inspect the index settings to determine + * whether or not to provide an engine factory for the given index. A plugin that is not overriding the default engine should return + * {@link Optional#empty()}. If multiple plugins return an engine factory for a given index the index will not be created and an + * {@link IllegalStateException} will be thrown during index creation. + * + * @return an optional engine factory + */ + Optional getEngineFactory(IndexSettings indexSettings); + +} diff --git a/server/src/test/java/org/elasticsearch/index/IndexModuleTests.java b/server/src/test/java/org/elasticsearch/index/IndexModuleTests.java index 2824b8caca1..1d531bdeb90 100644 --- a/server/src/test/java/org/elasticsearch/index/IndexModuleTests.java +++ b/server/src/test/java/org/elasticsearch/index/IndexModuleTests.java @@ -30,7 +30,6 @@ import org.apache.lucene.search.TermStatistics; import org.apache.lucene.search.Weight; import org.apache.lucene.search.similarities.BM25Similarity; import org.apache.lucene.search.similarities.Similarity; -import org.elasticsearch.core.internal.io.IOUtils; import org.apache.lucene.util.SetOnce.AlreadySetException; import org.elasticsearch.Version; import org.elasticsearch.cluster.metadata.IndexMetaData; @@ -40,6 +39,7 @@ import org.elasticsearch.common.settings.Setting.Property; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.BigArrays; import org.elasticsearch.common.util.PageCacheRecycler; +import org.elasticsearch.core.internal.io.IOUtils; import org.elasticsearch.env.Environment; import org.elasticsearch.env.NodeEnvironment; import org.elasticsearch.env.ShardLock; @@ -50,6 +50,7 @@ import org.elasticsearch.index.cache.query.IndexQueryCache; import org.elasticsearch.index.cache.query.QueryCache; import org.elasticsearch.index.engine.Engine; import org.elasticsearch.index.engine.EngineException; +import org.elasticsearch.index.engine.InternalEngineFactory; import org.elasticsearch.index.engine.InternalEngineTests; import org.elasticsearch.index.fielddata.IndexFieldDataCache; import org.elasticsearch.index.mapper.ParsedDocument; @@ -146,13 +147,12 @@ public class IndexModuleTests extends ESTestCase { } public void testWrapperIsBound() throws IOException { - IndexModule module = new IndexModule(indexSettings, emptyAnalysisRegistry); + IndexModule module = new IndexModule(indexSettings, emptyAnalysisRegistry, new MockEngineFactory(AssertingDirectoryReader.class)); module.setSearcherWrapper((s) -> new Wrapper()); - module.engineFactory.set(new MockEngineFactory(AssertingDirectoryReader.class)); IndexService indexService = newIndexService(module); assertTrue(indexService.getSearcherWrapper() instanceof Wrapper); - assertSame(indexService.getEngineFactory(), module.engineFactory.get()); + assertSame(indexService.getEngineFactory(), module.getEngineFactory()); indexService.close("simon says", false); } @@ -165,7 +165,7 @@ public class IndexModuleTests extends ESTestCase { .put(IndexModule.INDEX_STORE_TYPE_SETTING.getKey(), "foo_store") .build(); IndexSettings indexSettings = IndexSettingsModule.newIndexSettings(index, settings); - IndexModule module = new IndexModule(indexSettings, emptyAnalysisRegistry); + IndexModule module = new IndexModule(indexSettings, emptyAnalysisRegistry, new InternalEngineFactory()); module.addIndexStore("foo_store", FooStore::new); try { module.addIndexStore("foo_store", FooStore::new); @@ -189,7 +189,7 @@ public class IndexModuleTests extends ESTestCase { } }; IndexSettings indexSettings = IndexSettingsModule.newIndexSettings(index, settings); - IndexModule module = new IndexModule(indexSettings, emptyAnalysisRegistry); + IndexModule module = new IndexModule(indexSettings, emptyAnalysisRegistry, new InternalEngineFactory()); module.addIndexEventListener(eventListener); IndexService indexService = newIndexService(module); IndexSettings x = indexService.getIndexSettings(); @@ -203,7 +203,8 @@ public class IndexModuleTests extends ESTestCase { public void testListener() throws IOException { Setting booleanSetting = Setting.boolSetting("index.foo.bar", false, Property.Dynamic, Property.IndexScope); - IndexModule module = new IndexModule(IndexSettingsModule.newIndexSettings(index, settings, booleanSetting), emptyAnalysisRegistry); + final IndexSettings indexSettings = IndexSettingsModule.newIndexSettings(index, settings, booleanSetting); + IndexModule module = new IndexModule(indexSettings, emptyAnalysisRegistry, new InternalEngineFactory()); Setting booleanSetting2 = Setting.boolSetting("index.foo.bar.baz", false, Property.Dynamic, Property.IndexScope); AtomicBoolean atomicBoolean = new AtomicBoolean(false); module.addSettingsUpdateConsumer(booleanSetting, atomicBoolean::set); @@ -222,7 +223,8 @@ public class IndexModuleTests extends ESTestCase { } public void testAddIndexOperationListener() throws IOException { - IndexModule module = new IndexModule(IndexSettingsModule.newIndexSettings(index, settings), emptyAnalysisRegistry); + IndexModule module = + new IndexModule(IndexSettingsModule.newIndexSettings(index, settings), emptyAnalysisRegistry, new InternalEngineFactory()); AtomicBoolean executed = new AtomicBoolean(false); IndexingOperationListener listener = new IndexingOperationListener() { @Override @@ -252,7 +254,8 @@ public class IndexModuleTests extends ESTestCase { } public void testAddSearchOperationListener() throws IOException { - IndexModule module = new IndexModule(IndexSettingsModule.newIndexSettings(index, settings), emptyAnalysisRegistry); + IndexModule module = + new IndexModule(IndexSettingsModule.newIndexSettings(index, settings), emptyAnalysisRegistry, new InternalEngineFactory()); AtomicBoolean executed = new AtomicBoolean(false); SearchOperationListener listener = new SearchOperationListener() { @@ -279,13 +282,14 @@ public class IndexModuleTests extends ESTestCase { } public void testAddSimilarity() throws IOException { - Settings indexSettings = Settings.builder() + Settings settings = Settings.builder() .put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT) .put("index.similarity.my_similarity.type", "test_similarity") .put("index.similarity.my_similarity.key", "there is a key") .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toString()) .build(); - IndexModule module = new IndexModule(IndexSettingsModule.newIndexSettings("foo", indexSettings), emptyAnalysisRegistry); + IndexModule module = + new IndexModule(IndexSettingsModule.newIndexSettings("foo", settings), emptyAnalysisRegistry, new InternalEngineFactory()); module.addSimilarity("test_similarity", (providerSettings, indexCreatedVersion, scriptService) -> new TestSimilarity(providerSettings.get("key"))); @@ -299,7 +303,8 @@ public class IndexModuleTests extends ESTestCase { } public void testFrozen() { - IndexModule module = new IndexModule(IndexSettingsModule.newIndexSettings(index, settings), emptyAnalysisRegistry); + IndexModule module = + new IndexModule(IndexSettingsModule.newIndexSettings(index, settings), emptyAnalysisRegistry, new InternalEngineFactory()); module.freeze(); String msg = "Can't modify IndexModule once the index service has been created"; assertEquals(msg, expectThrows(IllegalStateException.class, () -> module.addSearchOperationListener(null)).getMessage()); @@ -312,32 +317,35 @@ public class IndexModuleTests extends ESTestCase { } public void testSetupUnknownSimilarity() throws IOException { - Settings indexSettings = Settings.builder() + Settings settings = Settings.builder() .put("index.similarity.my_similarity.type", "test_similarity") .put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT) .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toString()) .build(); - IndexModule module = new IndexModule(IndexSettingsModule.newIndexSettings("foo", indexSettings), emptyAnalysisRegistry); + IndexModule module = + new IndexModule(IndexSettingsModule.newIndexSettings("foo", settings), emptyAnalysisRegistry, new InternalEngineFactory()); Exception ex = expectThrows(IllegalArgumentException.class, () -> newIndexService(module)); assertEquals("Unknown Similarity type [test_similarity] for [my_similarity]", ex.getMessage()); } public void testSetupWithoutType() throws IOException { - Settings indexSettings = Settings.builder() + Settings settings = Settings.builder() .put("index.similarity.my_similarity.foo", "bar") .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toString()) .put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT) .build(); - IndexModule module = new IndexModule(IndexSettingsModule.newIndexSettings("foo", indexSettings), emptyAnalysisRegistry); + IndexModule module = + new IndexModule(IndexSettingsModule.newIndexSettings("foo", settings), emptyAnalysisRegistry, new InternalEngineFactory()); Exception ex = expectThrows(IllegalArgumentException.class, () -> newIndexService(module)); assertEquals("Similarity [my_similarity] must have an associated type", ex.getMessage()); } public void testForceCustomQueryCache() throws IOException { - Settings indexSettings = Settings.builder() + Settings settings = Settings.builder() .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toString()) .put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT).build(); - IndexModule module = new IndexModule(IndexSettingsModule.newIndexSettings("foo", indexSettings), emptyAnalysisRegistry); + IndexModule module = + new IndexModule(IndexSettingsModule.newIndexSettings("foo", settings), emptyAnalysisRegistry, new InternalEngineFactory()); module.forceQueryCacheProvider((a, b) -> new CustomQueryCache()); expectThrows(AlreadySetException.class, () -> module.forceQueryCacheProvider((a, b) -> new CustomQueryCache())); IndexService indexService = newIndexService(module); @@ -346,21 +354,23 @@ public class IndexModuleTests extends ESTestCase { } public void testDefaultQueryCacheImplIsSelected() throws IOException { - Settings indexSettings = Settings.builder() + Settings settings = Settings.builder() .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toString()) .put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT).build(); - IndexModule module = new IndexModule(IndexSettingsModule.newIndexSettings("foo", indexSettings), emptyAnalysisRegistry); + IndexModule module = + new IndexModule(IndexSettingsModule.newIndexSettings("foo", settings), emptyAnalysisRegistry, new InternalEngineFactory()); IndexService indexService = newIndexService(module); assertTrue(indexService.cache().query() instanceof IndexQueryCache); indexService.close("simon says", false); } public void testDisableQueryCacheHasPrecedenceOverForceQueryCache() throws IOException { - Settings indexSettings = Settings.builder() + Settings settings = Settings.builder() .put(IndexModule.INDEX_QUERY_CACHE_ENABLED_SETTING.getKey(), false) .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toString()) .put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT).build(); - IndexModule module = new IndexModule(IndexSettingsModule.newIndexSettings("foo", indexSettings), emptyAnalysisRegistry); + IndexModule module = + new IndexModule(IndexSettingsModule.newIndexSettings("foo", settings), emptyAnalysisRegistry, new InternalEngineFactory()); module.forceQueryCacheProvider((a, b) -> new CustomQueryCache()); IndexService indexService = newIndexService(module); assertTrue(indexService.cache().query() instanceof DisabledQueryCache); diff --git a/server/src/test/java/org/elasticsearch/index/replication/ESIndexLevelReplicationTestCase.java b/server/src/test/java/org/elasticsearch/index/replication/ESIndexLevelReplicationTestCase.java index 16a73f0fa71..e11a0aa3213 100644 --- a/server/src/test/java/org/elasticsearch/index/replication/ESIndexLevelReplicationTestCase.java +++ b/server/src/test/java/org/elasticsearch/index/replication/ESIndexLevelReplicationTestCase.java @@ -60,6 +60,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.Index; import org.elasticsearch.index.engine.EngineFactory; +import org.elasticsearch.index.engine.InternalEngineFactory; import org.elasticsearch.index.seqno.GlobalCheckpointSyncAction; import org.elasticsearch.index.shard.IndexShard; import org.elasticsearch.index.shard.IndexShardTestCase; @@ -160,7 +161,7 @@ public abstract class ESIndexLevelReplicationTestCase extends IndexShardTestCase } protected EngineFactory getEngineFactory(ShardRouting routing) { - return null; + return new InternalEngineFactory(); } public int indexDocs(final int numOfDoc) throws Exception { diff --git a/server/src/test/java/org/elasticsearch/index/replication/RecoveryDuringReplicationTests.java b/server/src/test/java/org/elasticsearch/index/replication/RecoveryDuringReplicationTests.java index a34963a4751..21be1da3845 100644 --- a/server/src/test/java/org/elasticsearch/index/replication/RecoveryDuringReplicationTests.java +++ b/server/src/test/java/org/elasticsearch/index/replication/RecoveryDuringReplicationTests.java @@ -38,6 +38,7 @@ import org.elasticsearch.index.VersionType; import org.elasticsearch.index.engine.Engine; import org.elasticsearch.index.engine.EngineConfig; import org.elasticsearch.index.engine.EngineFactory; +import org.elasticsearch.index.engine.InternalEngineFactory; import org.elasticsearch.index.engine.InternalEngineTests; import org.elasticsearch.index.mapper.SourceToParse; import org.elasticsearch.index.shard.IndexShard; @@ -406,7 +407,7 @@ public class RecoveryDuringReplicationTests extends ESIndexLevelReplicationTestC if (routing.primary()) { return primaryEngineFactory; } else { - return null; + return new InternalEngineFactory(); } } }) { @@ -500,7 +501,7 @@ public class RecoveryDuringReplicationTests extends ESIndexLevelReplicationTestC @Override protected EngineFactory getEngineFactory(final ShardRouting routing) { if (routing.primary()) { - return null; + return new InternalEngineFactory(); } else { return replicaEngineFactory; } diff --git a/server/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java b/server/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java index 027b595ee76..2f420dcbc4d 100644 --- a/server/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java +++ b/server/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java @@ -76,6 +76,7 @@ import org.elasticsearch.index.VersionType; import org.elasticsearch.index.engine.Engine; import org.elasticsearch.index.engine.EngineException; import org.elasticsearch.index.engine.InternalEngine; +import org.elasticsearch.index.engine.InternalEngineFactory; import org.elasticsearch.index.engine.Segment; import org.elasticsearch.index.engine.SegmentsStats; import org.elasticsearch.index.fielddata.FieldDataStats; @@ -838,7 +839,8 @@ public class IndexShardTests extends IndexShardTestCase { .build(); final IndexMetaData.Builder indexMetadata = IndexMetaData.builder(shardRouting.getIndexName()).settings(settings).primaryTerm(0, 1); final AtomicBoolean synced = new AtomicBoolean(); - final IndexShard primaryShard = newShard(shardRouting, indexMetadata.build(), null, null, () -> { synced.set(true); }); + final IndexShard primaryShard = + newShard(shardRouting, indexMetadata.build(), null, new InternalEngineFactory(), () -> synced.set(true)); // add a replica recoverShardFromStore(primaryShard); final IndexShard replicaShard = newShard(shardId, false); @@ -1885,8 +1887,13 @@ public class IndexShardTests extends IndexShardTestCase { }; closeShards(shard); IndexShard newShard = newShard( - ShardRoutingHelper.initWithSameId(shard.routingEntry(), RecoverySource.StoreRecoverySource.EXISTING_STORE_INSTANCE), - shard.shardPath(), shard.indexSettings().getIndexMetaData(), wrapper, null, () -> {}, EMPTY_EVENT_LISTENER); + ShardRoutingHelper.initWithSameId(shard.routingEntry(), RecoverySource.StoreRecoverySource.EXISTING_STORE_INSTANCE), + shard.shardPath(), + shard.indexSettings().getIndexMetaData(), + wrapper, + new InternalEngineFactory(), + () -> {}, + EMPTY_EVENT_LISTENER); recoverShardFromStore(newShard); @@ -2032,8 +2039,13 @@ public class IndexShardTests extends IndexShardTestCase { closeShards(shard); IndexShard newShard = newShard( - ShardRoutingHelper.initWithSameId(shard.routingEntry(), RecoverySource.StoreRecoverySource.EXISTING_STORE_INSTANCE), - shard.shardPath(), shard.indexSettings().getIndexMetaData(), wrapper, null, () -> {}, EMPTY_EVENT_LISTENER); + ShardRoutingHelper.initWithSameId(shard.routingEntry(), RecoverySource.StoreRecoverySource.EXISTING_STORE_INSTANCE), + shard.shardPath(), + shard.indexSettings().getIndexMetaData(), + wrapper, + new InternalEngineFactory(), + () -> {}, + EMPTY_EVENT_LISTENER); recoverShardFromStore(newShard); @@ -3016,7 +3028,7 @@ public class IndexShardTests extends IndexShardTestCase { ShardPath shardPath = new ShardPath(false, nodePath.resolve(shardId), nodePath.resolve(shardId), shardId); AtomicBoolean markedInactive = new AtomicBoolean(); AtomicReference primaryRef = new AtomicReference<>(); - IndexShard primary = newShard(shardRouting, shardPath, metaData, null, null, () -> { + IndexShard primary = newShard(shardRouting, shardPath, metaData, null, new InternalEngineFactory(), () -> { }, new IndexEventListener() { @Override public void onShardInactive(IndexShard indexShard) { diff --git a/server/src/test/java/org/elasticsearch/indices/IndicesServiceTests.java b/server/src/test/java/org/elasticsearch/indices/IndicesServiceTests.java index 46d7311a90e..35416c617fd 100644 --- a/server/src/test/java/org/elasticsearch/indices/IndicesServiceTests.java +++ b/server/src/test/java/org/elasticsearch/indices/IndicesServiceTests.java @@ -31,6 +31,7 @@ import org.elasticsearch.cluster.metadata.MetaData; import org.elasticsearch.cluster.service.ClusterService; import org.elasticsearch.common.UUIDs; import org.elasticsearch.common.io.FileSystemUtils; +import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.env.NodeEnvironment; @@ -42,6 +43,11 @@ import org.elasticsearch.index.Index; import org.elasticsearch.index.IndexModule; import org.elasticsearch.index.IndexService; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.engine.Engine; +import org.elasticsearch.index.engine.EngineConfig; +import org.elasticsearch.index.engine.EngineFactory; +import org.elasticsearch.index.engine.InternalEngine; +import org.elasticsearch.index.engine.InternalEngineFactory; import org.elasticsearch.index.mapper.KeywordFieldMapper; import org.elasticsearch.index.mapper.Mapper; import org.elasticsearch.index.mapper.MapperService; @@ -51,10 +57,12 @@ import org.elasticsearch.index.shard.IndexShardState; import org.elasticsearch.index.shard.ShardId; import org.elasticsearch.index.shard.ShardPath; import org.elasticsearch.indices.IndicesService.ShardDeletionCheckResult; +import org.elasticsearch.plugins.EnginePlugin; import org.elasticsearch.plugins.MapperPlugin; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.test.ESSingleNodeTestCase; import org.elasticsearch.test.IndexSettingsModule; +import org.elasticsearch.test.hamcrest.RegexMatcher; import java.io.IOException; import java.util.ArrayList; @@ -63,14 +71,18 @@ import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import java.util.stream.Stream; import static org.elasticsearch.action.support.WriteRequest.RefreshPolicy.IMMEDIATE; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertHitCount; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.hasToString; import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.not; import static org.mockito.Mockito.mock; @@ -88,9 +100,70 @@ public class IndicesServiceTests extends ESSingleNodeTestCase { @Override protected Collection> getPlugins() { - ArrayList> plugins = new ArrayList<>(super.getPlugins()); - plugins.add(TestPlugin.class); - return plugins; + return Stream.concat( + super.getPlugins().stream(), + Stream.of(TestPlugin.class, FooEnginePlugin.class, BarEnginePlugin.class)) + .collect(Collectors.toList()); + } + + public static class FooEnginePlugin extends Plugin implements EnginePlugin { + + static class FooEngineFactory implements EngineFactory { + + @Override + public Engine newReadWriteEngine(final EngineConfig config) { + return new InternalEngine(config); + } + + } + + private static final Setting FOO_INDEX_SETTING = + Setting.boolSetting("index.foo_index", false, Setting.Property.IndexScope); + + @Override + public List> getSettings() { + return Collections.singletonList(FOO_INDEX_SETTING); + } + + @Override + public Optional getEngineFactory(final IndexSettings indexSettings) { + if (FOO_INDEX_SETTING.get(indexSettings.getSettings())) { + return Optional.of(new FooEngineFactory()); + } else { + return Optional.empty(); + } + } + + } + + public static class BarEnginePlugin extends Plugin implements EnginePlugin { + + static class BarEngineFactory implements EngineFactory { + + @Override + public Engine newReadWriteEngine(final EngineConfig config) { + return new InternalEngine(config); + } + + } + + private static final Setting BAR_INDEX_SETTING = + Setting.boolSetting("index.bar_index", false, Setting.Property.IndexScope); + + @Override + public List> getSettings() { + return Collections.singletonList(BAR_INDEX_SETTING); + } + + @Override + public Optional getEngineFactory(final IndexSettings indexSettings) { + if (BAR_INDEX_SETTING.get(indexSettings.getSettings())) { + return Optional.of(new BarEngineFactory()); + } else { + return Optional.empty(); + } + } + } public static class TestPlugin extends Plugin implements MapperPlugin { @@ -438,4 +511,56 @@ public class IndicesServiceTests extends ESSingleNodeTestCase { assertTrue(indicesService.isMetaDataField(builtIn)); } } + + public void testGetEngineFactory() throws IOException { + final IndicesService indicesService = getIndicesService(); + + final Boolean[] values = new Boolean[] { true, false, null }; + for (final Boolean value : values) { + final String indexName = "foo-" + value; + final Index index = new Index(indexName, UUIDs.randomBase64UUID()); + final Settings.Builder builder = Settings.builder() + .put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT) + .put(IndexMetaData.SETTING_INDEX_UUID, index.getUUID()); + if (value != null) { + builder.put(FooEnginePlugin.FOO_INDEX_SETTING.getKey(), value); + } + + final IndexMetaData indexMetaData = new IndexMetaData.Builder(index.getName()) + .settings(builder.build()) + .numberOfShards(1) + .numberOfReplicas(0) + .build(); + final IndexService indexService = indicesService.createIndex(indexMetaData, Collections.emptyList()); + if (value != null && value) { + assertThat(indexService.getEngineFactory(), instanceOf(FooEnginePlugin.FooEngineFactory.class)); + } else { + assertThat(indexService.getEngineFactory(), instanceOf(InternalEngineFactory.class)); + } + } + } + + public void testConflictingEngineFactories() throws IOException { + final String indexName = "foobar"; + final Index index = new Index(indexName, UUIDs.randomBase64UUID()); + final Settings settings = Settings.builder() + .put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT) + .put(IndexMetaData.SETTING_INDEX_UUID, index.getUUID()) + .put(FooEnginePlugin.FOO_INDEX_SETTING.getKey(), true) + .put(BarEnginePlugin.BAR_INDEX_SETTING.getKey(), true) + .build(); + final IndexMetaData indexMetaData = new IndexMetaData.Builder(index.getName()) + .settings(settings) + .numberOfShards(1) + .numberOfReplicas(0) + .build(); + + final IndicesService indicesService = getIndicesService(); + final IllegalStateException e = + expectThrows(IllegalStateException.class, () -> indicesService.createIndex(indexMetaData, Collections.emptyList())); + final String pattern = + ".*multiple engine factories provided for \\[foobar/.*\\]: \\[.*FooEngineFactory\\],\\[.*BarEngineFactory\\].*"; + assertThat(e, hasToString(new RegexMatcher(pattern))); + } + } diff --git a/server/src/test/java/org/elasticsearch/repositories/blobstore/BlobStoreRepositoryRestoreTests.java b/server/src/test/java/org/elasticsearch/repositories/blobstore/BlobStoreRepositoryRestoreTests.java index 69ea552835b..7a1d3a89420 100644 --- a/server/src/test/java/org/elasticsearch/repositories/blobstore/BlobStoreRepositoryRestoreTests.java +++ b/server/src/test/java/org/elasticsearch/repositories/blobstore/BlobStoreRepositoryRestoreTests.java @@ -29,6 +29,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.core.internal.io.IOUtils; import org.elasticsearch.env.Environment; import org.elasticsearch.env.TestEnvironment; +import org.elasticsearch.index.engine.InternalEngineFactory; import org.elasticsearch.index.shard.IndexShard; import org.elasticsearch.index.shard.IndexShardState; import org.elasticsearch.index.shard.IndexShardTestCase; @@ -99,8 +100,14 @@ public class BlobStoreRepositoryRestoreTests extends IndexShardTestCase { // build a new shard using the same store directory as the closed shard ShardRouting shardRouting = ShardRoutingHelper.initWithSameId(shard.routingEntry(), EXISTING_STORE_INSTANCE); - shard = newShard(shardRouting, shard.shardPath(), shard.indexSettings().getIndexMetaData(), null, null, () -> {}, - EMPTY_EVENT_LISTENER); + shard = newShard( + shardRouting, + shard.shardPath(), + shard.indexSettings().getIndexMetaData(), + null, + new InternalEngineFactory(), + () -> {}, + EMPTY_EVENT_LISTENER); // restore the shard recoverShardFromSnapshot(shard, snapshot, repository); diff --git a/test/framework/src/main/java/org/elasticsearch/index/MockEngineFactoryPlugin.java b/test/framework/src/main/java/org/elasticsearch/index/MockEngineFactoryPlugin.java index c6065f7e583..be00d9f5ada 100644 --- a/test/framework/src/main/java/org/elasticsearch/index/MockEngineFactoryPlugin.java +++ b/test/framework/src/main/java/org/elasticsearch/index/MockEngineFactoryPlugin.java @@ -20,25 +20,23 @@ package org.elasticsearch.index; import org.apache.lucene.index.AssertingDirectoryReader; import org.apache.lucene.index.FilterDirectoryReader; -import org.elasticsearch.common.inject.AbstractModule; -import org.elasticsearch.common.inject.Module; import org.elasticsearch.common.settings.Setting; -import org.elasticsearch.common.settings.SettingsModule; +import org.elasticsearch.index.engine.EngineFactory; +import org.elasticsearch.plugins.EnginePlugin; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.test.engine.MockEngineFactory; import org.elasticsearch.test.engine.MockEngineSupport; import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; import java.util.List; +import java.util.Optional; /** * A plugin to use {@link MockEngineFactory}. * * Subclasses may override the reader wrapper used. */ -public class MockEngineFactoryPlugin extends Plugin { +public class MockEngineFactoryPlugin extends Plugin implements EnginePlugin { @Override public List> getSettings() { @@ -46,8 +44,8 @@ public class MockEngineFactoryPlugin extends Plugin { } @Override - public void onIndexModule(IndexModule module) { - module.engineFactory.set(new MockEngineFactory(getReaderWrapperClass())); + public Optional getEngineFactory(final IndexSettings indexSettings) { + return Optional.of(new MockEngineFactory(getReaderWrapperClass())); } protected Class getReaderWrapperClass() { diff --git a/test/framework/src/main/java/org/elasticsearch/index/shard/IndexShardTestCase.java b/test/framework/src/main/java/org/elasticsearch/index/shard/IndexShardTestCase.java index 541649e0d4b..655112a0646 100644 --- a/test/framework/src/main/java/org/elasticsearch/index/shard/IndexShardTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/index/shard/IndexShardTestCase.java @@ -56,6 +56,7 @@ import org.elasticsearch.index.cache.query.DisabledQueryCache; import org.elasticsearch.index.engine.Engine; import org.elasticsearch.index.engine.EngineFactory; import org.elasticsearch.index.engine.EngineTestCase; +import org.elasticsearch.index.engine.InternalEngineFactory; import org.elasticsearch.index.mapper.IdFieldMapper; import org.elasticsearch.index.mapper.MapperService; import org.elasticsearch.index.mapper.SourceToParse; @@ -227,7 +228,7 @@ public abstract class IndexShardTestCase extends ESTestCase { @Nullable IndexSearcherWrapper searcherWrapper, Runnable globalCheckpointSyncer) throws IOException { ShardRouting shardRouting = TestShardRouting.newShardRouting(shardId, nodeId, primary, ShardRoutingState.INITIALIZING, primary ? RecoverySource.StoreRecoverySource.EMPTY_STORE_INSTANCE : RecoverySource.PeerRecoverySource.INSTANCE); - return newShard(shardRouting, indexMetaData, searcherWrapper, null, globalCheckpointSyncer); + return newShard(shardRouting, indexMetaData, searcherWrapper, new InternalEngineFactory(), globalCheckpointSyncer); } @@ -241,7 +242,7 @@ public abstract class IndexShardTestCase extends ESTestCase { */ protected IndexShard newShard(ShardRouting routing, IndexMetaData indexMetaData, IndexingOperationListener... listeners) throws IOException { - return newShard(routing, indexMetaData, null, null, () -> {}, listeners); + return newShard(routing, indexMetaData, null, new InternalEngineFactory(), () -> {}, listeners); } /** diff --git a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherPluginTests.java b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherPluginTests.java index 786aae0c521..abb981053e7 100644 --- a/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherPluginTests.java +++ b/x-pack/plugin/watcher/src/test/java/org/elasticsearch/xpack/watcher/WatcherPluginTests.java @@ -10,6 +10,7 @@ import org.elasticsearch.env.TestEnvironment; import org.elasticsearch.index.IndexModule; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.analysis.AnalysisRegistry; +import org.elasticsearch.index.engine.InternalEngineFactory; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.IndexSettingsModule; import org.elasticsearch.threadpool.ExecutorBuilder; @@ -68,7 +69,7 @@ public class WatcherPluginTests extends ESTestCase { IndexSettings indexSettings = IndexSettingsModule.newIndexSettings(Watch.INDEX, settings); AnalysisRegistry registry = new AnalysisRegistry(TestEnvironment.newEnvironment(settings), emptyMap(), emptyMap(), emptyMap(), emptyMap(), emptyMap(), emptyMap(), emptyMap(), emptyMap(), emptyMap()); - IndexModule indexModule = new IndexModule(indexSettings, registry); + IndexModule indexModule = new IndexModule(indexSettings, registry, new InternalEngineFactory()); // this will trip an assertion if the watcher indexing operation listener is null (which it is) but we try to add it watcher.onIndexModule(indexModule); From e82e5cc2e86c8a32255d7d791d4062823fe1521c Mon Sep 17 00:00:00 2001 From: Paul Sanwald Date: Thu, 7 Jun 2018 14:02:23 -0700 Subject: [PATCH 32/62] high level REST api: cancel task (#30745) * Initial commit of rest high level exposure of cancel task * fix javadocs * address some code review comments * update branch to use tasks namespace instead of cluster * High-level client: list tasks failure to not lose nodeId This commit reworks testing for `ListTasksResponse` so that random fields insertion can be tested and xcontent equivalence can be checked too. Proper exclusions need to be configured, and failures need to be tested separately. This helped finding a little problem, whenever there is a node failure returned, the nodeId was lost as it was never printed out as part of the exception toXContent. * added comment * merge from master * re-work CancelTasksResponseTests to separate XContent failure cases from non-failure cases * remove duplication of logic in parser creation * code review changes * refactor TasksClient to support RequestOptions * add tests for parent task id * address final PR review comments, mostly formatting and such --- .../client/RequestConverters.java | 19 +++ .../org/elasticsearch/client/TasksClient.java | 43 +++++++ .../client/RequestConvertersTests.java | 19 +++ .../org/elasticsearch/client/TasksIT.java | 25 ++++ .../ClusterClientDocumentationIT.java | 1 + .../TasksClientDocumentationIT.java | 72 +++++++++++ .../high-level/supported-apis.asciidoc | 2 + .../high-level/tasks/cancel_tasks.asciidoc | 82 +++++++++++++ .../tasks/cancel/CancelTasksResponse.java | 29 ++++- .../node/tasks/list/ListTasksResponse.java | 27 ++-- .../tasks/CancelTasksResponseTests.java | 116 ++++++++++++++++++ .../tasks/ListTasksResponseTests.java | 26 ++-- 12 files changed, 442 insertions(+), 19 deletions(-) create mode 100644 docs/java-rest/high-level/tasks/cancel_tasks.asciidoc create mode 100644 server/src/test/java/org/elasticsearch/tasks/CancelTasksResponseTests.java diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/RequestConverters.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/RequestConverters.java index b061289888c..96fb7e59de3 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/RequestConverters.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/RequestConverters.java @@ -29,6 +29,7 @@ import org.apache.http.entity.ByteArrayEntity; import org.apache.http.entity.ContentType; import org.apache.lucene.util.BytesRef; import org.elasticsearch.action.DocWriteRequest; +import org.elasticsearch.action.admin.cluster.node.tasks.cancel.CancelTasksRequest; import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksRequest; import org.elasticsearch.action.admin.cluster.repositories.delete.DeleteRepositoryRequest; import org.elasticsearch.action.admin.cluster.repositories.get.GetRepositoriesRequest; @@ -108,6 +109,17 @@ final class RequestConverters { // Contains only status utility methods } + static Request cancelTasks(CancelTasksRequest cancelTasksRequest) { + Request request = new Request(HttpPost.METHOD_NAME, "/_tasks/_cancel"); + Params params = new Params(request); + params.withTimeout(cancelTasksRequest.getTimeout()) + .withTaskId(cancelTasksRequest.getTaskId()) + .withNodes(cancelTasksRequest.getNodes()) + .withParentTaskId(cancelTasksRequest.getParentTaskId()) + .withActions(cancelTasksRequest.getActions()); + return request; + } + static Request delete(DeleteRequest deleteRequest) { String endpoint = endpoint(deleteRequest.index(), deleteRequest.type(), deleteRequest.id()); Request request = new Request(HttpDelete.METHOD_NAME, endpoint); @@ -1070,6 +1082,13 @@ final class RequestConverters { return this; } + Params withTaskId(TaskId taskId) { + if (taskId != null && taskId.isSet()) { + return putParam("task_id", taskId.toString()); + } + return this; + } + Params withParentTaskId(TaskId parentTaskId) { if (parentTaskId != null && parentTaskId.isSet()) { return putParam("parent_task_id", parentTaskId.toString()); diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/TasksClient.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/TasksClient.java index f4a76e78b94..f8f03d7f7d2 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/TasksClient.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/TasksClient.java @@ -20,6 +20,8 @@ package org.elasticsearch.client; import org.elasticsearch.action.ActionListener; +import org.elasticsearch.action.admin.cluster.node.tasks.cancel.CancelTasksRequest; +import org.elasticsearch.action.admin.cluster.node.tasks.cancel.CancelTasksResponse; import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksRequest; import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksResponse; @@ -65,4 +67,45 @@ public final class TasksClient { restHighLevelClient.performRequestAsyncAndParseEntity(request, RequestConverters::listTasks, options, ListTasksResponse::fromXContent, listener, emptySet()); } + + /** + * Cancel one or more cluster tasks using the Task Management API. + * + * See + * Task Management API on elastic.co + * @param cancelTasksRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @return the response + * @throws IOException in case there is a problem sending the request or parsing back the response + * + */ + public CancelTasksResponse cancel(CancelTasksRequest cancelTasksRequest, RequestOptions options ) throws IOException { + return restHighLevelClient.performRequestAndParseEntity( + cancelTasksRequest, + RequestConverters::cancelTasks, + options, + parser -> CancelTasksResponse.fromXContent(parser), + emptySet() + ); + } + + /** + * Asynchronously cancel one or more cluster tasks using the Task Management API. + * + * See + * Task Management API on elastic.co + * @param cancelTasksRequest the request + * @param options the request options (e.g. headers), use {@link RequestOptions#DEFAULT} if nothing needs to be customized + * @param listener the listener to be notified upon request completion + */ + public void cancelAsync(CancelTasksRequest cancelTasksRequest, RequestOptions options, ActionListener listener) { + restHighLevelClient.performRequestAsyncAndParseEntity( + cancelTasksRequest, + RequestConverters::cancelTasks, + options, + parser -> CancelTasksResponse.fromXContent(parser), + listener, + emptySet() + ); + } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/RequestConvertersTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/RequestConvertersTests.java index ee372e255e7..a0312118a8b 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/RequestConvertersTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/RequestConvertersTests.java @@ -29,6 +29,8 @@ import org.apache.http.entity.ByteArrayEntity; import org.apache.http.util.EntityUtils; import org.elasticsearch.action.ActionRequestValidationException; import org.elasticsearch.action.DocWriteRequest; +import org.elasticsearch.action.admin.cluster.node.tasks.cancel.CancelTasksRequest; +import org.elasticsearch.action.admin.cluster.node.tasks.cancel.CancelTasksResponse; import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksRequest; import org.elasticsearch.action.admin.cluster.repositories.delete.DeleteRepositoryRequest; import org.elasticsearch.action.admin.cluster.repositories.get.GetRepositoriesRequest; @@ -1587,6 +1589,23 @@ public class RequestConvertersTests extends ESTestCase { assertEquals(expectedParams, request.getParameters()); } + public void testCancelTasks() { + CancelTasksRequest request = new CancelTasksRequest(); + Map expectedParams = new HashMap<>(); + TaskId taskId = new TaskId(randomAlphaOfLength(5), randomNonNegativeLong()); + TaskId parentTaskId = new TaskId(randomAlphaOfLength(5), randomNonNegativeLong()); + request.setTaskId(taskId); + request.setParentTaskId(parentTaskId); + expectedParams.put("task_id", taskId.toString()); + expectedParams.put("parent_task_id", parentTaskId.toString()); + Request httpRequest = RequestConverters.cancelTasks(request); + assertThat(httpRequest, notNullValue()); + assertThat(httpRequest.getMethod(), equalTo(HttpPost.METHOD_NAME)); + assertThat(httpRequest.getEntity(), nullValue()); + assertThat(httpRequest.getEndpoint(), equalTo("/_tasks/_cancel")); + assertThat(httpRequest.getParameters(), equalTo(expectedParams)); + } + public void testListTasks() { { ListTasksRequest request = new ListTasksRequest(); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/TasksIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/TasksIT.java index fc7d70a36e1..baa97cfa5b4 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/TasksIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/TasksIT.java @@ -19,9 +19,12 @@ package org.elasticsearch.client; +import org.elasticsearch.action.admin.cluster.node.tasks.cancel.CancelTasksRequest; +import org.elasticsearch.action.admin.cluster.node.tasks.cancel.CancelTasksResponse; import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksRequest; import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksResponse; import org.elasticsearch.action.admin.cluster.node.tasks.list.TaskGroup; +import org.elasticsearch.tasks.TaskId; import org.elasticsearch.tasks.TaskInfo; import java.io.IOException; @@ -58,4 +61,26 @@ public class TasksIT extends ESRestHighLevelClientTestCase { assertTrue("List tasks were not found", listTasksFound); } + public void testCancelTasks() throws IOException { + ListTasksRequest listRequest = new ListTasksRequest(); + ListTasksResponse listResponse = execute( + listRequest, + highLevelClient().tasks()::list, + highLevelClient().tasks()::listAsync + ); + // in this case, probably no task will actually be cancelled. + // this is ok, that case is covered in TasksIT.testTasksCancellation + TaskInfo firstTask = listResponse.getTasks().get(0); + String node = listResponse.getPerNodeTasks().keySet().iterator().next(); + + CancelTasksRequest cancelTasksRequest = new CancelTasksRequest(); + cancelTasksRequest.setTaskId(new TaskId(node, firstTask.getId())); + cancelTasksRequest.setReason("testreason"); + CancelTasksResponse response = execute(cancelTasksRequest, + highLevelClient().tasks()::cancel, + highLevelClient().tasks()::cancelAsync); + // Since the task may or may not have been cancelled, assert that we received a response only + // The actual testing of task cancellation is covered by TasksIT.testTasksCancellation + assertThat(response, notNullValue()); + } } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/ClusterClientDocumentationIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/ClusterClientDocumentationIT.java index e8dd4025ba9..75902cf02ba 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/ClusterClientDocumentationIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/ClusterClientDocumentationIT.java @@ -178,4 +178,5 @@ public class ClusterClientDocumentationIT extends ESRestHighLevelClientTestCase assertTrue(latch.await(30L, TimeUnit.SECONDS)); } } + } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/TasksClientDocumentationIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/TasksClientDocumentationIT.java index 0d62a2d29a0..8a45195757c 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/TasksClientDocumentationIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/TasksClientDocumentationIT.java @@ -23,6 +23,8 @@ import org.elasticsearch.ElasticsearchException; import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.LatchedActionListener; import org.elasticsearch.action.TaskOperationFailure; +import org.elasticsearch.action.admin.cluster.node.tasks.cancel.CancelTasksRequest; +import org.elasticsearch.action.admin.cluster.node.tasks.cancel.CancelTasksResponse; import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksRequest; import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksResponse; import org.elasticsearch.action.admin.cluster.node.tasks.list.TaskGroup; @@ -146,4 +148,74 @@ public class TasksClientDocumentationIT extends ESRestHighLevelClientTestCase { assertTrue(latch.await(30L, TimeUnit.SECONDS)); } } + + public void testCancelTasks() throws IOException { + RestHighLevelClient client = highLevelClient(); + { + // tag::cancel-tasks-request + CancelTasksRequest request = new CancelTasksRequest(); + // end::cancel-tasks-request + + // tag::cancel-tasks-request-filter + request.setTaskId(new TaskId("nodeId1", 42)); //<1> + request.setActions("cluster:*"); // <2> + request.setNodes("nodeId1", "nodeId2"); // <3> + // end::cancel-tasks-request-filter + + } + + CancelTasksRequest request = new CancelTasksRequest(); + request.setTaskId(TaskId.EMPTY_TASK_ID); + + // tag::cancel-tasks-execute + CancelTasksResponse response = client.tasks().cancel(request, RequestOptions.DEFAULT); + // end::cancel-tasks-execute + + assertThat(response, notNullValue()); + + // tag::cancel-tasks-response-tasks + List tasks = response.getTasks(); // <1> + // end::cancel-tasks-response-tasks + + + // tag::cancel-tasks-response-failures + List nodeFailures = response.getNodeFailures(); // <1> + List taskFailures = response.getTaskFailures(); // <2> + // end::-tasks-response-failures + + assertThat(response.getNodeFailures(), equalTo(emptyList())); + assertThat(response.getTaskFailures(), equalTo(emptyList())); + } + + public void testAsyncCancelTasks() throws InterruptedException { + + RestHighLevelClient client = highLevelClient(); + { + CancelTasksRequest request = new CancelTasksRequest(); + + // tag::cancel-tasks-execute-listener + ActionListener listener = + new ActionListener() { + @Override + public void onResponse(CancelTasksResponse response) { + // <1> + } + @Override + public void onFailure(Exception e) { + // <2> + } + }; + // end::cancel-tasks-execute-listener + + // Replace the empty listener by a blocking listener in test + final CountDownLatch latch = new CountDownLatch(1); + listener = new LatchedActionListener<>(listener, latch); + + // tag::cancel-tasks-execute-async + client.tasks().cancelAsync(request, RequestOptions.DEFAULT, listener); // <1> + // end::cancel-tasks-execute-async + + assertTrue(latch.await(30L, TimeUnit.SECONDS)); + } + } } diff --git a/docs/java-rest/high-level/supported-apis.asciidoc b/docs/java-rest/high-level/supported-apis.asciidoc index 34149bee528..783cc773e96 100644 --- a/docs/java-rest/high-level/supported-apis.asciidoc +++ b/docs/java-rest/high-level/supported-apis.asciidoc @@ -140,5 +140,7 @@ include::snapshot/verify_repository.asciidoc[] The Java High Level REST Client supports the following Tasks APIs: * <> +* <> include::tasks/list_tasks.asciidoc[] +include::tasks/cancel_tasks.asciidoc[] diff --git a/docs/java-rest/high-level/tasks/cancel_tasks.asciidoc b/docs/java-rest/high-level/tasks/cancel_tasks.asciidoc new file mode 100644 index 00000000000..089f87c00a2 --- /dev/null +++ b/docs/java-rest/high-level/tasks/cancel_tasks.asciidoc @@ -0,0 +1,82 @@ +[[java-rest-high-cluster-cancel-tasks]] +=== Cancel Tasks API + +The Cancel Tasks API allows cancellation of a currently running task. + +==== Cancel Tasks Request + +A `CancelTasksRequest`: + +["source","java",subs="attributes,callouts,macros"] +-------------------------------------------------- +include-tagged::{doc-tests}/TasksClientDocumentationIT.java[cancel-tasks-request] +-------------------------------------------------- +There are no required parameters. The task cancellation command supports the same +task selection parameters as the list tasks command. + +==== Parameters + +["source","java",subs="attributes,callouts,macros"] +-------------------------------------------------- +include-tagged::{doc-tests}/TasksClientDocumentationIT.java[list-tasks-request-filter] +-------------------------------------------------- +<1> Cancel a task +<2> Cancel only cluster-related tasks +<3> Cancel all tasks running on nodes nodeId1 and nodeId2 + +==== Synchronous Execution + +["source","java",subs="attributes,callouts,macros"] +-------------------------------------------------- +include-tagged::{doc-tests}/TasksClientDocumentationIT.java[list-tasks-execute] +-------------------------------------------------- + +==== Asynchronous Execution + +The asynchronous execution requires `CancelTasksRequest` instance and an +`ActionListener` instance to be passed to the asynchronous method: + +["source","java",subs="attributes,callouts,macros"] +-------------------------------------------------- +include-tagged::{doc-tests}/TasksClientDocumentationIT.java[cancel-tasks-execute-async] +-------------------------------------------------- +<1> The `CancelTasksRequest` to execute and the `ActionListener` to use +when the execution completes + +The asynchronous method does not block and returns immediately. Once it is +completed the `ActionListener` is called back using the `onResponse` method +if the execution successfully completed or using the `onFailure` method if +it failed. + +A typical listener for `CancelTasksResponse` looks like: + +["source","java",subs="attributes,callouts,macros"] +-------------------------------------------------- +include-tagged::{doc-tests}/TasksClientDocumentationIT.java[cancel-tasks-execute-listener] +-------------------------------------------------- +<1> Called when the execution is successfully completed. The response is +provided as an argument +<2> Called in case of a failure. The raised exception is provided as an argument + +==== Cancel Tasks Response + +["source","java",subs="attributes,callouts,macros"] +-------------------------------------------------- +include-tagged::{doc-tests}/TasksClientDocumentationIT.java[list-tasks-response-tasks] +-------------------------------------------------- +<1> List of cancelled tasks + +["source","java",subs="attributes,callouts,macros"] +-------------------------------------------------- +include-tagged::{doc-tests}/TasksClientDocumentationIT.java[list-tasks-response-calc] +-------------------------------------------------- +<1> List of cancelled tasks grouped by a node +<2> List of cancelled tasks grouped by a parent task + +["source","java",subs="attributes,callouts,macros"] +-------------------------------------------------- +include-tagged::{doc-tests}/TasksClientDocumentationIT.java[list-tasks-response-failures] +-------------------------------------------------- +<1> List of node failures +<2> List of task cancellation failures + diff --git a/server/src/main/java/org/elasticsearch/action/admin/cluster/node/tasks/cancel/CancelTasksResponse.java b/server/src/main/java/org/elasticsearch/action/admin/cluster/node/tasks/cancel/CancelTasksResponse.java index 5e7c2c0f97d..fbc81d29955 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/cluster/node/tasks/cancel/CancelTasksResponse.java +++ b/server/src/main/java/org/elasticsearch/action/admin/cluster/node/tasks/cancel/CancelTasksResponse.java @@ -19,23 +19,48 @@ package org.elasticsearch.action.admin.cluster.node.tasks.cancel; -import org.elasticsearch.action.FailedNodeException; +import org.elasticsearch.ElasticsearchException; import org.elasticsearch.action.TaskOperationFailure; import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksResponse; +import org.elasticsearch.common.ParseField; +import org.elasticsearch.common.Strings; +import org.elasticsearch.common.xcontent.ConstructingObjectParser; +import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.tasks.TaskInfo; +import java.io.IOException; import java.util.List; +import static org.elasticsearch.common.xcontent.ConstructingObjectParser.optionalConstructorArg; + /** * Returns the list of tasks that were cancelled */ public class CancelTasksResponse extends ListTasksResponse { + private static final ConstructingObjectParser PARSER = + setupParser("cancel_tasks_response", CancelTasksResponse::new); + public CancelTasksResponse() { } - public CancelTasksResponse(List tasks, List taskFailures, List + public CancelTasksResponse(List tasks, List taskFailures, List nodeFailures) { super(tasks, taskFailures, nodeFailures); } + + @Override + public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { + return super.toXContent(builder, params); + } + + public static CancelTasksResponse fromXContent(XContentParser parser) { + return PARSER.apply(parser, null); + } + + @Override + public String toString() { + return Strings.toString(this, true, true); + } } diff --git a/server/src/main/java/org/elasticsearch/action/admin/cluster/node/tasks/list/ListTasksResponse.java b/server/src/main/java/org/elasticsearch/action/admin/cluster/node/tasks/list/ListTasksResponse.java index 53d80853328..cb1fcb0b091 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/cluster/node/tasks/list/ListTasksResponse.java +++ b/server/src/main/java/org/elasticsearch/action/admin/cluster/node/tasks/list/ListTasksResponse.java @@ -26,6 +26,7 @@ import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.cluster.node.DiscoveryNodes; import org.elasticsearch.common.ParseField; import org.elasticsearch.common.Strings; +import org.elasticsearch.common.TriFunction; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.ConstructingObjectParser; @@ -70,8 +71,14 @@ public class ListTasksResponse extends BaseTasksResponse implements ToXContentOb this.tasks = tasks == null ? Collections.emptyList() : Collections.unmodifiableList(new ArrayList<>(tasks)); } - private static final ConstructingObjectParser PARSER = - new ConstructingObjectParser<>("list_tasks_response", true, + + protected static ConstructingObjectParser setupParser(String name, + TriFunction< + List, + List, + List, + T> ctor) { + ConstructingObjectParser parser = new ConstructingObjectParser<>(name, true, constructingObjects -> { int i = 0; @SuppressWarnings("unchecked") @@ -80,16 +87,18 @@ public class ListTasksResponse extends BaseTasksResponse implements ToXContentOb List tasksFailures = (List) constructingObjects[i++]; @SuppressWarnings("unchecked") List nodeFailures = (List) constructingObjects[i]; - return new ListTasksResponse(tasks, tasksFailures, nodeFailures); + return ctor.apply(tasks,tasksFailures, nodeFailures); }); - - static { - PARSER.declareObjectArray(constructorArg(), TaskInfo.PARSER, new ParseField(TASKS)); - PARSER.declareObjectArray(optionalConstructorArg(), (p, c) -> TaskOperationFailure.fromXContent(p), new ParseField(TASK_FAILURES)); - PARSER.declareObjectArray(optionalConstructorArg(), - (parser, c) -> ElasticsearchException.fromXContent(parser), new ParseField(NODE_FAILURES)); + parser.declareObjectArray(optionalConstructorArg(), TaskInfo.PARSER, new ParseField(TASKS)); + parser.declareObjectArray(optionalConstructorArg(), (p, c) -> TaskOperationFailure.fromXContent(p), new ParseField(TASK_FAILURES)); + parser.declareObjectArray(optionalConstructorArg(), + (p, c) -> ElasticsearchException.fromXContent(p), new ParseField(NODE_FAILURES)); + return parser; } + private static final ConstructingObjectParser PARSER = + setupParser("list_tasks_response", ListTasksResponse::new); + @Override public void readFrom(StreamInput in) throws IOException { super.readFrom(in); diff --git a/server/src/test/java/org/elasticsearch/tasks/CancelTasksResponseTests.java b/server/src/test/java/org/elasticsearch/tasks/CancelTasksResponseTests.java new file mode 100644 index 00000000000..3233edefb30 --- /dev/null +++ b/server/src/test/java/org/elasticsearch/tasks/CancelTasksResponseTests.java @@ -0,0 +1,116 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.tasks; + +import org.elasticsearch.action.FailedNodeException; +import org.elasticsearch.action.TaskOperationFailure; +import org.elasticsearch.action.admin.cluster.node.tasks.cancel.CancelTasksResponse; +import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksResponse; +import org.elasticsearch.common.Strings; +import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.test.AbstractXContentTestCase; + +import java.io.IOException; +import java.net.ConnectException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.function.Predicate; +import java.util.function.Supplier; + +import static org.hamcrest.Matchers.equalTo; + +public class CancelTasksResponseTests extends AbstractXContentTestCase { + + @Override + protected CancelTasksResponse createTestInstance() { + List randomTasks = randomTasks(); + return new CancelTasksResponse(randomTasks, Collections.emptyList(), Collections.emptyList()); + } + + private static List randomTasks() { + List randomTasks = new ArrayList<>(); + for (int i = 0; i < randomInt(10); i++) { + randomTasks.add(TaskInfoTests.randomTaskInfo()); + } + return randomTasks; + } + + @Override + protected Predicate getRandomFieldsExcludeFilter() { + //status and headers hold arbitrary content, we can't inject random fields in them + return field -> field.endsWith("status") || field.endsWith("headers"); + } + + @Override + protected void assertEqualInstances(CancelTasksResponse expectedInstance, CancelTasksResponse newInstance) { + assertNotSame(expectedInstance, newInstance); + assertThat(newInstance.getTasks(), equalTo(expectedInstance.getTasks())); + ListTasksResponseTests.assertOnNodeFailures(newInstance.getNodeFailures(), expectedInstance.getNodeFailures()); + ListTasksResponseTests.assertOnTaskFailures(newInstance.getTaskFailures(), expectedInstance.getTaskFailures()); + } + + @Override + protected CancelTasksResponse doParseInstance(XContentParser parser) { + return CancelTasksResponse.fromXContent(parser); + } + + @Override + protected boolean supportsUnknownFields() { + return true; + } + + @Override + protected boolean assertToXContentEquivalence() { + return true; + } + + /** + * Test parsing {@link ListTasksResponse} with inner failures as they don't support asserting on xcontent equivalence, given that + * exceptions are not parsed back as the same original class. We run the usual {@link AbstractXContentTestCase#testFromXContent()} + * without failures, and this other test with failures where we disable asserting on xcontent equivalence at the end. + */ + public void testFromXContentWithFailures() throws IOException { + Supplier instanceSupplier = CancelTasksResponseTests::createTestInstanceWithFailures; + //with random fields insertion in the inner exceptions, some random stuff may be parsed back as metadata, + //but that does not bother our assertions, as we only want to test that we don't break. + boolean supportsUnknownFields = true; + //exceptions are not of the same type whenever parsed back + boolean assertToXContentEquivalence = false; + AbstractXContentTestCase.testFromXContent(NUMBER_OF_TEST_RUNS, instanceSupplier, supportsUnknownFields, Strings.EMPTY_ARRAY, + getRandomFieldsExcludeFilter(), this::createParser, this::doParseInstance, + this::assertEqualInstances, assertToXContentEquivalence); + } + + private static CancelTasksResponse createTestInstanceWithFailures() { + int numNodeFailures = randomIntBetween(0, 3); + List nodeFailures = new ArrayList<>(numNodeFailures); + for (int i = 0; i < numNodeFailures; i++) { + nodeFailures.add(new FailedNodeException(randomAlphaOfLength(5), "error message", new ConnectException())); + } + int numTaskFailures = randomIntBetween(0, 3); + List taskFailures = new ArrayList<>(numTaskFailures); + for (int i = 0; i < numTaskFailures; i++) { + taskFailures.add(new TaskOperationFailure(randomAlphaOfLength(5), randomLong(), new IllegalStateException())); + } + return new CancelTasksResponse(randomTasks(), taskFailures, nodeFailures); + } + +} diff --git a/server/src/test/java/org/elasticsearch/tasks/ListTasksResponseTests.java b/server/src/test/java/org/elasticsearch/tasks/ListTasksResponseTests.java index b280446db1c..4862278fac1 100644 --- a/server/src/test/java/org/elasticsearch/tasks/ListTasksResponseTests.java +++ b/server/src/test/java/org/elasticsearch/tasks/ListTasksResponseTests.java @@ -109,20 +109,30 @@ public class ListTasksResponseTests extends AbstractXContentTestCase nodeFailures, + List expectedFailures) { + assertThat(nodeFailures.size(), equalTo(expectedFailures.size())); + for (int i = 0; i < nodeFailures.size(); i++) { + ElasticsearchException newException = nodeFailures.get(i); + ElasticsearchException expectedException = expectedFailures.get(i); assertThat(newException.getMetadata("es.node_id").get(0), equalTo(((FailedNodeException)expectedException).nodeId())); assertThat(newException.getMessage(), equalTo("Elasticsearch exception [type=failed_node_exception, reason=error message]")); assertThat(newException.getCause(), instanceOf(ElasticsearchException.class)); ElasticsearchException cause = (ElasticsearchException) newException.getCause(); assertThat(cause.getMessage(), equalTo("Elasticsearch exception [type=connect_exception, reason=null]")); } - assertThat(newInstance.getTaskFailures().size(), equalTo(expectedInstance.getTaskFailures().size())); - for (int i = 0; i < newInstance.getTaskFailures().size(); i++) { - TaskOperationFailure newFailure = newInstance.getTaskFailures().get(i); - TaskOperationFailure expectedFailure = expectedInstance.getTaskFailures().get(i); + } + + protected static void assertOnTaskFailures(List taskFailures, + List expectedFailures) { + assertThat(taskFailures.size(), equalTo(expectedFailures.size())); + for (int i = 0; i < taskFailures.size(); i++) { + TaskOperationFailure newFailure = taskFailures.get(i); + TaskOperationFailure expectedFailure = expectedFailures.get(i); assertThat(newFailure.getNodeId(), equalTo(expectedFailure.getNodeId())); assertThat(newFailure.getTaskId(), equalTo(expectedFailure.getTaskId())); assertThat(newFailure.getStatus(), equalTo(expectedFailure.getStatus())); From d49c85d2e867778adc28b226b6d4512619d85fd5 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 7 Jun 2018 17:40:47 -0400 Subject: [PATCH 33/62] Add back dropped substitution on merge This was dropped accidentally during merge conflict resolution. This commit adds back the substitution for elasticsearch-cli. --- build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle b/build.gradle index 9d6e0541186..015db80d325 100644 --- a/build.gradle +++ b/build.gradle @@ -205,6 +205,7 @@ subprojects { "org.elasticsearch.gradle:build-tools:${version}": ':build-tools', "org.elasticsearch:rest-api-spec:${version}": ':rest-api-spec', "org.elasticsearch:elasticsearch:${version}": ':server', + "org.elasticsearch:elasticsearch-cli:${version}": ':libs:cli', "org.elasticsearch:elasticsearch-core:${version}": ':libs:core', "org.elasticsearch:elasticsearch-nio:${version}": ':libs:nio', "org.elasticsearch:elasticsearch-x-content:${version}": ':libs:x-content', From 972dcbc0ad501a60d73c60bf76dbffd92b56ed06 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Thu, 7 Jun 2018 16:44:20 -0400 Subject: [PATCH 34/62] Update ignore_unmapped serialization after backport Update the serialization version of ignore_unmapped flag after backport to 6.4 Relates #31153 --- .../elasticsearch/search/sort/GeoDistanceSortBuilder.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java b/server/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java index 712af37de5f..30f1dfb14fc 100644 --- a/server/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java +++ b/server/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java @@ -175,8 +175,7 @@ public class GeoDistanceSortBuilder extends SortBuilder nestedSort = in.readOptionalWriteable(NestedSortBuilder::new); } validation = GeoValidationMethod.readFromStream(in); - // TODO: Change to 6_4_0 after backport - if (in.getVersion().onOrAfter(Version.V_7_0_0_alpha1)) { + if (in.getVersion().onOrAfter(Version.V_6_4_0)) { ignoreUnmapped = in.readBoolean(); } } @@ -195,8 +194,7 @@ public class GeoDistanceSortBuilder extends SortBuilder out.writeOptionalWriteable(nestedSort); } validation.writeTo(out); - // TODO: Change to 6_4_0 after backport - if (out.getVersion().onOrAfter(Version.V_7_0_0_alpha1)) { + if (out.getVersion().onOrAfter(Version.V_6_4_0)) { out.writeBoolean(ignoreUnmapped); } } From d6a4c14e1bfe23aaa8c3ff67a6b57f695672b330 Mon Sep 17 00:00:00 2001 From: Jack Conradson Date: Thu, 7 Jun 2018 17:11:56 -0700 Subject: [PATCH 35/62] Painless: Restructure/Clean Up of Spec Documentation (#31013) Full restructure of the spec into new sections for operators, statements, scripts, functions, lambdas, and regexes. Split of operators into 6 sections, a table, reference, array, numeric, boolean, and general. Clean up of all operators sections. Sporadic clean up else where. --- docs/painless/painless-casting.asciidoc | 226 +- docs/painless/painless-comments.asciidoc | 3 +- docs/painless/painless-functions.asciidoc | 24 + .../painless/painless-general-syntax.asciidoc | 81 - docs/painless/painless-identifiers.asciidoc | 8 +- docs/painless/painless-keywords.asciidoc | 10 +- docs/painless/painless-lambdas.asciidoc | 15 + docs/painless/painless-lang-spec.asciidoc | 20 +- docs/painless/painless-literals.asciidoc | 13 +- .../painless-operators-array.asciidoc | 294 +++ .../painless-operators-boolean.asciidoc | 1420 +++++++++++++ .../painless-operators-general.asciidoc | 432 ++++ .../painless-operators-numeric.asciidoc | 1339 ++++++++++++ .../painless-operators-reference.asciidoc | 774 +++++++ docs/painless/painless-operators.asciidoc | 1875 +---------------- docs/painless/painless-regexes.asciidoc | 33 + docs/painless/painless-scripts.asciidoc | 6 + docs/painless/painless-statements.asciidoc | 14 + docs/painless/painless-types.asciidoc | 233 +- docs/painless/painless-variables.asciidoc | 105 +- 20 files changed, 4775 insertions(+), 2150 deletions(-) create mode 100644 docs/painless/painless-functions.asciidoc delete mode 100644 docs/painless/painless-general-syntax.asciidoc create mode 100644 docs/painless/painless-lambdas.asciidoc create mode 100644 docs/painless/painless-operators-array.asciidoc create mode 100644 docs/painless/painless-operators-boolean.asciidoc create mode 100644 docs/painless/painless-operators-general.asciidoc create mode 100644 docs/painless/painless-operators-numeric.asciidoc create mode 100644 docs/painless/painless-operators-reference.asciidoc create mode 100644 docs/painless/painless-regexes.asciidoc create mode 100644 docs/painless/painless-scripts.asciidoc create mode 100644 docs/painless/painless-statements.asciidoc diff --git a/docs/painless/painless-casting.asciidoc b/docs/painless/painless-casting.asciidoc index a3624f90831..4bcd14cbfc6 100644 --- a/docs/painless/painless-casting.asciidoc +++ b/docs/painless/painless-casting.asciidoc @@ -4,8 +4,11 @@ A cast converts the value of an original type to the equivalent value of a target type. An implicit cast infers the target type and automatically occurs during certain <>. An explicit cast specifies -the target type and forcefully occurs as its own operation. Use the *cast -operator* to specify an explicit cast. +the target type and forcefully occurs as its own operation. Use the `cast +operator '()'` to specify an explicit cast. + +Refer to the <> for a quick reference on all +allowed casts. *Errors* @@ -13,6 +16,7 @@ operator* to specify an explicit cast. * If an implicit cast is given, but an explicit cast is required. *Grammar* + [source,ANTLR4] ---- cast: '(' TYPE ')' expression @@ -31,15 +35,15 @@ cast: '(' TYPE ')' expression + <1> declare `int i`; explicit cast `long 5` to `int 5` -> `int 5`; - assign `int 5` to `i` + store `int 5` to `i` <2> declare `Map m`; allocate `HashMap` instance -> `HashMap reference`; implicit cast `HashMap reference` to `Map reference` -> `Map reference`; - assign `Map reference` to `m` + store `Map reference` to `m` <3> declare `HashMap hm`; - access `m` -> `Map reference`; + load from `m` -> `Map reference`; explicit cast `Map reference` to `HashMap reference` -> `HashMap reference`; - assign `HashMap reference` to `hm` + store `HashMap reference` to `hm` [[numeric-type-casting]] ==== Numeric Type Casting @@ -78,19 +82,19 @@ following table: ---- + <1> declare `int a`; - assign `int 1` to `a` + store `int 1` to `a` <2> declare `long b`; - access `a` -> `int 1`; + load from `a` -> `int 1`; implicit cast `int 1` to `long 1` -> `long 1`; - assign `long 1` to `b` + store `long 1` to `b` <3> declare `short c`; - access `b` -> `long 1`; + load from `b` -> `long 1`; explicit cast `long 1` to `short 1` -> `short 1`; - assign `short 1` value to `c` + store `short 1` value to `c` <4> declare `double e`; - access `a` -> `int 1`; + load from `a` -> `int 1`; explicit cast `int 1` to `double 1.0`; - assign `double 1.0` to `e`; + store `double 1.0` to `e`; (note the explicit cast is extraneous since an implicit cast is valid) + * Invalid numeric type casts resulting in errors. @@ -106,9 +110,9 @@ following table: *error* -> cannot implicit cast `double 1.0` to `int 1`; (note an explicit cast is valid) <2> declare `int b`; - assign `int 2` to `b` + store `int 2` to `b` <3> declare byte `c`; - access `b` -> `int 2`; + load from `b` -> `int 2`; *error* -> cannot implicit cast `int 2` to `byte 2`; (note an explicit cast is valid) @@ -136,21 +140,21 @@ or the target type is a descendant of the original type. ---- + <1> declare `List x`; - assign default value `null` to `x` + store default value `null` to `x` <2> declare `ArrayList y`; allocate `ArrayList` instance -> `ArrayList reference`; - assign `ArrayList reference` to `y`; -<3> access `y` -> `ArrayList reference`; + store `ArrayList reference` to `y`; +<3> load from `y` -> `ArrayList reference`; implicit cast `ArrayList reference` to `List reference` -> `List reference`; - assign `List reference` to `x`; + store `List reference` to `x`; (note `ArrayList` is a descendant of `List`) -<4> access `x` -> `List reference`; +<4> load from `x` -> `List reference`; explicit cast `List reference` to `ArrayList reference` -> `ArrayList reference`; - assign `ArrayList reference` to `y`; -<5> access `y` -> `ArrayList reference`; + store `ArrayList reference` to `y`; +<5> load from `y` -> `ArrayList reference`; explicit cast `ArrayList reference` to `List reference` -> `List reference`; - assign `List reference` to `x`; + store `List reference` to `x`; (note the explicit cast is extraneous, and an implicit cast is valid) + * Invalid reference type casts resulting in errors. @@ -165,16 +169,16 @@ or the target type is a descendant of the original type. <1> declare `List x`; allocate `ArrayList` instance -> `ArrayList reference`; implicit cast `ArrayList reference` to `List reference` -> `List reference`; - assign `List reference` to `x` + store `List reference` to `x` <2> declare `ArrayList y`; - access `x` -> `List reference`; + load from `x` -> `List reference`; *error* -> cannot implicit cast `List reference` to `ArrayList reference`; (note an explicit cast is valid since `ArrayList` is a descendant of `List`) <3> declare `ArrayList y`; - access `x` -> `List reference`; + load from `x` -> `List reference`; *error* -> cannot explicit cast `List reference` to `Map reference`; - (note no cast would be valid since neither `List` nor `Map` is a descendant - of the other) + (note no cast is valid since neither `List` nor `Map` is a descendant of the + other) [[dynamic-type-casting]] ==== Dynamic Type Casting @@ -206,24 +210,24 @@ based on the current type value the `def` type value represents. + <1> declare `def d0`; implicit cast `int 3` to `def`; - assign `int 3` to `d0` + store `int 3` to `d0` <2> allocate `ArrayList` instance -> `ArrayList reference`; implicit cast `ArrayList reference` to `def` -> `def`; - assign `def` to `d0` + store `def` to `d0` <3> declare `Object o`; allocate `HashMap` instance -> `HashMap reference`; implicit cast `HashMap reference` to `Object reference` -> `Object reference`; - assign `Object reference` to `o` + store `Object reference` to `o` <4> declare `def d1`; - access `o` -> `Object reference`; + load from `o` -> `Object reference`; implicit cast `Object reference` to `def` -> `def`; - assign `def` to `d1` + store `def` to `d1` <5> declare `int i`; - access `d1` -> `def`; + load from `d1` -> `def`; implicit cast `def` to `HashMap reference` -> HashMap reference`; call `size` on `HashMap reference` -> `int 0`; - assign `int 0` to `i`; + store `int 0` to `i`; (note `def` was implicit cast to `HashMap reference` since `HashMap` is the child-most descendant type value that the `def` type value represents) @@ -242,29 +246,29 @@ based on the current type value the `def` type value represents. + <1> declare `def d`; implicit cast `double 1.0` to `def` -> `def`; - assign `def` to `d` + store `def` to `d` <2> declare `int i`; - access `d` -> `def`; + load from `d` -> `def`; implicit cast `def` to `double 1.0` -> `double 1.0`; explicit cast `double 1.0` to `int 1` -> `int 1`; - assign `int 1` to `i`; - (note the explicit cast is necessary since a `double` value cannot be - converted to an `int` value implicitly) -<3> assign `int 1` to `d`; + store `int 1` to `i`; + (note the explicit cast is necessary since a `double` type value is not + converted to an `int` type value implicitly) +<3> store `int 1` to `d`; (note the switch in the type `d` represents from `double` to `int`) <4> declare `float i`; - access `d` -> `def`; + load from `d` -> `def`; implicit cast `def` to `int 1` -> `int 1`; implicit cast `int 1` to `float 1.0` -> `float 1.0`; - assign `float 1.0` to `f` + store `float 1.0` to `f` <5> allocate `ArrayList` instance -> `ArrayList reference`; - assign `ArrayList reference` to `d`; + store `ArrayList reference` to `d`; (note the switch in the type `d` represents from `int` to `ArrayList`) <6> declare `List l`; - access `d` -> `def`; + load from `d` -> `def`; implicit cast `def` to `ArrayList reference` -> `ArrayList reference`; implicit cast `ArrayList reference` to `List reference` -> `List reference`; - assign `List reference` to `l` + store `List reference` to `l` + * Invalid dynamic type casts resulting in errors. + @@ -277,26 +281,26 @@ based on the current type value the `def` type value represents. ---- <1> declare `def d`; implicit cast `int 1` to `def` -> `def`; - assign `def` to `d` + store `def` to `d` <2> declare `short s`; - access `d` -> `def`; + load from `d` -> `def`; implicit cast `def` to `int 1` -> `int 1`; *error* -> cannot implicit cast `int 1` to `short 1`; (note an explicit cast is valid) <3> allocate `HashMap` instance -> `HashMap reference`; implicit cast `HashMap reference` to `def` -> `def`; - assign `def` to `d` + store `def` to `d` <4> declare `List l`; - access `d` -> `def`; + load from `d` -> `def`; implicit cast `def` to `HashMap reference`; *error* -> cannot implicit cast `HashMap reference` to `List reference`; - (note no cast would be valid since neither `HashMap` nor `List` is a - descendant of the other) + (note no cast is valid since neither `HashMap` nor `List` is a descendant of + the other) [[string-character-casting]] ==== String to Character Casting -Use the *cast operator* to convert a <> value into a +Use the cast operator to convert a <> value into a <> value. *Errors* @@ -310,17 +314,17 @@ Use the *cast operator* to convert a <> value into a + [source,Painless] ---- -<1> char c = (char)"C" -<2> c = (char)'c' +<1> char c = (char)"C"; +<2> c = (char)'c'; ---- + <1> declare `char c`; explicit cast `String "C"` to `char C` -> `char C`; - assign `char C` to `c` + store `char C` to `c` <2> explicit cast `String 'c'` to `char c` -> `char c`; - assign `char c` to `c` + store `char c` to `c` + -* Casting a `String` reference into a `char` value. +* Casting a `String` reference into a `char` type value. + [source,Painless] ---- @@ -328,11 +332,11 @@ Use the *cast operator* to convert a <> value into a <2> char c = (char)s; ---- <1> declare `String s`; - assign `String "s"` to `s`; + store `String "s"` to `s`; <2> declare `char c` - access `s` -> `String "s"`; + load from `s` -> `String "s"`; explicit cast `String "s"` to `char s` -> `char s`; - assign `char s` to `c` + store `char s` to `c` [[boxing-unboxing]] ==== Boxing and Unboxing @@ -343,12 +347,12 @@ reference type to its corresponding primitive type. Implicit boxing/unboxing occurs during the following operations: -* Conversions between a `def` type and a primitive type will be implicitly +* Conversions between a `def` type and a primitive type are implicitly boxed/unboxed as necessary, though this is referred to as an implicit cast throughout the documentation. -* Method/function call arguments will be implicitly boxed/unboxed as necessary. -* A primitive type value will be implicitly boxed when a reference type method - call is invoked on it. +* Method/function call arguments are implicitly boxed/unboxed as necessary. +* A primitive type value is implicitly boxed when a reference type method + is called on it. Explicit boxing/unboxing is not allowed. Use the reference type API to explicitly convert a primitive type value to its respective reference type @@ -372,22 +376,22 @@ value and vice versa. + <1> declare `List l`; allocate `ArrayList` instance -> `ArrayList reference`; - assign `ArrayList reference` to `l`; -<2> access `l` -> `List reference`; + store `ArrayList reference` to `l`; +<2> load from `l` -> `List reference`; implicit cast `int 1` to `def` -> `def`; call `add` on `List reference` with arguments (`def`); (note internally `int 1` is boxed to `Integer 1` to store as a `def` type value) <3> declare `Integer I`; call `valueOf` on `Integer` with arguments of (`int 0`) -> `Integer 0`; - assign `Integer 0` to `I`; + store `Integer 0` to `I`; <4> declare `int i`; - access `I` -> `Integer 0`; + load from `I` -> `Integer 0`; unbox `Integer 0` -> `int 0`; - access `l` -> `List reference`; + load from `l` -> `List reference`; call `get` on `List reference` with arguments (`int 0`) -> `def`; implicit cast `def` to `int 1` -> `int 1`; - assign `int 1` to `i`; + store `int 1` to `i`; (note internally `int 1` is unboxed from `Integer 1` when loaded from a `def` type value) + @@ -419,8 +423,8 @@ Promotion is when a single value is implicitly cast to a certain type or multiple values are implicitly cast to the same type as required for evaluation by certain operations. Each operation that requires promotion has a promotion table that shows all required implicit casts based on the type(s) of value(s). A -value can be promoted to a `def` type at compile-time; however, the promoted -type value is derived from what the `def` type value represents at run-time. +value promoted to a `def` type at compile-time is promoted again at run-time +based on the type the `def` value represents. *Errors* @@ -438,19 +442,83 @@ type value is derived from what the `def` type value represents at run-time. <3> float f = x + 2.0F; ---- <1> declare `double d`; - promote `int 2` and `double 2.0 @0` -> `double 2.0 @0`; + promote `int 2` and `double 2.0 @0`: result `double`; implicit cast `int 2` to `double 2.0 @1` -> `double 2.0 @1`; add `double 2.0 @1` and `double 2.0 @0` -> `double 4.0`; - assign `double 4.0` to `d` + store `double 4.0` to `d` <2> declare `def x`; implicit cast `int 1` to `def` -> `def`; - assign `def` to `x`; + store `def` to `x`; <3> declare `float f`; - access `x` -> `def`; + load from `x` -> `def`; implicit cast `def` to `int 1` -> `int 1`; - promote `int 1` and `float 2.0` -> `float 2.0`; + promote `int 1` and `float 2.0`: result `float`; implicit cast `int 1` to `float 1.0` -> `float `1.0`; add `float 1.0` and `float 2.0` -> `float 3.0`; - assign `float 3.0` to `f`; + store `float 3.0` to `f`; (note this example illustrates promotion done at run-time as promotion done at compile-time would have resolved to a `def` type value) + +[[allowed-casts]] +==== Allowed Casts + +The following tables show all allowed casts. Read the tables row by row, where +the original type is shown in the first column, and each subsequent column +indicates whether a cast to the specified target type is implicit (I), explicit +(E), or is not allowed (-). + +*Primitive/Reference Types* + +[cols="<3,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1"] +|==== +| | o | b | s | c | i | j | f | d | O | B | S | C | I | L | F | D | T | R | def +| boolean ( o ) | | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | I +| byte ( b ) | - | | I | I | I | I | I | I | - | - | - | - | - | - | - | - | - | - | I +| short ( s ) | - | E | | E | I | I | I | I | - | - | - | - | - | - | - | - | - | - | I +| char ( c ) | - | E | E | | I | I | I | I | - | - | - | - | - | - | - | - | E | - | I +| int ( i ) | - | E | E | E | | I | I | I | - | - | - | - | - | - | - | - | - | - | I +| long ( j ) | - | E | E | E | E | | I | I | - | - | - | - | - | - | - | - | - | - | I +| float ( f ) | - | E | E | E | E | E | | I | - | - | - | - | - | - | - | - | - | - | I +| double ( d ) | - | E | E | E | E | E | E | | - | - | - | - | - | - | - | - | - | - | I +| Boolean ( O ) | - | - | - | - | - | - | - | - | - | - | - | | - | - | - | - | - | - | I +| Byte ( B ) | - | - | - | - | - | - | - | - | - | | - | - | - | - | - | - | - | - | I +| Short ( S ) | - | - | - | - | - | - | - | - | - | - | | - | - | - | - | - | - | - | I +| Character ( C ) | - | - | - | - | - | - | - | - | - | - | - | | - | - | - | - | - | - | I +| Integer ( I ) | - | - | - | - | - | - | - | - | - | - | - | - | | - | - | - | - | - | I +| Long ( L ) | - | - | - | - | - | - | - | - | - | - | - | - | - | | - | - | - | - | I +| Float ( F ) | - | - | - | - | - | - | - | - | - | - | - | - | - | - | | - | - | - | I +| Double ( D ) | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | | - | - | I +| String ( T ) | - | - | - | E | - | - | - | - | - | - | - | - | - | - | - | - | | - | I +| Reference ( R ) | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | @ | I +|==== + +@ See <> for allowed reference + type casts. + +*`def` Type* + +[cols="<3,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1"] +|==== +| | o | b | s | c | i | j | f | d | O | B | S | C | I | L | F | D | T | R | def +| def as boolean | I | - | - | - | - | - | - | - | I | - | - | - | - | - | - | - | - | - | +| def as byte | - | I | I | I | I | I | I | I | - | I | I | I | I | I | I | I | - | - | +| def as short | - | E | I | E | I | I | I | I | - | E | I | E | I | I | I | I | - | - | +| def as char | - | E | E | I | I | I | I | I | - | E | E | I | I | I | I | I | E | - | +| def as int | - | E | E | E | I | I | I | I | - | E | E | E | I | I | I | I | - | - | +| def as long | - | E | E | E | E | I | I | I | - | E | E | E | E | I | I | I | - | - | +| def as float | - | E | E | E | E | E | I | I | - | E | E | E | E | E | I | I | - | - | +| def as double | - | E | E | E | E | E | E | I | - | E | E | E | E | E | E | I | - | - | +| def as Boolean | I | - | - | - | - | - | - | - | I | - | - | - | | - | - | - | - | - | +| def as Byte | - | I | I | I | I | I | I | I | - | I | I | I | I | I | I | I | - | - | +| def as Short | - | E | I | E | I | I | I | I | - | E | I | E | I | I | I | I | - | - | +| def as Character | - | E | E | I | I | I | I | I | - | E | E | I | I | I | I | I | - | - | +| def as Integer | - | E | E | E | I | I | I | I | - | E | E | E | I | I | I | I | - | - | +| def as Long | - | E | E | E | E | I | I | I | - | E | E | E | E | I | I | I | - | - | +| def as Float | - | E | E | E | E | E | I | I | - | E | E | E | E | E | I | I | - | - | +| def as Double | - | E | E | E | E | E | E | I | - | E | E | E | E | E | E | I | - | - | +| def as String | - | - | - | E | - | - | - | - | - | - | - | - | - | - | - | - | I | - | +| def as Reference | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | @ | +|==== + +@ See <> for allowed reference + type casts. diff --git a/docs/painless/painless-comments.asciidoc b/docs/painless/painless-comments.asciidoc index bde30e37e04..bfd3594431e 100644 --- a/docs/painless/painless-comments.asciidoc +++ b/docs/painless/painless-comments.asciidoc @@ -6,9 +6,10 @@ anywhere on a line to specify a single-line comment. All characters from the `//` token to the end of the line are ignored. Use an opening `/*` token and a closing `*/` token to specify a multi-line comment. Multi-line comments can start anywhere on a line, and all characters in between the `/*` token and `*/` -token are ignored. Comments can be included anywhere within a script. +token are ignored. A comment is included anywhere within a script. *Grammar* + [source,ANTLR4] ---- SINGLE_LINE_COMMENT: '//' .*? [\n\r]; diff --git a/docs/painless/painless-functions.asciidoc b/docs/painless/painless-functions.asciidoc new file mode 100644 index 00000000000..20f3e821f1e --- /dev/null +++ b/docs/painless/painless-functions.asciidoc @@ -0,0 +1,24 @@ +[[painless-functions]] +=== Functions + +A function is a named piece of code comprised of one-to-many statements to +perform a specific task. A function is called multiple times in a single script +to repeat its specific task. A parameter is a named type value available as a +<> within the statement(s) of a function. A +function specifies zero-to-many parameters, and when a function is called a +value is specified per parameter. An argument is a value passed into a function +at the point of call. A function specifies a return type value, though if the +type is <> then no value is returned. Any non-void type return +value is available for use within an <> or is +discarded otherwise. + +You can declare functions at the beginning of a Painless script, for example: + +[source,painless] +--------------------------------------------------------- +boolean isNegative(def x) { x < 0 } +... +if (isNegative(someVar)) { + ... +} +--------------------------------------------------------- \ No newline at end of file diff --git a/docs/painless/painless-general-syntax.asciidoc b/docs/painless/painless-general-syntax.asciidoc deleted file mode 100644 index 114bff80bfa..00000000000 --- a/docs/painless/painless-general-syntax.asciidoc +++ /dev/null @@ -1,81 +0,0 @@ -[[painless-general-syntax]] -=== General Syntax - -[[control-flow]] -==== Control flow - -Painless supports all of Java's https://docs.oracle.com/javase/tutorial/java/nutsandbolts/flow.html[ -control flow statements] except the `switch` statement. - -Painless also supports the `for in` syntax from Groovy: - -[source,painless] ---------------------------------------------------------- -for (item : list) { - ... -} ---------------------------------------------------------- - -[[functions]] -==== Functions - -You can declare functions at the beginning of a Painless script, for example: - -[source,painless] ---------------------------------------------------------- -boolean isNegative(def x) { x < 0 } -... -if (isNegative(someVar)) { - ... -} ---------------------------------------------------------- - -[[lambda-expressions]] -==== Lambda expressions -Lambda expressions and method references work the same as in https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html[Java]. - -[source,painless] ---------------------------------------------------------- -list.removeIf(item -> item == 2); -list.removeIf((int item) -> item == 2); -list.removeIf((int item) -> { item == 2 }); -list.sort((x, y) -> x - y); -list.sort(Integer::compare); ---------------------------------------------------------- - -You can make method references to functions within the script with `this`, -for example `list.sort(this::mycompare)`. - -[[patterns]] -==== Patterns - -Regular expression constants are directly supported. To ensure fast performance, -this is the only mechanism for creating patterns. Regular expressions -are always constants and compiled efficiently a single time. - -[source,painless] ---------------------------------------------------------- -Pattern p = /[aeiou]/ ---------------------------------------------------------- - -[[pattern-flags]] -===== Pattern flags - -You can define flags on patterns in Painless by adding characters after the -trailing `/` like `/foo/i` or `/foo \w #comment/iUx`. Painless exposes all of -the flags from Java's -https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html[ -Pattern class] using these characters: - -[cols="<,<,<",options="header",] -|======================================================================= -| Character | Java Constant | Example -|`c` | CANON_EQ | `'å' ==~ /å/c` (open in hex editor to see) -|`i` | CASE_INSENSITIVE | `'A' ==~ /a/i` -|`l` | LITERAL | `'[a]' ==~ /[a]/l` -|`m` | MULTILINE | `'a\nb\nc' =~ /^b$/m` -|`s` | DOTALL (aka single line) | `'a\nb\nc' =~ /.b./s` -|`U` | UNICODE_CHARACTER_CLASS | `'Ɛ' ==~ /\\w/U` -|`u` | UNICODE_CASE | `'Ɛ' ==~ /ɛ/iu` -|`x` | COMMENTS (aka extended) | `'a' ==~ /a #comment/x` -|======================================================================= diff --git a/docs/painless/painless-identifiers.asciidoc b/docs/painless/painless-identifiers.asciidoc index 7762f56cb7b..d2678b528ea 100644 --- a/docs/painless/painless-identifiers.asciidoc +++ b/docs/painless/painless-identifiers.asciidoc @@ -3,8 +3,12 @@ Use an identifier as a named token to specify a <>, <>, -<>, <>, or function. -<> cannot be used as identifiers. +<>, <>, or +<>. + +*Errors* + +If a <> is used as an identifier. *Grammar* [source,ANTLR4] diff --git a/docs/painless/painless-keywords.asciidoc b/docs/painless/painless-keywords.asciidoc index 39a2201fd2b..9463902c8d3 100644 --- a/docs/painless/painless-keywords.asciidoc +++ b/docs/painless/painless-keywords.asciidoc @@ -1,9 +1,13 @@ [[painless-keywords]] === Keywords -Keywords are reserved tokens for built-in language features and cannot be used -as <> within a script. The following are -keywords: +Keywords are reserved tokens for built-in language features. + +*Errors* + +If a keyword is used as an <>. + +*Keywords* [cols="^1,^1,^1,^1,^1"] |==== diff --git a/docs/painless/painless-lambdas.asciidoc b/docs/painless/painless-lambdas.asciidoc new file mode 100644 index 00000000000..e6694229a0c --- /dev/null +++ b/docs/painless/painless-lambdas.asciidoc @@ -0,0 +1,15 @@ +[[painless-lambdas]] +=== Lambdas +Lambda expressions and method references work the same as in https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html[Java]. + +[source,painless] +--------------------------------------------------------- +list.removeIf(item -> item == 2); +list.removeIf((int item) -> item == 2); +list.removeIf((int item) -> { item == 2 }); +list.sort((x, y) -> x - y); +list.sort(Integer::compare); +--------------------------------------------------------- + +You can make method references to functions within the script with `this`, +for example `list.sort(this::mycompare)`. \ No newline at end of file diff --git a/docs/painless/painless-lang-spec.asciidoc b/docs/painless/painless-lang-spec.asciidoc index 5e6b84d8c57..d50f3db2dc0 100644 --- a/docs/painless/painless-lang-spec.asciidoc +++ b/docs/painless/painless-lang-spec.asciidoc @@ -33,4 +33,22 @@ include::painless-casting.asciidoc[] include::painless-operators.asciidoc[] -include::painless-general-syntax.asciidoc[] +include::painless-operators-general.asciidoc[] + +include::painless-operators-numeric.asciidoc[] + +include::painless-operators-boolean.asciidoc[] + +include::painless-operators-reference.asciidoc[] + +include::painless-operators-array.asciidoc[] + +include::painless-statements.asciidoc[] + +include::painless-scripts.asciidoc[] + +include::painless-functions.asciidoc[] + +include::painless-lambdas.asciidoc[] + +include::painless-regexes.asciidoc[] diff --git a/docs/painless/painless-literals.asciidoc b/docs/painless/painless-literals.asciidoc index ebf7eaa07b6..621fc152be9 100644 --- a/docs/painless/painless-literals.asciidoc +++ b/docs/painless/painless-literals.asciidoc @@ -4,7 +4,7 @@ Use a literal to specify a value directly in an <>. -[[integers]] +[[integer-literals]] ==== Integers Use an integer literal to specify an integer type value in decimal, octal, or @@ -16,6 +16,7 @@ to specify an integer literal as octal, and use `0x` or `0X` as a prefix to specify an integer literal as hex. *Grammar* + [source,ANTLR4] ---- INTEGER: '-'? ( '0' | [1-9] [0-9]* ) [lLfFdD]?; @@ -44,7 +45,7 @@ HEX: '-'? '0' [xX] [0-9a-fA-F]+ [lL]?; <5> `int -18` in octal <6> `int 3882` in hex -[[floats]] +[[float-literals]] ==== Floats Use a floating point literal to specify a floating point type value of a @@ -53,6 +54,7 @@ single letter designations to specify the primitive type: `f` or `F` for `float` and `d` or `D` for `double`. If not specified, the type defaults to `double`. *Grammar* + [source,ANTLR4] ---- DECIMAL: '-'? ( '0' | [1-9] [0-9]* ) (DOT [0-9]+)? EXPONENT? [fFdD]?; @@ -78,7 +80,7 @@ EXPONENT: ( [eE] [+\-]? [0-9]+ ); <4> `double -126.34` <5> `float 89.9` -[[strings]] +[[string-literals]] ==== Strings Use a string literal to specify a <> value with @@ -88,6 +90,7 @@ include a single-quote as part of a single-quoted string literal. Use a `\\` token to include a backslash as part of any string literal. *Grammar* + [source,ANTLR4] ---- STRING: ( '"' ( '\\"' | '\\\\' | ~[\\"] )*? '"' ) @@ -114,9 +117,9 @@ STRING: ( '"' ( '\\"' | '\\\\' | ~[\\"] )*? '"' ) "double-quoted with non-escaped 'single-quotes'" ---- -[[characters]] +[[character-literals]] ==== Characters -A character literal cannot be specified directly. Instead, use the +Character literals are not specified directly. Instead, use the <> to convert a `String` type value into a `char` type value. diff --git a/docs/painless/painless-operators-array.asciidoc b/docs/painless/painless-operators-array.asciidoc new file mode 100644 index 00000000000..e91c07acef5 --- /dev/null +++ b/docs/painless/painless-operators-array.asciidoc @@ -0,0 +1,294 @@ +[[painless-operators-array]] +=== Operators: Array + +[[array-initialization-operator]] +==== Array Initialization + +Use the `array initialization operator '[] {}'` to allocate a single-dimensional +<> instance to the heap with a set of pre-defined +elements. Each value used to initialize an element in the array type instance is +cast to the specified element type value upon insertion. The order of specified +values is maintained. + +*Errors* + +* If a value is not castable to the specified type value. + +*Grammar* + +[source,ANTLR4] +---- +array_initialization: 'new' TYPE '[' ']' '{' expression_list '}' + | 'new' TYPE '[' ']' '{' '}'; +expression_list: expression (',' expression); +---- + +*Example:* + +* Array initialization with static values. ++ +[source,Painless] +---- +<1> int[] x = new int[] {1, 2, 3}; +---- ++ +<1> declare `int[] x`; + allocate `1-d int array` instance with `length [3]` + -> `1-d int array reference`; + store `int 1` to `index [0]` of `1-d int array reference`; + store `int 2` to `index [1]` of `1-d int array reference`; + store `int 3` to `index [2]` of `1-d int array reference`; + store `1-d int array reference` to `x`; ++ +* Array initialization with non-static values. ++ +[source,Painless] +---- +<1> int i = 1; +<2> long l = 2L; +<3> float f = 3.0F; +<4> double d = 4.0; +<5> String s = "5"; +<6> def array = new def[] {i, l, f*d, s}; +---- ++ +<1> declare `int i`; + store `int 1` to `i` +<2> declare `long l`; + store `long 2` to `l` +<3> declare `float f`; + store `float 3.0` to `f` +<4> declare `double d`; + store `double 4.0` to `d` +<5> declare `String s`; + store `String "5"` to `s` +<6> declare `def array`; + allocate `1-d def array` instance with `length [4]` + -> `1-d def array reference`; + load from `i` -> `int 1`; + implicit cast `int 1` to `def` -> `def`; + store `def` to `index [0]` of `1-d def array reference`; + load from `l` -> `long 2`; + implicit cast `long 2` to `def` -> `def`; + store `def` to `index [1]` of `1-d def array reference`; + load from `f` -> `float 3.0`; + load from `d` -> `double 4.0`; + promote `float 3.0` and `double 4.0`: result `double`; + implicit cast `float 3.0` to `double 3.0` -> `double 3.0`; + multiply `double 3.0` and `double 4.0` -> `double 12.0`; + implicit cast `double 12.0` to `def` -> `def`; + store `def` to `index [2]` of `1-d def array reference`; + load from `s` -> `String "5"`; + implicit cast `String "5"` to `def` -> `def`; + store `def` to `index [3]` of `1-d def array reference`; + implicit cast `1-d int array reference` to `def` -> `def`; + store `def` to `array` + +[[array-access-operator]] +==== Array Access + +Use the `array access operator '[]'` to store a value to or load a value from +an <> value. Each element of an array type value is +accessed with an `int` type value to specify the index to store/load. The range +of elements within an array that are accessible is `[0, size)` where size is the +number of elements specified at the time of allocation. Use a negative `int` +type value as an index to access an element in reverse from the end of an array +type value within a range of `[-size, -1]`. + +*Errors* + +* If a value other than an `int` type value or a value that is castable to an + `int` type value is provided as an index. +* If an element is accessed outside of the valid ranges. + +*Grammar* + +[source,ANTLR4] +---- +brace_access: '[' expression ']' +---- + +*Examples* + +* Array access with a single-dimensional array. ++ +[source,Painless] +---- +<1> int[] x = new int[2]; +<2> x[0] = 2; +<3> x[1] = 5; +<4> int y = x[0] + x[1]; +<5> int z = 1; +<6> int i = x[z]; +---- ++ +<1> declare `int[] x`; + allocate `1-d int array` instance with `length [2]` + -> `1-d int array reference`; + store `1-d int array reference` to `x` +<2> load from `x` -> `1-d int array reference`; + store `int 2` to `index [0]` of `1-d int array reference`; +<3> load from `x` -> `1-d int array reference`; + store `int 5` to `index [1]` of `1-d int array reference`; +<4> declare `int y`; + load from `x` -> `1-d int array reference`; + load from `index [0]` of `1-d int array reference` -> `int 2`; + load from `x` -> `1-d int array reference`; + load from `index [1]` of `1-d int array reference` -> `int 5`; + add `int 2` and `int 5` -> `int 7`; + store `int 7` to `y` +<5> declare `int z`; + store `int 1` to `z`; +<6> declare `int i`; + load from `x` -> `1-d int array reference`; + load from `z` -> `int 1`; + load from `index [1]` of `1-d int array reference` -> `int 5`; + store `int 5` to `i`; ++ +* Array access with the `def` type. ++ +[source,Painless] +---- +<1> def d = new int[2]; +<2> d[0] = 2; +<3> d[1] = 5; +<4> def x = d[0] + d[1]; +<5> def y = 1; +<6> def z = d[y]; +---- ++ +<1> declare `def d`; + allocate `1-d int array` instance with `length [2]` + -> `1-d int array reference`; + implicit cast `1-d int array reference` to `def` -> `def`; + store `def` to `d` +<2> load from `d` -> `def` + implicit cast `def` to `1-d int array reference` + -> `1-d int array reference`; + store `int 2` to `index [0]` of `1-d int array reference`; +<3> load from `d` -> `def` + implicit cast `def` to `1-d int array reference` + -> `1-d int array reference`; + store `int 5` to `index [1]` of `1-d int array reference`; +<4> declare `int x`; + load from `d` -> `def` + implicit cast `def` to `1-d int array reference` + -> `1-d int array reference`; + load from `index [0]` of `1-d int array reference` -> `int 2`; + load from `d` -> `def` + implicit cast `def` to `1-d int array reference` + -> `1-d int array reference`; + load from `index [1]` of `1-d int array reference` -> `int 5`; + add `int 2` and `int 5` -> `int 7`; + implicit cast `int 7` to `def` -> `def`; + store `def` to `x` +<5> declare `def y`; + implicit cast `int 1` to `def` -> `def`; + store `def ` to `y`; +<6> declare `int i`; + load from `d` -> `def` + implicit cast `def` to `1-d int array reference` + -> `1-d int array reference`; + load from `y` -> `def`; + implicit cast `def` to `int 1` -> `int 1`; + load from `index [1]` of `1-d int array reference` -> `int 5`; + implicit cast `int 5` to `def`; + store `def` to `z`; ++ +* Array access with a multi-dimensional array. ++ +[source,Painless] +---- +<1> int[][][] ia3 = new int[2][3][4]; +<2> ia3[1][2][3] = 99; +<3> int i = ia3[1][2][3]; +---- ++ +<1> declare `int[][][] ia`; + allocate `3-d int array` instance with length `[2, 3, 4]` + -> `3-d int array reference`; + store `3-d int array reference` to `ia3` +<2> load from `ia3` -> `3-d int array reference`; + store `int 99` to `index [1, 2, 3]` of `3-d int array reference` +<3> declare `int i`; + load from `ia3` -> `3-d int array reference`; + load from `index [1, 2, 3]` of `3-d int array reference` -> `int 99`; + store `int 99` to `i` + +[[array-length-operator]] +==== Array Length + +An array type value contains a read-only member field named `length`. The +`length` field stores the size of the array as an `int` type value where size is +the number of elements specified at the time of allocation. Use the +<> to load the field `length` +from an array type value. + +*Examples* + +* Access the `length` field. ++ +[source,Painless] +---- +<1> int[] x = new int[10]; +<2> int l = x.length; +---- +<1> declare `int[] x`; + allocate `1-d int array` instance with `length [2]` + -> `1-d int array reference`; + store `1-d int array reference` to `x` +<2> declare `int l`; + load `x` -> `1-d int array reference`; + load `length` from `1-d int array reference` -> `int 10`; + store `int 10` to `l`; + +[[new-array-operator]] +==== New Array + +Use the `new array operator 'new []'` to allocate an array type instance to +the heap. Specify the element type following the `new` token. Specify each +dimension with the `[` and `]` tokens following the element type name. The size +of each dimension is specified by an `int` type value in between each set of `[` +and `]` tokens. + +*Errors* + +* If a value other than an `int` type value or a value that is castable to an + `int` type value is specified for for a dimension's size. + +*Grammar* + +[source,ANTLR4] +---- +new_array: 'new' TYPE ('[' expression ']')+; +---- + +*Examples* + +* Allocation of different array types. ++ +[source,Painless] +---- +<1> int[] x = new int[5]; +<2> x = new int[10]; +<3> int y = 2; +<4> def z = new def[y][y*2]; +---- ++ +<1> declare `int[] x`; + allocate `1-d int array` instance with `length [5]` + -> `1-d int array reference`; + store `1-d int array reference` to `x` +<2> allocate `1-d int array` instance with `length [10]` + -> `1-d int array reference`; + store `1-d int array reference` to `x` +<3> declare `int y`; + store `int 2` to `y`; +<4> declare `def z`; + load from `y` -> `int 2 @0`; + load from `y` -> `int 2 @1`; + multiply `int 2 @1` by `int 2 @2` -> `int 4`; + allocate `2-d int array` instance with length `[2, 4]` + -> `2-d int array reference`; + implicit cast `2-d int array reference` to `def` -> `def`; + store `def` to `z`; diff --git a/docs/painless/painless-operators-boolean.asciidoc b/docs/painless/painless-operators-boolean.asciidoc new file mode 100644 index 00000000000..1223a8d56e7 --- /dev/null +++ b/docs/painless/painless-operators-boolean.asciidoc @@ -0,0 +1,1420 @@ +[[painless-operators-boolean]] +=== Operators: Boolean + +[[boolean-not-operator]] +==== Boolean Not + +Use the `boolean not operator '!'` to NOT a `boolean` type value where `true` is +flipped to `false` and `false` is flipped to `true`. + +*Errors* + +* If a value other than a `boolean` type value or a value that is castable to a + `boolean` type value is given. + +*Truth* + +[options="header",cols="<1,<1"] +|==== +| original | result +| true | false +| false | true +|==== + +*Grammar* + +[source,ANTLR4] +---- +boolean_not: '!' expression; +---- + +*Examples* + +* Boolean not with the `boolean` type. ++ +[source,Painless] +---- +<1> boolean x = !false; +<2> boolean y = !x; +---- +<1> declare `boolean x`; + boolean not `boolean false` -> `boolean true`; + store `boolean true` to `x` +<2> declare `boolean y`; + load from `x` -> `boolean true`; + boolean not `boolean true` -> `boolean false`; + store `boolean false` to `y` ++ +* Boolean not with the `def` type. ++ +[source,Painless] +---- +<1> def y = true; +<2> def z = !y; +---- ++ +<1> declare `def y`; + implicit cast `boolean true` to `def` -> `def`; + store `true` to `y` +<2> declare `def z`; + load from `y` -> `def`; + implicit cast `def` to `boolean true` -> boolean `true`; + boolean not `boolean true` -> `boolean false`; + implicit cast `boolean false` to `def` -> `def`; + store `def` to `z` + +[[greater-than-operator]] +==== Greater Than + +Use the `greater than operator '>'` to COMPARE two numeric type values where a +resultant `boolean` type value is `true` if the left-hand side value is greater +than to the right-hand side value and `false` otherwise. + +*Errors* + +* If either the evaluated left-hand side or the evaluated right-hand side is a + non-numeric value. + +*Grammar* + +[source,ANTLR4] +---- +greater_than: expression '>' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1,^1,^1"] +|==== +| | byte | short | char | int | long | float | double | def +| byte | int | int | int | int | long | float | double | def +| short | int | int | int | int | long | float | double | def +| char | int | int | int | int | long | float | double | def +| int | int | int | int | int | long | float | double | def +| long | long | long | long | long | long | float | double | def +| float | float | float | float | float | float | float | double | def +| double | double | double | double | double | double | double | double | def +| def | def | def | def | def | def | def | def | def +|==== + +*Examples* + +* Greater than with different numeric types. ++ +[source,Painless] +---- +<1> boolean x = 5 > 4; +<2> double y = 6.0; +<3> x = 6 > y; +---- ++ +<1> declare `boolean x`; + greater than `int 5` and `int 4` -> `boolean true`; + store `boolean true` to `x`; +<2> declare `double y`; + store `double 6.0` to `y`; +<3> load from `y` -> `double 6.0 @0`; + promote `int 6` and `double 6.0`: result `double`; + implicit cast `int 6` to `double 6.0 @1` -> `double 6.0 @1`; + greater than `double 6.0 @1` and `double 6.0 @0` -> `boolean false`; + store `boolean false` to `x` ++ +* Greater than with `def` type. ++ +[source,Painless] +---- +<1> int x = 5; +<2> def y = 7.0; +<3> def z = y > 6.5; +<4> def a = x > y; +---- ++ +<1> declare `int x`; + store `int 5` to `x` +<2> declare `def y`; + implicit cast `double 7.0` to `def` -> `def`; + store `def` to `y` +<3> declare `def z`; + load from `y` -> `def`; + implicit cast `def` to `double 7.0` -> `double 7.0`; + greater than `double 7.0` and `double 6.5` -> `boolean true`; + implicit cast `boolean true` to `def` -> `def`; + store `def` to `z` +<4> declare `def a`; + load from `y` -> `def`; + implicit cast `def` to `double 7.0` -> `double 7.0`; + load from `x` -> `int 5`; + promote `int 5` and `double 7.0`: result `double`; + implicit cast `int 5` to `double 5.0` -> `double 5.0`; + greater than `double 5.0` and `double 7.0` -> `boolean false`; + implicit cast `boolean false` to `def` -> `def`; + store `def` to `z` + +[[greater-than-or-equal-operator]] +==== Greater Than Or Equal + +Use the `greater than or equal operator '>='` to COMPARE two numeric type values +where a resultant `boolean` type value is `true` if the left-hand side value is +greater than or equal to the right-hand side value and `false` otherwise. + +*Errors* + +* If either the evaluated left-hand side or the evaluated right-hand side is a + non-numeric value. + +*Grammar* + +[source,ANTLR4] +---- +greater_than_or_equal: expression '>=' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1,^1,^1"] +|==== +| | byte | short | char | int | long | float | double | def +| byte | int | int | int | int | long | float | double | def +| short | int | int | int | int | long | float | double | def +| char | int | int | int | int | long | float | double | def +| int | int | int | int | int | long | float | double | def +| long | long | long | long | long | long | float | double | def +| float | float | float | float | float | float | float | double | def +| double | double | double | double | double | double | double | double | def +| def | def | def | def | def | def | def | def | def +|==== + +*Examples* + +* Greater than or equal with different numeric types. ++ +[source,Painless] +---- +<1> boolean x = 5 >= 4; +<2> double y = 6.0; +<3> x = 6 >= y; +---- ++ +<1> declare `boolean x`; + greater than or equal `int 5` and `int 4` -> `boolean true`; + store `boolean true` to `x` +<2> declare `double y`; + store `double 6.0` to `y` +<3> load from `y` -> `double 6.0 @0`; + promote `int 6` and `double 6.0`: result `double`; + implicit cast `int 6` to `double 6.0 @1` -> `double 6.0 @1`; + greater than or equal `double 6.0 @1` and `double 6.0 @0` -> `boolean true`; + store `boolean true` to `x` ++ +* Greater than or equal with the `def` type. ++ +[source,Painless] +---- +<1> int x = 5; +<2> def y = 7.0; +<3> def z = y >= 7.0; +<4> def a = x >= y; +---- ++ +<1> declare `int x`; + store `int 5` to `x`; +<2> declare `def y` + implicit cast `double 7.0` to `def` -> `def`; + store `def` to `y` +<3> declare `def z`; + load from `y` -> `def`; + implicit cast `def` to `double 7.0 @0` -> `double 7.0 @0`; + greater than or equal `double 7.0 @0` and `double 7.0 @1` -> `boolean true`; + implicit cast `boolean true` to `def` -> `def`; + store `def` to `z` +<4> declare `def a`; + load from `y` -> `def`; + implicit cast `def` to `double 7.0` -> `double 7.0`; + load from `x` -> `int 5`; + promote `int 5` and `double 7.0`: result `double`; + implicit cast `int 5` to `double 5.0` -> `double 5.0`; + greater than or equal `double 5.0` and `double 7.0` -> `boolean false`; + implicit cast `boolean false` to `def` -> `def`; + store `def` to `z` + +[[less-than-operator]] +==== Less Than + +Use the `less than operator '<'` to COMPARE two numeric type values where a +resultant `boolean` type value is `true` if the left-hand side value is less +than to the right-hand side value and `false` otherwise. + +*Errors* + +* If either the evaluated left-hand side or the evaluated right-hand side is a + non-numeric value. + +*Grammar* + +[source,ANTLR4] +---- +less_than: expression '<' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1,^1,^1"] +|==== +| | byte | short | char | int | long | float | double | def +| byte | int | int | int | int | long | float | double | def +| short | int | int | int | int | long | float | double | def +| char | int | int | int | int | long | float | double | def +| int | int | int | int | int | long | float | double | def +| long | long | long | long | long | long | float | double | def +| float | float | float | float | float | float | float | double | def +| double | double | double | double | double | double | double | double | def +| def | def | def | def | def | def | def | def | def +|==== + +*Examples* + +* Less than with different numeric types. ++ +[source,Painless] +---- +<1> boolean x = 5 < 4; +<2> double y = 6.0; +<3> x = 6 < y; +---- ++ +<1> declare `boolean x`; + less than `int 5` and `int 4` -> `boolean false`; + store `boolean false` to `x` +<2> declare `double y`; + store `double 6.0` to `y` +<3> load from `y` -> `double 6.0 @0`; + promote `int 6` and `double 6.0`: result `double`; + implicit cast `int 6` to `double 6.0 @1` -> `double 6.0 @1`; + less than `double 6.0 @1` and `double 6.0 @0` -> `boolean false`; + store `boolean false` to `x` ++ +* Less than with the `def` type. ++ +[source,Painless] +---- +<1> int x = 5; +<2> def y = 7.0; +<3> def z = y < 6.5; +<4> def a = x < y; +---- ++ +<1> declare `int x`; + store `int 5` to `x` +<2> declare `def y`; + implicit cast `double 7.0` to `def` -> `def`; + store `def` to `y` +<3> declare `def z`; + load from `y` -> `def`; + implicit cast `def` to `double 7.0` -> `double 7.0`; + less than `double 7.0` and `double 6.5` -> `boolean false`; + implicit cast `boolean false` to `def` -> `def`; + store `def` to `z` +<4> declare `def a`; + load from `y` -> `def`; + implicit cast `def` to `double 7.0` -> `double 7.0`; + load from `x` -> `int 5`; + promote `int 5` and `double 7.0`: result `double`; + implicit cast `int 5` to `double 5.0` -> `double 5.0`; + less than `double 5.0` and `double 7.0` -> `boolean true`; + implicit cast `boolean true` to `def` -> `def`; + store `def` to `z` + +[[less-than-or-equal-operator]] +==== Less Than Or Equal + +Use the `less than or equal operator '<='` to COMPARE two numeric type values +where a resultant `boolean` type value is `true` if the left-hand side value is +less than or equal to the right-hand side value and `false` otherwise. + +*Errors* + +* If either the evaluated left-hand side or the evaluated right-hand side is a + non-numeric value. + +*Grammar* + +[source,ANTLR4] +---- +greater_than_or_equal: expression '<=' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1,^1,^1"] +|==== +| | byte | short | char | int | long | float | double | def +| byte | int | int | int | int | long | float | double | def +| short | int | int | int | int | long | float | double | def +| char | int | int | int | int | long | float | double | def +| int | int | int | int | int | long | float | double | def +| long | long | long | long | long | long | float | double | def +| float | float | float | float | float | float | float | double | def +| double | double | double | double | double | double | double | double | def +| def | def | def | def | def | def | def | def | def +|==== + +*Examples* + +* Less than or equal with different numeric types. ++ +[source,Painless] +---- +<1> boolean x = 5 <= 4; +<2> double y = 6.0; +<3> x = 6 <= y; +---- ++ +<1> declare `boolean x`; + less than or equal `int 5` and `int 4` -> `boolean false`; + store `boolean true` to `x` +<2> declare `double y`; + store `double 6.0` to `y` +<3> load from `y` -> `double 6.0 @0`; + promote `int 6` and `double 6.0`: result `double`; + implicit cast `int 6` to `double 6.0 @1` -> `double 6.0 @1`; + less than or equal `double 6.0 @1` and `double 6.0 @0` -> `boolean true`; + store `boolean true` to `x` ++ +* Less than or equal with the `def` type. ++ +[source,Painless] +---- +<1> int x = 5; +<2> def y = 7.0; +<3> def z = y <= 7.0; +<4> def a = x <= y; +---- ++ +<1> declare `int x`; + store `int 5` to `x`; +<2> declare `def y`; + implicit cast `double 7.0` to `def` -> `def`; + store `def` to `y`; +<3> declare `def z`; + load from `y` -> `def`; + implicit cast `def` to `double 7.0 @0` -> `double 7.0 @0`; + less than or equal `double 7.0 @0` and `double 7.0 @1` -> `boolean true`; + implicit cast `boolean true` to `def` -> `def`; + store `def` to `z` +<4> declare `def a`; + load from `y` -> `def`; + implicit cast `def` to `double 7.0` -> `double 7.0`; + load from `x` -> `int 5`; + promote `int 5` and `double 7.0`: result `double`; + implicit cast `int 5` to `double 5.0` -> `double 5.0`; + less than or equal `double 5.0` and `double 7.0` -> `boolean true`; + implicit cast `boolean true` to `def` -> `def`; + store `def` to `z` + +[[instanceof-operator]] +==== Instanceof + +Use the `instanceof operator` to COMPARE the variable/field type to a +specified reference type using the reference type name where a resultant +`boolean` type value is `true` if the variable/field type is the same as or a +descendant of the specified reference type and false otherwise. + +*Errors* + +* If the reference type name doesn't exist as specified by the right-hand side. + +*Grammar* + +[source,ANTLR4] +---- +instance_of: ID 'instanceof' TYPE; +---- + +*Examples* + +* Instance of with different reference types. ++ +[source,Painless] +---- +<1> Map m = new HashMap(); +<2> boolean a = m instanceof HashMap; +<3> boolean b = m instanceof Map; +---- ++ +<1> declare `Map m`; + allocate `HashMap` instance -> `HashMap reference`; + implicit cast `HashMap reference` to `Map reference`; + store `Map reference` to `m` +<2> declare `boolean a`; + load from `m` -> `Map reference`; + implicit cast `Map reference` to `HashMap reference` -> `HashMap reference`; + instanceof `HashMap reference` and `HashMap` -> `boolean true`; + store `boolean true` to `a` +<3> declare `boolean b`; + load from `m` -> `Map reference`; + implicit cast `Map reference` to `HashMap reference` -> `HashMap reference`; + instanceof `HashMap reference` and `Map` -> `boolean true`; + store `true` to `b`; + (note `HashMap` is a descendant of `Map`) ++ +* Instance of with the `def` type. ++ +[source,Painless] +---- +<1> def d = new ArrayList(); +<2> boolean a = d instanceof List; +<3> boolean b = d instanceof Map; +---- ++ +<1> declare `def d`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `def` -> `def`; + store `def` to `d` +<2> declare `boolean a`; + load from `d` -> `def`; + implicit cast `def` to `ArrayList reference` -> `ArrayList reference`; + instanceof `ArrayList reference` and `List` -> `boolean true`; + store `boolean true` to `a`; + (note `ArrayList` is a descendant of `List`) +<3> declare `boolean b`; + load from `d` -> `def`; + implicit cast `def` to `ArrayList reference` -> `ArrayList reference`; + instanceof `ArrayList reference` and `Map` -> `boolean false`; + store `boolean false` to `a`; + (note `ArrayList` is not a descendant of `Map`) + +[[equality-equals-operator]] +==== Equality Equals + +Use the `equality equals operator '=='` to COMPARE two values where a resultant +`boolean` type value is `true` if the two values are equal and `false` +otherwise. The member method, `equals`, is implicitly called when the values are +reference type values where the first value is the target of the call and the +second value is the argument. This operation is null-safe where if both values +are `null` the resultant `boolean` type value is `true`, and if only one value +is `null` the resultant `boolean` type value is `false`. A valid comparison is +between `boolean` type values, numeric type values, or reference type values. + +*Errors* + +* If a comparison is made between a `boolean` type value and numeric type value. +* If a comparison is made between a primitive type value and a reference type + value. + +*Grammar* + +[source,ANTLR4] +---- +equality_equals: expression '==' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1"] +|==== +| | boolean | byte | short | char | int | long | float | double | Reference | def +| boolean | boolean | - | - | - | - | - | - | - | - | def +| byte | - | int | int | int | int | long | float | double | - | def +| short | - | int | int | int | int | long | float | double | - | def +| char | - | int | int | int | int | long | float | double | - | def +| int | - | int | int | int | int | long | float | double | - | def +| long | - | long | long | long | long | long | float | double | - | def +| float | - | float | float | float | float | float | float | double | - | def +| double | - | double | double | double | double | double | double | double | - | def +| Reference | - | - | - | - | - | - | - | - | Object | def +| def | def | def | def | def | def | def | def | def | def | def +|==== + +*Examples* + +* Equality equals with the `boolean` type. ++ +[source,Painless] +---- +<1> boolean a = true; +<2> boolean b = false; +<3> a = a == false; +<4> b = a == b; +---- ++ +<1> declare `boolean a`; + store `boolean true` to `a` +<2> declare `boolean b`; + store `boolean false` to `b` +<3> load from `a` -> `boolean true`; + equality equals `boolean true` and `boolean false` -> `boolean false`; + store `boolean false` to `a` +<4> load from `a` -> `boolean false @0`; + load from `b` -> `boolean false @1`; + equality equals `boolean false @0` and `boolean false @1` + -> `boolean false`; + store `boolean false` to `b` ++ +* Equality equals with primitive types. ++ +[source,Painless] +---- +<1> int a = 1; +<2> double b = 2.0; +<3> boolean c = a == b; +<4> c = 1 == a; +---- ++ +<1> declare `int a`; + store `int 1` to `a` +<2> declare `double b`; + store `double 1.0` to `b` +<3> declare `boolean c`; + load from `a` -> `int 1`; + load from `b` -> `double 2.0`; + promote `int 1` and `double 2.0`: result `double`; + implicit cast `int 1` to `double 1.0` -> `double `1.0`; + equality equals `double 1.0` and `double 2.0` -> `boolean false`; + store `boolean false` to `c` +<4> load from `a` -> `int 1 @1`; + equality equals `int 1 @0` and `int 1 @1` -> `boolean true`; + store `boolean true` to `c` ++ +* Equal equals with reference types. ++ +[source,Painless] +---- +<1> List a = new ArrayList(); +<2> List b = new ArrayList(); +<3> a.add(1); +<4> boolean c = a == b; +<5> b.add(1); +<6> c = a == b; +---- ++ +<1> declare `List a`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `List reference` -> `List reference`; + store `List reference` to `a` +<2> declare `List b`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `List reference` -> `List reference`; + store `List reference` to `b` +<3> load from `a` -> `List reference`; + call `add` on `List reference` with arguments (`int 1)` +<4> declare `boolean c`; + load from `a` -> `List reference @0`; + load from `b` -> `List reference @1`; + call `equals` on `List reference @0` with arguments (`List reference @1`) + -> `boolean false`; + store `boolean false` to `c` +<5> load from `b` -> `List reference`; + call `add` on `List reference` with arguments (`int 1`) +<6> load from `a` -> `List reference @0`; + load from `b` -> `List reference @1`; + call `equals` on `List reference @0` with arguments (`List reference @1`) + -> `boolean true`; + store `boolean true` to `c` ++ +* Equality equals with `null`. ++ +[source,Painless] +---- +<1> Object a = null; +<2> Object b = null; +<3> boolean c = a == null; +<4> c = a == b; +<5> b = new Object(); +<6> c = a == b; +---- ++ +<1> declare `Object a`; + store `null` to `a` +<2> declare `Object b`; + store `null` to `b` +<3> declare `boolean c`; + load from `a` -> `null @0`; + equality equals `null @0` and `null @1` -> `boolean true`; + store `boolean true` to `c` +<4> load from `a` -> `null @0`; + load from `b` -> `null @1`; + equality equals `null @0` and `null @1` -> `boolean true`; + store `boolean true` to `c` +<5> allocate `Object` instance -> `Object reference`; + store `Object reference` to `b` +<6> load from `a` -> `Object reference`; + load from `b` -> `null`; + call `equals` on `Object reference` with arguments (`null`) + -> `boolean false`; + store `boolean false` to `c` ++ +* Equality equals with the `def` type. ++ +[source, Painless] +---- +<1> def a = 0; +<2> def b = 1; +<3> boolean c = a == b; +<4> def d = new HashMap(); +<5> def e = new ArrayList(); +<6> c = d == e; +---- ++ +<1> declare `def a`; + implicit cast `int 0` to `def` -> `def`; + store `def` to `a`; +<2> declare `def b`; + implicit cast `int 1` to `def` -> `def`; + store `def` to `b`; +<3> declare `boolean c`; + load from `a` -> `def`; + implicit cast `a` to `int 0` -> `int 0`; + load from `b` -> `def`; + implicit cast `b` to `int 1` -> `int 1`; + equality equals `int 0` and `int 1` -> `boolean false`; + store `boolean false` to `c` +<4> declare `def d`; + allocate `HashMap` instance -> `HashMap reference`; + implicit cast `HashMap reference` to `def` -> `def` + store `def` to `d`; +<5> declare `def e`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `def` -> `def` + store `def` to `d`; +<6> load from `d` -> `def`; + implicit cast `def` to `HashMap reference` -> `HashMap reference`; + load from `e` -> `def`; + implicit cast `def` to `ArrayList reference` -> `ArrayList reference`; + call `equals` on `HashMap reference` with arguments (`ArrayList reference`) + -> `boolean false`; + store `boolean false` to `c` + +[[equality-not-equals-operator]] +==== Equality Not Equals + +Use the `equality not equals operator '!='` to COMPARE two values where a +resultant `boolean` type value is `true` if the two values are NOT equal and +`false` otherwise. The member method, `equals`, is implicitly called when the +values are reference type values where the first value is the target of the call +and the second value is the argument with the resultant `boolean` type value +flipped. This operation is `null-safe` where if both values are `null` the +resultant `boolean` type value is `false`, and if only one value is `null` the +resultant `boolean` type value is `true`. A valid comparison is between boolean +type values, numeric type values, or reference type values. + +*Errors* + +* If a comparison is made between a `boolean` type value and numeric type value. +* If a comparison is made between a primitive type value and a reference type + value. + +*Grammar* + +[source,ANTLR4] +---- +equality_not_equals: expression '!=' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1"] +|==== +| | boolean | byte | short | char | int | long | float | double | Reference | def +| boolean | boolean | - | - | - | - | - | - | - | - | def +| byte | - | int | int | int | int | long | float | double | - | def +| short | - | int | int | int | int | long | float | double | - | def +| char | - | int | int | int | int | long | float | double | - | def +| int | - | int | int | int | int | long | float | double | - | def +| long | - | long | long | long | long | long | float | double | - | def +| float | - | float | float | float | float | float | float | double | - | def +| double | - | double | double | double | double | double | double | double | - | def +| Reference | - | - | - | - | - | - | - | - | Object | def +| def | def | def | def | def | def | def | def | def | def | def +|==== + +*Examples* + +* Equality not equals with the `boolean` type. ++ +[source,Painless] +---- +<1> boolean a = true; +<2> boolean b = false; +<3> a = a != false; +<4> b = a != b; +---- ++ +<1> declare `boolean a`; + store `boolean true` to `a` +<2> declare `boolean b`; + store `boolean false` to `b` +<3> load from `a` -> `boolean true`; + equality not equals `boolean true` and `boolean false` -> `boolean true`; + store `boolean true` to `a` +<4> load from `a` -> `boolean true`; + load from `b` -> `boolean false`; + equality not equals `boolean true` and `boolean false` -> `boolean true`; + store `boolean true` to `b` ++ +* Equality not equals with primitive types. ++ +[source,Painless] +---- +<1> int a = 1; +<2> double b = 2.0; +<3> boolean c = a != b; +<4> c = 1 != a; +---- ++ +<1> declare `int a`; + store `int 1` to `a` +<2> declare `double b`; + store `double 1.0` to `b` +<3> declare `boolean c`; + load from `a` -> `int 1`; + load from `b` -> `double 2.0`; + promote `int 1` and `double 2.0`: result `double`; + implicit cast `int 1` to `double 1.0` -> `double `1.0`; + equality not equals `double 1.0` and `double 2.0` -> `boolean true`; + store `boolean true` to `c` +<4> load from `a` -> `int 1 @1`; + equality not equals `int 1 @0` and `int 1 @1` -> `boolean false`; + store `boolean false` to `c` ++ +* Equality not equals with reference types. ++ +[source,Painless] +---- +<1> List a = new ArrayList(); +<2> List b = new ArrayList(); +<3> a.add(1); +<4> boolean c = a == b; +<5> b.add(1); +<6> c = a == b; +---- ++ +<1> declare `List a`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `List reference` -> `List reference`; + store `List reference` to `a` +<2> declare `List b`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `List reference` -> `List reference`; + store `List reference` to `b` +<3> load from `a` -> `List reference`; + call `add` on `List reference` with arguments (`int 1)` +<4> declare `boolean c`; + load from `a` -> `List reference @0`; + load from `b` -> `List reference @1`; + call `equals` on `List reference @0` with arguments (`List reference @1`) + -> `boolean false`; + boolean not `boolean false` -> `boolean true` + store `boolean true` to `c` +<5> load from `b` -> `List reference`; + call `add` on `List reference` with arguments (`int 1`) +<6> load from `a` -> `List reference @0`; + load from `b` -> `List reference @1`; + call `equals` on `List reference @0` with arguments (`List reference @1`) + -> `boolean true`; + boolean not `boolean true` -> `boolean false`; + store `boolean false` to `c` ++ +* Equality not equals with `null`. ++ +[source,Painless] +---- +<1> Object a = null; +<2> Object b = null; +<3> boolean c = a == null; +<4> c = a == b; +<5> b = new Object(); +<6> c = a == b; +---- ++ +<1> declare `Object a`; + store `null` to `a` +<2> declare `Object b`; + store `null` to `b` +<3> declare `boolean c`; + load from `a` -> `null @0`; + equality not equals `null @0` and `null @1` -> `boolean false`; + store `boolean false` to `c` +<4> load from `a` -> `null @0`; + load from `b` -> `null @1`; + equality not equals `null @0` and `null @1` -> `boolean false`; + store `boolean false` to `c` +<5> allocate `Object` instance -> `Object reference`; + store `Object reference` to `b` +<6> load from `a` -> `Object reference`; + load from `b` -> `null`; + call `equals` on `Object reference` with arguments (`null`) + -> `boolean false`; + boolean not `boolean false` -> `boolean true`; + store `boolean true` to `c` ++ +* Equality not equals with the `def` type. ++ +[source, Painless] +---- +<1> def a = 0; +<2> def b = 1; +<3> boolean c = a == b; +<4> def d = new HashMap(); +<5> def e = new ArrayList(); +<6> c = d == e; +---- ++ +<1> declare `def a`; + implicit cast `int 0` to `def` -> `def`; + store `def` to `a`; +<2> declare `def b`; + implicit cast `int 1` to `def` -> `def`; + store `def` to `b`; +<3> declare `boolean c`; + load from `a` -> `def`; + implicit cast `a` to `int 0` -> `int 0`; + load from `b` -> `def`; + implicit cast `b` to `int 1` -> `int 1`; + equality equals `int 0` and `int 1` -> `boolean false`; + store `boolean false` to `c` +<4> declare `def d`; + allocate `HashMap` instance -> `HashMap reference`; + implicit cast `HashMap reference` to `def` -> `def` + store `def` to `d`; +<5> declare `def e`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `def` -> `def` + store `def` to `d`; +<6> load from `d` -> `def`; + implicit cast `def` to `HashMap reference` -> `HashMap reference`; + load from `e` -> `def`; + implicit cast `def` to `ArrayList reference` -> `ArrayList reference`; + call `equals` on `HashMap reference` with arguments (`ArrayList reference`) + -> `boolean false`; + store `boolean false` to `c` + +[[identity-equals-operator]] +==== Identity Equals + +Use the `identity equals operator '==='` to COMPARE two values where a resultant +`boolean` type value is `true` if the two values are equal and `false` +otherwise. A reference type value is equal to another reference type value if +both values refer to same instance on the heap or if both values are `null`. A +valid comparison is between `boolean` type values, numeric type values, or +reference type values. + +*Errors* + +* If a comparison is made between a `boolean` type value and numeric type value. +* If a comparison is made between a primitive type value and a reference type + value. + +*Grammar* + +[source,ANTLR4] +---- +identity_equals: expression '===' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1"] +|==== +| | boolean | byte | short | char | int | long | float | double | Reference | def +| boolean | boolean | - | - | - | - | - | - | - | - | def +| byte | - | int | int | int | int | long | float | double | - | def +| short | - | int | int | int | int | long | float | double | - | def +| char | - | int | int | int | int | long | float | double | - | def +| int | - | int | int | int | int | long | float | double | - | def +| long | - | long | long | long | long | long | float | double | - | def +| float | - | float | float | float | float | float | float | double | - | def +| double | - | double | double | double | double | double | double | double | - | def +| Reference | - | - | - | - | - | - | - | - | Object | def +| def | def | def | def | def | def | def | def | def | def | def +|==== + +*Examples* + +* Identity equals with reference types. ++ +[source,Painless] +---- +<1> List a = new ArrayList(); +<2> List b = new ArrayList(); +<3> List c = a; +<4> boolean c = a === b; +<5> c = a === c; +---- ++ +<1> declare `List a`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `List reference` -> `List reference`; + store `List reference` to `a` +<2> declare `List b`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `List reference` -> `List reference`; + store `List reference` to `b` +<3> load from `a` -> `List reference`; + store `List reference` to `c` +<4> declare `boolean c`; + load from `a` -> `List reference @0`; + load from `b` -> `List reference @1`; + identity equals `List reference @0` and `List reference @1` + -> `boolean false` + store `boolean false` to `c` +<5> load from `a` -> `List reference @0`; + load from `c` -> `List reference @1`; + identity equals `List reference @0` and `List reference @1` + -> `boolean true` + store `boolean true` to `c` + (note `List reference @0` and `List reference @1` refer to the same + instance) ++ +* Identity equals with `null`. ++ +[source,Painless] +---- +<1> Object a = null; +<2> Object b = null; +<3> boolean c = a === null; +<4> c = a === b; +<5> b = new Object(); +<6> c = a === b; +---- ++ +<1> declare `Object a`; + store `null` to `a` +<2> declare `Object b`; + store `null` to `b` +<3> declare `boolean c`; + load from `a` -> `null @0`; + identity equals `null @0` and `null @1` -> `boolean true`; + store `boolean true` to `c` +<4> load from `a` -> `null @0`; + load from `b` -> `null @1`; + identity equals `null @0` and `null @1` -> `boolean true`; + store `boolean true` to `c` +<5> allocate `Object` instance -> `Object reference`; + store `Object reference` to `b` +<6> load from `a` -> `Object reference`; + load from `b` -> `null`; + identity equals `Object reference` and `null` -> `boolean false`; + store `boolean false` to `c` ++ +* Identity equals with the `def` type. ++ +[source, Painless] +---- +<1> def a = new HashMap(); +<2> def b = new ArrayList(); +<3> boolean c = a === b; +<4> b = a; +<5> c = a === b; +---- ++ +<1> declare `def d`; + allocate `HashMap` instance -> `HashMap reference`; + implicit cast `HashMap reference` to `def` -> `def` + store `def` to `d` +<2> declare `def e`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `def` -> `def` + store `def` to `d` +<3> declare `boolean c`; + load from `a` -> `def`; + implicit cast `def` to `HashMap reference` -> `HashMap reference`; + load from `b` -> `def`; + implicit cast `def` to `ArrayList reference` -> `ArrayList reference`; + identity equals `HashMap reference` and `ArrayList reference` + -> `boolean false`; + store `boolean false` to `c` +<4> load from `a` -> `def`; + store `def` to `b` +<5> load from `a` -> `def`; + implicit cast `def` to `HashMap reference @0` -> `HashMap reference @0`; + load from `b` -> `def`; + implicit cast `def` to `HashMap reference @1` -> `HashMap reference @1`; + identity equals `HashMap reference @0` and `HashMap reference @1` + -> `boolean true`; + store `boolean true` to `b`; + (note `HashMap reference @0` and `HashMap reference @1` refer to the same + instance) + +[[identity-not-equals-operator]] +==== Identity Not Equals + +Use the `identity not equals operator '!=='` to COMPARE two values where a +resultant `boolean` type value is `true` if the two values are NOT equal and +`false` otherwise. A reference type value is not equal to another reference type +value if both values refer to different instances on the heap or if one value is +`null` and the other is not. A valid comparison is between `boolean` type +values, numeric type values, or reference type values. + +*Errors* + +* If a comparison is made between a `boolean` type value and numeric type value. +* If a comparison is made between a primitive type value and a reference type + value. + +*Grammar* + +[source,ANTLR4] +---- +identity_not_equals: expression '!==' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1,^1,^1,^1,^1"] +|==== +| | boolean | byte | short | char | int | long | float | double | Reference | def +| boolean | boolean | - | - | - | - | - | - | - | - | def +| byte | - | int | int | int | int | long | float | double | - | def +| short | - | int | int | int | int | long | float | double | - | def +| char | - | int | int | int | int | long | float | double | - | def +| int | - | int | int | int | int | long | float | double | - | def +| long | - | long | long | long | long | long | float | double | - | def +| float | - | float | float | float | float | float | float | double | - | def +| double | - | double | double | double | double | double | double | double | - | def +| Reference | - | - | - | - | - | - | - | - | Object | def +| def | def | def | def | def | def | def | def | def | def | def +|==== + +*Examples* + +* Identity not equals with reference type values. ++ +[source,Painless] +---- +<1> List a = new ArrayList(); +<2> List b = new ArrayList(); +<3> List c = a; +<4> boolean c = a !== b; +<5> c = a !== c; +---- ++ +<1> declare `List a`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `List reference` -> `List reference`; + store `List reference` to `a` +<2> declare `List b`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `List reference` -> `List reference`; + store `List reference` to `b` +<3> load from `a` -> `List reference`; + store `List reference` to `c` +<4> declare `boolean c`; + load from `a` -> `List reference @0`; + load from `b` -> `List reference @1`; + identity not equals `List reference @0` and `List reference @1` + -> `boolean true` + store `boolean true` to `c` +<5> load from `a` -> `List reference @0`; + load from `c` -> `List reference @1`; + identity not equals `List reference @0` and `List reference @1` + -> `boolean false` + store `boolean false` to `c` + (note `List reference @0` and `List reference @1` refer to the same + instance) ++ +* Identity not equals with `null`. ++ +[source,Painless] +---- +<1> Object a = null; +<2> Object b = null; +<3> boolean c = a !== null; +<4> c = a !== b; +<5> b = new Object(); +<6> c = a !== b; +---- ++ +<1> declare `Object a`; + store `null` to `a` +<2> declare `Object b`; + store `null` to `b` +<3> declare `boolean c`; + load from `a` -> `null @0`; + identity not equals `null @0` and `null @1` -> `boolean false`; + store `boolean false` to `c` +<4> load from `a` -> `null @0`; + load from `b` -> `null @1`; + identity not equals `null @0` and `null @1` -> `boolean false`; + store `boolean false` to `c` +<5> allocate `Object` instance -> `Object reference`; + store `Object reference` to `b` +<6> load from `a` -> `Object reference`; + load from `b` -> `null`; + identity not equals `Object reference` and `null` -> `boolean true`; + store `boolean true` to `c` ++ +* Identity not equals with the `def` type. ++ +[source, Painless] +---- +<1> def a = new HashMap(); +<2> def b = new ArrayList(); +<3> boolean c = a !== b; +<4> b = a; +<5> c = a !== b; +---- ++ +<1> declare `def d`; + allocate `HashMap` instance -> `HashMap reference`; + implicit cast `HashMap reference` to `def` -> `def` + store `def` to `d` +<2> declare `def e`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `def` -> `def` + store `def` to `d` +<3> declare `boolean c`; + load from `a` -> `def`; + implicit cast `def` to `HashMap reference` -> `HashMap reference`; + load from `b` -> `def`; + implicit cast `def` to `ArrayList reference` -> `ArrayList reference`; + identity not equals `HashMap reference` and `ArrayList reference` + -> `boolean true`; + store `boolean true` to `c` +<4> load from `a` -> `def`; + store `def` to `b` +<5> load from `a` -> `def`; + implicit cast `def` to `HashMap reference @0` -> `HashMap reference @0`; + load from `b` -> `def`; + implicit cast `def` to `HashMap reference @1` -> `HashMap reference @1`; + identity not equals `HashMap reference @0` and `HashMap reference @1` + -> `boolean false`; + store `boolean false` to `b`; + (note `HashMap reference @0` and `HashMap reference @1` refer to the same + instance) + +[[boolean-xor-operator]] +==== Boolean Xor + +Use the `boolean xor operator '^'` to XOR together two `boolean` type values +where if one `boolean` type value is `true` and the other is `false` the +resultant `boolean` type value is `true` and `false` otherwise. + +*Errors* + +* If either evaluated value is a value other than a `boolean` type value or + a value that is castable to a `boolean` type value. + +*Truth* + +[cols="^1,^1,^1"] +|==== +| | true | false +| true | false | true +| false | true | false +|==== + +*Grammar* + +[source,ANTLR4] +---- +boolean_xor: expression '^' expression; +---- + +*Examples* + +* Boolean xor with the `boolean` type. ++ +[source,Painless] +---- +<1> boolean x = false; +<2> boolean y = x ^ true; +<3> y = y ^ x; +---- ++ +<1> declare `boolean x`; + store `boolean false` to `x` +<2> declare `boolean y`; + load from `x` -> `boolean false` + boolean xor `boolean false` and `boolean true` -> `boolean true`; + store `boolean true` to `y` +<3> load from `y` -> `boolean true @0`; + load from `x` -> `boolean true @1`; + boolean xor `boolean true @0` and `boolean true @1` -> `boolean false`; + store `boolean false` to `y` ++ +* Boolean xor with the `def` type. ++ +[source,Painless] +---- +<1> def x = false; +<2> def y = x ^ true; +<3> y = y ^ x; +---- ++ +<1> declare `def x`; + implicit cast `boolean false` to `def` -> `def`; + store `def` to `x` +<2> declare `def y`; + load from `x` -> `def`; + implicit cast `def` to `boolean false` -> `boolean false`; + boolean xor `boolean false` and `boolean true` -> `boolean true`; + implicit cast `boolean true` to `def` -> `def`; + store `def` to `y` +<3> load from `y` -> `def`; + implicit cast `def` to `boolean true @0` -> `boolean true @0`; + load from `x` -> `def`; + implicit cast `def` to `boolean true @1` -> `boolean true @1`; + boolean xor `boolean true @0` and `boolean true @1` -> `boolean false`; + implicit cast `boolean false` -> `def`; + store `def` to `y` + +[[boolean-and-operator]] +==== Boolean And + +Use the `boolean and operator '&&'` to AND together two `boolean` type values +where if both `boolean` type values are `true` the resultant `boolean` type +value is `true` and `false` otherwise. + +*Errors* + +* If either evaluated value is a value other than a `boolean` type value or + a value that is castable to a `boolean` type value. + +*Truth* + +[cols="^1,^1,^1"] +|==== +| | true | false +| true | true | false +| false | false | false +|==== + +*Grammar* + +[source,ANTLR4] +---- +boolean_and: expression '&&' expression; +---- + +*Examples* + +* Boolean and with the `boolean` type. ++ +[source,Painless] +---- +<1> boolean x = true; +<2> boolean y = x && true; +<3> x = false; +<4> y = y && x; +---- ++ +<1> declare `boolean x`; + store `boolean true` to `x` +<2> declare `boolean y`; + load from `x` -> `boolean true @0`; + boolean and `boolean true @0` and `boolean true @1` -> `boolean true`; + store `boolean true` to `y` +<3> store `boolean false` to `x` +<4> load from `y` -> `boolean true`; + load from `x` -> `boolean false`; + boolean and `boolean true` and `boolean false` -> `boolean false`; + store `boolean false` to `y` ++ +* Boolean and with the `def` type. ++ +[source,Painless] +---- +<1> def x = true; +<2> def y = x && true; +<3> x = false; +<4> y = y && x; +---- ++ +<1> declare `def x`; + implicit cast `boolean true` to `def` -> `def`; + store `def` to `x` +<2> declare `def y`; + load from `x` -> `def`; + implicit cast `def` to `boolean true @0` -> `boolean true @0`; + boolean and `boolean true @0` and `boolean true @1` -> `boolean true`; + implicit cast `boolean true` to `def` -> `def`; + store `def` to `y` +<3> implicit cast `boolean false` to `def` -> `def`; + store `def` to `x`; +<4> load from `y` -> `def`; + implicit cast `def` to `boolean true` -> `boolean true`; + load from `x` -> `def`; + implicit cast `def` to `boolean false` -> `boolean false`; + boolean and `boolean true` and `boolean false` -> `boolean false`; + implicit cast `boolean false` -> `def`; + store `def` to `y` + +[[boolean-or-operator]] +==== Boolean Or + +Use the `boolean or operator '||'` to OR together two `boolean` type values +where if either one of the `boolean` type values is `true` the resultant +`boolean` type value is `true` and `false` otherwise. + +*Errors* + +* If either evaluated value is a value other than a `boolean` type value or + a value that is castable to a `boolean` type value. + +*Truth* + +[cols="^1,^1,^1"] +|==== +| | true | false +| true | true | true +| false | true | false +|==== + +*Grammar:* +[source,ANTLR4] +---- +boolean_and: expression '||' expression; +---- + +*Examples* + +* Boolean or with the `boolean` type. ++ +[source,Painless] +---- +<1> boolean x = false; +<2> boolean y = x || true; +<3> y = false; +<4> y = y || x; +---- ++ +<1> declare `boolean x`; + store `boolean false` to `x` +<2> declare `boolean y`; + load from `x` -> `boolean false`; + boolean or `boolean false` and `boolean true` -> `boolean true`; + store `boolean true` to `y` +<3> store `boolean false` to `y` +<4> load from `y` -> `boolean false @0`; + load from `x` -> `boolean false @1`; + boolean or `boolean false @0` and `boolean false @1` -> `boolean false`; + store `boolean false` to `y` ++ +* Boolean or with the `def` type. ++ +[source,Painless] +---- +<1> def x = false; +<2> def y = x || true; +<3> y = false; +<4> y = y || x; +---- ++ +<1> declare `def x`; + implicit cast `boolean false` to `def` -> `def`; + store `def` to `x` +<2> declare `def y`; + load from `x` -> `def`; + implicit cast `def` to `boolean false` -> `boolean true`; + boolean or `boolean false` and `boolean true` -> `boolean true`; + implicit cast `boolean true` to `def` -> `def`; + store `def` to `y` +<3> implicit cast `boolean false` to `def` -> `def`; + store `def` to `y`; +<4> load from `y` -> `def`; + implicit cast `def` to `boolean false @0` -> `boolean false @0`; + load from `x` -> `def`; + implicit cast `def` to `boolean false @1` -> `boolean false @1`; + boolean or `boolean false @0` and `boolean false @1` -> `boolean false`; + implicit cast `boolean false` -> `def`; + store `def` to `y` diff --git a/docs/painless/painless-operators-general.asciidoc b/docs/painless/painless-operators-general.asciidoc new file mode 100644 index 00000000000..9bd057432fb --- /dev/null +++ b/docs/painless/painless-operators-general.asciidoc @@ -0,0 +1,432 @@ +[[painless-operators-general]] +=== Operators: General + +[[precedence-operator]] +==== Precedence + +Use the `precedence operator '()'` to guarantee the order of evaluation for an +expression. An expression encapsulated by the precedence operator (enclosed in +parentheses) overrides existing precedence relationships between operators and +is evaluated prior to other expressions in inward-to-outward order. + +*Grammar* + +[source,ANTLR4] +---- +precedence: '(' expression ')'; +---- + +*Examples* + +* Precedence with numeric operators. ++ +[source,Painless] +---- +<1> int x = (5+4)*6; +<2> int y = 12/(x-50); +---- ++ +<1> declare `int x`; + add `int 5` and `int 4` -> `int 9`; + multiply `int 9` and `int 6` -> `int 54`; + store `int 54` to `x`; + (note the add is evaluated before the multiply due to the precedence + operator) +<2> declare `int y`; + load from `x` -> `int 54`; + subtract `int 50` from `int 54` -> `int 4`; + divide `int 12` by `int 4` -> `int 3`; + store `int 3` to `y`; + (note the subtract is evaluated before the divide due to the precedence + operator) + +[[function-call-operator]] +==== Function Call + +Use the `function call operator ()` to call an existing function. A +<> is defined within a script. + +*Grammar* + +[source,ANTLR4] +---- +function_call: ID '(' ( expression (',' expression)* )? ')''; +---- + +*Examples* + +* A function call. ++ +[source,Painless] +---- +<1> int add(int x, int y) { + return x + y; + } + +<2> int z = add(1, 2); +---- ++ +<1> define function `add` that returns `int` and has parameters (`int x`, + `int y`) +<2> declare `int z`; + call `add` with arguments (`int 1`, `int 2`) -> `int 3`; + store `int 3` to `z` + +[[cast-operator]] +==== Cast + +An explicit cast converts the value of an original type to the equivalent value +of a target type forcefully as an operation. Use the `cast operator '()'` to +specify an explicit cast. Refer to <> for more +information. + +[[conditional-operator]] +==== Conditional + +A conditional consists of three expressions. The first expression is evaluated +with an expected boolean result type. If the first expression evaluates to true +then the second expression will be evaluated. If the first expression evaluates +to false then the third expression will be evaluated. The second and third +expressions will be <> if the evaluated values are not the +same type. Use the `conditional operator '? :'` as a shortcut to avoid the need +for a full if/else branch in certain expressions. + +*Errors* + +* If the first expression does not evaluate to a boolean type value. +* If the values for the second and third expressions cannot be promoted. + +*Grammar* + +[source,ANTLR4] +---- +conditional: expression '?' expression ':' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1,^1,^1,^1"] +|==== +| | byte | short | char | int | long | float | double | Reference | def +| byte | int | int | int | int | long | float | double | - | def +| short | int | int | int | int | long | float | double | - | def +| char | int | int | int | int | long | float | double | - | def +| int | int | int | int | int | long | float | double | - | def +| long | long | long | long | long | long | float | double | - | def +| float | float | float | float | float | float | float | double | - | def +| double | double | double | double | double | double | double | double | - | def +| Reference | - | - | - | - | - | - | - | Object @ | def +| def | def | def | def | def | def | def | def | def | def +|==== + +@ If the two reference type values are the same then this promotion will not +occur. + +*Examples* + +* Evaluation of conditionals. ++ +[source,Painless] +---- +<1> boolean b = true; +<2> int x = b ? 1 : 2; +<3> List y = x > 1 ? new ArrayList() : null; +<4> def z = x < 2 ? x : 2.0; +---- ++ +<1> declare `boolean b`; + store `boolean true` to `b` +<2> declare `int x`; + load from `b` -> `boolean true` + evaluate 1st expression: `int 1` -> `int 1`; + store `int 1` to `x` +<3> declare `List y`; + load from `x` -> `int 1`; + `int 1` greater than `int 1` -> `boolean false`; + evaluate 2nd expression: `null` -> `null`; + store `null` to `y`; +<4> declare `def z`; + load from `x` -> `int 1`; + `int 1` less than `int 2` -> `boolean true`; + evaluate 1st expression: load from `x` -> `int 1`; + promote `int 1` and `double 2.0`: result `double`; + implicit cast `int 1` to `double 1.0` -> `double 1.0`; + implicit cast `double 1.0` to `def` -> `def`; + store `def` to `z`; + +[[assignment-operator]] +==== Assignment + +Use the `assignment operator '='` to store a value in a variable or reference +type member field for use in subsequent operations. Any operation that produces +a value can be assigned to any variable/field as long as the +<> are the same or the resultant type can be +<> to the variable/field type. + +See <> for examples using variables. + +*Errors* + +* If the type of value is unable to match the type of variable or field. + +*Grammar* + +[source,ANTLR4] +---- +assignment: field '=' expression +---- + +*Examples* + +The examples use the following reference type definition: + +[source,Painless] +---- +name: + Example + +non-static member fields: + * int x + * def y + * List z +---- + +* Field assignments of different type values. ++ +[source,Painless] +---- +<1> Example example = new Example(); +<2> example.x = 1; +<3> example.y = 2.0; +<4> example.z = new ArrayList(); +---- ++ +<1> declare `Example example`; + allocate `Example` instance -> `Example reference`; + store `Example reference` to `example` +<2> load from `example` -> `Example reference`; + store `int 1` to `x` of `Example reference` +<3> load from `example` -> `Example reference`; + implicit cast `double 2.0` to `def` -> `def`; + store `def` to `y` of `Example reference` +<4> load from `example` -> `Example reference`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `List reference` -> `List reference`; + store `List reference` to `z` of `Example reference` ++ +* A field assignment from a field access. ++ +[source,Painless] +---- +<1> Example example = new Example(); +<2> example.x = 1; +<3> example.y = example.x; +---- ++ +<1> declare `Example example`; + allocate `Example` instance -> `Example reference`; + store `Example reference` to `example` +<2> load from `example` -> `Example reference`; + store `int 1` to `x` of `Example reference` +<3> load from `example` -> `Example reference @0`; + load from `example` -> `Example reference @1`; + load from `x` of `Example reference @1` -> `int 1`; + implicit cast `int 1` to `def` -> `def`; + store `def` to `y` of `Example reference @0`; + (note `Example reference @0` and `Example reference @1` are the same) + +[[compound-assignment-operator]] +==== Compound Assignment + +Use the `compound assignment operator '$='` as a shortcut for an assignment +where a binary operation would occur between the variable/field as the +left-hand side expression and a separate right-hand side expression. + +A compound assignment is equivalent to the expression below where V is the +variable/field and T is the type of variable/member. + +[source,Painless] +---- +V = (T)(V op expression); +---- + +*Operators* + +The table below shows the available operators for use in a compound assignment. +Each operator follows the casting/promotion rules according to their regular +definition. For numeric operations there is an extra implicit cast when +necessary to return the promoted numeric type value to the original numeric type +value of the variable/field and can result in data loss. + +|==== +|Operator|Compound Symbol +|Multiplication|*= +|Division|/= +|Remainder|%= +|Addition|+= +|Subtraction|-= +|Left Shift|<<= +|Right Shift|>>= +|Unsigned Right Shift|>>>= +|Bitwise And|&= +|Boolean And|&= +|Bitwise Xor|^= +|Boolean Xor|^= +|Bitwise Or|\|= +|Boolean Or|\|= +|String Concatenation|+= +|==== + +*Errors* + +* If the type of value is unable to match the type of variable or field. + +*Grammar* + +[source,ANTLR4] +---- +compound_assignment: ( ID | field ) '$=' expression; +---- + +Note the use of the `$=` represents the use of any of the possible binary +operators. + +*Examples* + +* Compound assignment for each numeric operator. ++ +[source,Painless] +---- +<1> int i = 10; +<2> i *= 2; +<3> i /= 5; +<4> i %= 3; +<5> i += 5; +<6> i -= 5; +<7> i <<= 2; +<8> i >>= 1; +<9> i >>>= 1; +<10> i &= 15; +<11> i ^= 12; +<12> i |= 2; +---- ++ +<1> declare `int i`; + store `int 10` to `i` +<2> load from `i` -> `int 10`; + multiply `int 10` and `int 2` -> `int 20`; + store `int 20` to `i`; + (note this is equivalent to `i = i*2`) +<3> load from `i` -> `int 20`; + divide `int 20` by `int 5` -> `int 4`; + store `int 4` to `i`; + (note this is equivalent to `i = i/5`) +<4> load from `i` -> `int 4`; + remainder `int 4` by `int 3` -> `int 1`; + store `int 1` to `i`; + (note this is equivalent to `i = i%3`) +<5> load from `i` -> `int 1`; + add `int 1` and `int 5` -> `int 6`; + store `int 6` to `i`; + (note this is equivalent to `i = i+5`) +<6> load from `i` -> `int 6`; + subtract `int 5` from `int 6` -> `int 1`; + store `int 1` to `i`; + (note this is equivalent to `i = i-5`) +<7> load from `i` -> `int 1`; + left shift `int 1` by `int 2` -> `int 4`; + store `int 4` to `i`; + (note this is equivalent to `i = i<<2`) +<8> load from `i` -> `int 4`; + right shift `int 4` by `int 1` -> `int 2`; + store `int 2` to `i`; + (note this is equivalent to `i = i>>1`) +<9> load from `i` -> `int 2`; + unsigned right shift `int 2` by `int 1` -> `int 1`; + store `int 1` to `i`; + (note this is equivalent to `i = i>>>1`) +<10> load from `i` -> `int 1`; + bitwise and `int 1` and `int 15` -> `int 1`; + store `int 1` to `i`; + (note this is equivalent to `i = i&2`) +<11> load from `i` -> `int 1`; + bitwise xor `int 1` and `int 12` -> `int 13`; + store `int 13` to `i`; + (note this is equivalent to `i = i^2`) +<12> load from `i` -> `int 13`; + bitwise or `int 13` and `int 2` -> `int 15`; + store `int 15` to `i`; + (note this is equivalent to `i = i|2`) ++ +* Compound assignment for each boolean operator. ++ +[source,Painless] +---- +<1> boolean b = true; +<2> b &= false; +<3> b ^= false; +<4> b |= true; +---- ++ +<1> declare `boolean b`; + store `boolean true` in `b`; +<2> load from `b` -> `boolean true`; + boolean and `boolean true` and `boolean false` -> `boolean false`; + store `boolean false` to `b`; + (note this is equivalent to `b = b && false`) +<3> load from `b` -> `boolean false`; + boolean xor `boolean false` and `boolean false` -> `boolean false`; + store `boolean false` to `b`; + (note this is equivalent to `b = b ^ false`) +<4> load from `b` -> `boolean true`; + boolean or `boolean false` and `boolean true` -> `boolean true`; + store `boolean true` to `b`; + (note this is equivalent to `b = b || true`) ++ +* A compound assignment with the string concatenation operator. ++ +[source,Painless] +---- +<1> String s = 'compound'; +<2> s += ' assignment'; +---- +<1> declare `String s`; + store `String 'compound'` to `s`; +<2> load from `s` -> `String 'compound'`; + string concat `String 'compound'` and `String ' assignment''` + -> `String 'compound assignment'`; + store `String 'compound assignment'` to `s`; + (note this is equivalent to `s = s + ' assignment'`) ++ +* A compound assignment with the `def` type. ++ +[source,Painless] +---- +<1> def x = 1; +<2> x += 2; +---- +<1> declare `def x`; + implicit cast `int 1` to `def`; + store `def` to `x`; +<2> load from `x` -> `def`; + implicit cast `def` to `int 1` -> `int 1`; + add `int 1` and `int 2` -> `int 3`; + implicit cast `int 3` to `def` -> `def`; + store `def` to `x`; + (note this is equivalent to `x = x+2`) ++ +* A compound assignment with an extra implicit cast. ++ +[source,Painless] +---- +<1> byte b = 1; +<2> b += 2; +---- +<1> declare `byte b`; + store `byte 1` to `x`; +<2> load from `x` -> `byte 1`; + implicit cast `byte 1 to `int 1` -> `int 1`; + add `int 1` and `int 2` -> `int 3`; + implicit cast `int 3` to `byte 3` -> `byte 3`; + store `byte 3` to `b`; + (note this is equivalent to `b = b+2`) diff --git a/docs/painless/painless-operators-numeric.asciidoc b/docs/painless/painless-operators-numeric.asciidoc new file mode 100644 index 00000000000..d39b895908f --- /dev/null +++ b/docs/painless/painless-operators-numeric.asciidoc @@ -0,0 +1,1339 @@ +[[painless-operators-numeric]] +=== Operators: Numeric + +[[post-increment-operator]] +==== Post Increment + +Use the `post increment operator '++'` to INCREASE the value of a numeric type +variable/field by `1`. An extra implicit cast is necessary to return the +promoted numeric type value to the original numeric type value of the +variable/field for the following types: `byte`, `short`, and `char`. If a +variable/field is read as part of an expression the value is loaded prior to the +increment. + +*Errors* + +* If the variable/field is a non-numeric type. + +*Grammar* + +[source,ANTLR4] +---- +post_increment: ( variable | field ) '++'; +---- + +*Promotion* + +[options="header",cols="<1,<1,<1"] +|==== +| original | promoted | implicit +| byte | int | byte +| short | int | short +| char | int | char +| int | int | +| long | long | +| float | float | +| double | double | +| def | def | +|==== + +*Examples* + +* Post increment with different numeric types. ++ +[source,Painless] +---- +<1> short i = 0; +<2> i++; +<3> long j = 1; +<4> long k; +<5> k = j++; +---- ++ +<1> declare `short i`; + store `short 0` to `i` +<2> load from `i` -> `short 0`; + promote `short 0`: result `int`; + add `int 0` and `int 1` -> `int 1`; + implicit cast `int 1` to `short 1`; + store `short 1` to `i` +<3> declare `long j`; + implicit cast `int 1` to `long 1` -> `long 1`; + store `long 1` to `j` +<4> declare `long k`; + store default `long 0` to `k` +<5> load from `j` -> `long 1`; + store `long 1` to `k`; + add `long 1` and `long 1` -> `long 2`; + store `long 2` to `j` ++ +* Post increment with the `def` type. ++ +[source,Painless] +---- +<1> def x = 1; +<2> x++; +---- ++ +<1> declare `def x`; + implicit cast `int 1` to `def` -> `def`; + store `def` to `x` +<2> load from `x` -> `def`; + implicit cast `def` to `int 1`; + add `int 1` and `int 1` -> `int 2`; + implicit cast `int 2` to `def`; + store `def` to `x` + +[[post-decrement-operator]] +==== Post Decrement + +Use the `post decrement operator '--'` to DECREASE the value of a numeric type +variable/field by `1`. An extra implicit cast is necessary to return the +promoted numeric type value to the original numeric type value of the +variable/field for the following types: `byte`, `short`, and `char`. If a +variable/field is read as part of an expression the value is loaded prior to +the decrement. + +*Errors* + +* If the variable/field is a non-numeric type. + +*Grammar* + +[source,ANTLR4] +---- +post_decrement: ( variable | field ) '--'; +---- + +*Promotion* + +[options="header",cols="<1,<1,<1"] +|==== +| original | promoted | implicit +| byte | int | byte +| short | int | short +| char | int | char +| int | int | +| long | long | +| float | float | +| double | double | +| def | def | +|==== + +*Examples* + +* Post decrement with different numeric types. ++ +[source,Painless] +---- +<1> short i = 0; +<2> i--; +<3> long j = 1; +<4> long k; +<5> k = j--; +---- ++ +<1> declare `short i`; + store `short 0` to `i` +<2> load from `i` -> `short 0`; + promote `short 0`: result `int`; + subtract `int 1` from `int 0` -> `int -1`; + implicit cast `int -1` to `short -1`; + store `short -1` to `i` +<3> declare `long j`; + implicit cast `int 1` to `long 1` -> `long 1`; + store `long 1` to `j` +<4> declare `long k`; + store default `long 0` to `k` +<5> load from `j` -> `long 1`; + store `long 1` to `k`; + subtract `long 1` from `long 1` -> `long 0`; + store `long 0` to `j` ++ +* Post decrement with the `def` type. ++ +[source,Painless] +---- +<1> def x = 1; +<2> x--; +---- ++ +<1> declare `def x`; + implicit cast `int 1` to `def` -> `def`; + store `def` to `x` +<2> load from `x` -> `def`; + implicit cast `def` to `int 1`; + subtract `int 1` from `int 1` -> `int 0`; + implicit cast `int 0` to `def`; + store `def` to `x` + +[[pre-increment-operator]] +==== Pre Increment + +Use the `pre increment operator '++'` to INCREASE the value of a numeric type +variable/field by `1`. An extra implicit cast is necessary to return the +promoted numeric type value to the original numeric type value of the +variable/field for the following types: `byte`, `short`, and `char`. If a +variable/field is read as part of an expression the value is loaded after the +increment. + +*Errors* + +* If the variable/field is a non-numeric type. + +*Grammar* + +[source,ANTLR4] +---- +pre_increment: '++' ( variable | field ); +---- + +*Promotion* + +[options="header",cols="<1,<1,<1"] +|==== +| original | promoted | implicit +| byte | int | byte +| short | int | short +| char | int | char +| int | int | +| long | long | +| float | float | +| double | double | +| def | def | +|==== + +*Examples* + +* Pre increment with different numeric types. ++ +[source,Painless] +---- +<1> short i = 0; +<2> ++i; +<3> long j = 1; +<4> long k; +<5> k = ++j; +---- ++ +<1> declare `short i`; + store `short 0` to `i` +<2> load from `i` -> `short 0`; + promote `short 0`: result `int`; + add `int 0` and `int 1` -> `int 1`; + implicit cast `int 1` to `short 1`; + store `short 1` to `i` +<3> declare `long j`; + implicit cast `int 1` to `long 1` -> `long 1`; + store `long 1` to `j` +<4> declare `long k`; + store default `long 0` to `k` +<5> load from `j` -> `long 1`; + add `long 1` and `long 1` -> `long 2`; + store `long 2` to `j`; + store `long 2` to `k` ++ +* Pre increment with the `def` type. ++ +[source,Painless] +---- +<1> def x = 1; +<2> ++x; +---- ++ +<1> declare `def x`; + implicit cast `int 1` to `def` -> `def`; + store `def` to `x` +<2> load from `x` -> `def`; + implicit cast `def` to `int 1`; + add `int 1` and `int 1` -> `int 2`; + implicit cast `int 2` to `def`; + store `def` to `x` + +[[pre-decrement-operator]] +==== Pre Decrement + +Use the `pre decrement operator '--'` to DECREASE the value of a numeric type +variable/field by `1`. An extra implicit cast is necessary to return the +promoted numeric type value to the original numeric type value of the +variable/field for the following types: `byte`, `short`, and `char`. If a +variable/field is read as part of an expression the value is loaded after the +decrement. + +*Errors* + +* If the variable/field is a non-numeric type. + +*Grammar* + +[source,ANTLR4] +---- +pre_increment: '--' ( variable | field ); +---- + +*Promotion* + +[options="header",cols="<1,<1,<1"] +|==== +| original | promoted | implicit +| byte | int | byte +| short | int | short +| char | int | char +| int | int | +| long | long | +| float | float | +| double | double | +| def | def | +|==== + +*Examples* + +* Pre decrement with different numeric types. ++ +[source,Painless] +---- +<1> short i = 0; +<2> --i; +<3> long j = 1; +<4> long k; +<5> k = --j; +---- ++ +<1> declare `short i`; + store `short 0` to `i` +<2> load from `i` -> `short 0`; + promote `short 0`: result `int`; + subtract `int 1` from `int 0` -> `int -1`; + implicit cast `int -1` to `short -1`; + store `short -1` to `i` +<3> declare `long j`; + implicit cast `int 1` to `long 1` -> `long 1`; + store `long 1` to `j` +<4> declare `long k`; + store default `long 0` to `k` +<5> load from `j` -> `long 1`; + subtract `long 1` from `long 1` -> `long 0`; + store `long 0` to `j` + store `long 0` to `k`; ++ +* Pre decrement operator with the `def` type. ++ +[source,Painless] +---- +<1> def x = 1; +<2> --x; +---- ++ +<1> declare `def x`; + implicit cast `int 1` to `def` -> `def`; + store `def` to `x` +<2> load from `x` -> `def`; + implicit cast `def` to `int 1`; + subtract `int 1` from `int 1` -> `int 0`; + implicit cast `int 0` to `def`; + store `def` to `x` + +[[unary-positive-operator]] +==== Unary Positive + +Use the `unary positive operator '+'` to the preserve the IDENTITY of a +numeric type value. + +*Errors* + +* If the value is a non-numeric type. + +*Grammar* + +[source,ANTLR4] +---- +unary_positive: '+' expression; +---- + +*Examples* + +* Unary positive with different numeric types. ++ +[source,Painless] +---- +<1> int x = +1; +<2> long y = +x; +---- ++ +<1> declare `int x`; + identity `int 1` -> `int 1`; + store `int 1` to `x` +<2> declare `long y`; + load from `x` -> `int 1`; + identity `int 1` -> `int 1`; + implicit cast `int 1` to `long 1` -> `long 1`; + store `long 1` to `y` ++ +* Unary positive with the `def` type. ++ +[source,Painless] +---- +<1> def z = +1; +<2> int i = +z; +---- +<1> declare `def z`; + identity `int 1` -> `int 1`; + implicit cast `int 1` to `def`; + store `def` to `z` +<2> declare `int i`; + load from `z` -> `def`; + implicit cast `def` to `int 1`; + identity `int 1` -> `int 1`; + store `int 1` to `i`; + +[[unary-negative-operator]] +==== Unary Negative + +Use the `unary negative operator '-'` to NEGATE a numeric type value. + +*Errors* + +* If the value is a non-numeric type. + +*Grammar* + +[source,ANTLR4] +---- +unary_negative: '-' expression; +---- + +*Examples* + +* Unary negative with different numeric types. ++ +[source,Painless] +---- +<1> int x = -1; +<2> long y = -x; +---- ++ +<1> declare `int x`; + negate `int 1` -> `int -1`; + store `int -1` to `x` +<2> declare `long y`; + load from `x` -> `int 1`; + negate `int -1` -> `int 1`; + implicit cast `int 1` to `long 1` -> `long 1`; + store `long 1` to `y` ++ +* Unary negative with the `def` type. ++ +[source,Painless] +---- +<1> def z = -1; +<2> int i = -z; +---- +<1> declare `def z`; + negate `int 1` -> `int -1`; + implicit cast `int -1` to `def`; + store `def` to `z` +<2> declare `int i`; + load from `z` -> `def`; + implicit cast `def` to `int -1`; + negate `int -1` -> `int 1`; + store `int 1` to `i`; + +[[bitwise-not-operator]] +==== Bitwise Not + +Use the `bitwise not operator '~'` to NOT each bit in an integer type value +where a `1-bit` is flipped to a resultant `0-bit` and a `0-bit` is flipped to a +resultant `1-bit`. + +*Errors* + +* If the value is a non-integer type. + +*Bits* + +[options="header",cols="<1,<1"] +|==== +| original | result +| 1 | 0 +| 0 | 1 +|==== + +*Grammar* + +[source,ANTLR4] +---- +bitwise_not: '~' expression; +---- + +*Promotion* + +[options="header",cols="<1,<1"] +|==== +| original | promoted +| byte | int +| short | int +| char | int +| int | int +| long | long +| def | def +|==== + +*Examples* + +* Bitwise not with different numeric types. ++ +[source,Painless] +---- +<1> byte b = 1; +<2> int i = ~b; +<3> long l = ~i; +---- ++ +<1> declare `byte x`; + store `byte 1` to b +<2> declare `int i`; + load from `b` -> `byte 1`; + implicit cast `byte 1` to `int 1` -> `int 1`; + bitwise not `int 1` -> `int -2`; + store `int -2` to `i` +<3> declare `long l`; + load from `i` -> `int -2`; + implicit cast `int -2` to `long -2` -> `long -2`; + bitwise not `long -2` -> `long 1`; + store `long 1` to `l` ++ +* Bitwise not with the `def` type. ++ +[source,Painless] +---- +<1> def d = 1; +<2> def e = ~d; +---- ++ +<1> declare `def d`; + implicit cast `int 1` to `def` -> `def`; + store `def` to `d`; +<2> declare `def e`; + load from `d` -> `def`; + implicit cast `def` to `int 1` -> `int 1`; + bitwise not `int 1` -> `int -2`; + implicit cast `int 1` to `def` -> `def`; + store `def` to `e` + +[[multiplication-operator]] +==== Multiplication + +Use the `multiplication operator '*'` to MULTIPLY together two numeric type +values. Rules for resultant overflow and NaN values follow the JVM +specification. + +*Errors* + +* If either of the values is a non-numeric type. + +*Grammar* + +[source,ANTLR4] +---- +multiplication: expression '*' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1,^1,^1"] +|==== +| | byte | short | char | int | long | float | double | def +| byte | int | int | int | int | long | float | double | def +| short | int | int | int | int | long | float | double | def +| char | int | int | int | int | long | float | double | def +| int | int | int | int | int | long | float | double | def +| long | long | long | long | long | long | float | double | def +| float | float | float | float | float | float | float | double | def +| double | double | double | double | double | double | double | double | def +| def | def | def | def | def | def | def | def | def +|==== + +*Examples* + +* Multiplication with different numeric types. ++ +[source,Painless] +---- +<1> int i = 5*4; +<2> double d = i*7.0; +---- ++ +<1> declare `int i`; + multiply `int 4` by `int 5` -> `int 20`; + store `int 20` in `i` +<2> declare `double d`; + load from `int i` -> `int 20`; + promote `int 20` and `double 7.0`: result `double`; + implicit cast `int 20` to `double 20.0` -> `double 20.0`; + multiply `double 20.0` by `double 7.0` -> `double 140.0`; + store `double 140.0` to `d` ++ +* Multiplication with the `def` type. ++ +[source,Painless] +---- +<1> def x = 5*4; +<2> def y = x*2; +---- +<1> declare `def x`; + multiply `int 5` by `int 4` -> `int 20`; + implicit cast `int 20` to `def` -> `def`; + store `def` in `x` +<2> declare `def y`; + load from `x` -> `def`; + implicit cast `def` to `int 20`; + multiply `int 20` by `int 2` -> `int 40`; + implicit cast `int 40` to `def` -> `def`; + store `def` to `y` + +[[division-operator]] +==== Division + +Use the `division operator '/'` to DIVIDE one numeric type value by another. +Rules for NaN values and division by zero follow the JVM specification. Division +with integer values drops the remainder of the resultant value. + +*Errors* + +* If either of the values is a non-numeric type. +* If a left-hand side integer type value is divided by a right-hand side integer + type value of `0`. + +*Grammar* + +[source,ANTLR4] +---- +division: expression '/' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1,^1,^1"] +|==== +| | byte | short | char | int | long | float | double | def +| byte | int | int | int | int | long | float | double | def +| short | int | int | int | int | long | float | double | def +| char | int | int | int | int | long | float | double | def +| int | int | int | int | int | long | float | double | def +| long | long | long | long | long | long | float | double | def +| float | float | float | float | float | float | float | double | def +| double | double | double | double | double | double | double | double | def +| def | def | def | def | def | def | def | def | def +|==== + +*Examples* + +* Division with different numeric types. ++ +[source,Painless] +---- +<1> int i = 29/4; +<2> double d = i/7.0; +---- ++ +<1> declare `int i`; + divide `int 29` by `int 4` -> `int 7`; + store `int 7` in `i` +<2> declare `double d`; + load from `int i` -> `int 7`; + promote `int 7` and `double 7.0`: result `double`; + implicit cast `int 7` to `double 7.0` -> `double 7.0`; + divide `double 7.0` by `double 7.0` -> `double 1.0`; + store `double 1.0` to `d` ++ +* Division with the `def` type. ++ +[source,Painless] +---- +<1> def x = 5/4; +<2> def y = x/2; +---- +<1> declare `def x`; + divide `int 5` by `int 4` -> `int 1`; + implicit cast `int 1` to `def` -> `def`; + store `def` in `x` +<2> declare `def y`; + load from `x` -> `def`; + implicit cast `def` to `int 1`; + divide `int 1` by `int 2` -> `int 0`; + implicit cast `int 0` to `def` -> `def`; + store `def` to `y` + +[[remainder-operator]] +==== Remainder + +Use the `remainder operator '%'` to calculate the REMAINDER for division +between two numeric type values. Rules for NaN values and division by zero follow the JVM +specification. + +*Errors* + +* If either of the values is a non-numeric type. + +*Grammar* + +[source,ANTLR4] +---- +remainder: expression '%' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1,^1,^1"] +|==== +| | byte | short | char | int | long | float | double | def +| byte | int | int | int | int | long | float | double | def +| short | int | int | int | int | long | float | double | def +| char | int | int | int | int | long | float | double | def +| int | int | int | int | int | long | float | double | def +| long | long | long | long | long | long | float | double | def +| float | float | float | float | float | float | float | double | def +| double | double | double | double | double | double | double | double | def +| def | def | def | def | def | def | def | def | def +|==== + +*Examples* + +* Remainder with different numeric types. ++ +[source,Painless] +---- +<1> int i = 29%4; +<2> double d = i%7.0; +---- ++ +<1> declare `int i`; + remainder `int 29` by `int 4` -> `int 1`; + store `int 7` in `i` +<2> declare `double d`; + load from `int i` -> `int 1`; + promote `int 1` and `double 7.0`: result `double`; + implicit cast `int 1` to `double 1.0` -> `double 1.0`; + remainder `double 1.0` by `double 7.0` -> `double 1.0`; + store `double 1.0` to `d` ++ +* Remainder with the `def` type. ++ +[source,Painless] +---- +<1> def x = 5%4; +<2> def y = x%2; +---- +<1> declare `def x`; + remainder `int 5` by `int 4` -> `int 1`; + implicit cast `int 1` to `def` -> `def`; + store `def` in `x` +<2> declare `def y`; + load from `x` -> `def`; + implicit cast `def` to `int 1`; + remainder `int 1` by `int 2` -> `int 1`; + implicit cast `int 1` to `def` -> `def`; + store `def` to `y` + +[[addition-operator]] +==== Addition + +Use the `addition operator '+'` to ADD together two numeric type values. Rules +for resultant overflow and NaN values follow the JVM specification. + +*Errors* + +* If either of the values is a non-numeric type. + +*Grammar* + +[source,ANTLR4] +---- +addition: expression '+' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1,^1,^1"] +|==== +| | byte | short | char | int | long | float | double | def +| byte | int | int | int | int | long | float | double | def +| short | int | int | int | int | long | float | double | def +| char | int | int | int | int | long | float | double | def +| int | int | int | int | int | long | float | double | def +| long | long | long | long | long | long | float | double | def +| float | float | float | float | float | float | float | double | def +| double | double | double | double | double | double | double | double | def +| def | def | def | def | def | def | def | def | def +|==== + +*Examples* + +* Addition operator with different numeric types. ++ +[source,Painless] +---- +<1> int i = 29+4; +<2> double d = i+7.0; +---- ++ +<1> declare `int i`; + add `int 29` and `int 4` -> `int 33`; + store `int 33` in `i` +<2> declare `double d`; + load from `int i` -> `int 33`; + promote `int 33` and `double 7.0`: result `double`; + implicit cast `int 33` to `double 33.0` -> `double 33.0`; + add `double 33.0` and `double 7.0` -> `double 40.0`; + store `double 40.0` to `d` ++ +* Addition with the `def` type. ++ +[source,Painless] +---- +<1> def x = 5+4; +<2> def y = x+2; +---- +<1> declare `def x`; + add `int 5` and `int 4` -> `int 9`; + implicit cast `int 9` to `def` -> `def`; + store `def` in `x` +<2> declare `def y`; + load from `x` -> `def`; + implicit cast `def` to `int 9`; + add `int 9` and `int 2` -> `int 11`; + implicit cast `int 11` to `def` -> `def`; + store `def` to `y` + +[[subtraction-operator]] +==== Subtraction + +Use the `subtraction operator '-'` to SUBTRACT a right-hand side numeric type +value from a left-hand side numeric type value. Rules for resultant overflow +and NaN values follow the JVM specification. + +*Errors* + +* If either of the values is a non-numeric type. + +*Grammar* + +[source,ANTLR4] +---- +subtraction: expression '-' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1,^1,^1"] +|==== +| | byte | short | char | int | long | float | double | def +| byte | int | int | int | int | long | float | double | def +| short | int | int | int | int | long | float | double | def +| char | int | int | int | int | long | float | double | def +| int | int | int | int | int | long | float | double | def +| long | long | long | long | long | long | float | double | def +| float | float | float | float | float | float | float | double | def +| double | double | double | double | double | double | double | double | def +| def | def | def | def | def | def | def | def | def +|==== + +*Examples* + +* Subtraction with different numeric types. ++ +[source,Painless] +---- +<1> int i = 29-4; +<2> double d = i-7.5; +---- ++ +<1> declare `int i`; + subtract `int 4` from `int 29` -> `int 25`; + store `int 25` in `i` +<2> declare `double d` + load from `int i` -> `int 25`; + promote `int 25` and `double 7.5`: result `double`; + implicit cast `int 25` to `double 25.0` -> `double 25.0`; + subtract `double 33.0` by `double 7.5` -> `double 25.5`; + store `double 25.5` to `d` ++ +* Subtraction with the `def` type. ++ +[source,Painless] +---- +<1> def x = 5-4; +<2> def y = x-2; +---- +<1> declare `def x`; + subtract `int 4` and `int 5` -> `int 1`; + implicit cast `int 1` to `def` -> `def`; + store `def` in `x` +<2> declare `def y`; + load from `x` -> `def`; + implicit cast `def` to `int 1`; + subtract `int 2` from `int 1` -> `int -1`; + implicit cast `int -1` to `def` -> `def`; + store `def` to `y` + +[[left-shift-operator]] +==== Left Shift + +Use the `left shift operator '<<'` to SHIFT lower order bits to higher order +bits in a left-hand side integer type value by the distance specified in a +right-hand side integer type value. + +*Errors* + +* If either of the values is a non-integer type. +* If the right-hand side value cannot be cast to an int type. + +*Grammar* + +[source,ANTLR4] +---- +left_shift: expression '<<' expression; +---- + +*Promotion* + +The left-hand side integer type value is promoted as specified in the table +below. The right-hand side integer type value is always implicitly cast to an +`int` type value and truncated to the number of bits of the promoted type value. + +[options="header",cols="<1,<1"] +|==== +| original | promoted +| byte | int +| short | int +| char | int +| int | int +| long | long +| def | def +|==== + +*Examples* + +* Left shift with different integer types. ++ +[source,Painless] +---- +<1> int i = 4 << 1; +<2> long l = i << 2L; +---- ++ +<1> declare `int i`; + left shift `int 4` by `int 1` -> `int 8`; + store `int 8` in `i` +<2> declare `long l` + load from `int i` -> `int 8`; + implicit cast `long 2` to `int 2` -> `int 2`; + left shift `int 8` by `int 2` -> `int 32`; + implicit cast `int 32` to `long 32` -> `long 32`; + store `long 32` to `l` ++ +* Left shift with the `def` type. ++ +[source,Painless] +---- +<1> def x = 4 << 2; +<2> def y = x << 1; +---- +<1> declare `def x`; + left shift `int 4` by `int 2` -> `int 16`; + implicit cast `int 16` to `def` -> `def`; + store `def` in `x` +<2> declare `def y`; + load from `x` -> `def`; + implicit cast `def` to `int 16`; + left shift `int 16` by `int 1` -> `int 32`; + implicit cast `int 32` to `def` -> `def`; + store `def` to `y` + +[[right-shift-operator]] +==== Right Shift + +Use the `right shift operator '>>'` to SHIFT higher order bits to lower order +bits in a left-hand side integer type value by the distance specified in a +right-hand side integer type value. The highest order bit of the left-hand side +integer type value is preserved. + +*Errors* + +* If either of the values is a non-integer type. +* If the right-hand side value cannot be cast to an int type. + +*Grammar* + +[source,ANTLR4] +---- +right_shift: expression '>>' expression; +---- + +*Promotion* + +The left-hand side integer type value is promoted as specified in the table +below. The right-hand side integer type value is always implicitly cast to an +`int` type value and truncated to the number of bits of the promoted type value. + +[options="header",cols="<1,<1"] +|==== +| original | promoted +| byte | int +| short | int +| char | int +| int | int +| long | long +| def | def +|==== + +*Examples* + +* Right shift with different integer types. ++ +[source,Painless] +---- +<1> int i = 32 >> 1; +<2> long l = i >> 2L; +---- ++ +<1> declare `int i`; + right shift `int 32` by `int 1` -> `int 16`; + store `int 16` in `i` +<2> declare `long l` + load from `int i` -> `int 16`; + implicit cast `long 2` to `int 2` -> `int 2`; + right shift `int 16` by `int 2` -> `int 4`; + implicit cast `int 4` to `long 4` -> `long 4`; + store `long 4` to `l` ++ +* Right shift with the `def` type. ++ +[source,Painless] +---- +<1> def x = 16 >> 2; +<2> def y = x >> 1; +---- +<1> declare `def x`; + right shift `int 16` by `int 2` -> `int 4`; + implicit cast `int 4` to `def` -> `def`; + store `def` in `x` +<2> declare `def y`; + load from `x` -> `def`; + implicit cast `def` to `int 4`; + right shift `int 4` by `int 1` -> `int 2`; + implicit cast `int 2` to `def` -> `def`; + store `def` to `y` + +[[unsigned-right-shift-operator]] +==== Unsigned Right Shift + +Use the `unsigned right shift operator '>>>'` to SHIFT higher order bits to +lower order bits in a left-hand side integer type value by the distance +specified in a right-hand side type integer value. The highest order bit of the +left-hand side integer type value is *not* preserved. + +*Errors* + +* If either of the values is a non-integer type. +* If the right-hand side value cannot be cast to an int type. + +*Grammar* + +[source,ANTLR4] +---- +unsigned_right_shift: expression '>>>' expression; +---- + +*Promotion* + +The left-hand side integer type value is promoted as specified in the table +below. The right-hand side integer type value is always implicitly cast to an +`int` type value and truncated to the number of bits of the promoted type value. + +[options="header",cols="<1,<1"] +|==== +| original | promoted +| byte | int +| short | int +| char | int +| int | int +| long | long +| def | def +|==== + +*Examples* + +* Unsigned right shift with different integer types. ++ +[source,Painless] +---- +<1> int i = -1 >>> 29; +<2> long l = i >>> 2L; +---- ++ +<1> declare `int i`; + unsigned right shift `int -1` by `int 29` -> `int 7`; + store `int 7` in `i` +<2> declare `long l` + load from `int i` -> `int 7`; + implicit cast `long 2` to `int 2` -> `int 2`; + unsigned right shift `int 7` by `int 2` -> `int 3`; + implicit cast `int 3` to `long 3` -> `long 3`; + store `long 3` to `l` ++ +* Unsigned right shift with the `def` type. ++ +[source,Painless] +---- +<1> def x = 16 >>> 2; +<2> def y = x >>> 1; +---- +<1> declare `def x`; + unsigned right shift `int 16` by `int 2` -> `int 4`; + implicit cast `int 4` to `def` -> `def`; + store `def` in `x` +<2> declare `def y`; + load from `x` -> `def`; + implicit cast `def` to `int 4`; + unsigned right shift `int 4` by `int 1` -> `int 2`; + implicit cast `int 2` to `def` -> `def`; + store `def` to `y` + +[[bitwise-and-operator]] +==== Bitwise And + +Use the `bitwise and operator '&'` to AND together each bit within two +integer type values where if both bits at the same index are `1` the resultant +bit is `1` and `0` otherwise. + +*Errors* + +* If either of the values is a non-integer type. + +*Bits* + +[cols="^1,^1,^1"] +|==== +| | 1 | 0 +| 1 | 1 | 0 +| 0 | 0 | 0 +|==== + +*Grammar* + +[source,ANTLR4] +---- +bitwise_and: expression '&' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1"] +|==== +| | byte | short | char | int | long | def +| byte | int | int | int | int | long | def +| short | int | int | int | int | long | def +| char | int | int | int | int | long | def +| int | int | int | int | int | long | def +| long | long | long | long | long | long | def +| def | def | def | def | def | def | def +|==== + +*Examples* + +* Bitwise and with different integer types. ++ +[source,Painless] +---- +<1> int i = 5 & 6; +<2> long l = i & 5L; +---- ++ +<1> declare `int i`; + bitwise and `int 5` and `int 6` -> `int 4`; + store `int 4` in `i` +<2> declare `long l` + load from `int i` -> `int 4`; + promote `int 4` and `long 5`: result `long`; + implicit cast `int 4` to `long 4` -> `long 4`; + bitwise and `long 4` and `long 5` -> `long 4`; + store `long 4` to `l` ++ +* Bitwise and with the `def` type. ++ +[source,Painless] +---- +<1> def x = 15 & 6; +<2> def y = x & 5; +---- +<1> declare `def x`; + bitwise and `int 15` and `int 6` -> `int 6`; + implicit cast `int 6` to `def` -> `def`; + store `def` in `x` +<2> declare `def y`; + load from `x` -> `def`; + implicit cast `def` to `int 6`; + bitwise and `int 6` and `int 5` -> `int 4`; + implicit cast `int 4` to `def` -> `def`; + store `def` to `y` + +[[bitwise-xor-operator]] +==== Bitwise Xor + +Use the `bitwise xor operator '^'` to XOR together each bit within two integer +type values where if one bit is a `1` and the other bit is a `0` at the same +index the resultant bit is `1` otherwise the resultant bit is `0`. + +*Errors* + +* If either of the values is a non-integer type. + +*Bits* + +The following table illustrates the resultant bit from the xoring of two bits. + +[cols="^1,^1,^1"] +|==== +| | 1 | 0 +| 1 | 0 | 1 +| 0 | 1 | 0 +|==== + +*Grammar* + +[source,ANTLR4] +---- +bitwise_and: expression '^' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1"] +|==== +| | byte | short | char | int | long | def +| byte | int | int | int | int | long | def +| short | int | int | int | int | long | def +| char | int | int | int | int | long | def +| int | int | int | int | int | long | def +| long | long | long | long | long | long | def +| def | def | def | def | def | def | def +|==== + +*Examples* + +* Bitwise xor with different integer types. ++ +[source,Painless] +---- +<1> int i = 5 ^ 6; +<2> long l = i ^ 5L; +---- ++ +<1> declare `int i`; + bitwise xor `int 5` and `int 6` -> `int 3`; + store `int 3` in `i` +<2> declare `long l` + load from `int i` -> `int 4`; + promote `int 3` and `long 5`: result `long`; + implicit cast `int 3` to `long 3` -> `long 3`; + bitwise xor `long 3` and `long 5` -> `long 6`; + store `long 6` to `l` ++ +* Bitwise xor with the `def` type. ++ +[source,Painless] +---- +<1> def x = 15 ^ 6; +<2> def y = x ^ 5; +---- +<1> declare `def x`; + bitwise xor `int 15` and `int 6` -> `int 9`; + implicit cast `int 9` to `def` -> `def`; + store `def` in `x` +<2> declare `def y`; + load from `x` -> `def`; + implicit cast `def` to `int 9`; + bitwise xor `int 9` and `int 5` -> `int 12`; + implicit cast `int 12` to `def` -> `def`; + store `def` to `y` + +[[bitwise-or-operator]] +==== Bitwise Or + +Use the `bitwise or operator '|'` to OR together each bit within two integer +type values where if at least one bit is a `1` at the same index the resultant +bit is `1` otherwise the resultant bit is `0`. + +*Errors* + +* If either of the values is a non-integer type. + +*Bits* + +The following table illustrates the resultant bit from the oring of two bits. + +[cols="^1,^1,^1"] +|==== +| | 1 | 0 +| 1 | 1 | 1 +| 0 | 1 | 0 +|==== + +*Grammar* + +[source,ANTLR4] +---- +bitwise_and: expression '|' expression; +---- + +*Promotion* + +[cols="<1,^1,^1,^1,^1,^1,^1"] +|==== +| | byte | short | char | int | long | def +| byte | int | int | int | int | long | def +| short | int | int | int | int | long | def +| char | int | int | int | int | long | def +| int | int | int | int | int | long | def +| long | long | long | long | long | long | def +| def | def | def | def | def | def | def +|==== + +*Examples* + +* Bitwise or with different integer types. ++ +[source,Painless] +---- +<1> int i = 5 | 6; +<2> long l = i | 8L; +---- ++ +<1> declare `int i`; + bitwise or `int 5` and `int 6` -> `int 7`; + store `int 7` in `i` +<2> declare `long l` + load from `int i` -> `int 7`; + promote `int 7` and `long 8`: result `long`; + implicit cast `int 7` to `long 7` -> `long 7`; + bitwise or `long 7` and `long 8` -> `long 15`; + store `long 15` to `l` ++ +* Bitwise or with the `def` type. ++ +[source,Painless] +---- +<1> def x = 5 ^ 6; +<2> def y = x ^ 8; +---- +<1> declare `def x`; + bitwise or `int 5` and `int 6` -> `int 7`; + implicit cast `int 7` to `def` -> `def`; + store `def` in `x` +<2> declare `def y`; + load from `x` -> `def`; + implicit cast `def` to `int 7`; + bitwise or `int 7` and `int 8` -> `int 15`; + implicit cast `int 15` to `def` -> `def`; + store `def` to `y` \ No newline at end of file diff --git a/docs/painless/painless-operators-reference.asciidoc b/docs/painless/painless-operators-reference.asciidoc new file mode 100644 index 00000000000..487fcce15f3 --- /dev/null +++ b/docs/painless/painless-operators-reference.asciidoc @@ -0,0 +1,774 @@ +[[painless-operators-reference]] +=== Operators: Reference + +[[method-call-operator]] +==== Method Call + +Use the `method call operator '()'` to call a member method on a +<> value. Implicit +<> is evaluated as necessary per argument +during the method call. When a method call is made on a target `def` type value, +the parameters and return type value are considered to also be of the `def` type +and are evaluated at run-time. + +An overloaded method is one that shares the same name with two or more methods. +A method is overloaded based on arity where the same name is re-used for +multiple methods as long as the number of parameters differs. + +*Errors* + +* If the reference type value is `null`. +* If the member method name doesn't exist for a given reference type value. +* If the number of arguments passed in is different from the number of specified + parameters. +* If the arguments cannot be implicitly cast or implicitly boxed/unboxed to the + correct type values for the parameters. + +*Grammar* + +[source,ANTLR4] +---- +method_call: '.' ID arguments; +arguments: '(' (expression (',' expression)*)? ')'; +---- + +*Examples* + +* Method calls on different reference types. ++ +[source,Painless] +---- +<1> Map m = new HashMap(); +<2> m.put(1, 2); +<3> int z = m.get(1); +<4> def d = new ArrayList(); +<5> d.add(1); +<6> int i = Integer.parseInt(d.get(0).toString()); +---- ++ +<1> declare `Map m`; + allocate `HashMap` instance -> `HashMap reference`; + store `HashMap reference` to `m` +<2> load from `m` -> `Map reference`; + implicit cast `int 1` to `def` -> `def`; + implicit cast `int 2` to `def` -> `def`; + call `put` on `Map reference` with arguments (`int 1`, `int 2`) +<3> declare `int z`; + load from `m` -> `Map reference`; + call `get` on `Map reference` with arguments (`int 1`) -> `def`; + implicit cast `def` to `int 2` -> `int 2`; + store `int 2` to `z` +<4> declare `def d`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList` to `def` -> `def`; + store `def` to `d` +<5> load from `d` -> `def`; + implicit cast `def` to `ArrayList reference` -> `ArrayList reference` + call `add` on `ArrayList reference` with arguments (`int 1`); +<6> declare `int i`; + load from `d` -> `def`; + implicit cast `def` to `ArrayList reference` -> `ArrayList reference` + call `get` on `ArrayList reference` with arguments (`int 1`) -> `def`; + implicit cast `def` to `Integer 1 reference` -> `Integer 1 reference`; + call `toString` on `Integer 1 reference` -> `String '1'`; + call `parseInt` on `Integer` with arguments (`String '1'`) -> `int 1`; + store `int 1` in `i`; + +[[field-access-operator]] +==== Field Access + +Use the `field access operator '.'` to store a value to or load a value from a +<> member field. + +*Errors* + +* If the reference type value is `null`. +* If the member field name doesn't exist for a given reference type value. + +*Grammar* + +[source,ANTLR4] +---- +field_access: '.' ID; +---- + +*Examples* + +The examples use the following reference type definition: + +[source,Painless] +---- +name: + Example + +non-static member fields: + * int x + * def y + * List z +---- + +* Field access with the `Example` type. ++ +[source,Painless] +---- +<1> Example example = new Example(); +<2> example.x = 1; +<3> example.y = example.x; +<4> example.z = new ArrayList(); +<5> example.z.add(1); +<6> example.x = example.z.get(0); +---- ++ +<1> declare `Example example`; + allocate `Example` instance -> `Example reference`; + store `Example reference` to `example` +<2> load from `example` -> `Example reference`; + store `int 1` to `x` of `Example reference` +<3> load from `example` -> `Example reference @0`; + load from `example` -> `Example reference @1`; + load from `x` of `Example reference @1` -> `int 1`; + implicit cast `int 1` to `def` -> `def`; + store `def` to `y` of `Example reference @0`; + (note `Example reference @0` and `Example reference @1` are the same) +<4> load from `example` -> `Example reference`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `List reference` -> `List reference`; + store `List reference` to `z` of `Example reference` +<5> load from `example` -> `Example reference`; + load from `z` of `Example reference` -> `List reference`; + call `add` on `List reference` with arguments (`int 1`) +<6> load from `example` -> `Example reference @0`; + load from `example` -> `Example reference @1`; + load from `z` of `Example reference @1` -> `List reference`; + call `get` on `List reference` with arguments (`int 0`) -> `int 1`; + store `int 1` in `x` of `List reference @0`; + (note `Example reference @0` and `Example reference @1` are the same) + +[[null-safe-operator]] +==== Null Safe + +Use the `null safe operator '?.'` instead of the method call operator or field +access operator to ensure a reference type value is `non-null` before +a method call or field access. A `null` value will be returned if the reference +type value is `null`, otherwise the method call or field access is evaluated. + +*Errors* + +* If the method call return type value or the field access type value is not + a reference type value and is not implicitly castable to a reference type + value. + +*Grammar* + +[source,ANTLR4] +---- +null_safe: null_safe_method_call + | null_safe_field_access + ; + +null_safe_method_call: '?.' ID arguments; +arguments: '(' (expression (',' expression)*)? ')'; + +null_safe_field_access: '?.' ID; +---- + +*Examples* + +The examples use the following reference type definition: + +[source,Painless] +---- +name: + Example + +non-static member methods: + * List factory() + +non-static member fields: + * List x +---- + +* Null safe without a `null` value. ++ +[source,Painless] +---- +<1> Example example = new Example(); +<2> List x = example?.factory(); +---- ++ +<1> declare `Example example`; + allocate `Example` instance -> `Example reference`; + store `Example reference` to `example` +<2> declare `List x`; + load from `example` -> `Example reference`; + null safe call `factory` on `Example reference` -> `List reference`; + store `List reference` to `x`; ++ +* Null safe with a `null` value; ++ +[source,Painless] +---- +<1> Example example = null; +<2> List x = example?.x; +---- +<1> declare `Example example`; + store `null` to `example` +<2> declare `List x`; + load from `example` -> `Example reference`; + null safe access `x` on `Example reference` -> `null`; + store `null` to `x`; + (note the *null safe operator* returned `null` because `example` is `null`) + +[[list-initialization-operator]] +==== List Initialization + +Use the `list initialization operator '[]'` to allocate an `List` type instance +to the heap with a set of pre-defined values. Each value used to initialize the +`List` type instance is cast to a `def` type value upon insertion into the +`List` type instance using the `add` method. The order of the specified values +is maintained. + +*Grammar* + +[source,ANTLR4] +---- +list_initialization: '[' expression (',' expression)* ']' + | '[' ']'; +---- + +*Examples* + +* List initialization of an empty `List` type value. ++ +[source,Painless] +---- +<1> List empty = []; +---- ++ +<1> declare `List empty`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `List reference` -> `List reference`; + store `List reference` to `empty` ++ +* List initialization with static values. ++ +[source,Painless] +---- +<1> List list = [1, 2, 3]; +---- ++ +<1> declare `List list`; + allocate `ArrayList` instance -> `ArrayList reference`; + call `add` on `ArrayList reference` with arguments(`int 1`); + call `add` on `ArrayList reference` with arguments(`int 2`); + call `add` on `ArrayList reference` with arguments(`int 3`); + implicit cast `ArrayList reference` to `List reference` -> `List reference`; + store `List reference` to `list` ++ +* List initialization with non-static values. ++ +[source,Painless] +---- +<1> int i = 1; +<2> long l = 2L; +<3> float f = 3.0F; +<4> double d = 4.0; +<5> String s = "5"; +<6> List list = [i, l, f*d, s]; +---- ++ +<1> declare `int i`; + store `int 1` to `i` +<2> declare `long l`; + store `long 2` to `l` +<3> declare `float f`; + store `float 3.0` to `f` +<4> declare `double d`; + store `double 4.0` to `d` +<5> declare `String s`; + store `String "5"` to `s` +<6> declare `List list`; + allocate `ArrayList` instance -> `ArrayList reference`; + load from `i` -> `int 1`; + call `add` on `ArrayList reference` with arguments(`int 1`); + load from `l` -> `long 2`; + call `add` on `ArrayList reference` with arguments(`long 2`); + load from `f` -> `float 3.0`; + load from `d` -> `double 4.0`; + promote `float 3.0` and `double 4.0`: result `double`; + implicit cast `float 3.0` to `double 3.0` -> `double 3.0`; + multiply `double 3.0` and `double 4.0` -> `double 12.0`; + call `add` on `ArrayList reference` with arguments(`double 12.0`); + load from `s` -> `String "5"`; + call `add` on `ArrayList reference` with arguments(`String "5"`); + implicit cast `ArrayList reference` to `List reference` -> `List reference`; + store `List reference` to `list` + +[[list-access-operator]] +==== List Access + +Use the `list access operator '[]'` as a shortcut for a `set` method call or +`get` method call made on a `List` type value. + +*Errors* + +* If a value other than a `List` type value is accessed. +* If a non-integer type value is used as an index for a `set` method call or + `get` method call. + +*Grammar* + +[source,ANTLR4] +---- +list_access: '[' expression ']' +---- + +*Examples* + +* List access with the `List` type. ++ +[source,Painless] +---- +<1> List list = new ArrayList(); +<2> list.add(1); +<3> list.add(2); +<4> list.add(3); +<5> list[0] = 2; +<6> list[1] = 5; +<7> int x = list[0] + list[1]; +<8> int y = 1; +<9> int z = list[y]; +---- ++ +<1> declare `List list`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `List reference` -> `List reference`; + store `List reference` to `list` +<2> load from `list` -> `List reference`; + call `add` on `List reference` with arguments(`int 1`) +<3> load from `list` -> `List reference`; + call `add` on `List reference` with arguments(`int 2`) +<4> load from `list` -> `List reference`; + call `add` on `List reference` with arguments(`int 3`) +<5> load from `list` -> `List reference`; + call `set` on `List reference` with arguments(`int 0`, `int 2`) +<6> load from `list` -> `List reference`; + call `set` on `List reference` with arguments(`int 1`, `int 5`) +<7> declare `int x`; + load from `list` -> `List reference`; + call `get` on `List reference` with arguments(`int 0`) -> `def`; + implicit cast `def` to `int 2` -> `int 2`; + load from `list` -> `List reference`; + call `get` on `List reference` with arguments(`int 1`) -> `def`; + implicit cast `def` to `int 5` -> `int 5`; + add `int 2` and `int 5` -> `int 7`; + store `int 7` to `x` +<8> declare `int y`; + store `int 1` int `y` +<9> declare `int z`; + load from `list` -> `List reference`; + load from `y` -> `int 1`; + call `get` on `List reference` with arguments(`int 1`) -> `def`; + implicit cast `def` to `int 5` -> `int 5`; + store `int 5` to `z` ++ +* List access with the `def` type. ++ +[source,Painless] +---- +<1> def d = new ArrayList(); +<2> d.add(1); +<3> d.add(2); +<4> d.add(3); +<5> d[0] = 2; +<6> d[1] = 5; +<7> def x = d[0] + d[1]; +<8> def y = 1; +<9> def z = d[y]; +---- ++ +<1> declare `List d`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `def` -> `def`; + store `def` to `d` +<2> load from `d` -> `def`; + implicit cast `def` to `ArrayList reference` -> `ArrayList reference`; + call `add` on `ArrayList reference` with arguments(`int 1`) +<3> load from `d` -> `def`; + implicit cast `def` to `ArrayList reference` -> `ArrayList reference`; + call `add` on `ArrayList reference` with arguments(`int 2`) +<4> load from `d` -> `def`; + implicit cast `def` to `ArrayList reference` -> `ArrayList reference`; + call `add` on `ArrayList reference` with arguments(`int 3`) +<5> load from `d` -> `def`; + implicit cast `def` to `ArrayList reference` -> `ArrayList reference`; + call `set` on `ArrayList reference` with arguments(`int 0`, `int 2`) +<6> load from `d` -> `def`; + implicit cast `def` to `ArrayList reference` -> `ArrayList reference`; + call `set` on `ArrayList reference` with arguments(`int 1`, `int 5`) +<7> declare `def x`; + load from `d` -> `def`; + implicit cast `def` to `ArrayList reference` -> `ArrayList reference`; + call `get` on `ArrayList reference` with arguments(`int 0`) -> `def`; + implicit cast `def` to `int 2` -> `int 2`; + load from `d` -> `def`; + implicit cast `def` to `ArrayList reference` -> `ArrayList reference`; + call `get` on `ArrayList reference` with arguments(`int 1`) -> `def`; + implicit cast `def` to `int 2` -> `int 2`; + add `int 2` and `int 5` -> `int 7`; + store `int 7` to `x` +<8> declare `int y`; + store `int 1` int `y` +<9> declare `int z`; + load from `d` -> `ArrayList reference`; + load from `y` -> `def`; + implicit cast `def` to `int 1` -> `int 1`; + call `get` on `ArrayList reference` with arguments(`int 1`) -> `def`; + store `def` to `z` + +[[map-initialization-operator]] +==== Map Initialization + +Use the `map initialization operator '[:]'` to allocate a `Map` type instance to +the heap with a set of pre-defined values. Each pair of values used to +initialize the `Map` type instance are cast to `def` type values upon insertion +into the `Map` type instance using the `put` method. + +*Grammar* + +[source,ANTLR4] +---- +map_initialization: '[' key_pair (',' key_pair)* ']' + | '[' ':' ']'; +key_pair: expression ':' expression +---- + +*Examples* + +* Map initialization of an empty `Map` type value. ++ +[source,Painless] +---- +<1> Map empty = [:]; +---- ++ +<1> declare `Map empty`; + allocate `HashMap` instance -> `HashMap reference`; + implicit cast `HashMap reference` to `Map reference` -> `Map reference`; + store `Map reference` to `empty` ++ +* Map initialization with static values. ++ +[source,Painless] +---- +<1> Map map = [1:2, 3:4, 5:6]; +---- ++ +<1> declare `Map map`; + allocate `HashMap` instance -> `HashMap reference`; + call `put` on `HashMap reference` with arguments(`int 1`, `int 2`); + call `put` on `HashMap reference` with arguments(`int 3`, `int 4`); + call `put` on `HashMap reference` with arguments(`int 5`, `int 6`); + implicit cast `HashMap reference` to `Map reference` -> `Map reference`; + store `Map reference` to `map` ++ +* Map initialization with non-static values. ++ +[source,Painless] +---- +<1> byte b = 0; +<2> int i = 1; +<3> long l = 2L; +<4> float f = 3.0F; +<5> double d = 4.0; +<6> String s = "5"; +<7> Map map = [b:i, l:f*d, d:s]; +---- ++ +<1> declare `byte b`; + store `byte 0` to `b` +<2> declare `int i`; + store `int 1` to `i` +<3> declare `long l`; + store `long 2` to `l` +<4> declare `float f`; + store `float 3.0` to `f` +<5> declare `double d`; + store `double 4.0` to `d` +<6> declare `String s`; + store `String "5"` to `s` +<7> declare `Map map`; + allocate `HashMap` instance -> `HashMap reference`; + load from `b` -> `byte 0`; + load from `i` -> `int 1`; + call `put` on `HashMap reference` with arguments(`byte 0`, `int 1`); + load from `l` -> `long 2`; + load from `f` -> `float 3.0`; + load from `d` -> `double 4.0`; + promote `float 3.0` and `double 4.0`: result `double`; + implicit cast `float 3.0` to `double 3.0` -> `double 3.0`; + multiply `double 3.0` and `double 4.0` -> `double 12.0`; + call `put` on `HashMap reference` with arguments(`long 2`, `double 12.0`); + load from `d` -> `double 4.0`; + load from `s` -> `String "5"`; + call `put` on `HashMap reference` with + arguments(`double 4.0`, `String "5"`); + implicit cast `HashMap reference` to `Map reference` -> `Map reference`; + store `Map reference` to `map` + +[[map-access-operator]] +==== Map Access + +Use the `map access operator '[]'` as a shortcut for a `put` method call or +`get` method call made on a `Map` type value. + +*Errors* + +* If a value other than a `Map` type value is accessed. + +*Grammar* +[source,ANTLR4] +---- +map_access: '[' expression ']' +---- + +*Examples* + +* Map access with the `Map` type. ++ +[source,Painless] +---- +<1> Map map = new HashMap(); +<2> map['value2'] = 2; +<3> map['value5'] = 5; +<4> int x = map['value2'] + map['value5']; +<5> String y = 'value5'; +<6> int z = x[z]; +---- ++ +<1> declare `Map map`; + allocate `HashMap` instance -> `HashMap reference`; + implicit cast `HashMap reference` to `Map reference` -> `Map reference`; + store `Map reference` to `map` +<2> load from `map` -> `Map reference`; + call `put` on `Map reference` with arguments(`String 'value2'`, `int 2`) +<3> load from `map` -> `Map reference`; + call `put` on `Map reference` with arguments(`String 'value5'`, `int 5`) +<4> declare `int x`; + load from `map` -> `Map reference`; + call `get` on `Map reference` with arguments(`String 'value2'`) -> `def`; + implicit cast `def` to `int 2` -> `int 2`; + load from `map` -> `Map reference`; + call `get` on `Map reference` with arguments(`String 'value5'`) -> `def`; + implicit cast `def` to `int 5` -> `int 5`; + add `int 2` and `int 5` -> `int 7`; + store `int 7` to `x` +<5> declare `String y`; + store `String 'value5'` to `y` +<6> declare `int z`; + load from `map` -> `Map reference`; + load from `y` -> `String 'value5'`; + call `get` on `Map reference` with arguments(`String 'value5'`) -> `def`; + implicit cast `def` to `int 5` -> `int 5`; + store `int 5` to `z` ++ +* Map access with the `def` type. ++ +[source,Painless] +---- +<1> def d = new HashMap(); +<2> d['value2'] = 2; +<3> d['value5'] = 5; +<4> int x = d['value2'] + d['value5']; +<5> String y = 'value5'; +<6> def z = d[y]; +---- ++ +<1> declare `def d`; + allocate `HashMap` instance -> `HashMap reference`; + implicit cast `HashMap reference` to `def` -> `def`; + store `def` to `d` +<2> load from `d` -> `def`; + implicit cast `def` to `HashMap reference` -> `HashMap reference`; + call `put` on `HashMap reference` with arguments(`String 'value2'`, `int 2`) +<3> load from `d` -> `def`; + implicit cast `def` to `HashMap reference` -> `HashMap reference`; + call `put` on `HashMap reference` with arguments(`String 'value5'`, `int 5`) +<4> declare `int x`; + load from `d` -> `def`; + implicit cast `def` to `HashMap reference` -> `HashMap reference`; + call `get` on `HashMap reference` with arguments(`String 'value2'`) + -> `def`; + implicit cast `def` to `int 2` -> `int 2`; + load from `d` -> `def`; + call `get` on `HashMap reference` with arguments(`String 'value5'`) + -> `def`; + implicit cast `def` to `int 5` -> `int 5`; + add `int 2` and `int 5` -> `int 7`; + store `int 7` to `x` +<5> declare `String y`; + store `String 'value5'` to `y` +<6> declare `def z`; + load from `d` -> `def`; + load from `y` -> `String 'value5'`; + call `get` on `HashMap reference` with arguments(`String 'value5'`) + -> `def`; + store `def` to `z` + +[[new-instance-operator]] +==== New Instance + +Use the `new instance operator 'new ()'` to allocate a +<> instance to the heap and call a specified +constructor. Implicit <> is evaluated as +necessary per argument during the constructor call. + +An overloaded constructor is one that shares the same name with two or more +constructors. A constructor is overloaded based on arity where the same +reference type name is re-used for multiple constructors as long as the number +of parameters differs. + +*Errors* + +* If the reference type name doesn't exist for instance allocation. +* If the number of arguments passed in is different from the number of specified + parameters. +* If the arguments cannot be implicitly cast or implicitly boxed/unboxed to the + correct type values for the parameters. + +*Grammar* + +[source,ANTLR4] +---- +new_instance: 'new' TYPE '(' (expression (',' expression)*)? ')'; +---- + +*Examples* + +* Allocation of new instances with different types. + +[source,Painless] +---- +<1> Map m = new HashMap(); +<2> def d = new ArrayList(); +<3> def e = new HashMap(m); +---- +<1> declare `Map m`; + allocate `HashMap` instance -> `HashMap reference`; + implicit cast `HashMap reference` to `Map reference` -> `Map reference`; + store `Map reference` to `m`; +<2> declare `def d`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `def` -> `def`; + store `def` to `d`; +<3> declare `def e`; + load from `m` -> `Map reference`; + allocate `HashMap` instance with arguments (`Map reference`) + -> `HashMap reference`; + implicit cast `HashMap reference` to `def` -> `def`; + store `def` to `e`; + +[[string-concatenation-operator]] +==== String Concatenation + +Use the `string concatenation operator '+'` to concatenate two values together +where at least one of the values is a <>. + +*Grammar* + +[source,ANTLR4] +---- +concatenate: expression '+' expression; +---- + +*Examples* + +* String concatenation with different primitive types. ++ +[source,Painless] +---- +<1> String x = "con"; +<2> String y = x + "cat"; +<3> String z = 4 + 5 + x; +---- ++ +<1> declare `String x`; + store `String "con"` to `x`; +<2> declare `String y`; + load from `x` -> `String "con"`; + concat `String "con"` and `String "cat"` -> `String "concat"`; + store `String "concat"` to `y` +<3> declare `String z`; + add `int 4` and `int 5` -> `int 9`; + concat `int 9` and `String "9concat"`; + store `String "9concat"` to `z`; + (note the addition is done prior to the concatenation due to precedence and + associativity of the specific operations) ++ +* String concatenation with the `def` type. ++ +[source,Painless] +---- +<1> def d = 2; +<2> d = "con" + d + "cat"; +---- ++ +<1> declare `def`; + implicit cast `int 2` to `def` -> `def`; + store `def` in `d`; +<2> concat `String "con"` and `int 9` -> `String "con9"`; + concat `String "con9"` and `String "con"` -> `String "con9cat"` + implicit cast `String "con9cat"` to `def` -> `def`; + store `def` to `d`; + (note the switch in type of `d` from `int` to `String`) + +[[elvis-operator]] +==== Elvis + +An elvis consists of two expressions. The first expression is evaluated +with to check for a `null` value. If the first expression evaluates to +`null` then the second expression is evaluated and its value used. If the first +expression evaluates to `non-null` then the resultant value of the first +expression is used. Use the `elvis operator '?:'` as a shortcut for the +conditional operator. + +*Errors* + +* If the first expression or second expression cannot produce a `null` value. + +*Grammar* + +[source,ANTLR4] +---- +elvis: expression '?:' expression; +---- + +*Examples* + +* Elvis with different reference types. ++ +[source,Painless] +---- +<1> List x = new ArrayList(); +<2> List y = x ?: new ArrayList(); +<3> y = null; +<4> List z = y ?: new ArrayList(); +---- ++ +<1> declare `List x`; + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `List reference` -> `List reference`; + store `List reference` to `x`; +<2> declare `List y`; + load `x` -> `List reference`; + `List reference` equals `null` -> `false`; + evaluate 1st expression: `List reference` -> `List reference`; + store `List reference` to `y` +<3> store `null` to `y`; +<4> declare `List z`; + load `y` -> `List reference`; + `List reference` equals `null` -> `true`; + evaluate 2nd expression: + allocate `ArrayList` instance -> `ArrayList reference`; + implicit cast `ArrayList reference` to `List reference` -> `List reference`; + store `List reference` to `z`; diff --git a/docs/painless/painless-operators.asciidoc b/docs/painless/painless-operators.asciidoc index 8329686f663..b51e94088a6 100644 --- a/docs/painless/painless-operators.asciidoc +++ b/docs/painless/painless-operators.asciidoc @@ -1,1819 +1,64 @@ [[painless-operators]] === Operators -The following is a table of the available operators in Painless. Each operator will have further information and examples outside of the table. Many operators will have a promotion table as described by the documentation on promotion [MARK]. - -[options="header",cols="6,3,2,4"] -|==== -|Operator|Symbol(s)|Precedence|Associativity -|Precedence|()|0|left-to-right -|Field Access|.|1|left-to-right -|Method Call|. ()|1|left-to-right -|Null Safe|?.|1|left-to-right -|Function Call|()|1|left-to-right -|Array Initialization|[] {}|1|left-to-right -|Array Access|[]|1|left-to-right -|Array Length|.|1|left-to-right -|List Initialization|[]|1|left-to-right -|List Access|[]|1|left-to-right -|Map Initialization|[:]|1|left-to-right -|Map Access|[]|1|left-to-right -|Post Increment|++|1|left-to-right -|Post Decrement|--|1|left-to-right -|Pre Increment|++|2|right-to-left -|Pre Decrement|--|2|right-to-left -|Unary Positive|+|2|right-to-left -|Unary Negative|-|2|right-to-left -|Boolean Not|!|2|right-to-left -|Bitwise Not|~|2|right-to-left -|Cast|()|3|right-to-left -|Constructor Call|new ()|3|right-to-left -|New Array|new|3|right-to-left -|Multiplication|*|4|left-to-right -|Division|/|4|left-to-right -|Remainder|%|4|left-to-right -|String Concatenation|+|5|left-to-right -|Addition|+|5|left-to-right -|Subtraction|-|5|left-to-right -|Left Shift|<<|6|left-to-right -|Right Shift|>>|6|left-to-right -|Unsigned Right Shift|>>>|6|left-to-right -|Greater Than|>|7|left-to-right -|Greater Than Or Equal|>=|7|left-to-right -|Less Than|<|7|left-to-right -|Less Than Or Equal|<=|7|left-to-right -|Instance Of|instanceof|8|left-to-right -|Equality Equals|==|9|left-to-right -|Equality Not Equals|!=|9|left-to-right -|Identity Equals|===|9|left-to-right -|Identity Not Equals|!==|9|left-to-right -|Bitwise And|&|10|left-to-right -|Boolean Xor|^|11|left-to-right -|Bitwise Xor|^|11|left-to-right -|Bitwise Or|\||12|left-to-right -|Boolean And|&&|13|left-to-right -|Boolean Or|\|\||14|left-to-right -|Conditional|? :|15|right-to-left -|Elvis|?:|16|right-to-left -|Assignment|=|17|right-to-left -|Compound Assignment|$=|17|right-to-left +An operator is the most basic action that can be taken to evaluate values in a +script. An expression is one-to-many consecutive operations. Precedence is the +order in which an operator will be evaluated relative to another operator. +Associativity is the direction within an expression in which a specific operator +is evaluated. The following table lists all available operators: + +[cols="<6,<3,^3,^2,^4"] +|==== +| *Operator* | *Category* | *Symbol(s)* | *Precedence* | *Associativity* +| <> | <> | () | 0 | left -> right +| <> | <> | . () | 1 | left -> right +| <> | <> | . | 1 | left -> right +| <> | <> | ?. | 1 | left -> right +| <> | <> | () | 1 | left -> right +| <> | <> | [] {} | 1 | left -> right +| <> | <> | [] | 1 | left -> right +| <> | <> | . | 1 | left -> right +| <> | <> | [] | 1 | left -> right +| <> | <> | [] | 1 | left -> right +| <> | <> | [:] | 1 | left -> right +| <> | <> | [] | 1 | left -> right +| <> | <> | ++ | 1 | left -> right +| <> | <> | -- | 1 | left -> right +| <> | <> | ++ | 2 | right -> left +| <> | <> | -- | 2 | right -> left +| <> | <> | + | 2 | right -> left +| <> | <> | - | 2 | right -> left +| <> | <> | ! | 2 | right -> left +| <> | <> | ~ | 2 | right -> left +| <> | <> | () | 3 | right -> left +| <> | <> | new () | 3 | right -> left +| <> | <> | new [] | 3 | right -> left +| <> | <> | * | 4 | left -> right +| <> | <> | / | 4 | left -> right +| <> | <> | % | 4 | left -> right +| <> | <> | + | 5 | left -> right +| <> | <> | + | 5 | left -> right +| <> | <> | - | 5 | left -> right +| <> | <> | << | 6 | left -> right +| <> | <> | >> | 6 | left -> right +| <> | <> | >>> | 6 | left -> right +| <> | <> | > | 7 | left -> right +| <> | <> | >= | 7 | left -> right +| <> | <> | < | 7 | left -> right +| <> | <> | <= | 7 | left -> right +| <> | <> | instanceof | 8 | left -> right +| <> | <> | == | 9 | left -> right +| <> | <> | != | 9 | left -> right +| <> | <> | === | 9 | left -> right +| <> | <> | !== | 9 | left -> right +| <> | <> | & | 10 | left -> right +| <> | <> | ^ | 11 | left -> right +| <> | <> | ^ | 11 | left -> right +| <> | <> | \| | 12 | left -> right +| <> | <> | && | 13 | left -> right +| <> | <> | \|\| | 14 | left -> right +| <> | <> | ? : | 15 | right -> left +| <> | <> | ?: | 16 | right -> left +| <> | <> | = | 17 | right -> left +| <> | <> | $= | 17 | right -> left |==== - -[[precedence-operator]] -==== Precedence - -You group expressions using the precedence operator to guarantee -the order of evaluation and override existing precedence relationships between operators. The format is an opening parenthesis, one or more expressions, and -a closing parenthesis. For example, `(20+1)*2`. - -*Grammar:* -[source,ANTLR4] ----- -precedence: '(' expression ')'; ----- - -*Examples:* -[source,Java] ----- -int x = (5+4)*6; // declares the variable int x and sets it to (5+4)*6 - // where 5+4 is evaluated first due to the precedence operator -int y = 2*(x-4); // declares the variable int y and sets it to 2*(x-4) - // where x-4 is evaluated first due to the precedence operator ----- - - -[[dot-operator]] -==== Dot -You use the dot operator `.` to access a type's <> and <>. - -[[field-access]] -===== Accessing Fields -You access primitive and reference type members in a reference type using the -dot operator '.' followed by the id of the member. The accessed member behaves -the same way as the type it represents with one exception: if the reference -type is of type `def`, the member is also considered to be of type `def` and -resolved at runtime. - -*Grammar:* -[source,ANTLR4] ----- -field_access: ID '.' ID; ----- - -*Examples:* -[source,Java] ----- -FeatureTest ft = new FeatureTest(); // Declare FeatureTest variable ft and - // set it to a newly allocated FeatureTest -ft.x = 5; // Access int member x from ft and assign - // it the literal int value 5 -ft.y = ft.x; // Access int member y from ft and assign - // it the value of ft member x -int value = ft.x + ft.y; // Declare variable value as an int, - // add ft members x and y together, - // assign the sum to the variable value ----- - -[[method-access]] -===== Calling Methods - -You call reference type methods using the dot operator and the method id: -`.method_id(arg1,...,argn)`. The parentheses are required even if there are no -arguments. - -If the reference type is not type `def`, the argument types for the method -can be resolved at compile time. An error occurs if appropriate type -conversions (casting) cannot be performed. If the reference type is type `def`, the argument types for the method are all considered to be the type `def`. The -appropriate type conversions are performed at run-time. - -Automatic <> is performed when you pass in -arguments to a method. - -Method calls can be overloaded based on arity in Painless. The same method -name can be re-used for different methods as long as the number of arguments -differs. This differs from Java method overloading, where only the types must -differ. This has an effect on some of the provided reference type methods in -the <>. Where there are overloaded methods with -the same arity for a reference type in Java, Painless chooses a single method -to be provided. - -*Grammar:* -[source,ANTLR4] ----- -method_call: ID '.' ID '(' (expression (',' expression)*)? ')'; ----- - -*Examples:* -[source,Java] ----- -Map m = new HashMap(); // Declare Map variable m and set it a newly - // allocated HashMap -x.put(1, 2); // Call the put method on variable x to add key 1 - // with the value 2 to the Map -int z = x.get(1); // Declare int variable z, call the get method to - // retrieve the value of key 1, and assign the - // return value of the method call to variable z -def d = new ArrayList(); // Declare def variable m and set it a newly - // allocated ArrayList -d.add(1); // Call the add method on variable d and add the - // literal int 1 to the ArrayList. Note that - // the argument type is considered to be of - // type def since the reference type is also def -int i = Integer.parseInt('2'); // Declare int variable i and set it to the - // value returned by the static method parseInt ----- - -************************** -Painless describes the Map method arguments using the `def` type: - -[source,Java] ----- -put(def, def) -get(def) ----- - -When you call `x.put(1, 2)`, the key and value are implicitly converted from -the int type to the def type. - -Assume for a minute that the Map method arguments were described as Integers: - -[source,Java] ----- -put(Integer, Integer) -get(Integer) ----- - -In this case, the key and value would implicitly be _boxed_ from the primitive -int type to the Integer reference type. For more information about how Painless -casts between primitive types and reference types, see <>. -************************** - -==== Null Safe - -The null safe operator `?.` can be used in place of the dot operator -to check if a reference type instance is `null` before attempting to access -a field or make a method call against it. When using the null safe operator, -if the instance is `null`, the returned value is `null`. If the reference -type instance is non-null, it returns the value of the field or result of -the method call normally. - -// REVIEWER NOTE: The following paragraph doesn't make sense to me. Do you -All resultant types must be a reference type or be able to be implicitly cast -to a reference type or an error will occur. - -*Grammar:* -[source,ANTLR4] ----- -null_safe: null_safe_field_access - | null_safe_method_call; -null_safe_field_access: ID '?.' ID; -null_safe_method_call: ID '?.' ID '(' (expression (',' expression)*)? ')'; ----- - -*Examples:* -[source,Java] ----- -Map x = new HashMap(); // Declare the Map variable x and set it to a newly - // allocated HashMap -Map y = null; // Declare the Map variable y and set it to null -def z = new HashMap(); // Declares the def variable z and set it to a newly - // allocated HashMap - -x.put(1, 2); // Put the key-value pair 1 and 2 into x -z.put(5, 6); // Put the key-value pair 5 and 6 into z - -def value = x?.get(1); // Declare the def variable value and set it to the - // result of .get(1) since x is not null -value = y?.get(3); // Sets value to null since y is null -value = z?.get(5); // Sets value to the result of .get(5) since z is not null ----- - -==== Parenthesis - -User-defined function calls can be made in Painless using the parenthesis -operator. See Function Calls [MARK] for more information. - -==== Brackets and Braces - -The brackets operator `[]` is used to create and access arrays, lists, and maps. -The braces operator `{}` is used to intialize arrays. - -[[array-initialization]] -===== Creating and Initializing Arrays - -You create and initialize arrays using the brackets `[]` and braces `{}` -operators. Each set of brackets represents a dimension. The values you want to -initialize each dimension with are specified as a comma-separated list enclosed -in braces. For example, `new int[] {1, 2, 3}` creates a one dimensional `int` -array with a size of 3 and the values 1, 2, and 3. - -To allocate an array, you use the `new` keyword followed by the type and a -set of brackets for each dimension. You can explicitly define the size of each dimension by specifying an expression within the brackets, or initialize each -dimension with the desired number of values. The allocated size of each -dimension is its permanent size. - -To initialize an array, specify the values you want to initialize -each dimension with as a comma-separated list of expressions enclosed in braces. -For example, `new int[] {1, 2, 3}` creates a one-dimensional `int` array with a -size of 3 and the values 1, 2, and 3. - -When you initialize an array, the order of the expressions is maintained. Each expression used as part of the initialization is converted to the -array's type. An error occurs if the types do not match. - -*Grammar:* -[source,ANTLR4] ----- -declare_array: TYPE ('[' ']')+; - -array_initialization: 'new' TYPE '[' ']' '{' expression (',' expression) '}' - | 'new' TYPE '[' ']' '{' '}'; ----- - -*Examples:* -[source,Java] ----- -int[] x = new int[5]; // Declare int array x and assign it a newly - // allocated int array with a size of 5 -def[][] y = new def[5][5]; // Declare the 2-dimensional def array y and - // assign it a newly allocated 2-dimensional - // array where both dimensions have a size of 5 -int[] x = new int[] {1, 2, 3}; // Declare int array x and set it to an int - // array with values 1, 2, 3 and a size of 3 -int i = 1; -long l = 2L; -float f = 3.0F; -double d = 4.0; -String s = "5"; -def[] da = new def[] {i, l, f*d, s}; // Declare def array da and set it to - // a def array with a size of 4 and the - // values i, l, f*d, and s ----- - -[[array-access]] -===== Accessing Array Elements - -Elements in an array are stored and accessed using the brackets `[]` operator. -Elements are referenced by an expression enclosed in brackets. An error -occurs if the expression used to reference an element cannot be implicitly -cast to an `int`. - -The range of elements within an array that can be accessed is `[0, size)` where -size is the originally allocated size of the array. To access elements relative -to the last element in an array, you can use a negative numeric value from -`[-size, -1]`. An error occurs if you attempt to reference an element outside -of the array's range. - -*Grammar:* -[source,ANTLR4] ----- -brace_access: '[' expression ']' ----- - -*Examples:* -[source,Java] ----- - -int[] x = new int[2]; // Declare int array x and set it to a newly allocated - // array with a size of 2 -x[0] = 2; // Set the 0th element of array x to 2 -x[1] = 5; // Set the 1st element of array x to 5 -int y = x[0] + x[1]; // Declare the int variable y and set it to the sum - // of the first two elements of array x -int z = 1; // Declare the int variable z and set it to 1 -return x[z]; // Access the 1st element of array x using the - // variable z as an expression and return the value - -def d = new int[2]; // Declare def variable d and set it to a newly - // allocated array with a size of 2 -d[0] = 2; // Set the 0th element of array d to 2 -d[1] = 5; // Set the 1st element of array d to 2 -def y = d[0] + d[1]; // Declare def variable y and set it to the sum - // of the first two elements of array d -def z = 1; // Declare def variable z and set it to 1 -return d[z]; // Access the 1st element of array d using the - // variable z as an expression and return the value ----- - -NOTE: The use of the `def` type in the second example means that the types -cannot be resolved until runtime. - -[[array-length]] -===== Array Length - -Arrays contain a special member known as 'length' that is a read-only value that contains the size of the array. This member can be accessed from an array using the dot operator. - -*Examples:* -[source,Java] ----- -int[] x = new int[10]; // declares an int array variable x and sets it to a newly allocated array with a size of 10 -int l = x.length; // declares and int variable l and sets it to the field length of variable x ----- - -===== Creating and Initializing Lists - -You create and initialize lists using the brackets `[]` operator. The values -you want to initialize the list with are specified as a comma-separated list -of expressions enclosed in brackets. For example, `List l = [1, 2, 3]` creates -a new three item list. Each expression used to initialize the list is converted -a `def` type when the value is inserted into the list. The order of the -expressions is maintained. - -*Grammar:* -[source,ANTLR4] ----- -list_initialization: '[' expression (',' expression)* ']' - | '[' ']'; ----- - -*Examples:* -[source,Java] ----- -List empty = []; // declares the List variable empty and sets it to a newly initialized empty List -List l0 = [1, 2, 3]; // declares the List variable l0 and sets it to a newly initialized List with the values 1, 2, and 3 - -int i = 1; -long l = 2L; -float f = 3.0F; -double d = 4.0; -String s = "5"; -List l1 = [i, l, f*d, s]; // declares the List variable l1 and sets it to a newly initialized List with the values of i, l, and f*d and s ----- - -===== Accessing List Elements - -Elements in a List are stored or accessed using the brackets operator. The format begins with an opening bracket, followed by an expression, and finishes with a closing bracket. Storing elements in a List is equivalent to invoking a List's set method. Accessing elements in a List is equivalent to invoking a List's get method. Using this operator is strictly a shortcut for the previously mentioned methods. The range of elements within a List that can be accessed is [0, size) where size is the number of elements currently in the List. Elements may also be accessed from the last element in a List using a negative numeric value from [-size, -1]. The expression used to determine which element is accessed must be able to be implicitly cast to an int. An error will occur if the expression is outside of the legal range or is not of type int. - -*Grammar:* -[source,ANTLR4] ----- -list_access: '[' expression ']' ----- - -*Examples:* -[source,Java] ----- -List x = new ArrayList(); // declares a List variable x and sets it to a newly allocated ArrayList -x.add(1); // invokes the add method on the variable x and adds the constant int 1 to the List -x.add(2); // invokes the add method on the variable x and adds the constant int 2 to the List -x.add(3); // invokes the add method on the variable x and adds the constant int 3 to the List -x[0] = 2; // sets the 0th element of the variable x to the constant int 2 -x[1] = 5; // sets the 1st element of the variable x to the constant int 2 -int y = x[0] + x[1]; // declares the int variable y and sets it to the sum of the first two elements of the variable x -int z = 1; // declares the int variable z and sets it to the constant int 1 -return x[z]; // accesses the 1st element of the variable x using the variable z as an expression and returns the value - -def d = new ArrayList(); // declares a def variable d and sets it to a newly allocated ArrayList -d.add(1); // invokes the add method on the variable d and adds the constant int 1 to the List -d.add(2); // invokes the add method on the variable d and adds the constant int 2 to the List -d.add(3); // invokes the add method on the variable d and adds the constant int 3 to the List -d[0] = 2; // sets the 0th element of the variable d to the constant int 2 -d[1] = 5; // sets the 1st element of the variable d to the constant int 2 -def y = d[0] + d[1]; // declares the def variable y and sets it to the sum of the first two elements of the variable d -def z = 1; // declares the def variable z and sets it to the constant int 1 -return d[z]; // accesses the 1st element of the variable d using the variable z as an expression and returns the value ----- - -Note in the first example above all types can be resolved at compile-time, while in the second example all types must wait to be resolved until run-time. - -===== Creating and Initializing Maps - -A Map can be created and initialized using the brackets operator. The format begins with a bracket, followed by an arbitrary number of key-value pairs delimited with commas (except the last), and ends with a closing bracket. Each key-value pair is a set of two expressions separate by a colon. If there is only a single colon with no expressions, a new empty Map is created. - -*Grammar:* -[source,ANTLR4] ----- -map_initialization: '[' key_pair (',' key_pair)* ']' - | '[' ':' ']'; -key_pair: expression ':' expression ----- - -Each expression used as part of the initialization is converted to a `def` type -for insertion into the map. - -*Examples:* -[source,Java] ----- -Map empty = [:]; // declares the Map variable empty and sets it to a newly initialized empty Map -Map m0 = [1:2, 3:4, 5:6]; // declares the Map variable m0 and sets it to a newly initialized Map with the keys 1, 3, 5 and values 2, 4, 6, respectively - -byte b = 0; -int i = 1; -long l = 2L; -float f = 3.0F; -double d = 4.0; -String s = "5"; -Map m1 = [b:i, l:f*d, d:s]; // declares the Map variable m1 and sets it to a newly initialized Map with the keys b, l, d and values i, f*d, s, respectively ----- - -===== Accessing Map Elements - -Elements in a Map can be stored or accessed using the brackets operator. The format begins with an opening bracket, followed by an expression, and finishes with a closing bracket. Storing values in a Map is equivalent to invoking a Map's put method. Accessing values in a Map is equivalent to invoking a Map's get method. Using this operator is strictly a shortcut for the previously mentioned methods. Any element from a Map can be stored/accessed where the expression is the key. If a key has no corresponding value when accessing a Map then the value will be null. - -*Grammar:* -[source,ANTLR4] ----- -map_access: '[' expression ']' ----- - -*Examples:* -[source,Java] ----- -Map x = new HashMap(); // declares a Map variable x and sets it to a newly allocated HashMap -x['value2'] = 2; // puts the value of the key constant String value2 of the variable x to the constant int 2 -x['value5'] = 5; // puts the value of the key constant String value5 of the variable x to the constant int 5 -int y = x['value2'] + x['value5']; // declares the int variable y and sets it to the sum of the two values of the variable x -String z = 'value5'; // declares the String variable z and sets it to the constant String value5 -return x[z]; // accesses the value for the key value5 of the variable x using the variable z as an expression and returns the value - -def d = new HashMap(); // declares a def variable d and sets it to a newly allocated HashMap -d['value2'] = 2; // puts the value of the key constant String value2 of the variable d to the constant int 2 -d['value5'] = 5; // puts the value of the key constant String value5 of the variable d to the constant int 5 -int y = d['value2'] + d['value5']; // declares the int variable y and sets it to the sum of the two values of the variable d -String z = 'value5'; // declares the String variable z and sets it to the constant String value5 -return d[z]; // accesses the value for the key value5 of the variable x using the variable z as an expression and returns the value ----- - -Note in the first example above all types can be resolved at compile-time, while in the second example all types must wait to be resolved until run-time. - -==== Post Increment - -A variable/field representing a numerical value can be possibly evaluated as part of an expression, and then increased by 1 for its respective type. The format starts with a variable name followed by a plus and ends with a plus. - -*Grammar:* -[source,ANTLR4] ----- -post_increment: ( variable | member ) '++' ----- - -A numeric promotion may occur during a post-increment followed by a downcast if necessary. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. A downcast may be required after the type promotion to assign the appropriate value back into the variable/field. Non-numeric variables/members will result in an error. - -Promotion Table: - -|==== -|from|to|downcast -|byte|int|byte -|short|int|short -|char|int|char -|int|int| -|long|long| -|float|float| -|double|double| -|def|def| -|==== - -Examples(s): -[source,Java] ----- -int i = 0; // declares the int variable i and sets it to the constant 0 -i++; // increments the int variable i by 1 to a value of 1 -long l = 1; // declares the long variable l and set it the constant 1 -long k; // declares the long variable k -k = l++; // sets the long variable k to the value of l (1), and then increments the long variable l by 1 to a value of 2 ----- - -==== Post Decrement - -A variable/field representing a numerical value can be possibly evaluated as part of an expression, and then increased by 1 for its respective type. The format starts with a variable name followed by a minus and ends with a minus. - -*Grammar:* -[source,ANTLR4] ----- -post_increment: ( variable | member ) '--' ----- - -A numeric promotion may occur during a post-decrement followed by a downcast if necessary. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. A downcast may be required after the type promotion to assign the appropriate value back into the variable/field. Non-numeric variables/members will result in an error. - -Promotion Table: - -|==== -|from|to|downcast -|byte|int|byte -|short|int|short -|char|int|char -|int|int| -|long|long| -|float|float| -|double|double| -|def|def| -|==== - -Examples(s): -[source,Java] ----- -short i = 0; // declares the short variable i and sets it to the constant short 0 -i--; // decrements the short variable i by 1 to a value of -1 (promoted to int and downcast to short) -float l = 1.0f; // declares the float variable l and sets it the constant float 1.0f -float k; // declares the float variable k -k = l--; // sets the float variable k to the value of l (1.0f), and then decrements the float variable l by 1.0 to a value of 0.0 ----- - -==== Pre Increment - -A variable/field representing a numerical value can be increased by 1 for its respective type, and then possibly evaluated as part of an expression. The format starts with a plus followed by a plus and ends with a variable name. - -*Grammar:* -[source,ANTLR4] ----- -pre_increment: '++' ( variable | member ) ----- - -A numeric promotion may occur during a pre-increment followed by a downcast if necessary. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. A downcast may be required after the type promotion to assign the appropriate value back into the variable/field. Non-numeric variables/members will result in an error. - -Promotion Table: - -|==== -|from|to|downcast -|byte|int|byte -|short|int|short -|char|int|char -|int|int| -|long|long| -|float|float| -|double|double| -|def|def| -|==== - -Examples(s): -[source,Java] ----- -int i = 0; // declares the int variable i and sets it to the constant int 0 -++i; // increments the int variable i by 1 to a value of 1 -long l = 1; // declares the long variable l and sets it to the constant long 1 -long k; // declares the long variable k -k = ++l; // increments the long variable l by 1 to a value of 2, and then sets the long variable k to the value of l (2) ----- - -==== Pre Decrement - -A variable/field representing a numerical value can be decreased by 1 for its respective type, and then possibly evaluated as part of an expression. The format starts with a minus followed by a minus and ends with a variable name. - -*Grammar:* -[source,ANTLR4] ----- -pre_decrement: '--' ( variable | member ) ----- - -A numeric promotion may occur during a pre-decrement followed by a downcast if necessary. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. A downcast may be required after the type promotion to assign the appropriate value back into the variable/field. Non-numeric variables/members will result in an error. - -Promotion Table: -|==== -|from|to|downcast -|byte|int|byte -|short|int|short -|char|int|char -|int|int| -|long|long| -|float|float| -|double|double| -|def|def| -|==== - -Examples(s): -[source,Java] ----- -byte i = 1; // declares the byte variable i and sets it to the constant int 1 ---i; // decrements the byte variable i by 1 to a value of 0 (promoted to int and downcast to byte) -double l = 1.0; // declares the double variable l and sets it to the constant double 1.0 -double k; // declares the double variable k -k = --l; // decrements the double variable l by 1.0 to a value of 0.0, and then sets the double variable k to the value of l (0.0) ----- - -==== Unary Positive - -Unary positive gives the identity of a numerical value using the plus operator. In practice this is usually a no-op, but will cause some numeric types to be promoted. Format starts with a plus operator followed by a numerical expression. - -*Grammar:* -[source,ANTLR4] ----- -unary_positive: '+' expression ----- - -A numeric promotion may occur during a unary positive operation. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-numeric expressions will result in an error. - -Promotion Table: -|==== -|from|to -|byte|int -|short|int -|char|int -|int|int -|long|long -|float|float -|double|double -|def|def -|==== - -*Examples:* -[source,Java] ----- -int x = +1; // declares the int variable x and sets it to positive 1 -long y = +x; // declares the long variable y and sets it to positive x (promoted to long from int) -def z = +y; // declares the def variable z and sets it to positive y -byte z = +2; //ERROR: cannot implicitly downcast an int to a byte ----- - -==== Unary Negative - -Unary negative negates a numeric value using the minus operator. Format starts with a minus followed by a numerical expression. - -*Grammar:* -[source,ANTLR4] ----- -unary_negative: '-' expression ----- - -A numeric promotion may occur during a unary negative operation. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-numeric expressions will result in an error. - -Promotion Table: -|==== -|from|to -|byte|int -|short|int -|char|int -|int|int -|long|long -|float|float -|double|double -|def|def -|==== - -*Examples:* -[source,Java] ----- -int x = -1; // declares the int variable x and sets it to negative 1 -long y = -x; // declares the long variable y and sets it to negative x (promoted to long from int) -def z = -y; // declares the def variable z and sets it to negative y -byte z = -2; //ERROR: cannot implicitly downcast an int to a byte ----- - -==== Boolean Not - -Boolean not will flip a boolean value from true to false or false to true using the bang operator. The format is a bang operator followed by an expression. - -*Grammar:* -[source,ANTLR4] ----- -boolean_not: '!' expression; ----- - -Note that def types will be assumed to be of the boolean type. Any def type evaluated at run-time that does not represent a boolean will result in an error. Non-boolean expressions will result in an error. - -*Examples:* -[source,Java] ----- -boolean x = !false; // declares the boolean variable x and sets it to the opposite of the false value -boolean y = !x; // declares the boolean variable y and sets it to the opposite of the boolean variable x -def z = !y; // declares the def variable z and sets it to the opposite of the boolean variable y ----- - -==== Bitwise Not - -Bitwise not will flip each bit of an integer type expression. The format is the tilde operator followed by an expression. - -*Grammar:* -[source,ANTLR4] ----- -bitwise_not: '~' expression; ----- - -A numeric promotion may occur during unary positive operation. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-integer expressions will result in an error. - -Promotion Table: -|==== -|from|to -|byte|int -|short|int -|char|int -|int|int -|long|long -|def|def -|==== - -*Examples:* -[source,Java] ----- -byte x = 1; // declares the byte variable x and sets it to a constant int 1 -int y = ~x; // declares the int variable y and sets it to the negation of x -long z = ~y; // declares the long variable z and sets it the negation of y -def d = ~z; // declares the def variable d and sets it the negation of z -def e; // declares the def variable e -e = ~d; // sets e the negation of d ----- - -==== Cast - -The cast operator can be used to explicitly convert one type to another. See casting [MARK] for more information. - -[[constructor-call]] -==== Constructor Call - -A constructor call is a special type of method call [MARK] used to allocate a reference type instance using the new operator. The format is the new operator followed by a type, an opening parenthesis, arguments if any, and a closing parenthesis. Arguments are a series of zero-to-many expressions delimited by commas. Auto-boxing and auto-unboxing will be applied automatically for arguments passed into a constructor call. See boxing and unboxing [MARK] for more information on this topic. Constructor argument types can always be resolved at run-time; if appropriate type conversions (casting) cannot be applied an error will occur. Once a reference type instance has been allocated, its members may be used as part of other expressions. - -Constructor calls may be overloaded based on arity in Painless. This means the same reference type may have multiple constructors as long as the number of arguments differs for each one. This does have an effect on some of the provided reference type constructors in the Painless API [MARK]. When there are overloaded constructors with the same arity for a reference type in Java a single constructor must be chosen to be provided in Painless. - -*Grammar:* -[source,ANTLR4] ----- -constructor_call: 'new' TYPE '(' (expression (',' expression)*)? ')'; ----- - -*Examples:* -[source,Java] ----- -Map m = new HashMap(); // declares the Map variable m and sets it to a newly allocated HashMap using an empty constructor -m.put(3, 3); // invokes the method call member put and adds the key-value pair of 3 to Map variable m -def d = new ArrayList(); // declares the def variable d and sets it to a newly allocated ArrayList using an empty constructor -def e; // declares the def variable e -e = new HashMap(m); // sets e to a newly allocated HashMap using the constructor with a single argument m ----- - -[[new-array]] -==== New Array - -An array type instance can be allocated using the new operator. The format starts with the new operator followed by the type followed by a series of opening and closing braces each containing an expression for the size of the dimension. - -*Grammar:* -[source,ANTLR4] ----- -new_array: 'new' TYPE ('[' expression ']')+; ----- - -*Examples:* -[source,Java] ----- -int[] x = new int[5]; // declares an int array variable x and sets it to a newly allocated array with a size of 5 -x = new int[10]; // sets the int array variable x to a newly allocated array with a size of 10 -def[][] y = new def[5][5]; // declares a 2-dimensional def array variable y and set it to a newly - // allocated 2-dimensional array where both dimensions have a size of 5 ----- - -==== Multiplication - -Multiplies two numerical expressions. Rules for resultant overflow and NaN values follow the Java specification. The format is an expression, followed by the star operator, and a closing expression. - -*Grammar:* -[source,ANTLR4] ----- -multiplication: expression '*' expression; ----- - -A numeric promotion may occur during a multiplication operation. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-numeric numbers will result in an error. - -Promotion Table: -|==== -||byte|short|char|int|long|float|double|def -|byte|int|int|int|int|long|float|double|def -|short|int|int|int|int|long|float|double|def -|char|int|int|int|int|long|float|double|def -|int|int|int|int|int|long|float|double|def -|long|long|long|long|long|long|float|double|def -|float|float|float|float|float|float|float|double|def -|double|double|double|double|double|double|double|double|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -int x = 5*4; // declares the int variable x and sets it to the result of 5 multiplied by 4 -double y = x*7.0; // declares the double variable y and sets it to the result of x multiplied by 7.0 (x is promoted to a double) -def z = x*y; // declares the def variable z and sets it to the result of x multiplied by y (x is promoted to a double) -def a = z*x; // declares the def variable a and sets it to the result of z multiplied by x (x is promoted to def at compile-time and double at run-time) ----- - -==== Division - -Divides two numerical expressions. Rules for NaN values and division by zero follow the Java specification. Integer division will drop the remainder of the resultant value. The format is an expression, followed by the slash operator, and a closing expression. - -*Grammar:* -[source,ANTLR4] ----- -division: expression '/' expression; ----- - -A numeric promotion may occur during a division operation. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-numeric expressions will result in an error. - -Promotion Table: -|==== -||byte|short|char|int|long|float|double|def -|byte|int|int|int|int|long|float|double|def -|short|int|int|int|int|long|float|double|def -|char|int|int|int|int|long|float|double|def -|int|int|int|int|int|long|float|double|def -|long|long|long|long|long|long|float|double|def -|float|float|float|float|float|float|float|double|def -|double|double|double|double|double|double|double|double|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -int x = 5/4; // declares the int variable x and sets it to the result of 5 divided by 4 -double y = x/7.0; // declares the double variable y and sets it to the result of x divided by 7.0 (x is promoted to a double) -def z = x/y; // declares the def variable z and sets it to the result of x divided by y (x is promoted to a double) -def a = z/x; // declares the def variable a and sets it to the result of z divided by x (x is promoted to def at compile-time and double at run-time) ----- - -==== Remainder - -Calculates the remainder for division between two numerical expressions. Rules for NaN values and division by zero follow the Java specification. The format is an expression, followed by the percent operator, and a closing expression. - -*Grammar:* -[source,ANTLR4] ----- -remainder: expression '%' expression; ----- - -A numeric promotion may occur during a remainder operation. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-numeric expressions will result in an error. - -Promotion Table: -|==== -||byte|short|char|int|long|float|double|def -|byte|int|int|int|int|long|float|double|def -|short|int|int|int|int|long|float|double|def -|char|int|int|int|int|long|float|double|def -|int|int|int|int|int|long|float|double|def -|long|long|long|long|long|long|float|double|def -|float|float|float|float|float|float|float|double|def -|double|double|double|double|double|double|double|double|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -int x = 5%4; // declares the int variable x and sets it to the remainder of 5 divided by 4 -double y = x%7.0; // declares the double variable y and sets it to the remainder of x divided by 7.0 (x is promoted to a double) -def z = x%y; // declares the def variable z and sets it to the remainder of x divided by y (x is promoted to a double) -def a = z%x; // declares the def variable a and sets it to the remainder of z divided by x (x is promoted to def at compile-time and double at run-time) ----- - -==== String Concatenation - -Concatenates two expressions together as a single String where at least of one of the expressions is a String to begin with. The format is an expression, followed by a plus operator, and a closing expression. - -*Grammar:* -[source,ANTLR4] ----- -concatenate: expression '+' expression; ----- - -*Examples:* -[source,Java] ----- -String x = "con"; // declares the String variable x and sets it to the String constant "con" -String y = x + "cat"; // declares the String variable y and sets it to the concatenation of the String variable x and the String constant "cat" -String z = 4 + x; // declares the String variable z and sets it to the concatenation of the int constant 4 and the String variable x (4 is implicitly cast to a String) -def d = 2; // declares the def variable d and sets it to the int constant 2 -z = z + d; // sets the String variable z to the concatenation of the String variable z -d = "con" + x + y + "cat"; // sets the def variable d to the concatenation of String constant "con", x, y, and the String constant "cat" ----- - -==== Addition - -Adds two numerical expressions. Rules for resultant overflow and NaN values follow the Java specification. The format is an expression, followed by the plus operator, and a closing expression. - -*Grammar:* -[source,ANTLR4] ----- -addition: expression '+' expression; ----- - -A numeric promotion may occur during a addition operation. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-numeric expressions will result in an error, except in the case of String which then implies the operation is string concatenation [MARK] rather than addition. - -Promotion Table: -|==== -||byte|short|char|int|long|float|double|def -|byte|int|int|int|int|long|float|double|def -|short|int|int|int|int|long|float|double|def -|char|int|int|int|int|long|float|double|def -|int|int|int|int|int|long|float|double|def -|long|long|long|long|long|long|float|double|def -|float|float|float|float|float|float|float|double|def -|double|double|double|double|double|double|double|double|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -int x = 5 + 4; // declares the int variable x and sets it to the result of 5 added to 4 -double y = x + 7.0; // declares the double variable y and sets it to the result of x added to 7.0 (x is promoted to a double) -def z = x + y; // declares the def variable z and sets it to the result of x added to y (x is promoted to a double) -def a = z + x; // declares the def variable a and sets it to the result of z added to x (x is promoted to def at compile-time and double at run-time) ----- - -==== Subtraction - -Subtracts two numerical expressions. Rules for resultant overflow and NaN values follow the Java specification. The format is an expression, followed by the minus operator, and a closing expression. - -*Grammar:* -[source,ANTLR4] ----- -subtraction: expression '-' expression; ----- - -A numeric promotion may occur during a subtraction operation. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-numeric expressions will result in an error. - -Promotion Table: -|==== -||byte|short|char|int|long|float|double|def -|byte|int|int|int|int|long|float|double|def -|short|int|int|int|int|long|float|double|def -|char|int|int|int|int|long|float|double|def -|int|int|int|int|int|long|float|double|def -|long|long|long|long|long|long|float|double|def -|float|float|float|float|float|float|float|double|def -|double|double|double|double|double|double|double|double|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -int x = 5-4; // declares the int variable x and sets it to the result of 4 subtracted from 5 -double y = x-7.0; // declares the double variable y and sets it to the result of 7.0 subtracted from x (x is promoted to a double) -def z = x-y; // declares the def variable z and sets it to the result of y subtracted from x (x is promoted to a double) -def a = z-x; // declares the def variable a and sets it to the result of x subtracted from z (x is promoted to def at compile-time and double at run-time) ----- - -==== Left Shift - -Shifts lower order bits to higher order bits in the left-side expression by the distance specified in the right-side expression. The format is an expression followed by two left-carrots, and a closing expression. - -*Grammar:* -[source,ANTLR4] ----- -left_shift: expression '<<' expression; ----- - -A numeric promotion may occur during a left shift operation to the left-side expression. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-numeric and floating point expressions will result in an error. - -Promotion Table: -|==== -|from|to -|byte|int -|short|int -|char|int -|int|int -|long|long -|def|def -|==== - -The right-side expression will be explicitly cast to an int value and truncated based on the promoted type of the left-side expression. If the left-side expression is of type int then the lowest order 5-bits will be taken as the distance to shift from the right-side expression (0-31). If the left-side expression is of type long then the lowest order 6-bits will be taken as the distance to shift from the right-side expression (0-63). Non-numeric and floating point expressions will result in an error. - -*Examples:* -[source,Java] ----- -int x = 5 << 4; // declares the int variable x and sets it to the result of 5 left shifted by 4 -long y = x << 7; // declares the long variable y and sets it to the result of x left shifted by 7 (x is promoted to a long) -def z = x << y; // declares the def variable z and sets it to the result of x left shifted by y -def a = z << x; // declares the def variable a and sets it to the result of z left shifted by x ----- - -==== Right Shift - -Shifts higher order bits to lower order bits in the left-side expression by the distance specified in the right-side expression. Right shift will preserve the signed bit (highest order bit) as part of the result. The format is an expression followed by two right-carrots, and a closing expression. - -*Grammar:* -[source,ANTLR4] ----- -right_shift: expression '>>' expression; ----- - -A numeric promotion may occur during a right shift operation to the left-side expression. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-numeric and floating point expressions will result in an error. - -Promotion Table: -|==== -|from|to -|byte|int -|short|int -|char|int -|int|int -|long|long -|def|def -|==== - -The right-side expression will be explicitly cast to an int value and truncated based on the promoted type of the left-side expression. If the left-side expression is of type int then the lowest order 5-bits will be taken as the distance to shift from the right-side expression (0-31). If the left-side expression is of type long then the lowest order 6-bits will be taken as the distance to shift from the right-side expression (0-63). Non-numeric and floating point expressions will result in an error. - -*Examples:* -[source,Java] ----- -int x = 5 >> 4; // declares the int variable x and sets it to the result of 5 right shifted by 4 -long y = x >> 7; // declares the long variable y and sets it to the result of x right shifted by 7 (x is promoted to a long) -def z = x >> y; // declares the def variable z and sets it to the result of x right shifted by y -def a = z >> x; // declares the def variable a and sets it to the result of z right shifted by x ----- - -==== Unsigned Right Shift - -Shifts higher order bits to lower order bits in the left-side expression by the distance specified in the right-side expression. Unsigned right shift will not preserve the signed bit (highest order bit) as part of the result. The format is an expression followed by three right-carrots, and a closing expression. - -*Grammar:* -[source,ANTLR4] ----- -unsigned_right_shift: expression '>>>' expression; ----- - -A numeric promotion may occur during an unsigned right shift operation to the left-side expression. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-numeric and floating point expressions will result in an error. - -Promotion Table: -|==== -|from|to -|byte|int -|short|int -|char|int -|int|int -|long|long -|def|def -|==== - -The right-side expression will be explicitly cast to an int value and truncated based on the promoted type of the left-side expression. If the left-side expression is of type int then the lowest order 5-bits will be taken as the distance to shift from the right-side expression (0-31). If the left-side expression is of type long then the lowest order 6-bits will be taken as the distance to shift from the right-side expression (0-63). Non-numeric and floating point expressions will result in an error. - -*Examples:* -[source,Java] ----- -int x = 5 >> 4; // declares the int variable x and sets it to the result of 5 unsigned right shifted by 4 -long y = x >> 7; // declares the long variable y and sets it to the result of x unsigned right shifted by 7 (x is promoted to a long) -def z = x >> y; // declares the def variable z and sets it to the result of x unsigned right shifted by y -def a = z >> x; // declares the def variable a and sets it to the result of z unsigned right shifted by x ----- - -==== Greater Than - -Greater than compares two numerical expressions where a resultant boolean value will be true if the left-side expression is a larger value than the right-side expression otherwise false. The format is an expression, followed by the right angle operator, and a closing expression. - -*Grammar:* -[source,ANTLR4] ----- -greater_than: expression '>' expression; ----- - -A numeric promotion may occur during a greater than operation. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-numeric expressions will result in an error. - -Promotion Table: -|==== -||byte|short|char|int|long|float|double|def -|byte|int|int|int|int|long|float|double|def -|short|int|int|int|int|long|float|double|def -|char|int|int|int|int|long|float|double|def -|int|int|int|int|int|long|float|double|def -|long|long|long|long|long|long|float|double|def -|float|float|float|float|float|float|float|double|def -|double|double|double|double|double|double|double|double|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -boolean x = 5 > 4; // declares the int variable x and sets it to the result of 5 greater than 4 -double y = 7.0; // declares the double variable y and sets it to the double constant 7.0 -def z = y > 6.5; // declares the def variable z and sets it to the result of y greater than 6.5 -def a = y > x; // declares the def variable a and sets it to the result of y greater than z (x is promoted to double at compile-time) ----- - -==== Greater Than Or Equal - -Greater than or equal compares two numerical expressions where a resultant boolean value will be true if the left-side expression is a larger value than or equal to the right-side expression otherwise false. The format is an expression, followed by the right angle and equals operator, and a closing expression. - -*Grammar:* -[source,ANTLR4] ----- -greater_than_or_equal: expression '>=' expression; ----- - -A numeric promotion may occur during a greater than or equal operation. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-numeric expressions will result in an error. - -Promotion Table: -|==== -||byte|short|char|int|long|float|double|def -|byte|int|int|int|int|long|float|double|def -|short|int|int|int|int|long|float|double|def -|char|int|int|int|int|long|float|double|def -|int|int|int|int|int|long|float|double|def -|long|long|long|long|long|long|float|double|def -|float|float|float|float|float|float|float|double|def -|double|double|double|double|double|double|double|double|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -boolean x = 5 >= 4; // declares the int variable x and sets it to the result of 5 greater than or equal to 4 -double y = 7.0; // declares the double variable y and sets it to the double constant 7.0 -def z = y >= 6.5; // declares the def variable z and sets it to the result of y greater than or equal to 6.5 -def a = y >= x; // declares the def variable a and sets it to the result of y greater than or equal to z (x is promoted to double at compile-time) ----- - -==== Less Than - -Less than compares two numerical expressions where a resultant boolean value will be true if the left-side expression is a smaller value than the right-side expression otherwise false. The format is an expression, followed by the left angle operator, and a closing expression. - -*Grammar:* -[source,ANTLR4] ----- -less_than: expression '<' expression; ----- - -A numeric promotion may occur during a less than operation. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-numeric expressions will result in an error. - -Promotion Table: -|==== -||byte|short|char|int|long|float|double|def -|byte|int|int|int|int|long|float|double|def -|short|int|int|int|int|long|float|double|def -|char|int|int|int|int|long|float|double|def -|int|int|int|int|int|long|float|double|def -|long|long|long|long|long|long|float|double|def -|float|float|float|float|float|float|float|double|def -|double|double|double|double|double|double|double|double|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -boolean x = 5 < 4; // declares the int variable x and sets it to the result of 5 less than 4 -double y = 7.0; // declares the double variable y and sets it to the double constant 7.0 -def z = y < 6.5; // declares the def variable z and sets it to the result of y less than 6.5 -def a = y < x; // declares the def variable a and sets it to the result of y less than z (x is promoted to double at compile-time) ----- - -==== Less Than Or Equal - -Less than or equal compares two numerical expressions where a resultant boolean value will be true if the left-side expression is a larger value than or equal to the right-side expression otherwise false. The format is an expression, followed by the left angle and equals operator, and a closing expression. - -*Grammar:* -[source,ANTLR4] ----- -less_than_or_equal: expression '<=' expression; ----- - -A numeric promotion may occur during a less than or equal operation. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-numeric expressions will result in an error. - -Promotion Table: -|==== -||byte|short|char|int|long|float|double|def -|byte|int|int|int|int|long|float|double|def -|short|int|int|int|int|long|float|double|def -|char|int|int|int|int|long|float|double|def -|int|int|int|int|int|long|float|double|def -|long|long|long|long|long|long|float|double|def -|float|float|float|float|float|float|float|double|def -|double|double|double|double|double|double|double|double|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -boolean x = 5 <= 4; // declares the int variable x and sets it to the result of 5 less than or equal to 4 -double y = 7.0; // declares the double variable y and sets it to the double constant 7.0 -def z = y <= 6.5; // declares the def variable z and sets it to the result of y less than or equal to 6.5 -def a = y <= x; // declares the def variable a and sets it to the result of y less than or equal to z (x is promoted to double at compile-time) ----- - -==== Instance Of - -The instanceof operator can be used to compare a variable's type to a specified reference type where a resultant boolean value is true if the variable type is the same as or a descendant of the specified reference type and false otherwise. The format is an id, followed by the instanceof operator, and finished with a type. - -*Grammar:* -[source,ANTLR4] ----- -instance_of: ID 'instanceof' TYPE; ----- - -*Examples:* -[source,Java] ----- -Map x = new HashMap(); // declares the Map variable x and sets it to a newly allocated HashMap -List y = new ArrayList(); // declares the List variable y and sets it to a newly allocated ArrayList -def z = y; // declares the def variable z and sets it to y -boolean a = x instanceof HashMap; // declares the boolean variable a and sets it to true since x's type is the same type as HashMap -boolean b = y instanceof Map; // declares the boolean variable b and sets it to false since y's type is not the same type as Map or a descendant of Map -boolean c = z instanceof List; // declares the boolean variable c and sets it to true since z's type is a descendant of the type List ----- - -==== Equality Equals - -Equality equals compares two expressions where a resultant boolean value is true if the two expressions are equal and false otherwise. When reference types are compared using this operator the equivalent of the equals member method will be called against the first expression, where the second expression is the argument. Though the equals member method is used for reference types, this operation will always be null-safe. Valid comparisons are between boolean types, primitive numeric types, and reference types. If a comparison is made that is not listed as one of the valid comparisons an error will occur. The format is an expression, followed by the equals-equals operator, and finished with an expression. - -*Grammar:* -[source,ANTLR4] ----- -equality_equals: expression '==' expression; ----- - -A numeric type promotion may occur during a primitive numeric comparison. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. - -Promotion Table: -|==== -||byte|short|char|int|long|float|double|def -|byte|int|int|int|int|long|float|double|def -|short|int|int|int|int|long|float|double|def -|char|int|int|int|int|long|float|double|def -|int|int|int|int|int|long|float|double|def -|long|long|long|long|long|long|float|double|def -|float|float|float|float|float|float|float|double|def -|double|double|double|double|double|double|double|double|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -boolean b0 = true; // declares the boolean variable b0 and sets it the constant boolean true -boolean b1 = false; // declares the boolean variable b1 and sets it the constant boolean false -int i = 2; // declares the int variable i and sets it the constant int 2 -float f = 2.0f; // declares the float variable f and sets it the constant float 2.0 -List l0 = new ArrayList(); // declares the List variable l0 and sets it to a newly allocated ArrayList -ArrayList l1 = new ArrayList(); // declares the ArrayList variable l1 and sets it to a newly allocated ArrayList -def di0 = 2; // declares the def variable di0 and sets it the constant int 2 -def di1 = 3; // declares the def variable di1 and sets it the constant int 3 -def dl = new ArrayList(); // declares the def variable dl and sets it to a newly allocated ArrayList -boolean result; // declares the boolean variable result - -result = b0 == b1; // compares b0 to b1 and has a boolean result of false -result = i == f; // compares i to f where i is promoted to float and has a boolean result of true -result = b0 == i; // ERROR: a comparison between a boolean and a primitive numeric type is illegal -result = i == l0; // ERROR: a comparison between a primitive numeric type and a reference type is illegal - -l0.add(1); // adds a constant int 1 to the List l0 -l1.add(1); // adds a constant int 1 to the ArrayList l1 -result = l0 == l1; // compares l0 to l1 using l0.equals(l1) and has a boolean result of true -l0.add(1); // adds a constant int 1 to the List l0 -result = l0 == l1; // compares l0 to l1 using l0.equals(l1) and has a boolean result of false - -result = di0 == di1; // compares di0 to di1 and has a boolean result of false -result = di0 == i; // compares di0 to i where i is promoted to def and has a boolean result of true - -dl.add(1); // adds a constant int 1 to the def ArrayList dl -result = dl == l0; // compares dl to l0 using dl.equals(l0) with a boolean result of true - -result = null == dl; // compares null to dl with a boolean result of false -result = l1 == null; // compares l1 to null with a boolean result of false ----- - -==== Equality Not Equals - -Equality not equals compares two expressions where a resultant boolean value is true if the two expressions are not equal and false otherwise. When reference types are compared using this operator the equivalent of the equals member method will be called against the first expression, where the second expression is the argument, with the resultant boolean being reversed. Though the equals member method is used for reference types, this operation will always be null-safe. Valid comparisons are between boolean types, primitive numeric types, and reference types. If a comparison is made that is not listed as one of the valid comparisons an error will occur. The format is an expression, followed by the bang-equals operator, and finished with an expression. - -*Grammar:* -[source,ANTLR4] ----- -equality_not_equals: expression '!=' expression; ----- - -A numeric type promotion may occur during a primitive numeric comparison. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. - -Promotion Table: -|==== -||byte|short|char|int|long|float|double|def -|byte|int|int|int|int|long|float|double|def -|short|int|int|int|int|long|float|double|def -|char|int|int|int|int|long|float|double|def -|int|int|int|int|int|long|float|double|def -|long|long|long|long|long|long|float|double|def -|float|float|float|float|float|float|float|double|def -|double|double|double|double|double|double|double|double|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -boolean b0 = true; // declares the boolean variable b0 and sets it the constant boolean true -boolean b1 = false; // declares the boolean variable b1 and sets it the constant boolean false -int i = 2; // declares the int variable i and sets it the constant int 2 -float f = 2.0f; // declares the float variable f and sets it the constant float 2.0 -List l0 = new ArrayList(); // declares the List variable l0 and sets it to a newly allocated ArrayList -ArrayList l1 = new ArrayList(); // declares the ArrayList variable l1 and sets it to a newly allocated ArrayList -def di0 = 2; // declares the def variable di0 and sets it the constant int 2 -def di1 = 3; // declares the def variable di1 and sets it the constant int 3 -def dl = new ArrayList(); // declares the def variable dl and sets it to a newly allocated ArrayList -boolean result; // declares the boolean variable result - -result = b0 != b1; // compares b0 to b1 and has a boolean result of true -result = i != f; // compares i to f where i is promoted to float and has a boolean result of false -result = b0 != i; // ERROR: a comparison between a boolean and a primitive numeric type is illegal -result = i != l0; // ERROR: a comparison between a primitive numeric type and a reference type is illegal - -l0.add(1); // adds a constant int 1 to the List l0 -l1.add(1); // adds a constant int 1 to the ArrayList l1 -result = l0 != l1; // compares l0 to l1 using l0.equals(l1) and has a boolean result of false -l0.add(1); // adds a constant int 1 to the List l0 -result = l0 != l1; // compares l0 to l1 using l0.equals(l1) and has a boolean result of true - -result = di0 != di1; // compares di0 to di1 and has a boolean result of true -result = di0 != i; // compares di0 to i where i is promoted to def and has a boolean result of false - -dl.add(1); // adds a constant int 1 to the def ArrayList dl -result = dl != l0; // compares dl to l0 using dl.equals(l0) with a boolean result of false - -result = null != dl; // compares null to dl with a boolean result of true -result = l1 != null; // compares null to l1 with a boolean result of true ----- - -==== Identity Equals - -Identity equals compares two expressions where a resultant boolean value is true if the two expressions are equal and false otherwise. Two primitive types are considered to be equal if they have the same value. Two reference types are considered to be equal if they refer to the exact same instance in memory or are both null. Valid comparisons are between boolean types, primitive numeric types, and reference types. If a comparison is made that is not listed as one of the valid comparisons an error will occur. The format is an expression, followed by the equals-equals-equals operator, and finished with an expression. - -*Grammar:* -[source,ANTLR4] ----- -identity_equals: expression '===' expression; ----- - -A numeric type promotion may occur during a primitive numeric comparison. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. - -Promotion Table: -|==== -||byte|short|char|int|long|float|double|def -|byte|int|int|int|int|long|float|double|def -|short|int|int|int|int|long|float|double|def -|char|int|int|int|int|long|float|double|def -|int|int|int|int|int|long|float|double|def -|long|long|long|long|long|long|float|double|def -|float|float|float|float|float|float|float|double|def -|double|double|double|double|double|double|double|double|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -boolean b0 = true; // declares the boolean variable b0 and sets it the constant boolean true -boolean b1 = false; // declares the boolean variable b1 and sets it the constant boolean false -int i = 2; // declares the int variable i and sets it the constant int 2 -float f = 2.0f; // declares the float variable f and sets it the constant float 2.0 -List l0 = new ArrayList(); // declares the List variable l0 and sets it to a newly allocated ArrayList -ArrayList l1 = new ArrayList(); // declares the ArrayList variable l1 and sets it to a newly allocated ArrayList -List l2 = l1; // declares the List variable l2 and sets it to l1 -def di0 = 2; // declares the def variable di0 and sets it the constant int 2 -def di1 = 3; // declares the def variable di1 and sets it the constant int 3 -def dl = l0; // declares the def variable dl and sets it to l0 -boolean result; // declares the boolean variable result - -result = b0 === b1; // compares b0 to b1 and has a boolean result of false -result = i === f; // compares i to f where i is promoted to float and has a boolean result of true -result = b0 === i; // ERROR: a comparison between a boolean and a primitive numeric type is illegal -result = i === l0; // ERROR: a comparison between a primitive numeric type and a reference type is illegal - -l0.add(1); // adds a constant int 1 to the List l0 -l1.add(1); // adds a constant int 1 to the ArrayList l1 -result = l0 === l1; // compares l0 to l1 and has a boolean result of false -l0.add(1); // adds a constant int 1 to the List l0 -result = l0 === l1; // compares l0 to l1 and has a boolean result of false -result = l1 === l2; // compares l1 to l2 and has a boolean result of true - -result = di0 === di1; // compares di0 to di1 and has a boolean result of false -result = di0 === i; // compares di0 to i where i is promoted to def and has a boolean result of true - -result = dl === l0; // compares dl to l0 with a boolean result of true - -result = null === dl; // compares null to dl with a boolean result of false -result = l1 === null; // compares null to l1 with a boolean result of false ----- - -==== Identity Not Equals - -Identity not equals compares two expressions where a resultant boolean value is true if the two expressions are not equal and false otherwise. Two primitive types are considered to be not equal if they have different values. Two reference types are considered to be not equal if they refer to the different instances in memory or one is null and the other is not. Valid comparisons are between boolean types, primitive numeric types, and reference types. If a comparison is made that is not listed as one of the valid comparisons an error will occur. The format is an expression, followed by the bang-equals-equals operator, and finished with an expression. - -*Grammar:* -[source,ANTLR4] ----- -identity_not_equals: expression '!==' expression; ----- - -A numeric type promotion may occur during a primitive numeric comparison. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. - -Promotion Table: -|==== -||byte|short|char|int|long|float|double|def -|byte|int|int|int|int|long|float|double|def -|short|int|int|int|int|long|float|double|def -|char|int|int|int|int|long|float|double|def -|int|int|int|int|int|long|float|double|def -|long|long|long|long|long|long|float|double|def -|float|float|float|float|float|float|float|double|def -|double|double|double|double|double|double|double|double|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -boolean b0 = true; // declares the boolean variable b0 and sets it the constant boolean true -boolean b1 = false; // declares the boolean variable b1 and sets it the constant boolean false -int i = 2; // declares the int variable i and sets it the constant int 2 -float f = 2.0f; // declares the float variable f and sets it the constant float 2.0 -List l0 = new ArrayList(); // declares the List variable l0 and sets it to a newly allocated ArrayList -ArrayList l1 = new ArrayList(); // declares the ArrayList variable l1 and sets it to a newly allocated ArrayList -List l2 = l1; // declares the List variable l2 and sets it to l1 -def di0 = 2; // declares the def variable di0 and sets it the constant int 2 -def di1 = 3; // declares the def variable di1 and sets it the constant int 3 -def dl = l0; // declares the def variable dl and sets it to l0 -boolean result; // declares the boolean variable result - -result = b0 !== b1; // compares b0 to b1 and has a boolean result of true -result = i !== f; // compares i to f where i is promoted to float and has a boolean result of false -result = b0 !== i; // ERROR: a comparison between a boolean and a primitive numeric type is illegal -result = i !== l0; // ERROR: a comparison between a primitive numeric type and a reference type is illegal - -l0.add(1); // adds a constant int 1 to the List l0 -l1.add(1); // adds a constant int 1 to the ArrayList l1 -result = l0 !== l1; // compares l0 to l1 and has a boolean result of true -l0.add(1); // adds a constant int 1 to the List l0 -result = l0 !== l1; // compares l0 to l1 and has a boolean result of true -result = l1 !== l2; // compares l1 to l2 and has a boolean result of false - -result = di0 !== di1; // compares di0 to di1 and has a boolean result of true -result = di0 !== i; // compares di0 to i where i is promoted to def and has a boolean result of false - -result = dl !== l0; // compares dl to l0 with a boolean result of false - -result = null !== dl; // compares null to dl with a boolean result of true -result = l1 !== null; // compares null to l1 with a boolean result of true ----- - -==== Bitwise And - -Bitwise and will and together two integer type expressions. The table below shows what each resultant bit will in the resultant integer type value be based on the corresponding bit in each integer type expression. - -|==== -||1|0 -|1|1|0 -|0|0|0 -|==== - -The format starts with an expression, follows with the ampersand operator, and finishes with an expression. - -*Grammar:* -[source,ANTLR4] ----- -bitwise_and: expression '&' expression; ----- - -A numeric promotion may occur during a bitwise and operation. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-integer expressions will result in an error. - -Promotion Table: -|==== -||byte|short|char|int|long|def -|byte|int|int|int|int|long|def -|short|int|int|int|int|long|def -|char|int|int|int|int|long|def -|int|int|int|int|int|long|def -|long|long|long|long|long|long|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -byte x = 16; // declares the byte variable x and sets it to a constant int 1 -int y = x & 4; // declares the int variable y and sets it to the result of x and 4 -long z = y & x; // declares the long variable z and sets it the result of y and x -def d = z & 2; // declares the def variable d and sets it the result of z and 2 -def e; // declares the def variable e -e = d & z; // sets e to the result of d and z ----- - -==== Boolean Xor - -Boolean xor will xor together two boolean expressions. The table below shows what the resultant boolean value will be based on the two boolean expressions. - -|==== -||true|false -|true|false|true -|false|true|false -|==== - -The format starts with an expression, follows with the carrot operator, and finishes with an expression. - -*Grammar:* -[source,ANTLR4] ----- -boolean_xor: expression '^' expression; ----- - -Note that def types will be assumed to be of the boolean type. Any def type evaluated at run-time that does not represent a boolean will result in an error. Non-boolean expressions will result in an error. - -*Examples:* -[source,Java] ----- -boolean x = false; // declares the boolean variable x and sets the constant boolean false -boolean y = x ^ true; // declares the boolean variable y and sets it the result of x xor true -def z = y ^ x; // declares the def variable z and sets it to the result of y xor x ----- - -==== Bitwise Xor - -Bitwise xor will xor together two integer type expressions. The table below shows what each resultant bit will in the resultant integer type value be based on the corresponding bit in each integer type expression. - -|==== -||1|0 -|1|0|1 -|0|1|0 -|==== - -The format starts with an expression, follows with the carrot operator, and finishes with an expression. - -*Grammar:* -[source,ANTLR4] ----- -bitwise_xor: expression '^' expression; ----- - -A numeric promotion may occur during a bitwise xor operation. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-integer expressions will result in an error. - -Promotion Table: -|==== -||byte|short|char|int|long|def -|byte|int|int|int|int|long|def -|short|int|int|int|int|long|def -|char|int|int|int|int|long|def -|int|int|int|int|int|long|def -|long|long|long|long|long|long|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -byte x = 16; // declares the byte variable x and sets it to a constant int 1 -int y = x ^ 4; // declares the int variable y and sets it to the result of x xor 4 -long z = y ^ x; // declares the long variable z and sets it the result of y xor x -def d = z ^ 2; // declares the def variable d and sets it the result of z xor 2 -def e; // declares the def variable e -e = d ^ z; // sets e to the result of d xor z ----- - -==== Bitwise Or - -Bitwise or will or together two integer type expressions. The table below shows what each resultant bit will in the resultant integer type value be based on the corresponding bit in each integer type expression. - -|==== -||1|0 -|1|1|1 -|0|1|0 -|==== - -The format starts with an expression, follows with the pipe operator, and finishes with an expression. - -*Grammar:* -[source,ANTLR4] ----- -bitwise_or: expression '|' expression; ----- - -A numeric promotion may occur during a bitwise xor operation. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. Non-integer expressions will result in an error. - -Promotion Table: -|==== -||byte|short|char|int|long|def -|byte|int|int|int|int|long|def -|short|int|int|int|int|long|def -|char|int|int|int|int|long|def -|int|int|int|int|int|long|def -|long|long|long|long|long|long|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -byte x = 16; // declares the byte variable x and sets it to a constant int 1 -int y = x | 4; // declares the int variable y and sets it to the result of x or 4 -long z = y | x; // declares the long variable z and sets it the result of y or x -def d = z | 2; // declares the def variable d and sets it the result of z or 2 -def e; // declares the def variable e -e = d | z; // sets e to the result of d or z ----- - -==== Boolean And - -Boolean and will and together two boolean expressions. If the first expression is found to be false then it is known that the result will also be false, so evaluation of the second expression will be skipped. The table below shows what the resultant boolean value will be based on the two boolean expressions. - -||true|false -|true|true|false -|false|false|false - -The format starts with an expression, follows with the ampersand-ampersand operator, and finishes with an expression. - -*Grammar:* -[source,ANTLR4] ----- -boolean_and: expression '&&' expression; ----- - -Note that def types will be assumed to be of the boolean type. Any def type evaluated at run-time that does not represent a boolean will result in an error. Non-boolean expressions will result in an error. - -*Examples:* -[source,Java] ----- -boolean x = false; // declares the boolean variable x and sets the constant boolean false -boolean y = x && true; // declares the boolean variable y and sets it the result of x and true -def z = y && x; // declares the def variable z and sets it to the result of y and x ----- - -==== Boolean Or - -Boolean or will or together two boolean expressions. If the first expression is found to be true then it is known that the result will also be true, so evaluation of the second expression will be skipped. The table below shows what the resultant boolean value will be based on the two boolean expressions. - -|==== -||true|false -|true|true|true -|false|true|false -|==== - -The format starts with an expression, follows with the pipe-pipe operator, and finishes with an expression. - -*Grammar:* -[source,ANTLR4] ----- -boolean_and: expression '||' expression; ----- - -Note that def types will be assumed to be of the boolean type. Any def type evaluated at run-time that does not represent a boolean will result in an error. Non-boolean expressions will result in an error. - -*Examples:* -[source,Java] ----- -boolean x = false; // declares the boolean variable x and sets the constant boolean false -boolean y = x || true; // declares the boolean variable y and sets it the result of x or true -def z = y || x; // declares the def variable z and sets it to the result of y or x ----- - -==== Conditional - -A conditional operation consists of three expressions. The first expression is evaluated with an expected boolean result type. If the first expression evaluates to true then the second expression will be evaluated. If the first expression evaluates to false then the third expression will be evaluated. This can be used as a shortcut many different operations without requiring a full if/else branch. Errors will occur if the first expression does not evaluate to a boolean type or if one of the second or third expression cannot be converted to a type appropriate for the expected result. The format is an expression followed by a question-mark operator, another expression, a colon operator, and finishes with a final expression. - -*Grammar:* -[source,ANTLR4] ----- -conditional: expression '?' expression ':' expression; ----- - -A numeric type promotion may occur during the evaluation of a conditional with the second and third expressions if the expected result is a numeric type. A def type evaluated at run-time will follow the same promotion table at run-time following whatever type def represents. - -Promotion Table: -|==== -||byte|short|char|int|long|float|double|def -|byte|int|int|int|int|long|float|double|def -|short|int|int|int|int|long|float|double|def -|char|int|int|int|int|long|float|double|def -|int|int|int|int|int|long|float|double|def -|long|long|long|long|long|long|float|double|def -|float|float|float|float|float|float|float|double|def -|double|double|double|double|double|double|double|double|def -|def|def|def|def|def|def|def|def|def -|==== - -*Examples:* -[source,Java] ----- -boolean b = true; // declares the boolean variable b and sets it the constant boolean true - -int x = b ? 1 : 2; // declares the int variable x and sets it to the int constant 1 - // since the first expression of the conditional evaluates to true - // so the second expression is evaluated for a result - -List y = x > 1 ? new ArrayList() : null; // declares the List variable y and sets it to null - // since the first expression of the conditional evaluates to false - // so the third expression is evaluated for a result - -def z = x < 2 ? true : false; // declares the def variable z and sets it to the boolean constant true - // since the first expression of the conditional evaluates to true - // so the second expression is evaluated for a result ----- - -==== Elvis - -The elvis operator consists of two expressions. If the first expression is a non-null value then the resultant value will be the evaluated first expression otherwise the resultant value will be the evaluated second expression. This is typically used as a shortcut for a null check in a conditional. An error will occur if the expected result is a primitive type. The format is an expression, followed by the question-mark-colon operator, and finishes with an expression. - -*Grammar:* -[source,ANTLR4] ----- -elvis: expression '?:' expression; ----- - -*Examples:* -[source,Java] ----- -List l = new ArrayList(); // declares the List variable l and sets it to a newly allocated ArrayList -List y = l ?: new ArrayList(); // declares the List variable y and sets it to l since l is not null -y = null; // sets y to null -def z = y ?: new HashMap(); // declares the def variable z and sets it to a newly allocated HashMap since y is null ----- - -==== Assignment - -Assignment can be used to assign a value to a variable. See Variable Assignment [MARK] for more information. - -==== Compound Assignment - -Compound assignment can be used as a shortcut for an assignment where a binary operation would occur between the variable/field as the left-side expression and a separate right-side expression. The variable/field and right-side expression must be of appropriate types for the specific operation or an error will occur. A downcast may be necessary for certain operations to be able to assign the result back into the variable/field and will happen implicitly. The format is a variable/field, followed by one of the compound assignment operators, finished with an expression. - -*Grammar:* -[source,ANTLR4] ----- -compund_assignment: ID (. ID)? '$=' expression; // $ is a placeholder for the operation symbol ----- - -A compound assignment is equivalent to the expression below where V is the variable/field and T is the type of variable/member. - -[source,Java] ----- -V = (T)(V op expression); ----- - -The table below shows all available operators for compound assignment. All operators follow any casting/promotion rules according to their regular definition. - -|==== -|Operator|Compound Symbol -|Multiplication|*= -|Division|/= -|Remainder|%= -|String Concatenation|+= -|Addition|+= -|Subtraction|-= -|Left Shift|<<= -|Right Shift|>>= -|Unsigned Right Shift|>>>= -|Bitwise And|&= -|Boolean And|&= -|Bitwise Xor|^= -|Boolean Xor|^= -|Bitwise Or|\|= -|Boolean Or|\|= -|==== - -*Examples:* -[source,Java] ----- -int i = 10; // declares the variable i and sets it to constant int 10 -i *= 2; // multiplies i by 2 -- i = (int)(i * 2) -i /= 5; // divides i by 5 -- i = (int)(i / 5) -i %= 3; // gives the remainder for i/3 -- i = (int)(i % 3) -i += 5; // adds 5 to i -- i = (int)(i + 5) -i -= 5; // subtracts 5 from i -- i = (int)(i - 5) -i <<= 2; // left shifts i by 2 -- i = (int)(i << 2) -i >>= 1; // right shifts i by 1 -- i = (int)(i >> 1) -i >>>= 1; // unsigned right shifts i by 1 -- i = (int)(i >>> 1) -i &= 15; // ands i with 15 -- i = (int)(i & 15) -i ^= 12; // xors i with 12 -- i = (int)(i ^ 2) -i |= 4; // ors i with 4 -- i = (int)(i | 4) - -boolean b = true; // declares the boolean variable b and sets it to the constant boolean true -b &= false; // ands b with false -- b = (boolean)(b & false) -b ^= false; // xors b with false -- b = (boolean)(b & false) -b |= true; // ors be with true -- b = (boolean)(b & false) - -def x = 'compound'; // declares the def variable x and sets it to the constant String 'compound' -x += ' assignment'; // string concatenates ' assignment' to x -- x = (String)(x + ' assignment') ----- diff --git a/docs/painless/painless-regexes.asciidoc b/docs/painless/painless-regexes.asciidoc new file mode 100644 index 00000000000..b4434208ab0 --- /dev/null +++ b/docs/painless/painless-regexes.asciidoc @@ -0,0 +1,33 @@ +[[painless-regexes]] +=== Regexes + +Regular expression constants are directly supported. To ensure fast performance, +this is the only mechanism for creating patterns. Regular expressions +are always constants and compiled efficiently a single time. + +[source,painless] +--------------------------------------------------------- +Pattern p = /[aeiou]/ +--------------------------------------------------------- + +[[pattern-flags]] +==== Pattern flags + +You can define flags on patterns in Painless by adding characters after the +trailing `/` like `/foo/i` or `/foo \w #comment/iUx`. Painless exposes all of +the flags from Java's +https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html[ +Pattern class] using these characters: + +[cols="<,<,<",options="header",] +|======================================================================= +| Character | Java Constant | Example +|`c` | CANON_EQ | `'å' ==~ /å/c` (open in hex editor to see) +|`i` | CASE_INSENSITIVE | `'A' ==~ /a/i` +|`l` | LITERAL | `'[a]' ==~ /[a]/l` +|`m` | MULTILINE | `'a\nb\nc' =~ /^b$/m` +|`s` | DOTALL (aka single line) | `'a\nb\nc' =~ /.b./s` +|`U` | UNICODE_CHARACTER_CLASS | `'Ɛ' ==~ /\\w/U` +|`u` | UNICODE_CASE | `'Ɛ' ==~ /ɛ/iu` +|`x` | COMMENTS (aka extended) | `'a' ==~ /a #comment/x` +|======================================================================= \ No newline at end of file diff --git a/docs/painless/painless-scripts.asciidoc b/docs/painless/painless-scripts.asciidoc new file mode 100644 index 00000000000..87e5b601590 --- /dev/null +++ b/docs/painless/painless-scripts.asciidoc @@ -0,0 +1,6 @@ +[[painless-scripts]] +=== Scripts + +Scripts are composed of one-to-many <> and are +run in a sandbox that determines what local variables are immediately available +along with what APIs are whitelisted for use. \ No newline at end of file diff --git a/docs/painless/painless-statements.asciidoc b/docs/painless/painless-statements.asciidoc new file mode 100644 index 00000000000..3bc4513baa7 --- /dev/null +++ b/docs/painless/painless-statements.asciidoc @@ -0,0 +1,14 @@ +[[painless-statements]] +=== Statements + +Painless supports all of Java's https://docs.oracle.com/javase/tutorial/java/nutsandbolts/flow.html[ +control flow statements] except the `switch` statement. + +Painless also supports the `for in` syntax from Groovy: + +[source,painless] +--------------------------------------------------------- +for (item : list) { + ... +} +--------------------------------------------------------- \ No newline at end of file diff --git a/docs/painless/painless-types.asciidoc b/docs/painless/painless-types.asciidoc index a897b8e8a04..65ae9b3f703 100644 --- a/docs/painless/painless-types.asciidoc +++ b/docs/painless/painless-types.asciidoc @@ -12,16 +12,16 @@ belongs to one of the following categories: <>, A primitive type represents basic data built natively into the JVM and is allocated to non-heap memory. Declare a primitive type -<>, and assign it a primitive type value for -evaluation during later operations. The default value for a newly-declared -primitive type variable is listed as part of the definitions below. A primitive -type value is copied during an assignment or as an argument for a -method/function call. +<> or access a primitive type member field (from +a reference type instance), and assign it a primitive type value for evaluation +during later operations. The default value for a newly-declared primitive type +variable is listed as part of the definitions below. A primitive type value is +copied during an assignment or as an argument for a method/function call. A primitive type has a corresponding reference type (also known as a boxed -type). Use the <> or -<> on a primitive type value to force -evaluation as its corresponding reference type value. +type). Use the <> or +<> on a primitive type value to +force evaluation as its corresponding reference type value. The following primitive types are available: @@ -83,11 +83,11 @@ logical quantity with two possible values of `true` and `false` ---- + <1> declare `int i`; - assign `int 1` to `i` + store `int 1` to `i` <2> declare `double d`; - assign default `double 0.0` to `d` + store default `double 0.0` to `d` <3> declare `boolean b`; - assign `boolean true` to `b` + store `boolean true` to `b` + * Method call on a primitive type using the corresponding reference type. + @@ -98,8 +98,8 @@ logical quantity with two possible values of `true` and `false` ---- + <1> declare `int i`; - assign `int 1` to `i` -<2> access `i` -> `int 1`; + store `int 1` to `i` +<2> load from `i` -> `int 1`; box `int 1` -> `Integer 1 reference`; call `toString` on `Integer 1 reference` -> `String '1'` @@ -113,7 +113,7 @@ multiple pieces of data (member fields) and logic to manipulate that data A reference type instance is a single set of data for one reference type object allocated to the heap. Use the -<> to allocate a reference type +<> to allocate a reference type instance. Use a reference type instance to load from, store to, and manipulate complex data. @@ -122,10 +122,11 @@ reference type values may refer to the same reference type instance. A change to a reference type instance will affect all reference type values referring to that specific instance. -Declare a reference type <>, and assign it a -reference type value for evaluation during later operations. The default value -for a newly-declared reference type variable is `null`. A reference type value -is shallow-copied during an assignment or as an argument for a method/function +Declare a reference type <> or access a reference +type member field (from a reference type instance), and assign it a reference +type value for evaluation during later operations. The default value for a +newly-declared reference type variable is `null`. A reference type value is +shallow-copied during an assignment or as an argument for a method/function call. Assign `null` to a reference type variable to indicate the reference type value refers to no reference type instance. The JVM will garbage collect a reference type instance when it is no longer referred to by any reference type @@ -138,8 +139,8 @@ static member field:: A static member field is a named and typed piece of data. Each reference type *object* contains one set of data representative of its static member fields. -Use the <> in correspondence with the -reference type object name to access a static member field for loading and +Use the <> in correspondence with +the reference type object name to access a static member field for loading and storing to a specific reference type *object*. No reference type instance allocation is necessary to use a static member field. @@ -148,32 +149,34 @@ non-static member field:: A non-static member field is a named and typed piece of data. Each reference type *instance* contains one set of data representative of its reference type object's non-static member fields. Use the -<> for loading and storing to a non-static -member field of a specific reference type *instance*. An allocated reference -type instance is required to use a non-static member field. +<> for loading and storing to a +non-static member field of a specific reference type *instance*. An allocated +reference type instance is required to use a non-static member field. static member method:: -A static member method is a function called on a reference type *object*. Use -the <> in correspondence with the reference -type object name to call a static member method. No reference type instance -allocation is necessary to use a static member method. +A static member method is a <> called on a +reference type *object*. Use the <> +in correspondence with the reference type object name to call a static member +method. No reference type instance allocation is necessary to use a static +member method. non-static member method:: -A non-static member method is a function called on a reference type *instance*. -A non-static member method called on a reference type instance can load from and -store to non-static member fields of that specific reference type instance. Use -the <> in correspondence with a specific -reference type instance to call a non-static member method. An allocated -reference type instance is required to use a non-static member method. +A non-static member method is a <> called on a +reference type *instance*. A non-static member method called on a reference type +instance can load from and store to non-static member fields of that specific +reference type instance. Use the <> +in correspondence with a specific reference type instance to call a non-static +member method. An allocated reference type instance is required to use a +non-static member method. constructor:: -A constructor is a special type of function used to allocate a reference type -*instance* defined by a specific reference type *object*. Use the -<> to allocate a reference type -instance. +A constructor is a special type of <> used to +allocate a reference type *instance* defined by a specific reference type +*object*. Use the <> to allocate +a reference type instance. A reference type object follows a basic inheritance model. Consider types A and B. Type A is considered to be a parent of B, and B a child of A, if B inherits @@ -198,16 +201,16 @@ relationships. <1> declare `List l`; allocate `ArrayList` instance -> `ArrayList reference`; implicit cast `ArrayList reference` to `List reference` -> `List reference`; - assign `List reference` to `l` -<2> access `l` -> `List reference`; + store `List reference` to `l` +<2> load from `l` -> `List reference`; implicit cast `int 1` to `def` -> `def` call `add` on `List reference` with arguments (`def`) <3> declare `int i`; - access `l` -> `List reference`; + load from `l` -> `List reference`; call `get` on `List reference` with arguments (`int 0`) -> `def`; implicit cast `def` to `int 1` -> `int 1`; add `int 1` and `int 2` -> `int 3`; - assign `int 3` to `i` + store `int 3` to `i` + * Sharing a reference type instance. + @@ -223,26 +226,26 @@ relationships. <1> declare `List l0`; allocate `ArrayList` instance -> `ArrayList reference`; implicit cast `ArrayList reference` to `List reference` -> `List reference`; - assign `List reference` to `l0` + store `List reference` to `l0` <2> declare `List l1`; - access `l0` -> `List reference`; - assign `List reference` to `l1` + load from `l0` -> `List reference`; + store `List reference` to `l1` (note `l0` and `l1` refer to the same instance known as a shallow-copy) -<3> access `l0` -> `List reference`; +<3> load from `l0` -> `List reference`; implicit cast `int 1` to `def` -> `def` call `add` on `List reference` with arguments (`def`) -<4> access `l1` -> `List reference`; +<4> load from `l1` -> `List reference`; implicit cast `int 2` to `def` -> `def` call `add` on `List reference` with arguments (`def`) <5> declare `int i`; - access `l0` -> `List reference`; + load from `l0` -> `List reference`; call `get` on `List reference` with arguments (`int 0`) -> `def @0`; implicit cast `def @0` to `int 1` -> `int 1`; - access `l1` -> `List reference`; + load from `l1` -> `List reference`; call `get` on `List reference` with arguments (`int 1`) -> `def @1`; implicit cast `def @1` to `int 2` -> `int 2`; add `int 1` and `int 2` -> `int 3`; - assign `int 3` to `i`; + store `int 3` to `i`; + * Using the static members of a reference type. + @@ -253,11 +256,11 @@ relationships. ---- + <1> declare `int i`; - access `MAX_VALUE` on `Integer` -> `int 2147483647`; - assign `int 2147483647` to `i` + load from `MAX_VALUE` on `Integer` -> `int 2147483647`; + store `int 2147483647` to `i` <2> declare `long l`; call `parseLong` on `Long` with arguments (`long 123`) -> `long 123`; - assign `long 123` to `l` + store `long 123` to `l` [[dynamic-types]] ==== Dynamic Types @@ -268,11 +271,12 @@ the behavior of whatever value it represents at run-time and will always represent the child-most descendant type value of any type value when evaluated during operations. -Declare a `def` type <>, and assign it -any type of value for evaluation during later operations. The default value -for a newly-declared `def` type variable is `null`. A `def` type variable or -method/function parameter can change the type it represents during the -compilation and evaluation of a script. +Declare a `def` type <> or access a `def` type +member field (from a reference type instance), and assign it any type of value +for evaluation during later operations. The default value for a newly-declared +`def` type variable is `null`. A `def` type variable or method/function +parameter can change the type it represents during the compilation and +evaluation of a script. Using the `def` type can have a slight impact on performance. Use only primitive types and reference types directly when performance is critical. @@ -295,13 +299,13 @@ types and reference types directly when performance is critical. + <1> declare `def dp`; implicit cast `int 1` to `def` -> `def`; - assign `def` to `dp` + store `def` to `dp` <2> declare `def dr`; allocate `ArrayList` instance -> `ArrayList reference`; implicit cast `ArrayList reference` to `def` -> `def`; - assign `def` to `dr` -<3> access `dp` -> `def`; - assign `def` to `dr`; + store `def` to `dr` +<3> load from `dp` -> `def`; + store `def` to `dr`; (note the switch in the type `dr` represents from `ArrayList` to `int`) + * A `def` type value representing the child-most descendant of a value. @@ -317,12 +321,12 @@ types and reference types directly when performance is critical. allocate `ArrayList` instance -> `ArrayList reference`; implicit cast `ArrayList reference` to `Object reference` -> `Object reference`; - assign `Object reference` to `l` + store `Object reference` to `l` <2> declare `def d`; - access `l` -> `Object reference`; + load from `l` -> `Object reference`; implicit cast `Object reference` to `def` -> `def`; - assign `def` to `d`; -<3> access `d` -> `def`; + store `def` to `d`; +<3> load from `d` -> `def`; implicit cast `def` to `ArrayList reference` -> `ArrayList reference`; call `ensureCapacity` on `ArrayList reference` with arguments (`int 10`); (note `def` was implicit cast to `ArrayList reference` @@ -333,9 +337,9 @@ types and reference types directly when performance is critical. ==== String Type The `String` type is a specialized reference type that does not require -explicit allocation. Use a <> to directly evaluate a -`String` type value. While not required, the -<> can allocate `String` type +explicit allocation. Use a <> to directly +evaluate a `String` type value. While not required, the +<> can allocate `String` type instances. *Examples* @@ -351,15 +355,15 @@ instances. ---- + <1> declare `String r`; - assign `String "some text"` to `r` + store `String "some text"` to `r` <2> declare `String s`; - assign `String 'some text'` to `s` + store `String 'some text'` to `s` <3> declare `String t`; allocate `String` instance with arguments (`String "some text"`) -> `String "some text"`; - assign `String "some text"` to `t` + store `String "some text"` to `t` <4> declare `String u`; - assign default `null` to `u` + store default `null` to `u` [[void-type]] ==== void Type @@ -382,35 +386,38 @@ void addToList(List l, def d) { ==== Array Type An array type is a specialized reference type where an array type instance -represents a series of values allocated to the heap. All values in an array -type instance are of the same type. Each value is assigned an index from within -the range `[0, length)` where length is the total number of values allocated for -the array type instance. +contains a series of values allocated to the heap. Each value in an array type +instance is defined as an element. All elements in an array type instance are of +the same type (element type) specified as part of declaration. Each element is +assigned an index within the range `[0, length)` where length is the total +number of elements allocated for an array type instance. -Use the <> or the -<> to allocate an array -type instance. Declare an array type <>, and -assign it an array type value for evaluation during later operations. The -default value for a newly-declared array type variable is `null`. An array type -value is shallow-copied during an assignment or as an argument for a -method/function call. Assign `null` to an array type variable to indicate the -array type value refers to no array type instance. The JVM will garbage collect -an array type instance when it is no longer referred to by any array type -values. Pass `null` as an argument to a method/function call to indicate the -argument refers to no array type instance. +Use the <> or the +<> to allocate an +array type instance. Declare an array type <> or +access an array type member field (from a reference type instance), and assign +it an array type value for evaluation during later operations. The default value +for a newly-declared array type variable is `null`. An array type value is +shallow-copied during an assignment or as an argument for a method/function +call. Assign `null` to an array type variable to indicate the array type value +refers to no array type instance. The JVM will garbage collect an array type +instance when it is no longer referred to by any array type values. Pass `null` +as an argument to a method/function call to indicate the argument refers to no +array type instance. -Use the <> to retrieve the length of an -array type value as an int type value. Use the -<> to load from and store to individual -values within an array type value. +Use the <> to retrieve the length +of an array type value as an `int` type value. Use the +<> to load from and store to +an individual element within an array type instance. When an array type instance is allocated with multiple dimensions using the -range `[2, d]` where `d >= 2`, each dimension in the range `[1, d-1]` is also -an array type. The array type of each dimension, `n`, is an array type with the -number of dimensions equal to `d-n`. For example, consider `int[][][]` with 3 -dimensions. The 3rd dimension, `d-3`, is the primitive type `int`. The 2nd -dimension, `d-2`, is the array type `int[]`. And the 1st dimension, `d-1` is -the array type `int[][]`. +range `[2, d]` where `d >= 2`, each element within each dimension in the range +`[1, d-1]` is also an array type. The element type of each dimension, `n`, is an +array type with the number of dimensions equal to `d-n`. For example, consider +`int[][][]` with 3 dimensions. Each element in the 3rd dimension, `d-3`, is the +primitive type `int`. Each element in the 2nd dimension, `d-2`, is the array +type `int[]`. And each element in the 1st dimension, `d-1` is the array type +`int[][]`. *Examples* @@ -426,26 +433,26 @@ the array type `int[][]`. ---- + <1> declare `int[] x`; - assign default `null` to `x` + store default `null` to `x` <2> declare `float[] y`; allocate `1-d float array` instance with `length [10]` -> `1-d float array reference`; - assign `1-d float array reference` to `y` + store `1-d float array reference` to `y` <3> declare `def z`; allocate `1-d float array` instance with `length [5]` -> `1-d float array reference`; implicit cast `1-d float array reference` to `def` -> `def`; - assign `def` to `z` -<4> access `y` -> `1-d float array reference`; - assign `float 1.0` to `index [9]` of `1-d float array reference` -<5> access `y` -> `1-d float array reference @0`; - access `index [9]` of `1-d float array reference @0` -> `float 1.0`; - access `z` -> `def`; + store `def` to `z` +<4> load from `y` -> `1-d float array reference`; + store `float 1.0` to `index [9]` of `1-d float array reference` +<5> load from `y` -> `1-d float array reference @0`; + load from `index [9]` of `1-d float array reference @0` -> `float 1.0`; + load from `z` -> `def`; implicit cast `def` to `1-d float array reference @1` -> `1-d float array reference @1`; - assign `float 1.0` to `index [0]` of `1-d float array reference @1` + store `float 1.0` to `index [0]` of `1-d float array reference @1` + -* Use of a multi-dimensional array. +* General use of a multi-dimensional array. + [source,Painless] ---- @@ -457,10 +464,10 @@ the array type `int[][]`. <1> declare `int[][][] ia`; allocate `3-d int array` instance with length `[2, 3, 4]` -> `3-d int array reference`; - assign `3-d int array reference` to `ia3` -<2> access `ia3` -> `3-d int array reference`; - assign `int 99` to `index [1, 2, 3]` of `3-d int array reference` + store `3-d int array reference` to `ia3` +<2> load from `ia3` -> `3-d int array reference`; + store `int 99` to `index [1, 2, 3]` of `3-d int array reference` <3> declare `int i`; - access `ia3` -> `3-d int array reference`; - access `index [1, 2, 3]` of `3-d int array reference` -> `int 99`; - assign `int 99` to `i` + load from `ia3` -> `3-d int array reference`; + load from `index [1, 2, 3]` of `3-d int array reference` -> `int 99`; + store `int 99` to `i` diff --git a/docs/painless/painless-variables.asciidoc b/docs/painless/painless-variables.asciidoc index 8b8782b1511..8f83b9e2b57 100644 --- a/docs/painless/painless-variables.asciidoc +++ b/docs/painless/painless-variables.asciidoc @@ -4,7 +4,7 @@ A variable loads and stores a value for evaluation during <>. -[[declaration]] +[[variable-declaration]] ==== Declaration Declare a variable before use with the format of <> @@ -12,16 +12,17 @@ followed by <>. Declare an <> variable using an opening `[` token and a closing `]` token for each dimension directly after the identifier. Specify a comma-separated list of identifiers following the type to declare multiple -variables in a single statement. Use an <> -combined with a declaration to immediately assign a value to a variable. -A variable not immediately assigned a value will have a default value assigned -implicitly based on the type. +variables in a single statement. Use an +<> combined with a declaration to +immediately assign a value to a variable. A variable not immediately assigned a +value will have a default value assigned implicitly based on the type. *Errors* * If a variable is used prior to or without declaration. *Grammar* + [source,ANTLR4] ---- declaration : type ID assignment? (',' ID assignment?)*; @@ -45,37 +46,39 @@ assignment: '=' expression; ---- + <1> declare `int x`; - assign default `null` to `x` + store default `null` to `x` <2> declare `List y`; - assign default `null` to `y` + store default `null` to `y` <3> declare `int x`; - assign default `int 0` to `x`; + store default `int 0` to `x`; declare `int y`; - assign `int 5` to `y`; + store `int 5` to `y`; declare `int z`; - assign default `int 0` to `z`; + store default `int 0` to `z`; <4> declare `def d`; - assign default `null` to `d` + store default `null` to `d` <5> declare `int i`; - assign `int 10` to `i` + store `int 10` to `i` <6> declare `float[] f`; - assign default `null` to `f` + store default `null` to `f` <7> declare `Map[][] m`; - assign default `null` to `m` + store default `null` to `m` -[[assignment]] +[[variable-assignment]] ==== Assignment -Use the *assignment operator* to store a value in a variable. Any operation -that produces a value can be assigned to any variable as long as the -<> are the same or the resultant type can be -<> to the variable type. +Use the `assignment operator '='` to store a value in a variable for use in +subsequent operations. Any operation that produces a value can be assigned to +any variable as long as the <> are the same or the +resultant type can be <> to the variable +type. *Errors* * If the type of value is unable to match the type of variable. *Grammar* + [source,ANTLR4] ---- assignment: ID '=' expression @@ -92,8 +95,8 @@ assignment: ID '=' expression ---- + <1> declare `int i`; - assign default `int 0` to `i` -<2> assign `int 10` to `i` + store default `int 0` to `i` +<2> store `int 10` to `i` + * Declaration combined with immediate assignment. + @@ -104,11 +107,11 @@ assignment: ID '=' expression ---- + <1> declare `int i`; - assign `int 10` to `i` + store `int 10` to `i` <2> declare `double j`; - assign `double 2.0` to `j` + store `double 2.0` to `j` + -* Assignment of one variable to another using primitive types. +* Assignment of one variable to another using primitive type values. + [source,Painless] ---- @@ -117,12 +120,13 @@ assignment: ID '=' expression ---- + <1> declare `int i`; - assign `int 10` to `i` + store `int 10` to `i` <2> declare `int j`; - access `i` -> `int 10`; - assign `int 10` to `j` + load from `i` -> `int 10`; + store `int 10` to `j` + -* Assignment with reference types using the *new instance operator*. +* Assignment with reference types using the + <>. + [source,Painless] ---- @@ -132,13 +136,13 @@ assignment: ID '=' expression + <1> declare `ArrayList l`; allocate `ArrayList` instance -> `ArrayList reference`; - assign `ArrayList reference` to `l` + store `ArrayList reference` to `l` <2> declare `Map m`; allocate `HashMap` instance -> `HashMap reference`; implicit cast `HashMap reference` to `Map reference` -> `Map reference`; - assign `Map reference` to `m` + store `Map reference` to `m` + -* Assignment of one variable to another using reference types. +* Assignment of one variable to another using reference type values. + [source,Painless] ---- @@ -151,18 +155,19 @@ assignment: ID '=' expression <1> declare `List l`; allocate `ArrayList` instance -> `ArrayList reference`; implicit cast `ArrayList reference` to `List reference` -> `List reference`; - assign `List reference` to `l` + store `List reference` to `l` <2> declare `List k`; - access `l` -> `List reference`; - assign `List reference` to `k`; + load from `l` -> `List reference`; + store `List reference` to `k`; (note `l` and `k` refer to the same instance known as a shallow-copy) <3> declare `List m`; - assign default `null` to `m` -<4> access `k` -> `List reference`; - assign `List reference` to `m`; + store default `null` to `m` +<4> load from `k` -> `List reference`; + store `List reference` to `m`; (note `l`, `k`, and `m` refer to the same instance) + -* Assignment with an array type variable using the *new array operator*. +* Assignment with array type variables using the + <>. + [source,Painless] ---- @@ -176,24 +181,24 @@ assignment: ID '=' expression ---- + <1> declare `int[] ia1`; - assign default `null` to `ia1` + store default `null` to `ia1` <2> allocate `1-d int array` instance with `length [2]` -> `1-d int array reference`; - assign `1-d int array reference` to `ia1` -<3> access `ia1` -> `1-d int array reference`; - assign `int 1` to `index [0]` of `1-d int array reference` + store `1-d int array reference` to `ia1` +<3> load from `ia1` -> `1-d int array reference`; + store `int 1` to `index [0]` of `1-d int array reference` <4> declare `int[] ib1`; - access `ia1` -> `1-d int array reference`; - assign `1-d int array reference` to `ib1`; + load from `ia1` -> `1-d int array reference`; + store `1-d int array reference` to `ib1`; (note `ia1` and `ib1` refer to the same instance known as a shallow copy) <5> declare `int[][] ic2`; allocate `2-d int array` instance with `length [2, 5]` -> `2-d int array reference`; - assign `2-d int array reference` to `ic2` -<6> access `ic2` -> `2-d int array reference`; - assign `int 2` to `index [1, 3]` of `2-d int array reference` -<7> access `ia1` -> `1-d int array reference`; - access `ic2` -> `2-d int array reference`; - assign `1-d int array reference` to + store `2-d int array reference` to `ic2` +<6> load from `ic2` -> `2-d int array reference`; + store `int 2` to `index [1, 3]` of `2-d int array reference` +<7> load from `ia1` -> `1-d int array reference`; + load from `ic2` -> `2-d int array reference`; + store `1-d int array reference` to `index [0]` of `2-d int array reference`; (note `ia1`, `ib1`, and `index [0]` of `ia2` refer to the same instance) From 253b9986810e3879fa00c6a370eb848b8bb18a60 Mon Sep 17 00:00:00 2001 From: Hendrik Muhs Date: Fri, 8 Jun 2018 07:51:45 +0200 Subject: [PATCH 36/62] flush job to ensure all results have been written (#31187) flush ml job to ensure all results have been written fixes #31173 --- .../xpack/ml/integration/ForecastIT.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/x-pack/qa/ml-native-tests/src/test/java/org/elasticsearch/xpack/ml/integration/ForecastIT.java b/x-pack/qa/ml-native-tests/src/test/java/org/elasticsearch/xpack/ml/integration/ForecastIT.java index 18b10712803..2f3ea6c83a5 100644 --- a/x-pack/qa/ml-native-tests/src/test/java/org/elasticsearch/xpack/ml/integration/ForecastIT.java +++ b/x-pack/qa/ml-native-tests/src/test/java/org/elasticsearch/xpack/ml/integration/ForecastIT.java @@ -239,6 +239,9 @@ public class ForecastIT extends MlNativeAutodetectIntegTestCase { throw e; } + // flushing the job forces an index refresh, see https://github.com/elastic/elasticsearch/issues/31173 + flushJob(job.getId(), false); + List forecastStats = getForecastStats(); assertThat(forecastStats.size(), equalTo(1)); ForecastRequestStats forecastRequestStats = forecastStats.get(0); @@ -261,6 +264,16 @@ public class ForecastIT extends MlNativeAutodetectIntegTestCase { } closeJob(job.getId()); + + forecastStats = getForecastStats(); + assertThat(forecastStats.size(), equalTo(2)); + for (ForecastRequestStats stats : forecastStats) { + forecasts = getForecasts(job.getId(), stats); + + assertThat(forecastRequestStats.getRecordCount(), equalTo(8000L)); + assertThat(forecasts.size(), equalTo(8000)); + } + } private void createDataWithLotsOfClientIps(TimeValue bucketSpan, Job.Builder job) throws IOException { From 435a825a53dbabc93add9d400c1a8653e16b8aad Mon Sep 17 00:00:00 2001 From: Simon Willnauer Date: Fri, 8 Jun 2018 08:33:01 +0200 Subject: [PATCH 37/62] Default max concurrent search req. numNodes * 5 (#31171) We moved to 1 shard by default which caused some issues in how many concurrent shard requests we allow by default. For instance searching a 5 shard index on a single node will now be executed serially per shard while we want these cases to have a good concurrency out of the box. This change moves to `numNodes * 5` which corresponds to the default we used to have in the previous version. Relates to #30783 Closes #30994 --- .../org/elasticsearch/action/search/TransportSearchAction.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/elasticsearch/action/search/TransportSearchAction.java b/server/src/main/java/org/elasticsearch/action/search/TransportSearchAction.java index 46207b94c3a..ac9248ef98d 100644 --- a/server/src/main/java/org/elasticsearch/action/search/TransportSearchAction.java +++ b/server/src/main/java/org/elasticsearch/action/search/TransportSearchAction.java @@ -346,7 +346,8 @@ public class TransportSearchAction extends HandledTransportAction Date: Fri, 8 Jun 2018 08:58:46 +0200 Subject: [PATCH 38/62] Move number of language analyzers to analysis-common module (#31143) The following analyzers were moved from server module to analysis-common module: `snowball`, `arabic`, `armenian`, `basque`, `bengali`, `brazilian`, `bulgarian`, `catalan`, `chinese`, `cjk`, `czech`, `danish`, `dutch`, `english`, `finnish`, `french`, `galician` and `german`. Relates to #23658 --- .../common}/ArabicAnalyzerProvider.java | 6 +- .../common}/ArmenianAnalyzerProvider.java | 6 +- .../common}/BasqueAnalyzerProvider.java | 6 +- .../common}/BengaliAnalyzerProvider.java | 6 +- .../common}/BrazilianAnalyzerProvider.java | 6 +- .../common}/BulgarianAnalyzerProvider.java | 6 +- .../common}/CatalanAnalyzerProvider.java | 6 +- .../common}/ChineseAnalyzerProvider.java | 9 +- .../analysis/common}/CjkAnalyzerProvider.java | 6 +- .../analysis/common/CommonAnalysisPlugin.java | 140 ++++- .../common}/CzechAnalyzerProvider.java | 6 +- .../common}/DanishAnalyzerProvider.java | 6 +- .../common}/DutchAnalyzerProvider.java | 6 +- .../common}/EnglishAnalyzerProvider.java | 6 +- .../common}/FinnishAnalyzerProvider.java | 6 +- .../common}/FrenchAnalyzerProvider.java | 6 +- .../common}/GalicianAnalyzerProvider.java | 6 +- .../common}/GermanAnalyzerProvider.java | 6 +- .../analysis/common}/SnowballAnalyzer.java | 6 +- .../common}/SnowballAnalyzerProvider.java | 6 +- .../common}/SnowballAnalyzerTests.java | 10 +- .../test/analysis-common/20_analyzers.yml | 523 ++++++++++++++++++ .../test/search.query/40_query_string.yml | 58 ++ .../TokenCountFieldMapperIntegrationIT.java | 15 +- .../test/update_by_query/30_new_fields.yml | 7 +- .../test/count/20_query_string.yml | 8 - .../test/explain/30_query_string.yml | 10 - .../20_query_string.yml | 8 - .../test/search/60_query_string.yml | 8 - .../indices/analysis/AnalysisModule.java | 36 -- .../indices/analysis/PreBuiltAnalyzers.java | 179 ------ .../index/analysis/PreBuiltAnalyzerTests.java | 17 +- .../index/mapper/TextFieldMapperTests.java | 40 +- .../query/QueryStringQueryBuilderTests.java | 4 +- .../query/SimpleQueryStringBuilderTests.java | 4 +- .../highlight/HighlighterSearchIT.java | 53 +- .../search/query/SimpleQueryStringIT.java | 59 +- .../validate/SimpleValidateQueryIT.java | 2 +- 38 files changed, 951 insertions(+), 347 deletions(-) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/ArabicAnalyzerProvider.java (85%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/ArmenianAnalyzerProvider.java (85%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/BasqueAnalyzerProvider.java (85%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/BengaliAnalyzerProvider.java (85%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/BrazilianAnalyzerProvider.java (85%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/BulgarianAnalyzerProvider.java (85%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/CatalanAnalyzerProvider.java (85%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/ChineseAnalyzerProvider.java (85%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/CjkAnalyzerProvider.java (84%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/CzechAnalyzerProvider.java (85%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/DanishAnalyzerProvider.java (85%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/DutchAnalyzerProvider.java (85%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/EnglishAnalyzerProvider.java (85%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/FinnishAnalyzerProvider.java (85%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/FrenchAnalyzerProvider.java (85%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/GalicianAnalyzerProvider.java (85%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/GermanAnalyzerProvider.java (85%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/SnowballAnalyzer.java (95%) rename {server/src/main/java/org/elasticsearch/index/analysis => modules/analysis-common/src/main/java/org/elasticsearch/analysis/common}/SnowballAnalyzerProvider.java (92%) rename {server/src/test/java/org/elasticsearch/index/analysis => modules/analysis-common/src/test/java/org/elasticsearch/analysis/common}/SnowballAnalyzerTests.java (97%) create mode 100644 modules/analysis-common/src/test/resources/rest-api-spec/test/search.query/40_query_string.yml diff --git a/server/src/main/java/org/elasticsearch/index/analysis/ArabicAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/ArabicAnalyzerProvider.java similarity index 85% rename from server/src/main/java/org/elasticsearch/index/analysis/ArabicAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/ArabicAnalyzerProvider.java index 8dcc6cc9075..f5e1d882d2b 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/ArabicAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/ArabicAnalyzerProvider.java @@ -17,19 +17,21 @@ * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.ar.ArabicAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; +import org.elasticsearch.index.analysis.Analysis; public class ArabicAnalyzerProvider extends AbstractIndexAnalyzerProvider { private final ArabicAnalyzer arabicAnalyzer; - public ArabicAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { + ArabicAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); arabicAnalyzer = new ArabicAnalyzer( Analysis.parseStopWords(env, settings, ArabicAnalyzer.getDefaultStopSet()), diff --git a/server/src/main/java/org/elasticsearch/index/analysis/ArmenianAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/ArmenianAnalyzerProvider.java similarity index 85% rename from server/src/main/java/org/elasticsearch/index/analysis/ArmenianAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/ArmenianAnalyzerProvider.java index ba9f55f331f..d066aed14ee 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/ArmenianAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/ArmenianAnalyzerProvider.java @@ -17,19 +17,21 @@ * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.hy.ArmenianAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; +import org.elasticsearch.index.analysis.Analysis; public class ArmenianAnalyzerProvider extends AbstractIndexAnalyzerProvider { private final ArmenianAnalyzer analyzer; - public ArmenianAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { + ArmenianAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); analyzer = new ArmenianAnalyzer( Analysis.parseStopWords(env, settings, ArmenianAnalyzer.getDefaultStopSet()), diff --git a/server/src/main/java/org/elasticsearch/index/analysis/BasqueAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/BasqueAnalyzerProvider.java similarity index 85% rename from server/src/main/java/org/elasticsearch/index/analysis/BasqueAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/BasqueAnalyzerProvider.java index 45ff947c61e..8fe32a697f7 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/BasqueAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/BasqueAnalyzerProvider.java @@ -17,19 +17,21 @@ * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.eu.BasqueAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; +import org.elasticsearch.index.analysis.Analysis; public class BasqueAnalyzerProvider extends AbstractIndexAnalyzerProvider { private final BasqueAnalyzer analyzer; - public BasqueAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { + BasqueAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); analyzer = new BasqueAnalyzer( Analysis.parseStopWords(env, settings, BasqueAnalyzer.getDefaultStopSet()), diff --git a/server/src/main/java/org/elasticsearch/index/analysis/BengaliAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/BengaliAnalyzerProvider.java similarity index 85% rename from server/src/main/java/org/elasticsearch/index/analysis/BengaliAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/BengaliAnalyzerProvider.java index 41931833301..5696d0a6045 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/BengaliAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/BengaliAnalyzerProvider.java @@ -17,19 +17,21 @@ * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.bn.BengaliAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; +import org.elasticsearch.index.analysis.Analysis; public class BengaliAnalyzerProvider extends AbstractIndexAnalyzerProvider { private final BengaliAnalyzer analyzer; - public BengaliAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { + BengaliAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); analyzer = new BengaliAnalyzer( Analysis.parseStopWords(env, settings, BengaliAnalyzer.getDefaultStopSet()), diff --git a/server/src/main/java/org/elasticsearch/index/analysis/BrazilianAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/BrazilianAnalyzerProvider.java similarity index 85% rename from server/src/main/java/org/elasticsearch/index/analysis/BrazilianAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/BrazilianAnalyzerProvider.java index 36b13e67bf4..07399a2263d 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/BrazilianAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/BrazilianAnalyzerProvider.java @@ -17,19 +17,21 @@ * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.br.BrazilianAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; +import org.elasticsearch.index.analysis.Analysis; public class BrazilianAnalyzerProvider extends AbstractIndexAnalyzerProvider { private final BrazilianAnalyzer analyzer; - public BrazilianAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { + BrazilianAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); analyzer = new BrazilianAnalyzer( Analysis.parseStopWords(env, settings, BrazilianAnalyzer.getDefaultStopSet()), diff --git a/server/src/main/java/org/elasticsearch/index/analysis/BulgarianAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/BulgarianAnalyzerProvider.java similarity index 85% rename from server/src/main/java/org/elasticsearch/index/analysis/BulgarianAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/BulgarianAnalyzerProvider.java index 26e82cbfb2f..a6b1cb97a1b 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/BulgarianAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/BulgarianAnalyzerProvider.java @@ -17,19 +17,21 @@ * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.bg.BulgarianAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; +import org.elasticsearch.index.analysis.Analysis; public class BulgarianAnalyzerProvider extends AbstractIndexAnalyzerProvider { private final BulgarianAnalyzer analyzer; - public BulgarianAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { + BulgarianAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); analyzer = new BulgarianAnalyzer( Analysis.parseStopWords(env, settings, BulgarianAnalyzer.getDefaultStopSet()), diff --git a/server/src/main/java/org/elasticsearch/index/analysis/CatalanAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CatalanAnalyzerProvider.java similarity index 85% rename from server/src/main/java/org/elasticsearch/index/analysis/CatalanAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CatalanAnalyzerProvider.java index 94babaa52f8..db229ffb492 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/CatalanAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CatalanAnalyzerProvider.java @@ -17,19 +17,21 @@ * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.ca.CatalanAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; +import org.elasticsearch.index.analysis.Analysis; public class CatalanAnalyzerProvider extends AbstractIndexAnalyzerProvider { private final CatalanAnalyzer analyzer; - public CatalanAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { + CatalanAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); analyzer = new CatalanAnalyzer( Analysis.parseStopWords(env, settings, CatalanAnalyzer.getDefaultStopSet()), diff --git a/server/src/main/java/org/elasticsearch/index/analysis/ChineseAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/ChineseAnalyzerProvider.java similarity index 85% rename from server/src/main/java/org/elasticsearch/index/analysis/ChineseAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/ChineseAnalyzerProvider.java index 10e6f0dc42f..01b529188c6 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/ChineseAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/ChineseAnalyzerProvider.java @@ -17,12 +17,13 @@ * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; /** * Only for old indexes @@ -31,16 +32,16 @@ public class ChineseAnalyzerProvider extends AbstractIndexAnalyzerProvider { private final CJKAnalyzer analyzer; - public CjkAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { + CjkAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); CharArraySet stopWords = Analysis.parseStopWords(env, settings, CJKAnalyzer.getDefaultStopSet()); diff --git a/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CommonAnalysisPlugin.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CommonAnalysisPlugin.java index 433bef902c1..24dce7abcf3 100644 --- a/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CommonAnalysisPlugin.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CommonAnalysisPlugin.java @@ -24,11 +24,17 @@ import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.LowerCaseFilter; import org.apache.lucene.analysis.StopFilter; import org.apache.lucene.analysis.TokenStream; +import org.apache.lucene.analysis.ar.ArabicAnalyzer; import org.apache.lucene.analysis.ar.ArabicNormalizationFilter; import org.apache.lucene.analysis.ar.ArabicStemFilter; +import org.apache.lucene.analysis.bg.BulgarianAnalyzer; +import org.apache.lucene.analysis.bn.BengaliAnalyzer; import org.apache.lucene.analysis.bn.BengaliNormalizationFilter; +import org.apache.lucene.analysis.br.BrazilianAnalyzer; import org.apache.lucene.analysis.br.BrazilianStemFilter; +import org.apache.lucene.analysis.ca.CatalanAnalyzer; import org.apache.lucene.analysis.charfilter.HTMLStripCharFilter; +import org.apache.lucene.analysis.cjk.CJKAnalyzer; import org.apache.lucene.analysis.cjk.CJKBigramFilter; import org.apache.lucene.analysis.cjk.CJKWidthFilter; import org.apache.lucene.analysis.ckb.SoraniNormalizationFilter; @@ -40,14 +46,22 @@ import org.apache.lucene.analysis.core.LowerCaseTokenizer; import org.apache.lucene.analysis.core.StopAnalyzer; import org.apache.lucene.analysis.core.UpperCaseFilter; import org.apache.lucene.analysis.core.WhitespaceTokenizer; +import org.apache.lucene.analysis.cz.CzechAnalyzer; import org.apache.lucene.analysis.cz.CzechStemFilter; +import org.apache.lucene.analysis.da.DanishAnalyzer; +import org.apache.lucene.analysis.de.GermanAnalyzer; import org.apache.lucene.analysis.de.GermanNormalizationFilter; import org.apache.lucene.analysis.de.GermanStemFilter; +import org.apache.lucene.analysis.en.EnglishAnalyzer; import org.apache.lucene.analysis.en.KStemFilter; import org.apache.lucene.analysis.en.PorterStemFilter; +import org.apache.lucene.analysis.eu.BasqueAnalyzer; import org.apache.lucene.analysis.fa.PersianNormalizationFilter; +import org.apache.lucene.analysis.fi.FinnishAnalyzer; import org.apache.lucene.analysis.fr.FrenchAnalyzer; +import org.apache.lucene.analysis.gl.GalicianAnalyzer; import org.apache.lucene.analysis.hi.HindiNormalizationFilter; +import org.apache.lucene.analysis.hy.ArmenianAnalyzer; import org.apache.lucene.analysis.in.IndicNormalizationFilter; import org.apache.lucene.analysis.miscellaneous.ASCIIFoldingFilter; import org.apache.lucene.analysis.miscellaneous.DisableGraphAttribute; @@ -64,6 +78,7 @@ import org.apache.lucene.analysis.ngram.EdgeNGramTokenFilter; import org.apache.lucene.analysis.ngram.EdgeNGramTokenizer; import org.apache.lucene.analysis.ngram.NGramTokenFilter; import org.apache.lucene.analysis.ngram.NGramTokenizer; +import org.apache.lucene.analysis.nl.DutchAnalyzer; import org.apache.lucene.analysis.path.PathHierarchyTokenizer; import org.apache.lucene.analysis.pattern.PatternTokenizer; import org.apache.lucene.analysis.payloads.DelimitedPayloadTokenFilter; @@ -73,6 +88,7 @@ import org.apache.lucene.analysis.shingle.ShingleFilter; import org.apache.lucene.analysis.snowball.SnowballFilter; import org.apache.lucene.analysis.standard.ClassicFilter; import org.apache.lucene.analysis.standard.ClassicTokenizer; +import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.analysis.standard.UAX29URLEmailTokenizer; import org.apache.lucene.analysis.th.ThaiTokenizer; import org.apache.lucene.analysis.tr.ApostropheFilter; @@ -113,6 +129,24 @@ public class CommonAnalysisPlugin extends Plugin implements AnalysisPlugin { analyzers.put("fingerprint", FingerprintAnalyzerProvider::new); analyzers.put("standard_html_strip", StandardHtmlStripAnalyzerProvider::new); analyzers.put("pattern", PatternAnalyzerProvider::new); + analyzers.put("snowball", SnowballAnalyzerProvider::new); + analyzers.put("arabic", ArabicAnalyzerProvider::new); + analyzers.put("armenian", ArmenianAnalyzerProvider::new); + analyzers.put("basque", BasqueAnalyzerProvider::new); + analyzers.put("bengali", BengaliAnalyzerProvider::new); + analyzers.put("brazilian", BrazilianAnalyzerProvider::new); + analyzers.put("bulgarian", BulgarianAnalyzerProvider::new); + analyzers.put("catalan", CatalanAnalyzerProvider::new); + analyzers.put("chinese", ChineseAnalyzerProvider::new); + analyzers.put("cjk", CjkAnalyzerProvider::new); + analyzers.put("czech", CzechAnalyzerProvider::new); + analyzers.put("danish", DanishAnalyzerProvider::new); + analyzers.put("dutch", DutchAnalyzerProvider::new); + analyzers.put("english", EnglishAnalyzerProvider::new); + analyzers.put("finnish", FinnishAnalyzerProvider::new); + analyzers.put("french", FrenchAnalyzerProvider::new); + analyzers.put("galician", GalicianAnalyzerProvider::new); + analyzers.put("german", GermanAnalyzerProvider::new); return analyzers; } @@ -213,10 +247,108 @@ public class CommonAnalysisPlugin extends Plugin implements AnalysisPlugin { @Override public List getPreBuiltAnalyzerProviderFactories() { List analyzers = new ArrayList<>(); - analyzers.add(new PreBuiltAnalyzerProviderFactory("standard_html_strip", CachingStrategy.LUCENE, - version -> new StandardHtmlStripAnalyzer(CharArraySet.EMPTY_SET))); - analyzers.add(new PreBuiltAnalyzerProviderFactory("pattern", CachingStrategy.ELASTICSEARCH, version -> - new PatternAnalyzer(Regex.compile("\\W+" /*PatternAnalyzer.NON_WORD_PATTERN*/, null), true, CharArraySet.EMPTY_SET))); + analyzers.add(new PreBuiltAnalyzerProviderFactory("standard_html_strip", CachingStrategy.LUCENE, version -> { + Analyzer a = new StandardHtmlStripAnalyzer(CharArraySet.EMPTY_SET); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("pattern", CachingStrategy.ELASTICSEARCH, version -> { + Analyzer a = new PatternAnalyzer(Regex.compile("\\W+" /*PatternAnalyzer.NON_WORD_PATTERN*/, null), true, + CharArraySet.EMPTY_SET); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("snowball", CachingStrategy.LUCENE, version -> { + Analyzer a = new SnowballAnalyzer("English", StopAnalyzer.ENGLISH_STOP_WORDS_SET); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("arabic", CachingStrategy.LUCENE, version -> { + Analyzer a = new ArabicAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("armenian", CachingStrategy.LUCENE, version -> { + Analyzer a = new ArmenianAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("basque", CachingStrategy.LUCENE, version -> { + Analyzer a = new BasqueAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("bengali", CachingStrategy.LUCENE, version -> { + Analyzer a = new BengaliAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("brazilian", CachingStrategy.LUCENE, version -> { + Analyzer a = new BrazilianAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("bulgarian", CachingStrategy.LUCENE, version -> { + Analyzer a = new BulgarianAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("catalan", CachingStrategy.LUCENE, version -> { + Analyzer a = new CatalanAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("chinese", CachingStrategy.LUCENE, version -> { + // only for old indices, best effort + Analyzer a = new StandardAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("cjk", CachingStrategy.LUCENE, version -> { + Analyzer a = new CJKAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("czech", CachingStrategy.LUCENE, version -> { + Analyzer a = new CzechAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("danish", CachingStrategy.LUCENE, version -> { + Analyzer a = new DanishAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("dutch", CachingStrategy.LUCENE, version -> { + Analyzer a = new DutchAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("english", CachingStrategy.LUCENE, version -> { + Analyzer a = new EnglishAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("finnish", CachingStrategy.LUCENE, version -> { + Analyzer a = new FinnishAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("french", CachingStrategy.LUCENE, version -> { + Analyzer a = new FrenchAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("galician", CachingStrategy.LUCENE, version -> { + Analyzer a = new GalicianAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); + analyzers.add(new PreBuiltAnalyzerProviderFactory("german", CachingStrategy.LUCENE, version -> { + Analyzer a = new GermanAnalyzer(); + a.setVersion(version.luceneVersion); + return a; + })); return analyzers; } diff --git a/server/src/main/java/org/elasticsearch/index/analysis/CzechAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CzechAnalyzerProvider.java similarity index 85% rename from server/src/main/java/org/elasticsearch/index/analysis/CzechAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CzechAnalyzerProvider.java index 12d2349d9ba..c14c2d57a3a 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/CzechAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CzechAnalyzerProvider.java @@ -17,19 +17,21 @@ * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.cz.CzechAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; +import org.elasticsearch.index.analysis.Analysis; public class CzechAnalyzerProvider extends AbstractIndexAnalyzerProvider { private final CzechAnalyzer analyzer; - public CzechAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { + CzechAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); analyzer = new CzechAnalyzer( Analysis.parseStopWords(env, settings, CzechAnalyzer.getDefaultStopSet()), diff --git a/server/src/main/java/org/elasticsearch/index/analysis/DanishAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/DanishAnalyzerProvider.java similarity index 85% rename from server/src/main/java/org/elasticsearch/index/analysis/DanishAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/DanishAnalyzerProvider.java index 01021cbfd8e..e3f024693c2 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/DanishAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/DanishAnalyzerProvider.java @@ -17,19 +17,21 @@ * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.da.DanishAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; +import org.elasticsearch.index.analysis.Analysis; public class DanishAnalyzerProvider extends AbstractIndexAnalyzerProvider { private final DanishAnalyzer analyzer; - public DanishAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { + DanishAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); analyzer = new DanishAnalyzer( Analysis.parseStopWords(env, settings, DanishAnalyzer.getDefaultStopSet()), diff --git a/server/src/main/java/org/elasticsearch/index/analysis/DutchAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/DutchAnalyzerProvider.java similarity index 85% rename from server/src/main/java/org/elasticsearch/index/analysis/DutchAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/DutchAnalyzerProvider.java index e215a89241e..70ab2a5ea62 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/DutchAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/DutchAnalyzerProvider.java @@ -17,19 +17,21 @@ * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.nl.DutchAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; +import org.elasticsearch.index.analysis.Analysis; public class DutchAnalyzerProvider extends AbstractIndexAnalyzerProvider { private final DutchAnalyzer analyzer; - public DutchAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { + DutchAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); analyzer = new DutchAnalyzer( Analysis.parseStopWords(env, settings, DutchAnalyzer.getDefaultStopSet()), diff --git a/server/src/main/java/org/elasticsearch/index/analysis/EnglishAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/EnglishAnalyzerProvider.java similarity index 85% rename from server/src/main/java/org/elasticsearch/index/analysis/EnglishAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/EnglishAnalyzerProvider.java index 300381ef147..b14a83dbf7c 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/EnglishAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/EnglishAnalyzerProvider.java @@ -17,19 +17,21 @@ * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.en.EnglishAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; +import org.elasticsearch.index.analysis.Analysis; public class EnglishAnalyzerProvider extends AbstractIndexAnalyzerProvider { private final EnglishAnalyzer analyzer; - public EnglishAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { + EnglishAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); analyzer = new EnglishAnalyzer( Analysis.parseStopWords(env, settings, EnglishAnalyzer.getDefaultStopSet()), diff --git a/server/src/main/java/org/elasticsearch/index/analysis/FinnishAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/FinnishAnalyzerProvider.java similarity index 85% rename from server/src/main/java/org/elasticsearch/index/analysis/FinnishAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/FinnishAnalyzerProvider.java index 95f0819293a..ec18a71a125 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/FinnishAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/FinnishAnalyzerProvider.java @@ -17,19 +17,21 @@ * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.fi.FinnishAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; +import org.elasticsearch.index.analysis.Analysis; public class FinnishAnalyzerProvider extends AbstractIndexAnalyzerProvider { private final FinnishAnalyzer analyzer; - public FinnishAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { + FinnishAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); analyzer = new FinnishAnalyzer( Analysis.parseStopWords(env, settings, FinnishAnalyzer.getDefaultStopSet()), diff --git a/server/src/main/java/org/elasticsearch/index/analysis/FrenchAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/FrenchAnalyzerProvider.java similarity index 85% rename from server/src/main/java/org/elasticsearch/index/analysis/FrenchAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/FrenchAnalyzerProvider.java index eac40c375ca..caee3618afb 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/FrenchAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/FrenchAnalyzerProvider.java @@ -17,19 +17,21 @@ * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.fr.FrenchAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; +import org.elasticsearch.index.analysis.Analysis; public class FrenchAnalyzerProvider extends AbstractIndexAnalyzerProvider { private final FrenchAnalyzer analyzer; - public FrenchAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { + FrenchAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); analyzer = new FrenchAnalyzer( Analysis.parseStopWords(env, settings, FrenchAnalyzer.getDefaultStopSet()), diff --git a/server/src/main/java/org/elasticsearch/index/analysis/GalicianAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/GalicianAnalyzerProvider.java similarity index 85% rename from server/src/main/java/org/elasticsearch/index/analysis/GalicianAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/GalicianAnalyzerProvider.java index 57550594dc0..23f8da7b8dd 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/GalicianAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/GalicianAnalyzerProvider.java @@ -17,19 +17,21 @@ * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.gl.GalicianAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; +import org.elasticsearch.index.analysis.Analysis; public class GalicianAnalyzerProvider extends AbstractIndexAnalyzerProvider { private final GalicianAnalyzer analyzer; - public GalicianAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { + GalicianAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); analyzer = new GalicianAnalyzer( Analysis.parseStopWords(env, settings, GalicianAnalyzer.getDefaultStopSet()), diff --git a/server/src/main/java/org/elasticsearch/index/analysis/GermanAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/GermanAnalyzerProvider.java similarity index 85% rename from server/src/main/java/org/elasticsearch/index/analysis/GermanAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/GermanAnalyzerProvider.java index 7951f17b79d..cf96f50845f 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/GermanAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/GermanAnalyzerProvider.java @@ -17,19 +17,21 @@ * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.de.GermanAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; +import org.elasticsearch.index.analysis.Analysis; public class GermanAnalyzerProvider extends AbstractIndexAnalyzerProvider { private final GermanAnalyzer analyzer; - public GermanAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { + GermanAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); analyzer = new GermanAnalyzer( Analysis.parseStopWords(env, settings, GermanAnalyzer.getDefaultStopSet()), diff --git a/server/src/main/java/org/elasticsearch/index/analysis/SnowballAnalyzer.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/SnowballAnalyzer.java similarity index 95% rename from server/src/main/java/org/elasticsearch/index/analysis/SnowballAnalyzer.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/SnowballAnalyzer.java index 1a096b8fa4b..5dbe902fe15 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/SnowballAnalyzer.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/SnowballAnalyzer.java @@ -1,4 +1,4 @@ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; /* * Licensed to Elasticsearch under one or more contributor @@ -48,12 +48,12 @@ public final class SnowballAnalyzer extends Analyzer { private CharArraySet stopSet; /** Builds the named analyzer with no stop words. */ - public SnowballAnalyzer(String name) { + SnowballAnalyzer(String name) { this.name = name; } /** Builds the named analyzer with the given stop words. */ - public SnowballAnalyzer(String name, CharArraySet stopWords) { + SnowballAnalyzer(String name, CharArraySet stopWords) { this(name); stopSet = CharArraySet.unmodifiableSet(CharArraySet.copy(stopWords)); } diff --git a/server/src/main/java/org/elasticsearch/index/analysis/SnowballAnalyzerProvider.java b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/SnowballAnalyzerProvider.java similarity index 92% rename from server/src/main/java/org/elasticsearch/index/analysis/SnowballAnalyzerProvider.java rename to modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/SnowballAnalyzerProvider.java index 84f19316331..0f213df9ad7 100644 --- a/server/src/main/java/org/elasticsearch/index/analysis/SnowballAnalyzerProvider.java +++ b/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/SnowballAnalyzerProvider.java @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.elasticsearch.index.analysis; +package org.elasticsearch.analysis.common; import org.apache.lucene.analysis.CharArraySet; import org.apache.lucene.analysis.core.StopAnalyzer; @@ -26,6 +26,8 @@ import org.apache.lucene.analysis.nl.DutchAnalyzer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; +import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; +import org.elasticsearch.index.analysis.Analysis; import java.util.HashMap; import java.util.Map; @@ -60,7 +62,7 @@ public class SnowballAnalyzerProvider extends AbstractIndexAnalyzerProvider 0); Query query = new QueryStringQueryBuilder("the quick fox") .field(STRING_FIELD_NAME) - .analyzer("english") + .analyzer("stop") .toQuery(createShardContext()); BooleanQuery expected = new BooleanQuery.Builder() .add(new TermQuery(new Term(STRING_FIELD_NAME, "quick")), Occur.SHOULD) @@ -1313,7 +1313,7 @@ public class QueryStringQueryBuilderTests extends AbstractQueryTestCase 0); Query query = new QueryStringQueryBuilder("the* quick fox") .field(STRING_FIELD_NAME) - .analyzer("english") + .analyzer("stop") .toQuery(createShardContext()); BooleanQuery expected = new BooleanQuery.Builder() .add(new PrefixQuery(new Term(STRING_FIELD_NAME, "the")), Occur.SHOULD) diff --git a/server/src/test/java/org/elasticsearch/index/query/SimpleQueryStringBuilderTests.java b/server/src/test/java/org/elasticsearch/index/query/SimpleQueryStringBuilderTests.java index 7ff2b7ec122..0cd5e7fe330 100644 --- a/server/src/test/java/org/elasticsearch/index/query/SimpleQueryStringBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/index/query/SimpleQueryStringBuilderTests.java @@ -629,7 +629,7 @@ public class SimpleQueryStringBuilderTests extends AbstractQueryTestCase 0); Query query = new SimpleQueryStringBuilder("the quick fox") .field(STRING_FIELD_NAME) - .analyzer("english") + .analyzer("stop") .toQuery(createShardContext()); BooleanQuery expected = new BooleanQuery.Builder() .add(new TermQuery(new Term(STRING_FIELD_NAME, "quick")), BooleanClause.Occur.SHOULD) @@ -642,7 +642,7 @@ public class SimpleQueryStringBuilderTests extends AbstractQueryTestCase 0); Query query = new SimpleQueryStringBuilder("the* quick fox") .field(STRING_FIELD_NAME) - .analyzer("english") + .analyzer("stop") .toQuery(createShardContext()); BooleanQuery expected = new BooleanQuery.Builder() .add(new PrefixQuery(new Term(STRING_FIELD_NAME, "the")), BooleanClause.Occur.SHOULD) diff --git a/server/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java b/server/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java index 717bab12ea5..35c5a19cc2e 100644 --- a/server/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java +++ b/server/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java @@ -22,6 +22,9 @@ import com.carrotsearch.randomizedtesting.generators.RandomPicks; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.MockAnalyzer; import org.apache.lucene.analysis.MockTokenizer; +import org.apache.lucene.analysis.TokenFilter; +import org.apache.lucene.analysis.TokenStream; +import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; import org.apache.lucene.search.join.ScoreMode; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchRequestBuilder; @@ -36,6 +39,7 @@ import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider; import org.elasticsearch.index.analysis.AnalyzerProvider; +import org.elasticsearch.index.analysis.PreConfiguredTokenFilter; import org.elasticsearch.index.query.AbstractQueryBuilder; import org.elasticsearch.index.query.IdsQueryBuilder; import org.elasticsearch.index.query.MatchQueryBuilder; @@ -66,9 +70,11 @@ import java.io.IOException; import java.util.Arrays; import java.util.Collection; import java.util.HashMap; +import java.util.List; import java.util.Locale; import java.util.Map; +import static java.util.Collections.singletonList; import static java.util.Collections.singletonMap; import static org.elasticsearch.client.Requests.searchRequest; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; @@ -113,7 +119,7 @@ public class HighlighterSearchIT extends ESIntegTestCase { @Override protected Collection> nodePlugins() { - return Arrays.asList(InternalSettingsPlugin.class, MockKeywordPlugin.class, MockWhitespacePlugin.class); + return Arrays.asList(InternalSettingsPlugin.class, MockKeywordPlugin.class, MockAnalysisPlugin.class); } public void testHighlightingWithStoredKeyword() throws IOException { @@ -765,14 +771,19 @@ public class HighlighterSearchIT extends ESIntegTestCase { } private void checkMatchedFieldsCase(boolean requireFieldMatch) throws Exception { + Settings.Builder settings = Settings.builder(); + settings.put(indexSettings()); + settings.put("index.analysis.analyzer.mock_english.tokenizer", "standard"); + settings.put("index.analysis.analyzer.mock_english.filter", "mock_snowball"); assertAcked(prepareCreate("test") + .setSettings(settings) .addMapping("type1", XContentFactory.jsonBuilder().startObject().startObject("type1") .startObject("properties") .startObject("foo") .field("type", "text") .field("term_vector", "with_positions_offsets") .field("store", true) - .field("analyzer", "english") + .field("analyzer", "mock_english") .startObject("fields") .startObject("plain") .field("type", "text") @@ -785,7 +796,7 @@ public class HighlighterSearchIT extends ESIntegTestCase { .field("type", "text") .field("term_vector", "with_positions_offsets") .field("store", true) - .field("analyzer", "english") + .field("analyzer", "mock_english") .startObject("fields") .startObject("plain") .field("type", "text") @@ -2819,7 +2830,7 @@ public class HighlighterSearchIT extends ESIntegTestCase { assertAcked(prepareCreate("test").setSettings(builder.build()) .addMapping("type1", "field1", "type=text,term_vector=with_positions_offsets,search_analyzer=synonym," + - "analyzer=english,index_options=offsets")); + "analyzer=standard,index_options=offsets")); ensureGreen(); client().prepareIndex("test", "type1", "0").setSource( @@ -2983,7 +2994,39 @@ public class HighlighterSearchIT extends ESIntegTestCase { } } - public static class MockWhitespacePlugin extends Plugin implements AnalysisPlugin { + public static class MockAnalysisPlugin extends Plugin implements AnalysisPlugin { + + public final class MockSnowBall extends TokenFilter { + private final CharTermAttribute termAtt = addAttribute(CharTermAttribute.class); + + /** Sole constructor. */ + MockSnowBall(TokenStream in) { + super(in); + } + + @Override + public boolean incrementToken() throws IOException { + if (input.incrementToken()) { + final char[] buffer = termAtt.buffer(); + final int length = termAtt.length(); + if (buffer[length - 1] == 's') { + termAtt.setLength(length - 1); + } + if (length > 3) { + if (buffer[length - 1] == 'g' && buffer[length - 2] == 'n' && buffer[length - 3] == 'i') { + termAtt.setLength(length- 3); + } + } + return true; + } else + return false; + } + } + + @Override + public List getPreConfiguredTokenFilters() { + return singletonList(PreConfiguredTokenFilter.singleton("mock_snowball", false, MockSnowBall::new)); + } @Override public Map>> getAnalyzers() { diff --git a/server/src/test/java/org/elasticsearch/search/query/SimpleQueryStringIT.java b/server/src/test/java/org/elasticsearch/search/query/SimpleQueryStringIT.java index 7aef2d208ec..147caa4c1c1 100644 --- a/server/src/test/java/org/elasticsearch/search/query/SimpleQueryStringIT.java +++ b/server/src/test/java/org/elasticsearch/search/query/SimpleQueryStringIT.java @@ -19,6 +19,12 @@ package org.elasticsearch.search.query; +import org.apache.lucene.analysis.CharacterUtils; +import org.apache.lucene.analysis.MockLowerCaseFilter; +import org.apache.lucene.analysis.MockTokenizer; +import org.apache.lucene.analysis.TokenFilter; +import org.apache.lucene.analysis.TokenStream; +import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; import org.elasticsearch.ExceptionsHelper; import org.elasticsearch.action.admin.indices.create.CreateIndexRequestBuilder; import org.elasticsearch.action.index.IndexRequestBuilder; @@ -28,12 +34,19 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentType; +import org.elasticsearch.index.analysis.CharFilterFactory; +import org.elasticsearch.index.analysis.MultiTermAwareComponent; +import org.elasticsearch.index.analysis.PreConfiguredCharFilter; +import org.elasticsearch.index.analysis.PreConfiguredTokenFilter; +import org.elasticsearch.index.analysis.TokenizerFactory; import org.elasticsearch.index.mapper.MapperService; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.Operator; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.SimpleQueryStringBuilder; import org.elasticsearch.index.query.SimpleQueryStringFlag; +import org.elasticsearch.indices.analysis.AnalysisModule; +import org.elasticsearch.plugins.AnalysisPlugin; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHits; @@ -42,14 +55,19 @@ import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.InternalSettingsPlugin; import java.io.IOException; +import java.io.Reader; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.concurrent.ExecutionException; +import java.util.function.Function; +import static java.util.Collections.singletonList; +import static java.util.Collections.singletonMap; import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder; import static org.elasticsearch.index.query.QueryBuilders.boolQuery; import static org.elasticsearch.index.query.QueryBuilders.simpleQueryStringQuery; @@ -72,11 +90,15 @@ import static org.hamcrest.Matchers.equalTo; public class SimpleQueryStringIT extends ESIntegTestCase { @Override protected Collection> nodePlugins() { - return Arrays.asList(InternalSettingsPlugin.class); // uses index.version.created + return Arrays.asList(MockAnalysisPlugin.class, InternalSettingsPlugin.class); // uses index.version.created } public void testSimpleQueryString() throws ExecutionException, InterruptedException { - createIndex("test"); + Settings.Builder settings = Settings.builder(); + settings.put(indexSettings()); + settings.put("index.analysis.analyzer.mock_snowball.tokenizer", "standard"); + settings.put("index.analysis.analyzer.mock_snowball.filter", "mock_snowball"); + createIndex("test", settings.build()); indexRandom(true, false, client().prepareIndex("test", "type1", "1").setSource("body", "foo"), client().prepareIndex("test", "type1", "2").setSource("body", "bar"), @@ -108,7 +130,7 @@ public class SimpleQueryStringIT extends ESIntegTestCase { assertSearchHits(searchResponse, "4", "5"); searchResponse = client().prepareSearch().setQuery( - simpleQueryStringQuery("eggplants").analyzer("snowball")).get(); + simpleQueryStringQuery("eggplants").analyzer("mock_snowball")).get(); assertHitCount(searchResponse, 1L); assertFirstHit(searchResponse, hasId("4")); @@ -312,7 +334,7 @@ public class SimpleQueryStringIT extends ESIntegTestCase { .startObject("properties") .startObject("location") .field("type", "text") - .field("analyzer", "german") + .field("analyzer", "standard") .endObject() .endObject() .endObject() @@ -583,4 +605,33 @@ public class SimpleQueryStringIT extends ESIntegTestCase { } assertThat(hitIds, containsInAnyOrder(ids)); } + + public static class MockAnalysisPlugin extends Plugin implements AnalysisPlugin { + + public final class MockSnowBall extends TokenFilter { + private final CharTermAttribute termAtt = addAttribute(CharTermAttribute.class); + + /** Sole constructor. */ + MockSnowBall(TokenStream in) { + super(in); + } + + @Override + public boolean incrementToken() throws IOException { + if (input.incrementToken()) { + char[] buffer = termAtt.buffer(); + if (buffer[termAtt.length() - 1] == 's') { + termAtt.setLength(termAtt.length() - 1); + } + return true; + } else + return false; + } + } + + @Override + public List getPreConfiguredTokenFilters() { + return singletonList(PreConfiguredTokenFilter.singleton("mock_snowball", false, MockSnowBall::new)); + } + } } diff --git a/server/src/test/java/org/elasticsearch/validate/SimpleValidateQueryIT.java b/server/src/test/java/org/elasticsearch/validate/SimpleValidateQueryIT.java index 34501ba8a1b..8b3aff90e8d 100644 --- a/server/src/test/java/org/elasticsearch/validate/SimpleValidateQueryIT.java +++ b/server/src/test/java/org/elasticsearch/validate/SimpleValidateQueryIT.java @@ -87,7 +87,7 @@ public class SimpleValidateQueryIT extends ESIntegTestCase { .setSource(XContentFactory.jsonBuilder().startObject().startObject("type1").startObject("properties") .startObject("foo").field("type", "text").endObject() .startObject("bar").field("type", "integer").endObject() - .startObject("baz").field("type", "text").field("analyzer", "snowball").endObject() + .startObject("baz").field("type", "text").field("analyzer", "standard").endObject() .startObject("pin").startObject("properties").startObject("location").field("type", "geo_point").endObject().endObject().endObject() .endObject().endObject().endObject()) .execute().actionGet(); From 8d4f09f7f20dc044fec89b80deb8bdac32c09d62 Mon Sep 17 00:00:00 2001 From: David Turner Date: Fri, 8 Jun 2018 13:36:19 +0100 Subject: [PATCH 39/62] [DOCS] Add note about long-lived idle connections (#30990) Clarify that we expect to have idle inter-node connections within the cluster, and that the network needs to be configured not to disrupt these. --- docs/reference/modules/transport.asciidoc | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/docs/reference/modules/transport.asciidoc b/docs/reference/modules/transport.asciidoc index b7a65d98592..046d82cc507 100644 --- a/docs/reference/modules/transport.asciidoc +++ b/docs/reference/modules/transport.asciidoc @@ -44,7 +44,12 @@ time setting format). Defaults to `30s`. |`transport.tcp.compress` |Set to `true` to enable compression (`DEFLATE`) between all nodes. Defaults to `false`. -|`transport.ping_schedule` | Schedule a regular ping message to ensure that connections are kept alive. Defaults to `5s` in the transport client and `-1` (disabled) elsewhere. +|`transport.ping_schedule` | Schedule a regular application-level ping message +to ensure that transport connections between nodes are kept alive. Defaults to +`5s` in the transport client and `-1` (disabled) elsewhere. It is preferable to +correctly configure TCP keep-alives instead of using this feature, because TCP +keep-alives apply to all kinds of long-lived connection and not just to +transport connections. |======================================================================= @@ -80,6 +85,20 @@ The following parameters can be configured like that * `tcp_send_buffer_size`: Configures the send buffer size of the socket * `tcp_receive_buffer_size`: Configures the receive buffer size of the socket +[float] +==== Long-lived idle connections + +Elasticsearch opens a number of long-lived TCP connections between each pair of +nodes in the cluster, and some of these connections may be idle for an extended +period of time. Nonetheless, Elasticsearch requires these connections to remain +open, and it can disrupt the operation of the cluster if any inter-node +connections are closed by an external influence such as a firewall. It is +important to configure your network to preserve long-lived idle connections +between Elasticsearch nodes, for instance by leaving `tcp_keep_alive` enabled +and ensuring that the keepalive interval is shorter than any timeout that might +cause idle connections to be closed, or by setting `transport.ping_schedule` if +keepalives cannot be configured. + [float] === Transport Tracer From e467e67fd460af8e63d6ea01424fb377b0273181 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Fri, 8 Jun 2018 08:55:10 -0400 Subject: [PATCH 40/62] Enhance license detection for various licenses (#31198) This commit enhances the license detection that we have for various licenses. Here we improve the detection for all licenses (especially the Apache 2.0 License), the BSD 2-clause license, the MIT (with attribution) license, and we add detection for the BSD 3-clause license. One way that we achieved this improvement is by changing how the license files are read so that rather than reading them as a multi-line string which ended up represented as "[line1, line2, line3, ...]" internally, we read the full bytes of the license text and replace all whitespace with a single space so the license text is now loaded as "line1 line2 line3". For the MIT license we add the actual license text and remove the "MIT" string as not all copies of the license clearly indicate that the text is the MIT license. We take a similar strategy for the BSD-2 and BSD-3 clause licenses. With this change, we reduce the number of "custom" licenses in the codebase from 31 to 2. The two remaining appear to be truly custom licenses, not carrying licenses identifiable by SPDX. A follow-up will address "unknown" licenses. --- .../gradle/DependenciesInfoTask.groovy | 83 ++++++++++++++++++- 1 file changed, 79 insertions(+), 4 deletions(-) diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/DependenciesInfoTask.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/DependenciesInfoTask.groovy index eb82b4675f2..b42e6cc8e3c 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/DependenciesInfoTask.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/DependenciesInfoTask.groovy @@ -109,7 +109,8 @@ public class DependenciesInfoTask extends DefaultTask { } if (license) { - final String content = license.readLines("UTF-8").toString() + // replace * because they are sometimes used at the beginning lines as if the license was a multi-line comment + final String content = new String(license.readBytes(), "UTF-8").replaceAll("\\s+", " ").replaceAll("\\*", " ") final String spdx = checkSPDXLicense(content) if (spdx == null) { // License has not be identified as SPDX. @@ -133,13 +134,84 @@ public class DependenciesInfoTask extends DefaultTask { private String checkSPDXLicense(final String licenseText) { String spdx = null - final String APACHE_2_0 = "Apache.*License.*(v|V)ersion 2.0" - final String BSD_2 = "BSD 2-clause.*License" + final String APACHE_2_0 = "Apache.*License.*(v|V)ersion.*2\\.0" + + final String BSD_2 = """ +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + 1\\. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer\\. + 2\\. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution\\. + +THIS SOFTWARE IS PROVIDED BY .+ (``|''|")AS IS(''|") AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED\\. +IN NO EVENT SHALL .+ BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES \\(INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION\\) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +\\(INCLUDING NEGLIGENCE OR OTHERWISE\\) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE\\. +""".replaceAll("\\s+", "\\\\s*") + + final String BSD_3 = """ +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + + (1\\.)? Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer\\. + (2\\.)? Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution\\. + ((3\\.)? The name of .+ may not be used to endorse or promote products + derived from this software without specific prior written permission\\.| + (3\\.)? Neither the name of .+ nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission\\.) + +THIS SOFTWARE IS PROVIDED BY .+ (``|''|")AS IS(''|") AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED\\. +IN NO EVENT SHALL .+ BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES \\(INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION\\) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +\\(INCLUDING NEGLIGENCE OR OTHERWISE\\) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE\\. +""".replaceAll("\\s+", "\\\\s*") + final String CDDL_1_0 = "COMMON DEVELOPMENT AND DISTRIBUTION LICENSE.*Version 1.0" final String CDDL_1_1 = "COMMON DEVELOPMENT AND DISTRIBUTION LICENSE.*Version 1.1" final String ICU = "ICU License - ICU 1.8.1 and later" final String LGPL_3 = "GNU LESSER GENERAL PUBLIC LICENSE.*Version 3" - final String MIT = "MIT License" + + final String MIT = """ +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files \\(the "Software"\\), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software\\. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\\. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE\\. +""".replaceAll("\\s+", "\\\\s*") + final String MOZILLA_1_1 = "Mozilla Public License.*Version 1.1" switch (licenseText) { @@ -152,6 +224,9 @@ public class DependenciesInfoTask extends DefaultTask { case ~/.*${BSD_2}.*/: spdx = 'BSD-2-Clause' break + case ~/.*${BSD_3}.*/: + spdx = 'BSD-3-Clause' + break case ~/.*${LGPL_3}.*/: spdx = 'LGPL-3.0' break From 01140a3ad83cd13b20968e20118c5e373975d888 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Fri, 8 Jun 2018 10:15:28 -0400 Subject: [PATCH 41/62] SQL: Make a single JDBC driver jar (#31012) Replaces zip archive containing multiple jars with a single JDBC driver jar that shades all external dependencies. Closes #29856 --- x-pack/plugin/sql/jdbc/build.gradle | 125 +++++++++++++--------------- x-pack/qa/sql/build.gradle | 6 +- 2 files changed, 62 insertions(+), 69 deletions(-) diff --git a/x-pack/plugin/sql/jdbc/build.gradle b/x-pack/plugin/sql/jdbc/build.gradle index 26cf913aa27..e383e71cd4c 100644 --- a/x-pack/plugin/sql/jdbc/build.gradle +++ b/x-pack/plugin/sql/jdbc/build.gradle @@ -1,74 +1,40 @@ + +buildscript { + repositories { + maven { + url 'https://plugins.gradle.org/m2/' + } + } + dependencies { + classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.2' + } +} + apply plugin: 'elasticsearch.build' apply plugin: 'nebula.maven-base-publish' apply plugin: 'nebula.maven-scm' +apply plugin: 'com.github.johnrengelman.shadow' description = 'JDBC driver for Elasticsearch' +archivesBaseName = "x-pack-sql-jdbc" forbiddenApisMain { // does not depend on core, so only jdk and http signatures should be checked signaturesURLs = [this.class.getResource('/forbidden/jdk-signatures.txt')] } -/* - * Bundle as many of our dependencies as we can get away with into the jar. - * We can't currently bundle *all* dependencies into the jar, but we'd like - * to avoid publishing the sql shared libraries if possible. This allows that. - * - * It is possible to use configure this bundling in a bunch of different ways - * but this particular way generates a pom that doesn't declare the bundled - * dependencies as dependencies. Which is a good thing because we don't publish - * them and we don't want consumers to get two copies of them. - * - * We'd *like* to shade these dependencies, at least ones like jackson which we - * know that we can't remove entirely. But for now something like this is - * simpler. - */ -configurations { - bundled -} -sourceSets { - main { - compileClasspath += configurations.bundled - } - test { - compileClasspath += configurations.bundled - } -} -javadoc { - classpath += configurations.bundled -} -jar { - from({configurations.bundled.collect { it.isDirectory() ? it : zipTree(it) }}) { - // We don't need the META-INF from the things we bundle. For now. - exclude 'META-INF/*' - } -} - dependencies { - - // Eclipse doesn't know how to deal with these bundled deependencies so make them compile - // dependencies if we are running in Eclipse - if (isEclipse) { - compile (xpackProject('plugin:sql:sql-shared-client')) { - transitive = false - } - compile (xpackProject('plugin:sql:sql-shared-proto')) { - transitive = false - } - } else { - bundled (xpackProject('plugin:sql:sql-shared-client')) { - transitive = false - } - bundled (xpackProject('plugin:sql:sql-shared-proto')) { - transitive = false - } + compile (xpackProject('plugin:sql:sql-shared-client')) { + transitive = false + } + compile (xpackProject('plugin:sql:sql-shared-proto')) { + transitive = false } compile (project(':libs:x-content')) { transitive = false } compile project(':libs:core') runtime "com.fasterxml.jackson.core:jackson-core:${versions.jackson}" - testCompile "org.elasticsearch.test:framework:${version}" } @@ -82,23 +48,48 @@ dependencyLicenses { ignoreSha 'elasticsearch' } -/* - * Temporary zip file to make the jdbc driver more usable during the 6.3 - * release. We'd like to remove this in future releases when the jdbc driver - * bundles or shades all of its dependencies. But for now this should help - * non-maven jdbc users, specifically those folks using BI tools. - */ -task zipWithDependencies(type: Zip) { - from configurations.runtime - from configurations.runtime.artifacts.files - baseName 'elasticsearch-jdbc-with-dependencies' - into "elasticsearch-jdbc-with-dependencies-$version" +shadowJar { + classifier = null + relocate 'com.fasterxml', 'org.elasticsearch.fasterxml' } -assemble.dependsOn zipWithDependencies + +// We don't need normal jar, we use shadow jar instead +jar.enabled = false + +// We need a no-depenencies jar though for qa testing so it doesn't conflict with cli +configurations { + nodeps +} + +task nodepsJar(type: Jar) { + appendix 'nodeps' + from sourceSets.main.output +} + +artifacts { + nodeps nodepsJar + archives shadowJar +} + +publishing { + publications { + nebula(MavenPublication) { + artifact shadowJar + pom.withXml { + // Nebula is mistakenly including all dependencies that are already shadowed into the shadow jar + asNode().remove(asNode().dependencies) + } + } + } +} + +assemble.dependsOn shadowJar // Use the jar for testing so the tests are more "real" test { classpath -= compileJava.outputs.files - classpath += jar.outputs.files - dependsOn jar + classpath -= configurations.compile + classpath -= configurations.runtime + classpath += shadowJar.outputs.files + dependsOn shadowJar } diff --git a/x-pack/qa/sql/build.gradle b/x-pack/qa/sql/build.gradle index 8f77e1608d6..a3c147bbc04 100644 --- a/x-pack/qa/sql/build.gradle +++ b/x-pack/qa/sql/build.gradle @@ -9,7 +9,7 @@ dependencies { compile "org.elasticsearch.test:framework:${version}" // JDBC testing dependencies - compile xpackProject('plugin:sql:jdbc') + compile project(path: xpackModule('sql:jdbc'), configuration: 'nodeps') compile "net.sourceforge.csvjdbc:csvjdbc:1.0.34" // CLI testing dependencies @@ -87,7 +87,9 @@ subprojects { // JDBC testing dependencies testRuntime "net.sourceforge.csvjdbc:csvjdbc:1.0.34" testRuntime "com.h2database:h2:1.4.197" - testRuntime xpackProject('plugin:sql:jdbc') + testRuntime project(path: xpackModule('sql:jdbc'), configuration: 'nodeps') + testRuntime xpackProject('plugin:sql:sql-shared-client') + // TODO check if needed testRuntime("org.antlr:antlr4-runtime:4.5.3") { From a86c0f8c25fb146793c4992f2a18caffeecdfca6 Mon Sep 17 00:00:00 2001 From: Vladimir Dolzhenko Date: Fri, 8 Jun 2018 09:16:38 -0700 Subject: [PATCH 42/62] Allow to trim all ops above a certain seq# with a term lower than X (#30176) Allow to trim all ops above a certain seq# with a term lower than X Relates to #10708 --- .../resync/ResyncReplicationRequest.java | 24 +- .../TransportResyncReplicationAction.java | 3 + .../elasticsearch/index/engine/Engine.java | 8 +- .../index/engine/InternalEngine.java | 20 +- .../index/seqno/SequenceNumbers.java | 2 +- .../elasticsearch/index/shard/IndexShard.java | 6 +- .../index/shard/PrimaryReplicaSyncer.java | 21 +- .../index/translog/Checkpoint.java | 92 ++++++-- .../index/translog/MultiSnapshot.java | 9 + .../index/translog/Translog.java | 42 ++++ .../index/translog/TranslogReader.java | 38 +++ .../index/translog/TranslogSnapshot.java | 17 +- .../index/translog/TranslogWriter.java | 24 +- .../recovery/RecoverySourceHandler.java | 4 +- .../resync/ResyncReplicationRequestTests.java | 2 +- .../IndexLevelReplicationTests.java | 10 +- .../RecoveryDuringReplicationTests.java | 71 +++++- .../shard/PrimaryReplicaSyncerTests.java | 36 ++- .../index/translog/TranslogHeaderTests.java | 3 +- .../index/translog/TranslogTests.java | 216 +++++++++++++++++- 20 files changed, 579 insertions(+), 69 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/action/resync/ResyncReplicationRequest.java b/server/src/main/java/org/elasticsearch/action/resync/ResyncReplicationRequest.java index 07dcdf7db11..7be3406659e 100644 --- a/server/src/main/java/org/elasticsearch/action/resync/ResyncReplicationRequest.java +++ b/server/src/main/java/org/elasticsearch/action/resync/ResyncReplicationRequest.java @@ -22,6 +22,7 @@ import org.elasticsearch.Version; import org.elasticsearch.action.support.replication.ReplicatedWriteRequest; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.index.seqno.SequenceNumbers; import org.elasticsearch.index.shard.ShardId; import org.elasticsearch.index.translog.Translog; @@ -33,17 +34,24 @@ import java.util.Arrays; */ public final class ResyncReplicationRequest extends ReplicatedWriteRequest { + private long trimAboveSeqNo; private Translog.Operation[] operations; ResyncReplicationRequest() { super(); } - public ResyncReplicationRequest(final ShardId shardId, final Translog.Operation[] operations) { + public ResyncReplicationRequest(final ShardId shardId, final long trimAboveSeqNo, + final Translog.Operation[] operations) { super(shardId); + this.trimAboveSeqNo = trimAboveSeqNo; this.operations = operations; } + public long getTrimAboveSeqNo() { + return trimAboveSeqNo; + } + public Translog.Operation[] getOperations() { return operations; } @@ -60,12 +68,20 @@ public final class ResyncReplicationRequest extends ReplicatedWriteRequestbelowTerm and seq# above aboveSeqNo + * @see Translog#trimOperations(long, long) + */ + public abstract void trimOperationsFromTranslog(long belowTerm, long aboveSeqNo) throws EngineException; + /** A Lock implementation that always allows the lock to be acquired */ protected static final class NoOpLock implements Lock { @@ -904,7 +910,7 @@ public abstract class Engine implements Closeable { * checks and removes translog files that no longer need to be retained. See * {@link org.elasticsearch.index.translog.TranslogDeletionPolicy} for details */ - public abstract void trimTranslog() throws EngineException; + public abstract void trimUnreferencedTranslogFiles() throws EngineException; /** * Tests whether or not the translog generation should be rolled to a new generation. diff --git a/server/src/main/java/org/elasticsearch/index/engine/InternalEngine.java b/server/src/main/java/org/elasticsearch/index/engine/InternalEngine.java index bca84f81a29..88e71608452 100644 --- a/server/src/main/java/org/elasticsearch/index/engine/InternalEngine.java +++ b/server/src/main/java/org/elasticsearch/index/engine/InternalEngine.java @@ -1552,7 +1552,7 @@ public class InternalEngine extends Engine { } @Override - public void trimTranslog() throws EngineException { + public void trimUnreferencedTranslogFiles() throws EngineException { try (ReleasableLock lock = readLock.acquire()) { ensureOpen(); translog.trimUnreferencedReaders(); @@ -1569,6 +1569,24 @@ public class InternalEngine extends Engine { } } + @Override + public void trimOperationsFromTranslog(long belowTerm, long aboveSeqNo) throws EngineException { + try (ReleasableLock lock = readLock.acquire()) { + ensureOpen(); + translog.trimOperations(belowTerm, aboveSeqNo); + } catch (AlreadyClosedException e) { + failOnTragicEvent(e); + throw e; + } catch (Exception e) { + try { + failEngine("translog operations trimming failed", e); + } catch (Exception inner) { + e.addSuppressed(inner); + } + throw new EngineException(shardId, "failed to trim translog operations", e); + } + } + private void pruneDeletedTombstones() { /* * We need to deploy two different trimming strategies for GC deletes on primary and replicas. Delete operations on primary diff --git a/server/src/main/java/org/elasticsearch/index/seqno/SequenceNumbers.java b/server/src/main/java/org/elasticsearch/index/seqno/SequenceNumbers.java index 0c071f4b2d4..7cffc8c1ac9 100644 --- a/server/src/main/java/org/elasticsearch/index/seqno/SequenceNumbers.java +++ b/server/src/main/java/org/elasticsearch/index/seqno/SequenceNumbers.java @@ -37,7 +37,7 @@ public class SequenceNumbers { */ public static final long UNASSIGNED_SEQ_NO = -2L; /** - * Represents no operations have been performed on the shard. + * Represents no operations have been performed on the shard. Initial value of a sequence number. */ public static final long NO_OPS_PERFORMED = -1L; diff --git a/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java b/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java index c76ce128763..8583b6b4c9b 100644 --- a/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java @@ -992,7 +992,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl public void trimTranslog() { verifyNotClosed(); final Engine engine = getEngine(); - engine.trimTranslog(); + engine.trimUnreferencedTranslogFiles(); } /** @@ -1194,6 +1194,10 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl assert currentEngineReference.get() == null; } + public void trimOperationOfPreviousPrimaryTerms(long aboveSeqNo) { + getEngine().trimOperationsFromTranslog(primaryTerm, aboveSeqNo); + } + public Engine.Result applyTranslogOperation(Translog.Operation operation, Engine.Operation.Origin origin) throws IOException { final Engine.Result result; switch (operation.opType()) { diff --git a/server/src/main/java/org/elasticsearch/index/shard/PrimaryReplicaSyncer.java b/server/src/main/java/org/elasticsearch/index/shard/PrimaryReplicaSyncer.java index af8c9bdd027..8e05e7bf08e 100644 --- a/server/src/main/java/org/elasticsearch/index/shard/PrimaryReplicaSyncer.java +++ b/server/src/main/java/org/elasticsearch/index/shard/PrimaryReplicaSyncer.java @@ -35,6 +35,7 @@ import org.elasticsearch.common.unit.ByteSizeUnit; import org.elasticsearch.common.unit.ByteSizeValue; import org.elasticsearch.common.util.concurrent.AbstractRunnable; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.seqno.SeqNoStats; import org.elasticsearch.index.seqno.SequenceNumbers; import org.elasticsearch.index.translog.Translog; import org.elasticsearch.tasks.Task; @@ -84,6 +85,7 @@ public class PrimaryReplicaSyncer extends AbstractComponent { try { final long startingSeqNo = indexShard.getGlobalCheckpoint() + 1; Translog.Snapshot snapshot = indexShard.newTranslogSnapshotFromMinSeqNo(startingSeqNo); + final long maxSeqNo = indexShard.seqNoStats().getMaxSeqNo(); resyncListener = new ActionListener() { @Override public void onResponse(final ResyncTask resyncTask) { @@ -135,7 +137,7 @@ public class PrimaryReplicaSyncer extends AbstractComponent { } }; resync(shardId, indexShard.routingEntry().allocationId().getId(), indexShard.getPrimaryTerm(), wrappedSnapshot, - startingSeqNo, resyncListener); + startingSeqNo, maxSeqNo, resyncListener); } catch (Exception e) { if (resyncListener != null) { resyncListener.onFailure(e); @@ -146,7 +148,7 @@ public class PrimaryReplicaSyncer extends AbstractComponent { } private void resync(final ShardId shardId, final String primaryAllocationId, final long primaryTerm, final Translog.Snapshot snapshot, - long startingSeqNo, ActionListener listener) { + long startingSeqNo, long maxSeqNo, ActionListener listener) { ResyncRequest request = new ResyncRequest(shardId, primaryAllocationId); ResyncTask resyncTask = (ResyncTask) taskManager.register("transport", "resync", request); // it's not transport :-) ActionListener wrappedListener = new ActionListener() { @@ -166,7 +168,7 @@ public class PrimaryReplicaSyncer extends AbstractComponent { }; try { new SnapshotSender(logger, syncAction, resyncTask, shardId, primaryAllocationId, primaryTerm, snapshot, chunkSize.bytesAsInt(), - startingSeqNo, wrappedListener).run(); + startingSeqNo, maxSeqNo, wrappedListener).run(); } catch (Exception e) { wrappedListener.onFailure(e); } @@ -186,14 +188,16 @@ public class PrimaryReplicaSyncer extends AbstractComponent { private final ShardId shardId; private final Translog.Snapshot snapshot; private final long startingSeqNo; + private final long maxSeqNo; private final int chunkSizeInBytes; private final ActionListener listener; + private final AtomicBoolean firstMessage = new AtomicBoolean(true); private final AtomicInteger totalSentOps = new AtomicInteger(); private final AtomicInteger totalSkippedOps = new AtomicInteger(); private AtomicBoolean closed = new AtomicBoolean(); SnapshotSender(Logger logger, SyncAction syncAction, ResyncTask task, ShardId shardId, String primaryAllocationId, long primaryTerm, - Translog.Snapshot snapshot, int chunkSizeInBytes, long startingSeqNo, ActionListener listener) { + Translog.Snapshot snapshot, int chunkSizeInBytes, long startingSeqNo, long maxSeqNo, ActionListener listener) { this.logger = logger; this.syncAction = syncAction; this.task = task; @@ -203,6 +207,7 @@ public class PrimaryReplicaSyncer extends AbstractComponent { this.snapshot = snapshot; this.chunkSizeInBytes = chunkSizeInBytes; this.startingSeqNo = startingSeqNo; + this.maxSeqNo = maxSeqNo; this.listener = listener; task.setTotalOperations(snapshot.totalOperations()); } @@ -248,11 +253,15 @@ public class PrimaryReplicaSyncer extends AbstractComponent { } } - if (!operations.isEmpty()) { + final long trimmedAboveSeqNo = firstMessage.get() ? maxSeqNo : SequenceNumbers.UNASSIGNED_SEQ_NO; + // have to send sync request even in case of there are no operations to sync - have to sync trimmedAboveSeqNo at least + if (!operations.isEmpty() || trimmedAboveSeqNo != SequenceNumbers.UNASSIGNED_SEQ_NO) { task.setPhase("sending_ops"); - ResyncReplicationRequest request = new ResyncReplicationRequest(shardId, operations.toArray(EMPTY_ARRAY)); + ResyncReplicationRequest request = + new ResyncReplicationRequest(shardId, trimmedAboveSeqNo, operations.toArray(EMPTY_ARRAY)); logger.trace("{} sending batch of [{}][{}] (total sent: [{}], skipped: [{}])", shardId, operations.size(), new ByteSizeValue(size), totalSentOps.get(), totalSkippedOps.get()); + firstMessage.set(false); syncAction.sync(request, task, primaryAllocationId, primaryTerm, this); } else if (closed.compareAndSet(false, true)) { logger.trace("{} resync completed (total sent: [{}], skipped: [{}])", shardId, totalSentOps.get(), totalSkippedOps.get()); diff --git a/server/src/main/java/org/elasticsearch/index/translog/Checkpoint.java b/server/src/main/java/org/elasticsearch/index/translog/Checkpoint.java index 32aef840b6f..21a400f9f65 100644 --- a/server/src/main/java/org/elasticsearch/index/translog/Checkpoint.java +++ b/server/src/main/java/org/elasticsearch/index/translog/Checkpoint.java @@ -45,14 +45,29 @@ final class Checkpoint { final long maxSeqNo; final long globalCheckpoint; final long minTranslogGeneration; + final long trimmedAboveSeqNo; private static final int INITIAL_VERSION = 1; // start with 1, just to recognize there was some magic serialization logic before - private static final int CURRENT_VERSION = 2; // introduction of global checkpoints + private static final int VERSION_6_0_0 = 2; // introduction of global checkpoints + private static final int CURRENT_VERSION = 3; // introduction of trimmed above seq# private static final String CHECKPOINT_CODEC = "ckp"; + // size of 7.0.0 checkpoint + + static final int V3_FILE_SIZE = CodecUtil.headerLength(CHECKPOINT_CODEC) + + Integer.BYTES // ops + + Long.BYTES // offset + + Long.BYTES // generation + + Long.BYTES // minimum sequence number, introduced in 6.0.0 + + Long.BYTES // maximum sequence number, introduced in 6.0.0 + + Long.BYTES // global checkpoint, introduced in 6.0.0 + + Long.BYTES // minimum translog generation in the translog - introduced in 6.0.0 + + Long.BYTES // maximum reachable (trimmed) sequence number, introduced in 6.4.0 + + CodecUtil.footerLength(); + // size of 6.0.0 checkpoint - static final int FILE_SIZE = CodecUtil.headerLength(CHECKPOINT_CODEC) + static final int V2_FILE_SIZE = CodecUtil.headerLength(CHECKPOINT_CODEC) + Integer.BYTES // ops + Long.BYTES // offset + Long.BYTES // generation @@ -72,16 +87,20 @@ final class Checkpoint { /** * Create a new translog checkpoint. * - * @param offset the current offset in the translog - * @param numOps the current number of operations in the translog - * @param generation the current translog generation - * @param minSeqNo the current minimum sequence number of all operations in the translog - * @param maxSeqNo the current maximum sequence number of all operations in the translog - * @param globalCheckpoint the last-known global checkpoint + * @param offset the current offset in the translog + * @param numOps the current number of operations in the translog + * @param generation the current translog generation + * @param minSeqNo the current minimum sequence number of all operations in the translog + * @param maxSeqNo the current maximum sequence number of all operations in the translog + * @param globalCheckpoint the last-known global checkpoint * @param minTranslogGeneration the minimum generation referenced by the translog at this moment. + * @param trimmedAboveSeqNo all operations with seq# above trimmedAboveSeqNo should be ignored and not read from the + * corresponding translog file. {@link SequenceNumbers#UNASSIGNED_SEQ_NO} is used to disable trimming. */ - Checkpoint(long offset, int numOps, long generation, long minSeqNo, long maxSeqNo, long globalCheckpoint, long minTranslogGeneration) { + Checkpoint(long offset, int numOps, long generation, long minSeqNo, long maxSeqNo, long globalCheckpoint, + long minTranslogGeneration, long trimmedAboveSeqNo) { assert minSeqNo <= maxSeqNo : "minSeqNo [" + minSeqNo + "] is higher than maxSeqNo [" + maxSeqNo + "]"; + assert trimmedAboveSeqNo <= maxSeqNo : "trimmedAboveSeqNo [" + trimmedAboveSeqNo + "] is higher than maxSeqNo [" + maxSeqNo + "]"; assert minTranslogGeneration <= generation : "minTranslogGen [" + minTranslogGeneration + "] is higher than generation [" + generation + "]"; this.offset = offset; @@ -91,6 +110,7 @@ final class Checkpoint { this.maxSeqNo = maxSeqNo; this.globalCheckpoint = globalCheckpoint; this.minTranslogGeneration = minTranslogGeneration; + this.trimmedAboveSeqNo = trimmedAboveSeqNo; } private void write(DataOutput out) throws IOException { @@ -101,26 +121,52 @@ final class Checkpoint { out.writeLong(maxSeqNo); out.writeLong(globalCheckpoint); out.writeLong(minTranslogGeneration); + out.writeLong(trimmedAboveSeqNo); } static Checkpoint emptyTranslogCheckpoint(final long offset, final long generation, final long globalCheckpoint, long minTranslogGeneration) { final long minSeqNo = SequenceNumbers.NO_OPS_PERFORMED; final long maxSeqNo = SequenceNumbers.NO_OPS_PERFORMED; - return new Checkpoint(offset, 0, generation, minSeqNo, maxSeqNo, globalCheckpoint, minTranslogGeneration); + final long trimmedAboveSeqNo = SequenceNumbers.UNASSIGNED_SEQ_NO; + return new Checkpoint(offset, 0, generation, minSeqNo, maxSeqNo, globalCheckpoint, minTranslogGeneration, trimmedAboveSeqNo); + } + + static Checkpoint readCheckpointV6_4_0(final DataInput in) throws IOException { + final long offset = in.readLong(); + final int numOps = in.readInt(); + final long generation = in.readLong(); + final long minSeqNo = in.readLong(); + final long maxSeqNo = in.readLong(); + final long globalCheckpoint = in.readLong(); + final long minTranslogGeneration = in.readLong(); + final long trimmedAboveSeqNo = in.readLong(); + return new Checkpoint(offset, numOps, generation, minSeqNo, maxSeqNo, globalCheckpoint, minTranslogGeneration, trimmedAboveSeqNo); } static Checkpoint readCheckpointV6_0_0(final DataInput in) throws IOException { - return new Checkpoint(in.readLong(), in.readInt(), in.readLong(), in.readLong(), in.readLong(), in.readLong(), in.readLong()); + final long offset = in.readLong(); + final int numOps = in.readInt(); + final long generation = in.readLong(); + final long minSeqNo = in.readLong(); + final long maxSeqNo = in.readLong(); + final long globalCheckpoint = in.readLong(); + final long minTranslogGeneration = in.readLong(); + final long trimmedAboveSeqNo = SequenceNumbers.UNASSIGNED_SEQ_NO; + return new Checkpoint(offset, numOps, generation, minSeqNo, maxSeqNo, globalCheckpoint, minTranslogGeneration, trimmedAboveSeqNo); } // reads a checksummed checkpoint introduced in ES 5.0.0 static Checkpoint readCheckpointV5_0_0(final DataInput in) throws IOException { + final long offset = in.readLong(); + final int numOps = in.readInt(); + final long generation = in.readLong(); final long minSeqNo = SequenceNumbers.NO_OPS_PERFORMED; final long maxSeqNo = SequenceNumbers.NO_OPS_PERFORMED; final long globalCheckpoint = SequenceNumbers.UNASSIGNED_SEQ_NO; - final long minTranslogGeneration = -1L; - return new Checkpoint(in.readLong(), in.readInt(), in.readLong(), minSeqNo, maxSeqNo, globalCheckpoint, minTranslogGeneration); + final long minTranslogGeneration = -1; + final long trimmedAboveSeqNo = SequenceNumbers.UNASSIGNED_SEQ_NO; + return new Checkpoint(offset, numOps, generation, minSeqNo, maxSeqNo, globalCheckpoint, minTranslogGeneration, trimmedAboveSeqNo); } @Override @@ -133,6 +179,7 @@ final class Checkpoint { ", maxSeqNo=" + maxSeqNo + ", globalCheckpoint=" + globalCheckpoint + ", minTranslogGeneration=" + minTranslogGeneration + + ", trimmedAboveSeqNo=" + trimmedAboveSeqNo + '}'; } @@ -145,17 +192,20 @@ final class Checkpoint { if (fileVersion == INITIAL_VERSION) { assert indexInput.length() == V1_FILE_SIZE : indexInput.length(); return Checkpoint.readCheckpointV5_0_0(indexInput); + } else if (fileVersion == VERSION_6_0_0) { + assert indexInput.length() == V2_FILE_SIZE : indexInput.length(); + return Checkpoint.readCheckpointV6_0_0(indexInput); } else { assert fileVersion == CURRENT_VERSION : fileVersion; - assert indexInput.length() == FILE_SIZE : indexInput.length(); - return Checkpoint.readCheckpointV6_0_0(indexInput); + assert indexInput.length() == V3_FILE_SIZE : indexInput.length(); + return Checkpoint.readCheckpointV6_4_0(indexInput); } } } } public static void write(ChannelFactory factory, Path checkpointFile, Checkpoint checkpoint, OpenOption... options) throws IOException { - final ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream(FILE_SIZE) { + final ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream(V3_FILE_SIZE) { @Override public synchronized byte[] toByteArray() { // don't clone @@ -164,13 +214,13 @@ final class Checkpoint { }; final String resourceDesc = "checkpoint(path=\"" + checkpointFile + "\", gen=" + checkpoint + ")"; try (OutputStreamIndexOutput indexOutput = - new OutputStreamIndexOutput(resourceDesc, checkpointFile.toString(), byteOutputStream, FILE_SIZE)) { + new OutputStreamIndexOutput(resourceDesc, checkpointFile.toString(), byteOutputStream, V3_FILE_SIZE)) { CodecUtil.writeHeader(indexOutput, CHECKPOINT_CODEC, CURRENT_VERSION); checkpoint.write(indexOutput); CodecUtil.writeFooter(indexOutput); - assert indexOutput.getFilePointer() == FILE_SIZE : - "get you numbers straight; bytes written: " + indexOutput.getFilePointer() + ", buffer size: " + FILE_SIZE; + assert indexOutput.getFilePointer() == V3_FILE_SIZE : + "get you numbers straight; bytes written: " + indexOutput.getFilePointer() + ", buffer size: " + V3_FILE_SIZE; assert indexOutput.getFilePointer() < 512 : "checkpoint files have to be smaller than 512 bytes for atomic writes; size: " + indexOutput.getFilePointer(); @@ -196,7 +246,8 @@ final class Checkpoint { if (generation != that.generation) return false; if (minSeqNo != that.minSeqNo) return false; if (maxSeqNo != that.maxSeqNo) return false; - return globalCheckpoint == that.globalCheckpoint; + if (globalCheckpoint != that.globalCheckpoint) return false; + return trimmedAboveSeqNo == that.trimmedAboveSeqNo; } @Override @@ -207,6 +258,7 @@ final class Checkpoint { result = 31 * result + Long.hashCode(minSeqNo); result = 31 * result + Long.hashCode(maxSeqNo); result = 31 * result + Long.hashCode(globalCheckpoint); + result = 31 * result + Long.hashCode(trimmedAboveSeqNo); return result; } diff --git a/server/src/main/java/org/elasticsearch/index/translog/MultiSnapshot.java b/server/src/main/java/org/elasticsearch/index/translog/MultiSnapshot.java index 1b095beddb4..b5a17534903 100644 --- a/server/src/main/java/org/elasticsearch/index/translog/MultiSnapshot.java +++ b/server/src/main/java/org/elasticsearch/index/translog/MultiSnapshot.java @@ -56,6 +56,15 @@ final class MultiSnapshot implements Translog.Snapshot { return totalOperations; } + @Override + public int skippedOperations() { + int skippedOperations = overriddenOperations; + for (TranslogSnapshot translog : translogs) { + skippedOperations += translog.skippedOperations(); + } + return skippedOperations; + } + @Override public int overriddenOperations() { return overriddenOperations; diff --git a/server/src/main/java/org/elasticsearch/index/translog/Translog.java b/server/src/main/java/org/elasticsearch/index/translog/Translog.java index 9d8c6c7c093..63055d933e4 100644 --- a/server/src/main/java/org/elasticsearch/index/translog/Translog.java +++ b/server/src/main/java/org/elasticsearch/index/translog/Translog.java @@ -696,6 +696,41 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC return TRANSLOG_FILE_PREFIX + generation + CHECKPOINT_SUFFIX; } + /** + * Trims translog for terms of files below belowTerm and seq# above aboveSeqNo. + * Effectively it moves max visible seq# {@link Checkpoint#trimmedAboveSeqNo} therefore {@link TranslogSnapshot} skips those operations. + */ + public void trimOperations(long belowTerm, long aboveSeqNo) throws IOException { + assert aboveSeqNo >= SequenceNumbers.NO_OPS_PERFORMED : "aboveSeqNo has to a valid sequence number"; + + try (ReleasableLock lock = writeLock.acquire()) { + ensureOpen(); + if (current.getPrimaryTerm() < belowTerm) { + throw new IllegalArgumentException("Trimming the translog can only be done for terms lower than the current one. " + + "Trim requested for term [ " + belowTerm + " ] , current is [ " + current.getPrimaryTerm() + " ]"); + } + // we assume that the current translog generation doesn't have trimmable ops. Verify that. + assert current.assertNoSeqAbove(belowTerm, aboveSeqNo); + // update all existed ones (if it is necessary) as checkpoint and reader are immutable + final List newReaders = new ArrayList<>(readers.size()); + try { + for (TranslogReader reader : readers) { + final TranslogReader newReader = + reader.getPrimaryTerm() < belowTerm + ? reader.closeIntoTrimmedReader(aboveSeqNo, getChannelFactory()) + : reader; + newReaders.add(newReader); + } + } catch (IOException e) { + IOUtils.closeWhileHandlingException(newReaders); + close(); + throw e; + } + + this.readers.clear(); + this.readers.addAll(newReaders); + } + } /** * Ensures that the given location has be synced / written to the underlying storage. @@ -845,6 +880,13 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC */ int totalOperations(); + /** + * The number of operations have been skipped (overridden or trimmed) in the snapshot so far. + */ + default int skippedOperations() { + return 0; + } + /** * The number of operations have been overridden (eg. superseded) in the snapshot so far. * If two operations have the same sequence number, the operation with a lower term will be overridden by the operation diff --git a/server/src/main/java/org/elasticsearch/index/translog/TranslogReader.java b/server/src/main/java/org/elasticsearch/index/translog/TranslogReader.java index 29e30bd25dd..4091fa45762 100644 --- a/server/src/main/java/org/elasticsearch/index/translog/TranslogReader.java +++ b/server/src/main/java/org/elasticsearch/index/translog/TranslogReader.java @@ -21,6 +21,8 @@ package org.elasticsearch.index.translog; import org.apache.lucene.store.AlreadyClosedException; import org.elasticsearch.common.io.Channels; +import org.elasticsearch.core.internal.io.IOUtils; +import org.elasticsearch.index.seqno.SequenceNumbers; import java.io.Closeable; import java.io.EOFException; @@ -28,8 +30,11 @@ import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.nio.file.Path; +import java.nio.file.StandardOpenOption; import java.util.concurrent.atomic.AtomicBoolean; +import static org.elasticsearch.index.translog.Translog.getCommitCheckpointFileName; + /** * an immutable translog filereader */ @@ -70,6 +75,39 @@ public class TranslogReader extends BaseTranslogReader implements Closeable { return new TranslogReader(checkpoint, channel, path, header); } + /** + * Closes current reader and creates new one with new checkoint and same file channel + */ + TranslogReader closeIntoTrimmedReader(long aboveSeqNo, ChannelFactory channelFactory) throws IOException { + if (closed.compareAndSet(false, true)) { + Closeable toCloseOnFailure = channel; + final TranslogReader newReader; + try { + if (aboveSeqNo < checkpoint.trimmedAboveSeqNo + || aboveSeqNo < checkpoint.maxSeqNo && checkpoint.trimmedAboveSeqNo == SequenceNumbers.UNASSIGNED_SEQ_NO) { + final Path checkpointFile = path.getParent().resolve(getCommitCheckpointFileName(checkpoint.generation)); + final Checkpoint newCheckpoint = new Checkpoint(checkpoint.offset, checkpoint.numOps, + checkpoint.generation, checkpoint.minSeqNo, checkpoint.maxSeqNo, + checkpoint.globalCheckpoint, checkpoint.minTranslogGeneration, aboveSeqNo); + Checkpoint.write(channelFactory, checkpointFile, newCheckpoint, StandardOpenOption.WRITE); + + IOUtils.fsync(checkpointFile, false); + IOUtils.fsync(checkpointFile.getParent(), true); + + newReader = new TranslogReader(newCheckpoint, channel, path, header); + } else { + newReader = new TranslogReader(checkpoint, channel, path, header); + } + toCloseOnFailure = null; + return newReader; + } finally { + IOUtils.close(toCloseOnFailure); + } + } else { + throw new AlreadyClosedException(toString() + " is already closed"); + } + } + public long sizeInBytes() { return length; } diff --git a/server/src/main/java/org/elasticsearch/index/translog/TranslogSnapshot.java b/server/src/main/java/org/elasticsearch/index/translog/TranslogSnapshot.java index a9667203532..8fe92bba009 100644 --- a/server/src/main/java/org/elasticsearch/index/translog/TranslogSnapshot.java +++ b/server/src/main/java/org/elasticsearch/index/translog/TranslogSnapshot.java @@ -19,6 +19,7 @@ package org.elasticsearch.index.translog; import org.elasticsearch.common.io.Channels; +import org.elasticsearch.index.seqno.SequenceNumbers; import java.io.EOFException; import java.io.IOException; @@ -32,6 +33,7 @@ final class TranslogSnapshot extends BaseTranslogReader { private final ByteBuffer reusableBuffer; private long position; + private int skippedOperations; private int readOperations; private BufferedChecksumStreamInput reuse; @@ -54,17 +56,24 @@ final class TranslogSnapshot extends BaseTranslogReader { return totalOperations; } + int skippedOperations(){ + return skippedOperations; + } + @Override Checkpoint getCheckpoint() { return checkpoint; } public Translog.Operation next() throws IOException { - if (readOperations < totalOperations) { - return readOperation(); - } else { - return null; + while (readOperations < totalOperations) { + final Translog.Operation operation = readOperation(); + if (operation.seqNo() <= checkpoint.trimmedAboveSeqNo || checkpoint.trimmedAboveSeqNo == SequenceNumbers.UNASSIGNED_SEQ_NO) { + return operation; + } + skippedOperations++; } + return null; } protected Translog.Operation readOperation() throws IOException { diff --git a/server/src/main/java/org/elasticsearch/index/translog/TranslogWriter.java b/server/src/main/java/org/elasticsearch/index/translog/TranslogWriter.java index cae65788865..b89b21c5258 100644 --- a/server/src/main/java/org/elasticsearch/index/translog/TranslogWriter.java +++ b/server/src/main/java/org/elasticsearch/index/translog/TranslogWriter.java @@ -20,7 +20,6 @@ package org.elasticsearch.index.translog; import org.apache.lucene.store.AlreadyClosedException; -import org.apache.lucene.store.OutputStreamDataOutput; import org.elasticsearch.core.internal.io.IOUtils; import org.elasticsearch.Assertions; import org.elasticsearch.common.bytes.BytesArray; @@ -92,6 +91,7 @@ public class TranslogWriter extends BaseTranslogReader implements Closeable { this.minSeqNo = initialCheckpoint.minSeqNo; assert initialCheckpoint.maxSeqNo == SequenceNumbers.NO_OPS_PERFORMED : initialCheckpoint.maxSeqNo; this.maxSeqNo = initialCheckpoint.maxSeqNo; + assert initialCheckpoint.trimmedAboveSeqNo == SequenceNumbers.UNASSIGNED_SEQ_NO : initialCheckpoint.trimmedAboveSeqNo; this.globalCheckpointSupplier = globalCheckpointSupplier; this.seenSequenceNumbers = Assertions.ENABLED ? new HashMap<>() : null; } @@ -213,6 +213,25 @@ public class TranslogWriter extends BaseTranslogReader implements Closeable { return true; } + synchronized boolean assertNoSeqAbove(long belowTerm, long aboveSeqNo) { + seenSequenceNumbers.entrySet().stream().filter(e -> e.getKey().longValue() > aboveSeqNo) + .forEach(e -> { + final Translog.Operation op; + try { + op = Translog.readOperation(new BufferedChecksumStreamInput(e.getValue().v1().streamInput())); + } catch (IOException ex) { + throw new RuntimeException(ex); + } + long seqNo = op.seqNo(); + long primaryTerm = op.primaryTerm(); + if (primaryTerm < belowTerm) { + throw new AssertionError("current should not have any operations with seq#:primaryTerm [" + + seqNo + ":" + primaryTerm + "] > " + aboveSeqNo + ":" + belowTerm); + } + }); + return true; + } + /** * write all buffered ops to disk and fsync file. * @@ -241,7 +260,8 @@ public class TranslogWriter extends BaseTranslogReader implements Closeable { @Override synchronized Checkpoint getCheckpoint() { return new Checkpoint(totalOffset, operationCounter, generation, minSeqNo, maxSeqNo, - globalCheckpointSupplier.getAsLong(), minTranslogGenerationSupplier.getAsLong()); + globalCheckpointSupplier.getAsLong(), minTranslogGenerationSupplier.getAsLong(), + SequenceNumbers.UNASSIGNED_SEQ_NO); } @Override diff --git a/server/src/main/java/org/elasticsearch/indices/recovery/RecoverySourceHandler.java b/server/src/main/java/org/elasticsearch/indices/recovery/RecoverySourceHandler.java index 4c543aeeb22..72a6fcb6ba3 100644 --- a/server/src/main/java/org/elasticsearch/indices/recovery/RecoverySourceHandler.java +++ b/server/src/main/java/org/elasticsearch/indices/recovery/RecoverySourceHandler.java @@ -615,9 +615,9 @@ public class RecoverySourceHandler { cancellableThreads.executeIO(sendBatch); } - assert expectedTotalOps == snapshot.overriddenOperations() + skippedOps + totalSentOps + assert expectedTotalOps == snapshot.skippedOperations() + skippedOps + totalSentOps : String.format(Locale.ROOT, "expected total [%d], overridden [%d], skipped [%d], total sent [%d]", - expectedTotalOps, snapshot.overriddenOperations(), skippedOps, totalSentOps); + expectedTotalOps, snapshot.skippedOperations(), skippedOps, totalSentOps); if (requiredOpsTracker.getCheckpoint() < endingSeqNo) { throw new IllegalStateException("translog replay failed to cover required sequence numbers" + diff --git a/server/src/test/java/org/elasticsearch/action/resync/ResyncReplicationRequestTests.java b/server/src/test/java/org/elasticsearch/action/resync/ResyncReplicationRequestTests.java index d5ad3941a5e..914c2b87422 100644 --- a/server/src/test/java/org/elasticsearch/action/resync/ResyncReplicationRequestTests.java +++ b/server/src/test/java/org/elasticsearch/action/resync/ResyncReplicationRequestTests.java @@ -40,7 +40,7 @@ public class ResyncReplicationRequestTests extends ESTestCase { final Translog.Index index = new Translog.Index("type", "id", 0, randomNonNegativeLong(), Versions.MATCH_ANY, VersionType.INTERNAL, bytes, null, -1); final ShardId shardId = new ShardId(new Index("index", "uuid"), 0); - final ResyncReplicationRequest before = new ResyncReplicationRequest(shardId, new Translog.Operation[]{index}); + final ResyncReplicationRequest before = new ResyncReplicationRequest(shardId, 42L, new Translog.Operation[]{index}); final BytesStreamOutput out = new BytesStreamOutput(); before.writeTo(out); diff --git a/server/src/test/java/org/elasticsearch/index/replication/IndexLevelReplicationTests.java b/server/src/test/java/org/elasticsearch/index/replication/IndexLevelReplicationTests.java index 736dc40e686..018548be962 100644 --- a/server/src/test/java/org/elasticsearch/index/replication/IndexLevelReplicationTests.java +++ b/server/src/test/java/org/elasticsearch/index/replication/IndexLevelReplicationTests.java @@ -340,9 +340,10 @@ public class IndexLevelReplicationTests extends ESIndexLevelReplicationTestCase op1 = snapshot.next(); assertThat(op1, notNullValue()); assertThat(snapshot.next(), nullValue()); - assertThat(snapshot.overriddenOperations(), equalTo(0)); + assertThat(snapshot.skippedOperations(), equalTo(0)); } - // Make sure that replica2 receives translog ops (eg. op2) from replica1 and overwrites its stale operation (op1). + // Make sure that replica2 receives translog ops (eg. op2) from replica1 + // and does not overwrite its stale operation (op1) as it is trimmed. logger.info("--> Promote replica1 as the primary"); shards.promoteReplicaToPrimary(replica1).get(); // wait until resync completed. shards.index(new IndexRequest(index.getName(), "type", "d2").source("{}", XContentType.JSON)); @@ -353,7 +354,8 @@ public class IndexLevelReplicationTests extends ESIndexLevelReplicationTestCase assertThat(op2.seqNo(), equalTo(op1.seqNo())); assertThat(op2.primaryTerm(), greaterThan(op1.primaryTerm())); assertThat("Remaining of snapshot should contain init operations", snapshot, containsOperationsInAnyOrder(initOperations)); - assertThat(snapshot.overriddenOperations(), equalTo(1)); + assertThat(snapshot.overriddenOperations(), equalTo(0)); + assertThat(snapshot.skippedOperations(), equalTo(1)); } // Make sure that peer-recovery transfers all but non-overridden operations. @@ -366,7 +368,7 @@ public class IndexLevelReplicationTests extends ESIndexLevelReplicationTestCase assertThat(snapshot.totalOperations(), equalTo(initDocs + 1)); assertThat(snapshot.next(), equalTo(op2)); assertThat("Remaining of snapshot should contain init operations", snapshot, containsOperationsInAnyOrder(initOperations)); - assertThat("Peer-recovery should not send overridden operations", snapshot.overriddenOperations(), equalTo(0)); + assertThat("Peer-recovery should not send overridden operations", snapshot.skippedOperations(), equalTo(0)); } // TODO: We should assert the content of shards in the ReplicationGroup. // Without rollback replicas(current implementation), we don't have the same content across shards: diff --git a/server/src/test/java/org/elasticsearch/index/replication/RecoveryDuringReplicationTests.java b/server/src/test/java/org/elasticsearch/index/replication/RecoveryDuringReplicationTests.java index 21be1da3845..ee97ba14fe0 100644 --- a/server/src/test/java/org/elasticsearch/index/replication/RecoveryDuringReplicationTests.java +++ b/server/src/test/java/org/elasticsearch/index/replication/RecoveryDuringReplicationTests.java @@ -53,8 +53,12 @@ import org.elasticsearch.test.junit.annotations.TestLogging; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.EnumSet; +import java.util.HashSet; import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicBoolean; @@ -65,6 +69,7 @@ import static org.hamcrest.Matchers.both; import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.greaterThanOrEqualTo; +import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.lessThan; import static org.hamcrest.Matchers.lessThanOrEqualTo; import static org.hamcrest.Matchers.not; @@ -353,10 +358,19 @@ public class RecoveryDuringReplicationTests extends ESIndexLevelReplicationTestC @TestLogging("org.elasticsearch.index.shard:TRACE,org.elasticsearch.action.resync:TRACE") public void testResyncAfterPrimaryPromotion() throws Exception { - // TODO: check translog trimming functionality once it's implemented - try (ReplicationGroup shards = createGroup(2)) { + // TODO: check translog trimming functionality once rollback is implemented in Lucene (ES trimming is done) + Map mappings = + Collections.singletonMap("type", "{ \"type\": { \"properties\": { \"f\": { \"type\": \"keyword\"} }}}"); + try (ReplicationGroup shards = new ReplicationGroup(buildIndexMetaData(2, mappings))) { shards.startAll(); - int initialDocs = shards.indexDocs(randomInt(10)); + int initialDocs = randomInt(10); + + for (int i = 0; i < initialDocs; i++) { + final IndexRequest indexRequest = new IndexRequest(index.getName(), "type", "initial_doc_" + i) + .source("{ \"f\": \"normal\"}", XContentType.JSON); + shards.index(indexRequest); + } + boolean syncedGlobalCheckPoint = randomBoolean(); if (syncedGlobalCheckPoint) { shards.syncGlobalCheckpoint(); @@ -364,16 +378,30 @@ public class RecoveryDuringReplicationTests extends ESIndexLevelReplicationTestC final IndexShard oldPrimary = shards.getPrimary(); final IndexShard newPrimary = shards.getReplicas().get(0); + final IndexShard justReplica = shards.getReplicas().get(1); // simulate docs that were inflight when primary failed - final int extraDocs = randomIntBetween(0, 5); + final int extraDocs = randomInt(5); logger.info("--> indexing {} extra docs", extraDocs); for (int i = 0; i < extraDocs; i++) { - final IndexRequest indexRequest = new IndexRequest(index.getName(), "type", "extra_" + i) - .source("{}", XContentType.JSON); + final IndexRequest indexRequest = new IndexRequest(index.getName(), "type", "extra_doc_" + i) + .source("{ \"f\": \"normal\"}", XContentType.JSON); final BulkShardRequest bulkShardRequest = indexOnPrimary(indexRequest, oldPrimary); indexOnReplica(bulkShardRequest, shards, newPrimary); } + + final int extraDocsToBeTrimmed = randomIntBetween(0, 10); + logger.info("--> indexing {} extra docs to be trimmed", extraDocsToBeTrimmed); + for (int i = 0; i < extraDocsToBeTrimmed; i++) { + final IndexRequest indexRequest = new IndexRequest(index.getName(), "type", "extra_trimmed_" + i) + .source("{ \"f\": \"trimmed\"}", XContentType.JSON); + final BulkShardRequest bulkShardRequest = indexOnPrimary(indexRequest, oldPrimary); + // have to replicate to another replica != newPrimary one - the subject to trim + indexOnReplica(bulkShardRequest, shards, justReplica); + } + + logger.info("--> seqNo primary {} replica {}", oldPrimary.seqNoStats(), newPrimary.seqNoStats()); + logger.info("--> resyncing replicas"); PrimaryReplicaSyncer.ResyncTask task = shards.promoteReplicaToPrimary(newPrimary).get(); if (syncedGlobalCheckPoint) { @@ -381,7 +409,36 @@ public class RecoveryDuringReplicationTests extends ESIndexLevelReplicationTestC } else { assertThat(task.getResyncedOperations(), greaterThanOrEqualTo(extraDocs)); } - shards.assertAllEqual(initialDocs + extraDocs); + List replicas = shards.getReplicas(); + + // check all docs on primary are available on replica + Set primaryIds = getShardDocUIDs(newPrimary); + assertThat(primaryIds.size(), equalTo(initialDocs + extraDocs)); + for (IndexShard replica : replicas) { + Set replicaIds = getShardDocUIDs(replica); + Set temp = new HashSet<>(primaryIds); + temp.removeAll(replicaIds); + assertThat(replica.routingEntry() + " is missing docs", temp, empty()); + temp = new HashSet<>(replicaIds); + temp.removeAll(primaryIds); + // yeah, replica has more docs as there is no Lucene roll back on it + assertThat(replica.routingEntry() + " has to have extra docs", temp, + extraDocsToBeTrimmed > 0 ? not(empty()) : empty()); + } + + // check translog on replica is trimmed + int translogOperations = 0; + try(Translog.Snapshot snapshot = getTranslog(justReplica).newSnapshot()) { + Translog.Operation next; + while ((next = snapshot.next()) != null) { + translogOperations++; + assertThat("unexpected op: " + next, (int)next.seqNo(), lessThan(initialDocs + extraDocs)); + assertThat("unexpected primaryTerm: " + next.primaryTerm(), next.primaryTerm(), is(oldPrimary.getPrimaryTerm())); + final Translog.Source source = next.getSource(); + assertThat(source.source.utf8ToString(), is("{ \"f\": \"normal\"}")); + } + } + assertThat(translogOperations, is(initialDocs + extraDocs)); } } diff --git a/server/src/test/java/org/elasticsearch/index/shard/PrimaryReplicaSyncerTests.java b/server/src/test/java/org/elasticsearch/index/shard/PrimaryReplicaSyncerTests.java index 1257aea3d14..b290f4d4559 100644 --- a/server/src/test/java/org/elasticsearch/index/shard/PrimaryReplicaSyncerTests.java +++ b/server/src/test/java/org/elasticsearch/index/shard/PrimaryReplicaSyncerTests.java @@ -20,6 +20,7 @@ package org.elasticsearch.index.shard; import org.apache.lucene.store.AlreadyClosedException; import org.elasticsearch.action.index.IndexRequest; +import org.elasticsearch.action.resync.ResyncReplicationRequest; import org.elasticsearch.action.resync.ResyncReplicationResponse; import org.elasticsearch.action.support.PlainActionFuture; import org.elasticsearch.cluster.routing.IndexShardRoutingTable; @@ -36,15 +37,20 @@ import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.VersionType; import org.elasticsearch.index.mapper.SourceToParse; +import org.elasticsearch.index.seqno.SequenceNumbers; import org.elasticsearch.tasks.TaskManager; import java.io.IOException; import java.nio.ByteBuffer; +import java.util.ArrayList; import java.util.Collections; +import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicBoolean; import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.is; import static org.hamcrest.core.IsInstanceOf.instanceOf; public class PrimaryReplicaSyncerTests extends IndexShardTestCase { @@ -53,15 +59,17 @@ public class PrimaryReplicaSyncerTests extends IndexShardTestCase { IndexShard shard = newStartedShard(true); TaskManager taskManager = new TaskManager(Settings.EMPTY, threadPool, Collections.emptySet()); AtomicBoolean syncActionCalled = new AtomicBoolean(); + List resyncRequests = new ArrayList<>(); PrimaryReplicaSyncer.SyncAction syncAction = (request, parentTask, allocationId, primaryTerm, listener) -> { logger.info("Sending off {} operations", request.getOperations().length); syncActionCalled.set(true); + resyncRequests.add(request); assertThat(parentTask, instanceOf(PrimaryReplicaSyncer.ResyncTask.class)); listener.onResponse(new ResyncReplicationResponse()); }; PrimaryReplicaSyncer syncer = new PrimaryReplicaSyncer(Settings.EMPTY, taskManager, syncAction); - syncer.setChunkSize(new ByteSizeValue(randomIntBetween(1, 100))); + syncer.setChunkSize(new ByteSizeValue(randomIntBetween(1, 10))); int numDocs = randomInt(10); for (int i = 0; i < numDocs; i++) { @@ -72,7 +80,7 @@ public class PrimaryReplicaSyncerTests extends IndexShardTestCase { } long globalCheckPoint = numDocs > 0 ? randomIntBetween(0, numDocs - 1) : 0; - boolean syncNeeded = numDocs > 0 && globalCheckPoint < numDocs - 1; + boolean syncNeeded = numDocs > 0; String allocationId = shard.routingEntry().allocationId().getId(); shard.updateShardState(shard.routingEntry(), shard.getPrimaryTerm(), null, 1000L, Collections.singleton(allocationId), @@ -84,19 +92,29 @@ public class PrimaryReplicaSyncerTests extends IndexShardTestCase { PlainActionFuture fut = new PlainActionFuture<>(); syncer.resync(shard, fut); - fut.get(); + PrimaryReplicaSyncer.ResyncTask resyncTask = fut.get(); if (syncNeeded) { assertTrue("Sync action was not called", syncActionCalled.get()); + ResyncReplicationRequest resyncRequest = resyncRequests.remove(0); + assertThat(resyncRequest.getTrimAboveSeqNo(), equalTo(numDocs - 1L)); + + assertThat("trimAboveSeqNo has to be specified in request #0 only", resyncRequests.stream() + .mapToLong(ResyncReplicationRequest::getTrimAboveSeqNo) + .filter(seqNo -> seqNo != SequenceNumbers.UNASSIGNED_SEQ_NO) + .findFirst() + .isPresent(), + is(false)); } - assertEquals(globalCheckPoint == numDocs - 1 ? 0 : numDocs, fut.get().getTotalOperations()); - if (syncNeeded) { + + assertEquals(globalCheckPoint == numDocs - 1 ? 0 : numDocs, resyncTask.getTotalOperations()); + if (syncNeeded && globalCheckPoint < numDocs - 1) { long skippedOps = globalCheckPoint + 1; // everything up to global checkpoint included - assertEquals(skippedOps, fut.get().getSkippedOperations()); - assertEquals(numDocs - skippedOps, fut.get().getResyncedOperations()); + assertEquals(skippedOps, resyncTask.getSkippedOperations()); + assertEquals(numDocs - skippedOps, resyncTask.getResyncedOperations()); } else { - assertEquals(0, fut.get().getSkippedOperations()); - assertEquals(0, fut.get().getResyncedOperations()); + assertEquals(0, resyncTask.getSkippedOperations()); + assertEquals(0, resyncTask.getResyncedOperations()); } closeShards(shard); diff --git a/server/src/test/java/org/elasticsearch/index/translog/TranslogHeaderTests.java b/server/src/test/java/org/elasticsearch/index/translog/TranslogHeaderTests.java index 0dc404767de..99e21d47604 100644 --- a/server/src/test/java/org/elasticsearch/index/translog/TranslogHeaderTests.java +++ b/server/src/test/java/org/elasticsearch/index/translog/TranslogHeaderTests.java @@ -118,7 +118,8 @@ public class TranslogHeaderTests extends ESTestCase { assertThat("test file [" + translogFile + "] should exist", Files.exists(translogFile), equalTo(true)); final E error = expectThrows(expectedErrorType, () -> { final Checkpoint checkpoint = new Checkpoint(Files.size(translogFile), 1, 1, - SequenceNumbers.NO_OPS_PERFORMED, SequenceNumbers.NO_OPS_PERFORMED, SequenceNumbers.NO_OPS_PERFORMED, 1); + SequenceNumbers.NO_OPS_PERFORMED, SequenceNumbers.NO_OPS_PERFORMED, + SequenceNumbers.NO_OPS_PERFORMED, 1, SequenceNumbers.NO_OPS_PERFORMED); try (FileChannel channel = FileChannel.open(translogFile, StandardOpenOption.READ)) { TranslogReader.open(channel, translogFile, checkpoint, null); } diff --git a/server/src/test/java/org/elasticsearch/index/translog/TranslogTests.java b/server/src/test/java/org/elasticsearch/index/translog/TranslogTests.java index b3b9fca886e..cf6e7536846 100644 --- a/server/src/test/java/org/elasticsearch/index/translog/TranslogTests.java +++ b/server/src/test/java/org/elasticsearch/index/translog/TranslogTests.java @@ -107,7 +107,9 @@ import java.util.concurrent.CyclicBarrier; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; +import java.util.stream.IntStream; import java.util.stream.LongStream; import java.util.stream.Stream; @@ -120,8 +122,11 @@ import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.Matchers.greaterThanOrEqualTo; import static org.hamcrest.Matchers.hasToString; +import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.isIn; import static org.hamcrest.Matchers.lessThanOrEqualTo; +import static org.hamcrest.Matchers.not; +import static org.hamcrest.Matchers.nullValue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.stub; @@ -1474,8 +1479,8 @@ public class TranslogTests extends ESTestCase { fail("corrupted"); } catch (IllegalStateException ex) { assertEquals("Checkpoint file translog-3.ckp already exists but has corrupted content expected: Checkpoint{offset=3080, " + - "numOps=55, generation=3, minSeqNo=45, maxSeqNo=99, globalCheckpoint=-1, minTranslogGeneration=1} but got: Checkpoint{offset=0, numOps=0, " + - "generation=0, minSeqNo=-1, maxSeqNo=-1, globalCheckpoint=-1, minTranslogGeneration=0}", ex.getMessage()); + "numOps=55, generation=3, minSeqNo=45, maxSeqNo=99, globalCheckpoint=-1, minTranslogGeneration=1, trimmedAboveSeqNo=-2} but got: Checkpoint{offset=0, numOps=0, " + + "generation=0, minSeqNo=-1, maxSeqNo=-1, globalCheckpoint=-1, minTranslogGeneration=0, trimmedAboveSeqNo=-2}", ex.getMessage()); } Checkpoint.write(FileChannel::open, config.getTranslogPath().resolve(Translog.getCommitCheckpointFileName(read.generation)), read, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING); try (Translog translog = new Translog(config, translogUUID, deletionPolicy, () -> SequenceNumbers.NO_OPS_PERFORMED, primaryTerm::get)) { @@ -1507,6 +1512,191 @@ public class TranslogTests extends ESTestCase { assertEquals(ops, readOperations); } + public void testSnapshotCurrentHasUnexpectedOperationsForTrimmedOperations() throws Exception { + int extraDocs = randomIntBetween(10, 15); + + // increment primaryTerm to avoid potential negative numbers + primaryTerm.addAndGet(extraDocs); + translog.rollGeneration(); + + for (int op = 0; op < extraDocs; op++) { + String ascii = randomAlphaOfLengthBetween(1, 50); + Translog.Index operation = new Translog.Index("test", "" + op, op, primaryTerm.get() - op, + ascii.getBytes("UTF-8")); + translog.add(operation); + } + + AssertionError error = expectThrows(AssertionError.class, () -> translog.trimOperations(primaryTerm.get(), 0)); + assertThat(error.getMessage(), is("current should not have any operations with seq#:primaryTerm " + + "[1:" + (primaryTerm.get() - 1) + "] > 0:" + primaryTerm.get())); + + primaryTerm.incrementAndGet(); + translog.rollGeneration(); + + // add a single operation to current with seq# > trimmed seq# but higher primary term + Translog.Index operation = new Translog.Index("test", "" + 1, 1L, primaryTerm.get(), + randomAlphaOfLengthBetween(1, 50).getBytes("UTF-8")); + translog.add(operation); + + // it is possible to trim after generation rollover + translog.trimOperations(primaryTerm.get(), 0); + } + + public void testSnapshotTrimmedOperations() throws Exception { + final InMemoryTranslog inMemoryTranslog = new InMemoryTranslog(); + final List allOperations = new ArrayList<>(); + + for(int attempt = 0, maxAttempts = randomIntBetween(3, 10); attempt < maxAttempts; attempt++) { + List ops = LongStream.range(0, allOperations.size() + randomIntBetween(10, 15)) + .boxed().collect(Collectors.toList()); + Randomness.shuffle(ops); + + AtomicReference source = new AtomicReference<>(); + for (final long op : ops) { + source.set(randomAlphaOfLengthBetween(1, 50)); + + // have to use exactly the same source for same seq# if primaryTerm is not changed + if (primaryTerm.get() == translog.getCurrent().getPrimaryTerm()) { + // use the latest source of op with the same seq# - therefore no break + allOperations + .stream() + .filter(allOp -> allOp instanceof Translog.Index && allOp.seqNo() == op) + .map(allOp -> ((Translog.Index)allOp).source().utf8ToString()) + .reduce((a, b) -> b) + .ifPresent(source::set); + } + + // use ongoing primaryTerms - or the same as it was + Translog.Index operation = new Translog.Index("test", "" + op, op, primaryTerm.get(), + source.get().getBytes("UTF-8")); + translog.add(operation); + inMemoryTranslog.add(operation); + allOperations.add(operation); + } + + if (randomBoolean()) { + primaryTerm.incrementAndGet(); + translog.rollGeneration(); + } + + long maxTrimmedSeqNo = randomInt(allOperations.size()); + + translog.trimOperations(primaryTerm.get(), maxTrimmedSeqNo); + inMemoryTranslog.trimOperations(primaryTerm.get(), maxTrimmedSeqNo); + translog.sync(); + + Collection effectiveOperations = inMemoryTranslog.operations(); + + try (Translog.Snapshot snapshot = translog.newSnapshot()) { + assertThat(snapshot, containsOperationsInAnyOrder(effectiveOperations)); + assertThat(snapshot.totalOperations(), is(allOperations.size())); + assertThat(snapshot.skippedOperations(), is(allOperations.size() - effectiveOperations.size())); + } + } + } + + /** + * this class mimic behaviour of original {@link Translog} + */ + static class InMemoryTranslog { + private final Map operations = new HashMap<>(); + + void add(Translog.Operation operation) { + final Translog.Operation old = operations.put(operation.seqNo(), operation); + assert old == null || old.primaryTerm() <= operation.primaryTerm(); + } + + void trimOperations(long belowTerm, long aboveSeqNo) { + for (final Iterator> it = operations.entrySet().iterator(); it.hasNext(); ) { + final Map.Entry next = it.next(); + Translog.Operation op = next.getValue(); + boolean drop = op.primaryTerm() < belowTerm && op.seqNo() > aboveSeqNo; + if (drop) { + it.remove(); + } + } + } + + Collection operations() { + return operations.values(); + } + } + + public void testRandomExceptionsOnTrimOperations( ) throws Exception { + Path tempDir = createTempDir(); + final FailSwitch fail = new FailSwitch(); + fail.failNever(); + TranslogConfig config = getTranslogConfig(tempDir); + List fileChannels = new ArrayList<>(); + final Translog failableTLog = + getFailableTranslog(fail, config, randomBoolean(), false, null, createTranslogDeletionPolicy(), fileChannels); + + IOException expectedException = null; + int translogOperations = 0; + final int maxAttempts = 10; + for(int attempt = 0; attempt < maxAttempts; attempt++) { + int maxTrimmedSeqNo; + fail.failNever(); + int extraTranslogOperations = randomIntBetween(10, 100); + + List ops = IntStream.range(translogOperations, translogOperations + extraTranslogOperations) + .boxed().collect(Collectors.toList()); + Randomness.shuffle(ops); + for (int op : ops) { + String ascii = randomAlphaOfLengthBetween(1, 50); + Translog.Index operation = new Translog.Index("test", "" + op, op, + primaryTerm.get(), ascii.getBytes("UTF-8")); + + failableTLog.add(operation); + } + + translogOperations += extraTranslogOperations; + + // at least one roll + inc of primary term has to be there - otherwise trim would not take place at all + // last attempt we have to make roll as well - otherwise could skip trimming as it has been trimmed already + boolean rollover = attempt == 0 || attempt == maxAttempts - 1 || randomBoolean(); + if (rollover) { + primaryTerm.incrementAndGet(); + failableTLog.rollGeneration(); + } + + maxTrimmedSeqNo = rollover ? translogOperations - randomIntBetween(4, 8) : translogOperations + 1; + + // if we are so happy to reach the max attempts - fail it always` + fail.failRate(attempt < maxAttempts - 1 ? 25 : 100); + try { + failableTLog.trimOperations(primaryTerm.get(), maxTrimmedSeqNo); + } catch (IOException e){ + expectedException = e; + break; + } + } + + assertThat(expectedException, is(not(nullValue()))); + + assertThat(fileChannels, is(not(empty()))); + assertThat("all file channels have to be closed", + fileChannels.stream().filter(f -> f.isOpen()).findFirst().isPresent(), is(false)); + + assertThat(failableTLog.isOpen(), is(false)); + final AlreadyClosedException alreadyClosedException = expectThrows(AlreadyClosedException.class, () -> failableTLog.newSnapshot()); + assertThat(alreadyClosedException.getMessage(), + is("translog is already closed")); + + fail.failNever(); + + // check that despite of IO exception translog is not corrupted + try(Translog reopenedTranslog = openTranslog(config, failableTLog.getTranslogUUID())) { + try (Translog.Snapshot snapshot = reopenedTranslog.newSnapshot()) { + assertThat(snapshot.totalOperations(), greaterThan(0)); + Translog.Operation operation; + for (int i = 0; (operation = snapshot.next()) != null; i++) { + assertNotNull("operation " + i + " must be non-null", operation); + } + } + } + } + public void testLocationHashCodeEquals() throws IOException { List locations = new ArrayList<>(); List locations2 = new ArrayList<>(); @@ -2007,7 +2197,8 @@ public class TranslogTests extends ESTestCase { private volatile boolean onceFailedFailAlways = false; public boolean fail() { - boolean fail = randomIntBetween(1, 100) <= failRate; + final int rnd = randomIntBetween(1, 100); + boolean fail = rnd <= failRate; if (fail && onceFailedFailAlways) { failAlways(); } @@ -2026,17 +2217,30 @@ public class TranslogTests extends ESTestCase { failRate = randomIntBetween(1, 100); } + public void failRate(int rate) { + failRate = rate; + } + public void onceFailedFailAlways() { onceFailedFailAlways = true; } } - private Translog getFailableTranslog(final FailSwitch fail, final TranslogConfig config, final boolean partialWrites, final boolean throwUnknownException, String translogUUID, final TranslogDeletionPolicy deletionPolicy) throws IOException { + return getFailableTranslog(fail, config, partialWrites, throwUnknownException, translogUUID, deletionPolicy, null); + } + + private Translog getFailableTranslog(final FailSwitch fail, final TranslogConfig config, final boolean partialWrites, + final boolean throwUnknownException, String translogUUID, + final TranslogDeletionPolicy deletionPolicy, + final List fileChannels) throws IOException { final ChannelFactory channelFactory = (file, openOption) -> { FileChannel channel = FileChannel.open(file, openOption); + if (fileChannels != null) { + fileChannels.add(channel); + } boolean success = false; try { final boolean isCkpFile = file.getFileName().toString().endsWith(".ckp"); // don't do partial writes for checkpoints we rely on the fact that the bytes are written as an atomic operation @@ -2393,7 +2597,7 @@ public class TranslogTests extends ESTestCase { } final long generation = randomNonNegativeLong(); return new Checkpoint(randomLong(), randomInt(), generation, minSeqNo, maxSeqNo, randomNonNegativeLong(), - randomLongBetween(1, generation)); + randomLongBetween(1, generation), maxSeqNo); } public void testCheckpointOnDiskFull() throws IOException { @@ -2617,7 +2821,7 @@ public class TranslogTests extends ESTestCase { assertThat(Tuple.tuple(op.seqNo(), op.primaryTerm()), isIn(seenSeqNos)); readFromSnapshot++; } - readFromSnapshot += snapshot.overriddenOperations(); + readFromSnapshot += snapshot.skippedOperations(); } assertThat(readFromSnapshot, equalTo(expectedSnapshotOps)); final long seqNoLowerBound = seqNo; From 2378fa19b8cf31399434815d067765917825924a Mon Sep 17 00:00:00 2001 From: Julie Tibshirani Date: Fri, 8 Jun 2018 09:23:46 -0700 Subject: [PATCH 43/62] Remove extraneous references to 'tokenized' in the mapper code. (#31010) These are likely left over from when there were three options for the index mapping ('no', 'analyzed', 'not_analyzed'). --- .../index/mapper/BooleanFieldMapper.java | 8 -------- .../elasticsearch/index/mapper/FieldMapper.java | 15 ++------------- .../index/mapper/MappedFieldType.java | 2 +- .../index/mapper/MultiFieldTests.java | 2 +- 4 files changed, 4 insertions(+), 23 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/index/mapper/BooleanFieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/BooleanFieldMapper.java index 52b9a0d46e5..c50a7d18113 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/BooleanFieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/BooleanFieldMapper.java @@ -84,14 +84,6 @@ public class BooleanFieldMapper extends FieldMapper { this.builder = this; } - @Override - public Builder tokenized(boolean tokenized) { - if (tokenized) { - throw new IllegalArgumentException("bool field can't be tokenized"); - } - return super.tokenized(tokenized); - } - @Override public BooleanFieldMapper build(BuilderContext context) { setupFieldType(context); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java b/server/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java index f23a8d0ce96..977b930c41e 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/FieldMapper.java @@ -147,11 +147,6 @@ public abstract class FieldMapper extends Mapper implements Cloneable { return builder; } - public T tokenized(boolean tokenized) { - this.fieldType.setTokenized(tokenized); - return builder; - } - public T boost(float boost) { this.fieldType.setBoost(boost); return builder; @@ -376,9 +371,8 @@ public abstract class FieldMapper extends Mapper implements Cloneable { boolean indexed = fieldType().indexOptions() != IndexOptions.NONE; boolean defaultIndexed = defaultFieldType.indexOptions() != IndexOptions.NONE; - if (includeDefaults || indexed != defaultIndexed || - fieldType().tokenized() != defaultFieldType.tokenized()) { - builder.field("index", indexTokenizeOption(indexed, fieldType().tokenized())); + if (includeDefaults || indexed != defaultIndexed) { + builder.field("index", indexed); } if (includeDefaults || fieldType().stored() != defaultFieldType.stored()) { builder.field("store", fieldType().stored()); @@ -474,11 +468,6 @@ public abstract class FieldMapper extends Mapper implements Cloneable { } } - /* Only protected so that string can override it */ - protected Object indexTokenizeOption(boolean indexed, boolean tokenized) { - return indexed; - } - protected abstract String contentType(); public static class MultiFields { diff --git a/server/src/main/java/org/elasticsearch/index/mapper/MappedFieldType.java b/server/src/main/java/org/elasticsearch/index/mapper/MappedFieldType.java index 71450e69948..24f27aa9ea7 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/MappedFieldType.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/MappedFieldType.java @@ -165,7 +165,7 @@ public abstract class MappedFieldType extends FieldType { boolean indexed = indexOptions() != IndexOptions.NONE; boolean mergeWithIndexed = other.indexOptions() != IndexOptions.NONE; // TODO: should be validating if index options go "up" (but "down" is ok) - if (indexed != mergeWithIndexed || tokenized() != other.tokenized()) { + if (indexed != mergeWithIndexed) { conflicts.add("mapper [" + name() + "] has different [index] values"); } if (stored() != other.stored()) { diff --git a/server/src/test/java/org/elasticsearch/index/mapper/MultiFieldTests.java b/server/src/test/java/org/elasticsearch/index/mapper/MultiFieldTests.java index 0d5b4ca154a..45bb8090206 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/MultiFieldTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/MultiFieldTests.java @@ -122,7 +122,7 @@ public class MultiFieldTests extends ESSingleNodeTestCase { DocumentMapper builderDocMapper = new DocumentMapper.Builder(new RootObjectMapper.Builder("person").add( new TextFieldMapper.Builder("name").store(true) - .addMultiField(new TextFieldMapper.Builder("indexed").index(true).tokenized(true)) + .addMultiField(new TextFieldMapper.Builder("indexed").index(true)) .addMultiField(new TextFieldMapper.Builder("not_indexed").index(false).store(true)) ), indexService.mapperService()).build(indexService.mapperService()); From 8f607071b6e34990d4e42f235d014d02cd680e8b Mon Sep 17 00:00:00 2001 From: Julie Tibshirani Date: Fri, 8 Jun 2018 09:24:09 -0700 Subject: [PATCH 44/62] Remove DocumentFieldMappers#smartNameFieldMapper, as it is no longer needed. (#31018) --- .../index/mapper/TokenCountFieldMapperTests.java | 4 ++-- .../get/TransportGetFieldMappingsIndexAction.java | 2 +- .../elasticsearch/index/get/ShardGetService.java | 2 +- .../index/mapper/DocumentFieldMappers.java | 13 ------------- .../index/search/QueryParserHelper.java | 2 +- .../index/mapper/BinaryFieldMapperTests.java | 4 ++-- .../index/mapper/DocumentMapperMergeTests.java | 8 ++++---- .../index/mapper/DoubleIndexingDocTests.java | 14 +++++++------- .../index/mapper/DynamicMappingTests.java | 14 +++++++------- .../index/mapper/DynamicTemplatesTests.java | 8 ++++---- 10 files changed, 29 insertions(+), 42 deletions(-) diff --git a/modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/TokenCountFieldMapperTests.java b/modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/TokenCountFieldMapperTests.java index e906f5755de..34ad1934a3e 100644 --- a/modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/TokenCountFieldMapperTests.java +++ b/modules/mapper-extras/src/test/java/org/elasticsearch/index/mapper/TokenCountFieldMapperTests.java @@ -79,9 +79,9 @@ public class TokenCountFieldMapperTests extends ESSingleNodeTestCase { new CompressedXContent(stage2Mapping), MapperService.MergeReason.MAPPING_UPDATE); // previous mapper has not been modified - assertThat(((TokenCountFieldMapper) stage1.mappers().smartNameFieldMapper("tc")).analyzer(), equalTo("keyword")); + assertThat(((TokenCountFieldMapper) stage1.mappers().getMapper("tc")).analyzer(), equalTo("keyword")); // but the new one has the change - assertThat(((TokenCountFieldMapper) stage2.mappers().smartNameFieldMapper("tc")).analyzer(), equalTo("standard")); + assertThat(((TokenCountFieldMapper) stage2.mappers().getMapper("tc")).analyzer(), equalTo("standard")); } /** diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/mapping/get/TransportGetFieldMappingsIndexAction.java b/server/src/main/java/org/elasticsearch/action/admin/indices/mapping/get/TransportGetFieldMappingsIndexAction.java index 54079592224..07ae513351e 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/mapping/get/TransportGetFieldMappingsIndexAction.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/mapping/get/TransportGetFieldMappingsIndexAction.java @@ -186,7 +186,7 @@ public class TransportGetFieldMappingsIndexAction extends TransportSingleShardAc } } else { // not a pattern - FieldMapper fieldMapper = allFieldMappers.smartNameFieldMapper(field); + FieldMapper fieldMapper = allFieldMappers.getMapper(field); if (fieldMapper != null) { addFieldMapper(fieldPredicate, field, fieldMapper, fieldMappings, request.includeDefaults()); } else if (request.probablySingleFieldRequest()) { diff --git a/server/src/main/java/org/elasticsearch/index/get/ShardGetService.java b/server/src/main/java/org/elasticsearch/index/get/ShardGetService.java index 13f6e58cd79..a759f6a6767 100644 --- a/server/src/main/java/org/elasticsearch/index/get/ShardGetService.java +++ b/server/src/main/java/org/elasticsearch/index/get/ShardGetService.java @@ -202,7 +202,7 @@ public final class ShardGetService extends AbstractIndexShardComponent { if (gFields != null && gFields.length > 0) { for (String field : gFields) { - FieldMapper fieldMapper = docMapper.mappers().smartNameFieldMapper(field); + FieldMapper fieldMapper = docMapper.mappers().getMapper(field); if (fieldMapper == null) { if (docMapper.objectMappers().get(field) != null) { // Only fail if we know it is a object field, missing paths / fields shouldn't fail. diff --git a/server/src/main/java/org/elasticsearch/index/mapper/DocumentFieldMappers.java b/server/src/main/java/org/elasticsearch/index/mapper/DocumentFieldMappers.java index 2a19cb3f8bd..ea242aca68f 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/DocumentFieldMappers.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/DocumentFieldMappers.java @@ -80,19 +80,6 @@ public final class DocumentFieldMappers implements Iterable { return fields; } - public FieldMapper smartNameFieldMapper(String name) { - FieldMapper fieldMapper = getMapper(name); - if (fieldMapper != null) { - return fieldMapper; - } - for (FieldMapper otherFieldMapper : this) { - if (otherFieldMapper.fieldType().name().equals(name)) { - return otherFieldMapper; - } - } - return null; - } - /** * A smart analyzer used for indexing that takes into account specific analyzers configured * per {@link FieldMapper}. diff --git a/server/src/main/java/org/elasticsearch/index/search/QueryParserHelper.java b/server/src/main/java/org/elasticsearch/index/search/QueryParserHelper.java index c3a695beff0..b3751afbc9c 100644 --- a/server/src/main/java/org/elasticsearch/index/search/QueryParserHelper.java +++ b/server/src/main/java/org/elasticsearch/index/search/QueryParserHelper.java @@ -91,7 +91,7 @@ public final class QueryParserHelper { public static FieldMapper getFieldMapper(MapperService mapperService, String field) { DocumentMapper mapper = mapperService.documentMapper(); if (mapper != null) { - FieldMapper fieldMapper = mapper.mappers().smartNameFieldMapper(field); + FieldMapper fieldMapper = mapper.mappers().getMapper(field); if (fieldMapper != null) { return fieldMapper; } diff --git a/server/src/test/java/org/elasticsearch/index/mapper/BinaryFieldMapperTests.java b/server/src/test/java/org/elasticsearch/index/mapper/BinaryFieldMapperTests.java index e4cd5731daa..6e9cb6c0b59 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/BinaryFieldMapperTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/BinaryFieldMapperTests.java @@ -59,7 +59,7 @@ public class BinaryFieldMapperTests extends ESSingleNodeTestCase { DocumentMapper mapper = createIndex("test").mapperService().documentMapperParser().parse("type", new CompressedXContent(mapping)); - FieldMapper fieldMapper = mapper.mappers().smartNameFieldMapper("field"); + FieldMapper fieldMapper = mapper.mappers().getMapper("field"); assertThat(fieldMapper, instanceOf(BinaryFieldMapper.class)); assertThat(fieldMapper.fieldType().stored(), equalTo(false)); } @@ -94,7 +94,7 @@ public class BinaryFieldMapperTests extends ESSingleNodeTestCase { XContentType.JSON)); BytesRef indexedValue = doc.rootDoc().getBinaryValue("field"); assertEquals(new BytesRef(value), indexedValue); - FieldMapper fieldMapper = mapper.mappers().smartNameFieldMapper("field"); + FieldMapper fieldMapper = mapper.mappers().getMapper("field"); Object originalValue = fieldMapper.fieldType().valueForDisplay(indexedValue); assertEquals(new BytesArray(value), originalValue); } diff --git a/server/src/test/java/org/elasticsearch/index/mapper/DocumentMapperMergeTests.java b/server/src/test/java/org/elasticsearch/index/mapper/DocumentMapperMergeTests.java index e69d48b7b44..0234fcb681d 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/DocumentMapperMergeTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/DocumentMapperMergeTests.java @@ -56,11 +56,11 @@ public class DocumentMapperMergeTests extends ESSingleNodeTestCase { DocumentMapper merged = stage1.merge(stage2.mapping()); // stage1 mapping should not have been modified - assertThat(stage1.mappers().smartNameFieldMapper("age"), nullValue()); - assertThat(stage1.mappers().smartNameFieldMapper("obj1.prop1"), nullValue()); + assertThat(stage1.mappers().getMapper("age"), nullValue()); + assertThat(stage1.mappers().getMapper("obj1.prop1"), nullValue()); // but merged should - assertThat(merged.mappers().smartNameFieldMapper("age"), notNullValue()); - assertThat(merged.mappers().smartNameFieldMapper("obj1.prop1"), notNullValue()); + assertThat(merged.mappers().getMapper("age"), notNullValue()); + assertThat(merged.mappers().getMapper("obj1.prop1"), notNullValue()); } public void testMergeObjectDynamic() throws Exception { diff --git a/server/src/test/java/org/elasticsearch/index/mapper/DoubleIndexingDocTests.java b/server/src/test/java/org/elasticsearch/index/mapper/DoubleIndexingDocTests.java index 6c83f31f93f..c5032090092 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/DoubleIndexingDocTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/DoubleIndexingDocTests.java @@ -69,25 +69,25 @@ public class DoubleIndexingDocTests extends ESSingleNodeTestCase { IndexReader reader = DirectoryReader.open(writer); IndexSearcher searcher = new IndexSearcher(reader); - TopDocs topDocs = searcher.search(mapper.mappers().smartNameFieldMapper("field1").fieldType().termQuery("value1", context), 10); + TopDocs topDocs = searcher.search(mapper.mappers().getMapper("field1").fieldType().termQuery("value1", context), 10); assertThat(topDocs.totalHits, equalTo(2L)); - topDocs = searcher.search(mapper.mappers().smartNameFieldMapper("field2").fieldType().termQuery("1", context), 10); + topDocs = searcher.search(mapper.mappers().getMapper("field2").fieldType().termQuery("1", context), 10); assertThat(topDocs.totalHits, equalTo(2L)); - topDocs = searcher.search(mapper.mappers().smartNameFieldMapper("field3").fieldType().termQuery("1.1", context), 10); + topDocs = searcher.search(mapper.mappers().getMapper("field3").fieldType().termQuery("1.1", context), 10); assertThat(topDocs.totalHits, equalTo(2L)); - topDocs = searcher.search(mapper.mappers().smartNameFieldMapper("field4").fieldType().termQuery("2010-01-01", context), 10); + topDocs = searcher.search(mapper.mappers().getMapper("field4").fieldType().termQuery("2010-01-01", context), 10); assertThat(topDocs.totalHits, equalTo(2L)); - topDocs = searcher.search(mapper.mappers().smartNameFieldMapper("field5").fieldType().termQuery("1", context), 10); + topDocs = searcher.search(mapper.mappers().getMapper("field5").fieldType().termQuery("1", context), 10); assertThat(topDocs.totalHits, equalTo(2L)); - topDocs = searcher.search(mapper.mappers().smartNameFieldMapper("field5").fieldType().termQuery("2", context), 10); + topDocs = searcher.search(mapper.mappers().getMapper("field5").fieldType().termQuery("2", context), 10); assertThat(topDocs.totalHits, equalTo(2L)); - topDocs = searcher.search(mapper.mappers().smartNameFieldMapper("field5").fieldType().termQuery("3", context), 10); + topDocs = searcher.search(mapper.mappers().getMapper("field5").fieldType().termQuery("3", context), 10); assertThat(topDocs.totalHits, equalTo(2L)); writer.close(); reader.close(); diff --git a/server/src/test/java/org/elasticsearch/index/mapper/DynamicMappingTests.java b/server/src/test/java/org/elasticsearch/index/mapper/DynamicMappingTests.java index 30923b5a655..0d7dde415aa 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/DynamicMappingTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/DynamicMappingTests.java @@ -625,10 +625,10 @@ public class DynamicMappingTests extends ESSingleNodeTestCase { .setSource(doc.dynamicMappingsUpdate().toString(), XContentType.JSON).get(); defaultMapper = index.mapperService().documentMapper("type"); - FieldMapper mapper = defaultMapper.mappers().smartNameFieldMapper("s_long"); + FieldMapper mapper = defaultMapper.mappers().getMapper("s_long"); assertThat(mapper.fieldType().typeName(), equalTo("long")); - mapper = defaultMapper.mappers().smartNameFieldMapper("s_double"); + mapper = defaultMapper.mappers().getMapper("s_double"); assertThat(mapper.fieldType().typeName(), equalTo("float")); } @@ -652,10 +652,10 @@ public class DynamicMappingTests extends ESSingleNodeTestCase { .setSource(doc.dynamicMappingsUpdate().toString(), XContentType.JSON).get()); defaultMapper = index.mapperService().documentMapper("type"); - FieldMapper mapper = defaultMapper.mappers().smartNameFieldMapper("s_long"); + FieldMapper mapper = defaultMapper.mappers().getMapper("s_long"); assertThat(mapper, instanceOf(TextFieldMapper.class)); - mapper = defaultMapper.mappers().smartNameFieldMapper("s_double"); + mapper = defaultMapper.mappers().getMapper("s_double"); assertThat(mapper, instanceOf(TextFieldMapper.class)); } @@ -703,9 +703,9 @@ public class DynamicMappingTests extends ESSingleNodeTestCase { defaultMapper = index.mapperService().documentMapper("type"); - DateFieldMapper dateMapper1 = (DateFieldMapper) defaultMapper.mappers().smartNameFieldMapper("date1"); - DateFieldMapper dateMapper2 = (DateFieldMapper) defaultMapper.mappers().smartNameFieldMapper("date2"); - DateFieldMapper dateMapper3 = (DateFieldMapper) defaultMapper.mappers().smartNameFieldMapper("date3"); + DateFieldMapper dateMapper1 = (DateFieldMapper) defaultMapper.mappers().getMapper("date1"); + DateFieldMapper dateMapper2 = (DateFieldMapper) defaultMapper.mappers().getMapper("date2"); + DateFieldMapper dateMapper3 = (DateFieldMapper) defaultMapper.mappers().getMapper("date3"); // inherited from dynamic date format assertEquals("yyyy-MM-dd", dateMapper1.fieldType().dateTimeFormatter().format()); // inherited from dynamic date format since the mapping in the template did not specify a format diff --git a/server/src/test/java/org/elasticsearch/index/mapper/DynamicTemplatesTests.java b/server/src/test/java/org/elasticsearch/index/mapper/DynamicTemplatesTests.java index 64927103e6d..d8e8c8e0e3d 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/DynamicTemplatesTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/DynamicTemplatesTests.java @@ -56,11 +56,11 @@ public class DynamicTemplatesTests extends ESSingleNodeTestCase { docMapper = index.mapperService().documentMapper("person"); DocumentFieldMappers mappers = docMapper.mappers(); - assertThat(mappers.smartNameFieldMapper("s"), Matchers.notNullValue()); - assertEquals(IndexOptions.NONE, mappers.smartNameFieldMapper("s").fieldType().indexOptions()); + assertThat(mappers.getMapper("s"), Matchers.notNullValue()); + assertEquals(IndexOptions.NONE, mappers.getMapper("s").fieldType().indexOptions()); - assertThat(mappers.smartNameFieldMapper("l"), Matchers.notNullValue()); - assertNotSame(IndexOptions.NONE, mappers.smartNameFieldMapper("l").fieldType().indexOptions()); + assertThat(mappers.getMapper("l"), Matchers.notNullValue()); + assertNotSame(IndexOptions.NONE, mappers.getMapper("l").fieldType().indexOptions()); } From b26aae3915e0402ab70504cdc4b8b1bb2b8f10ae Mon Sep 17 00:00:00 2001 From: Ioannis Kakavas Date: Fri, 8 Jun 2018 20:36:31 +0300 Subject: [PATCH 45/62] Compliant SAML Response destination check (#31175) Make SAML Response Destination check compliant Only validate the Destination element of an incoming SAML Response if Destination is present and the SAML Response is signed. The standard [1] - 3.5.5.2 and [2] - 3.2.2 does mention that the Destination element is optional and should only be verified when the SAML Response is signed. Some Identity Provider implementations are known to not set a Destination XML Attribute in their SAML responses when those are not signed, so this change also aims to enhance interoperability. [1] https://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf [2] https://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf --- .../authc/saml/SamlAuthenticator.java | 4 +- .../authc/saml/SamlAuthenticatorTests.java | 48 ++++++++++++++++++- 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/authc/saml/SamlAuthenticator.java b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/authc/saml/SamlAuthenticator.java index f8826bebcac..61e451150cd 100644 --- a/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/authc/saml/SamlAuthenticator.java +++ b/x-pack/plugin/security/src/main/java/org/elasticsearch/xpack/security/authc/saml/SamlAuthenticator.java @@ -159,8 +159,10 @@ class SamlAuthenticator extends SamlRequestHandler { private void checkResponseDestination(Response response) { final String asc = getSpConfiguration().getAscUrl(); if (asc.equals(response.getDestination()) == false) { - throw samlException("SAML response " + response.getID() + " is for destination " + response.getDestination() + if (response.isSigned() || Strings.hasText(response.getDestination())) { + throw samlException("SAML response " + response.getID() + " is for destination " + response.getDestination() + " but this realm uses " + asc); + } } } diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/saml/SamlAuthenticatorTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/saml/SamlAuthenticatorTests.java index 8bb9890151f..913258cf45c 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/saml/SamlAuthenticatorTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/saml/SamlAuthenticatorTests.java @@ -523,13 +523,59 @@ public class SamlAuthenticatorTests extends SamlTestCase { "" + "" + ""; - SamlToken token = token(signDoc(xml)); + SamlToken token = randomBoolean() ? token(signDoc(xml)) : token(signAssertions(xml, idpSigningCertificatePair)); final ElasticsearchSecurityException exception = expectSamlException(() -> authenticator.authenticate(token)); assertThat(exception.getMessage(), containsString("destination")); assertThat(exception.getCause(), nullValue()); assertThat(SamlUtils.isSamlException(exception), is(true)); } + public void testMissingDestinationIsNotRejectedForNotSignedResponse() throws Exception { + Instant now = clock.instant(); + Instant validUntil = now.plusSeconds(30); + String sessionindex = randomId(); + final String xml = "\n" + + "" + + "" + IDP_ENTITY_ID + "" + + "" + + "" + + "" + IDP_ENTITY_ID + "" + + "" + + "randomopaquestring" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + PASSWORD_AUTHN_CTX + "" + + "" + + "" + + "" + + "daredevil" + + "" + + "" + + ""; + SamlToken token = token(signAssertions(xml, idpSigningCertificatePair)); + final SamlAttributes attributes = authenticator.authenticate(token); + assertThat(attributes, notNullValue()); + assertThat(attributes.attributes(), iterableWithSize(1)); + final List uid = attributes.getAttributeValues("urn:oid:0.9.2342.19200300.100.1.1"); + assertThat(uid, contains("daredevil")); + assertThat(uid, iterableWithSize(1)); + assertThat(attributes.name(), notNullValue()); + assertThat(attributes.name().format, equalTo(TRANSIENT)); + } + public void testIncorrectRequestIdIsRejected() throws Exception { Instant now = clock.instant(); Instant validUntil = now.plusSeconds(30); From 12fa0f437a3ea5e26a9d2783fae54622ddea4826 Mon Sep 17 00:00:00 2001 From: Vladimir Dolzhenko Date: Fri, 8 Jun 2018 12:11:20 -0700 Subject: [PATCH 46/62] Allow to trim all ops above a certain seq# with a term lower than X, post backport fix (#31211) --- .../elasticsearch/action/resync/ResyncReplicationRequest.java | 4 ++-- .../java/org/elasticsearch/index/translog/Checkpoint.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/action/resync/ResyncReplicationRequest.java b/server/src/main/java/org/elasticsearch/action/resync/ResyncReplicationRequest.java index 7be3406659e..d4e2c652fa8 100644 --- a/server/src/main/java/org/elasticsearch/action/resync/ResyncReplicationRequest.java +++ b/server/src/main/java/org/elasticsearch/action/resync/ResyncReplicationRequest.java @@ -68,7 +68,7 @@ public final class ResyncReplicationRequest extends ReplicatedWriteRequest Date: Fri, 8 Jun 2018 13:53:35 -0700 Subject: [PATCH 47/62] Remove DocumentFieldMappers#simpleMatchToFullName. (#31041) * Remove DocumentFieldMappers#simpleMatchToFullName, as it is duplicative of MapperService#simpleMatchToIndexNames. * Rename MapperService#simpleMatchToIndexNames -> simpleMatchToFullName for consistency. * Simplify EsIntegTestCase#assertConcreteMappingsOnAll to accept concrete fields instead of wildcard patterns. --- .../TransportFieldCapabilitiesIndexAction.java | 2 +- .../index/mapper/DocumentFieldMappers.java | 13 ------------- .../elasticsearch/index/mapper/MapperService.java | 2 +- .../index/query/QueryShardContext.java | 2 +- .../index/termvectors/TermVectorsService.java | 2 +- .../fetch/subphase/highlight/HighlightPhase.java | 3 +-- .../index/mapper/FieldNamesFieldTypeTests.java | 2 +- .../org/elasticsearch/test/ESIntegTestCase.java | 12 ++++++------ ...ecurityIndexSearcherWrapperIntegrationTests.java | 2 +- 9 files changed, 13 insertions(+), 27 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/action/fieldcaps/TransportFieldCapabilitiesIndexAction.java b/server/src/main/java/org/elasticsearch/action/fieldcaps/TransportFieldCapabilitiesIndexAction.java index b24dc685df6..f1a1dc45140 100644 --- a/server/src/main/java/org/elasticsearch/action/fieldcaps/TransportFieldCapabilitiesIndexAction.java +++ b/server/src/main/java/org/elasticsearch/action/fieldcaps/TransportFieldCapabilitiesIndexAction.java @@ -76,7 +76,7 @@ public class TransportFieldCapabilitiesIndexAction extends TransportSingleShardA MapperService mapperService = indicesService.indexServiceSafe(shardId.getIndex()).mapperService(); Set fieldNames = new HashSet<>(); for (String field : request.fields()) { - fieldNames.addAll(mapperService.simpleMatchToIndexNames(field)); + fieldNames.addAll(mapperService.simpleMatchToFullName(field)); } Predicate fieldPredicate = indicesService.getFieldFilter().apply(shardId.getIndexName()); Map responseMap = new HashMap<>(); diff --git a/server/src/main/java/org/elasticsearch/index/mapper/DocumentFieldMappers.java b/server/src/main/java/org/elasticsearch/index/mapper/DocumentFieldMappers.java index ea242aca68f..9193ca209ba 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/DocumentFieldMappers.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/DocumentFieldMappers.java @@ -20,16 +20,13 @@ package org.elasticsearch.index.mapper; import org.apache.lucene.analysis.Analyzer; -import org.elasticsearch.common.regex.Regex; import org.elasticsearch.index.analysis.FieldNameAnalyzer; import java.util.Collection; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.Iterator; import java.util.Map; -import java.util.Set; public final class DocumentFieldMappers implements Iterable { @@ -70,16 +67,6 @@ public final class DocumentFieldMappers implements Iterable { return fieldMappers.get(field); } - public Collection simpleMatchToFullName(String pattern) { - Set fields = new HashSet<>(); - for (FieldMapper fieldMapper : this) { - if (Regex.simpleMatch(pattern, fieldMapper.fieldType().name())) { - fields.add(fieldMapper.fieldType().name()); - } - } - return fields; - } - /** * A smart analyzer used for indexing that takes into account specific analyzers configured * per {@link FieldMapper}. diff --git a/server/src/main/java/org/elasticsearch/index/mapper/MapperService.java b/server/src/main/java/org/elasticsearch/index/mapper/MapperService.java index a06288b67e3..8988238d927 100644 --- a/server/src/main/java/org/elasticsearch/index/mapper/MapperService.java +++ b/server/src/main/java/org/elasticsearch/index/mapper/MapperService.java @@ -721,7 +721,7 @@ public class MapperService extends AbstractIndexComponent implements Closeable { * Returns all the fields that match the given pattern. If the pattern is prefixed with a type * then the fields will be returned with a type prefix. */ - public Collection simpleMatchToIndexNames(String pattern) { + public Collection simpleMatchToFullName(String pattern) { if (Regex.isSimpleMatchPattern(pattern) == false) { // no wildcards return Collections.singletonList(pattern); diff --git a/server/src/main/java/org/elasticsearch/index/query/QueryShardContext.java b/server/src/main/java/org/elasticsearch/index/query/QueryShardContext.java index 6bb69c0cab9..598a6f38a2e 100644 --- a/server/src/main/java/org/elasticsearch/index/query/QueryShardContext.java +++ b/server/src/main/java/org/elasticsearch/index/query/QueryShardContext.java @@ -198,7 +198,7 @@ public class QueryShardContext extends QueryRewriteContext { * type then the fields will be returned with a type prefix. */ public Collection simpleMatchToIndexNames(String pattern) { - return mapperService.simpleMatchToIndexNames(pattern); + return mapperService.simpleMatchToFullName(pattern); } public MappedFieldType fieldMapper(String name) { diff --git a/server/src/main/java/org/elasticsearch/index/termvectors/TermVectorsService.java b/server/src/main/java/org/elasticsearch/index/termvectors/TermVectorsService.java index 0148ab44d1b..c13c56beb5a 100644 --- a/server/src/main/java/org/elasticsearch/index/termvectors/TermVectorsService.java +++ b/server/src/main/java/org/elasticsearch/index/termvectors/TermVectorsService.java @@ -155,7 +155,7 @@ public class TermVectorsService { private static void handleFieldWildcards(IndexShard indexShard, TermVectorsRequest request) { Set fieldNames = new HashSet<>(); for (String pattern : request.selectedFields()) { - fieldNames.addAll(indexShard.mapperService().simpleMatchToIndexNames(pattern)); + fieldNames.addAll(indexShard.mapperService().simpleMatchToFullName(pattern)); } request.selectedFields(fieldNames.toArray(Strings.EMPTY_ARRAY)); } diff --git a/server/src/main/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightPhase.java b/server/src/main/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightPhase.java index 16cc6a50e8c..4343a1ebca5 100644 --- a/server/src/main/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightPhase.java +++ b/server/src/main/java/org/elasticsearch/search/fetch/subphase/highlight/HighlightPhase.java @@ -53,8 +53,7 @@ public class HighlightPhase extends AbstractComponent implements FetchSubPhase { for (SearchContextHighlight.Field field : context.highlight().fields()) { Collection fieldNamesToHighlight; if (Regex.isSimpleMatchPattern(field.field())) { - DocumentMapper documentMapper = context.mapperService().documentMapper(hitContext.hit().getType()); - fieldNamesToHighlight = documentMapper.mappers().simpleMatchToFullName(field.field()); + fieldNamesToHighlight = context.mapperService().simpleMatchToFullName(field.field()); } else { fieldNamesToHighlight = Collections.singletonList(field.field()); } diff --git a/server/src/test/java/org/elasticsearch/index/mapper/FieldNamesFieldTypeTests.java b/server/src/test/java/org/elasticsearch/index/mapper/FieldNamesFieldTypeTests.java index 945407fc394..4ae03138764 100644 --- a/server/src/test/java/org/elasticsearch/index/mapper/FieldNamesFieldTypeTests.java +++ b/server/src/test/java/org/elasticsearch/index/mapper/FieldNamesFieldTypeTests.java @@ -63,7 +63,7 @@ public class FieldNamesFieldTypeTests extends FieldTypeTestCase { MapperService mapperService = mock(MapperService.class); when(mapperService.fullName("_field_names")).thenReturn(fieldNamesFieldType); when(mapperService.fullName("field_name")).thenReturn(fieldType); - when(mapperService.simpleMatchToIndexNames("field_name")).thenReturn(Collections.singletonList("field_name")); + when(mapperService.simpleMatchToFullName("field_name")).thenReturn(Collections.singletonList("field_name")); QueryShardContext queryShardContext = new QueryShardContext(0, indexSettings, null, null, mapperService, null, null, null, null, null, null, () -> 0L, null); diff --git a/test/framework/src/main/java/org/elasticsearch/test/ESIntegTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/ESIntegTestCase.java index 8b58cea4d0a..979bfccdb64 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/ESIntegTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/ESIntegTestCase.java @@ -126,7 +126,8 @@ import org.elasticsearch.index.MergeSchedulerConfig; import org.elasticsearch.index.MockEngineFactoryPlugin; import org.elasticsearch.index.codec.CodecService; import org.elasticsearch.index.engine.Segment; -import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MappedFieldType; +import org.elasticsearch.index.mapper.MapperService; import org.elasticsearch.index.mapper.MockFieldFilterPlugin; import org.elasticsearch.index.seqno.SeqNoStats; import org.elasticsearch.index.seqno.SequenceNumbers; @@ -823,7 +824,7 @@ public abstract class ESIntegTestCase extends ESTestCase { } /** - * Waits till a (pattern) field name mappings concretely exists on all nodes. Note, this waits for the current + * Waits until mappings for the provided fields exist on all nodes. Note, this waits for the current * started shards and checks for concrete mappings. */ public void assertConcreteMappingsOnAll(final String index, final String type, final String... fieldNames) throws Exception { @@ -833,11 +834,10 @@ public abstract class ESIntegTestCase extends ESTestCase { IndicesService indicesService = internalCluster().getInstance(IndicesService.class, node); IndexService indexService = indicesService.indexService(resolveIndex(index)); assertThat("index service doesn't exists on " + node, indexService, notNullValue()); - DocumentMapper documentMapper = indexService.mapperService().documentMapper(type); - assertThat("document mapper doesn't exists on " + node, documentMapper, notNullValue()); + MapperService mapperService = indexService.mapperService(); for (String fieldName : fieldNames) { - Collection matches = documentMapper.mappers().simpleMatchToFullName(fieldName); - assertThat("field " + fieldName + " doesn't exists on " + node, matches, Matchers.not(emptyIterable())); + MappedFieldType fieldType = mapperService.fullName(fieldName); + assertNotNull("field " + fieldName + " doesn't exists on " + node, fieldType); } } assertMappingOnMaster(index, type, fieldNames); diff --git a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/authz/accesscontrol/SecurityIndexSearcherWrapperIntegrationTests.java b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/authz/accesscontrol/SecurityIndexSearcherWrapperIntegrationTests.java index 08c1d010d99..9abaaf0ecf0 100644 --- a/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/authz/accesscontrol/SecurityIndexSearcherWrapperIntegrationTests.java +++ b/x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/authz/accesscontrol/SecurityIndexSearcherWrapperIntegrationTests.java @@ -59,7 +59,7 @@ public class SecurityIndexSearcherWrapperIntegrationTests extends ESTestCase { MapperService mapperService = mock(MapperService.class); ScriptService scriptService = mock(ScriptService.class); when(mapperService.documentMapper()).thenReturn(null); - when(mapperService.simpleMatchToIndexNames(anyString())) + when(mapperService.simpleMatchToFullName(anyString())) .then(invocationOnMock -> Collections.singletonList((String) invocationOnMock.getArguments()[0])); ThreadContext threadContext = new ThreadContext(Settings.EMPTY); From f6d69c9d40ea401a2347a2dd6594ffdb1ae046b3 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Fri, 8 Jun 2018 17:15:28 -0400 Subject: [PATCH 48/62] Add licenses for transport-nio (#31218) We have a direct dependency on Netty here so we should be attaching the licenses. This is needed for accurate dependency-license reporting. --- plugins/transport-nio/build.gradle | 6 +- .../transport-nio/licenses/netty-LICENSE.txt | 202 ++++++++++++++++++ .../transport-nio/licenses/netty-NOTICE.txt | 116 ++++++++++ .../netty-buffer-4.1.16.Final.jar.sha1 | 1 + .../netty-codec-4.1.16.Final.jar.sha1 | 1 + .../netty-codec-http-4.1.16.Final.jar.sha1 | 1 + .../netty-common-4.1.16.Final.jar.sha1 | 1 + .../netty-handler-4.1.16.Final.jar.sha1 | 1 + .../netty-resolver-4.1.16.Final.jar.sha1 | 1 + .../netty-transport-4.1.16.Final.jar.sha1 | 1 + 10 files changed, 329 insertions(+), 2 deletions(-) create mode 100644 plugins/transport-nio/licenses/netty-LICENSE.txt create mode 100644 plugins/transport-nio/licenses/netty-NOTICE.txt create mode 100644 plugins/transport-nio/licenses/netty-buffer-4.1.16.Final.jar.sha1 create mode 100644 plugins/transport-nio/licenses/netty-codec-4.1.16.Final.jar.sha1 create mode 100644 plugins/transport-nio/licenses/netty-codec-http-4.1.16.Final.jar.sha1 create mode 100644 plugins/transport-nio/licenses/netty-common-4.1.16.Final.jar.sha1 create mode 100644 plugins/transport-nio/licenses/netty-handler-4.1.16.Final.jar.sha1 create mode 100644 plugins/transport-nio/licenses/netty-resolver-4.1.16.Final.jar.sha1 create mode 100644 plugins/transport-nio/licenses/netty-transport-4.1.16.Final.jar.sha1 diff --git a/plugins/transport-nio/build.gradle b/plugins/transport-nio/build.gradle index e278ebf4798..856a8552b8e 100644 --- a/plugins/transport-nio/build.gradle +++ b/plugins/transport-nio/build.gradle @@ -22,8 +22,6 @@ esplugin { classname 'org.elasticsearch.transport.nio.NioTransportPlugin' } -dependencyLicenses.enabled = false - compileJava.options.compilerArgs << "-Xlint:-try" compileTestJava.options.compilerArgs << "-Xlint:-rawtypes,-unchecked" @@ -40,6 +38,10 @@ dependencies { compile "io.netty:netty-transport:4.1.16.Final" } +dependencyLicenses { + mapping from: /netty-.*/, to: 'netty' +} + thirdPartyAudit.excludes = [ // classes are missing diff --git a/plugins/transport-nio/licenses/netty-LICENSE.txt b/plugins/transport-nio/licenses/netty-LICENSE.txt new file mode 100644 index 00000000000..d6456956733 --- /dev/null +++ b/plugins/transport-nio/licenses/netty-LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/plugins/transport-nio/licenses/netty-NOTICE.txt b/plugins/transport-nio/licenses/netty-NOTICE.txt new file mode 100644 index 00000000000..5bbf91a14de --- /dev/null +++ b/plugins/transport-nio/licenses/netty-NOTICE.txt @@ -0,0 +1,116 @@ + + The Netty Project + ================= + +Please visit the Netty web site for more information: + + * http://netty.io/ + +Copyright 2011 The Netty Project + +The Netty Project licenses this file to you under the Apache License, +version 2.0 (the "License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at: + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +License for the specific language governing permissions and limitations +under the License. + +Also, please refer to each LICENSE..txt file, which is located in +the 'license' directory of the distribution file, for the license terms of the +components that this product depends on. + +------------------------------------------------------------------------------- +This product contains the extensions to Java Collections Framework which has +been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene: + + * LICENSE: + * license/LICENSE.jsr166y.txt (Public Domain) + * HOMEPAGE: + * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/ + * http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/ + +This product contains a modified version of Robert Harder's Public Domain +Base64 Encoder and Decoder, which can be obtained at: + + * LICENSE: + * license/LICENSE.base64.txt (Public Domain) + * HOMEPAGE: + * http://iharder.sourceforge.net/current/java/base64/ + +This product contains a modified version of 'JZlib', a re-implementation of +zlib in pure Java, which can be obtained at: + + * LICENSE: + * license/LICENSE.jzlib.txt (BSD Style License) + * HOMEPAGE: + * http://www.jcraft.com/jzlib/ + +This product contains a modified version of 'Webbit', a Java event based +WebSocket and HTTP server: + + * LICENSE: + * license/LICENSE.webbit.txt (BSD License) + * HOMEPAGE: + * https://github.com/joewalnes/webbit + +This product optionally depends on 'Protocol Buffers', Google's data +interchange format, which can be obtained at: + + * LICENSE: + * license/LICENSE.protobuf.txt (New BSD License) + * HOMEPAGE: + * http://code.google.com/p/protobuf/ + +This product optionally depends on 'Bouncy Castle Crypto APIs' to generate +a temporary self-signed X.509 certificate when the JVM does not provide the +equivalent functionality. It can be obtained at: + + * LICENSE: + * license/LICENSE.bouncycastle.txt (MIT License) + * HOMEPAGE: + * http://www.bouncycastle.org/ + +This product optionally depends on 'SLF4J', a simple logging facade for Java, +which can be obtained at: + + * LICENSE: + * license/LICENSE.slf4j.txt (MIT License) + * HOMEPAGE: + * http://www.slf4j.org/ + +This product optionally depends on 'Apache Commons Logging', a logging +framework, which can be obtained at: + + * LICENSE: + * license/LICENSE.commons-logging.txt (Apache License 2.0) + * HOMEPAGE: + * http://commons.apache.org/logging/ + +This product optionally depends on 'Apache Log4J', a logging framework, +which can be obtained at: + + * LICENSE: + * license/LICENSE.log4j.txt (Apache License 2.0) + * HOMEPAGE: + * http://logging.apache.org/log4j/ + +This product optionally depends on 'JBoss Logging', a logging framework, +which can be obtained at: + + * LICENSE: + * license/LICENSE.jboss-logging.txt (GNU LGPL 2.1) + * HOMEPAGE: + * http://anonsvn.jboss.org/repos/common/common-logging-spi/ + +This product optionally depends on 'Apache Felix', an open source OSGi +framework implementation, which can be obtained at: + + * LICENSE: + * license/LICENSE.felix.txt (Apache License 2.0) + * HOMEPAGE: + * http://felix.apache.org/ diff --git a/plugins/transport-nio/licenses/netty-buffer-4.1.16.Final.jar.sha1 b/plugins/transport-nio/licenses/netty-buffer-4.1.16.Final.jar.sha1 new file mode 100644 index 00000000000..c5462229719 --- /dev/null +++ b/plugins/transport-nio/licenses/netty-buffer-4.1.16.Final.jar.sha1 @@ -0,0 +1 @@ +63b5fa95c74785e16f2c30ce268bc222e35c8cb5 \ No newline at end of file diff --git a/plugins/transport-nio/licenses/netty-codec-4.1.16.Final.jar.sha1 b/plugins/transport-nio/licenses/netty-codec-4.1.16.Final.jar.sha1 new file mode 100644 index 00000000000..1e6c241ea0b --- /dev/null +++ b/plugins/transport-nio/licenses/netty-codec-4.1.16.Final.jar.sha1 @@ -0,0 +1 @@ +d84a1f21768b7309c2954521cf5a1f46c2309eb1 \ No newline at end of file diff --git a/plugins/transport-nio/licenses/netty-codec-http-4.1.16.Final.jar.sha1 b/plugins/transport-nio/licenses/netty-codec-http-4.1.16.Final.jar.sha1 new file mode 100644 index 00000000000..71c33af1c5f --- /dev/null +++ b/plugins/transport-nio/licenses/netty-codec-http-4.1.16.Final.jar.sha1 @@ -0,0 +1 @@ +d64312378b438dfdad84267c599a053327c6f02a \ No newline at end of file diff --git a/plugins/transport-nio/licenses/netty-common-4.1.16.Final.jar.sha1 b/plugins/transport-nio/licenses/netty-common-4.1.16.Final.jar.sha1 new file mode 100644 index 00000000000..3edf5fcea59 --- /dev/null +++ b/plugins/transport-nio/licenses/netty-common-4.1.16.Final.jar.sha1 @@ -0,0 +1 @@ +177a6b30cca92f6f5f9873c9befd681377a4c328 \ No newline at end of file diff --git a/plugins/transport-nio/licenses/netty-handler-4.1.16.Final.jar.sha1 b/plugins/transport-nio/licenses/netty-handler-4.1.16.Final.jar.sha1 new file mode 100644 index 00000000000..cba27387268 --- /dev/null +++ b/plugins/transport-nio/licenses/netty-handler-4.1.16.Final.jar.sha1 @@ -0,0 +1 @@ +fec0e63e7dd7f4eeef7ea8dc47a1ff32dfc7ebc2 \ No newline at end of file diff --git a/plugins/transport-nio/licenses/netty-resolver-4.1.16.Final.jar.sha1 b/plugins/transport-nio/licenses/netty-resolver-4.1.16.Final.jar.sha1 new file mode 100644 index 00000000000..3571d2ecfdc --- /dev/null +++ b/plugins/transport-nio/licenses/netty-resolver-4.1.16.Final.jar.sha1 @@ -0,0 +1 @@ +f6eb553b53fb3a90a8ac1170697093fed82eae28 \ No newline at end of file diff --git a/plugins/transport-nio/licenses/netty-transport-4.1.16.Final.jar.sha1 b/plugins/transport-nio/licenses/netty-transport-4.1.16.Final.jar.sha1 new file mode 100644 index 00000000000..e502d4c7708 --- /dev/null +++ b/plugins/transport-nio/licenses/netty-transport-4.1.16.Final.jar.sha1 @@ -0,0 +1 @@ +3c8ee2c4d4a1cbb947a5c184c7aeb2204260958b \ No newline at end of file From cdb486ae70053450e6a07ea45b5322741240e6c9 Mon Sep 17 00:00:00 2001 From: Sue Gallagher <36747279+Sue-Gallagher@users.noreply.github.com> Date: Fri, 8 Jun 2018 14:41:01 -0700 Subject: [PATCH 49/62] [DOCS] Added 'fail_on_unsupported_field' param to MLT. Closes #28008 (#31160) * [DOCS] Added 'fail_on_unsupported_field' param to MLT. Closes 28008 * [DOCS] Added 'fail_on_unsupported_field' param to MLT. Closes #28008 * [DOCS] Added 'fail_on_unsupported_field' param to MLT. Closes #28008 * [DOCS] Added 'fail_on_unsupported_field' param to MLT. Closes #28008 --- docs/reference/query-dsl/mlt-query.asciidoc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/reference/query-dsl/mlt-query.asciidoc b/docs/reference/query-dsl/mlt-query.asciidoc index 6cb984263e6..bd66c7f071c 100644 --- a/docs/reference/query-dsl/mlt-query.asciidoc +++ b/docs/reference/query-dsl/mlt-query.asciidoc @@ -241,6 +241,13 @@ number of terms that must match. The syntax is the same as the <>. (Defaults to `"30%"`). +`fail_on_unsupported_field`:: +Controls whether the query should fail (throw an exception) if any of the +specified fields are not of the supported types +(`text` or `keyword'). Set this to `false` to ignore the field and continue +processing. Defaults to +`true`. + `boost_terms`:: Each term in the formed query could be further boosted by their tf-idf score. This sets the boost factor to use when using this feature. Defaults to From bdb0fb25555381299d80fed7efcbcab97a9d172f Mon Sep 17 00:00:00 2001 From: Lee Hinman Date: Fri, 8 Jun 2018 17:19:41 -0600 Subject: [PATCH 50/62] Fully encapsulate LocalCheckpointTracker inside of the engine (#31213) * Fully encapsulate LocalCheckpointTracker inside of the engine This makes the Engine interface not expose the `LocalCheckpointTracker`, instead exposing the pieces needed (like retrieving the local checkpoint) as individual methods. --- .../elasticsearch/index/engine/Engine.java | 27 +++- .../index/engine/InternalEngine.java | 24 +++- .../elasticsearch/index/shard/IndexShard.java | 22 ++-- .../index/shard/LocalShardSnapshot.java | 2 +- .../cluster/routing/PrimaryAllocationIT.java | 3 +- .../index/engine/InternalEngineTests.java | 117 +++++++++--------- .../index/shard/IndexShardTests.java | 3 +- .../SharedClusterSnapshotRestoreIT.java | 3 +- .../index/engine/EngineTestCase.java | 9 ++ .../index/shard/IndexShardTestCase.java | 2 +- 10 files changed, 130 insertions(+), 82 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/index/engine/Engine.java b/server/src/main/java/org/elasticsearch/index/engine/Engine.java index 5283975be7b..0b6eea26e03 100644 --- a/server/src/main/java/org/elasticsearch/index/engine/Engine.java +++ b/server/src/main/java/org/elasticsearch/index/engine/Engine.java @@ -62,7 +62,7 @@ import org.elasticsearch.index.mapper.Mapping; import org.elasticsearch.index.mapper.ParseContext.Document; import org.elasticsearch.index.mapper.ParsedDocument; import org.elasticsearch.index.merge.MergeStats; -import org.elasticsearch.index.seqno.LocalCheckpointTracker; +import org.elasticsearch.index.seqno.SeqNoStats; import org.elasticsearch.index.seqno.SequenceNumbers; import org.elasticsearch.index.shard.ShardId; import org.elasticsearch.index.store.Store; @@ -635,11 +635,28 @@ public abstract class Engine implements Closeable { } /** - * The sequence number service for this engine. - * - * @return the sequence number service + * @return the local checkpoint for this Engine */ - public abstract LocalCheckpointTracker getLocalCheckpointTracker(); + public abstract long getLocalCheckpoint(); + + /** + * Waits for all operations up to the provided sequence number to complete. + * + * @param seqNo the sequence number that the checkpoint must advance to before this method returns + * @throws InterruptedException if the thread was interrupted while blocking on the condition + */ + public abstract void waitForOpsToComplete(long seqNo) throws InterruptedException; + + /** + * Reset the local checkpoint in the tracker to the given local checkpoint + * @param localCheckpoint the new checkpoint to be set + */ + public abstract void resetLocalCheckpoint(long localCheckpoint); + + /** + * @return a {@link SeqNoStats} object, using local state and the supplied global checkpoint + */ + public abstract SeqNoStats getSeqNoStats(long globalCheckpoint); /** * Returns the latest global checkpoint value that has been persisted in the underlying storage (i.e. translog's checkpoint) diff --git a/server/src/main/java/org/elasticsearch/index/engine/InternalEngine.java b/server/src/main/java/org/elasticsearch/index/engine/InternalEngine.java index 88e71608452..53f209ccf63 100644 --- a/server/src/main/java/org/elasticsearch/index/engine/InternalEngine.java +++ b/server/src/main/java/org/elasticsearch/index/engine/InternalEngine.java @@ -65,6 +65,7 @@ import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.merge.MergeStats; import org.elasticsearch.index.merge.OnGoingMerge; import org.elasticsearch.index.seqno.LocalCheckpointTracker; +import org.elasticsearch.index.seqno.SeqNoStats; import org.elasticsearch.index.seqno.SequenceNumbers; import org.elasticsearch.index.shard.ElasticsearchMergePolicy; import org.elasticsearch.index.shard.ShardId; @@ -2185,10 +2186,31 @@ public class InternalEngine extends Engine { return mergeScheduler.stats(); } - public final LocalCheckpointTracker getLocalCheckpointTracker() { + // Used only for testing! Package private to prevent anyone else from using it + LocalCheckpointTracker getLocalCheckpointTracker() { return localCheckpointTracker; } + @Override + public long getLocalCheckpoint() { + return localCheckpointTracker.getCheckpoint(); + } + + @Override + public void waitForOpsToComplete(long seqNo) throws InterruptedException { + localCheckpointTracker.waitForOpsToComplete(seqNo); + } + + @Override + public void resetLocalCheckpoint(long localCheckpoint) { + localCheckpointTracker.resetCheckpoint(localCheckpoint); + } + + @Override + public SeqNoStats getSeqNoStats(long globalCheckpoint) { + return localCheckpointTracker.getStats(globalCheckpoint); + } + /** * Returns the number of times a version was looked up either from the index. * Note this is only available if assertions are enabled diff --git a/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java b/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java index 8583b6b4c9b..34230be14cb 100644 --- a/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java +++ b/server/src/main/java/org/elasticsearch/index/shard/IndexShard.java @@ -405,7 +405,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl assert currentRouting.active() == false : "we are in POST_RECOVERY, but our shard routing is active " + currentRouting; if (newRouting.primary() && currentRouting.isRelocationTarget() == false) { - replicationTracker.activatePrimaryMode(getEngine().getLocalCheckpointTracker().getCheckpoint()); + replicationTracker.activatePrimaryMode(getLocalCheckpoint()); } changeState(IndexShardState.STARTED, "global state is [" + newRouting.state() + "]"); @@ -479,8 +479,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl */ engine.rollTranslogGeneration(); engine.fillSeqNoGaps(newPrimaryTerm); - replicationTracker.updateLocalCheckpoint(currentRouting.allocationId().getId(), - getEngine().getLocalCheckpointTracker().getCheckpoint()); + replicationTracker.updateLocalCheckpoint(currentRouting.allocationId().getId(), getLocalCheckpoint()); primaryReplicaSyncer.accept(this, new ActionListener() { @Override public void onResponse(ResyncTask resyncTask) { @@ -506,7 +505,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl } }, e -> failShard("exception during primary term transition", e)); - replicationTracker.activatePrimaryMode(getEngine().getLocalCheckpointTracker().getCheckpoint()); + replicationTracker.activatePrimaryMode(getLocalCheckpoint()); primaryTerm = newPrimaryTerm; } } @@ -873,7 +872,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl @Nullable public SeqNoStats seqNoStats() { Engine engine = getEngineOrNull(); - return engine == null ? null : engine.getLocalCheckpointTracker().getStats(replicationTracker.getGlobalCheckpoint()); + return engine == null ? null : engine.getSeqNoStats(replicationTracker.getGlobalCheckpoint()); } public IndexingStats indexingStats(String... types) { @@ -1707,7 +1706,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl * @throws InterruptedException if the thread was interrupted while blocking on the condition */ public void waitForOpsToComplete(final long seqNo) throws InterruptedException { - getEngine().getLocalCheckpointTracker().waitForOpsToComplete(seqNo); + getEngine().waitForOpsToComplete(seqNo); } /** @@ -1740,7 +1739,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl * @return the local checkpoint */ public long getLocalCheckpoint() { - return getEngine().getLocalCheckpointTracker().getCheckpoint(); + return getEngine().getLocalCheckpoint(); } /** @@ -1781,7 +1780,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl return; } // only sync if there are not operations in flight - final SeqNoStats stats = getEngine().getLocalCheckpointTracker().getStats(replicationTracker.getGlobalCheckpoint()); + final SeqNoStats stats = getEngine().getSeqNoStats(replicationTracker.getGlobalCheckpoint()); if (stats.getMaxSeqNo() == stats.getGlobalCheckpoint()) { final ObjectLongMap globalCheckpoints = getInSyncGlobalCheckpoints(); final String allocationId = routingEntry().allocationId().getId(); @@ -1818,7 +1817,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl */ public void updateGlobalCheckpointOnReplica(final long globalCheckpoint, final String reason) { verifyReplicationTarget(); - final long localCheckpoint = getEngine().getLocalCheckpointTracker().getCheckpoint(); + final long localCheckpoint = getLocalCheckpoint(); if (globalCheckpoint > localCheckpoint) { /* * This can happen during recovery when the shard has started its engine but recovery is not finalized and is receiving global @@ -1847,8 +1846,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl verifyPrimary(); assert shardRouting.isRelocationTarget() : "only relocation target can update allocation IDs from primary context: " + shardRouting; assert primaryContext.getCheckpointStates().containsKey(routingEntry().allocationId().getId()) && - getEngine().getLocalCheckpointTracker().getCheckpoint() == - primaryContext.getCheckpointStates().get(routingEntry().allocationId().getId()).getLocalCheckpoint(); + getLocalCheckpoint() == primaryContext.getCheckpointStates().get(routingEntry().allocationId().getId()).getLocalCheckpoint(); synchronized (mutex) { replicationTracker.activateWithPrimaryContext(primaryContext); // make changes to primaryMode flag only under mutex } @@ -2234,7 +2232,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl operationPrimaryTerm, getLocalCheckpoint(), localCheckpoint); - getEngine().getLocalCheckpointTracker().resetCheckpoint(localCheckpoint); + getEngine().resetLocalCheckpoint(localCheckpoint); getEngine().rollTranslogGeneration(); }); globalCheckpointUpdated = true; diff --git a/server/src/main/java/org/elasticsearch/index/shard/LocalShardSnapshot.java b/server/src/main/java/org/elasticsearch/index/shard/LocalShardSnapshot.java index d7105c0c14d..09391c9bc96 100644 --- a/server/src/main/java/org/elasticsearch/index/shard/LocalShardSnapshot.java +++ b/server/src/main/java/org/elasticsearch/index/shard/LocalShardSnapshot.java @@ -62,7 +62,7 @@ final class LocalShardSnapshot implements Closeable { } long maxSeqNo() { - return shard.getEngine().getLocalCheckpointTracker().getMaxSeqNo(); + return shard.getEngine().getSeqNoStats(-1).getMaxSeqNo(); } long maxUnsafeAutoIdTimestamp() { diff --git a/server/src/test/java/org/elasticsearch/cluster/routing/PrimaryAllocationIT.java b/server/src/test/java/org/elasticsearch/cluster/routing/PrimaryAllocationIT.java index 407212936d1..90173455c3b 100644 --- a/server/src/test/java/org/elasticsearch/cluster/routing/PrimaryAllocationIT.java +++ b/server/src/test/java/org/elasticsearch/cluster/routing/PrimaryAllocationIT.java @@ -32,6 +32,7 @@ import org.elasticsearch.common.collect.ImmutableOpenIntMap; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.set.Sets; import org.elasticsearch.gateway.GatewayAllocator; +import org.elasticsearch.index.engine.EngineTestCase; import org.elasticsearch.index.shard.IndexShard; import org.elasticsearch.index.shard.IndexShardTestCase; import org.elasticsearch.index.shard.ShardId; @@ -350,7 +351,7 @@ public class PrimaryAllocationIT extends ESIntegTestCase { assertThat(indexResult.getShardInfo().getSuccessful(), equalTo(numberOfReplicas + 1)); } final IndexShard oldPrimaryShard = internalCluster().getInstance(IndicesService.class, oldPrimary).getShardOrNull(shardId); - IndexShardTestCase.getEngine(oldPrimaryShard).getLocalCheckpointTracker().generateSeqNo(); // Make gap in seqno. + EngineTestCase.generateNewSeqNo(IndexShardTestCase.getEngine(oldPrimaryShard)); // Make gap in seqno. long moreDocs = scaledRandomIntBetween(1, 10); for (int i = 0; i < moreDocs; i++) { IndexResponse indexResult = index("test", "doc", Long.toString(numDocs + i)); diff --git a/server/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java b/server/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java index 26da424460e..d67148dbff2 100644 --- a/server/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java +++ b/server/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java @@ -225,7 +225,7 @@ public class InternalEngineTests extends EngineTestCase { new BytesArray("{}".getBytes(Charset.defaultCharset())), null); operation = randomBoolean() ? appendOnlyPrimary(doc, false, 1) - : appendOnlyReplica(doc, false, 1, engine.getLocalCheckpointTracker().generateSeqNo()); + : appendOnlyReplica(doc, false, 1, generateNewSeqNo(engine)); engine.index(operation); assertTrue("safe access should be required", engine.isSafeAccessRequired()); assertEquals(1, engine.getVersionMapSize()); // now we add this to the map @@ -1018,7 +1018,7 @@ public class InternalEngineTests extends EngineTestCase { engine.index(indexForDoc(doc)); boolean inSync = randomBoolean(); if (inSync) { - globalCheckpoint.set(engine.getLocalCheckpointTracker().getCheckpoint()); + globalCheckpoint.set(engine.getLocalCheckpoint()); } engine.flush(); @@ -1036,7 +1036,7 @@ public class InternalEngineTests extends EngineTestCase { assertThat(engine.getTranslog().getDeletionPolicy().getMinTranslogGenerationForRecovery(), equalTo(inSync ? 4L : 1L)); assertThat(engine.getTranslog().getDeletionPolicy().getTranslogGenerationOfLastCommit(), equalTo(4L)); - globalCheckpoint.set(engine.getLocalCheckpointTracker().getCheckpoint()); + globalCheckpoint.set(engine.getLocalCheckpoint()); engine.flush(true, true); assertThat(engine.getTranslog().currentFileGeneration(), equalTo(5L)); assertThat(engine.getTranslog().getDeletionPolicy().getMinTranslogGenerationForRecovery(), equalTo(5L)); @@ -2058,12 +2058,12 @@ public class InternalEngineTests extends EngineTestCase { final Engine.DeleteResult result = initialEngine.delete(delete); if (result.getResultType() == Engine.Result.Type.SUCCESS) { assertThat(result.getSeqNo(), equalTo(primarySeqNo + 1)); - assertThat(initialEngine.getLocalCheckpointTracker().getMaxSeqNo(), equalTo(primarySeqNo + 1)); + assertThat(initialEngine.getSeqNoStats(-1).getMaxSeqNo(), equalTo(primarySeqNo + 1)); indexedIds.remove(id); primarySeqNo++; } else { assertThat(result.getSeqNo(), equalTo(SequenceNumbers.UNASSIGNED_SEQ_NO)); - assertThat(initialEngine.getLocalCheckpointTracker().getMaxSeqNo(), equalTo(primarySeqNo)); + assertThat(initialEngine.getSeqNoStats(-1).getMaxSeqNo(), equalTo(primarySeqNo)); } } else { // index a document @@ -2076,12 +2076,12 @@ public class InternalEngineTests extends EngineTestCase { final Engine.IndexResult result = initialEngine.index(index); if (result.getResultType() == Engine.Result.Type.SUCCESS) { assertThat(result.getSeqNo(), equalTo(primarySeqNo + 1)); - assertThat(initialEngine.getLocalCheckpointTracker().getMaxSeqNo(), equalTo(primarySeqNo + 1)); + assertThat(initialEngine.getSeqNoStats(-1).getMaxSeqNo(), equalTo(primarySeqNo + 1)); indexedIds.add(id); primarySeqNo++; } else { assertThat(result.getSeqNo(), equalTo(SequenceNumbers.UNASSIGNED_SEQ_NO)); - assertThat(initialEngine.getLocalCheckpointTracker().getMaxSeqNo(), equalTo(primarySeqNo)); + assertThat(initialEngine.getSeqNoStats(-1).getMaxSeqNo(), equalTo(primarySeqNo)); } } @@ -2090,7 +2090,7 @@ public class InternalEngineTests extends EngineTestCase { replicaLocalCheckpoint = randomIntBetween(Math.toIntExact(replicaLocalCheckpoint), Math.toIntExact(primarySeqNo)); } gcpTracker.updateLocalCheckpoint(primary.allocationId().getId(), - initialEngine.getLocalCheckpointTracker().getCheckpoint()); + initialEngine.getLocalCheckpoint()); gcpTracker.updateLocalCheckpoint(replica.allocationId().getId(), replicaLocalCheckpoint); if (rarely()) { @@ -2103,8 +2103,8 @@ public class InternalEngineTests extends EngineTestCase { logger.info("localcheckpoint {}, global {}", replicaLocalCheckpoint, primarySeqNo); globalCheckpoint = gcpTracker.getGlobalCheckpoint(); - assertEquals(primarySeqNo, initialEngine.getLocalCheckpointTracker().getMaxSeqNo()); - assertEquals(primarySeqNo, initialEngine.getLocalCheckpointTracker().getCheckpoint()); + assertEquals(primarySeqNo, initialEngine.getSeqNoStats(-1).getMaxSeqNo()); + assertEquals(primarySeqNo, initialEngine.getLocalCheckpoint()); assertThat(globalCheckpoint, equalTo(replicaLocalCheckpoint)); assertThat( @@ -2126,7 +2126,7 @@ public class InternalEngineTests extends EngineTestCase { try (InternalEngine recoveringEngine = new InternalEngine(initialEngine.config())){ recoveringEngine.recoverFromTranslog(); - assertEquals(primarySeqNo, recoveringEngine.getLocalCheckpointTracker().getMaxSeqNo()); + assertEquals(primarySeqNo, recoveringEngine.getSeqNoStats(-1).getMaxSeqNo()); assertThat( Long.parseLong(recoveringEngine.commitStats().getUserData().get(SequenceNumbers.LOCAL_CHECKPOINT_KEY)), equalTo(primarySeqNo)); @@ -2139,9 +2139,9 @@ public class InternalEngineTests extends EngineTestCase { // that the committed max seq no is equivalent to what the current primary seq no is, as all data // we have assigned sequence numbers to should be in the commit equalTo(primarySeqNo)); - assertThat(recoveringEngine.getLocalCheckpointTracker().getCheckpoint(), equalTo(primarySeqNo)); - assertThat(recoveringEngine.getLocalCheckpointTracker().getMaxSeqNo(), equalTo(primarySeqNo)); - assertThat(recoveringEngine.getLocalCheckpointTracker().generateSeqNo(), equalTo(primarySeqNo + 1)); + assertThat(recoveringEngine.getLocalCheckpoint(), equalTo(primarySeqNo)); + assertThat(recoveringEngine.getSeqNoStats(-1).getMaxSeqNo(), equalTo(primarySeqNo)); + assertThat(generateNewSeqNo(recoveringEngine), equalTo(primarySeqNo + 1)); } } @@ -2444,7 +2444,7 @@ public class InternalEngineTests extends EngineTestCase { try (InternalEngine engine = createEngine(config)) { engine.index(firstIndexRequest); - globalCheckpoint.set(engine.getLocalCheckpointTracker().getCheckpoint()); + globalCheckpoint.set(engine.getLocalCheckpoint()); expectThrows(IllegalStateException.class, () -> engine.recoverFromTranslog()); Map userData = engine.getLastCommittedSegmentInfos().getUserData(); assertEquals("1", userData.get(Translog.TRANSLOG_GENERATION_KEY)); @@ -2607,7 +2607,7 @@ public class InternalEngineTests extends EngineTestCase { engine.recoverFromTranslog(); final ParsedDocument doc1 = testParsedDocument("1", null, testDocumentWithTextField(), SOURCE, null); engine.index(indexForDoc(doc1)); - globalCheckpoint.set(engine.getLocalCheckpointTracker().getCheckpoint()); + globalCheckpoint.set(engine.getLocalCheckpoint()); throwErrorOnCommit.set(true); FlushFailedEngineException e = expectThrows(FlushFailedEngineException.class, engine::flush); assertThat(e.getCause().getMessage(), equalTo("power's out")); @@ -2665,7 +2665,7 @@ public class InternalEngineTests extends EngineTestCase { } public void testTranslogReplay() throws IOException { - final LongSupplier inSyncGlobalCheckpointSupplier = () -> this.engine.getLocalCheckpointTracker().getCheckpoint(); + final LongSupplier inSyncGlobalCheckpointSupplier = () -> this.engine.getLocalCheckpoint(); final int numDocs = randomIntBetween(1, 10); for (int i = 0; i < numDocs; i++) { ParsedDocument doc = testParsedDocument(Integer.toString(i), null, testDocument(), new BytesArray("{}"), null); @@ -3600,7 +3600,7 @@ public class InternalEngineTests extends EngineTestCase { final AtomicBoolean stall, final AtomicLong expectedLocalCheckpoint) { return (engine, operation) -> { - final long seqNo = engine.getLocalCheckpointTracker().generateSeqNo(); + final long seqNo = generateNewSeqNo(engine); final CountDownLatch latch = latchReference.get(); if (stall.get()) { try { @@ -3652,8 +3652,8 @@ public class InternalEngineTests extends EngineTestCase { } } - assertThat(initialEngine.getLocalCheckpointTracker().getCheckpoint(), equalTo(expectedLocalCheckpoint.get())); - assertThat(initialEngine.getLocalCheckpointTracker().getMaxSeqNo(), equalTo((long) (docs - 1))); + assertThat(initialEngine.getLocalCheckpoint(), equalTo(expectedLocalCheckpoint.get())); + assertThat(initialEngine.getSeqNoStats(-1).getMaxSeqNo(), equalTo((long) (docs - 1))); initialEngine.flush(true, true); latchReference.get().countDown(); @@ -3667,7 +3667,7 @@ public class InternalEngineTests extends EngineTestCase { try (Engine recoveringEngine = new InternalEngine(initialEngine.config())) { recoveringEngine.recoverFromTranslog(); recoveringEngine.fillSeqNoGaps(2); - assertThat(recoveringEngine.getLocalCheckpointTracker().getCheckpoint(), greaterThanOrEqualTo((long) (docs - 1))); + assertThat(recoveringEngine.getLocalCheckpoint(), greaterThanOrEqualTo((long) (docs - 1))); } } @@ -3746,7 +3746,7 @@ public class InternalEngineTests extends EngineTestCase { expectedLocalCheckpoint = numberOfOperations - 1; } - assertThat(engine.getLocalCheckpointTracker().getCheckpoint(), equalTo(expectedLocalCheckpoint)); + assertThat(engine.getLocalCheckpoint(), equalTo(expectedLocalCheckpoint)); try (Engine.GetResult result = engine.get(new Engine.Get(true, false, "type", "2", uid), searcherFactory)) { assertThat(result.exists(), equalTo(exists)); } @@ -3776,11 +3776,11 @@ public class InternalEngineTests extends EngineTestCase { final int gapsFilled = noOpEngine.fillSeqNoGaps(primaryTerm.get()); final String reason = randomAlphaOfLength(16); noOpEngine.noOp(new Engine.NoOp(maxSeqNo + 1, primaryTerm.get(), LOCAL_TRANSLOG_RECOVERY, System.nanoTime(), reason)); - assertThat(noOpEngine.getLocalCheckpointTracker().getCheckpoint(), equalTo((long) (maxSeqNo + 1))); + assertThat(noOpEngine.getLocalCheckpoint(), equalTo((long) (maxSeqNo + 1))); assertThat(noOpEngine.getTranslog().stats().getUncommittedOperations(), equalTo(gapsFilled)); noOpEngine.noOp( new Engine.NoOp(maxSeqNo + 2, primaryTerm.get(), randomFrom(PRIMARY, REPLICA, PEER_RECOVERY), System.nanoTime(), reason)); - assertThat(noOpEngine.getLocalCheckpointTracker().getCheckpoint(), equalTo((long) (maxSeqNo + 2))); + assertThat(noOpEngine.getLocalCheckpoint(), equalTo((long) (maxSeqNo + 2))); assertThat(noOpEngine.getTranslog().stats().getUncommittedOperations(), equalTo(gapsFilled + 1)); // skip to the op that we added to the translog Translog.Operation op; @@ -3933,17 +3933,17 @@ public class InternalEngineTests extends EngineTestCase { actualEngine.rollTranslogGeneration(); } } - final long currentLocalCheckpoint = actualEngine.getLocalCheckpointTracker().getCheckpoint(); + final long currentLocalCheckpoint = actualEngine.getLocalCheckpoint(); final long resetLocalCheckpoint = randomIntBetween(Math.toIntExact(SequenceNumbers.NO_OPS_PERFORMED), Math.toIntExact(currentLocalCheckpoint)); - actualEngine.getLocalCheckpointTracker().resetCheckpoint(resetLocalCheckpoint); + actualEngine.resetLocalCheckpoint(resetLocalCheckpoint); completedSeqNos.clear(); actualEngine.restoreLocalCheckpointFromTranslog(); final Set intersection = new HashSet<>(expectedCompletedSeqNos); intersection.retainAll(LongStream.range(resetLocalCheckpoint + 1, operations).boxed().collect(Collectors.toSet())); assertThat(completedSeqNos, equalTo(intersection)); - assertThat(actualEngine.getLocalCheckpointTracker().getCheckpoint(), equalTo(currentLocalCheckpoint)); - assertThat(actualEngine.getLocalCheckpointTracker().generateSeqNo(), equalTo((long) operations)); + assertThat(actualEngine.getLocalCheckpoint(), equalTo(currentLocalCheckpoint)); + assertThat(generateNewSeqNo(actualEngine), equalTo((long) operations)); } finally { IOUtils.close(actualEngine); } @@ -3967,7 +3967,7 @@ public class InternalEngineTests extends EngineTestCase { replicaEngine.index(replicaIndexForDoc(doc, 1, indexResult.getSeqNo(), false)); } } - checkpointOnReplica = replicaEngine.getLocalCheckpointTracker().getCheckpoint(); + checkpointOnReplica = replicaEngine.getLocalCheckpoint(); } finally { IOUtils.close(replicaEngine); } @@ -3977,16 +3977,16 @@ public class InternalEngineTests extends EngineTestCase { AtomicLong globalCheckpoint = new AtomicLong(SequenceNumbers.NO_OPS_PERFORMED); Engine recoveringEngine = null; try { - assertEquals(docs - 1, engine.getLocalCheckpointTracker().getMaxSeqNo()); - assertEquals(docs - 1, engine.getLocalCheckpointTracker().getCheckpoint()); - assertEquals(maxSeqIDOnReplica, replicaEngine.getLocalCheckpointTracker().getMaxSeqNo()); - assertEquals(checkpointOnReplica, replicaEngine.getLocalCheckpointTracker().getCheckpoint()); + assertEquals(docs - 1, engine.getSeqNoStats(-1).getMaxSeqNo()); + assertEquals(docs - 1, engine.getLocalCheckpoint()); + assertEquals(maxSeqIDOnReplica, replicaEngine.getSeqNoStats(-1).getMaxSeqNo()); + assertEquals(checkpointOnReplica, replicaEngine.getLocalCheckpoint()); trimUnsafeCommits(copy(replicaEngine.config(), globalCheckpoint::get)); recoveringEngine = new InternalEngine(copy(replicaEngine.config(), globalCheckpoint::get)); assertEquals(numDocsOnReplica, recoveringEngine.getTranslog().stats().getUncommittedOperations()); recoveringEngine.recoverFromTranslog(); - assertEquals(maxSeqIDOnReplica, recoveringEngine.getLocalCheckpointTracker().getMaxSeqNo()); - assertEquals(checkpointOnReplica, recoveringEngine.getLocalCheckpointTracker().getCheckpoint()); + assertEquals(maxSeqIDOnReplica, recoveringEngine.getSeqNoStats(-1).getMaxSeqNo()); + assertEquals(checkpointOnReplica, recoveringEngine.getLocalCheckpoint()); assertEquals((maxSeqIDOnReplica + 1) - numDocsOnReplica, recoveringEngine.fillSeqNoGaps(2)); // now snapshot the tlog and ensure the primary term is updated @@ -4001,10 +4001,10 @@ public class InternalEngineTests extends EngineTestCase { } } - assertEquals(maxSeqIDOnReplica, recoveringEngine.getLocalCheckpointTracker().getMaxSeqNo()); - assertEquals(maxSeqIDOnReplica, recoveringEngine.getLocalCheckpointTracker().getCheckpoint()); + assertEquals(maxSeqIDOnReplica, recoveringEngine.getSeqNoStats(-1).getMaxSeqNo()); + assertEquals(maxSeqIDOnReplica, recoveringEngine.getLocalCheckpoint()); if ((flushed = randomBoolean())) { - globalCheckpoint.set(recoveringEngine.getLocalCheckpointTracker().getMaxSeqNo()); + globalCheckpoint.set(recoveringEngine.getSeqNoStats(-1).getMaxSeqNo()); recoveringEngine.getTranslog().sync(); recoveringEngine.flush(true, true); } @@ -4021,11 +4021,11 @@ public class InternalEngineTests extends EngineTestCase { assertThat(recoveringEngine.getTranslog().stats().getUncommittedOperations(), equalTo(0)); } recoveringEngine.recoverFromTranslog(); - assertEquals(maxSeqIDOnReplica, recoveringEngine.getLocalCheckpointTracker().getMaxSeqNo()); - assertEquals(maxSeqIDOnReplica, recoveringEngine.getLocalCheckpointTracker().getCheckpoint()); + assertEquals(maxSeqIDOnReplica, recoveringEngine.getSeqNoStats(-1).getMaxSeqNo()); + assertEquals(maxSeqIDOnReplica, recoveringEngine.getLocalCheckpoint()); assertEquals(0, recoveringEngine.fillSeqNoGaps(3)); - assertEquals(maxSeqIDOnReplica, recoveringEngine.getLocalCheckpointTracker().getMaxSeqNo()); - assertEquals(maxSeqIDOnReplica, recoveringEngine.getLocalCheckpointTracker().getCheckpoint()); + assertEquals(maxSeqIDOnReplica, recoveringEngine.getSeqNoStats(-1).getMaxSeqNo()); + assertEquals(maxSeqIDOnReplica, recoveringEngine.getLocalCheckpoint()); } finally { IOUtils.close(recoveringEngine); } @@ -4208,7 +4208,7 @@ public class InternalEngineTests extends EngineTestCase { // Advance the global checkpoint during the flush to create a lag between a persisted global checkpoint in the translog // (this value is visible to the deletion policy) and an in memory global checkpoint in the SequenceNumbersService. if (rarely()) { - globalCheckpoint.set(randomLongBetween(globalCheckpoint.get(), getLocalCheckpointTracker().getCheckpoint())); + globalCheckpoint.set(randomLongBetween(globalCheckpoint.get(), getLocalCheckpoint())); } super.commitIndexWriter(writer, translog, syncId); } @@ -4220,7 +4220,7 @@ public class InternalEngineTests extends EngineTestCase { document.add(new Field(SourceFieldMapper.NAME, BytesReference.toBytes(B_1), SourceFieldMapper.Defaults.FIELD_TYPE)); engine.index(indexForDoc(testParsedDocument(Integer.toString(docId), null, document, B_1, null))); if (frequently()) { - globalCheckpoint.set(randomLongBetween(globalCheckpoint.get(), engine.getLocalCheckpointTracker().getCheckpoint())); + globalCheckpoint.set(randomLongBetween(globalCheckpoint.get(), engine.getLocalCheckpoint())); engine.getTranslog().sync(); } if (frequently()) { @@ -4354,11 +4354,11 @@ public class InternalEngineTests extends EngineTestCase { engine.flush(false, randomBoolean()); List commits = DirectoryReader.listCommits(store.directory()); // Global checkpoint advanced but not enough - all commits are kept. - globalCheckpoint.set(randomLongBetween(globalCheckpoint.get(), engine.getLocalCheckpointTracker().getCheckpoint() - 1)); + globalCheckpoint.set(randomLongBetween(globalCheckpoint.get(), engine.getLocalCheckpoint() - 1)); engine.syncTranslog(); assertThat(DirectoryReader.listCommits(store.directory()), equalTo(commits)); // Global checkpoint advanced enough - only the last commit is kept. - globalCheckpoint.set(randomLongBetween(engine.getLocalCheckpointTracker().getCheckpoint(), Long.MAX_VALUE)); + globalCheckpoint.set(randomLongBetween(engine.getLocalCheckpoint(), Long.MAX_VALUE)); engine.syncTranslog(); assertThat(DirectoryReader.listCommits(store.directory()), contains(commits.get(commits.size() - 1))); } @@ -4382,7 +4382,7 @@ public class InternalEngineTests extends EngineTestCase { for (int i = 0; i < numSnapshots; i++) { snapshots.add(engine.acquireSafeIndexCommit()); // taking snapshots from the safe commit. } - globalCheckpoint.set(engine.getLocalCheckpointTracker().getCheckpoint()); + globalCheckpoint.set(engine.getLocalCheckpoint()); engine.syncTranslog(); final List commits = DirectoryReader.listCommits(store.directory()); for (int i = 0; i < numSnapshots - 1; i++) { @@ -4432,13 +4432,13 @@ public class InternalEngineTests extends EngineTestCase { assertThat(engine.getTranslog().stats().getUncommittedOperations(), equalTo(0)); // If the new index commit still points to the same translog generation as the current index commit, // we should not enable the periodically flush condition; otherwise we can get into an infinite loop of flushes. - engine.getLocalCheckpointTracker().generateSeqNo(); // create a gap here + generateNewSeqNo(engine); // create a gap here for (int id = 0; id < numDocs; id++) { if (randomBoolean()) { translog.rollGeneration(); } final ParsedDocument doc = testParsedDocument("new" + id, null, testDocumentWithTextField(), SOURCE, null); - engine.index(replicaIndexForDoc(doc, 2L, engine.getLocalCheckpointTracker().generateSeqNo(), false)); + engine.index(replicaIndexForDoc(doc, 2L, generateNewSeqNo(engine), false)); if (engine.shouldPeriodicallyFlush()) { engine.flush(); assertThat(engine.getLastCommittedSegmentInfos(), not(sameInstance(lastCommitInfo))); @@ -4459,7 +4459,7 @@ public class InternalEngineTests extends EngineTestCase { engine.onSettingsChanged(); final int numOps = scaledRandomIntBetween(100, 10_000); for (int i = 0; i < numOps; i++) { - final long localCheckPoint = engine.getLocalCheckpointTracker().getCheckpoint(); + final long localCheckPoint = engine.getLocalCheckpoint(); final long seqno = randomLongBetween(Math.max(0, localCheckPoint), localCheckPoint + 5); final ParsedDocument doc = testParsedDocument(Long.toString(seqno), null, testDocumentWithTextField(), SOURCE, null); engine.index(replicaIndexForDoc(doc, 1L, seqno, false)); @@ -4546,9 +4546,9 @@ public class InternalEngineTests extends EngineTestCase { } final long deleteBatch = between(10, 20); final long gapSeqNo = randomLongBetween( - engine.getLocalCheckpointTracker().getMaxSeqNo() + 1, engine.getLocalCheckpointTracker().getMaxSeqNo() + deleteBatch); + engine.getSeqNoStats(-1).getMaxSeqNo() + 1, engine.getSeqNoStats(-1).getMaxSeqNo() + deleteBatch); for (int i = 0; i < deleteBatch; i++) { - final long seqno = engine.getLocalCheckpointTracker().generateSeqNo(); + final long seqno = generateNewSeqNo(engine); if (seqno != gapSeqNo) { if (randomBoolean()) { clock.incrementAndGet(); @@ -4595,7 +4595,7 @@ public class InternalEngineTests extends EngineTestCase { for (int i = 0; i < numDocs; i++) { ParsedDocument doc = testParsedDocument("append-only" + i, null, testDocumentWithTextField(), SOURCE, null); if (randomBoolean()) { - engine.index(appendOnlyReplica(doc, randomBoolean(), 1, engine.getLocalCheckpointTracker().generateSeqNo())); + engine.index(appendOnlyReplica(doc, randomBoolean(), 1, generateNewSeqNo(engine))); } else { engine.index(appendOnlyPrimary(doc, randomBoolean(), randomNonNegativeLong())); } @@ -4612,7 +4612,7 @@ public class InternalEngineTests extends EngineTestCase { for (int i = 0; i < numOps; i++) { ParsedDocument parsedDocument = testParsedDocument(Integer.toString(i), null, testDocumentWithTextField(), SOURCE, null); if (randomBoolean()) { // On replica - update max_seqno for non-append-only operations - final long seqno = engine.getLocalCheckpointTracker().generateSeqNo(); + final long seqno = generateNewSeqNo(engine); final Engine.Index doc = replicaIndexForDoc(parsedDocument, 1, seqno, randomBoolean()); if (randomBoolean()) { engine.index(doc); @@ -4631,7 +4631,7 @@ public class InternalEngineTests extends EngineTestCase { } appendOnlyIndexer.join(120_000); assertThat(engine.getMaxSeqNoOfNonAppendOnlyOperations(), equalTo(maxSeqNoOfNonAppendOnly)); - globalCheckpoint.set(engine.getLocalCheckpointTracker().getCheckpoint()); + globalCheckpoint.set(engine.getLocalCheckpoint()); engine.syncTranslog(); engine.flush(); } @@ -4643,15 +4643,14 @@ public class InternalEngineTests extends EngineTestCase { public void testSkipOptimizeForExposedAppendOnlyOperations() throws Exception { long lookupTimes = 0L; - final LocalCheckpointTracker localCheckpointTracker = engine.getLocalCheckpointTracker(); final int initDocs = between(0, 10); for (int i = 0; i < initDocs; i++) { index(engine, i); lookupTimes++; } // doc1 is delayed and arrived after a non-append-only op. - final long seqNoAppendOnly1 = localCheckpointTracker.generateSeqNo(); - final long seqnoNormalOp = localCheckpointTracker.generateSeqNo(); + final long seqNoAppendOnly1 = generateNewSeqNo(engine); + final long seqnoNormalOp = generateNewSeqNo(engine); if (randomBoolean()) { engine.index(replicaIndexForDoc( testParsedDocument("d", null, testDocumentWithTextField(), SOURCE, null), 1, seqnoNormalOp, false)); @@ -4670,7 +4669,7 @@ public class InternalEngineTests extends EngineTestCase { // optimize for other append-only 2 (its seqno > max_seqno of non-append-only) - do not look up in version map. engine.index(appendOnlyReplica(testParsedDocument("append-only-2", null, testDocumentWithTextField(), SOURCE, null), - false, randomNonNegativeLong(), localCheckpointTracker.generateSeqNo())); + false, randomNonNegativeLong(), generateNewSeqNo(engine))); assertThat(engine.getNumVersionLookups(), equalTo(lookupTimes)); } diff --git a/server/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java b/server/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java index 2f420dcbc4d..31afb5ed42f 100644 --- a/server/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java +++ b/server/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java @@ -75,6 +75,7 @@ import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.VersionType; import org.elasticsearch.index.engine.Engine; import org.elasticsearch.index.engine.EngineException; +import org.elasticsearch.index.engine.EngineTestCase; import org.elasticsearch.index.engine.InternalEngine; import org.elasticsearch.index.engine.InternalEngineFactory; import org.elasticsearch.index.engine.Segment; @@ -847,7 +848,7 @@ public class IndexShardTests extends IndexShardTestCase { recoverReplica(replicaShard, primaryShard); final int maxSeqNo = randomIntBetween(0, 128); for (int i = 0; i <= maxSeqNo; i++) { - primaryShard.getEngine().getLocalCheckpointTracker().generateSeqNo(); + EngineTestCase.generateNewSeqNo(primaryShard.getEngine()); } final long checkpoint = rarely() ? maxSeqNo - scaledRandomIntBetween(0, maxSeqNo) : maxSeqNo; diff --git a/server/src/test/java/org/elasticsearch/snapshots/SharedClusterSnapshotRestoreIT.java b/server/src/test/java/org/elasticsearch/snapshots/SharedClusterSnapshotRestoreIT.java index 7e5f9dbb820..06499aa544e 100644 --- a/server/src/test/java/org/elasticsearch/snapshots/SharedClusterSnapshotRestoreIT.java +++ b/server/src/test/java/org/elasticsearch/snapshots/SharedClusterSnapshotRestoreIT.java @@ -77,6 +77,7 @@ import org.elasticsearch.core.internal.io.IOUtils; import org.elasticsearch.index.Index; import org.elasticsearch.index.IndexService; import org.elasticsearch.index.engine.Engine; +import org.elasticsearch.index.engine.EngineTestCase; import org.elasticsearch.index.shard.IndexShard; import org.elasticsearch.index.shard.ShardId; import org.elasticsearch.indices.IndicesService; @@ -3334,7 +3335,7 @@ public class SharedClusterSnapshotRestoreIT extends AbstractSnapshotIntegTestCas final Index index = resolveIndex(indexName); final IndexShard primary = internalCluster().getInstance(IndicesService.class, dataNode).getShardOrNull(new ShardId(index, 0)); // create a gap in the sequence numbers - getEngineFromShard(primary).getLocalCheckpointTracker().generateSeqNo(); + EngineTestCase.generateNewSeqNo(getEngineFromShard(primary)); for (int i = 5; i < 10; i++) { index(indexName, "_doc", Integer.toString(i), "foo", "bar" + i); diff --git a/test/framework/src/main/java/org/elasticsearch/index/engine/EngineTestCase.java b/test/framework/src/main/java/org/elasticsearch/index/engine/EngineTestCase.java index 8fff17900b0..0d5e693d62d 100644 --- a/test/framework/src/main/java/org/elasticsearch/index/engine/EngineTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/index/engine/EngineTestCase.java @@ -386,6 +386,15 @@ public abstract class EngineTestCase extends ESTestCase { IndexWriter createWriter(Directory directory, IndexWriterConfig iwc) throws IOException; } + /** + * Generate a new sequence number and return it. Only works on InternalEngines + */ + public static long generateNewSeqNo(final Engine engine) { + assert engine instanceof InternalEngine : "expected InternalEngine, got: " + engine.getClass(); + InternalEngine internalEngine = (InternalEngine) engine; + return internalEngine.getLocalCheckpointTracker().generateSeqNo(); + } + public static InternalEngine createInternalEngine( @Nullable final IndexWriterFactory indexWriterFactory, @Nullable final BiFunction localCheckpointTrackerSupplier, diff --git a/test/framework/src/main/java/org/elasticsearch/index/shard/IndexShardTestCase.java b/test/framework/src/main/java/org/elasticsearch/index/shard/IndexShardTestCase.java index 655112a0646..9b21af71370 100644 --- a/test/framework/src/main/java/org/elasticsearch/index/shard/IndexShardTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/index/shard/IndexShardTestCase.java @@ -570,7 +570,7 @@ public abstract class IndexShardTestCase extends ESTestCase { IndexRequest.UNSET_AUTO_GENERATED_TIMESTAMP, false); } shard.updateLocalCheckpointForShard(shard.routingEntry().allocationId().getId(), - shard.getEngine().getLocalCheckpointTracker().getCheckpoint()); + shard.getLocalCheckpoint()); } else { result = shard.applyIndexOperationOnReplica(shard.seqNoStats().getMaxSeqNo() + 1, 0, VersionType.EXTERNAL, IndexRequest.UNSET_AUTO_GENERATED_TIMESTAMP, false, sourceToParse); From 3db1fe7afe8e53081fa38867b76fe818a9094ede Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Fri, 8 Jun 2018 21:19:16 -0400 Subject: [PATCH 51/62] Remove version from license file name for GCS SDK (#31221) Most of our license file names strip the version off the artifact name when deducing the license filename. However, the version on the GCS SDK (google-api-services-storage) does not match the usual format and instead starts with a vee. This means that the license filename for this license ended up carrying the version and we should not do that. This commit adjusts the regex the deduces the license filename to account for this case, and adjusts the google-api-services-storage license files accordingly. --- .../gradle/precommit/DependencyLicensesTask.groovy | 2 +- ...v115-LICENSE.txt => google-api-services-storage-LICENSE.txt} | 0 ...rev115-NOTICE.txt => google-api-services-storage-NOTICE.txt} | 0 3 files changed, 1 insertion(+), 1 deletion(-) rename plugins/repository-gcs/licenses/{google-api-services-storage-v1-rev115-LICENSE.txt => google-api-services-storage-LICENSE.txt} (100%) rename plugins/repository-gcs/licenses/{google-api-services-storage-v1-rev115-NOTICE.txt => google-api-services-storage-NOTICE.txt} (100%) diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/DependencyLicensesTask.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/DependencyLicensesTask.groovy index 4d292d87ec3..df30326a59d 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/DependencyLicensesTask.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/DependencyLicensesTask.groovy @@ -151,7 +151,7 @@ public class DependencyLicensesTask extends DefaultTask { for (File dependency : dependencies) { String jarName = dependency.getName() - String depName = jarName - ~/\-\d+.*/ + String depName = jarName - ~/\-v?\d+.*/ if (ignoreShas.contains(depName)) { // local deps should not have sha files! if (getShaFile(jarName).exists()) { diff --git a/plugins/repository-gcs/licenses/google-api-services-storage-v1-rev115-LICENSE.txt b/plugins/repository-gcs/licenses/google-api-services-storage-LICENSE.txt similarity index 100% rename from plugins/repository-gcs/licenses/google-api-services-storage-v1-rev115-LICENSE.txt rename to plugins/repository-gcs/licenses/google-api-services-storage-LICENSE.txt diff --git a/plugins/repository-gcs/licenses/google-api-services-storage-v1-rev115-NOTICE.txt b/plugins/repository-gcs/licenses/google-api-services-storage-NOTICE.txt similarity index 100% rename from plugins/repository-gcs/licenses/google-api-services-storage-v1-rev115-NOTICE.txt rename to plugins/repository-gcs/licenses/google-api-services-storage-NOTICE.txt From 65c107b47d6afaae8851e07b3d239c9cabb709e3 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Sat, 9 Jun 2018 07:28:41 -0400 Subject: [PATCH 52/62] Fix unknown licenses (#31223) The goal of this commit is to address unknown licenses when producing the dependencies info report. We have two different checks that we run on licenses. The first check is whether or not we have stashed a copy of the license text for a dependency in the repository. The second is to map every dependency to a license type (e.g., BSD 3-clause). The problem here is that the way we were handling licenses in the second check differs from how we handle licenses in the first check. The first check works by finding a license file with the name of the artifact followed by the text -LICENSE.txt. Yet in some cases we allow mapping an artifact name to another name used to check for the license (e.g., we map lucene-.* to lucene, and opensaml-.* to shibboleth. The second check understood the first way of looking for a license file but not the second way. So in this commit we teach the second check about the mappings from artifact names to license names. We do this by copying the configuration from the dependencyLicenses task to the dependenciesInfo task and then reusing the code from the first check in the second check. There were some other challenges here though. For example, dependenciesInfo was checking too many dependencies. For now, we should only be checking direct dependencies and leaving transitive dependencies from another org.elasticsearch artifact to that artifact (we want to do this differently in a follow-up). We also want to disable dependenciesInfo for projects that we do not publish, users only care about licenses they might be exposed to if they use our assembled products. With all of the changes in this commit we have eliminated all unknown licenses. A follow-up will enforce that when we add a new dependency it does not get mapped to unknown, these will be forbidden in the future. Therefore, with this change and earlier changes are left having no unknown licenses and two custom licenses; custom here means it does not map to an SPDX license type. Those two licenses are xz and ldapsdk. A future change will not allow additional custom licenses unless they are explicitly whitelisted. This ensures that if a new dependency is added it is mapped to an SPDX license or mapped to custom because it does not have an SPDX license. --- build.gradle | 7 ++- .../elasticsearch/gradle/BuildPlugin.groovy | 6 ++- .../gradle/DependenciesInfoTask.groovy | 47 +++++++++++++++---- .../precommit/DependencyLicensesTask.groovy | 35 ++++++++------ .../build.gradle | 3 ++ distribution/build.gradle | 5 ++ test/fixtures/example-fixture/build.gradle | 2 + x-pack/qa/build.gradle | 4 ++ x-pack/qa/sql/build.gradle | 1 + x-pack/test/feature-aware/build.gradle | 1 + 10 files changed, 87 insertions(+), 24 deletions(-) diff --git a/build.gradle b/build.gradle index 015db80d325..6517d0292ba 100644 --- a/build.gradle +++ b/build.gradle @@ -543,7 +543,7 @@ subprojects { project -> } } -/* Remove assemble on all qa projects because we don't need to publish +/* Remove assemble/dependenciesInfo on all qa projects because we don't need to publish * artifacts for them. */ gradle.projectsEvaluated { subprojects { @@ -553,6 +553,11 @@ gradle.projectsEvaluated { project.tasks.remove(assemble) project.build.dependsOn.remove('assemble') } + Task dependenciesInfo = project.tasks.findByName('dependenciesInfo') + if (dependenciesInfo) { + project.tasks.remove(dependenciesInfo) + project.precommit.dependsOn.remove('dependenciesInfo') + } } } } diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy index 85fe712fd8d..eb3cd1dc8c6 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/BuildPlugin.groovy @@ -762,6 +762,10 @@ class BuildPlugin implements Plugin { private static configureDependenciesInfo(Project project) { Task deps = project.tasks.create("dependenciesInfo", DependenciesInfoTask.class) - deps.dependencies = project.configurations.compile.allDependencies + deps.runtimeConfiguration = project.configurations.runtime + deps.compileOnlyConfiguration = project.configurations.compileOnly + project.afterEvaluate { + deps.mappings = project.dependencyLicenses.mappings + } } } diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/DependenciesInfoTask.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/DependenciesInfoTask.groovy index b42e6cc8e3c..e62fe4db954 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/DependenciesInfoTask.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/DependenciesInfoTask.groovy @@ -19,14 +19,19 @@ package org.elasticsearch.gradle +import org.elasticsearch.gradle.precommit.DependencyLicensesTask import org.gradle.api.DefaultTask +import org.gradle.api.artifacts.Configuration import org.gradle.api.artifacts.Dependency +import org.gradle.api.artifacts.DependencyResolutionListener import org.gradle.api.artifacts.DependencySet import org.gradle.api.tasks.Input import org.gradle.api.tasks.InputDirectory import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.TaskAction +import java.util.regex.Matcher +import java.util.regex.Pattern /** * A task to gather information about the dependencies and export them into a csv file. @@ -44,7 +49,14 @@ public class DependenciesInfoTask extends DefaultTask { /** Dependencies to gather information from. */ @Input - public DependencySet dependencies + public Configuration runtimeConfiguration + + /** We subtract compile-only dependencies. */ + @Input + public Configuration compileOnlyConfiguration + + @Input + public LinkedHashMap mappings /** Directory to read license files */ @InputDirectory @@ -59,15 +71,34 @@ public class DependenciesInfoTask extends DefaultTask { @TaskAction public void generateDependenciesInfo() { + + final DependencySet runtimeDependencies = runtimeConfiguration.getAllDependencies() + // we have to resolve the transitive dependencies and create a group:artifactId:version map + final Set compileOnlyArtifacts = + compileOnlyConfiguration + .getResolvedConfiguration() + .resolvedArtifacts + .collect { it -> "${it.moduleVersion.id.group}:${it.moduleVersion.id.name}:${it.moduleVersion.id.version}" } + final StringBuilder output = new StringBuilder() - for (Dependency dependency : dependencies) { - // Only external dependencies are checked - if (dependency.group != null && dependency.group.contains("elasticsearch") == false) { - final String url = createURL(dependency.group, dependency.name, dependency.version) - final String licenseType = getLicenseType(dependency.group, dependency.name) - output.append("${dependency.group}:${dependency.name},${dependency.version},${url},${licenseType}\n") + for (final Dependency dependency : runtimeDependencies) { + // we do not need compile-only dependencies here + if (compileOnlyArtifacts.contains("${dependency.group}:${dependency.name}:${dependency.version}")) { + continue } + // only external dependencies are checked + if (dependency.group != null && dependency.group.contains("org.elasticsearch")) { + continue + } + + final String url = createURL(dependency.group, dependency.name, dependency.version) + final String dependencyName = DependencyLicensesTask.getDependencyName(mappings, dependency.name) + logger.info("mapped dependency ${dependency.group}:${dependency.name} to ${dependencyName} for license info") + + final String licenseType = getLicenseType(dependency.group, dependencyName) + output.append("${dependency.group}:${dependency.name},${dependency.version},${url},${licenseType}\n") + } outputFile.setText(output.toString(), 'UTF-8') } @@ -173,7 +204,7 @@ are met: derived from this software without specific prior written permission\\.| (3\\.)? Neither the name of .+ nor the names of its contributors may be used to endorse or promote products derived from - this software without specific prior written permission\\.) + this software without specific prior written permission\\.) THIS SOFTWARE IS PROVIDED BY .+ (``|''|")AS IS(''|") AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/DependencyLicensesTask.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/DependencyLicensesTask.groovy index df30326a59d..04fb023e205 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/DependencyLicensesTask.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/DependencyLicensesTask.groovy @@ -109,6 +109,10 @@ public class DependencyLicensesTask extends DefaultTask { mappings.put(from, to) } + public LinkedHashMap getMappings() { + return new LinkedHashMap<>(mappings) + } + /** * Add a rule which will skip SHA checking for the given dependency name. This should be used for * locally build dependencies, which cause the sha to change constantly. @@ -129,10 +133,6 @@ public class DependencyLicensesTask extends DefaultTask { throw new GradleException("Licences dir ${licensesDir} does not exist, but there are dependencies") } - - // order is the same for keys and values iteration since we use a linked hashmap - List mapped = new ArrayList<>(mappings.values()) - Pattern mappingsPattern = Pattern.compile('(' + mappings.keySet().join(')|(') + ')') Map licenses = new HashMap<>() Map notices = new HashMap<>() Set shaFiles = new HashSet() @@ -162,16 +162,10 @@ public class DependencyLicensesTask extends DefaultTask { checkSha(dependency, jarName, shaFiles) } - logger.info("Checking license/notice for " + depName) - Matcher match = mappingsPattern.matcher(depName) - if (match.matches()) { - int i = 0 - while (i < match.groupCount() && match.group(i + 1) == null) ++i; - logger.info("Mapped dependency name ${depName} to ${mapped.get(i)} for license check") - depName = mapped.get(i) - } - checkFile(depName, jarName, licenses, 'LICENSE') - checkFile(depName, jarName, notices, 'NOTICE') + final String dependencyName = getDependencyName(mappings, depName) + logger.info("mapped dependency name ${depName} to ${dependencyName} for license/notice check") + checkFile(dependencyName, jarName, licenses, 'LICENSE') + checkFile(dependencyName, jarName, notices, 'NOTICE') } licenses.each { license, count -> @@ -189,6 +183,19 @@ public class DependencyLicensesTask extends DefaultTask { } } + public static String getDependencyName(final LinkedHashMap mappings, final String dependencyName) { + // order is the same for keys and values iteration since we use a linked hashmap + List mapped = new ArrayList<>(mappings.values()) + Pattern mappingsPattern = Pattern.compile('(' + mappings.keySet().join(')|(') + ')') + Matcher match = mappingsPattern.matcher(dependencyName) + if (match.matches()) { + int i = 0 + while (i < match.groupCount() && match.group(i + 1) == null) ++i; + return mapped.get(i) + } + return dependencyName + } + private File getShaFile(String jarName) { return new File(licensesDir, jarName + SHA_EXTENSION) } diff --git a/client/client-benchmark-noop-api-plugin/build.gradle b/client/client-benchmark-noop-api-plugin/build.gradle index bee41034c3c..cc84207d90d 100644 --- a/client/client-benchmark-noop-api-plugin/build.gradle +++ b/client/client-benchmark-noop-api-plugin/build.gradle @@ -31,6 +31,9 @@ esplugin { tasks.remove(assemble) build.dependsOn.remove('assemble') +dependencyLicenses.enabled = false +dependenciesInfo.enabled = false + compileJava.options.compilerArgs << "-Xlint:-cast,-deprecation,-rawtypes,-try,-unchecked" // no unit tests diff --git a/distribution/build.gradle b/distribution/build.gradle index fa62513a540..7f08c244f45 100644 --- a/distribution/build.gradle +++ b/distribution/build.gradle @@ -32,6 +32,11 @@ Collection distributions = project('archives').subprojects + project('packages') // Concatenates the dependencies CSV files into a single file task generateDependenciesReport(type: ConcatFilesTask) { + project.rootProject.allprojects { + afterEvaluate { + if (it.tasks.findByName("dependenciesInfo")) dependsOn it.tasks.dependenciesInfo + } + } files = fileTree(dir: project.rootDir, include: '**/dependencies.csv' ) headerLine = "name,version,url,license" target = new File(System.getProperty('csv')?: "${project.buildDir}/dependencies/es-dependencies.csv") diff --git a/test/fixtures/example-fixture/build.gradle b/test/fixtures/example-fixture/build.gradle index 225a2cf9deb..ce562e89abb 100644 --- a/test/fixtures/example-fixture/build.gradle +++ b/test/fixtures/example-fixture/build.gradle @@ -22,3 +22,5 @@ test.enabled = false // Not published so no need to assemble tasks.remove(assemble) build.dependsOn.remove('assemble') + +dependenciesInfo.enabled = false diff --git a/x-pack/qa/build.gradle b/x-pack/qa/build.gradle index 1570b218592..24b6618b7d8 100644 --- a/x-pack/qa/build.gradle +++ b/x-pack/qa/build.gradle @@ -28,5 +28,9 @@ gradle.projectsEvaluated { project.tasks.remove(assemble) project.build.dependsOn.remove('assemble') } + Task dependenciesInfo = project.tasks.findByName('dependenciesInfo') + if (dependenciesInfo) { + project.precommit.dependsOn.remove('dependenciesInfo') + } } } diff --git a/x-pack/qa/sql/build.gradle b/x-pack/qa/sql/build.gradle index a3c147bbc04..0bea3a9364b 100644 --- a/x-pack/qa/sql/build.gradle +++ b/x-pack/qa/sql/build.gradle @@ -22,6 +22,7 @@ dependencies { test.enabled = false dependencyLicenses.enabled = false +dependenciesInfo.enabled = false // the main files are actually test files, so use the appropriate forbidden api sigs forbiddenApisMain { diff --git a/x-pack/test/feature-aware/build.gradle b/x-pack/test/feature-aware/build.gradle index 217ed25a2d4..11b0e67183c 100644 --- a/x-pack/test/feature-aware/build.gradle +++ b/x-pack/test/feature-aware/build.gradle @@ -10,6 +10,7 @@ dependencies { forbiddenApisMain.enabled = true dependencyLicenses.enabled = false +dependenciesInfo.enabled = false jarHell.enabled = false From 1082ea57c819301afff2e6cb0192c552112db4ff Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Sat, 9 Jun 2018 09:46:57 -0400 Subject: [PATCH 53/62] Add recognition of MPL 2.0 (#31226) This commit adds the ability for the dependencies info check to recognize version 2.0 of the Mozilla Public License. --- .../org/elasticsearch/gradle/DependenciesInfoTask.groovy | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/DependenciesInfoTask.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/DependenciesInfoTask.groovy index e62fe4db954..13e457c0317 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/DependenciesInfoTask.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/DependenciesInfoTask.groovy @@ -245,6 +245,8 @@ SOFTWARE\\. final String MOZILLA_1_1 = "Mozilla Public License.*Version 1.1" + final String MOZILLA_2_0 = "Mozilla\\s*Public\\s*License\\s*Version\\s*2\\.0" + switch (licenseText) { case ~/.*${APACHE_2_0}.*/: spdx = 'Apache-2.0' @@ -273,6 +275,9 @@ SOFTWARE\\. case ~/.*${MOZILLA_1_1}.*/: spdx = 'MPL-1.1' break + case ~/.*${MOZILLA_2_0}.*/: + spdx = 'MPL-2.0' + break default: break } From 1d840f934824641380395095d41dcf0671e93764 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Sat, 9 Jun 2018 09:50:24 -0400 Subject: [PATCH 54/62] Remove dependencies report task dependencies (#31227) A previous commit tried to add task dependencies for the :distribution:generateDependenciesReport task so that a user did not have to run "dependenciesInfo :distribution:generateDependenciesReport". However this method did not reliably add all task dependencies due to task ordering issues in previous versions of Gradle and our build. This commit removes this for now and a user will continue to have to run "dependenciesInfo :distribution:generateDependenciesReport". --- distribution/build.gradle | 5 ----- 1 file changed, 5 deletions(-) diff --git a/distribution/build.gradle b/distribution/build.gradle index 7f08c244f45..fa62513a540 100644 --- a/distribution/build.gradle +++ b/distribution/build.gradle @@ -32,11 +32,6 @@ Collection distributions = project('archives').subprojects + project('packages') // Concatenates the dependencies CSV files into a single file task generateDependenciesReport(type: ConcatFilesTask) { - project.rootProject.allprojects { - afterEvaluate { - if (it.tasks.findByName("dependenciesInfo")) dependsOn it.tasks.dependenciesInfo - } - } files = fileTree(dir: project.rootDir, include: '**/dependencies.csv' ) headerLine = "name,version,url,license" target = new File(System.getProperty('csv')?: "${project.buildDir}/dependencies/es-dependencies.csv") From aa8aa0d9e0275ba30c58cc58b14ca39adcf7eff7 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Sat, 9 Jun 2018 09:50:36 -0400 Subject: [PATCH 55/62] Move default location of dependencies report (#31228) This commit moves the default location of the full dependencies report to be under the reports directory to align it with the location for the dependenciesInfo task output. --- distribution/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distribution/build.gradle b/distribution/build.gradle index fa62513a540..068c8da480f 100644 --- a/distribution/build.gradle +++ b/distribution/build.gradle @@ -34,7 +34,7 @@ Collection distributions = project('archives').subprojects + project('packages') task generateDependenciesReport(type: ConcatFilesTask) { files = fileTree(dir: project.rootDir, include: '**/dependencies.csv' ) headerLine = "name,version,url,license" - target = new File(System.getProperty('csv')?: "${project.buildDir}/dependencies/es-dependencies.csv") + target = new File(System.getProperty('csv')?: "${project.buildDir}/reports/dependencies/es-dependencies.csv") } /***************************************************************************** From f8cbc812585092112660ae888e9d23609992d6ac Mon Sep 17 00:00:00 2001 From: Andy Bristol Date: Sun, 10 Jun 2018 08:12:46 -0700 Subject: [PATCH 56/62] [test] add fix for rare virtualbox error (#31212) See the vagrant issue mentioned in this commit for details. This error has happened a couple times in packaging test CI builds with workers using virtualbox 5.2.10r122088 --- Vagrantfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Vagrantfile b/Vagrantfile index d53c80754e6..7322399fed5 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -31,6 +31,9 @@ Vagrant.configure(2) do |config| # Give the box more memory and cpu because our tests are beasts! vbox.memory = Integer(ENV['VAGRANT_MEMORY'] || 8192) vbox.cpus = Integer(ENV['VAGRANT_CPUS'] || 4) + + # see https://github.com/hashicorp/vagrant/issues/9524 + vbox.customize ["modifyvm", :id, "--audio", "none"] end # Switch the default share for the project root from /vagrant to From bd5c1a4590ea72cecf301ac85244e5249a5af269 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Mon, 11 Jun 2018 02:03:21 +0200 Subject: [PATCH 57/62] Move java version checker back to its own jar (#30708) The java version checker requires being written with java 7 APIs. In order to use java 8 apis in other launcher utilities, this commit moves the java version checker back to its own jar. --- distribution/build.gradle | 1 + distribution/src/bin/elasticsearch-env | 2 +- distribution/src/bin/elasticsearch-env.bat | 2 +- .../tools/java-version-checker/build.gradle | 14 ++++++++++ .../java_version_checker}/JavaVersion.java | 8 +++--- .../JavaVersionChecker.java | 28 ++++++++++++++++--- .../SuppressForbidden.java | 5 ++-- distribution/tools/launchers/build.gradle | 17 ++++------- .../tools/launchers/JvmOptionsParser.java | 2 ++ .../tools/launchers/Launchers.java | 2 ++ settings.gradle | 1 + 11 files changed, 59 insertions(+), 23 deletions(-) create mode 100644 distribution/tools/java-version-checker/build.gradle rename distribution/tools/{launchers/src/main/java/org/elasticsearch/tools/launchers => java-version-checker/src/main/java/org/elasticsearch/tools/java_version_checker}/JavaVersion.java (87%) rename distribution/tools/{launchers/src/main/java/org/elasticsearch/tools/launchers => java-version-checker/src/main/java/org/elasticsearch/tools/java_version_checker}/JavaVersionChecker.java (74%) rename distribution/tools/{launchers/src/main/java/org/elasticsearch/tools/launchers => java-version-checker/src/main/java/org/elasticsearch/tools/java_version_checker}/SuppressForbidden.java (92%) diff --git a/distribution/build.gradle b/distribution/build.gradle index 068c8da480f..ff3a06b4dc5 100644 --- a/distribution/build.gradle +++ b/distribution/build.gradle @@ -231,6 +231,7 @@ configure(subprojects.findAll { ['archives', 'packages'].contains(it.name) }) { from { project(':server').jar } from { project(':server').configurations.runtime } from { project(':libs:plugin-classloader').jar } + from { project(':distribution:tools:java-version-checker').jar } from { project(':distribution:tools:launchers').jar } into('tools/plugin-cli') { from { project(':distribution:tools:plugin-cli').jar } diff --git a/distribution/src/bin/elasticsearch-env b/distribution/src/bin/elasticsearch-env index 9d58d88e7aa..cc16f710345 100644 --- a/distribution/src/bin/elasticsearch-env +++ b/distribution/src/bin/elasticsearch-env @@ -63,7 +63,7 @@ if [ ! -z "$JAVA_OPTS" ]; then fi # check the Java version -"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.JavaVersionChecker +"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.java_version_checker.JavaVersionChecker export HOSTNAME=$HOSTNAME diff --git a/distribution/src/bin/elasticsearch-env.bat b/distribution/src/bin/elasticsearch-env.bat index 8bd5f24864e..b9907670920 100644 --- a/distribution/src/bin/elasticsearch-env.bat +++ b/distribution/src/bin/elasticsearch-env.bat @@ -42,7 +42,7 @@ if defined JAVA_OPTS ( ) rem check the Java version -%JAVA% -cp "%ES_CLASSPATH%" "org.elasticsearch.tools.launchers.JavaVersionChecker" || exit /b 1 +%JAVA% -cp "%ES_CLASSPATH%" "org.elasticsearch.tools.java_version_checker.JavaVersionChecker" || exit /b 1 set HOSTNAME=%COMPUTERNAME% diff --git a/distribution/tools/java-version-checker/build.gradle b/distribution/tools/java-version-checker/build.gradle new file mode 100644 index 00000000000..ad9b56fec05 --- /dev/null +++ b/distribution/tools/java-version-checker/build.gradle @@ -0,0 +1,14 @@ +import org.elasticsearch.gradle.precommit.PrecommitTasks + +apply plugin: 'elasticsearch.build' + +targetCompatibility = JavaVersion.VERSION_1_7 + +// java_version_checker do not depend on core so only JDK signatures should be checked +forbiddenApisMain.signaturesURLs = [PrecommitTasks.getResource('/forbidden/jdk-signatures.txt')] + +test.enabled = false +namingConventions.enabled = false +javadoc.enabled = false +loggerUsageCheck.enabled = false +jarHell.enabled = false diff --git a/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/JavaVersion.java b/distribution/tools/java-version-checker/src/main/java/org/elasticsearch/tools/java_version_checker/JavaVersion.java similarity index 87% rename from distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/JavaVersion.java rename to distribution/tools/java-version-checker/src/main/java/org/elasticsearch/tools/java_version_checker/JavaVersion.java index 30ca7a4a2a7..a06579d8425 100644 --- a/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/JavaVersion.java +++ b/distribution/tools/java-version-checker/src/main/java/org/elasticsearch/tools/java_version_checker/JavaVersion.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.tools.launchers; +package org.elasticsearch.tools.java_version_checker; import java.util.ArrayList; import java.util.List; @@ -25,8 +25,8 @@ import java.util.Objects; public class JavaVersion { - static final List CURRENT = parse(System.getProperty("java.specification.version")); - static final List JAVA_8 = parse("1.8"); + public static final List CURRENT = parse(System.getProperty("java.specification.version")); + public static final List JAVA_8 = parse("1.8"); static List parse(final String value) { if (!value.matches("^0*[0-9]+(\\.[0-9]+)*$")) { @@ -41,7 +41,7 @@ public class JavaVersion { return version; } - static int majorVersion(final List javaVersion) { + public static int majorVersion(final List javaVersion) { Objects.requireNonNull(javaVersion); if (javaVersion.get(0) > 1) { return javaVersion.get(0); diff --git a/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/JavaVersionChecker.java b/distribution/tools/java-version-checker/src/main/java/org/elasticsearch/tools/java_version_checker/JavaVersionChecker.java similarity index 74% rename from distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/JavaVersionChecker.java rename to distribution/tools/java-version-checker/src/main/java/org/elasticsearch/tools/java_version_checker/JavaVersionChecker.java index ed632d060a5..b61c5856084 100644 --- a/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/JavaVersionChecker.java +++ b/distribution/tools/java-version-checker/src/main/java/org/elasticsearch/tools/java_version_checker/JavaVersionChecker.java @@ -17,7 +17,7 @@ * under the License. */ -package org.elasticsearch.tools.launchers; +package org.elasticsearch.tools.java_version_checker; import java.util.Arrays; import java.util.Locale; @@ -45,10 +45,30 @@ final class JavaVersionChecker { Locale.ROOT, "the minimum required Java version is 8; your Java version from [%s] does not meet this requirement", System.getProperty("java.home")); - Launchers.errPrintln(message); - Launchers.exit(1); + errPrintln(message); + exit(1); } - Launchers.exit(0); + exit(0); + } + + /** + * Prints a string and terminates the line on standard error. + * + * @param message the message to print + */ + @SuppressForbidden(reason = "System#err") + static void errPrintln(final String message) { + System.err.println(message); + } + + /** + * Exit the VM with the specified status. + * + * @param status the status + */ + @SuppressForbidden(reason = "System#exit") + static void exit(final int status) { + System.exit(status); } } diff --git a/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/SuppressForbidden.java b/distribution/tools/java-version-checker/src/main/java/org/elasticsearch/tools/java_version_checker/SuppressForbidden.java similarity index 92% rename from distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/SuppressForbidden.java rename to distribution/tools/java-version-checker/src/main/java/org/elasticsearch/tools/java_version_checker/SuppressForbidden.java index 9e44c1497b7..d1299cbff95 100644 --- a/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/SuppressForbidden.java +++ b/distribution/tools/java-version-checker/src/main/java/org/elasticsearch/tools/java_version_checker/SuppressForbidden.java @@ -17,17 +17,18 @@ * under the License. */ -package org.elasticsearch.tools.launchers; +package org.elasticsearch.tools.java_version_checker; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; + /** * Annotation to suppress forbidden-apis errors inside a whole class, a method, or a field. */ @Retention(RetentionPolicy.CLASS) @Target({ ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.METHOD, ElementType.TYPE }) -@interface SuppressForbidden { +public @interface SuppressForbidden { String reason(); } diff --git a/distribution/tools/launchers/build.gradle b/distribution/tools/launchers/build.gradle index ff0f4c473a4..a774691b2eb 100644 --- a/distribution/tools/launchers/build.gradle +++ b/distribution/tools/launchers/build.gradle @@ -22,10 +22,8 @@ import org.gradle.api.JavaVersion apply plugin: 'elasticsearch.build' -sourceCompatibility = JavaVersion.VERSION_1_7 -targetCompatibility = JavaVersion.VERSION_1_7 - dependencies { + compile parent.project('java-version-checker') testCompile "com.carrotsearch.randomizedtesting:randomizedtesting-runner:${versions.randomizedrunner}" testCompile "junit:junit:${versions.junit}" testCompile "org.hamcrest:hamcrest-all:${versions.hamcrest}" @@ -33,13 +31,10 @@ dependencies { archivesBaseName = 'elasticsearch-launchers' -// launchers do not depend on core so only JDK signatures should be checked -forbiddenApisMain { - signaturesURLs = [PrecommitTasks.getResource('/forbidden/jdk-signatures.txt')] -} -forbiddenApisTest { - signaturesURLs = [PrecommitTasks.getResource('/forbidden/jdk-signatures.txt')] -} +// java_version_checker do not depend on core so only JDK signatures should be checked +List jdkSignatures = [PrecommitTasks.getResource('/forbidden/jdk-signatures.txt')] +forbiddenApisMain.signaturesURLs = jdkSignatures +forbiddenApisTest.signaturesURLs = jdkSignatures namingConventions { testClass = 'org.elasticsearch.tools.launchers.LaunchersTestCase' @@ -48,4 +43,4 @@ namingConventions { javadoc.enabled = false loggerUsageCheck.enabled = false -jarHell.enabled=false +jarHell.enabled = false diff --git a/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/JvmOptionsParser.java b/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/JvmOptionsParser.java index 8cd401e5322..7f612132d8c 100644 --- a/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/JvmOptionsParser.java +++ b/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/JvmOptionsParser.java @@ -38,6 +38,8 @@ import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.elasticsearch.tools.java_version_checker.JavaVersion; + /** * Parses JVM options from a file and prints a single line with all JVM options to standard output. */ diff --git a/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/Launchers.java b/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/Launchers.java index 349227c2b6d..6c9a1ef9473 100644 --- a/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/Launchers.java +++ b/distribution/tools/launchers/src/main/java/org/elasticsearch/tools/launchers/Launchers.java @@ -19,6 +19,8 @@ package org.elasticsearch.tools.launchers; +import org.elasticsearch.tools.java_version_checker.SuppressForbidden; + /** * Utility methods for launchers. */ diff --git a/settings.gradle b/settings.gradle index 0d9be7c2494..592d7cc892b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -28,6 +28,7 @@ List projects = [ 'distribution:bwc:staged-minor-snapshot', 'distribution:bwc:next-bugfix-snapshot', 'distribution:bwc:maintenance-bugfix-snapshot', + 'distribution:tools:java-version-checker', 'distribution:tools:launchers', 'distribution:tools:plugin-cli', 'server', From 85c26d682a5a6fbaf345d66b9a783b78f4b1cc63 Mon Sep 17 00:00:00 2001 From: rationull Date: Sun, 10 Jun 2018 23:39:05 -0700 Subject: [PATCH 58/62] Call ensureNoSelfReferences() on _agg state variable after scripted metric agg script executions (#31044) Previously this was called for the combine script only. This change checks for self references for init, map, and reduce scripts as well, and adds unit test coverage for the init, map, and combine cases. --- .../CustomReflectionObjectHandler.java | 2 +- .../common/util/CollectionUtils.java | 21 +++-- .../scripted/InternalScriptedMetric.java | 7 +- .../scripted/ScriptedMetricAggregator.java | 3 +- .../ScriptedMetricAggregatorFactory.java | 2 + .../aggregations/support/ValuesSource.java | 2 +- .../support/values/ScriptBytesValues.java | 2 +- .../subphase/ScriptFieldsFetchSubPhase.java | 2 +- .../search/sort/ScriptSortBuilder.java | 2 +- .../common/util/CollectionUtilsTests.java | 9 ++- .../common/xcontent/BaseXContentTestCase.java | 4 +- .../ScriptedMetricAggregatorTests.java | 80 +++++++++++++++++++ 12 files changed, 118 insertions(+), 18 deletions(-) diff --git a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/CustomReflectionObjectHandler.java b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/CustomReflectionObjectHandler.java index 79319369489..fbfc921bca8 100644 --- a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/CustomReflectionObjectHandler.java +++ b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/CustomReflectionObjectHandler.java @@ -157,7 +157,7 @@ final class CustomReflectionObjectHandler extends ReflectionObjectHandler { @Override public String stringify(Object object) { - CollectionUtils.ensureNoSelfReferences(object); + CollectionUtils.ensureNoSelfReferences(object, "CustomReflectionObjectHandler stringify"); return super.stringify(object); } } diff --git a/server/src/main/java/org/elasticsearch/common/util/CollectionUtils.java b/server/src/main/java/org/elasticsearch/common/util/CollectionUtils.java index 08d02cdea31..4c80c569b9d 100644 --- a/server/src/main/java/org/elasticsearch/common/util/CollectionUtils.java +++ b/server/src/main/java/org/elasticsearch/common/util/CollectionUtils.java @@ -29,6 +29,7 @@ import java.util.Comparator; import java.util.IdentityHashMap; import java.util.LinkedList; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.RandomAccess; @@ -40,6 +41,7 @@ import org.apache.lucene.util.BytesRefArray; import org.apache.lucene.util.BytesRefBuilder; import org.apache.lucene.util.InPlaceMergeSorter; import org.apache.lucene.util.IntroSorter; +import org.elasticsearch.common.Strings; /** Collections-related utility methods. */ public class CollectionUtils { @@ -225,10 +227,17 @@ public class CollectionUtils { return ints.stream().mapToInt(s -> s).toArray(); } - public static void ensureNoSelfReferences(Object value) { + /** + * Deeply inspects a Map, Iterable, or Object array looking for references back to itself. + * @throws IllegalArgumentException if a self-reference is found + * @param value The object to evaluate looking for self references + * @param messageHint A string to be included in the exception message if the call fails, to provide + * more context to the handler of the exception + */ + public static void ensureNoSelfReferences(Object value, String messageHint) { Iterable it = convert(value); if (it != null) { - ensureNoSelfReferences(it, value, Collections.newSetFromMap(new IdentityHashMap<>())); + ensureNoSelfReferences(it, value, Collections.newSetFromMap(new IdentityHashMap<>()), messageHint); } } @@ -247,13 +256,15 @@ public class CollectionUtils { } } - private static void ensureNoSelfReferences(final Iterable value, Object originalReference, final Set ancestors) { + private static void ensureNoSelfReferences(final Iterable value, Object originalReference, final Set ancestors, + String messageHint) { if (value != null) { if (ancestors.add(originalReference) == false) { - throw new IllegalArgumentException("Iterable object is self-referencing itself"); + String suffix = Strings.isNullOrEmpty(messageHint) ? "" : String.format(Locale.ROOT, " (%s)", messageHint); + throw new IllegalArgumentException("Iterable object is self-referencing itself" + suffix); } for (Object o : value) { - ensureNoSelfReferences(convert(o), o, ancestors); + ensureNoSelfReferences(convert(o), o, ancestors, messageHint); } ancestors.remove(originalReference); } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/InternalScriptedMetric.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/InternalScriptedMetric.java index 6f9a6fe5d97..e350ecbed58 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/InternalScriptedMetric.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/InternalScriptedMetric.java @@ -21,6 +21,7 @@ package org.elasticsearch.search.aggregations.metrics.scripted; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.util.CollectionUtils; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.script.ExecutableScript; import org.elasticsearch.script.Script; @@ -97,7 +98,11 @@ public class InternalScriptedMetric extends InternalAggregation implements Scrip ExecutableScript.Factory factory = reduceContext.scriptService().compile( firstAggregation.reduceScript, ExecutableScript.AGGS_CONTEXT); ExecutableScript script = factory.newInstance(vars); - aggregation = Collections.singletonList(script.run()); + + Object scriptResult = script.run(); + CollectionUtils.ensureNoSelfReferences(scriptResult, "reduce script"); + + aggregation = Collections.singletonList(scriptResult); } else if (reduceContext.isFinalReduce()) { aggregation = Collections.singletonList(aggregationObjects); } else { diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregator.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregator.java index 04ef595690a..d6e861a9a67 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregator.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregator.java @@ -69,6 +69,7 @@ public class ScriptedMetricAggregator extends MetricsAggregator { assert bucket == 0 : bucket; leafMapScript.setDocument(doc); leafMapScript.run(); + CollectionUtils.ensureNoSelfReferences(params, "Scripted metric aggs map script"); } }; } @@ -78,7 +79,7 @@ public class ScriptedMetricAggregator extends MetricsAggregator { Object aggregation; if (combineScript != null) { aggregation = combineScript.run(); - CollectionUtils.ensureNoSelfReferences(aggregation); + CollectionUtils.ensureNoSelfReferences(aggregation, "Scripted metric aggs combine script"); } else { aggregation = params.get("_agg"); } diff --git a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregatorFactory.java b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregatorFactory.java index 0bc6a614e54..0deda32e79d 100644 --- a/server/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregatorFactory.java +++ b/server/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregatorFactory.java @@ -19,6 +19,7 @@ package org.elasticsearch.search.aggregations.metrics.scripted; +import org.elasticsearch.common.util.CollectionUtils; import org.elasticsearch.script.ExecutableScript; import org.elasticsearch.script.Script; import org.elasticsearch.script.SearchScript; @@ -89,6 +90,7 @@ public class ScriptedMetricAggregatorFactory extends AggregatorFactory { @Override public BytesRef binaryValue() { final Object run = leafScript.run(); - CollectionUtils.ensureNoSelfReferences(run); + CollectionUtils.ensureNoSelfReferences(run, "ScriptSortBuilder leaf script"); spare.copyChars(run.toString()); return spare.get(); } diff --git a/server/src/test/java/org/elasticsearch/common/util/CollectionUtilsTests.java b/server/src/test/java/org/elasticsearch/common/util/CollectionUtilsTests.java index 2ca8189a972..857c73978df 100644 --- a/server/src/test/java/org/elasticsearch/common/util/CollectionUtilsTests.java +++ b/server/src/test/java/org/elasticsearch/common/util/CollectionUtilsTests.java @@ -183,13 +183,14 @@ public class CollectionUtilsTests extends ESTestCase { } public void testEnsureNoSelfReferences() { - CollectionUtils.ensureNoSelfReferences(emptyMap()); - CollectionUtils.ensureNoSelfReferences(null); + CollectionUtils.ensureNoSelfReferences(emptyMap(), "test with empty map"); + CollectionUtils.ensureNoSelfReferences(null, "test with null"); Map map = new HashMap<>(); map.put("field", map); - IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> CollectionUtils.ensureNoSelfReferences(map)); - assertThat(e.getMessage(), containsString("Iterable object is self-referencing itself")); + IllegalArgumentException e = expectThrows(IllegalArgumentException.class, + () -> CollectionUtils.ensureNoSelfReferences(map, "test with self ref")); + assertThat(e.getMessage(), containsString("Iterable object is self-referencing itself (test with self ref)")); } } diff --git a/server/src/test/java/org/elasticsearch/common/xcontent/BaseXContentTestCase.java b/server/src/test/java/org/elasticsearch/common/xcontent/BaseXContentTestCase.java index b46485952d7..add9fe1af75 100644 --- a/server/src/test/java/org/elasticsearch/common/xcontent/BaseXContentTestCase.java +++ b/server/src/test/java/org/elasticsearch/common/xcontent/BaseXContentTestCase.java @@ -843,8 +843,8 @@ public abstract class BaseXContentTestCase extends ESTestCase { } public void testEnsureNoSelfReferences() throws IOException { - CollectionUtils.ensureNoSelfReferences(emptyMap()); - CollectionUtils.ensureNoSelfReferences(null); + builder().map(emptyMap()); + builder().map(null); Map map = new HashMap<>(); map.put("field", map); diff --git a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregatorTests.java b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregatorTests.java index 0989b1ce6a3..fdedf1055d6 100644 --- a/server/src/test/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregatorTests.java +++ b/server/src/test/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregatorTests.java @@ -73,6 +73,13 @@ public class ScriptedMetricAggregatorTests extends AggregatorTestCase { Collections.singletonMap("divisor", 4)); private static final String CONFLICTING_PARAM_NAME = "initialValue"; + private static final Script INIT_SCRIPT_SELF_REF = new Script(ScriptType.INLINE, MockScriptEngine.NAME, "initScriptSelfRef", + Collections.emptyMap()); + private static final Script MAP_SCRIPT_SELF_REF = new Script(ScriptType.INLINE, MockScriptEngine.NAME, "mapScriptSelfRef", + Collections.emptyMap()); + private static final Script COMBINE_SCRIPT_SELF_REF = new Script(ScriptType.INLINE, MockScriptEngine.NAME, "combineScriptSelfRef", + Collections.emptyMap()); + private static final Map, Object>> SCRIPTS = new HashMap<>(); @BeforeClass @@ -127,6 +134,25 @@ public class ScriptedMetricAggregatorTests extends AggregatorTestCase { int divisor = ((Integer) params.get("divisor")); return ((List) agg.get("collector")).stream().mapToInt(Integer::intValue).map(i -> i / divisor).sum(); }); + + SCRIPTS.put("initScriptSelfRef", params -> { + Map agg = (Map) params.get("_agg"); + agg.put("collector", new ArrayList()); + agg.put("selfRef", agg); + return agg; + }); + + SCRIPTS.put("mapScriptSelfRef", params -> { + Map agg = (Map) params.get("_agg"); + agg.put("selfRef", agg); + return agg; + }); + + SCRIPTS.put("combineScriptSelfRef", params -> { + Map agg = (Map) params.get("_agg"); + agg.put("selfRef", agg); + return agg; + }); } @SuppressWarnings("unchecked") @@ -257,6 +283,60 @@ public class ScriptedMetricAggregatorTests extends AggregatorTestCase { } } + public void testSelfReferencingAggStateAfterInit() throws IOException { + try (Directory directory = newDirectory()) { + try (RandomIndexWriter indexWriter = new RandomIndexWriter(random(), directory)) { + // No need to add docs for this test + } + try (IndexReader indexReader = DirectoryReader.open(directory)) { + ScriptedMetricAggregationBuilder aggregationBuilder = new ScriptedMetricAggregationBuilder(AGG_NAME); + aggregationBuilder.initScript(INIT_SCRIPT_SELF_REF).mapScript(MAP_SCRIPT); + + IllegalArgumentException ex = expectThrows(IllegalArgumentException.class, () -> + search(newSearcher(indexReader, true, true), new MatchAllDocsQuery(), aggregationBuilder) + ); + assertEquals("Iterable object is self-referencing itself (Scripted metric aggs init script)", ex.getMessage()); + } + } + } + + public void testSelfReferencingAggStateAfterMap() throws IOException { + try (Directory directory = newDirectory()) { + Integer numDocs = randomInt(100); + try (RandomIndexWriter indexWriter = new RandomIndexWriter(random(), directory)) { + for (int i = 0; i < numDocs; i++) { + indexWriter.addDocument(singleton(new SortedNumericDocValuesField("number", i))); + } + } + try (IndexReader indexReader = DirectoryReader.open(directory)) { + ScriptedMetricAggregationBuilder aggregationBuilder = new ScriptedMetricAggregationBuilder(AGG_NAME); + aggregationBuilder.initScript(INIT_SCRIPT).mapScript(MAP_SCRIPT_SELF_REF); + + IllegalArgumentException ex = expectThrows(IllegalArgumentException.class, () -> + search(newSearcher(indexReader, true, true), new MatchAllDocsQuery(), aggregationBuilder) + ); + assertEquals("Iterable object is self-referencing itself (Scripted metric aggs map script)", ex.getMessage()); + } + } + } + + public void testSelfReferencingAggStateAfterCombine() throws IOException { + try (Directory directory = newDirectory()) { + try (RandomIndexWriter indexWriter = new RandomIndexWriter(random(), directory)) { + // No need to add docs for this test + } + try (IndexReader indexReader = DirectoryReader.open(directory)) { + ScriptedMetricAggregationBuilder aggregationBuilder = new ScriptedMetricAggregationBuilder(AGG_NAME); + aggregationBuilder.initScript(INIT_SCRIPT).mapScript(MAP_SCRIPT).combineScript(COMBINE_SCRIPT_SELF_REF); + + IllegalArgumentException ex = expectThrows(IllegalArgumentException.class, () -> + search(newSearcher(indexReader, true, true), new MatchAllDocsQuery(), aggregationBuilder) + ); + assertEquals("Iterable object is self-referencing itself (Scripted metric aggs combine script)", ex.getMessage()); + } + } + } + /** * We cannot use Mockito for mocking QueryShardContext in this case because * script-related methods (e.g. QueryShardContext#getLazyExecutableScript) From f825a530b8aab70ef3efc0aee31495c958dca616 Mon Sep 17 00:00:00 2001 From: Simon Willnauer Date: Mon, 11 Jun 2018 08:49:18 +0200 Subject: [PATCH 59/62] Limit the number of concurrent requests per node (#31206) With `max_concurrent_shard_requests` we used to throttle / limit the number of concurrent shard requests a high level search request can execute per node. This had several problems since it limited the number on a global level based on the number of nodes. This change now throttles the number of concurrent requests per node while still allowing concurrency across multiple nodes. Closes #31192 --- .../migration/migrate_7_0/search.asciidoc | 6 + .../resources/rest-api-spec/api/search.json | 4 +- .../search/AbstractSearchAsyncAction.java | 4 +- .../action/search/ExpandSearchPhase.java | 4 +- .../action/search/InitialSearchPhase.java | 148 +++++++++++++----- .../action/search/SearchRequest.java | 30 ++-- .../action/search/SearchRequestBuilder.java | 10 +- .../action/search/TransportSearchAction.java | 19 +-- .../action/search/SearchAsyncActionTests.java | 5 +- 9 files changed, 145 insertions(+), 85 deletions(-) diff --git a/docs/reference/migration/migrate_7_0/search.asciidoc b/docs/reference/migration/migrate_7_0/search.asciidoc index 53a7d88394b..123ad201cbb 100644 --- a/docs/reference/migration/migrate_7_0/search.asciidoc +++ b/docs/reference/migration/migrate_7_0/search.asciidoc @@ -84,3 +84,9 @@ for a particular index with the index setting `index.max_regex_length`. Search requests with extra content after the main object will no longer be accepted by the `_search` endpoint. A parsing exception will be thrown instead. + +==== Semantics changed for `max_concurrent_shard_requests` + +`max_concurrent_shard_requests` used to limit the total number of concurrent shard +requests a single high level search request can execute. In 7.0 this changed to be the +max number of concurrent shard requests per node. The default is now `5`. diff --git a/rest-api-spec/src/main/resources/rest-api-spec/api/search.json b/rest-api-spec/src/main/resources/rest-api-spec/api/search.json index af2b3104a93..751c2797b9d 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/api/search.json +++ b/rest-api-spec/src/main/resources/rest-api-spec/api/search.json @@ -175,8 +175,8 @@ }, "max_concurrent_shard_requests" : { "type" : "number", - "description" : "The number of concurrent shard requests this search executes concurrently. This value should be used to limit the impact of the search on the cluster in order to limit the number of concurrent shard requests", - "default" : "The default grows with the number of nodes in the cluster but is at most 256." + "description" : "The number of concurrent shard requests per node this search executes concurrently. This value should be used to limit the impact of the search on the cluster in order to limit the number of concurrent shard requests", + "default" : "The default is 5." }, "pre_filter_shard_size" : { "type" : "number", diff --git a/server/src/main/java/org/elasticsearch/action/search/AbstractSearchAsyncAction.java b/server/src/main/java/org/elasticsearch/action/search/AbstractSearchAsyncAction.java index 91aec1171dc..8aa847f7536 100644 --- a/server/src/main/java/org/elasticsearch/action/search/AbstractSearchAsyncAction.java +++ b/server/src/main/java/org/elasticsearch/action/search/AbstractSearchAsyncAction.java @@ -79,9 +79,9 @@ abstract class AbstractSearchAsyncAction exten Executor executor, SearchRequest request, ActionListener listener, GroupShardsIterator shardsIts, TransportSearchAction.SearchTimeProvider timeProvider, long clusterStateVersion, - SearchTask task, SearchPhaseResults resultConsumer, int maxConcurrentShardRequests, + SearchTask task, SearchPhaseResults resultConsumer, int maxConcurrentRequestsPerNode, SearchResponse.Clusters clusters) { - super(name, request, shardsIts, logger, maxConcurrentShardRequests, executor); + super(name, request, shardsIts, logger, maxConcurrentRequestsPerNode, executor); this.timeProvider = timeProvider; this.logger = logger; this.searchTransportService = searchTransportService; diff --git a/server/src/main/java/org/elasticsearch/action/search/ExpandSearchPhase.java b/server/src/main/java/org/elasticsearch/action/search/ExpandSearchPhase.java index d9ed6e6792f..a6a99137dc9 100644 --- a/server/src/main/java/org/elasticsearch/action/search/ExpandSearchPhase.java +++ b/server/src/main/java/org/elasticsearch/action/search/ExpandSearchPhase.java @@ -131,9 +131,7 @@ final class ExpandSearchPhase extends SearchPhase { if (orig.allowPartialSearchResults() != null){ groupRequest.allowPartialSearchResults(orig.allowPartialSearchResults()); } - if (orig.isMaxConcurrentShardRequestsSet()) { - groupRequest.setMaxConcurrentShardRequests(orig.getMaxConcurrentShardRequests()); - } + groupRequest.setMaxConcurrentShardRequests(orig.getMaxConcurrentShardRequests()); return groupRequest; } diff --git a/server/src/main/java/org/elasticsearch/action/search/InitialSearchPhase.java b/server/src/main/java/org/elasticsearch/action/search/InitialSearchPhase.java index a3be7c39aff..742ad995a8a 100644 --- a/server/src/main/java/org/elasticsearch/action/search/InitialSearchPhase.java +++ b/server/src/main/java/org/elasticsearch/action/search/InitialSearchPhase.java @@ -30,9 +30,11 @@ import org.elasticsearch.common.util.concurrent.AtomicArray; import org.elasticsearch.search.SearchPhaseResult; import org.elasticsearch.search.SearchShardTarget; -import java.io.IOException; +import java.util.ArrayDeque; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Executor; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Stream; @@ -52,12 +54,13 @@ abstract class InitialSearchPhase extends private final Logger logger; private final int expectedTotalOps; private final AtomicInteger totalOps = new AtomicInteger(); - private final AtomicInteger shardExecutionIndex = new AtomicInteger(0); - private final int maxConcurrentShardRequests; + private final int maxConcurrentRequestsPerNode; private final Executor executor; + private final Map pendingExecutionsPerNode = new ConcurrentHashMap<>(); + private final boolean throttleConcurrentRequests; InitialSearchPhase(String name, SearchRequest request, GroupShardsIterator shardsIts, Logger logger, - int maxConcurrentShardRequests, Executor executor) { + int maxConcurrentRequestsPerNode, Executor executor) { super(name); this.request = request; final List toSkipIterators = new ArrayList<>(); @@ -77,7 +80,9 @@ abstract class InitialSearchPhase extends // on a per shards level we use shardIt.remaining() to increment the totalOps pointer but add 1 for the current shard result // we process hence we add one for the non active partition here. this.expectedTotalOps = shardsIts.totalSizeWith1ForEmpty(); - this.maxConcurrentShardRequests = Math.min(maxConcurrentShardRequests, shardsIts.size()); + this.maxConcurrentRequestsPerNode = Math.min(maxConcurrentRequestsPerNode, shardsIts.size()); + // in the case were we have less shards than maxConcurrentRequestsPerNode we don't need to throttle + this.throttleConcurrentRequests = maxConcurrentRequestsPerNode < shardsIts.size(); this.executor = executor; } @@ -109,7 +114,6 @@ abstract class InitialSearchPhase extends if (!lastShard) { performPhaseOnShard(shardIndex, shardIt, nextShard); } else { - maybeExecuteNext(); // move to the next execution if needed // no more shards active, add a failure if (logger.isDebugEnabled() && !logger.isTraceEnabled()) { // do not double log this exception if (e != null && !TransportActions.isShardNotAvailableException(e)) { @@ -123,15 +127,12 @@ abstract class InitialSearchPhase extends } @Override - public final void run() throws IOException { + public final void run() { for (final SearchShardIterator iterator : toSkipShardsIts) { assert iterator.skip(); skipShard(iterator); } if (shardsIts.size() > 0) { - int maxConcurrentShardRequests = Math.min(this.maxConcurrentShardRequests, shardsIts.size()); - final boolean success = shardExecutionIndex.compareAndSet(0, maxConcurrentShardRequests); - assert success; assert request.allowPartialSearchResults() != null : "SearchRequest missing setting for allowPartialSearchResults"; if (request.allowPartialSearchResults() == false) { final StringBuilder missingShards = new StringBuilder(); @@ -152,7 +153,7 @@ abstract class InitialSearchPhase extends throw new SearchPhaseExecutionException(getName(), msg, null, ShardSearchFailure.EMPTY_ARRAY); } } - for (int index = 0; index < maxConcurrentShardRequests; index++) { + for (int index = 0; index < shardsIts.size(); index++) { final SearchShardIterator shardRoutings = shardsIts.get(index); assert shardRoutings.skip() == false; performPhaseOnShard(index, shardRoutings, shardRoutings.nextOrNull()); @@ -160,14 +161,6 @@ abstract class InitialSearchPhase extends } } - private void maybeExecuteNext() { - final int index = shardExecutionIndex.getAndIncrement(); - if (index < shardsIts.size()) { - final SearchShardIterator shardRoutings = shardsIts.get(index); - performPhaseOnShard(index, shardRoutings, shardRoutings.nextOrNull()); - } - } - private void maybeFork(final Thread thread, final Runnable runnable) { if (thread == Thread.currentThread()) { @@ -197,6 +190,59 @@ abstract class InitialSearchPhase extends }); } + private static final class PendingExecutions { + private final int permits; + private int permitsTaken = 0; + private ArrayDeque queue = new ArrayDeque<>(); + + PendingExecutions(int permits) { + assert permits > 0 : "not enough permits: " + permits; + this.permits = permits; + } + + void finishAndRunNext() { + synchronized (this) { + permitsTaken--; + assert permitsTaken >= 0 : "illegal taken permits: " + permitsTaken; + } + tryRun(null); + } + + void tryRun(Runnable runnable) { + Runnable r = tryQueue(runnable); + if (r != null) { + r.run(); + } + } + + private synchronized Runnable tryQueue(Runnable runnable) { + Runnable toExecute = null; + if (permitsTaken < permits) { + permitsTaken++; + toExecute = runnable; + if (toExecute == null) { // only poll if we don't have anything to execute + toExecute = queue.poll(); + } + if (toExecute == null) { + permitsTaken--; + } + } else if (runnable != null) { + queue.add(runnable); + } + return toExecute; + } + } + + private void executeNext(PendingExecutions pendingExecutions, Thread originalThread) { + if (pendingExecutions != null) { + assert throttleConcurrentRequests; + maybeFork(originalThread, pendingExecutions::finishAndRunNext); + } else { + assert throttleConcurrentRequests == false; + } + } + + private void performPhaseOnShard(final int shardIndex, final SearchShardIterator shardIt, final ShardRouting shard) { /* * We capture the thread that this phase is starting on. When we are called back after executing the phase, we are either on the @@ -205,29 +251,54 @@ abstract class InitialSearchPhase extends * could stack overflow. To prevent this, we fork if we are called back on the same thread that execution started on and otherwise * we can continue (cf. InitialSearchPhase#maybeFork). */ - final Thread thread = Thread.currentThread(); if (shard == null) { fork(() -> onShardFailure(shardIndex, null, null, shardIt, new NoShardAvailableActionException(shardIt.shardId()))); } else { - try { - executePhaseOnShard(shardIt, shard, new SearchActionListener(new SearchShardTarget(shard.currentNodeId(), - shardIt.shardId(), shardIt.getClusterAlias(), shardIt.getOriginalIndices()), shardIndex) { - @Override - public void innerOnResponse(FirstResult result) { - maybeFork(thread, () -> onShardResult(result, shardIt)); - } + final PendingExecutions pendingExecutions = throttleConcurrentRequests ? + pendingExecutionsPerNode.computeIfAbsent(shard.currentNodeId(), n -> new PendingExecutions(maxConcurrentRequestsPerNode)) + : null; + Runnable r = () -> { + final Thread thread = Thread.currentThread(); + try { + executePhaseOnShard(shardIt, shard, new SearchActionListener(new SearchShardTarget(shard.currentNodeId(), + shardIt.shardId(), shardIt.getClusterAlias(), shardIt.getOriginalIndices()), shardIndex) { + @Override + public void innerOnResponse(FirstResult result) { + try { + onShardResult(result, shardIt); + } finally { + executeNext(pendingExecutions, thread); + } + } - @Override - public void onFailure(Exception t) { - maybeFork(thread, () -> onShardFailure(shardIndex, shard, shard.currentNodeId(), shardIt, t)); + @Override + public void onFailure(Exception t) { + try { + onShardFailure(shardIndex, shard, shard.currentNodeId(), shardIt, t); + } finally { + executeNext(pendingExecutions, thread); + } + } + }); + + + } catch (final Exception e) { + try { + /* + * It is possible to run into connection exceptions here because we are getting the connection early and might + * run in tonodes that are not connected. In this case, on shard failure will move us to the next shard copy. + */ + fork(() -> onShardFailure(shardIndex, shard, shard.currentNodeId(), shardIt, e)); + } finally { + executeNext(pendingExecutions, thread); } - }); - } catch (final Exception e) { - /* - * It is possible to run into connection exceptions here because we are getting the connection early and might run in to - * nodes that are not connected. In this case, on shard failure will move us to the next shard copy. - */ - fork(() -> onShardFailure(shardIndex, shard, shard.currentNodeId(), shardIt, e)); + } + }; + if (pendingExecutions == null) { + r.run(); + } else { + assert throttleConcurrentRequests; + pendingExecutions.tryRun(r); } } } @@ -257,8 +328,6 @@ abstract class InitialSearchPhase extends } else if (xTotalOps > expectedTotalOps) { throw new AssertionError("unexpected higher total ops [" + xTotalOps + "] compared to expected [" + expectedTotalOps + "]"); - } else if (shardsIt.skip() == false) { - maybeExecuteNext(); } } @@ -376,5 +445,4 @@ abstract class InitialSearchPhase extends assert iterator.skip(); successfulShardExecution(iterator); } - } diff --git a/server/src/main/java/org/elasticsearch/action/search/SearchRequest.java b/server/src/main/java/org/elasticsearch/action/search/SearchRequest.java index 6149503a08d..a390538ec29 100644 --- a/server/src/main/java/org/elasticsearch/action/search/SearchRequest.java +++ b/server/src/main/java/org/elasticsearch/action/search/SearchRequest.java @@ -75,8 +75,8 @@ public final class SearchRequest extends ActionRequest implements IndicesRequest private Boolean requestCache; private Boolean allowPartialSearchResults; - - + + private Scroll scroll; private int batchedReduceSize = 512; @@ -140,7 +140,7 @@ public final class SearchRequest extends ActionRequest implements IndicesRequest } if (in.getVersion().onOrAfter(Version.V_6_3_0)) { allowPartialSearchResults = in.readOptionalBoolean(); - } + } } @Override @@ -165,7 +165,7 @@ public final class SearchRequest extends ActionRequest implements IndicesRequest } if (out.getVersion().onOrAfter(Version.V_6_3_0)) { out.writeOptionalBoolean(allowPartialSearchResults); - } + } } @Override @@ -362,7 +362,7 @@ public final class SearchRequest extends ActionRequest implements IndicesRequest public Boolean requestCache() { return this.requestCache; } - + /** * Sets if this request should allow partial results. (If method is not called, * will default to the cluster level setting). @@ -374,8 +374,8 @@ public final class SearchRequest extends ActionRequest implements IndicesRequest public Boolean allowPartialSearchResults() { return this.allowPartialSearchResults; - } - + } + /** * Sets the number of shard results that should be reduced at once on the coordinating node. This value should be used as a protection @@ -397,18 +397,18 @@ public final class SearchRequest extends ActionRequest implements IndicesRequest } /** - * Returns the number of shard requests that should be executed concurrently. This value should be used as a protection mechanism to - * reduce the number of shard reqeusts fired per high level search request. Searches that hit the entire cluster can be throttled - * with this number to reduce the cluster load. The default grows with the number of nodes in the cluster but is at most {@code 256}. + * Returns the number of shard requests that should be executed concurrently on a single node. This value should be used as a + * protection mechanism to reduce the number of shard requests fired per high level search request. Searches that hit the entire + * cluster can be throttled with this number to reduce the cluster load. The default is {@code 5} */ public int getMaxConcurrentShardRequests() { - return maxConcurrentShardRequests == 0 ? 256 : maxConcurrentShardRequests; + return maxConcurrentShardRequests == 0 ? 5 : maxConcurrentShardRequests; } /** - * Sets the number of shard requests that should be executed concurrently. This value should be used as a protection mechanism to - * reduce the number of shard requests fired per high level search request. Searches that hit the entire cluster can be throttled - * with this number to reduce the cluster load. The default grows with the number of nodes in the cluster but is at most {@code 256}. + * Sets the number of shard requests that should be executed concurrently on a single node. This value should be used as a + * protection mechanism to reduce the number of shard requests fired per high level search request. Searches that hit the entire + * cluster can be throttled with this number to reduce the cluster load. The default is {@code 5} */ public void setMaxConcurrentShardRequests(int maxConcurrentShardRequests) { if (maxConcurrentShardRequests < 1) { @@ -510,7 +510,7 @@ public final class SearchRequest extends ActionRequest implements IndicesRequest @Override public int hashCode() { return Objects.hash(searchType, Arrays.hashCode(indices), routing, preference, source, requestCache, - scroll, Arrays.hashCode(types), indicesOptions, batchedReduceSize, maxConcurrentShardRequests, preFilterShardSize, + scroll, Arrays.hashCode(types), indicesOptions, batchedReduceSize, maxConcurrentShardRequests, preFilterShardSize, allowPartialSearchResults); } diff --git a/server/src/main/java/org/elasticsearch/action/search/SearchRequestBuilder.java b/server/src/main/java/org/elasticsearch/action/search/SearchRequestBuilder.java index 22b0b0c44d6..821a7d7be7f 100644 --- a/server/src/main/java/org/elasticsearch/action/search/SearchRequestBuilder.java +++ b/server/src/main/java/org/elasticsearch/action/search/SearchRequestBuilder.java @@ -500,7 +500,7 @@ public class SearchRequestBuilder extends ActionRequestBuilderfalse @@ -549,9 +549,9 @@ public class SearchRequestBuilder extends ActionRequestBuilder null, clusterState, Collections.emptyMap(), listener, clusterState.getNodes() - .getDataNodes().size(), SearchResponse.Clusters.EMPTY); + (clusterName, nodeId) -> null, clusterState, Collections.emptyMap(), listener, SearchResponse.Clusters.EMPTY); } else { remoteClusterService.collectSearchShards(searchRequest.indicesOptions(), searchRequest.preference(), searchRequest.routing(), remoteClusterIndices, ActionListener.wrap((searchShardsResponses) -> { @@ -200,11 +198,9 @@ public class TransportSearchAction extends HandledTransportAction remoteAliasFilters = new HashMap<>(); BiFunction clusterNodeLookup = processRemoteShards(searchShardsResponses, remoteClusterIndices, remoteShardIterators, remoteAliasFilters); - int numNodesInvolved = searchShardsResponses.values().stream().mapToInt(r -> r.getNodes().length).sum() - + clusterState.getNodes().getDataNodes().size(); SearchResponse.Clusters clusters = buildClusters(localIndices, remoteClusterIndices, searchShardsResponses); executeSearch((SearchTask) task, timeProvider, searchRequest, localIndices, remoteClusterIndices, - remoteShardIterators, clusterNodeLookup, clusterState, remoteAliasFilters, listener, numNodesInvolved, + remoteShardIterators, clusterNodeLookup, clusterState, remoteAliasFilters, listener, clusters); }, listener::onFailure)); } @@ -280,7 +276,7 @@ public class TransportSearchAction extends HandledTransportAction remoteClusterIndices, List remoteShardIterators, BiFunction remoteConnections, ClusterState clusterState, - Map remoteAliasMap, ActionListener listener, int nodeCount, + Map remoteAliasMap, ActionListener listener, SearchResponse.Clusters clusters) { clusterState.blocks().globalBlockedRaiseException(ClusterBlockLevel.READ); @@ -340,15 +336,6 @@ public class TransportSearchAction extends HandledTransportAction shardsIter = getShardsIter("idx", @@ -242,7 +243,7 @@ public class SearchAsyncActionTests extends ESTestCase { protected SearchPhase getNextPhase(SearchPhaseResults results, SearchPhaseContext context) { return new SearchPhase("test") { @Override - public void run() throws IOException { + public void run() { latch.countDown(); } }; From 4e9b5549486f53fc95d6e40299c87ed3f581adbe Mon Sep 17 00:00:00 2001 From: Yannick Welsch Date: Mon, 11 Jun 2018 09:09:23 +0200 Subject: [PATCH 60/62] Don't swallow exceptions on replication (#31179) Swallowing these exceptions is dangerous as they can result in replicas going out-of-sync with the primary. Follow-up to #28571 --- .../action/bulk/TransportShardBulkAction.java | 44 ++++++++----------- .../TransportResyncReplicationAction.java | 17 +++---- .../replication/TransportWriteAction.java | 6 +-- 3 files changed, 24 insertions(+), 43 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/action/bulk/TransportShardBulkAction.java b/server/src/main/java/org/elasticsearch/action/bulk/TransportShardBulkAction.java index 7201b878f98..72246ec8539 100644 --- a/server/src/main/java/org/elasticsearch/action/bulk/TransportShardBulkAction.java +++ b/server/src/main/java/org/elasticsearch/action/bulk/TransportShardBulkAction.java @@ -486,32 +486,24 @@ public class TransportShardBulkAction extends TransportWriteAction Date: Mon, 11 Jun 2018 09:12:44 +0200 Subject: [PATCH 61/62] Use stronger write-once semantics for Azure repository (#30437) There's no need for an extra blobExists() call when writing a blob to the Azure service. Azure provides an option (with stronger consistency guarantees) on the upload method that guarantees that the blob that's uploaded does not already exist. This saves one network roundtrip. Relates to #19749 --- .../azure/AzureStorageTestServer.java | 11 ++++++++++- .../repositories/azure/AzureBlobContainer.java | 4 +--- .../repositories/azure/AzureBlobStore.java | 4 +++- .../repositories/azure/AzureStorageService.java | 3 ++- .../azure/AzureStorageServiceImpl.java | 17 +++++++++++++++-- .../azure/AzureStorageServiceMock.java | 6 +++++- 6 files changed, 36 insertions(+), 9 deletions(-) diff --git a/plugins/repository-azure/qa/microsoft-azure-storage/src/test/java/org/elasticsearch/repositories/azure/AzureStorageTestServer.java b/plugins/repository-azure/qa/microsoft-azure-storage/src/test/java/org/elasticsearch/repositories/azure/AzureStorageTestServer.java index b1450b79fab..8183ee5043e 100644 --- a/plugins/repository-azure/qa/microsoft-azure-storage/src/test/java/org/elasticsearch/repositories/azure/AzureStorageTestServer.java +++ b/plugins/repository-azure/qa/microsoft-azure-storage/src/test/java/org/elasticsearch/repositories/azure/AzureStorageTestServer.java @@ -164,7 +164,12 @@ public class AzureStorageTestServer { if (destContainer == null) { return newContainerNotFoundError(requestId); } - destContainer.objects.put(destBlobName, body); + + byte[] existingBytes = destContainer.objects.putIfAbsent(destBlobName, body); + if (existingBytes != null) { + return newBlobAlreadyExistsError(requestId); + } + return new Response(RestStatus.CREATED, emptyMap(), "text/plain", EMPTY_BYTE); }) ); @@ -363,6 +368,10 @@ public class AzureStorageTestServer { return newError(requestId, RestStatus.NOT_FOUND, "BlobNotFound", "The specified blob does not exist"); } + private static Response newBlobAlreadyExistsError(final long requestId) { + return newError(requestId, RestStatus.CONFLICT, "BlobAlreadyExists", "The specified blob already exists"); + } + private static Response newInternalError(final long requestId) { return newError(requestId, RestStatus.INTERNAL_SERVER_ERROR, "InternalError", "The server encountered an internal error"); } diff --git a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureBlobContainer.java b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureBlobContainer.java index dd85bfc2181..f5a0ed253c8 100644 --- a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureBlobContainer.java +++ b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureBlobContainer.java @@ -88,10 +88,8 @@ public class AzureBlobContainer extends AbstractBlobContainer { @Override public void writeBlob(String blobName, InputStream inputStream, long blobSize) throws IOException { - if (blobExists(blobName)) { - throw new FileAlreadyExistsException("blob [" + blobName + "] already exists, cannot overwrite"); - } logger.trace("writeBlob({}, stream, {})", buildKey(blobName), blobSize); + try { blobStore.writeBlob(buildKey(blobName), inputStream, blobSize); } catch (URISyntaxException|StorageException e) { diff --git a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureBlobStore.java b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureBlobStore.java index fede20bfb76..fc6d9d7e482 100644 --- a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureBlobStore.java +++ b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureBlobStore.java @@ -33,6 +33,7 @@ import org.elasticsearch.common.settings.Settings; import java.io.IOException; import java.io.InputStream; import java.net.URISyntaxException; +import java.nio.file.FileAlreadyExistsException; import java.util.Locale; import java.util.Map; @@ -114,7 +115,8 @@ public class AzureBlobStore extends AbstractComponent implements BlobStore { return this.client.listBlobsByPrefix(this.clientName, this.locMode, container, keyPath, prefix); } - public void writeBlob(String blobName, InputStream inputStream, long blobSize) throws URISyntaxException, StorageException { + public void writeBlob(String blobName, InputStream inputStream, long blobSize) throws URISyntaxException, StorageException, + FileAlreadyExistsException { this.client.writeBlob(this.clientName, this.locMode, container, blobName, inputStream, blobSize); } } diff --git a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureStorageService.java b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureStorageService.java index 8cd3835e3e6..1c2ca71fe78 100644 --- a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureStorageService.java +++ b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureStorageService.java @@ -28,6 +28,7 @@ import org.elasticsearch.common.unit.ByteSizeValue; import java.io.IOException; import java.io.InputStream; import java.net.URISyntaxException; +import java.nio.file.FileAlreadyExistsException; import java.util.Map; /** @@ -58,7 +59,7 @@ public interface AzureStorageService { throws URISyntaxException, StorageException; void writeBlob(String account, LocationMode mode, String container, String blobName, InputStream inputStream, long blobSize) throws - URISyntaxException, StorageException; + URISyntaxException, StorageException, FileAlreadyExistsException; static InputStream giveSocketPermissionsToStream(InputStream stream) { return new InputStream() { diff --git a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureStorageServiceImpl.java b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureStorageServiceImpl.java index 339aec43c25..9f059eaca11 100644 --- a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureStorageServiceImpl.java +++ b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureStorageServiceImpl.java @@ -19,11 +19,13 @@ package org.elasticsearch.repositories.azure; +import com.microsoft.azure.storage.AccessCondition; import com.microsoft.azure.storage.CloudStorageAccount; import com.microsoft.azure.storage.LocationMode; import com.microsoft.azure.storage.OperationContext; import com.microsoft.azure.storage.RetryExponentialRetry; import com.microsoft.azure.storage.RetryPolicy; +import com.microsoft.azure.storage.StorageErrorCodeStrings; import com.microsoft.azure.storage.StorageException; import com.microsoft.azure.storage.blob.BlobInputStream; import com.microsoft.azure.storage.blob.BlobListingDetails; @@ -44,8 +46,10 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.repositories.RepositoryException; import java.io.InputStream; +import java.net.HttpURLConnection; import java.net.URI; import java.net.URISyntaxException; +import java.nio.file.FileAlreadyExistsException; import java.util.Collections; import java.util.EnumSet; import java.util.HashMap; @@ -289,12 +293,21 @@ public class AzureStorageServiceImpl extends AbstractComponent implements AzureS @Override public void writeBlob(String account, LocationMode mode, String container, String blobName, InputStream inputStream, long blobSize) - throws URISyntaxException, StorageException { + throws URISyntaxException, StorageException, FileAlreadyExistsException { logger.trace("writeBlob({}, stream, {})", blobName, blobSize); CloudBlobClient client = this.getSelectedClient(account, mode); CloudBlobContainer blobContainer = client.getContainerReference(container); CloudBlockBlob blob = blobContainer.getBlockBlobReference(blobName); - SocketAccess.doPrivilegedVoidException(() -> blob.upload(inputStream, blobSize, null, null, generateOperationContext(account))); + try { + SocketAccess.doPrivilegedVoidException(() -> blob.upload(inputStream, blobSize, AccessCondition.generateIfNotExistsCondition(), + null, generateOperationContext(account))); + } catch (StorageException se) { + if (se.getHttpStatusCode() == HttpURLConnection.HTTP_CONFLICT && + StorageErrorCodeStrings.BLOB_ALREADY_EXISTS.equals(se.getErrorCode())) { + throw new FileAlreadyExistsException(blobName, null, se.getMessage()); + } + throw se; + } logger.trace("writeBlob({}, stream, {}) - done", blobName, blobSize); } } diff --git a/plugins/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureStorageServiceMock.java b/plugins/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureStorageServiceMock.java index 0e0f73446ba..4b111e54947 100644 --- a/plugins/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureStorageServiceMock.java +++ b/plugins/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureStorageServiceMock.java @@ -34,6 +34,7 @@ import java.io.IOException; import java.io.InputStream; import java.net.SocketPermission; import java.net.URISyntaxException; +import java.nio.file.FileAlreadyExistsException; import java.nio.file.NoSuchFileException; import java.security.AccessController; import java.util.Locale; @@ -108,7 +109,10 @@ public class AzureStorageServiceMock extends AbstractComponent implements AzureS @Override public void writeBlob(String account, LocationMode mode, String container, String blobName, InputStream inputStream, long blobSize) - throws URISyntaxException, StorageException { + throws URISyntaxException, StorageException, FileAlreadyExistsException { + if (blobs.containsKey(blobName)) { + throw new FileAlreadyExistsException(blobName); + } try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) { blobs.put(blobName, outputStream); Streams.copy(inputStream, outputStream); From 42608881b0912d3d71c4d8dc5641df73d9ccc088 Mon Sep 17 00:00:00 2001 From: Tanguy Leroux Date: Mon, 11 Jun 2018 09:32:12 +0200 Subject: [PATCH 62/62] [Docs] Remove mention pattern files in Grok processor (#31170) Pattern files have been removed in 16fa3e546e172d3d194c2711654824d4851d69f8 --- docs/reference/ingest/ingest-node.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference/ingest/ingest-node.asciidoc b/docs/reference/ingest/ingest-node.asciidoc index 8a7c33086ab..182a3d5fc78 100644 --- a/docs/reference/ingest/ingest-node.asciidoc +++ b/docs/reference/ingest/ingest-node.asciidoc @@ -1325,7 +1325,7 @@ This pipeline will insert these named captures as new fields within the document // NOTCONSOLE [[custom-patterns]] -==== Custom Patterns and Pattern Files +==== Custom Patterns The Grok processor comes pre-packaged with a base set of pattern. These patterns may not always have what you are looking for. Pattern have a very basic format. Each entry describes has a name and the pattern itself.

    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 Tlb3Jb||8D{SWYq3Y diff --git a/x-pack/docs/en/ml/images/ml-gs-job1-manage1.jpg b/x-pack/docs/en/ml/images/ml-gs-job1-manage1.jpg deleted file mode 100644 index a2cba454e9d934322cdbd5ec3d5f42df8d883a48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158033 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

  • `Nh20^GzzB7gHm_ujN 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

    D!%3z&G*KgBRjSQWz(CdT@ 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%0A|PhBbMkD7xO$tKq=i?Aa90u2+Sp z9%+`ma(-FzswcISwxjye#(XRaQ^mfb*Ki4M+?Q#0uYfxlJ>Jxrsw%gsGfns9h41E9 z7n!yC?k#4$ue!6kT~KkdTm;#TM#2S79ZCIB^E&nQZH?vdD(~ELFdYZ{MaG z{}H8P>zi`NT4itBq1r79N2hItV7_v-p>qB{ql>A<^{q@{{ZHS$4f;18BwomP^kVjb zXXOZsd1D+IM=Adi$&NUI4?mivhH1L-cxR8*kf-rEuYs%R%n?fz8obu@Ans zy_!K{^F0TT=?xEm+Jfv@bjQgsn@_DY2k$?NAMR`FoyfoYET<;ZccV#)YQUyU1(OFE zC!>zoQnDs#p^=2MctqbOxNGjO}u5 zt@iB;HHtw86eAr|xCC3y`BB!Eq+{G*$|k%Rf1##_+U=0AE&YC~!>(c^2YiE&p1A%syv$RPO@>-vo)MU znBE4~M{TsrGTrg!6Rz^nfg?9>7&jDeYIU_`PNb@wp0R8R!a6tYH!P^wA2{et{z_B^ zuH5HjoXK#^^a!e~%$i_Ph9h!~bS(AFY9HIm$m89+(tPA=dyN`7uT!qRsjwN;cS-bR zrHFEAzLm)xA3Ye;pbSIyvCFA!gKyc6H=^t3%9DB$2Cs3Ak62C(t65&pWdF0=b;33f zO08%{vb9AIaT28I1Gy)qrj%yYAna%LC=w?}z({_9C!x2zll&ra%XG7p9c)Dm5z_xN zq^AEQqjUp>26RoHYvQPD>ZvLVu%zr7N z4a)trO+xK_1!F7T_rEC{${x3+8m8Wg`>`j>c6U{1Lq&64R6P)gy;4*tzkG6|rcG~~ zZq(z>Lmt!pBP$#AaJ!NxMovmL@BNzZFY_X3|A%)6P40bvcQEA-S=bF1e`h}zkLfUn zir(8=_=?!w4<`82E3Lto&%Nm|crZNdKfmF{-MMh`n`J(5ahnxvO0T4NPH(iPGDWMZ z`k1Ete_`vbqnd8x|6vpr6%gqXQ0bA<%?$_$lOYWwMu<|QI}JLem6RA`z-XA{q@`no zv~w3SE_h;fOZXyY0{|`QSw?;}y9_oY<8UKHP zkFbl-{=Unj6U} zyyI~0G}2#)S7V$>^kg~@UMhk7v}n5*k3%y#-rN-%UsOp8F!$fL7XbUsc-P4Pm=<&T zme#jdwl~ReV3}yzdo%ESpOKxC?a;#>;JZq zx5~Guw`?BRrCS_`cK@mPYh!``LTCjt;8wk zgW_+Od?2Yj6T6k{g8-kVk9(F@RBls!Z5^wQ$b^j3iT}QPlHW)z(i0lJKfl!QPhx3p zl~C$GwCsmuhPs(-kL6o)1Iu#si@C1uUQiv23=dyFUF-D5?{8Ss%dRJr^nK(^ z3BRvOq=K}MgR?Kfv`_a8mpP*y^FKcS^i<_0LHmOn{9Se6Ip@X?SI&mixu7}3D2W+1GbtlX9%P5(Ag zR_$uKLO%DTHH}aaV65f6aE7Z$-ujDKv>69jFTRm8+AF<3k0t%6_oVml$0aa!I8P71 zj<>^P5L$EznEFwn)x8@(%(>9FyJs<;O?ph77RORtY9HW~f>PXr4_Xq;Kg9Z2zAAuJ zoDf?7C2DL7*loR0*l7v5yG|IaAT^&|^z~3}sQ;otmI2S9P%aZ#A&YO(8OQ%}RsZpH z?7zug$dn>vhrsstxB&}nF7(EQ@^EOb=3LI_#P@%YvsXP#L`mQJ7B8Yk)GOWf-<;*= z1whe+=1Vp?N10Z1`Hp10ze_6F>OWI6u?Pemo5S#Q*)IGO?T;2yTN9eshbj+y?`VndYf<(Qr}o`Ti%F zYgtLaGeYFo-%9D3OrF`n>x_$ILiy+5t-y)vrmZQh$3*PG5<`Ntn3$Wz_R{<}Em6GuF) z7qfu@$@H3_0o{oJx^+tBl@)M~-B|?=Z`+-^FhRZy;d{kuYKZE+Bg@`q zXXd|n*!F_BYJD7V3XND7gv@+nB<*2w-I|(G-G*M(sPY zq9Y6quH8U_YL7aBvLm?cT9WxZ2DITsFdXn3J6|0_g$U$&FL% z*%{*uT@`XWqrRDceQxU}#e!S!$@iex>sjUlA(Zk@ANCJjwXHjVj5S>Q02cfSo0@yF zj=NAaWifabMs(+6@6%ho9DidAocXUX^0>80U%$kYy z=hw-5GpU^sYXG$HE1%Z+ZQ3iHTYeb6Sx5_P%Y}Pw<2$D23R`|K1s7oPD_#Uh64on1 z8-2*766dpA<={5Jh$RGw%YMtAx?E{xw`5ON;bSyvC-$G!g{2$SeT6~$AC=OvUwOmd z26!c|nIv%^b%qO5weWK}Mz;ruGxoU_aDsGF*8D|uHy|-n(^r$pn!PR176b)_$kH`d z#9(eqIrX)^*$cfmsk-P;RHJS@mrMX`9&=}|fRlx~=GAB`KDQG)-2|;1zve@21Cdi| z5uCuFf)8~R9z>mIXp?p4+Dr(@(JuEigPUS9N$=51STG-w7oo+*Oj#8A4a1!I+k;|X znD|hRpup4+h9__@&XXCDI60Bd#hjGGud0uXy9*Bs3mx0DmoX~>q&lQ{KtTpZ5W1UKnZ^vh$fKlA0 ztDecb2C2kxNmu$f17}d1xyQr4FsgAHWB6%d{Q>-)hGk2ABHjMbG9wy^G0FGT{?@fB zmGxv>2gOl3=AFu0ZWLhd-ggw6l8Si1l_%A!0Z#2!pI@7UeHgGC?Rpc64DD3U$$6f< zp(*JWh!0E--Rjk(weJHVfQqsWTB%z9G2hINYPA}{2E>I^(?`k4ZMWDX^ix;2aoRhq zkM4K*DH?WiO;wfxL=I%_V!EQE7v`}!DNDlhm*3!CF3j=nM%{iZup2nt?F|fAx^Kqr zm{#WT$=YN?XWxRM@E?+Lg1pqAT_ppiBu_C@=b9P2Oz?g$R})(=I83XxbE;pMKJ+39 zGkkC*&k|o?gZhb)37Vt-BFSpo9P|A1&E#yK)P5}Sqd)H&w)Ie&W_8baz_qEl72t{; z)49C@Xq+!7#X-4@Z6-9?Xm_t97y^)oe5v>H{$b4ME_KY`!a!4J??%svw7C;&@h8E)_4nPfH;cd15Cs?G6JP77*mWYKI_#=^86{;WN=V6W7s^o?)!3gocfE{kJbvSO7v68kJq18FANIIuZFMtt+kGe zlg2c~#ALQWF1H;^Gf}ob-iy@820B}1FCTu5nmCO=a%-OXl#=p1?@j^j?pC{Stj$Bu z6$Uk4&U_t3Nbe6lfj+z^zAx0zig6|>TSGakq|X4KF0jL^5k)UXk+!bSdg;s8pbsAtsO`B>7=RS ztaLfQOY^M#s?l!0RJ5;VpMkxyYZkXUG!L zf@fr8`Y3fT0&Aj0Ayn~vcRNkItzv$TbcOu7WYZ0kvMSY7=%uj+El;$8ORcvrJ$hes@Y)m;*C)nYqMb!E@L*N3RmGgn{V~a z_5`Yb_*(qUrJE<Zq4xh0S&w$99p!22dZ4ll@)YcFJu7GmRJ)E>57dXR2+l>#mR>ox1l^l$PS#vXb03ftd7Y%J{py1O=^^Dn)tAye1EYY& zB*HTGRk=YQ`WoGOpm!4ejn!0-;>6EtrQgxxK&SO6dCbRNqA*LQxRfI>`7q%$V6xWk z1QwY~zCKP8FJM*QN>Q*dzxCz3NQ>@Oxj-$9!R`=pX@PMmo>q~FphJ5&Pc=f#RmFVh z@H3r!+eh(F^GwG2|1xxJ>$*oA*teHemQ=f@IwQElp&};C|BdgfWst6y@OI(btY;8GdE_Uo zqayJ(c6x>tE$6QtrJjhK_x0(Nv|n0eP%pm!nc1&d7Ono?%}uo8vNVR#nZKg1c2ZKW z`{xv^WY~+^7KFc!m+Q=UI6DP>WLu*TMx^u2daS`&=*k1!m}n6u0hM|lm1->?PEV;T z73kBTRz$*VU|Az&sM8dRH!dE_TAk{U5k!C{-3tsgt`=YZ1{`rg*ILgV4ZmnmgUq1w zQsLV(YO0AgIsElKFB&z42Z|)s?-b-!KsjR!;2lfZXMJgJlb|Rpw$9M{|q>wUwe@@k68?h3tEx}@FNDB^@A_$ z7fr8P7@VBx88SO2;=m3o?-^C$K8#R9tf^^!JrZurq6CZ*fmVkr%Qt&K7$PfUEn#*- z9IdHE-R{rOUzvg-ZDdWS_|XX zSkmF$t>r3VBq-HQDx*HV=BMQnylmmlP=BeqoY0Gd?I+ssro=Zd!pJv zo_5_@Jr5#2ts#_irwydxpb2*7K43A-D!lOjp%`ZO2mb{f6YIthUG7z7jM7_0eO+-> z2!sfhVr28z=jFs1HQH&OK{7P6rPM5zmKDPY^oL}6YNsgMjZXY9*<;gQD-Y^8G|NJ! z9NbaN3Cs80I5b-Gmnq1ovt#{hnQV-n$6C6W8G=(+sM&#gAoqQvKVsyv%vFHT1ZR1X|1*cvI%mP}_`7W=bS^MNI5BvPZUBAj^qi`gnwcV1( z+ZD}%&IQUI@KS-%jFP5s*L;bAt&SSQSNCxsG%rr&FD+S5N3)lG$E}zi{6Ok!RiWbI z2~>pSP~wJBD)JD7v8 z=a5Ouc60Q4;yydCF5h6n#Auz!sr;q)NcidX#8KUmnZW}HJ;ZZ1c56_^i=C%QQ&8v| zFLwdNA3C!c91*%4drvSMgwoJO-`7W4WEEJ1F6rd zDULJmx`|@v)zHJQ3nWeyO8OXlZvRj~MmNEXN|9&GFs`!PJ{V_hP}nz1fx(jj`Q~la zUn%@f%3_u)Ca$-7(aK!jxSS%gaL z5wG@x$WUA9u@oDYxAUp>rp{;Pm=kx;zhtxyi3l*|gYis<7jg5uncm*umzfjT#EU7s z9zlboUHgh_ffz77*l3n}RNg$l`HWqilDqpakquiHKslQ$KHenWxg`3Zrj!3m<+LR0 zcSy#2qJJ;$|>F8X!ah5o%*!rxb5G&rCRQ@S~Fq)X+VY#euQ)YQoM>Lq@Kfn z2qbaV4}5*H+}Iq*Y}QP)u9M2te30q)!mDKspT^bi)9s&G$&Yy3XV}rQySd0EKE0ca+`;F8 zVUJaL3>1t`(~@aBk;JPe&H~P5nAN4XDYFNBe=V{6w;t}C(K%6fGI?x$9FvUSo>(8> zB@%r0b$+e`&h*>Qoij) zM^f;YNfzJZYFO$IFb$GfQ3aSSm9niQbsvtu4db>~MqfvEL_|elUGB4qt3OOQF@NRy zZRk2RiMDF@-r;m??s3$PvumBnz-PoH-_XL7Xdm64SFUKEht^igR7;#Jl>Uz*l0+at zbO$3;U^+WTE<-vj1jV|>IEp~a^jg!M+V%LWwPic*PTQr4VZg;l1AY3$C_)y6)h3D6 z9`Lnkh^Ag9GD%Z%#7!iQPMEVWSS3z;G*o*c@gTi3zN>1ChHAP>cUXJkvpoKx8o8r4OkPH9 zHutJZ$%Q6ai!bQ+aum2J>+O<0m86J2`LaGAOJ{g+wV9XZ_f9{}ApYs2Xy86cW4NBqi^*N+e-h}`(TM7SxcZ&}Y5J0H z7vC;K=#&QvS2cfu*&C(TGv$Lio%0%uIdf>`RQY3wJ4A?Hy==f_aqV`FREHP*k0|dd zywT4kh;4B(NPzaN(1Umh8JQSaJLv^}nSR^NEyO<9>@1DZ#i}uBOpQ&@veSkrCa5Eb zP4?zrqLPHQGy8$^E5(lE%;&Teva+0n|pYJt0AgXAr8(kEbjg!HQHKf}z6=Ps&aRukxVxVJ%y z+SI-B&FM`12diqI*7?rW_>)vV*5hY27%Z!uRZSRXz0T$phZa9yH)x%DU+bL^(g<+y zmb}a*3uK77-ySA!e~_MswFk3I8SXmx8c{CZJGF9&T7)ig3XY$JsuzC=4QkB@3YBAa8s_(Jd zJC^`JN}8SUsg?5vovbxs*%bXsAWuYmu&MK~@fBRKtF)Era&l;oyg3P!cDLY#21q2@ zKM<(!5ITQ83pa9J$PAjfa7x_M(V{sl9Ql>h^|Vie`JN%`fNXr|lgGYKDWg>Y*m*~} zyr5XAXa?*hOZ1qM>FvD?U4>W4DE=PYe(^gg1FjE*mJsv}Mdk@}=`g*6DG>OAbr z@%Qk7%j}85l0C$XTH*a&%hcze_TO_1^m7)z_)y&fFc*MoF8n{kkvvuiYXs4n z-7YJ;WvDBxMDp~L$bI%Zt{(q9xrfECbU^3wH?D+UhwpYjPcp>)`Jx$f27Zis-uGe8 zL{~NF`=k5!vJbF1^QH$keorxQxyC?Dfc@mvf=q*J0zT8E{#)j&DQEtI#M^UC^DWou zS`X&mdZ2owKf*r>YdrafG{(GAv|Mgd4B&K$|DMbqR0g(gU{C5>3$RNDjuQ2Iaxyo6 z9jK_~=h84=!KFQ%h%DoUHt{4uid2?rr%>f8A(7|3{|R~tO%_WPE;~5w9do!%80K@Q z1>@w&G`gr|d<8=oND2UN1!g-upc<)7+M0UN9_6vlwOlV+X5$`O|3lw4{G%OkA8sKp zSZ9}DZ1yt)&!x*#S2gZ%ZP+Lq>X!7AA5($A_O2?#SHDIXgsmUjq7Ld4>ah`B=lx?> zFM*bY;Dx53%h?K#Q54zIwQYHijU#6?BvG_`4EB165?C zG-xEaQy&&^g08bpWM#Sy-BcjwOlv;ag~SU9I+O=XX{jRIgMw zHf5`~9b6J{A&$mv=OpxdfW~>2pKeVenZ5*Z)CVyI6g7%1Uk`urI{3ZO-WXp|?jRv^ z79{`|&sKxmdj^Ei`R2YHJ8tn_v%WHHKpNXgP8vp)&TEtTVCbvcK&{`={sNPJ`%JL% zyl#dP&te=(g`9V^sQAj>N_b*>JdgQk6s6lDtu+>F%frKkhKw}D+Vo$v3U$10t>>e+ zNE2d#5GHU!t?0R6J0pFEsbHvLDJQ%oPcBt=l%}C_!Twm!;(kQN=y#0~gW_ z->i=&vnC&vE7ZwUJf7k!)qBydLK=@!QuWYn3wSk(gz6Sw(S1JU!&fIfBC3{9rE!ex<}ESj@un zbE5#q!t2*9pI-umO@b^%WU!e8;of1j@|C5zj=_x31K)UGP5H?f)Yr1LAM_%=0s0M5 z!NV@~e7qg&DH}$Dp`~2`xc>dMxV8r8O-#AaqwH}ormLlMR$X%!q7wm!r4!2yq9oI4MczTj2q6DQfpRYZrG~raVm#>QILT2 zy-KxAuPdBck0ID?U!eMTdlk9gdA&m@_&KZ(J2>(4F=-4gcLsJ6$rpo<+AEFTH8s6|>LQ+^5W**X^J7|E5>XHWwF z&T<8qLK9Rjftf*S{!7%BHGmuc`;ZS1ge!rmjCNt%MvSOZTr5`s%SW*0}k^{nMoaY zBHQ~>+kfdBr>>PmsD1-^*?gs?Y0~gyvpJ%*L@mE-m2cX#QKfHDSAHISl<*QyoBbvH zp|{1Fj9YBrxbCP#!4BR~U0d*{70wwm!F$DEkfoc(PR+G#^P+kZ)?8tM(7;r*NS8a7 z=0c_ha(!uT^_&m4K^5aXQOEO;`^JNJCfn_w#(UWbvfGsl2wEktHdZ&p&B(^sKk6~$ zfIBhmwyii?mUJVeWw{WxTy-(cwsd7HQY|)|C4cJ@Bt`r1(?zVFj_m?{R7FT0HH%eT z?ADM70Eg=ebbGG7#f{GAKA#WnTzG8H6@8z-06)>8B)-^j1-=1morj=cGe0Ls92z6S z1oD}@y7Mc)Hurp~Yo4M@OUJcIL7FjIJn)Py-!-B5&oL-B9-5egaVRA zPmyVfl!EwrNd+%6%!pXb3ZW$X8LwW;&GAfSp#l^;*k+8{r)0__mYTFF%L^2$kPgsj zU+ATD-XUFrWB!7wRhf#PtrR_zS^;9=*NAq(HU)DZe1Bn(m4S6Ba9}w6@I?WPT28S> z-$4&?@>Qx?-efYgM8`EFunslxNjJ{H)I%kEL6fB6%i$1APK}-z{G_y>Qn|$|eIj-# zz8%*-9>@P0G@7K>Vbn2^9EzXtGiv~8X4&5FbGx!`Ck*S=MW41W%a)obH z2Ouh2pG$d=+b`D?P9{i>O(a4Z=cO0ZkDnW&tYCt3RsF~`NCD}udD{ILFKj7X(q)TS z=F^T9<$wD=GR`UCK~#Zeot$j!Qnt;wf&CJ!2OBfk-nNmO`?0I7*(oU@ps;Qc=l1fuj=VfGBeDEaoNi%afHq_-~6XN z(k9s8fxz2Y|CWSVk!u=ZDLb8Lvs2wt&eIaH3Lx~kd#=)GjIRg@HtTVHLlO<-wlXhK zL>Xp;)gx^z=?$urdfsT1J^jX|Mqcg9d0RG+TS6Xevdvc)D%MPceE}7DpK%(mn$3j zfRic3QRxa_3NgcH7_i%yd#vrTo$?*tixHjc0TNQ(9Ws*q76d1c52zFp{Z`~HCXEOk zlXd2e=KV8fc7~4{UrYFVnEu|TqdRqVz%O<yaMa5GLg z^)JtU%}G}|id4cOps~Ci)J&BKs=dYCy9)bwseh7K=BH|eW_Nc}|JdN*e?z(X2L@eqZL&n!=sb)1% za%M;vNdM5-_G8;bhrX6hh5G$mPBUc`#G?es#s`P3_y88M$G%@B61h7`$sfUm3^F_O z_i-HrvFee%J$9MabdRNZMQw>-zN!3bt{v4(jnA5uli#BQz?<+2!|4;jZO>}6g@+Sq zw*ggv*Aq$pLk8(dw>nT&=aAWNs9^A(-DIl9XtG|>8VS$Xk>j#&X?O{set$1knY%~T zeFZh z4S*>|=Qobl&GLRRc5r(&t4X)G*5Qsm`a0VO+Ty3`B0Cf@>Urm<>O`y2Emo@LiR3ZN z6Tj-yg>LQ7ch4J1q$MTCKww3yX5jFFO&lOKW&+sOB|Xv@1m~_BWpZ7`zzSn&;fkFJ zN=-*si*?cB*@=2=pv8HZ)sj5@n@@0MatR)>ixcty{TwA4CP*Ba2-uCI`u%E>vCh|H zuMboodilloY#9R&4N$#GnD?-d+d(l1%ox(BJVx#!;(vBioI=VF_tYe zv|iyEFCECxEeMOrCIkA)3uNlu%ck*i>}mQ#q7UBtg)x0WMTNGa!b`Gj)8Cf3rIN{h zHbO=ZyhAM??p4?|pscbB!p*RGJTXlCb|sO~#gX4ZK%-(w@z00fiHI18ENyOM72)-> z6BzF+EMQ6-o~F{^NCIA(y`1?P0#x9)Sf%lBqsH3$R!rLD(fx9Gk(!3pH@a8z#+IMZ zi6eOb_<}pc1`qnE^g^?2>AiTG#HQwNe11o#EE!TEbt$tr&^*1os>l|cg6N_8t`7e6 z)UgzMzpm$VIU`}Vh@9ljM6Ib7yJ@(JLiREs*j4*@l>6Ytlf0M$L;>5ema&!b!mR}2=+N_xKzP-mpo&}x*P zz()VO#k%j6sZ|V6V<&x>_!B4L@%Ja7uVr%B2;Fizvyl|k_wD--xe({nn%uueLh>n3EtOGe;jmPjQPDoyIC3}*Qnqcdo*?#wlWw$2@sS5@e{{!& z!AiDrAxK@kdzo)}Ydrc4WL0XLQV{;LnMG4K!`NTU?n)+}HcxM+s}Ckin84Od#a@$N z$y^5=Ci`M6CSA~kyMa#H%nttDH6F!V!Q7)KY!Nb-K}k~`!gDj5t@OFC$E|VYV$z=G z&!+{xhi?zz7lTSnX32aWTOKwzi{7iOSU?{$2xxu)pLp4Hzrmv zO%$$iGj=2=y^s}&CmR$gJK!I{*1CNy89_&yAOa0R2qy(aau|h9fRv?;jIUX%K3@q{ zJD5D|6Ov&ZVFV-v4;(Ij$~}6eKov4AfoCHWFc}1zTt;20UXg_Kmiv+tx)p)J`?4|k z*$Bzh@vVRV>xcZmXpO%VMhTt4&nhR;`<4mnc&~(*Yi+WsCfRKQzvrQISsSbPG+pM> zaf8h|yBsDX6A++$n#fX!Q+{Dz$6JRp?lIl3K)3E096K0yjiWgBdLbhI8VdGxMJ3yP zm+0$*TKia_r~>$LC1N2WCL)p|dL-j!lKCH~?e+9g;h#sVmlS%0fH!wHYX{YWtt*?{ zdIsu`_BQh7G0qfc)g3e0xf`>{;6=qF+Nlb}0wE`N5;3~e;#L__^N#4xYBPI9#euv0 zQ31Y<#&me?hA&w1Xj^d#0+`27epkxzmOlx}fBNgd%}J5?YT4sFSU(WZ{qhFGLZ)F{ zgo8<)>()K#Ozu#xZ?$?D+u{vL&Xnr-n; zRl?fpDj$KZ7_OfJfWA4w7I|mv5@1i+Ee|yK9>xI^{Uvn;f?6=+xK%&z=Dw#!cS!an z%9JMg!vnZ?ZbW5!1E4@9rvtg!(1&M;@p9Br!6YAi`(+LcjcB z`5zP0t$!YTkx9H*0l1`GDDe@E2QC*WW2!^sI{h9^Pgi%9!!mN z>I=e~;n}(G&+blnoqdZdh1olISYRS&zQi_`r{C>2f$qZ-SPRI;2HhNrHGeeq&oWFm zFS7Sr_y6Zk{002Qn_xSS9qMgr@rnp7#8eu^Or3pf(pH*N@amhd!RDIyjR4aQ5tWBz zbC9xLY9a^w`UgeRJ$BV{18A`tvsW}4Zf+i8>Gae;U@2lXng_L(JkQi0k`h_`uZQ7I z-(|wkhZ<9$&iUlVhlcVuK`lFD0a$|pAoRzRweDo`fio@f2A z>!Y^ulA+VCo2j+R?N8d`ysyP4e+e9wYhl{OZW%L*Cq{1bGq0<`ta&t*5peeYqfmDT zR+WL$yK~7Mv{{F8qh_@wHti8JB>%;0BpR;wTTHRX`w8BS&-C-SkAF2Vv3 zEA%p?jrzuDJ-`-Fsy+jV+5gV*);~{FeEk>A@u#t|HqlmynU}*H7ET_fy-uINemM7U zk5^NBS3JmQ-xpjSUmFtauRmV~hu{~meyjdzam$Ou+VCgzI*XeU{1s01iDnXL56fUZ zhJi4J(fr`Oyq8p3#j`wWvm(Vl@QkVJs}R!|twusN3y>Yj=^|U82GFzUn?A9$Qy-~d={=`N zf8%gk{r7@zH;D2*oFx_AQU=@JTQ(lgdb`Ia`dI4jtVgbQA={M84s1u?<`15*aOX5=N(P-DCG2!Rx+0phV0g z@^1c`HFxy>s16k$Z0WrpmY2pdbn0I^3sw|Nrw}gykY)-XH?q{!Eh9G)$i6oE#E>_> zYc0YugSbH>s%N1$7YZH7UiN`0z3j^NGsEc0QnBiTqa;ZHV;u)>oa(Fe`Md>Rw)WmT z-bwI8C$Ya*35pwOryFjm8>x}EUk|cti~Z2y-wQL)y|P%Sa1m0>`1=>9tT=;Mxh7li$uZcOy<=sWKn9!dg3jzYTova#moi({qQo4uw1mfqBq2 zo)B7`n_G9Bfz*tsW^uHg47wa`W6N?m{G>5x3!G9Ly-oI@44Gy^d#Y_K(rm>f{Z@Fs z@7Wy9U4f}fLKDU1$?veeP^7Wc0H5%33@MXy^HQu+KOI7b8KLdyu$W)KTXkd zqAzBM=E==p2W#zZ(;=`4G_c1p+zL`eOTY!Luf*TRKFFVJ))Mocf(E7;iq3Ti%=t*Z znBUGora$ki57sIeBzvp{Le6BEqTVLa+Q}8C&QENg5Sl_@cy-LljTfPg^Cn-+s*o_i z#!8k6Jz7~ZiiIwP3xBYil6|T&Ug#$q?>eNxXrRf49`P?#m~U?Jxo%{Aww(LqT)ksT zh9uOh;<0^WNYu5TZ3Wa76KRbT1t2u!6L9hOMg{jTo@&;@ZdiQ&VRQa}>^Qep7atR7Hgm+s>KuWP)1>W5$uy?a zf?`t^i=oQ}uw#>B@y}_R8Wp~hx%{Lj>+oqRZgl#)x=Js5jUk9wi84aEVp%7PbC^+S ze=Nx;##ACTQz1Zl=~~b}q7!%Os@pk=QfrX_Oq-B0P6$FKijNl}Vz1>@6FA%RN1oc? z9C;;Y(H-bhvcoEbpUgxUPxmitv8mv8%N5uFUBnz$+L&*2??LN)nVn4dXMy&_zJI6p4$FQslDK%I{uo-r<3h@3C^Nwb$>RWO9787KZ?p*YlB>J^)E& z847^@8f-3uWb})NvTU|3cy3CLZ!Dyb*(kJ&&rb<6d{wBe5Yl7JlprNslvJS<#W~<_ zn_AbkFw4^p`z+s~QN3U%;KE8FO4^RgUx7W&`-qfQnKl^ME}=X-(M**MFd2H$ytZ#o z>%-Haq`la4{#l(0`MC{J?*^qroy00qEG-B+2sgS=n(OQH;Ij5KB}y*V*Y-7qGecqb zTN%$2V29+x(SasnROkI>xIMVnt#>)^68>nDb%(lFsXd{iFg zwl-@&=`C@Zn)%MyNr6?$iT`b-CkUcHSBsAClsb|#u=UJuFcJV6I#Q?}wK^naZ9I|w zvQqVRdYv)0fPa`?En9{#2qRCiwBgp3_NIctQT>^;kuI6cQPHU0hhoL;Y(ZO%LFK77 zaOAZ5nklsVd7OXpeD?66276kPnp{ndr2jcnDmNfKmh{t@$Buey*rmTr_|2n(j6ggT zOBaxF(}|wHsK4xOG2LHu-%~0EmLy7LXf!k^ffO>MZ8 zSpA6N=?Tdl%MT6(yvmw7&LXB7vf_XLOT?g-QZD3#6xv8>Ky{KJLKE_e{p$%y3ZlWo zX`i+iyMpigHuIIKEb}Q+D@K)x$+CdoV8#V%`?GKRdPO26HjHsDwWK?7FQAv+5~ZsL z?~d}xPyHl96ilq#FkQO7_Dg9@2){8T2$&)dJ)ye#CGE}Zx+CDs1FZM(n5B6i)zY-sGV-t9@Wh7%;V!LOyZ8RUr1 z1mq%xh8f6H+oErU#zc*D>Gt;I*+r{M&enBd&!c61?*rjtq)buoZqDYT$gsSbHXFQ< z^xACbgm{IahkNe1S@x_ujH)FGXIgV?!P1Mu#qq0GB2~!MUvsghN{tnvYgZtk7jF`N zS5HEB-mV>s2OggO=e`02N4EgR7_k&2)H${AH2hK^ow6Sply>=)ZhIPAv%>DUa+dfu zY2;O4eJ{IBs@GPBb;%NPki-`oO|g`Ip)ly+X5-2b=%oN1tsT3WH{R0C+0L6Xb$>3z_P}k8;TXqdV7ek|E9_36xtZVPL!OswKXSxKo=yT4 zECa%(=Sj1#0z3&Lha5hm<_k)2lwUO=?9)K?z$~e9ynsG37O7@zY_nnT<4r8*o^UCp zve=q#t@T{xQ5oW@S+r<{MCSeSMY(FO>$)O+Ouwx-AFf8KKnW{!g``6TEPOl!jG zM+LHv6DrMjM3UExf4)tUuD1j~7s{9uU6M9JgA&mnGh8y<5a0et(YUooO<^nZ>l;7)XTv~JvE$cb>0t*+Sk+N@t?Ab5;q zE^*y$!X9Y$w$2JrDZcM_Key!J*#hCtO7(Ym6{~Z$A5RNnsV86W@O?S{Pj(ONvnW!q z&e#i)gP9t_;MH;uArIO`6#NEg9_$Hqx&E(kXXyl}KAmocFD(K|nxtMg?>lb88|!kS z%6%QW<%J9+#-20o3fk6XP)tPl;hksTC7E(^OmDM*-M+VOyWMbxxTByVYY>y*LRUVN4vE!Gy$+{M)&$* z-^L=n{{6%dv%2powheH<`4y1jIA=>ODB_e)q^Jyl^VfZsL{8fj~Bb zF9C^7N5zES-TL~pJ;3;^*uKbz;V<~p!mYR?q+Xf9A0+)DcYxs83KIw!#P;m}Zw6Ru zGBQ+5l~{Q0RglFtBslMO#VT;9qe6ss4gh=Bl@vDf1PIekbi~7AR9OPrzYOMWS8j@K zHPTgI2K8+ao9#1^!>x|AZ?}&~v{-dJ8xC4q8#COayFd$jzy z^}+GQ!~W{4c$+phMg`&X8XbJyK;vS#({V-ICHEe4&>uLr*17W~;Fqjk`4bWc_mpR7 z*71#>+*lSPu;X_uBrvvto*^~oUA6si9`&L@!JPd)r^Q8=oy&cR&R1dHD8%FLjT9Sb0L>d4Sm{=iyn0Y`_-$ScozcMrrEM zqg6F=yd&?^E*Z=+xd+Kqs1a`|Ax;m8Vyhh_M6B?I+}`0{E>Fz^a^FKf?*{XoQv*Sg z8xul-lJsF-r4=##ON+N179?c@E9>;r7Q&^51Di07>> z;8yK2-3wWw|2eO|bP##Gr)_jTdPv+3Bb!>LkGv*k$+W96Q(u06*j*QZ-#%KNAy@38 z)Ai+p0nAod9W!?KMzTv!)y400$5a&V31Aqm)i~9n8Q{&Yi!iJmMHJ3%k^1DT`bU1f zQ_B%SFN#P*Is!!l7#2H~VYEjKG;GiniiNX2H#!fp@mfj<#bk7Sz}>^}D~KJ^cqfCs z3haihf`LzagE0?2yKwUF>0ygpq`KxSx&A-xy?I=dNtZtwMMXu3xB!BXc0m+`sBFp> zmsUg?A|N6`NZTj^F+>C;LLdsV2m&n%v>-%fmnA9$lqC_u(u(X5AP6Br1p-LI`al+L z+3)+_cc!Q3cjq@V_kQlZpZSX*$4f&)Sbnb*EAM%hpNuJcl%d!O7zj|S`9a^F`CZ-mwVEq&siUiRjvUHK%6H*| zLK+uQRDL}bCPoWA7((S5lbl>clqTdSbQnf9GQu&+cZLPCEU>r3(KWGXRqHIMc%&X* zh_$e@c`wc|ojh=GZ28YH1UweOB0I9#&+&oOb@iOd=^|S>?THDST zRlc$e3r+r2c3vrN8FsW1DVi<)#^UsVSZ>#M4-De=9kDU_Nbaw~_eh2~O=C~e0g4nL z+jJ$aQicGfwQo&&ZhW%R35L>3xFok(8RsGW!=2`Q6YFc@;&SRhGK;_Nz1)Tqlp0j- zNb`<9T?W|rmGRThmSGtiK^eL{P?>wclt%mGXV+f`OP!>Q;#!rTe+XZ-TQO{d-85Vb z0|c5$gOcM-K9TNF@bN?*F1LO5>)SW+YpB0 zz2IBAz{R@9%;^$OZM-OGygol~d?_W`-xMk|)Jd0RmTPEsq%hee)_L~rRc=PmLt!pA z_iiZ4Yu==sN!|zz55Z$Cl+l61la}wwgBPPpjsT|f>HC=pd zcKq(oa9t=i^A+2x8&su;R&Q$+;nv9`Jj&r z?2FP(;g%htYPbh%{&^$ig&vE&EdQJ*7Ad(Gz1UA>9YTcV;A#VqmAE?9qBfiTT!vkr zBe0CGa+JK{wMGQG!P@;r18_${8j)-TsLCz`q+g+HHecdO0`17r?XJ!z_0oOuIsA%C zugg+JXUbvi7KRWg>;jLlPzC%JXn81>>1H9If$F5tnI7(vb%21weF~BD0E2E!id4_y zhg-$eIl{dMo|rwc&&E}K(sPLg)?ITrygoXHEa$!S;kGF^D%N7xMQ>E;$*BZ0_iRAy zD_eVHCpgQZ4AlrQuh4Z}0ay*-O-W6OmhNR^)U_PCCJCkKd#u4M5G~k*-8S%;Qid|- z^u+!LTj1kM{lJn$Sb&5+6}nz_Yi)uopH01^Cw35>Afo5V!q!NVb1qTUIz)%-NUe`^ zsawaJTr~>k>BJ(p>BRvCB>^ONmh}yCp&Wv~G6@*lG~GIMQ=D zsFbWu*G-7HN%m+b84`HG3HK*OW{8*v&hN~0m18G?z(omRn}~M-kT(UXi*<0w`@9mu zMxzMCy$qCGHM4)Er%Wpi%|;FvScA$6so3bMtzJAtUt;{+fESp|; zvgE^u{zquD#8XEAT{c(EOGb@(6)L~_1=}$_+cWc3a(sXzMz|oGk|lw!+JF-aVF*GA zb)l4@bmgNgi)|3&Xo=8JO3fvbYf&2l5UY^)=HRjPLtQj$eR$+>w-dH=ie&m6Lku-{ zx9_2)BW-V)8Rud?K~%@C&eI)w2K_JLrfq<=*r_XY2Qg@ZL$sZ#!ET}(g|?AbR%s30 zDwRu<sjJVe~Moz&j}JTYjN;a@$A8ksU`(kQ>EUgc)~+07DRGgB}St)F87sNd_ zAzZqqLJ;t*+t9SyNNt8YwQ*0TK_I3$B{yCBwz=Q1Z2fy+VSruDn+iuMRT<~--8OXR z2x`5U@9;udJD>^9bu=@=L$`VbU1qmL9Owd2xUp0=>_8=)??N*-b;JI73gp$9=Q0qp6g-DR}*J&*Tb6R(fDINLSU(dt4kKXEmEk z)*P3hI=}V&wn%5h%vRGwF=I{71e!z^1G+n}}@;L@0%>5gURirJO#Z#|KW0 zz1X5%>^^L6dR!P7)sUOVHyILoBydp*xTVm_OxFR;WCl;CSywNc?u_dPpsL&h8y{-a1i4bf)C!|CesGA;3V@?Um)LnQBwbV%XGq-U? ze&7u8^&nD?^h+o53!_VScKnNw5IJYy7;Dw7J3C;ol3IuE!{`Rir$acA{g{SURivn9 zP+4dkRprdZyYZ)I&{Z8iRq{M@wbNCC=b`huO7m)y&WH=0?_$wizZ~+`9?#!Do(BtU zAlDcHGLSmPl_`-X1}TlNdtAm z?oIl7UnAQ4G!8j$bH1bE?$Tbz+iNh&%D2kNdb_7Pi)Q2Ek&#bzDZpHO^F#r@ZQF^h zk(q9X?myGCe{!XHou2ctvSJ>O?Nw63dThlCU;#CmzzKLT|55dmUy|GHUW@vAFN{@$K2{93 zeO>nYZrRs(_Ld0e3ZIbM%GZ3~zV>ZEpBzrdB)Rf!{cuSEG1maz0g8FUi+2IZ`P~4s(*)Y<{fJ|clkC1P`m0bEWR6OZqmJ2Qw6=_f) zYu!w6ta?dj8JMG#*gq=g=nPofxf=iUTO)`MLyl!$&MR)1r zsuSG4*#dJ7{orS9vYl>Qp>$zzBTCKU2Qf<8E69zg(kcpVAuG`Lk@mfLC8+Pd!#`PB$rWE(r5yk@-RcxcAT5+Yge^K9*c9D!Sa_JXQA%_1darwUuLV7E0evKV9=TS((CBG}=E7|RlYUV8&V(jui1k@9YdN_#wI3QE zDzD{48DrpgNGF9jCt=r8N&-P_K(bBU6FY>E{X`7I>6$XHo^SVW8gO^({^pOnnX$x; zC<|Z1&@6SgGjh6_?l0_p;dRO|t7FU{7ixOk|6$(sNYS^&?$=M~rB8Ar?|aOB&E97p zIP>}ST!)n4Fiedkm!cEQ2sy++-Y1OHol=4!kUj zuIxgC87FqpXUp{cinOm6E?99a?OL)KlYJlT$c7931M^eSh|;T#@|)|Vy4}3aD#IZJ zT)e47^5n9RQ(GxoYlbZVE{)-oI@c4m6?56S@r8!EMm<)swNmA9+bTgsOI()g$$a7q zn^TP#=h^YgWySjKAU5i}^^eK#Z@S>e7Sxp|7KJms^0+ErK`lYeJ5;T!N)u>+vcr~j zAPazCDfm=jn=2?oMYx#@-0oz1ItBH0Q?cI(`Ba7V1yI;B?Ci^z8LjmdKQa355wiI0 zV?my>nbM97eTX^)e50W9(FT$)Hyd0o4ub}}i{2`n~W;pVd z=seMh+jAFLr4RUg1;qggeKQRvj7Sn9pBP?eWKus^z_Uhdy#SHVRtmoqjIl}V^Cfv+ zWf~g6hjo3F?O{!oP_wYnQ4(vWCY%-9wwob^YkH2de(0WURS@fS&Q&5}5F4ptXXG7{ z3>Uj$v|=iHgu--ya_gCA+6~72UU+}g3mA>)?$6Foe`k(pL~J*6b$1se45dVc?jr7B zcoGz${&$EC7P`cYCgwxFD)!DCFxVmnkx(3uylKpBQ+0J@TN7`UKq)(yXlc_GVA^D3 zVRNJ9>yo*Z|HA7^*kZ{!aK#z!J)g{3YlcAH4^;qkhoy`-KqPKF3D1MV&v%xZ8VRUk z13Fb?woibJprJRN%y$_F`o^$ezFequL}SLKla7EatiD@8c+8pJz{c{x)y($(RZw6T*WM^(Bw zK&*5tNgQ$PoV?WWbBBCkdC9<2*#fZzR4J5eB&*M&?$5W~%TY z&xSXkf1!e9w(m-Q!shXm@?}_GkM9wodUH~IQm*IC+75Lio$>TD{Nb~SP3XK2cHVXm z?@!^oZ)!NP@*yqTFyl z3HAoMgnNc{fpVSK3A7t|cQcNJH`t9AnbTiNwY%~DO$3FLPs?Hk*V9rLKUP#vIF-5L z4%8QfE>_~3Rjh@+47by0~1wXVCcs#@l=FHT&oO`J$akH%|qxX9%DA8*5saM0Z1x0ZSce9c` z&8(nv$EwiG#kwboqUL8yGkhXz;zGPw)y$kFswtO+sP%m}fn2V7+(h|NJD zl%l6ogAZaCORrdGPIv%e-Np6ZwVi7!3SITiW(;h1roSE`TYu?6%5R|v01Z6qo4 zh*db>TyG0);COW61=faOu^s-b_R^^><;*E1zN&iEy-V%QU!PXkfHEJAxy^-MZP<&> z?D24i`1>qgAj+1r=RRg$9S%fO*>lx<)*+wn&;}U(l z#@?c$FE9!B-zzZC@fVSJwYW;>%rK6AIk*kr-9sL958he71%wtWNSX+*PkuW7b(hv) zYm4j$;Bq!sFI%*bV&m$TVMWOP915#~-H4S`1E*ALaDrHgPZo!tzVt8NW52T`&d;ZS zUw%UgT=L1^i4^Ew183cQ5bp`k$U}XGXGytd=*GkDrutP}2 z(U~6-b@H>~Vqs&s{GYNiUmsrOd_dFH*%rPbYx{%g+bB^mFzquI5Rh&c15n;=LqyMd zolq(M{AgFHkNeB6?Yr+W8${PQ*J6m5f7urN;`28jJrjfOj-dHq)NhY6b*4)v*f&R6 z>8pSx3Ve|$VKz-#z(uNf8Do^AOPjpRoSrr1c^SXhH2u3b z9bw{Da#j7~&rH)^Z>87oWtwDuZ)@IpST?Cugd(k}6x37hBKAntrX6Qd=-jogOe&!C)L+8(P4cCbFUtg5Zt_BE4*g# z>C)eJmIf2E-o&4k3*Gb*5JvmIpCzxy*koOB9S_|p)cx$+k6UmU9GB{{rm8G?=9uaE zC7pu)$^j=#7ZvHFnZcdERX|u9!;%Xo!puIP!VoK;cAME1^?9nY9>0LfuHCy0B!Dw+$)a1SB+-mD0*k(f$e3E~2J=3FlL(ENzpaF{2CD90s7 zkkktxtsh^rp0<;GsqcMz$6hbe z0|Ml=8yaeRtTH~RsTq{RM*QJ@qM@h=l9uuvu@PsB0cr!=B8D9hnJx^U4~ukFMZo*q z#@Md$;d$k8U%ES1IEN?%5b-$nbcut9?sP-Q;j^FjlpnnQy6F=ebK* zSgvtkS{$0O8_o-EK7skwa6UWF+JA*#9b*-JHL<=htxl@ZP0KBz3k`?Ozg7!(m*wJy z5u0=Gi!Hf~jVd%x^t~#@JYuq1h?UuDo=iT`h&hp*j0ugx<@TTSc&ZkJWun5_$U3#D z7!#j6zJy_$e z>A;pQpW@Zc95&1x{il5bpPWQWgFlgn%I$%j2uLH#OBst(Ad@$20PI!3EGZoXW#~t$ z8>Mmq$nSKKfBLVFmD_s?_`h$P$yq}y1n|?{B>W3dn?~yi>2!rKZYqA(#;Jj$V#tw&a>g53 z)6UTA5SMpLJ@*J=b%WIOtelQLHu4H7UR!C!36k{H>Cca@sLm$shIBI_ojMM@XjcCC z4Aa7}>xXVLtkTu6^irB}?o?<*QO+XzL6_DEMelC}m`Pf3k_kL-!oE zrTqP!1Gi1PUkT1YA7*&Uy`Kr&ute|Hnwjy}7~E@Hy6UU$DcY!itjnz(!8&TU3`33w zkN3QymA~oAiK+9}cioeeqxn=80Tg(OtW53 zXEeC0a~2ESG&bFlDZ}QnXyNMgvU2xl#IjaQhpwSPaNhn0BX31VS9+opER=|Z20zmA zSLH(Uh1mO;2_@CsdnB|_zd;eY$*Jo(;0AapYB5)1Xn1!k!6VhW`LbFmO1^h2%mqi> zf2e|F$KET8Ws?Z z5iBwGLYLXGVvd`u_W_O@XV80Tuqclo6wy7`T({ulR8m!V0x+IfUILraue~(Roq673 z%iGct;b!P6Y@DN*cA;a3K;xNT5pieZJ9gJnRmIdDgH{>ul$6wzyR%do&M1ZurAN@q z?$pKqI9*tD%I3)KMaSYLok=n_Wo-B7hgPLes2?gSy(dROXrtPRq1Jcppr}?Dyd7xa%yjXK5nq7wy{h2o#1wKT%^&9b zV7-2SvPfudDym3En&G&33*|R-*3Tv7_llCOihr((Jj|Y}yXpOHerR9CgCyMr#S#4# z8WX_%dLF;m;Yr%p*D-kd$y;6p3+JgeO2zY6_rK@}^9k6o>WR;n-H9V!CzfF=eLk@0 zO;x4;0*lZ9i_kOTas6Y7#01OOtB(T?-AdejaH?}ole3?4!*CgP{9@(Cn|YsS?)$x2 z0p{nwpwWC+i5x0`4{*O*hv|R~9&xt9S`Dl=Mg$dk*@-x*dxE_q<4cFJf8>FVLzx>D zEL`G_G~3i}O3c-`^(JR=SMU+*;N5JeAYA9EpK{mU$p3KAFY)e?^tU;k-a1vOwoOf4 z)8uHx+E6&jR_GQnoS@`Ftb!JB5!^-48Xt;;6uvS~u#iOo>gQ{A36RkwW85Kc zh#bx$W#I4K^pZl;3X5=PU30I?=Mi6EYqWd7anT zgx@nTTcqDOEj~wUdjiD`YnY}rD04RU*BKiX?MR*j<)M>WV|H{-(L1w_<%cBmp^r~me|ZSX?XKvw-wi)K@)vp~mS7pmh#PK$`cDgt>(C0VT!M1Hn|F{w zPpVJ$_Uq(YbQX4OsW>*z#e2!9Bol|(+Zm7!$8;E4Tf3gH=`M{G=^k(4uS!&lXxjDO zGI@Zs5?U9W~X-#e`Ao|rRGV_4JE?4EexiJqF8xW^&9cF%fq~VnpeQSr=F+cKiqSk4E znypu3(#{C7GorHT)$+yJy5*Fsmsvxqs!^am2;gY_M}ZI)V38+m98*HQY@MjY2lxwr z;>eYHKCsCizm<58U=^=q{YxT!Yy8ebo3{MAR_(>Gt)Ij7yIJ{-89w`HYX?7d;I7En@Ed4@mf#xZR;!88BihDQbLhE=DbEo%DI z(^n6Ol#>~UzeaxLUC2I}xNoy0&vC9klTqixoO9{Cjy#vvsoma zTU^O6d+~Fw79YM^`*#hORZX7+&JLp%f%);x`I_r}AB|{vHtc(A+^2bS7As)A)qk?D z)**jyt)kPT&mH%jZVn_$%X?=++~@IY-f^K_Qr^G5DCh(LSS~v39 zk+Hm{^g}asgPVnjXj;P7@3xabkKvc;wTYjxN_Z-_5Hea2nY8a|WAC*)f5tr7T#GAq zLskhVF#het%Cmxu^r7G)Zyof;dV`Fu9fmee&Yk{u!wx66s7xA~6V6q}@Z>zH#sh~8 zJ5O#uSO?2k_X-LS^w-k2L%~CpTfzNzBuPK3280zI4{OEz#vUs>vk`8zWLk7e>fxb} z^)~KN4(#div%WszdmyJ@kpLL#h=GuT|NnQb>?qMQVk9pR$}GH+%yGU89$`_^a|Iyfpi?IdFs7n zPKlzaJ7GG__6-d2e&v=b7o5S+&})nh1p|Oe&+d^ zCpe>_j&r$L-l%U@quC`vy6tj`$7oy6r}<>%@6JjK_?c?r<#nqbr&)oiWH-7am{SoN z8Ul+40?N_Oxn{Wd0`c)qaElUByr+^Uf7KJPcS0PGKFVYD=GTH;+>O|8zlRf!+9_Njw7zY{0kkkU65>w9LCO12E`{S+l z8(!Gi<)3~=WJ`|^Hhp~Qx`M97iqMv`(8HQRZJJFFK?;M@Jk%OKeMcM370uLq{?M|zB$d^28nz>CK2(xXOvA3l z1=6?mAm>o4YPkLQJ;QcFWWDaO0F^3ro(@Bqc$nBSIOFn$2HhQ05ZXvaqDh)s373RA z5YFjsvgpSUi<^4y)Mf8TH<30%zC4Lvqnm=Dd+;I8HPqaDkjJ;CZ1+w!airV>kO-X- zTjxUP z*dT9fU4XY}SgY%hcK5|ztIqq6u9ybDdPG+#e~s6=!eU?hJ>Z92RUcnRP366{(%DQz zjFnFZ-gTB)9V1~X{zUh(LRBohQRnezzpR+%8IhTVKW zf+deW*}b2zYV!cbpvWu0PwuwwxWH*XP-BaL8s@?+kNP6ugayFmya%_vek+(S2=L40 zhi(wA&W))uC-0&9;f+f22KtHd4f4Othd9_(Kg7^+`2l5Jp#wqXur2hR;{DJ;A=SPj zmS-DIE{@aCNjK`S)|pZ#dVh75t6OqQhsT&9Ukng23qQVPi4nZ$(gAZbt09R8aQ4gN zp4a})uW)Q)_dkNo=9QA8eg(#5<5@2^%b3z-*gESW7j=7i)WxU?`X-7)32S%z53k|} z{JUt<_RfiKimcX2#art(IApEn{j8um!RaRLdEN0}KgJVL6`FY$NG8Ll5*%GE4nIA*fxLz!Bcad{r*;X* zQHByVpMs%D`y&p(>AB_Gw@Xo6VHb+KR?u9{dR8>>sUMQ5ZF<4?9c9QrO+>+*Pv&t> zBBEBh+7_=!$qj8rl;|a8L76|k6zG0dCCBa%%w_Y)*TiR1M}B-INQk~F47}^#x`Mx% z-@!-78&K9kFTN5s5wT~WTLIiSQ)Wf~p6pC^-zTO_-HHi~6>W44(m_FWLU`5Y+=0=h z)e#N3q~z&FUI=D>%D%@CTnS(7p2OoXuGSdVToJ*!3khs(XO^Mdq=Q2jL63ke9(nWl z^HYT;=_Ye6X|OAK===T2cSj6&R|k27)+3cOM1S|Y{9pVZo`~{6s6gHe^Cu*QrKYZS zdsw=RtCV}4pT=qj1+M+af`|1|irR~~Z;1n!Qh$D6(YPb}RPo~>;W2q^k1RA@LceNWlq{ZbI3RYh}A#Xe<2cL~C!|eqNQB`sT1x_I}s({srfm4S-bj zT!CM(cG5nvU4-Sj8&(C@N$mNnBMCL=#odT?sEITpd>LjJr~NiQd^Yyq3sdj>w;phw z`bNrY*J<+SOTs|%Qd+@Q!gICd=_Z8v!PVCg1K-+3`*u1B&A z;_tU#>_{But8=XmOZ7 zeHk{pP;hol!~bp@u)Ae&t!Gn5w_(;1CTwLp_+OZap*&}l%6&mXc{kvxY=hy6`#jTr~Dq^e~i(CD6` zVufl3*WI~C6S1gnw+wrUmh^(0=!3J}jL%_pvqL+h{`){~ z`+YeUQ_}y6$dl}NYqRq=Nt2x5VB-E3ATe=23`p*O)qfWCbres71$P_r2a=a1GXkRm) zo|WAJqJe+^!exlo;25GSZgGf3rD4D(2HLohafQ67`ZH?0L4P_cAdy@^UQkK=GS#HW)oFmje;ogN6x$v4k04AC4+md1K4>P;AQbK`&e=}4#Ja2a4iG`eRX~o1A%oT87<7*O+37wI#C@dnvsnda+6dgP_38o9oXNRi zbQv(xk8$SDR#}45l4$9kYHh~5BEax)QA?U`#z!?~f<)D-Kvg6R;Cg}7DtGWfzZoR4hXA1s`lu6vf1Br&b}u{E|!bj!A@Drhh$j~6134^i5>xFiadHr;xJ?BbV2?9Y-cs>G7jNq1H?KAZU!>} z?ESNkzjvh~B>x_|43pNFV5Ld?F3`t61@v89Yl9Hao^B|Tl^#vCl!RYn%x0LtSWguk zoIw6eS}oZXY=_fI6+5I;E@E&J>aV9XFqgW(+PlUdfAZ;%3A8X1Mv2q$QP zatDi7A2j?Z0i`Y+LQR;YNFSV=*PcNi-7C}NBs~)jvYIGT9uE% zCmda&1>1a7!;lQND{e}($`w4xsz)nkM&LWZ7GsF42kJa z(=+geCsZjDA$^<|8rhQ?bm!>yNHB(76ri_GY%2!0Gf6=PfQ<*_J5V9CZNdz3|Q8OI;yo%(>e|0-c!l|I5k`ei)ufEkt=TnXOP1YHPqtze?p2| z688J~^hyt4tZhaBVz?c=88lsn{q%9x+(CL=WBYeVY5jK~1@#?LMn#y}eDd#9(EOzf zWXYaqUmd|?mu;5T97HX-{(YR^3;V;tM*Fof8Z}-94vZWqPv*woG6law)E^5S1;%@g zytoHj-XlrXC|QQ(QQ`{zx1eO@cZLJ2e?W;X`3eK}^0RSts9r_J#{^*}Z}YDFQOB-= z%ngy}H>_Kw`Zp5X?*GA-|KDPZwSA|*}l zAqhxI$ZQvz=eb?*@(SRgSK!=sRdfs)wY%&NT$<}<_vPI|hMx0>Eup0AW+$~KOhuc2 z?;X&(EjHifo-3^jXJ$L-4N;L8xQi&c)fSS@~bE`4u3NcuER8>n7 z=07Fb9drAjcn3IHj3sfYjne*}?BAAQAC)Dy+rYI^g8u$~pftE|M@xs{ssM?M!5)1T zegfzLqoW@{ppuL9oe;a^75U$x6Rmu6RoEo97q>tpMG$mI-sznfZy}Oe;$@`omRhCv zOQ~lP#4$q3ydnU=Pf;l@(o?-C(Q2TUoohMODm`8iD0zegzZ~1#lkEhKvI*ZyFP=jEwiI8w;)D(4G@Pb$crpVHuiTxY=WJN;G7BAG z#$PkJ;Yq}!H6W>J`{hf&tz7tXpKDGf2x1#mF9!bJ4uulRyi+P}>lC`?)K>=hD#|}U z;&Fe2(yBFPw+|O-H`~-_bw67>KB&zxT|)kN<%~jVD&E5TVPd(*>|%e2$hAKe0|=x3 z^&p*7qyF6Ee`u8dDPgTRBjRG?eUjUDYap;Ce5Js+N=&6`;-Jm9g7P1+PZBCAk1`4w zbt?j;Td8r3k^W;K9&Vs@8MZeM1_EGl!-U28HnJcPY@-j_z&nG1`lTVI2(kJnU<$?D zhC}D+;IyXTWtU;Hfhh5F;Ia9Cu$||W_2L^9NzG&7%&$iZ3nv{>WyK3oWf@E7-IrmT z%quTke0p)i7nj2;0%30d?;j1EiB;QZ*;lGT<{N*P_YP3sOdFP+Bi=7;PNukf2#6tr ztd7Bf0mFjo!uB8Y>H|GbmL+E0pNW4nc2t@C=eaqAv`{4S#vR+|6cJJF{*3Z((foy< zIzwI$TvEe|wjIB9+2@GmK%09iOaDyLnVW%W;ppdIf;c_d)M=6P2L;D{w*0n{ionXR zaY+?ktodnvHuc}^MaKtE{}X#!HfkJOB3oDFG;GG%lsr>=z)N4O-esXizFJn4Pk)}8 zG!pZ3&qMn~|J^j)s`9(FzwdE*cyQH@1ljc@hLa&k2;=6w`ST3$={x1F`165<^0p^Vn_{lim~GtZ&pO z`94Rs^hbUY@=qOj7t8q*g8V08^1Ad8q&&O~+w2DI60ZcN8Q_D&I83sNm+6#Yj5=JtPu1@w?%3nviG5Docm=Mzk6hxo7?#WYew~(X+UjU z`m#lD-`Tp_(znz?_iYXB(z!1oj@1UH34aEL;uCrQ20e}(6j(N%sK@hc1~sPH2%QNE zyFBA()MXd^VBoyb$18!uO|6HAw-r>$KE`&g4%$Q^8_-hyvjfvamwjl+60V z0zvWaeY!n?(VN!*md@=P zCX=Gl|28~Su;$6uBBE2LZj%C^jU}tfH)Iz$pjZnqE+p({CF`vGAzY#Fxp zZn?4Ijzq8L5i*3tA5VImg@d$>tBd5JZ0yR=wIpRoUv|QD2(jsefXrO-iCV+(6`>)7 zHRYmcHSHtHGsPwf&4{)2l7H{6ip4(vO`smG=(^>g!rg-#?d+H85tsXKeqI>XyD}gu zD@)^KXE$Rv6m&7q`S~u<2;M2Wi;_l-^WWZv>Tq1kJ}t>ffz>G9(kXo~BNzu@+EarP zH}@RrKnNJ%JkO!bCQzcVP%?epGVH6*?L);DhT!1%>1ubWn4Bp?sFR0sZW3a8UpbG$I$1pO<41lYa6<~mzF-)2aT zBMThVF@th}fAnG!eT;mCq$X8uthwQ1XthrL|o2g%VT*4#fFB+*D0$Sihz}5Adgy6vu{t{zIFLRkHgF-l}|3X2}kO=Qd(p|)X4SuS6@b~ z(^Ae&d34WDEu`)fE=bpVMn|KDC@6)OF)vWVx@KDr+r>vQ?_1hN{I>M)K1+U}e4u^i4OVQVBS{ifIw(w%j4b;!5sLM4}Z`DyW zBC3#t0P zmlcU$EX9TtuxH#p@LN5|T=lcJ)`zgjFn$pe128XMFY0;RwZ>XJ4C zJ8=MZ#rltpqW9`*Ap+7`U_PBsb^=BEzHjdqVZd&^%QNJcFxLz_HB#~b!?Xcb{2Ook zb=vh$DURNq1+5`YCH5DqstL`(9P5C$&HE1}>m}=?=K{UsV)A$C&-nQiHPL7cYgNWy z;mh0jU;mqi;SfGd5pVe*S1|tU4|wozCJ9WDV#AcM$kv^!Z_9H82?t0K1HV3)Y*Co- zc`8TwtH%Lq?_VrZa3~`|T*1Cv$*vJ@k5rQyMqW$<`tV=iXxsnYv-Q^~ZE+K#GX(aO zSdDGa6t@ptAi!axu|ft{cdE8B_6@^pN`}LTx>VT_P>mFMucg?Q*w|lacp)(wgLN39ZSB9mRGUVYjhVDY@NKA4d~5}>!oG?{%9-mQh?@>BQyL=LU04~ zi{i5kk8M5WkFpbLhOQIf6CH7yVM({NW2mNn0p=yPdWv>m&fj2EE>((9MD#@g;vFF@ zbdAuw@TP^P;A$-@Qo2Pb|H#Q`;g$1vhKAr~T$VTM)gb1*VbQ0X3-f`Bn$4xJ`&;rf zBQ4_|j5Ez2_IQGNV}QFo?(kScXsetdlC m?276T@)?-%|9tg-B=BF902~yS7yse9{<{bJ|Kop_`~D9k%n6Q4&(nNX(6=|XO4k7{)gh=RJM1;^g5ds_wy&b7a6)7R~-b9do=p6*4 zBnU{8LAiYp*q#nXENyxcG3f30wgi7#RR$WB_o7 z^Z_o=z)gKP>=6K%m;fLE04@P!aWH_Agh(s^52*qG`D^ljC=|@EDgMQ>zi(a~0jl>r z{DS?0JpBBxDoD!$s<(_xD1S>JmA|p@-|)&jfAVq~&`7!W2kpy4{H>@948wOLJw4}p zP>6xiUH!k6V)*3Z@9#~11ps_}g9D+4x31dQ+FhkV1M~ndz(~^Ys*7uozwW(zcYn+L z=lZw&f1A_AzjX)Zq<+i#m;C<*m>;?Yxsr^(M`C~QFv!)1gqulq+|@rY7yu~#Akl@w zg8hHvQW9nhBq>P3?Z2`6fAIKk{NO)$^KTvts2+*uJE?maTwDU(0f2!-2Cjy>x|8HE zTqR*y--j??68`;OZC4MMha~(b2}}C;`2EIRBrNvef5>tFAK1m^!M`$HT-^V~|FMPi zBHLkZbACy|Ii=742=H4uwWyLe{d+w%Jd%`jc$Nk@S zxp^D@OAiV)|M%J8K#PCro-W|u14TN#bhY52C@#aUa}Fg8M0+EG}#{6SF&H^6yyx#Y~=jp zBIGjUs^q%l#^e^{j^ys-0p#K2&&gBCUy{EeuO@FL??j^l1X4s%BvNEkyrHP2=%g5?n4{RFIHdSVNlnR0d6iO%QiJjir6r{+ zWdLOqWin+hWd&s`kl?n|?mb}yaLUZEAHRi}l}KBRq2n?_qo z+ete`yG?sW$4nC<-5}jZx^MLK^w;Ut=*{S1^ncL5q_3y{iylq? zlYxZ+#GuFEz!1Wa%7A2e&#=t!jggU2gz+Y$9b+(KDkF-qpK+ZLf0^~N^kt*V4=+bw z&b!=tdG_)bCR!$8CS4{crf{ZgrY5E-ro$_=S46JpU2(Y*btUgg$CafkC(NwOa?B8B zALeA{O6C#f&nz@7A}snW4_ThGl(6)(Y_U?X3bE?3y0SiFEoB{K-Daa^6J;}E^JGh6 zt6`gD!?LrmE3#X$!`buL-?49UP;iKF7;$)Wq;WKIEOPwf?Yk}(*_f>9vZZGZ^+-=-zJd`{j9y6XWovh-Hgy@7+g&qlI3iSzLZwTHnxq-M* zbz?=CR#;WoLpVoxSonvCsED;loJgCHHJ(U|O_f_&$mQ>kP@2MuM{-s8xc1tZeJ$0*fzuc0&6?m)V)(<^(y-2ubYz?i|<+&I@5a~E_s@NTCGxe3@L!{no>u&J+U z8w7wDK{6m~_eAdn+H@CoOqnP zo!&V!IlDMF-KV;5eZTTP!3E;-#^vOJ(S!U4SXVvQ9M^+~Hy>s`+;h`%OLyCSr1dEM z(Pwup_YC(v4;_zek3*OqEEk6JyyIEq`NIq1h4i}cw)U>`x#V--r^A=U*UNXnPrwiE zH{&niAM3vvpdOGFfDJSbEDs_Jatvw@W+OR1;~`=pF(K$s?a;hXe3(^O6Py|D3m<}xRQ755 z)9=r$pLIUxfBwhwtr)|Ys@Ti1fw4<*8gWJOl<~0m$pnRjR|&+#hl!&}vPs!Vgk;y` z(GPwT{(MEq^~hbwyOmd$&zGN&|D)hx!EE8p!rCJKqNJi0c{lCLtYio7bMYOmU%db;Lz zO?$0WZE+n(T~a+zA5y>HaKB-((YUd%NwulAS-3gBg|#KIm8|t~E4Iy}ZL{6BeWnB4 z(buWb+45HUEwbxcSKd4JcWK>p-Osx(dcu27-uu5l>~-(m>T~W}?YHTlA21u395f#M zYsg@ze^__8=P#|lx<=GTI!0AT+s2f~TE~^fTPBnyS|*hzTc=c}+Naf~J7+X!x@UD} zd*^P?4b2_0v} z3IC2$e%IgS|HA+AssFyC3;?wx@Y^-gdk+Bhq$=_U05IJIfZr~X#Z7=*LE+y@qWmsF zj}+wp24oC@06>MmxcJ5o05qKda2|MZaaM3~aZZW>D3$@>eZYVG^xxb9q?o~;832CN z&0RV9y9dlOC^#fE z4E{L$+4Gp#xcG#`^o-1`?3|aca^IAcmX#wbP?e2M%`L5M?H!$c{R4wT!+(v8&d$v* zEG~UmUO{8FK5g&pe%{;1ef{?Rooj^uTNl8IT^V=>m z@-R}RV5X$HCP&SpYewS|zFMCpSUvEDXw540x!Bm4b z2l~m;c~LI&an7BfvBR%ptFZW=7r<%iIVy@GYDAlER{J_}`U1G(-OUS^am0mYY&t49 z%`3i(wrt58&{!`dsaqV0NP612wfa_;Ge zgg~>Txm@tlkAf1mj;xPm>~-U{MiHQspY~<3$RjT!k&oA=xJ1X;wv~5P2MuUP+8*YG zYIzM1<*{wgGzIGjH*wk>E+u%GzIDENf@2*%b;n_^(=WE!N7={Kd{HEqJ+q~t_LZN~ zmZrFbrufTr12-$nZ9YZM(YL`_0)AfOx&8s60Rh$-Me^JCj7G-Rz)%?7b0^{16sGmg zkKJQgRVJpBQbx;x&Bxj_2dr{;vxlK14%`SAX_Muk_LGz4;UFn#1Z%mOC$gwy_T7 zt#O9#nB7_!lECDnP3fyEEpm~j%=R7gD6u|f>%ja>s81>XjbFD|Q7W^Fd$%k>rVux} z;4Se<(^1)^44BBoYhB>!C84XSx-`W!?bl;#N@i+!A}MoWigPB8N|ms~x&2&@CxrpH z2+T%*&mS8M1Q;$3GnG)I$&1}We@O_y$Z*1Qf6=d2MT#1=c+Bi5=lZnl6hBtXFlKD2 z$%-jk*xsJUuG;HL&c0C&@tiBBQg7T&DgeP&pj`(RDLgQ-wQkRhm4UZn+iR`W_*|%EvG!%ib6Ry8=EUk@e#AuS5CrgUxSsdZ2OPx9_=e52%kT@J{|fx+B%_8yoF2~Lm0uOC zVSiD1DeUw#_o>~-p*Ab*`r05{?+a;>d;FcC*(~m_M&&=nO>sW8cFkK>8l}f$s%!R! zA*cy(wdW8t=7^^SrBM~}UBaT++<441Ja9W~Q90ac<^(i8jaR`S32bAhQg|7h#*iS5 z_Em)S!lAYhp4>!0kP9EAhd04x4Eek^sr%gObbSW%Zl1u2y#NMyRMXE4=6z&}@3heP zNkh|GZMIXzkWhA4adX5>3OKX$aMn`XIK4Ck{6*eG1Gb=Cunm3wdj4Vc_9YAO!DdAr zZAfGKf-|7BS2{2Ncujrz{4tqo26?Rkt{tQX%eEQ z1O+vj&P)iR)7|m}^=Hnl*qrzfXRgnuviKrM>+DHs7giqZz;M}BKe8-t7>&YIfRa4sPc2=KuIFdEhm0TQ z$9-8GG>aBsZAX;0~+XaK#by{dtwT(PJhQO4!1btBdwTh6}oSbC8a(j&Ov<_Y5 z2`%yph>VVWtQoqPZ58@L^M`eqHLJWnRZG{UZxF@W7lSMcZ$T(UL|!C|N$am0S*t#W z>2Jd&;!bKeG?s>zQ@ELXA4 zNg+!wSBH`Kh@l?>tVw;H3F&TdOlO(}2dmE-`<#$a&pbv|CPB769G`6J%p<`V_iIrk z=B_Wf>PKaM-TBijtd8BUZJ9NsDD8C0ozkDh@Ufgv^@NbV51n{VE{6$>c1Pl`Y*tod zvRB4r34>?)#vi7~yOAe!bt^`?rd&B-Xu4U(&a<3Z0RUgKd7O|#`W^c|Md#p|u||-= zt(RbT2dgSRhqtEi35d-eDz1UQ@GD1}&aOy#LF^r^riUx{{DP1ZLdI<7O}9_b7=NyO zVFv2!jpe9EHn0cST6UC0MhTz3w?fD@S~atxmSUyD{R)$zIWw@87D3uIX6Qi>pD?XO zNMo0YrnHo4ik*LoXS*F&JIE4bAX~@e8jlRm%rEBtX6{!gZ}vSAqw(|)&BUoK>*q4v zY6nG4pJcsUhn)oRZp8$f?vC`KHH7*)7mg-D$(i1!->)KRD@3HaGdnGGiNmM7lzHXl zBl{8l6}Imj_VL+fl6&gT=Bb`vLpwIwetq<}XgI0}{CXznVn<(8^lE-54P>M+{h8A-AhC$8ixzAC zUO*UMf>UsWFyJ}+IQ%#8aSrKYX7lEdmiDfeIdoQabDr_JLFA8|?CF@+=2yKLK~(zg zPSqUr>@P9c4-Aal59D5UHWbGe(_9*@u_eetQDWvPCyPPP5$nSuI{eSaWNo^J`E6aW zHazTdHkDtKcX<@WhI7jd>C6g@#Oj(ZfgulHp*A7>a0tfzDM1d$^nPWbEgr$UCB+26 z3C5m`>E~)h8XGQ1rSDJfJ?Kna-~ZSpt-0#eezmhT(}-$Z4#GQBu0fSJCI`>Ite#x| zp-b3yW?&{SDY#M(V`}EhVjQBXcFXKXiMT$BUV2>iaVtIj%k71 mj}t!|EYO2Rzz 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 z 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

    JJ1nxM0 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