blob: 4c30c84c86d246ead41e535a6d08c622b3fab5a0 [file] [log] [blame]
/*
* 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.internal.managers;
import java.lang.management.ManagementFactory;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.internal.binary.BinaryMarshaller;
import org.apache.ignite.internal.managers.checkpoint.GridCheckpointManager;
import org.apache.ignite.internal.managers.collision.GridCollisionManager;
import org.apache.ignite.internal.managers.communication.GridIoManager;
import org.apache.ignite.internal.managers.deployment.GridDeploymentManager;
import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager;
import org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager;
import org.apache.ignite.internal.managers.failover.GridFailoverManager;
import org.apache.ignite.internal.managers.loadbalancer.GridLoadBalancerManager;
import org.apache.ignite.internal.managers.systemview.GridSystemViewManager;
import org.apache.ignite.internal.processors.metric.GridMetricManager;
import org.apache.ignite.internal.processors.pool.PoolProcessor;
import org.apache.ignite.internal.processors.resource.GridResourceProcessor;
import org.apache.ignite.internal.processors.security.NoOpIgniteSecurityProcessor;
import org.apache.ignite.resources.LoggerResource;
import org.apache.ignite.spi.IgniteSpi;
import org.apache.ignite.spi.checkpoint.sharedfs.SharedFsCheckpointSpi;
import org.apache.ignite.spi.collision.CollisionSpi;
import org.apache.ignite.spi.collision.fifoqueue.FifoQueueCollisionSpi;
import org.apache.ignite.spi.communication.CommunicationSpi;
import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
import org.apache.ignite.spi.deployment.DeploymentSpi;
import org.apache.ignite.spi.deployment.local.LocalDeploymentSpi;
import org.apache.ignite.spi.discovery.DiscoverySpi;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.apache.ignite.spi.eventstorage.EventStorageSpi;
import org.apache.ignite.spi.eventstorage.memory.MemoryEventStorageSpi;
import org.apache.ignite.spi.failover.always.AlwaysFailoverSpi;
import org.apache.ignite.spi.loadbalancing.roundrobin.RoundRobinLoadBalancingSpi;
import org.apache.ignite.spi.metric.noop.NoopMetricExporterSpi;
import org.apache.ignite.testframework.junits.GridTestKernalContext;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import org.junit.Test;
/**
* Managers stop test.
*
*/
public class GridManagerStopSelfTest extends GridCommonAbstractTest {
/** Kernal context. */
private GridTestKernalContext ctx;
/** */
public GridManagerStopSelfTest() {
super(/*startGrid*/false);
}
/** {@inheritDoc} */
@Override protected void beforeTest() throws Exception {
ctx = newContext();
ctx.config().setPeerClassLoadingEnabled(true);
ctx.config().setMBeanServer(ManagementFactory.getPlatformMBeanServer());
ctx.add(new PoolProcessor(ctx));
ctx.add(new NoOpIgniteSecurityProcessor(ctx));
ctx.add(new GridResourceProcessor(ctx));
ctx.add(new GridSystemViewManager(ctx));
ctx.start();
}
/**
* @param target Target spi.
* @throws IgniteCheckedException If injection failed.
*/
private void injectLogger(IgniteSpi target) throws IgniteCheckedException {
ctx.resource().injectBasicResource(
target,
LoggerResource.class,
ctx.config().getGridLogger().getLogger(target.getClass())
);
}
/**
* @throws Exception If failed.
*/
@Test
public void testStopCheckpointManager() throws Exception {
SharedFsCheckpointSpi spi = new SharedFsCheckpointSpi();
injectLogger(spi);
ctx.config().setCheckpointSpi(spi);
GridCheckpointManager mgr = new GridCheckpointManager(ctx);
mgr.stop(true);
}
/**
* @throws Exception If failed.
*/
@Test
public void testStopCollisionManager() throws Exception {
CollisionSpi spi = new FifoQueueCollisionSpi();
injectLogger(spi);
ctx.config().setCollisionSpi(spi);
GridCollisionManager mgr = new GridCollisionManager(ctx);
mgr.stop(true);
}
/**
* @throws Exception If failed.
*/
@Test
public void testStopCommunicationManager() throws Exception {
CommunicationSpi spi = new TcpCommunicationSpi();
injectLogger(spi);
ctx.config().setCommunicationSpi(spi);
ctx.config().setMarshaller(new BinaryMarshaller());
ctx.config().setMetricExporterSpi(new NoopMetricExporterSpi());
ctx.add(new GridMetricManager(ctx));
GridIoManager mgr = new GridIoManager(ctx);
mgr.onKernalStop(true);
mgr.stop(false);
}
/**
* @throws Exception If failed.
*/
@Test
public void testStopDeploymentManager() throws Exception {
DeploymentSpi spi = new LocalDeploymentSpi();
injectLogger(spi);
ctx.config().setDeploymentSpi(spi);
GridDeploymentManager mgr = new GridDeploymentManager(ctx);
mgr.stop(true);
}
/**
* @throws Exception If failed.
*/
@Test
public void testStopDiscoveryManager() throws Exception {
DiscoverySpi spi = new TcpDiscoverySpi();
injectLogger(spi);
ctx.config().setDiscoverySpi(spi);
GridDiscoveryManager mgr = new GridDiscoveryManager(ctx);
mgr.stop(true);
}
/**
* @throws Exception If failed.
*/
@Test
public void testStopEventStorageManager() throws Exception {
EventStorageSpi spi = new MemoryEventStorageSpi();
injectLogger(spi);
ctx.config().setEventStorageSpi(spi);
GridEventStorageManager mgr = new GridEventStorageManager(ctx);
mgr.stop(true);
}
/**
* @throws Exception If failed.
*/
@Test
public void testStopFailoverManager() throws Exception {
AlwaysFailoverSpi spi = new AlwaysFailoverSpi();
injectLogger(spi);
ctx.config().setFailoverSpi(spi);
GridFailoverManager mgr = new GridFailoverManager(ctx);
mgr.stop(true);
}
/**
* @throws Exception If failed.
*/
@Test
public void testStopLoadBalancingManager() throws Exception {
RoundRobinLoadBalancingSpi spi = new RoundRobinLoadBalancingSpi();
injectLogger(spi);
ctx.config().setLoadBalancingSpi(spi);
GridLoadBalancerManager mgr = new GridLoadBalancerManager(ctx);
mgr.stop(true);
}
}