Repository: ignite Updated Branches: refs/heads/ignite-4680-sb fa97cedb9 -> 6187b1f88
IGNITE-4641 - Refresh client attributes during reconnect Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/8874f99f Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/8874f99f Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/8874f99f Branch: refs/heads/ignite-4680-sb Commit: 8874f99f44dc2edf08a525619edb49d5db70b938 Parents: 0a43665 Author: dkarachentsev <dkarachent...@gridgain.com> Authored: Tue Feb 14 18:44:57 2017 +0300 Committer: dkarachentsev <dkarachent...@gridgain.com> Committed: Tue Feb 14 18:44:57 2017 +0300 ---------------------------------------------------------------------- .../internal/managers/GridManagerAdapter.java | 4 + .../org/apache/ignite/spi/IgniteSpiAdapter.java | 5 + .../org/apache/ignite/spi/IgniteSpiContext.java | 6 + .../ignite/spi/discovery/tcp/ClientImpl.java | 2 +- .../spi/discovery/tcp/TcpDiscoverySpi.java | 5 + .../tcp/internal/TcpDiscoveryNode.java | 6 +- ...veryNodeAttributesUpdateOnReconnectTest.java | 110 ++++++++++++++++++ .../tcp/TestReconnectPluginProvider.java | 111 +++++++++++++++++++ .../discovery/tcp/TestReconnectProcessor.java | 93 ++++++++++++++++ .../testframework/GridSpiTestContext.java | 5 + .../IgniteSpiDiscoverySelfTestSuite.java | 3 + .../org.apache.ignite.plugin.PluginProvider | 1 + parent/pom.xml | 1 + 13 files changed, 349 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/8874f99f/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java index 584cc56..25cc715 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManagerAdapter.java @@ -569,6 +569,10 @@ public abstract class GridManagerAdapter<T extends IgniteSpi> implements GridMan ctx.timeout().removeTimeoutObject(new GridSpiTimeoutObject(obj)); } + @Override public Map<String, Object> nodeAttributes() { + return ctx.nodeAttributes(); + } + /** * @param e Exception to handle. * @return GridSpiException Converted exception. http://git-wip-us.apache.org/repos/asf/ignite/blob/8874f99f/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java index 219d07b..8879364 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiAdapter.java @@ -928,5 +928,10 @@ public abstract class IgniteSpiAdapter implements IgniteSpi, IgniteSpiManagement ((IgniteKernal)ignite0).context().timeout().removeTimeoutObject(new GridSpiTimeoutObject(obj)); } + + /** {@inheritDoc} */ + @Override public Map<String, Object> nodeAttributes() { + return Collections.emptyMap(); + } } } http://git-wip-us.apache.org/repos/asf/ignite/blob/8874f99f/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiContext.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiContext.java b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiContext.java index 5eb5227..96b3e61 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiContext.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/IgniteSpiContext.java @@ -19,6 +19,7 @@ package org.apache.ignite.spi; import java.io.Serializable; import java.util.Collection; +import java.util.Map; import java.util.UUID; import javax.cache.CacheException; import org.apache.ignite.IgniteException; @@ -352,4 +353,9 @@ public interface IgniteSpiContext { * @param c Timeout object. */ public void removeTimeoutObject(IgniteSpiTimeoutObject c); + + /** + * @return Current node attributes. + */ + public Map<String, Object> nodeAttributes(); } http://git-wip-us.apache.org/repos/asf/ignite/blob/8874f99f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java index 39c539c..932e7d1 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java @@ -628,7 +628,7 @@ class ClientImpl extends TcpDiscoveryImpl { TcpDiscoveryNode node = locNode; if (locNode.order() > 0) - node = locNode.clientReconnectNode(); + node = locNode.clientReconnectNode(spi.spiCtx.nodeAttributes()); msg = new TcpDiscoveryJoinRequestMessage(node, spi.collectExchangeData(getLocalNodeId())); } http://git-wip-us.apache.org/repos/asf/ignite/blob/8874f99f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java index 45933e1..00ae97d 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java @@ -409,6 +409,9 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T /** */ private boolean clientReconnectDisabled; + /** */ + protected IgniteSpiContext spiCtx; + /** {@inheritDoc} */ @Override public String getSpiState() { return impl.getSpiState(); @@ -1161,6 +1164,8 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T @Override protected void onContextInitialized0(IgniteSpiContext spiCtx) throws IgniteSpiException { super.onContextInitialized0(spiCtx); + this.spiCtx = spiCtx; + ctxInitLatch.countDown(); ipFinder.onSpiContextInitialized(spiCtx); http://git-wip-us.apache.org/repos/asf/ignite/blob/8874f99f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java index 307aefe..d8b1fc1 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/internal/TcpDiscoveryNode.java @@ -26,6 +26,7 @@ import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; @@ -513,13 +514,14 @@ public class TcpDiscoveryNode extends GridMetadataAwareAdapter implements Cluste } /** + * @param nodeAttrs Current node attributes. * @return Copy of local node for client reconnect request. */ - public TcpDiscoveryNode clientReconnectNode() { + public TcpDiscoveryNode clientReconnectNode(Map<String, Object> nodeAttrs) { TcpDiscoveryNode node = new TcpDiscoveryNode(id, addrs, hostNames, discPort, metricsProvider, ver, null); - node.attrs = attrs; + node.attrs = Collections.unmodifiableMap(new HashMap<>(nodeAttrs)); node.clientRouterNodeId = clientRouterNodeId; return node; http://git-wip-us.apache.org/repos/asf/ignite/blob/8874f99f/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryNodeAttributesUpdateOnReconnectTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryNodeAttributesUpdateOnReconnectTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryNodeAttributesUpdateOnReconnectTest.java new file mode 100644 index 0000000..56dc4ec --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryNodeAttributesUpdateOnReconnectTest.java @@ -0,0 +1,110 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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.apache.ignite.spi.discovery.tcp; + +import java.util.HashMap; +import java.util.Map; +import org.apache.ignite.Ignite; +import org.apache.ignite.IgniteEvents; +import org.apache.ignite.IgniteLogger; +import org.apache.ignite.cluster.ClusterNode; +import org.apache.ignite.configuration.IgniteConfiguration; +import org.apache.ignite.events.DiscoveryEvent; +import org.apache.ignite.events.Event; +import org.apache.ignite.events.EventType; +import org.apache.ignite.internal.IgniteClientReconnectAbstractTest; +import org.apache.ignite.lang.IgnitePredicate; +import org.apache.ignite.resources.LoggerResource; +import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder; +import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; + +import static org.apache.ignite.internal.IgniteClientReconnectAbstractTest.reconnectClientNode; + +/** + * Checks whether on client reconnect node attributes from kernal context are sent. + */ +public class TcpDiscoveryNodeAttributesUpdateOnReconnectTest extends GridCommonAbstractTest { + /** */ + private volatile String rejoinAttr; + + /** */ + @LoggerResource + private IgniteLogger log; + + /** {@inheritDoc} */ + @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception { + IgniteConfiguration cfg = super.getConfiguration(gridName); + + if (gridName.contains("client")) { + Map<String, String> attrs = new HashMap<>(); + + attrs.put("test", "1"); + + cfg.setUserAttributes(attrs); + cfg.setClientMode(true); + } + + IgniteClientReconnectAbstractTest.TestTcpDiscoverySpi spi = new IgniteClientReconnectAbstractTest.TestTcpDiscoverySpi(); + + TcpDiscoveryIpFinder finder = ((TcpDiscoverySpi)cfg.getDiscoverySpi()).getIpFinder(); + + spi.setIpFinder(finder); + + cfg.setDiscoverySpi(spi); + + return cfg; + } + + /** {@inheritDoc} */ + @Override protected void afterTest() throws Exception { + TestReconnectPluginProvider.enabled = false; + + stopAllGrids(); + } + + /** {@inheritDoc} */ + @Override protected void beforeTest() throws Exception { + TestReconnectPluginProvider.enabled = true; + } + + /** + * @throws Exception If failed. + */ + public void testReconnect() throws Exception { + Ignite srv = startGrid("server"); + + IgniteEvents evts = srv.events(); + + evts.enableLocal(EventType.EVTS_DISCOVERY_ALL); + evts.localListen(new IgnitePredicate<Event>() { + @Override public boolean apply(Event evt) { + ClusterNode node = ((DiscoveryEvent)evt).eventNode(); + + rejoinAttr = node.attribute("test"); + + return true; + } + }, EventType.EVT_NODE_JOINED); + + Ignite client = startGrid("client"); + + reconnectClientNode(log, client, srv, null); + + assertEquals("2", rejoinAttr); + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/8874f99f/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TestReconnectPluginProvider.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TestReconnectPluginProvider.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TestReconnectPluginProvider.java new file mode 100644 index 0000000..692774c --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TestReconnectPluginProvider.java @@ -0,0 +1,111 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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.apache.ignite.spi.discovery.tcp; + +import java.io.Serializable; +import java.util.UUID; +import org.apache.ignite.IgniteCheckedException; +import org.apache.ignite.cluster.ClusterNode; +import org.apache.ignite.internal.GridKernalContext; +import org.apache.ignite.internal.IgniteKernal; +import org.apache.ignite.internal.processors.security.GridSecurityProcessor; +import org.apache.ignite.plugin.ExtensionRegistry; +import org.apache.ignite.plugin.IgnitePlugin; +import org.apache.ignite.plugin.PluginContext; +import org.apache.ignite.plugin.PluginProvider; +import org.apache.ignite.plugin.PluginValidationException; +import org.jetbrains.annotations.Nullable; + +/** + * Creates TestReconnectProcessor. + */ +public class TestReconnectPluginProvider implements PluginProvider { + /** */ + private GridKernalContext igniteCtx; + + /** */ + public static volatile boolean enabled; + + /** {@inheritDoc} */ + @Override public String name() { + return "TestReconnectPlugin"; + } + + /** {@inheritDoc} */ + @Override public String version() { + return "1.0"; + } + + /** {@inheritDoc} */ + @Override public String copyright() { + return ""; + } + + /** {@inheritDoc} */ + @Override public void initExtensions(PluginContext ctx, ExtensionRegistry registry) { + igniteCtx = ((IgniteKernal)ctx.grid()).context(); + } + + /** {@inheritDoc} */ + @Override public void start(PluginContext ctx) throws IgniteCheckedException { + // No-op + } + + /** {@inheritDoc} */ + @Override public void stop(boolean cancel) throws IgniteCheckedException { + // No-op + } + + /** {@inheritDoc} */ + @Override public void onIgniteStart() throws IgniteCheckedException { + // No-op + } + + /** {@inheritDoc} */ + @Override public void onIgniteStop(boolean cancel) { + // No-op + } + + /** {@inheritDoc} */ + @Nullable @Override public Serializable provideDiscoveryData(UUID nodeId) { + return null; + } + + /** {@inheritDoc} */ + @Override public void receiveDiscoveryData(UUID nodeId, Serializable data) { + // No-op + } + + /** {@inheritDoc} */ + @Override public void validateNewNode(ClusterNode node) throws PluginValidationException { + // No-op + } + + /** {@inheritDoc} */ + @Nullable @Override public Object createComponent(PluginContext ctx, Class cls) { + if (enabled && GridSecurityProcessor.class.equals(cls)) + return new TestReconnectProcessor(igniteCtx); + + return null; + } + + /** {@inheritDoc} */ + @Override public IgnitePlugin plugin() { + return new IgnitePlugin() {}; + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/8874f99f/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TestReconnectProcessor.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TestReconnectProcessor.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TestReconnectProcessor.java new file mode 100644 index 0000000..f0ed35c --- /dev/null +++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TestReconnectProcessor.java @@ -0,0 +1,93 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF 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.apache.ignite.spi.discovery.tcp; + +import java.util.Collection; +import java.util.UUID; +import org.apache.ignite.IgniteCheckedException; +import org.apache.ignite.cluster.ClusterNode; +import org.apache.ignite.internal.GridKernalContext; +import org.apache.ignite.internal.processors.GridProcessorAdapter; +import org.apache.ignite.internal.processors.security.GridSecurityProcessor; +import org.apache.ignite.internal.processors.security.SecurityContext; +import org.apache.ignite.lang.IgniteFuture; +import org.apache.ignite.plugin.security.AuthenticationContext; +import org.apache.ignite.plugin.security.SecurityCredentials; +import org.apache.ignite.plugin.security.SecurityException; +import org.apache.ignite.plugin.security.SecurityPermission; +import org.apache.ignite.plugin.security.SecuritySubject; +import org.jetbrains.annotations.Nullable; + +/** + * Updates node attributes on disconnect. + */ +public class TestReconnectProcessor extends GridProcessorAdapter implements GridSecurityProcessor { + /** + * @param ctx Kernal context. + */ + protected TestReconnectProcessor(GridKernalContext ctx) { + super(ctx); + } + + /** {@inheritDoc} */ + @Override public SecurityContext authenticateNode(ClusterNode node, + SecurityCredentials cred) throws IgniteCheckedException { + return null; + } + + /** {@inheritDoc} */ + @Override public boolean isGlobalNodeAuthentication() { + return false; + } + + /** {@inheritDoc} */ + @Override public SecurityContext authenticate(AuthenticationContext ctx) throws IgniteCheckedException { + return null; + } + + /** {@inheritDoc} */ + @Override public Collection<SecuritySubject> authenticatedSubjects() throws IgniteCheckedException { + return null; + } + + /** {@inheritDoc} */ + @Override public SecuritySubject authenticatedSubject(UUID subjId) throws IgniteCheckedException { + return null; + } + + /** {@inheritDoc} */ + @Override public void authorize(String name, SecurityPermission perm, + @Nullable SecurityContext securityCtx) throws SecurityException { + + } + + /** {@inheritDoc} */ + @Override public void onSessionExpired(UUID subjId) { + + } + + /** {@inheritDoc} */ + @Override public boolean enabled() { + return false; + } + + /** {@inheritDoc} */ + @Override public void onDisconnected(IgniteFuture<?> reconnectFut) throws IgniteCheckedException { + ctx.addNodeAttribute("test", "2"); + } +} http://git-wip-us.apache.org/repos/asf/ignite/blob/8874f99f/modules/core/src/test/java/org/apache/ignite/testframework/GridSpiTestContext.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/GridSpiTestContext.java b/modules/core/src/test/java/org/apache/ignite/testframework/GridSpiTestContext.java index ac50ef9..1c8acbc 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/GridSpiTestContext.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/GridSpiTestContext.java @@ -601,6 +601,11 @@ public class GridSpiTestContext implements IgniteSpiContext { timeoutProcessor.removeTimeoutObject(new GridSpiTimeoutObject(obj)); } + /** {@inheritDoc} */ + @Override public Map<String, Object> nodeAttributes() { + return Collections.emptyMap(); + } + /** * @param cacheName Cache name. * @return Map representing cache. http://git-wip-us.apache.org/repos/asf/ignite/blob/8874f99f/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java index 5f870a4..548e1a5 100644 --- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java +++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java @@ -25,6 +25,7 @@ import org.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiMulticastTest; import org.apache.ignite.spi.discovery.tcp.TcpClientDiscoverySpiSelfTest; import org.apache.ignite.spi.discovery.tcp.TcpDiscoveryMarshallerCheckSelfTest; import org.apache.ignite.spi.discovery.tcp.TcpDiscoveryMultiThreadedTest; +import org.apache.ignite.spi.discovery.tcp.TcpDiscoveryNodeAttributesUpdateOnReconnectTest; import org.apache.ignite.spi.discovery.tcp.TcpDiscoveryNodeConfigConsistentIdSelfTest; import org.apache.ignite.spi.discovery.tcp.TcpDiscoveryNodeConsistentIdSelfTest; import org.apache.ignite.spi.discovery.tcp.TcpDiscoveryRestartTest; @@ -84,6 +85,8 @@ public class IgniteSpiDiscoverySelfTestSuite extends TestSuite { suite.addTest(new TestSuite(TcpDiscoveryRestartTest.class)); suite.addTest(new TestSuite(TcpDiscoveryMultiThreadedTest.class)); + suite.addTest(new TestSuite(TcpDiscoveryNodeAttributesUpdateOnReconnectTest.class)); + // SSL. suite.addTest(new TestSuite(TcpDiscoverySslSelfTest.class)); http://git-wip-us.apache.org/repos/asf/ignite/blob/8874f99f/modules/core/src/test/resources/META-INF/services/org.apache.ignite.plugin.PluginProvider ---------------------------------------------------------------------- diff --git a/modules/core/src/test/resources/META-INF/services/org.apache.ignite.plugin.PluginProvider b/modules/core/src/test/resources/META-INF/services/org.apache.ignite.plugin.PluginProvider new file mode 100644 index 0000000..a7fdf43 --- /dev/null +++ b/modules/core/src/test/resources/META-INF/services/org.apache.ignite.plugin.PluginProvider @@ -0,0 +1 @@ +org.apache.ignite.spi.discovery.tcp.TestReconnectPluginProvider \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/8874f99f/parent/pom.xml ---------------------------------------------------------------------- diff --git a/parent/pom.xml b/parent/pom.xml index 88532a7..8bf5dde 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -821,6 +821,7 @@ <exclude>src/main/java/META-INF/services/javax.cache.spi.CachingProvider</exclude><!--cannot be changed--> <exclude>src/main/java/org/jetbrains/annotations/*.java</exclude><!--copyright--> <exclude>src/main/resources/META-INF/services/org.apache.hadoop.mapreduce.protocol.ClientProtocolProvider</exclude><!--cannot be changed--> + <exclude>/src/test/resources/META-INF/services/org.apache.ignite.plugin.PluginProvider</exclude> <exclude>dev-tools/IGNITE-*.patch</exclude> <exclude>dev-tools/.gradle/**/*</exclude> <exclude>dev-tools/gradle/wrapper/**/*</exclude>