X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fconnect%2Fnetconf%2Fsal%2FNetconfDeviceDataBroker.java;fp=opendaylight%2Fmd-sal%2Fsal-netconf-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fconnect%2Fnetconf%2Fsal%2FNetconfDeviceDataBroker.java;h=bc6adc6a1f8301188f9d6a16b4038e2da6b504b3;hb=354897d76dbaa234b92d61591b5bbeaac220c3b9;hp=8b7ea6caa8cb6370a8830c3da12643a3c38269b3;hpb=6f071ea4c8957fc1496e29227e6500dfe45524a2;p=controller.git diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/sal/NetconfDeviceDataBroker.java b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/sal/NetconfDeviceDataBroker.java index 8b7ea6caa8..bc6adc6a1f 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/sal/NetconfDeviceDataBroker.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/sal/NetconfDeviceDataBroker.java @@ -35,14 +35,21 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext; final class NetconfDeviceDataBroker implements DOMDataBroker { private final RemoteDeviceId id; private final NetconfBaseOps netconfOps; - private final NetconfSessionPreferences netconfSessionPreferences; - private final long defaultRequestTimeoutMillis; + private final long requestTimeoutMillis; - public NetconfDeviceDataBroker(final RemoteDeviceId id, final SchemaContext schemaContext, final DOMRpcService rpc, final NetconfSessionPreferences netconfSessionPreferences, long defaultRequestTimeoutMillis) { + private final boolean rollbackSupport; + private boolean candidateSupported; + private boolean runningWritable; + + public NetconfDeviceDataBroker(final RemoteDeviceId id, final SchemaContext schemaContext, final DOMRpcService rpc, final NetconfSessionPreferences netconfSessionPreferences, long requestTimeoutMillis) { this.id = id; this.netconfOps = new NetconfBaseOps(rpc, schemaContext); - this.netconfSessionPreferences = netconfSessionPreferences; - this.defaultRequestTimeoutMillis = defaultRequestTimeoutMillis; + this.requestTimeoutMillis = requestTimeoutMillis; + // get specific attributes from netconf preferences and get rid of it + // no need to keep the entire preferences object, its quite big with all the capability QNames + candidateSupported = netconfSessionPreferences.isCandidateSupported(); + runningWritable = netconfSessionPreferences.isRunningWritable(); + rollbackSupport = netconfSessionPreferences.isRollbackSupported(); } @Override @@ -57,14 +64,14 @@ final class NetconfDeviceDataBroker implements DOMDataBroker { @Override public DOMDataWriteTransaction newWriteOnlyTransaction() { - if(netconfSessionPreferences.isCandidateSupported()) { - if(netconfSessionPreferences.isRunningWritable()) { - return new WriteCandidateRunningTx(id, netconfOps, netconfSessionPreferences, defaultRequestTimeoutMillis); + if(candidateSupported) { + if(runningWritable) { + return new WriteCandidateRunningTx(id, netconfOps, rollbackSupport, requestTimeoutMillis); } else { - return new WriteCandidateTx(id, netconfOps, netconfSessionPreferences, defaultRequestTimeoutMillis); + return new WriteCandidateTx(id, netconfOps, rollbackSupport, requestTimeoutMillis); } } else { - return new WriteRunningTx(id, netconfOps, netconfSessionPreferences, defaultRequestTimeoutMillis); + return new WriteRunningTx(id, netconfOps, rollbackSupport, requestTimeoutMillis); } }