diff options
author | waqas.ikram <waqas.ikram@ericsson.com> | 2018-07-05 18:57:02 +0100 |
---|---|---|
committer | waqas.ikram <waqas.ikram@ericsson.com> | 2018-07-06 09:27:14 +0100 |
commit | 3f300de4a4ab68feef455e43b18cac804323fd8e (patch) | |
tree | 0576d3bc84f573cd1020c0d8c6d9ddd313b1bc23 /testsuites/integration/integration-context-test | |
parent | f149399d9fed5949bf9afc3eeac1da9bf0b905fa (diff) |
Refactoring existing integration tests
Change-Id: I1aedd94d5197b8c6513fc701e9df2aab4edec088
Issue-ID: POLICY-865
Signed-off-by: waqas.ikram <waqas.ikram@ericsson.com>
Diffstat (limited to 'testsuites/integration/integration-context-test')
7 files changed, 724 insertions, 0 deletions
diff --git a/testsuites/integration/integration-context-test/pom.xml b/testsuites/integration/integration-context-test/pom.xml new file mode 100644 index 000000000..8c62339f2 --- /dev/null +++ b/testsuites/integration/integration-context-test/pom.xml @@ -0,0 +1,88 @@ +<!-- + ============LICENSE_START======================================================= + Copyright (C) 2018 Ericsson. All rights reserved. + ================================================================================ + 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. + + SPDX-License-Identifier: Apache-2.0 + ============LICENSE_END========================================================= +--> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.onap.policy.apex-pdp.testsuites.integration</groupId> + <artifactId>integration</artifactId> + <version>2.0.0-SNAPSHOT</version> + </parent> + + <artifactId>integration-context-test</artifactId> + <name>${project.artifactId}</name> + <description>[${project.parent.artifactId}] module to run context tests using various plugins, multi-threads and multi-JVMs</description> + + + <dependencies> + <dependency> + <groupId>org.onap.policy.apex-pdp.core</groupId> + <artifactId>core-infrastructure</artifactId> + <version>${project.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.onap.policy.apex-pdp.plugins.plugins-context.context-distribution</groupId> + <artifactId>context-distribution-hazelcast</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.onap.policy.apex-pdp.plugins.plugins-context.context-distribution</groupId> + <artifactId>context-distribution-infinispan</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.onap.policy.apex-pdp.plugins.plugins-context.context-locking</groupId> + <artifactId>context-locking-curator</artifactId> + <version>${project.version}</version> + <exclusions> + <exclusion> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>org.onap.policy.apex-pdp.plugins.plugins-context.context-locking</groupId> + <artifactId>context-locking-hazelcast</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.onap.policy.apex-pdp.context</groupId> + <artifactId>context-test-utils</artifactId> + <version>${project.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.curator</groupId> + <artifactId>curator-test</artifactId> + <version>4.0.0</version> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + </exclusion> + </exclusions> + </dependency> + </dependencies> + +</project>
\ No newline at end of file diff --git a/testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/plugins/context/test/locking/TestConcurrentContext.java b/testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/plugins/context/test/locking/TestConcurrentContext.java new file mode 100644 index 000000000..7a3a29cc1 --- /dev/null +++ b/testsuites/integration/integration-context-test/src/test/java/org/onap/policy/apex/plugins/context/test/locking/TestConcurrentContext.java @@ -0,0 +1,316 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2016-2018 Ericsson. All rights reserved. + * ================================================================================ + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.apex.plugins.context.test.locking; + +import static org.junit.Assert.assertEquals; +import static org.onap.policy.apex.context.parameters.DistributorParameters.DEFAULT_DISTRIBUTOR_PLUGIN_CLASS; + +import java.io.File; +import java.io.IOException; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.NetworkInterface; +import java.util.Collections; +import java.util.Enumeration; +import java.util.TreeSet; + +import org.apache.zookeeper.server.NIOServerCnxnFactory; +import org.apache.zookeeper.server.ZooKeeperServer; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.TemporaryFolder; +import org.onap.policy.apex.context.impl.distribution.jvmlocal.JVMLocalDistributor; +import org.onap.policy.apex.context.impl.locking.jvmlocal.JVMLocalLockManager; +import org.onap.policy.apex.context.parameters.ContextParameters; +import org.onap.policy.apex.context.parameters.DistributorParameters; +import org.onap.policy.apex.context.parameters.LockManagerParameters; +import org.onap.policy.apex.context.test.locking.ConcurrentContext; +import org.onap.policy.apex.model.basicmodel.concepts.ApexException; +import org.onap.policy.apex.model.basicmodel.handling.ApexModelException; +import org.onap.policy.apex.model.basicmodel.service.ParameterService; +import org.onap.policy.apex.plugins.context.distribution.hazelcast.HazelcastContextDistributor; +import org.onap.policy.apex.plugins.context.distribution.infinispan.InfinispanContextDistributor; +import org.onap.policy.apex.plugins.context.distribution.infinispan.InfinispanDistributorParameters; +import org.onap.policy.apex.plugins.context.locking.curator.CuratorLockManager; +import org.onap.policy.apex.plugins.context.locking.curator.CuratorLockManagerParameters; +import org.onap.policy.apex.plugins.context.locking.hazelcast.HazelcastLockManager; +import org.slf4j.ext.XLogger; +import org.slf4j.ext.XLoggerFactory; + +import com.hazelcast.config.Config; + +/** + * The Class TestConcurrentContext tests concurrent use of context. + * + * @author Liam Fallon (liam.fallon@ericsson.com) + */ +public class TestConcurrentContext { + // Logger for this class + private static final XLogger logger = XLoggerFactory.getXLogger(TestConcurrentContext.class); + + // Test parameters + private static final String ZOOKEEPER_ADDRESS = "127.0.0.1"; + private static final int ZOOKEEPER_START_PORT = 62181; + private static final int TEST_JVM_COUNT_SINGLE_JVM = 1; + private static final int TEST_JVM_COUNT_MULTI_JVM = 3; + private static final int TEST_THREAD_COUNT_SINGLE_JVM = 64; + private static final int TEST_THREAD_COUNT_MULTI_JVM = 20; + private static final int TEST_THREAD_LOOPS = 100; + + private NIOServerCnxnFactory zookeeperFactory; + + // We need to increment the Zookeeper port because sometimes the port is not released at the end + // of the test for a few seconds. + private static int nextZookeeperPort = ZOOKEEPER_START_PORT; + private int zookeeperPort; + + @Rule + public final TemporaryFolder folder = new TemporaryFolder(); + + @BeforeClass + public static void configure() throws Exception { + System.setProperty("java.net.preferIPv4Stack", "true"); + System.setProperty("hazelcast.config", "src/test/resources/hazelcast/hazelcast.xml"); + + // The JGroups IP address must be set to a real (not loopback) IP address for Infinispan to + // work. IN order to ensure that all + // the JVMs in a test pick up the same IP address, this function sets the address to be the + // first non-loopback IPv4 address + // on a host + final TreeSet<String> ipAddressSet = new TreeSet<String>(); + + final Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces(); + for (final NetworkInterface netint : Collections.list(nets)) { + final Enumeration<InetAddress> inetAddresses = netint.getInetAddresses(); + for (final InetAddress inetAddress : Collections.list(inetAddresses)) { + // Look for real IPv4 internet addresses + if (!inetAddress.isLoopbackAddress() && inetAddress.getAddress().length == 4) { + ipAddressSet.add(inetAddress.getHostAddress()); + } + } + } + + if (ipAddressSet.size() == 0) { + throw new Exception("cound not find real IP address for test"); + } + System.out.println("For Infinispan, setting jgroups.tcp.address to: " + ipAddressSet.first()); + System.setProperty("jgroups.tcp.address", ipAddressSet.first()); + + final Config config = new Config(); + config.getNetworkConfig().setPublicAddress(ipAddressSet.first()); + config.getNetworkConfig().getInterfaces().addInterface(ipAddressSet.first()); + } + + @AfterClass + public static void teardown() throws IOException {} + + private void startZookeeperServer() throws IOException, InterruptedException { + final File zookeeperDirectory = folder.newFolder("zookeeperDirectory"); + + zookeeperPort = nextZookeeperPort++; + + final ZooKeeperServer server = new ZooKeeperServer(zookeeperDirectory, zookeeperDirectory, 5000); + zookeeperFactory = new NIOServerCnxnFactory(); + zookeeperFactory.configure(new InetSocketAddress(zookeeperPort), 100); + + zookeeperFactory.startup(server); + } + + private void stopZookeeperServer() { + zookeeperFactory.shutdown(); + } + + @Test + public void testConcurrentContextJVMLocalVarSet() throws ApexModelException, IOException, ApexException { + logger.debug("Running testConcurrentContextJVMLocalVarSet test . . ."); + + final ContextParameters contextParameters = new ContextParameters(); + contextParameters.getLockManagerParameters().setPluginClass(JVMLocalLockManager.class.getCanonicalName()); + final long result = new ConcurrentContext().testConcurrentContext("JVMLocalVarSet", TEST_JVM_COUNT_SINGLE_JVM, + TEST_THREAD_COUNT_SINGLE_JVM, TEST_THREAD_LOOPS); + + assertEquals(TEST_JVM_COUNT_SINGLE_JVM * TEST_THREAD_COUNT_SINGLE_JVM * TEST_THREAD_LOOPS, result); + + logger.debug("Ran testConcurrentContextJVMLocalVarSet test"); + } + + @Test + public void testConcurrentContextJVMLocalNoVarSet() throws ApexModelException, IOException, ApexException { + logger.debug("Running testConcurrentContextJVMLocalNoVarSet test . . ."); + + new ContextParameters(); + final long result = new ConcurrentContext().testConcurrentContext("JVMLocalNoVarSet", TEST_JVM_COUNT_SINGLE_JVM, + TEST_THREAD_COUNT_SINGLE_JVM, TEST_THREAD_LOOPS); + + assertEquals(TEST_JVM_COUNT_SINGLE_JVM * TEST_THREAD_COUNT_SINGLE_JVM * TEST_THREAD_LOOPS, result); + + logger.debug("Ran testConcurrentContextJVMLocalNoVarSet test"); + } + + @Test + public void testConcurrentContextMultiJVMNoLock() throws ApexModelException, IOException, ApexException { + logger.debug("Running testConcurrentContextMultiJVMNoLock test . . ."); + + final ContextParameters contextParameters = new ContextParameters(); + contextParameters.getDistributorParameters().setPluginClass(JVMLocalDistributor.class.getCanonicalName()); + contextParameters.getLockManagerParameters().setPluginClass(JVMLocalLockManager.class.getCanonicalName()); + + final long result = new ConcurrentContext().testConcurrentContext("testConcurrentContextMultiJVMNoLock", + TEST_JVM_COUNT_MULTI_JVM, TEST_THREAD_COUNT_MULTI_JVM, TEST_THREAD_LOOPS); + + // No concurrent map so result will be zero + assertEquals(0, result); + + logger.debug("Ran testConcurrentContextMultiJVMNoLock test"); + } + + @Test + public void testConcurrentContextHazelcastLock() throws ApexModelException, IOException, ApexException { + logger.debug("Running testConcurrentContextHazelcastLock test . . ."); + + final ContextParameters contextParameters = new ContextParameters(); + contextParameters.getDistributorParameters().setPluginClass(DEFAULT_DISTRIBUTOR_PLUGIN_CLASS); + contextParameters.getLockManagerParameters().setPluginClass(HazelcastLockManager.class.getCanonicalName()); + final long result = new ConcurrentContext().testConcurrentContext("HazelcastLock", TEST_JVM_COUNT_SINGLE_JVM, + TEST_THREAD_COUNT_SINGLE_JVM, TEST_THREAD_LOOPS); + + assertEquals(TEST_JVM_COUNT_SINGLE_JVM * TEST_THREAD_COUNT_SINGLE_JVM * TEST_THREAD_LOOPS, result); + logger.debug("Ran testConcurrentContextHazelcastLock test"); + } + + @Test + public void testConcurrentContextCuratorLock() + throws ApexModelException, IOException, ApexException, InterruptedException { + logger.debug("Running testConcurrentContextCuratorLock test . . ."); + + startZookeeperServer(); + + final ContextParameters contextParameters = new ContextParameters(); + contextParameters.getDistributorParameters() + .setPluginClass(DistributorParameters.DEFAULT_DISTRIBUTOR_PLUGIN_CLASS); + + final CuratorLockManagerParameters curatorParameters = new CuratorLockManagerParameters(); + curatorParameters.setPluginClass(CuratorLockManager.class.getCanonicalName()); + curatorParameters.setZookeeperAddress(ZOOKEEPER_ADDRESS + ":" + zookeeperPort); + contextParameters.setLockManagerParameters(curatorParameters); + ParameterService.registerParameters(LockManagerParameters.class, curatorParameters); + + final long result = new ConcurrentContext().testConcurrentContext("CuratorLock", TEST_JVM_COUNT_SINGLE_JVM, + TEST_THREAD_COUNT_SINGLE_JVM, TEST_THREAD_LOOPS); + + assertEquals(TEST_JVM_COUNT_SINGLE_JVM * TEST_THREAD_COUNT_SINGLE_JVM * TEST_THREAD_LOOPS, result); + + stopZookeeperServer(); + logger.debug("Ran testConcurrentContextCuratorLock test"); + } + + @Test + public void testConcurrentContextHazelcastMultiJVMHazelcastLock() + throws ApexModelException, IOException, ApexException { + logger.debug("Running testConcurrentContextHazelcastMultiJVMHazelcastLock test . . ."); + + final ContextParameters contextParameters = new ContextParameters(); + contextParameters.getDistributorParameters() + .setPluginClass(HazelcastContextDistributor.class.getCanonicalName()); + contextParameters.getLockManagerParameters().setPluginClass(HazelcastLockManager.class.getCanonicalName()); + final long result = new ConcurrentContext().testConcurrentContext("HazelcastMultiHazelcastlock", + TEST_JVM_COUNT_MULTI_JVM, TEST_THREAD_COUNT_MULTI_JVM, TEST_THREAD_LOOPS); + + assertEquals(TEST_JVM_COUNT_MULTI_JVM * TEST_THREAD_COUNT_MULTI_JVM * TEST_THREAD_LOOPS, result); + logger.debug("Ran testConcurrentContextHazelcastMultiJVMHazelcastLock test"); + } + + @Test + public void testConcurrentContextInfinispanMultiJVMHazelcastlock() + throws ApexModelException, IOException, ApexException { + logger.debug("Running testConcurrentContextInfinispanMultiJVMHazelcastlock test . . ."); + + final ContextParameters contextParameters = new ContextParameters(); + final InfinispanDistributorParameters infinispanParameters = new InfinispanDistributorParameters(); + infinispanParameters.setPluginClass(InfinispanContextDistributor.class.getCanonicalName()); + infinispanParameters.setConfigFile("infinispan/infinispan-context-test.xml"); + contextParameters.setDistributorParameters(infinispanParameters); + contextParameters.getLockManagerParameters().setPluginClass(HazelcastLockManager.class.getCanonicalName()); + + final long result = new ConcurrentContext().testConcurrentContext("InfinispanMultiHazelcastlock", + TEST_JVM_COUNT_MULTI_JVM, TEST_THREAD_COUNT_MULTI_JVM, TEST_THREAD_LOOPS); + + assertEquals(TEST_JVM_COUNT_MULTI_JVM * TEST_THREAD_COUNT_MULTI_JVM * TEST_THREAD_LOOPS, result); + logger.debug("Ran testConcurrentContextInfinispanMultiJVMHazelcastlock test"); + } + + @Test + public void testConcurrentContextInfinispanMultiJVMCuratorLock() + throws ApexModelException, IOException, ApexException, InterruptedException { + logger.debug("Running testConcurrentContextInfinispanMultiJVMCuratorLock test . . ."); + + startZookeeperServer(); + + final ContextParameters contextParameters = new ContextParameters(); + final InfinispanDistributorParameters infinispanParameters = new InfinispanDistributorParameters(); + infinispanParameters.setPluginClass(InfinispanContextDistributor.class.getCanonicalName()); + infinispanParameters.setConfigFile("infinispan/infinispan-context-test.xml"); + contextParameters.setDistributorParameters(infinispanParameters); + + final CuratorLockManagerParameters curatorParameters = new CuratorLockManagerParameters(); + curatorParameters.setPluginClass(CuratorLockManager.class.getCanonicalName()); + curatorParameters.setZookeeperAddress(ZOOKEEPER_ADDRESS + ":" + zookeeperPort); + contextParameters.setLockManagerParameters(curatorParameters); + ParameterService.registerParameters(LockManagerParameters.class, curatorParameters); + + final long result = new ConcurrentContext().testConcurrentContext("InfinispanMultiCuratorLock", + TEST_JVM_COUNT_MULTI_JVM, TEST_THREAD_COUNT_MULTI_JVM, TEST_THREAD_LOOPS); + + assertEquals(TEST_JVM_COUNT_MULTI_JVM * TEST_THREAD_COUNT_MULTI_JVM * TEST_THREAD_LOOPS, result); + + stopZookeeperServer(); + + logger.debug("Ran testConcurrentContextInfinispanMultiJVMCuratorLock test"); + } + + @Test + public void testConcurrentContextHazelcastMultiJVMCuratorLock() + throws ApexModelException, IOException, ApexException, InterruptedException { + logger.debug("Running testConcurrentContextHazelcastMultiJVMCuratorLock test . . ."); + + startZookeeperServer(); + + final ContextParameters contextParameters = new ContextParameters(); + contextParameters.getDistributorParameters() + .setPluginClass(HazelcastContextDistributor.class.getCanonicalName()); + + final CuratorLockManagerParameters curatorParameters = new CuratorLockManagerParameters(); + curatorParameters.setPluginClass(CuratorLockManager.class.getCanonicalName()); + curatorParameters.setZookeeperAddress(ZOOKEEPER_ADDRESS + ":" + zookeeperPort); + contextParameters.setLockManagerParameters(curatorParameters); + ParameterService.registerParameters(LockManagerParameters.class, curatorParameters); + + final long result = new ConcurrentContext().testConcurrentContext("HazelcastMultiCuratorLock", + TEST_JVM_COUNT_MULTI_JVM, TEST_THREAD_COUNT_MULTI_JVM, TEST_THREAD_LOOPS); + + assertEquals(TEST_JVM_COUNT_MULTI_JVM * TEST_THREAD_COUNT_MULTI_JVM * TEST_THREAD_LOOPS, result); + + stopZookeeperServer(); + logger.debug("Ran testConcurrentContextHazelcastMultiJVMCuratorLock test"); + } +} diff --git a/testsuites/integration/integration-context-test/src/test/resources/hazelcast/hazelcast.xml b/testsuites/integration/integration-context-test/src/test/resources/hazelcast/hazelcast.xml new file mode 100644 index 000000000..d69f24b90 --- /dev/null +++ b/testsuites/integration/integration-context-test/src/test/resources/hazelcast/hazelcast.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ============LICENSE_START======================================================= + Copyright (C) 2016-2018 Ericsson. All rights reserved. + ================================================================================ + 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. + + SPDX-License-Identifier: Apache-2.0 + ============LICENSE_END========================================================= +--> + +<hazelcast xmlns="http://www.hazelcast.com/schema/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <group> + <name>ApexHazelcastGroup</name> + <password>ApexHazelcastGroupPassword</password> + </group> + <network> + <port auto-increment="true">5706</port> + <join> + <multicast enabled="false"> + <multicast-group>224.2.2.10</multicast-group> + <multicast-port>54327</multicast-port> + </multicast> + <tcp-ip enabled="true"> + <members>127.0.0.1</members> + </tcp-ip> + </join> + <interfaces enabled="false"> + <!-- This value will allow hazelcast to run locally from the IDE --> + <interface>127.0.0.*</interface> + </interfaces> + </network> + <properties> + <property name="hazelcast.icmp.enabled">true</property> + <property name="hazelcast.logging.type">slf4j</property> + <!-- disable the hazelcast shutdown hook - prefer to control the shutdown + in code --> + <property name="hazelcast.shutdownhook.enabled">false</property> + <property name="hazelcast.graceful.shutdown.max.wait">60</property> + </properties> + <executor-service> + <pool-size>16</pool-size> + </executor-service> +</hazelcast> diff --git a/testsuites/integration/integration-context-test/src/test/resources/infinispan/default-jgroups-tcp.xml b/testsuites/integration/integration-context-test/src/test/resources/infinispan/default-jgroups-tcp.xml new file mode 100644 index 000000000..028cf1df6 --- /dev/null +++ b/testsuites/integration/integration-context-test/src/test/resources/infinispan/default-jgroups-tcp.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ============LICENSE_START======================================================= + Copyright (C) 2016-2018 Ericsson. All rights reserved. + ================================================================================ + 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. + + SPDX-License-Identifier: Apache-2.0 + ============LICENSE_END========================================================= +--> + +<config xmlns="urn:org:jgroups" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/jgroups-4.0.xsd"> + <TCP bind_addr="${jgroups.tcp.address:127.0.0.1}" + bind_port="${jgroups.tcp.port:7800}" + enable_diagnostics="false" + thread_naming_pattern="pl" + send_buf_size="640k" + sock_conn_timeout="300" + bundler_type="no-bundler" + + thread_pool.min_threads="${jgroups.thread_pool.min_threads:0}" + thread_pool.max_threads="${jgroups.thread_pool.max_threads:200}" + thread_pool.keep_alive_time="60000" + /> + <MPING bind_addr="${jgroups.tcp.address:127.0.0.1}" + mcast_addr="${jgroups.mping.mcast_addr:228.2.4.6}" + mcast_port="${jgroups.mping.mcast_port:43366}" + ip_ttl="${jgroups.udp.ip_ttl:2}" + /> + <MERGE3 min_interval="10000" + max_interval="30000" + /> + <FD_SOCK /> + <FD_ALL timeout="60000" + interval="15000" + timeout_check_interval="5000" + /> + <VERIFY_SUSPECT timeout="5000" /> + <pbcast.NAKACK2 use_mcast_xmit="false" + xmit_interval="100" + xmit_table_num_rows="50" + xmit_table_msgs_per_row="1024" + xmit_table_max_compaction_time="30000" + resend_last_seqno="true" + /> + <UNICAST3 xmit_interval="100" + xmit_table_num_rows="50" + xmit_table_msgs_per_row="1024" + xmit_table_max_compaction_time="30000" + conn_expiry_timeout="0" + /> + <pbcast.STABLE stability_delay="500" + desired_avg_gossip="5000" + max_bytes="1M" + /> + <pbcast.GMS print_local_addr="false" + install_view_locally_first="true" + join_timeout="${jgroups.join_timeout:5000}" + /> + <MFC max_credits="2m" + min_threshold="0.40" + /> + <FRAG3/> +</config> diff --git a/testsuites/integration/integration-context-test/src/test/resources/infinispan/default-jgroups-udp.xml b/testsuites/integration/integration-context-test/src/test/resources/infinispan/default-jgroups-udp.xml new file mode 100644 index 000000000..17ba5eaca --- /dev/null +++ b/testsuites/integration/integration-context-test/src/test/resources/infinispan/default-jgroups-udp.xml @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ============LICENSE_START======================================================= + Copyright (C) 2016-2018 Ericsson. All rights reserved. + ================================================================================ + 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. + + SPDX-License-Identifier: Apache-2.0 + ============LICENSE_END========================================================= +--> + +<config xmlns="urn:org:jgroups" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/jgroups-4.0.xsd"> + <UDP mcast_addr="${jgroups.udp.mcast_addr:228.6.7.8}" + mcast_port="${jgroups.udp.mcast_port:46655}" + ucast_send_buf_size="1m" + mcast_send_buf_size="1m" + ucast_recv_buf_size="20m" + mcast_recv_buf_size="25m" + ip_ttl="${jgroups.ip_ttl:2}" + thread_naming_pattern="pl" + enable_diagnostics="false" + bundler_type="no-bundler" + max_bundle_size="8500" + + thread_pool.min_threads="${jgroups.thread_pool.min_threads:0}" + thread_pool.max_threads="${jgroups.thread_pool.max_threads:200}" + thread_pool.keep_alive_time="60000" + /> + <PING /> + <MERGE3 min_interval="10000" + max_interval="30000" + /> + <FD_SOCK /> + <FD_ALL timeout="60000" + interval="15000" + timeout_check_interval="5000" + /> + <VERIFY_SUSPECT timeout="5000" + /> + <pbcast.NAKACK2 xmit_interval="100" + xmit_table_num_rows="50" + xmit_table_msgs_per_row="1024" + xmit_table_max_compaction_time="30000" + resend_last_seqno="true" + /> + <UNICAST3 xmit_interval="100" + xmit_table_num_rows="50" + xmit_table_msgs_per_row="1024" + xmit_table_max_compaction_time="30000" + conn_expiry_timeout="0" + /> + <pbcast.STABLE stability_delay="500" + desired_avg_gossip="5000" + max_bytes="1M" + /> + <pbcast.GMS print_local_addr="false" + install_view_locally_first="true" + join_timeout="${jgroups.join_timeout:5000}" + /> + <UFC max_credits="2m" + min_threshold="0.40" + /> + <MFC max_credits="2m" + min_threshold="0.40" + /> + <FRAG3 frag_size="8000"/> +</config> diff --git a/testsuites/integration/integration-context-test/src/test/resources/infinispan/infinispan-context-test.xml b/testsuites/integration/integration-context-test/src/test/resources/infinispan/infinispan-context-test.xml new file mode 100644 index 000000000..9fa7a2a14 --- /dev/null +++ b/testsuites/integration/integration-context-test/src/test/resources/infinispan/infinispan-context-test.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ============LICENSE_START======================================================= + Copyright (C) 2016-2018 Ericsson. All rights reserved. + ================================================================================ + 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. + + SPDX-License-Identifier: Apache-2.0 + ============LICENSE_END========================================================= +--> + +<infinispan xmlns="urn:infinispan:config:8.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="urn:infinispan:config:8.0 http://infinispan.org/schemas/infinispan-config-8.0.xsd"> + <jgroups> + <stack-file name="tcpStack" path="infinispan/default-jgroups-tcp.xml" /> + </jgroups> + + <cache-container name="ApexCacheContainer" default-cache="LTypeContextAlbum_0.0.1"> + <transport cluster="apexCluster" stack="tcpStack" /> + <jmx /> + <replicated-cache name="LTypeContextAlbum_0.0.1" mode="SYNC" statistics="true"> + <state-transfer enabled="true" /> + </replicated-cache> + </cache-container> +</infinispan> diff --git a/testsuites/integration/integration-context-test/src/test/resources/logback-test.xml b/testsuites/integration/integration-context-test/src/test/resources/logback-test.xml new file mode 100644 index 000000000..7fd818d4b --- /dev/null +++ b/testsuites/integration/integration-context-test/src/test/resources/logback-test.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ============LICENSE_START======================================================= + Copyright (C) 2016-2018 Ericsson. All rights reserved. + ================================================================================ + 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. + + SPDX-License-Identifier: Apache-2.0 + ============LICENSE_END========================================================= +--> + +<configuration> + <contextName>Apex</contextName> + <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" /> + <property name="LOG_DIR" value="${java.io.tmpdir}/apex_logging/" /> + + <!-- USE FOR STD OUT ONLY --> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <Pattern>%d %contextName [%t] %level %logger{36} - %msg%n</Pattern> + </encoder> + </appender> + + <logger name="org.apache.zookeeper.ClientCnxn" level="OFF" additivity="false"> + <appender-ref ref="STDOUT" /> + </logger> + + <appender name="FILE" + class="ch.qos.logback.core.FileAppender"> + <file>${LOG_DIR}/apex.log</file> + <encoder> + <pattern>%d %-5relative [procId=${processId}] [%thread] %-5level + %logger{26} - %msg %n %ex{full}</pattern> + </encoder> + </appender> + + <appender name="CTXT_FILE" + class="ch.qos.logback.core.FileAppender"> + <file>${LOG_DIR}/apex_ctxt.log</file> + <encoder> + <pattern>%d %-5relative [procId=${processId}] [%thread] %-5level + %logger{26} - %msg %n %ex{full}</pattern> + </encoder> + </appender> + + <logger name="org.infinispan" level="info" additivity="false"> + <appender-ref ref="STDOUT" /> + </logger> + + <logger name="com.ericsson.apex.context.monitoring" level="TRACE" additivity="false"> + <appender-ref ref="STDOUT" /> + </logger> + + <logger name="com.ericsson.apex.context.monitoring" level="TRACE" additivity="false"> + <appender-ref ref="CTXT_FILE" /> + </logger> + + <logger name="org.jgroups" level="off" additivity="false"> + <appender-ref ref="STDOUT" /> + </logger> + + <root level="info"> + <appender-ref ref="STDOUT" /> + </root> + +</configuration> |