# IGNITE-187 Moved node attrs to manager start().
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/a9db3972 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/a9db3972 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/a9db3972 Branch: refs/heads/ignite-release-test-no-mod Commit: a9db397293e7cddaea0e9ef224fa77fca2b263e7 Parents: 651b252 Author: AKuznetsov <akuznet...@gridgain.com> Authored: Fri Feb 27 21:56:54 2015 +0700 Committer: AKuznetsov <akuznet...@gridgain.com> Committed: Fri Feb 27 21:56:54 2015 +0700 ---------------------------------------------------------------------- .../ignite/internal/GridKernalContext.java | 7 --- .../ignite/internal/GridKernalContextImpl.java | 6 -- .../apache/ignite/internal/IgniteKernal.java | 25 +++----- .../ignite/internal/managers/GridManager.java | 10 +-- .../internal/managers/GridManagerAdapter.java | 64 ++++++++++---------- .../checkpoint/GridCheckpointManager.java | 2 + .../collision/GridCollisionManager.java | 2 + .../managers/communication/GridIoManager.java | 2 + .../deployment/GridDeploymentManager.java | 2 + .../discovery/GridDiscoveryManager.java | 28 ++++----- .../eventstorage/GridEventStorageManager.java | 2 + .../managers/failover/GridFailoverManager.java | 2 + .../managers/indexing/GridIndexingManager.java | 2 + .../loadbalancer/GridLoadBalancerManager.java | 2 + .../swapspace/GridSwapSpaceManager.java | 2 + 15 files changed, 73 insertions(+), 85 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9db3972/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java index 1538401..16e1189 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java @@ -535,13 +535,6 @@ public interface GridKernalContext extends Iterable<GridComponent> { public Object addNodeAttribute(String key, Object val); /** - * Add attributes to node attributes. - * - * @param attrs Attributes to add. - */ - public void addNodeAttributes(Map<String, String> attrs); - - /** * @return Node attributes. */ public Map<String, Object> nodeAttributes(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9db3972/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java index d3291bd..da082b6 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java @@ -866,18 +866,12 @@ public class GridKernalContextImpl implements GridKernalContext, Externalizable return attrs.containsKey(key); } - /** {@inheritDoc} */ @Override public Object addNodeAttribute(String key, Object val) { return attrs.put(key, val); } /** {@inheritDoc} */ - @Override public void addNodeAttributes(Map<String, String> attrs) { - this.attrs.putAll(attrs); - } - - /** {@inheritDoc} */ @Override public Map<String, Object> nodeAttributes() { return attrs; } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9db3972/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java index 23c7bf2..9569793 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java @@ -1103,12 +1103,13 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable { try { // Stick all environment settings into node attributes. - ctx.addNodeAttributes(F.view(System.getenv(), new P1<String>() { - @Override public boolean apply(String name) { - return incProps == null || U.containsStringArray(incProps, name, true) || - U.isVisorNodeStartProperty(name) || U.isVisorRequiredProperty(name); - } - })); + for (Map.Entry<String, String> sysEntry : System.getenv().entrySet()) { + String name = sysEntry.getKey(); + + if (incProps == null || U.containsStringArray(incProps, name, true) || + U.isVisorNodeStartProperty(name) || U.isVisorRequiredProperty(name)) + ctx.addNodeAttribute(name, sysEntry.getValue()); + } if (log.isDebugEnabled()) log.debug("Added environment properties to node attributes."); @@ -1375,16 +1376,8 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable { * @throws IgniteCheckedException Throw in case of any errors. */ private void startManager(GridManager mgr) throws IgniteCheckedException { - mgr.addSpiAttributes(); - - // Set all node attributes into discovery manager, - // so they can be distributed to all nodes. - if (mgr instanceof GridDiscoveryManager) - ((GridDiscoveryManager)mgr).setNodeAttributes(VER); - - // Add manager to registry before it starts to avoid - // cases when manager is started but registry does not - // have it yet. + // Add manager to registry before it starts to avoid cases when manager is started + // but registry does not have it yet. ctx.add(mgr); try { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9db3972/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManager.java index 55cfc89..13536b1 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/GridManager.java @@ -31,15 +31,7 @@ import java.util.*; @GridToStringExclude public interface GridManager extends GridComponent { /** - * Adds attributes from underlying SPI to node attributes. - * - * @throws IgniteCheckedException Wrapper for exception thrown by underlying SPI. - */ - public void addSpiAttributes() throws IgniteCheckedException; - - /** - * @return Returns {@code true} if at least one SPI does not have a {@code NO-OP} - * implementation, {@code false} otherwise. + * @return {@code true} if at least one SPI does not have a {@code NO-OP} implementation, {@code false} otherwise. */ public boolean enabled(); } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9db3972/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 7e12e05..ce80bfb 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 @@ -90,6 +90,38 @@ public abstract class GridManagerAdapter<T extends IgniteSpi> implements GridMan log = ctx.log(getClass()); } + /** {@inheritDoc} */ + @Override public void start() throws IgniteCheckedException { + for (T spi : spis) { + // Inject all spi resources. + ctx.resource().inject(spi); + + // Inject SPI internal objects. + inject(spi); + + try { + Map<String, Object> retval = spi.getNodeAttributes(); + + if (retval != null) { + for (Map.Entry<String, Object> e : retval.entrySet()) { + if (ctx.hasNodeAttribute(e.getKey())) + throw new IgniteCheckedException("SPI attribute collision for attribute [spi=" + spi + + ", attr=" + e.getKey() + ']' + + ". Attribute set by one SPI implementation has the same name (name collision) as " + + "attribute set by other SPI implementation. Such overriding is not allowed. " + + "Please check your Ignite configuration and/or SPI implementation to avoid " + + "attribute name collisions."); + + ctx.addNodeAttribute(e.getKey(), e.getValue()); + } + } + } + catch (IgniteSpiException e) { + throw new IgniteCheckedException("Failed to get SPI attributes.", e); + } + } + } + /** * Gets wrapped SPI. * @@ -130,38 +162,6 @@ public abstract class GridManagerAdapter<T extends IgniteSpi> implements GridMan return spis; } - /** {@inheritDoc} */ - @Override public final void addSpiAttributes() throws IgniteCheckedException { - for (T spi : spis) { - // Inject all spi resources. - ctx.resource().inject(spi); - - // Inject SPI internal objects. - inject(spi); - - try { - Map<String, Object> retval = spi.getNodeAttributes(); - - if (retval != null) { - for (Map.Entry<String, Object> e : retval.entrySet()) { - if (ctx.hasNodeAttribute(e.getKey())) - throw new IgniteCheckedException("SPI attribute collision for attribute [spi=" + spi + - ", attr=" + e.getKey() + ']' + - ". Attribute set by one SPI implementation has the same name (name collision) as " + - "attribute set by other SPI implementation. Such overriding is not allowed. " + - "Please check your Ignite configuration and/or SPI implementation to avoid " + - "attribute name collisions."); - - ctx.addNodeAttribute(e.getKey(), e.getValue()); - } - } - } - catch (IgniteSpiException e) { - throw new IgniteCheckedException("Failed to get SPI attributes.", e); - } - } - } - /** * @param spi SPI whose internal objects need to be injected. * @throws IgniteCheckedException If injection failed. http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9db3972/modules/core/src/main/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManager.java index 291930b..f782546 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/checkpoint/GridCheckpointManager.java @@ -78,6 +78,8 @@ public class GridCheckpointManager extends GridManagerAdapter<CheckpointSpi> { if (ctx.config().isDaemon()) return; + super.start(); + for (CheckpointSpi spi : getSpis()) { spi.setCheckpointListener(new CheckpointListener() { @Override public void onCheckpointRemoved(String key) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9db3972/modules/core/src/main/java/org/apache/ignite/internal/managers/collision/GridCollisionManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/collision/GridCollisionManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/collision/GridCollisionManager.java index 2f00fb7..37b5cfe 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/collision/GridCollisionManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/collision/GridCollisionManager.java @@ -47,6 +47,8 @@ public class GridCollisionManager extends GridManagerAdapter<CollisionSpi> { if (ctx.config().isDaemon()) return; + super.start(); + startSpi(); if (enabled()) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9db3972/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java index 968e93a..b2d4b40 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java @@ -179,6 +179,8 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa /** {@inheritDoc} */ @SuppressWarnings("deprecation") @Override public void start() throws IgniteCheckedException { + super.start(); + assertParameter(discoDelay > 0, "discoveryStartupDelay > 0"); startSpi(); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9db3972/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentManager.java index 3d3bdc8..bbfbcb6 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentManager.java @@ -81,6 +81,8 @@ public class GridDeploymentManager extends GridManagerAdapter<DeploymentSpi> { /** {@inheritDoc} */ @Override public void start() throws IgniteCheckedException { + super.start(); + GridProtocolHandler.registerDeploymentManager(this); assertParameter(ctx.config().getDeploymentMode() != null, "ctx.config().getDeploymentMode() != null"); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9db3972/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java index 70ff7d9..b59c9e4 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java @@ -53,6 +53,7 @@ import java.util.zip.*; import static java.util.concurrent.TimeUnit.*; import static org.apache.ignite.events.EventType.*; import static org.apache.ignite.internal.IgniteNodeAttributes.*; +import static org.apache.ignite.internal.IgniteVersionUtils.*; import static org.apache.ignite.plugin.segmentation.GridSegmentationPolicy.*; /** @@ -189,12 +190,10 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> { } } - /** - * Sets local node attributes into discovery SPI. - * - * @param ver Version. - */ - public void setNodeAttributes(IgniteProductVersion ver) { + /** {@inheritDoc} */ + @Override public void start() throws IgniteCheckedException { + super.start(); + // TODO GG-7574 move to metrics processor? long totSysMemory = -1; @@ -207,11 +206,10 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> { ctx.addNodeAttribute(IgniteNodeAttributes.ATTR_PHY_RAM, totSysMemory); - getSpi().setNodeAttributes(ctx.nodeAttributes(), ver); - } + DiscoverySpi spi = getSpi(); + + spi.setNodeAttributes(ctx.nodeAttributes(), VER); - /** {@inheritDoc} */ - @Override public void start() throws IgniteCheckedException { discoOrdered = discoOrdered(); histSupported = historySupported(); @@ -235,10 +233,10 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> { new IgniteThread(metricsUpdater).start(); - getSpi().setMetricsProvider(createMetricsProvider()); + spi.setMetricsProvider(createMetricsProvider()); if (ctx.security().enabled()) { - getSpi().setAuthenticator(new DiscoverySpiNodeAuthenticator() { + spi.setAuthenticator(new DiscoverySpiNodeAuthenticator() { @Override public SecurityContext authenticateNode(ClusterNode node, GridSecurityCredentials cred) { try { return ctx.security().authenticateNode(node, cred); @@ -254,7 +252,7 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> { }); } - getSpi().setListener(new DiscoverySpiListener() { + spi.setListener(new DiscoverySpiListener() { @Override public void onDiscovery( int type, long topVer, @@ -315,7 +313,7 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> { } }); - getSpi().setDataExchange(new DiscoverySpiDataExchange() { + spi.setDataExchange(new DiscoverySpiDataExchange() { @Override public Map<Integer, Object> collect(UUID nodeId) { assert nodeId != null; @@ -367,7 +365,7 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> { checkAttributes(discoCache().remoteNodes()); - locNode = getSpi().getLocalNode(); + locNode = spi.getLocalNode(); topVer.setIfGreater(locNode.order()); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9db3972/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java index 82af8bf..d936a86 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java @@ -222,6 +222,8 @@ public class GridEventStorageManager extends GridManagerAdapter<EventStorageSpi> /** {@inheritDoc} */ @Override public void start() throws IgniteCheckedException { + super.start(); + Map<IgnitePredicate<? extends Event>, int[]> evtLsnrs = ctx.config().getLocalEventListeners(); if (evtLsnrs != null) { http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9db3972/modules/core/src/main/java/org/apache/ignite/internal/managers/failover/GridFailoverManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/failover/GridFailoverManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/failover/GridFailoverManager.java index 714cccb..26cf308 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/failover/GridFailoverManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/failover/GridFailoverManager.java @@ -39,6 +39,8 @@ public class GridFailoverManager extends GridManagerAdapter<FailoverSpi> { /** {@inheritDoc} */ @Override public void start() throws IgniteCheckedException { + super.start(); + startSpi(); if (log.isDebugEnabled()) http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9db3972/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/GridIndexingManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/GridIndexingManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/GridIndexingManager.java index 3fe7839..9115f26 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/GridIndexingManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/indexing/GridIndexingManager.java @@ -48,6 +48,8 @@ public class GridIndexingManager extends GridManagerAdapter<IndexingSpi> { if (ctx.config().isDaemon()) return; + super.start(); + if (!enabled()) U.warn(log, "Indexing is disabled (to enable please configure GridIndexingSpi)."); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9db3972/modules/core/src/main/java/org/apache/ignite/internal/managers/loadbalancer/GridLoadBalancerManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/loadbalancer/GridLoadBalancerManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/loadbalancer/GridLoadBalancerManager.java index ac961b7..338d346 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/loadbalancer/GridLoadBalancerManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/loadbalancer/GridLoadBalancerManager.java @@ -45,6 +45,8 @@ public class GridLoadBalancerManager extends GridManagerAdapter<LoadBalancingSpi /** {@inheritDoc} */ @Override public void start() throws IgniteCheckedException { + super.start(); + startSpi(); if (log.isDebugEnabled()) http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a9db3972/modules/core/src/main/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManager.java index ef999d7..d1566ec 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/swapspace/GridSwapSpaceManager.java @@ -53,6 +53,8 @@ public class GridSwapSpaceManager extends GridManagerAdapter<SwapSpaceSpi> { if (ctx.config().isDaemon()) return; + super.start(); + getSpi().setListener(new SwapSpaceSpiListener() { @Override public void onSwapEvent(int evtType, @Nullable String spaceName, @Nullable byte[] keyBytes) { if (ctx.event().isRecordable(evtType)) {