This bumps odlparent to 5.0.0.
Change-Id: I90398f344b45c8f55bd92831ea2221c4af34ce5e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
package org.opendaylight.mdsal.binding.api;
import com.google.common.util.concurrent.FluentFuture;
-import javax.annotation.CheckReturnValue;
+import edu.umd.cs.findbugs.annotations.CheckReturnValue;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.TransactionCommitFailedException;
import com.google.common.annotations.Beta;
import com.google.common.util.concurrent.FluentFuture;
+import edu.umd.cs.findbugs.annotations.CheckReturnValue;
import java.util.Collection;
-import javax.annotation.CheckReturnValue;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.common.api.DataValidationFailedException;
import org.opendaylight.mdsal.common.api.PostCanCommitStep;
package org.opendaylight.mdsal.binding.api;
import com.google.common.util.concurrent.FluentFuture;
-import javax.annotation.CheckReturnValue;
+import edu.umd.cs.findbugs.annotations.CheckReturnValue;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.DataValidationFailedException;
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.mdsal.binding.dom.adapter;
import static java.util.Objects.requireNonNull;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.function.Predicate;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.opendaylight.mdsal.binding.generator.util.BindingRuntimeContext;
import org.opendaylight.yangtools.yang.binding.Augmentation;
import org.opendaylight.yangtools.yang.common.QNameModule;
import com.google.common.collect.ImmutableList;
import java.util.List;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.opendaylight.mdsal.binding.api.ActionProviderService;
import org.opendaylight.mdsal.binding.api.ActionService;
import org.opendaylight.mdsal.binding.api.BindingService;
import static java.util.Objects.requireNonNull;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.opendaylight.mdsal.binding.generator.api.ModuleInfoRegistry;
import org.opendaylight.yangtools.concepts.ObjectRegistration;
import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
import static java.util.Objects.requireNonNull;
import com.google.common.util.concurrent.ListenableFuture;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.opendaylight.mdsal.binding.dom.codec.osgi.BindingRuntimeContextListener;
import org.opendaylight.mdsal.binding.dom.codec.osgi.BindingRuntimeContextService;
import org.opendaylight.mdsal.binding.generator.api.ClassLoadingStrategy;
package org.opendaylight.mdsal.binding.dom.codec.impl;
import com.google.common.collect.Iterables;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.Holding;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTreeNode.ChildAddressabilitySummary;
import org.opendaylight.mdsal.binding.dom.codec.impl.NodeCodecContext.CodecContextFactory;
import org.opendaylight.yangtools.yang.binding.DataObject;
return tmp;
}
- @GuardedBy("this")
+ @Holding("this")
@SuppressWarnings({ "rawtypes", "unchecked" })
private DataContainerCodecContext<?,T> createInstance() {
// FIXME: make protected abstract
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.mdsal.binding.dom.codec.api.BindingLazyContainerNode;
import javassist.CtClass;
import javassist.LoaderClassPath;
import javassist.NotFoundException;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import javax.annotation.RegEx;
+import org.checkerframework.checker.regex.qual.Regex;
import org.opendaylight.mdsal.binding.spec.naming.BindingMapping;
import org.opendaylight.yangtools.util.ClassLoaderUtils;
import org.opendaylight.yangtools.yang.binding.Action;
private static final long EXPIRATION_TIME = 60;
- @RegEx
+ @Regex
private static final String ROOT_PACKAGE_PATTERN_STRING =
"(org.opendaylight.yang.gen.v1.[a-z0-9_\\.]*\\.(?:rev[0-9][0-9][0-1][0-9][0-3][0-9]|norev))";
private static final Pattern ROOT_PACKAGE_PATTERN = Pattern.compile(ROOT_PACKAGE_PATTERN_STRING);
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
import com.google.common.annotations.Beta;
import com.google.common.util.concurrent.FluentFuture;
+import edu.umd.cs.findbugs.annotations.CheckReturnValue;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.function.Function;
-import javax.annotation.CheckReturnValue;
import javax.inject.Inject;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.Transaction;
import com.google.common.annotations.Beta;
import com.google.common.util.concurrent.FluentFuture;
import com.google.common.util.concurrent.Futures;
+import edu.umd.cs.findbugs.annotations.CheckReturnValue;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.Future;
-import javax.annotation.CheckReturnValue;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.ReadTransaction;
import org.opendaylight.mdsal.binding.api.ReadWriteTransaction;
import com.google.common.util.concurrent.FluentFuture;
import com.google.common.util.concurrent.MoreExecutors;
+import edu.umd.cs.findbugs.annotations.CheckReturnValue;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.function.BiFunction;
import java.util.function.Supplier;
-import javax.annotation.CheckReturnValue;
import org.opendaylight.mdsal.binding.api.ReadTransaction;
import org.opendaylight.mdsal.binding.api.TransactionFactory;
import org.opendaylight.mdsal.binding.api.WriteTransaction;
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
import com.google.common.annotations.Beta;
import com.google.common.util.concurrent.ListenableFuture;
-import javax.annotation.CheckReturnValue;
+import edu.umd.cs.findbugs.annotations.CheckReturnValue;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.RpcResult;
import com.google.common.annotations.Beta;
import com.google.common.util.concurrent.ListenableFuture;
-import javax.annotation.CheckReturnValue;
+import edu.umd.cs.findbugs.annotations.CheckReturnValue;
import org.opendaylight.yangtools.yang.common.RpcResult;
/**
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>bundle-parent</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
package org.opendaylight.mdsal.dom.api;
import com.google.common.util.concurrent.FluentFuture;
-import javax.annotation.CheckReturnValue;
+import edu.umd.cs.findbugs.annotations.CheckReturnValue;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.DataValidationFailedException;
import com.google.common.util.concurrent.ListenableFuture;
import java.util.concurrent.TimeUnit;
-import javax.annotation.Nonnegative;
+import org.checkerframework.checker.index.qual.NonNegative;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.util.concurrent.FluentFutures;
* @throws IllegalArgumentException if timeout is negative.
*/
@NonNull ListenableFuture<? extends Object> offerNotification(@NonNull DOMNotification notification,
- @Nonnegative long timeout, @NonNull TimeUnit unit) throws InterruptedException;
+ @NonNegative long timeout, @NonNull TimeUnit unit) throws InterruptedException;
}
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.opendaylight.mdsal.dom.api.DOMActionAvailabilityExtension;
import org.opendaylight.mdsal.dom.api.DOMActionAvailabilityExtension.AvailabilityListener;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
import org.opendaylight.mdsal.dom.api.DOMDataTreeListener;
import org.opendaylight.mdsal.dom.api.DOMDataTreeLoopException;
import java.util.Set;
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
+import org.checkerframework.checker.lock.qual.Holding;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.dom.api.DOMDataTreeCursorAwareTransaction;
import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
}
}
- @GuardedBy("this")
+ @Holding("this")
private void submitTransaction(final ShardedDOMDataTreeWriteTransaction tx) {
lastTx = tx;
tx.doSubmit(this::transactionSuccessful, this::transactionFailed);
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.stream.Collectors;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.dom.api.DOMDataTreeCursorAwareTransaction;
Preconditions.checkState(openCursor == null, "Cannot submit transaction while there is a cursor open");
producer.transactionSubmitted(this);
- return future;
+ return FluentFuture.from(future);
}
void doSubmit(final Consumer<ShardedDOMDataTreeWriteTransaction> success,
// After data tree change future is finished, we can close the listener registration
initialDataTreeChangeFuture.addListener(reg::close, MoreExecutors.directExecutor());
- return initialDataTreeChangeFuture;
+ return FluentFuture.from(initialDataTreeChangeFuture);
}
@Override
}
}, MoreExecutors.directExecutor());
- return readResult;
+ return FluentFuture.from(readResult);
}
@Override
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.opendaylight.mdsal.dom.spi.AbstractDOMSchemaService;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
import org.opendaylight.yangtools.concepts.Registration;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
-import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import org.junit.Test;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.TransactionCommitFailedException;
import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
+import org.opendaylight.yangtools.util.concurrent.FluentFutures;
public class TransactionChainWriteTransactionTest {
transactionChainWriteTransaction.delete(any(), any());
verify(writeTransaction).delete(any(), any());
- ListenableFuture<? extends CommitInfo> writeResult = Futures.immediateFuture(null);
+ ListenableFuture<? extends CommitInfo> writeResult = CommitInfo.emptyFluentFuture();
doReturn(writeResult).when(writeTransaction).commit();
assertEquals(writeResult, transactionChainWriteTransaction.commit());
- writeResult = Futures.immediateFailedFuture(mock(TransactionCommitFailedException.class));
+ writeResult = FluentFutures.immediateFailedFluentFuture(mock(TransactionCommitFailedException.class));
doNothing().when(chainAdapter).transactionFailed(any(), any());
doReturn(writeResult).when(writeTransaction).commit();
assertEquals(writeResult, transactionChainWriteTransaction.commit());
import java.util.Enumeration;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.dom.broker.schema.ScanningSchemaServiceProvider;
import org.opendaylight.yangtools.concepts.Registration;
final class PingPongTransaction implements FutureCallback<CommitInfo> {
private final @NonNull DOMDataTreeReadWriteTransaction delegate;
private final @NonNull SettableFuture<CommitInfo> future;
+ private final @NonNull FluentFuture<CommitInfo> fluent;
private @Nullable DOMDataTreeReadWriteTransaction frontendTransaction;
PingPongTransaction(final DOMDataTreeReadWriteTransaction delegate) {
this.delegate = requireNonNull(delegate);
future = SettableFuture.create();
+ fluent = FluentFuture.from(future);
}
@NonNull DOMDataTreeReadWriteTransaction getTransaction() {
}
@NonNull FluentFuture<CommitInfo> getCommitFuture() {
- return future;
+ return fluent;
}
@Override
import java.util.concurrent.CancellationException;
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
import java.util.function.Function;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
+import org.checkerframework.checker.lock.qual.Holding;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
* This forces allocateTransaction() on a slow path, which has to happen after this method has completed executing.
* Also inflightTx may be updated outside the lock, hence we need to re-check.
*/
- @GuardedBy("this")
+ @Holding("this")
private void processIfReady() {
if (inflightTx == null) {
final PingPongTransaction tx = READY_UPDATER.getAndSet(this, null);
*
* @param tx Transaction which needs processing.
*/
- @GuardedBy("this")
+ @Holding("this")
private void processTransaction(final @NonNull PingPongTransaction tx) {
if (failed) {
LOG.debug("Cancelling transaction {}", tx);
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Function;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.opendaylight.yangtools.concepts.Builder;
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.concepts.Mutable;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener;
import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
import org.opendaylight.mdsal.dom.api.DOMDataTreeListener;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
import java.util.function.Function;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
import org.opendaylight.mdsal.dom.api.DOMDataTreeListener;
import org.opendaylight.mdsal.dom.api.DOMDataTreeListeningException;
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
import java.util.Collection;
import java.util.Optional;
import java.util.UUID;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.kohsuke.MetaInfServices;
import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
import org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState;
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>feature-repo-parent</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>feature-repo-parent</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-mdsal-dom-api">
<feature name="odl-mdsal-binding-dom-adapter">
- <feature version="[4.0.8,5)">odl-lmax-3</feature>
+ <feature version="[5,6)">odl-lmax-3</feature>
</feature>
</features>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-mdsal-binding-runtime">
<feature name="odl-mdsal-binding-runtime">
- <feature version="[4,5)">odl-javassist-3</feature>
+ <feature version="[5,6)">odl-javassist-3</feature>
<feature version="[2.1,3)">odl-yangtools-data</feature>
<feature version="[2.1,3)">odl-yangtools-parser</feature>
</feature>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-mdsal-dom-broker">
<feature name="odl-mdsal-dom-broker">
- <feature version="[4,5)">odl-lmax-3</feature>
+ <feature version="[5,6)">odl-lmax-3</feature>
<feature version="[2.1,3)">odl-yangtools-data</feature>
<feature version="[2.1,3)">odl-yangtools-parser</feature>
</feature>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
package org.opendaylight.mdsal.model.ietf.util;
import java.util.regex.Pattern;
-import javax.annotation.RegEx;
+import org.checkerframework.checker.regex.qual.Regex;
final class IpUtil extends AbstractIetfInetUtil<IpClass, IpClass, IpClass, IpClass, IpClass, IpClass, IpClass, IpClass,
IpClass> {
- @RegEx
+ @Regex
private static final String IP_V4_REGEX = "^\\d+\\.\\d+\\.\\d+\\.\\d+$";
private static final Pattern IP_V4_PATTERN = Pattern.compile(IP_V4_REGEX);
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
import java.util.concurrent.atomic.AtomicReference;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
+import org.checkerframework.checker.lock.qual.Holding;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
import org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState;
*
* @param ownershipChange reported change
*/
- @GuardedBy("this")
+ @Holding("this")
private void lockedOwnershipChanged(final C ownershipChange) {
final E entity = ownershipChange.getEntity();
if (serviceEntity.equals(entity)) {
}
}
- @GuardedBy("this")
+ @Holding("this")
private void cleanupCandidateOwnershipChanged(final EntityOwnershipChangeState state, final boolean jeopardy) {
if (jeopardy) {
switch (state) {
}
}
- @GuardedBy("this")
+ @Holding("this")
private void serviceOwnershipChanged(final EntityOwnershipChangeState state, final boolean jeopardy) {
if (jeopardy) {
LOG.info("Service group {} service entity ownership uncertain", identifier);
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>4.0.9</version>
+ <version>5.0.0</version>
<relativePath/>
</parent>