You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2016/12/16 09:54:49 UTC
[01/10] ignite git commit: IGNITE-4277: Hadoop: better property
naming for "partially raw" comparator (2).
Repository: ignite
Updated Branches:
refs/heads/ignite-4371 71f5bb510 -> 84c02584e
IGNITE-4277: Hadoop: better property naming for "partially raw" comparator (2).
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/b0c56038
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/b0c56038
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/b0c56038
Branch: refs/heads/ignite-4371
Commit: b0c56038dd2a74581d344d0355ac523cb4589980
Parents: 33e027d
Author: devozerov <vo...@gridgain.com>
Authored: Thu Dec 15 12:29:51 2016 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Thu Dec 15 12:29:51 2016 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/hadoop/HadoopClassLoader.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b0c56038/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopClassLoader.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopClassLoader.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopClassLoader.java
index 81c1405..1209e74 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopClassLoader.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/HadoopClassLoader.java
@@ -372,7 +372,7 @@ public class HadoopClassLoader extends URLClassLoader implements ClassCache {
// We use "contains" instead of "equals" to handle subclasses properly.
if (clsName.contains("org.apache.ignite.hadoop.fs.v1.IgniteHadoopFileSystem") ||
clsName.contains("org.apache.ignite.hadoop.fs.v2.IgniteHadoopFileSystem") ||
- clsName.contains("org.apache.ignite.hadoop.io.TextPartialRawComparator") ||
+ clsName.contains("org.apache.ignite.hadoop.io.TextPartiallyRawComparator") ||
clsName.contains("org.apache.ignite.hadoop.mapreduce.IgniteHadoopClientProtocolProvider"))
return true;
}
[03/10] ignite git commit: ignite-4429 Deadlock in
IgniteAtomicSequence when used inside transaction
Posted by sb...@apache.org.
ignite-4429 Deadlock in IgniteAtomicSequence when used inside transaction
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/9905ff32
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/9905ff32
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/9905ff32
Branch: refs/heads/ignite-4371
Commit: 9905ff32c420a6d656106750f18be0f83ba517c7
Parents: 056712b
Author: Aleksei Scherbakov <al...@gmail.com>
Authored: Thu Dec 15 12:31:56 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Dec 15 12:31:56 2016 +0300
----------------------------------------------------------------------
.../GridCacheAtomicSequenceImpl.java | 12 +-
...achePartitionedAtomicSequenceTxSelfTest.java | 169 +++++++++++++++++++
.../IgniteCacheDataStructuresSelfTestSuite.java | 2 +
3 files changed, 181 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/9905ff32/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicSequenceImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicSequenceImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicSequenceImpl.java
index 7474f46..4ff3a53 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicSequenceImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicSequenceImpl.java
@@ -29,6 +29,7 @@ import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteException;
import org.apache.ignite.IgniteLogger;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.IgniteInternalFuture;
@@ -251,8 +252,15 @@ public final class GridCacheAtomicSequenceImpl implements GridCacheAtomicSequenc
while (true) {
if (updateGuard.compareAndSet(false, true)) {
try {
- // This call must be outside lock.
- return CU.outTx(updateCall, ctx);
+ try {
+ return updateCall.call();
+ }
+ catch (IgniteCheckedException | IgniteException | IllegalStateException e) {
+ throw e;
+ }
+ catch (Exception e) {
+ throw new IgniteCheckedException(e);
+ }
}
finally {
lock.lock();
http://git-wip-us.apache.org/repos/asf/ignite/blob/9905ff32/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceTxSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceTxSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceTxSelfTest.java
new file mode 100644
index 0000000..d04a68a
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/partitioned/GridCachePartitionedAtomicSequenceTxSelfTest.java
@@ -0,0 +1,169 @@
+/*
+ * 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.datastructures.partitioned;
+
+import java.util.concurrent.CountDownLatch;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteAtomicSequence;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.configuration.AtomicConfiguration;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.lang.IgniteRunnable;
+import org.apache.ignite.resources.IgniteInstanceResource;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.apache.ignite.transactions.Transaction;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
+
+/**
+ * Tests {@link IgniteAtomicSequence} operations inside started user transaction.
+ */
+public class GridCachePartitionedAtomicSequenceTxSelfTest extends GridCommonAbstractTest {
+ /** Number of threads. */
+ private static final int THREAD_NUM = 8;
+
+ /** Sequence cache size. */
+ private static final int SEQ_CACHE_SIZE = 10;
+
+ /** Iterations. */
+ private static final int ITERATIONS = 100;
+
+ /** Sequence name. */
+ private static final String SEQ_NAME = "seq";
+
+ /** Latch. */
+ private static CountDownLatch latch;
+
+ /** */
+ private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ TcpDiscoverySpi spi = new TcpDiscoverySpi();
+
+ spi.setIpFinder(ipFinder);
+
+ cfg.setDiscoverySpi(spi);
+
+ cfg.setPublicThreadPoolSize(THREAD_NUM);
+
+ AtomicConfiguration atomicCfg = atomicConfiguration();
+
+ assertNotNull(atomicCfg);
+
+ cfg.setAtomicConfiguration(atomicCfg);
+
+ return cfg;
+ }
+
+ /**
+ * @return Atomic config for test.
+ */
+ protected AtomicConfiguration atomicConfiguration() {
+ AtomicConfiguration cfg = new AtomicConfiguration();
+
+ cfg.setBackups(1);
+ cfg.setAtomicSequenceReserveSize(SEQ_CACHE_SIZE);
+
+ return cfg;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void beforeTest() throws Exception {
+ latch = new CountDownLatch(THREAD_NUM);
+
+ startGridsMultiThreaded(1);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTest() throws Exception {
+ stopAllGrids();
+ }
+
+ /**
+ * Tests sequence calls inside transactions.
+ *
+ * @throws Exception If failed.
+ */
+ public void testTransactionIncrement() throws Exception {
+ ignite(0).atomicSequence(SEQ_NAME, 0, true);
+
+ for (int i = 0; i < THREAD_NUM; i++) {
+ multithreaded(new Runnable() {
+ @Override public void run() {
+ ignite(0).compute().run(new IncrementClosure());
+
+ }
+ }, THREAD_NUM);
+ }
+ }
+
+ /**
+ * Tests isolation of system and user transactions.
+ */
+ public void testIsolation() {
+ IgniteAtomicSequence seq = ignite(0).atomicSequence(SEQ_NAME, 0, true);
+
+ CacheConfiguration<Object, Object> ccfg = new CacheConfiguration<>();
+ ccfg.setAtomicityMode(TRANSACTIONAL);
+
+ IgniteCache<Object, Object> cache = ignite(0).getOrCreateCache(ccfg);
+
+ try (Transaction tx = ignite(0).transactions().txStart()) {
+ seq.getAndIncrement();
+
+ cache.put(1, 1);
+
+ tx.rollback();
+ }
+
+ assertEquals(0, cache.size());
+ assertEquals(new Long(1L), U.field(seq, "locVal"));
+ assertEquals(new Long(SEQ_CACHE_SIZE - 1), U.field(seq, "upBound"));
+ }
+
+ /**
+ * Closure which does sequence increment.
+ */
+ private static class IncrementClosure implements IgniteRunnable {
+ /** Ignite instance. */
+ @IgniteInstanceResource
+ private Ignite ignite;
+
+ /** {@inheritDoc} */
+ @Override public void run() {
+ IgniteAtomicSequence seq = ignite.atomicSequence(SEQ_NAME, 0, false);
+
+ latch.countDown();
+
+ U.awaitQuiet(latch);
+
+ for (int i = 0; i < ITERATIONS; i++)
+ try (Transaction ignored = ignite.transactions().txStart()) {
+ seq.incrementAndGet();
+ }
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/9905ff32/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
index 67ab048..d14aa4e 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
@@ -46,6 +46,7 @@ import org.apache.ignite.internal.processors.cache.datastructures.partitioned.Gr
import org.apache.ignite.internal.processors.cache.datastructures.partitioned.GridCachePartitionedAtomicQueueRotativeMultiNodeTest;
import org.apache.ignite.internal.processors.cache.datastructures.partitioned.GridCachePartitionedAtomicReferenceApiSelfTest;
import org.apache.ignite.internal.processors.cache.datastructures.partitioned.GridCachePartitionedAtomicSequenceMultiThreadedTest;
+import org.apache.ignite.internal.processors.cache.datastructures.partitioned.GridCachePartitionedAtomicSequenceTxSelfTest;
import org.apache.ignite.internal.processors.cache.datastructures.partitioned.GridCachePartitionedAtomicSetFailoverSelfTest;
import org.apache.ignite.internal.processors.cache.datastructures.partitioned.GridCachePartitionedAtomicSetSelfTest;
import org.apache.ignite.internal.processors.cache.datastructures.partitioned.GridCachePartitionedAtomicStampedApiSelfTest;
@@ -169,6 +170,7 @@ public class IgniteCacheDataStructuresSelfTestSuite extends TestSuite {
suite.addTest(new TestSuite(IgniteReplicatedAtomicLongApiSelfTest.class));
suite.addTest(new TestSuite(GridCachePartitionedAtomicSequenceMultiThreadedTest.class));
+ suite.addTest(new TestSuite(GridCachePartitionedAtomicSequenceTxSelfTest.class));
suite.addTest(new TestSuite(GridCachePartitionedAtomicStampedApiSelfTest.class));
suite.addTest(new TestSuite(GridCacheReplicatedAtomicStampedApiSelfTest.class));
[02/10] ignite git commit: Merge remote-tracking branch
'origin/master'
Posted by sb...@apache.org.
Merge remote-tracking branch 'origin/master'
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e7d04451
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e7d04451
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e7d04451
Branch: refs/heads/ignite-4371
Commit: e7d04451f18e549603a0ad777ffeee8d205d95a6
Parents: b0c5603 056712b
Author: devozerov <vo...@gridgain.com>
Authored: Thu Dec 15 12:30:14 2016 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Thu Dec 15 12:30:14 2016 +0300
----------------------------------------------------------------------
...achePartitionedMultiNodeFullApiSelfTest.java | 37 ++++++++++++++++----
1 file changed, 30 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
[05/10] ignite git commit: ignite-2545 Optimization for
GridCompoundFuture's futures iteration
Posted by sb...@apache.org.
ignite-2545 Optimization for GridCompoundFuture's futures iteration
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/5c5d70bc
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/5c5d70bc
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/5c5d70bc
Branch: refs/heads/ignite-4371
Commit: 5c5d70bcbc9f7bd44cdb3578ddc3bab9b6894956
Parents: e7d0445
Author: sboikov <sb...@gridgain.com>
Authored: Wed Dec 7 12:25:32 2016 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Thu Dec 15 12:47:28 2016 +0300
----------------------------------------------------------------------
.../distributed/GridCacheTxRecoveryFuture.java | 4 +-
.../cache/distributed/dht/GridDhtGetFuture.java | 2 +-
.../distributed/dht/GridDhtLockFuture.java | 4 +-
.../distributed/dht/GridDhtTxPrepareFuture.java | 4 +-
.../colocated/GridDhtColocatedLockFuture.java | 4 +-
.../distributed/near/GridNearLockFuture.java | 4 +-
...arOptimisticSerializableTxPrepareFuture.java | 4 +-
.../near/GridNearOptimisticTxPrepareFuture.java | 15 ++++--
.../GridNearPessimisticTxPrepareFuture.java | 4 +-
.../near/GridNearTxFinishFuture.java | 4 +-
.../util/future/GridCompoundFuture.java | 56 +++++++++++++-------
11 files changed, 74 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/5c5d70bc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java
index c07a817..e27f777 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java
@@ -427,8 +427,10 @@ public class GridCacheTxRecoveryFuture extends GridCompoundIdentityFuture<Boolea
private MiniFuture miniFuture(IgniteUuid miniId) {
// We iterate directly over the futs collection here to avoid copy.
synchronized (sync) {
+ int size = futuresCountNoLock();
+
// Avoid iterator creation.
- for (int i = 0; i < futuresCount(); i++) {
+ for (int i = 0; i < size; i++) {
IgniteInternalFuture<Boolean> fut = future(i);
if (!isMini(fut))
http://git-wip-us.apache.org/repos/asf/ignite/blob/5c5d70bc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java
index d2a3b3c..d2eab5f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java
@@ -275,7 +275,7 @@ public final class GridDhtGetFuture<K, V> extends GridCompoundIdentityFuture<Col
// Optimization to avoid going through compound future,
// if getAsync() has been completed and no other futures added to this
// compound future.
- if (fut.isDone() && futuresCount() == 0) {
+ if (fut.isDone() && !hasFutures()) {
if (fut.error() != null)
onDone(fut.error());
else
http://git-wip-us.apache.org/repos/asf/ignite/blob/5c5d70bc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
index dd18d7a..3f35305 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
@@ -526,8 +526,10 @@ public final class GridDhtLockFuture extends GridCompoundIdentityFuture<Boolean>
private MiniFuture miniFuture(IgniteUuid miniId) {
// We iterate directly over the futs collection here to avoid copy.
synchronized (sync) {
+ int size = futuresCountNoLock();
+
// Avoid iterator creation.
- for (int i = 0; i < futuresCount(); i++) {
+ for (int i = 0; i < size; i++) {
MiniFuture mini = (MiniFuture) future(i);
if (mini.futureId().equals(miniId)) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/5c5d70bc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
index 8aeecf8..ca2b494 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
@@ -565,8 +565,10 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
private MiniFuture miniFuture(IgniteUuid miniId) {
// We iterate directly over the futs collection here to avoid copy.
synchronized (sync) {
+ int size = futuresCountNoLock();
+
// Avoid iterator creation.
- for (int i = 0; i < futuresCount(); i++) {
+ for (int i = 0; i < size; i++) {
IgniteInternalFuture<IgniteInternalTx> fut = future(i);
if (!isMini(fut))
http://git-wip-us.apache.org/repos/asf/ignite/blob/5c5d70bc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
index 959ffa3..742f004 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedLockFuture.java
@@ -482,8 +482,10 @@ public final class GridDhtColocatedLockFuture extends GridCompoundIdentityFuture
private MiniFuture miniFuture(IgniteUuid miniId) {
// We iterate directly over the futs collection here to avoid copy.
synchronized (sync) {
+ int size = futuresCountNoLock();
+
// Avoid iterator creation.
- for (int i = 0; i < futuresCount(); i++) {
+ for (int i = 0; i < size; i++) {
IgniteInternalFuture<Boolean> fut = future(i);
if (!isMini(fut))
http://git-wip-us.apache.org/repos/asf/ignite/blob/5c5d70bc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
index f1682b7..96de08b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearLockFuture.java
@@ -529,8 +529,10 @@ public final class GridNearLockFuture extends GridCompoundIdentityFuture<Boolean
private MiniFuture miniFuture(IgniteUuid miniId) {
// We iterate directly over the futs collection here to avoid copy.
synchronized (sync) {
+ int size = futuresCountNoLock();
+
// Avoid iterator creation.
- for (int i = 0; i < futuresCount(); i++) {
+ for (int i = 0; i < size; i++) {
IgniteInternalFuture<Boolean> fut = future(i);
if (!isMini(fut))
http://git-wip-us.apache.org/repos/asf/ignite/blob/5c5d70bc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticSerializableTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticSerializableTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticSerializableTxPrepareFuture.java
index 3676a3c..c464b36 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticSerializableTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticSerializableTxPrepareFuture.java
@@ -230,8 +230,10 @@ public class GridNearOptimisticSerializableTxPrepareFuture extends GridNearOptim
private MiniFuture miniFuture(IgniteUuid miniId) {
// We iterate directly over the futs collection here to avoid copy.
synchronized (sync) {
+ int size = futuresCountNoLock();
+
// Avoid iterator creation.
- for (int i = 0; i < futuresCount(); i++) {
+ for (int i = 0; i < size; i++) {
IgniteInternalFuture<GridNearTxPrepareResponse> fut = future(i);
if (!isMini(fut))
http://git-wip-us.apache.org/repos/asf/ignite/blob/5c5d70bc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
index 87c9e1d..b314b81 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
@@ -202,7 +202,9 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearOptimisticTxPrepa
@SuppressWarnings("ForLoopReplaceableByForEach")
public Set<IgniteTxKey> requestedKeys() {
synchronized (sync) {
- for (int i = 0; i < futuresCount(); i++) {
+ int size = futuresCountNoLock();
+
+ for (int i = 0; i < size; i++) {
IgniteInternalFuture<GridNearTxPrepareResponse> fut = future(i);
if (isMini(fut) && !fut.isDone()) {
@@ -233,8 +235,10 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearOptimisticTxPrepa
private MiniFuture miniFuture(IgniteUuid miniId) {
// We iterate directly over the futs collection here to avoid copy.
synchronized (sync) {
+ int size = futuresCountNoLock();
+
// Avoid iterator creation.
- for (int i = 0; i < futuresCount(); i++) {
+ for (int i = size - 1; i >= 0; i--) {
IgniteInternalFuture<GridNearTxPrepareResponse> fut = future(i);
if (!isMini(fut))
@@ -687,7 +691,9 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearOptimisticTxPrepa
keys = new HashSet<>(keyLockFut.lockKeys);
else {
synchronized (sync) {
- for (int i = 0; i < futuresCount(); i++) {
+ int size = futuresCountNoLock();
+
+ for (int i = 0; i < size; i++) {
IgniteInternalFuture<GridNearTxPrepareResponse> fut = future(i);
if (isMini(fut) && !fut.isDone()) {
@@ -895,7 +901,8 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearOptimisticTxPrepa
}
else
remap();
- } else {
+ }
+ else {
parent.onPrepareResponse(m, res);
// Proceed prepare before finishing mini future.
http://git-wip-us.apache.org/repos/asf/ignite/blob/5c5d70bc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
index 01fb5fd..f9a2f90 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java
@@ -133,8 +133,10 @@ public class GridNearPessimisticTxPrepareFuture extends GridNearTxPrepareFutureA
private MiniFuture miniFuture(IgniteUuid miniId) {
// We iterate directly over the futs collection here to avoid copy.
synchronized (sync) {
+ int size = futuresCountNoLock();
+
// Avoid iterator creation.
- for (int i = 0; i < futuresCount(); i++) {
+ for (int i = 0; i < size; i++) {
MiniFuture mini = (MiniFuture) future(i);
if (mini.futureId().equals(miniId)) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/5c5d70bc/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index f14d747..54bd543 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@ -201,7 +201,9 @@ public final class GridNearTxFinishFuture<K, V> extends GridCompoundIdentityFutu
FinishMiniFuture finishFut = null;
synchronized (sync) {
- for (int i = 0; i < futuresCount(); i++) {
+ int size = futuresCountNoLock();
+
+ for (int i = 0; i < size; i++) {
IgniteInternalFuture<IgniteInternalTx> fut = future(i);
if (fut.getClass() == FinishMiniFuture.class) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/5c5d70bc/modules/core/src/main/java/org/apache/ignite/internal/util/future/GridCompoundFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/future/GridCompoundFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/util/future/GridCompoundFuture.java
index 0f7e020..7abd367 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/future/GridCompoundFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/future/GridCompoundFuture.java
@@ -88,7 +88,7 @@ public class GridCompoundFuture<T, R> extends GridFutureAdapter<R> implements Ig
}
/** {@inheritDoc} */
- @Override public void apply(IgniteInternalFuture<T> fut) {
+ @Override public final void apply(IgniteInternalFuture<T> fut) {
try {
T t = fut.get();
@@ -160,9 +160,9 @@ public class GridCompoundFuture<T, R> extends GridFutureAdapter<R> implements Ig
* @return Collection of futures.
*/
@SuppressWarnings("unchecked")
- public Collection<IgniteInternalFuture<T>> futures() {
+ public final Collection<IgniteInternalFuture<T>> futures() {
synchronized (sync) {
- if(futs == null)
+ if (futs == null)
return Collections.emptyList();
if (futs instanceof IgniteInternalFuture)
@@ -190,10 +190,12 @@ public class GridCompoundFuture<T, R> extends GridFutureAdapter<R> implements Ig
* @return {@code True} if there are pending futures.
*/
@SuppressWarnings("ForLoopReplaceableByForEach")
- public boolean hasPending() {
+ protected final boolean hasPending() {
synchronized (sync) {
+ int size = futuresCountNoLock();
+
// Avoid iterator creation and collection copy.
- for (int i = 0; i < futuresCount(); i++) {
+ for (int i = 0; i < size; i++) {
IgniteInternalFuture<T> fut = future(i);
if (!fut.isDone())
@@ -210,7 +212,7 @@ public class GridCompoundFuture<T, R> extends GridFutureAdapter<R> implements Ig
* @param fut Future to add.
*/
@SuppressWarnings("unchecked")
- public void add(IgniteInternalFuture<T> fut) {
+ public final void add(IgniteInternalFuture<T> fut) {
assert fut != null;
synchronized (sync) {
@@ -243,7 +245,7 @@ public class GridCompoundFuture<T, R> extends GridFutureAdapter<R> implements Ig
/**
* Clear futures.
*/
- protected void clear() {
+ protected final void clear() {
synchronized (sync) {
futs = null;
}
@@ -253,14 +255,14 @@ public class GridCompoundFuture<T, R> extends GridFutureAdapter<R> implements Ig
* @return {@code True} if this future was initialized. Initialization happens when {@link #markInitialized()}
* method is called on future.
*/
- public boolean initialized() {
+ public final boolean initialized() {
return initFlag == INIT_FLAG;
}
/**
* Mark this future as initialized.
*/
- public void markInitialized() {
+ public final void markInitialized() {
if (FLAGS_UPD.compareAndSet(this, 0, INIT_FLAG))
checkComplete();
}
@@ -295,9 +297,9 @@ public class GridCompoundFuture<T, R> extends GridFutureAdapter<R> implements Ig
* @return Future.
*/
@SuppressWarnings("unchecked")
- protected IgniteInternalFuture<T> future(int idx) {
+ protected final IgniteInternalFuture<T> future(int idx) {
assert Thread.holdsLock(sync);
- assert futs != null && idx >= 0 && idx < futuresCount();
+ assert futs != null && idx >= 0 && idx < futuresCountNoLock();
if (futs instanceof IgniteInternalFuture) {
assert idx == 0;
@@ -312,15 +314,33 @@ public class GridCompoundFuture<T, R> extends GridFutureAdapter<R> implements Ig
* @return Futures size.
*/
@SuppressWarnings("unchecked")
- protected int futuresCount() {
- synchronized (sync) {
- if (futs == null)
- return 0;
+ protected final int futuresCountNoLock() {
+ assert Thread.holdsLock(sync);
- if (futs instanceof IgniteInternalFuture)
- return 1;
+ if (futs == null)
+ return 0;
+
+ if (futs instanceof IgniteInternalFuture)
+ return 1;
- return ((Collection<IgniteInternalFuture>)futs).size();
+ return ((Collection<IgniteInternalFuture>)futs).size();
+ }
+
+ /**
+ * @return Futures size.
+ */
+ private int futuresCount() {
+ synchronized (sync) {
+ return futuresCountNoLock();
+ }
+ }
+
+ /**
+ * @return {@code True} if has at least one future.
+ */
+ protected final boolean hasFutures() {
+ synchronized (sync) {
+ return futs != null;
}
}
[04/10] ignite git commit: Merge remote-tracking branch
'origin/master'
Posted by sb...@apache.org.
Merge remote-tracking branch 'origin/master'
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e22b6b64
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e22b6b64
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e22b6b64
Branch: refs/heads/ignite-4371
Commit: e22b6b64a89693c68444a6a32d548a1b1e52fc9a
Parents: 9905ff3 e7d0445
Author: sboikov <sb...@gridgain.com>
Authored: Thu Dec 15 12:32:50 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Dec 15 12:32:50 2016 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/hadoop/HadoopClassLoader.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
[08/10] ignite git commit: Merge remote-tracking branch
'origin/master'
Posted by sb...@apache.org.
Merge remote-tracking branch 'origin/master'
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/b2cc951e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/b2cc951e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/b2cc951e
Branch: refs/heads/ignite-4371
Commit: b2cc951e3d83e92bce966f7e8aca65fa9f248fee
Parents: 49a0b18 e22b6b6
Author: devozerov <vo...@gridgain.com>
Authored: Thu Dec 15 12:50:49 2016 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Thu Dec 15 12:50:49 2016 +0300
----------------------------------------------------------------------
.../GridCacheAtomicSequenceImpl.java | 12 +-
...achePartitionedAtomicSequenceTxSelfTest.java | 169 +++++++++++++++++++
.../IgniteCacheDataStructuresSelfTestSuite.java | 2 +
3 files changed, 181 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
[09/10] ignite git commit: Merge remote-tracking branch
'remotes/origin/master' into ignite-4371
Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/master' into ignite-4371
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/5dbd44f2
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/5dbd44f2
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/5dbd44f2
Branch: refs/heads/ignite-4371
Commit: 5dbd44f2c8fc9839ca81792793104aaf0f30b7c3
Parents: 71f5bb5 b2cc951
Author: sboikov <sb...@gridgain.com>
Authored: Fri Dec 16 12:32:56 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Dec 16 12:32:56 2016 +0300
----------------------------------------------------------------------
examples/pom-standalone.xml | 6 +
modules/cassandra/pom.xml | 24 ++-
.../distributed/GridCacheTxRecoveryFuture.java | 4 +-
.../cache/distributed/dht/GridDhtGetFuture.java | 2 +-
.../distributed/dht/GridDhtLockFuture.java | 4 +-
.../distributed/dht/GridDhtTxPrepareFuture.java | 4 +-
.../colocated/GridDhtColocatedLockFuture.java | 4 +-
.../distributed/near/GridNearLockFuture.java | 4 +-
...arOptimisticSerializableTxPrepareFuture.java | 4 +-
.../near/GridNearOptimisticTxPrepareFuture.java | 15 +-
.../GridNearPessimisticTxPrepareFuture.java | 4 +-
.../near/GridNearTxFinishFuture.java | 4 +-
.../GridCacheAtomicSequenceImpl.java | 12 +-
.../processors/hadoop/HadoopClassLoader.java | 2 +-
.../util/future/GridCompoundFuture.java | 56 ++++--
...achePartitionedAtomicSequenceTxSelfTest.java | 169 +++++++++++++++++++
.../IgniteCacheDataStructuresSelfTestSuite.java | 2 +
17 files changed, 273 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/5dbd44f2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
[06/10] ignite git commit: IGNITE-4238: Added geospatial queries
example (nolgpl examples hotfix)
Posted by sb...@apache.org.
IGNITE-4238: Added geospatial queries example (nolgpl examples hotfix)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c8dbec4e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c8dbec4e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c8dbec4e
Branch: refs/heads/ignite-4371
Commit: c8dbec4eaac417b3943120d0c46a9d493d719def
Parents: 5c5d70b
Author: Anton Vinogradov <av...@apache.org>
Authored: Wed Dec 7 13:15:37 2016 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Thu Dec 15 12:47:44 2016 +0300
----------------------------------------------------------------------
examples/pom-standalone.xml | 6 ++++++
1 file changed, 6 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/c8dbec4e/examples/pom-standalone.xml
----------------------------------------------------------------------
diff --git a/examples/pom-standalone.xml b/examples/pom-standalone.xml
index 6247ced..08c27fe 100644
--- a/examples/pom-standalone.xml
+++ b/examples/pom-standalone.xml
@@ -166,6 +166,12 @@
<artifactId>ignite-schedule</artifactId>
<version>to_be_replaced_by_ignite_version</version>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.ignite</groupId>
+ <artifactId>ignite-geospatial</artifactId>
+ <version>to_be_replaced_by_ignite_version</version>
+ </dependency>
</dependencies>
</profile>
</profiles>
[10/10] ignite git commit: ignite-2412
Posted by sb...@apache.org.
ignite-2412
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/84c02584
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/84c02584
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/84c02584
Branch: refs/heads/ignite-4371
Commit: 84c02584e255e79ab3146172a18187773faf0208
Parents: 5dbd44f
Author: sboikov <sb...@gridgain.com>
Authored: Fri Dec 16 12:54:35 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Dec 16 12:54:35 2016 +0300
----------------------------------------------------------------------
.../cache/IgniteTxStoreExceptionAbstractSelfTest.java | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/84c02584/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxStoreExceptionAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxStoreExceptionAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxStoreExceptionAbstractSelfTest.java
index b65b441..7cb3552 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxStoreExceptionAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteTxStoreExceptionAbstractSelfTest.java
@@ -357,6 +357,7 @@ public abstract class IgniteTxStoreExceptionAbstractSelfTest extends GridCacheAb
/**
* @param key Key.
+ * @param putBefore If {@code true} expects non-null values.
* @throws Exception If failed.
*/
private void checkValue(final Integer key, boolean putBefore) throws Exception {
@@ -455,7 +456,7 @@ public abstract class IgniteTxStoreExceptionAbstractSelfTest extends GridCacheAb
info("Going to transform: " + key);
- Throwable e = GridTestUtils.assertThrows(log, new Callable<Void>() {
+ GridTestUtils.assertThrows(log, new Callable<Void>() {
@Override public Void call() throws Exception {
grid(0).<Integer, Integer>cache(null).invoke(key, new EntryProcessor<Integer, Integer, Void>() {
@Override public Void process(MutableEntry<Integer, Integer> e, Object... args) {
@@ -469,8 +470,6 @@ public abstract class IgniteTxStoreExceptionAbstractSelfTest extends GridCacheAb
}
}, CacheWriterException.class, null);
- assertTrue("Unexpected cause: " + e, e.getCause() instanceof TransactionRollbackException);
-
checkValue(key, putBefore);
}
[07/10] ignite git commit: IGNITE-4353 Parent Cassandra module
deployed on maven repository (hotfix: deploy to custom maven repository)
Posted by sb...@apache.org.
IGNITE-4353 Parent Cassandra module deployed on maven repository (hotfix: deploy to custom maven repository)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/49a0b187
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/49a0b187
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/49a0b187
Branch: refs/heads/ignite-4371
Commit: 49a0b1879fbce3879d37c34727f05a11002ecbc3
Parents: c8dbec4
Author: Anton Vinogradov <av...@apache.org>
Authored: Wed Dec 7 14:25:53 2016 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Thu Dec 15 12:47:58 2016 +0300
----------------------------------------------------------------------
modules/cassandra/pom.xml | 24 +++++++++++-------------
1 file changed, 11 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/49a0b187/modules/cassandra/pom.xml
----------------------------------------------------------------------
diff --git a/modules/cassandra/pom.xml b/modules/cassandra/pom.xml
index f287684..a4f947a 100644
--- a/modules/cassandra/pom.xml
+++ b/modules/cassandra/pom.xml
@@ -51,18 +51,16 @@
</modules>
<build>
- <pluginManagement>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-deploy-plugin</artifactId>
- <version>2.8.2</version>
- <inherited>false</inherited>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
- </plugins>
- </pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>2.8.2</version>
+ <inherited>false</inherited>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
</build>
</project>