blob: 244fe0ab5f2acab4b0bbb70145e49bd068a59de6 [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.processors.cache.distributed;
import java.io.Serializable;
import org.apache.ignite.cache.CacheRebalanceMode;
import org.apache.ignite.configuration.DeploymentMode;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.lifecycle.LifecycleBean;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
import static org.apache.ignite.cache.CacheRebalanceMode.SYNC;
import static org.apache.ignite.events.EventType.EVT_JOB_MAPPED;
import static org.apache.ignite.events.EventType.EVT_TASK_FAILED;
import static org.apache.ignite.events.EventType.EVT_TASK_FINISHED;
/**
* Tests for cache preloader.
*/
@SuppressWarnings({"PublicInnerClass"})
public abstract class GridCachePreloadLifecycleAbstractTest extends GridCommonAbstractTest {
/** */
protected static final String TEST_STRING = "ABC";
/** */
protected static final CacheRebalanceMode DFLT_PRELOAD_MODE = SYNC;
/** */
protected CacheRebalanceMode preloadMode = DFLT_PRELOAD_MODE;
/** */
protected LifecycleBean lifecycleBean;
/** Default keys. */
protected static final String[] DFLT_KEYS = new String[] {
"Branches",
"CurrencyCurvesAssign",
"CurRefIndex",
"MaturityClasses",
"Folders",
"FloatingRates",
"Swap",
"Portfolios"
};
/** {@inheritDoc} */
@Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
IgniteConfiguration c = super.getConfiguration(igniteInstanceName);
c.setIncludeEventTypes(EVT_TASK_FAILED, EVT_TASK_FINISHED, EVT_JOB_MAPPED);
c.setIncludeProperties();
c.setDeploymentMode(DeploymentMode.SHARED);
c.setNetworkTimeout(10000);
c.setConnectorConfiguration(null);
// c.setPeerClassLoadingLocalClassPathExclude(GridCachePreloadLifecycleAbstractTest.class.getName(),
// MyValue.class.getName());
c.setPublicThreadPoolSize(10);
c.setSystemThreadPoolSize(10);
c.setPeerClassLoadingThreadPoolSize(3);
c.setLifecycleBeans(lifecycleBean);
return c;
}
/** {@inheritDoc} */
@Override protected void beforeTest() throws Exception {
preloadMode = DFLT_PRELOAD_MODE;
}
/** {@inheritDoc} */
@Override protected void afterTest() throws Exception {
super.afterTest();
lifecycleBean = null;
stopAllGrids();
}
/** {@inheritDoc} */
@Override protected long getTestTimeout() {
return 4 * 60 * 1000; // 4 min.
}
/**
* @param key Key.
* @return Value.
*/
protected String value(Object key) {
return TEST_STRING + '-' + key;
}
/**
* @param plain Flag to use plain strings.
* @param cnt Number of keys to gen.
* @param lookup Optional key lookup array.
* @return Generated keys.
*/
protected Object[] keys(boolean plain, int cnt, String... lookup) {
Object[] arr = new Object[cnt];
for (int i = 0; i < cnt; i++)
if (plain)
arr[i] = i < lookup.length ? lookup[i] : "str-" + i;
else
arr[i] = i < lookup.length ? new MyStringKey(lookup[i]) : new MyStringKey("str-" + i);
return arr;
}
/**
*
*/
public static class MyStringKey implements Serializable {
/** Key. */
private final String str;
/**
* @param str Key.
*/
public MyStringKey(String str) {
this.str = str;
}
/** {@inheritDoc} */
@Override public int hashCode() {
return 31 + ((str == null) ? 0 : str.hashCode());
}
/** {@inheritDoc} */
@Override public boolean equals(Object obj) {
// if (this == obj)
// return true;
//
// if (obj == null)
// return false;
//
// if (getClass() != obj.getClass())
// return false;
//
// MyStringKey other = (MyStringKey) obj;
//
// if (str == null) {
// if (other.str != null)
// return false;
// }
// else if (!str.equals(other.str))
// return false;
//
// return true;
return toString().equals(obj.toString());
}
/** {@inheritDoc} */
@Override public String toString() {
// return str;
return S.toString(MyStringKey.class, this, "clsLdr", getClass().getClassLoader());
}
}
/**
*
*/
public static class MyValue implements Serializable {
/** Data. */
private final String data;
/**
* @param data Data.
*/
public MyValue(String data) {
assert data != null;
this.data = data;
}
/** {@inheritDoc} */
@Override public boolean equals(Object obj) {
if (obj == this)
return true;
if (obj instanceof MyValue) {
MyValue myObj = (MyValue) obj;
return data.equals(myObj.data);
}
return false;
// return data.equals(obj.toString());
}
/** {@inheritDoc} */
@Override public String toString() {
// return data;
return S.toString(MyValue.class, this, "clsLdr", getClass().getClassLoader());
}
}
}