diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/SimulatedOperationProvider.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/SimulatedOperationProvider.java
-index 3847ce9b..eeae4434 100644
+index f2828d1..d3026b8 100644
--- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/SimulatedOperationProvider.java
+++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/SimulatedOperationProvider.java
-@@ -79,7 +79,8 @@ class SimulatedOperationProvider implements NetconfOperationServiceFactory {
+@@ -26,6 +26,7 @@ import org.opendaylight.netconf.test.tool.rpc.SimulatedDiscardChanges;
+ import org.opendaylight.netconf.test.tool.rpc.SimulatedEditConfig;
+ import org.opendaylight.netconf.test.tool.rpc.SimulatedGet;
+ import org.opendaylight.netconf.test.tool.rpc.SimulatedGetConfig;
++import org.opendaylight.netconf.test.tool.rpc.SimulatedGetConnectionPortTrail;
+ import org.opendaylight.netconf.test.tool.rpc.SimulatedLock;
+ import org.opendaylight.netconf.test.tool.rpc.SimulatedUnLock;
+
+@@ -38,19 +39,19 @@ class SimulatedOperationProvider implements NetconfOperationServiceFactory {
+ final Optional<File> notificationsFile,
+ final Optional<File> initialConfigXMLFile) {
+ this.caps = caps;
+- simulatedOperationService = new SimulatedOperationService(
++ this.simulatedOperationService = new SimulatedOperationService(
+ idProvider.getCurrentSessionId(), notificationsFile, initialConfigXMLFile);
+ }
+
+ @Override
+ public Set<Capability> getCapabilities() {
+- return caps;
++ return this.caps;
+ }
+
+ @Override
+ public AutoCloseable registerCapabilityListener(
+ final CapabilityListener listener) {
+- listener.onCapabilitiesChanged(caps, Collections.emptySet());
++ listener.onCapabilitiesChanged(this.caps, Collections.emptySet());
+ return () -> {
+ };
+ }
+@@ -58,7 +59,7 @@ class SimulatedOperationProvider implements NetconfOperationServiceFactory {
+ @Override
+ public NetconfOperationService createService(
+ final String netconfSessionIdForReporting) {
+- return simulatedOperationService;
++ return this.simulatedOperationService;
+ }
+
+ static class SimulatedOperationService implements NetconfOperationService {
+@@ -76,19 +77,24 @@ class SimulatedOperationProvider implements NetconfOperationServiceFactory {
+ @Override
+ public Set<NetconfOperation> getNetconfOperations() {
+ final DataList storage = new DataList();
+- final SimulatedGet sGet = new SimulatedGet(String.valueOf(currentSessionId), storage);
+- final SimulatedEditConfig sEditConfig = new SimulatedEditConfig(String.valueOf(currentSessionId), storage);
++ final SimulatedGet sGet = new SimulatedGet(String.valueOf(this.currentSessionId), storage,
++ this.initialConfigXMLFile);
++ final SimulatedEditConfig sEditConfig = new SimulatedEditConfig(String.valueOf(this.currentSessionId),
++ storage);
+ final SimulatedGetConfig sGetConfig = new SimulatedGetConfig(
+- String.valueOf(currentSessionId), storage, initialConfigXMLFile);
+- final SimulatedCommit sCommit = new SimulatedCommit(String.valueOf(currentSessionId));
+- final SimulatedLock sLock = new SimulatedLock(String.valueOf(currentSessionId));
+- final SimulatedUnLock sUnlock = new SimulatedUnLock(String.valueOf(currentSessionId));
++ String.valueOf(this.currentSessionId), storage, this.initialConfigXMLFile);
++ final SimulatedGetConnectionPortTrail sSimulatedConnectionPortTrail = new SimulatedGetConnectionPortTrail(
++ String.valueOf(this.currentSessionId));
++ final SimulatedCommit sCommit = new SimulatedCommit(String.valueOf(this.currentSessionId));
++ final SimulatedLock sLock = new SimulatedLock(String.valueOf(this.currentSessionId));
++ final SimulatedUnLock sUnlock = new SimulatedUnLock(String.valueOf(this.currentSessionId));
+ final SimulatedCreateSubscription sCreateSubs = new SimulatedCreateSubscription(
+- String.valueOf(currentSessionId), notificationsFile);
++ String.valueOf(this.currentSessionId), this.notificationsFile);
+ final SimulatedDiscardChanges sDiscardChanges = new SimulatedDiscardChanges(
+- String.valueOf(currentSessionId));
++ String.valueOf(this.currentSessionId));
+ return Sets.newHashSet(
+- sGet, sGetConfig, sEditConfig, sCommit, sLock, sUnlock, sCreateSubs, sDiscardChanges);
++ sGet, sGetConfig, sEditConfig, sCommit, sLock, sUnlock, sCreateSubs, sDiscardChanges,
++ sSimulatedConnectionPortTrail);
+ }
+
+ @Override
+diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/config/Configuration.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/config/Configuration.java
+index 6654425..d5bebd6 100644
+--- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/config/Configuration.java
++++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/config/Configuration.java
+@@ -95,7 +95,7 @@ public class Configuration {
+ }
+
+ public PublickeyAuthenticator getPublickeyAuthenticator() {
+- return publickeyAuthenticator;
++ return this.publickeyAuthenticator;
+ }
+
+ public void setPublickeyAuthenticator(final PublickeyAuthenticator publickeyAuthenticator) {
+@@ -103,7 +103,7 @@ public class Configuration {
+ }
+
+ public AuthProvider getAuthProvider() {
+- return authProvider;
++ return this.authProvider;
+ }
+
+ public void setAuthProvider(final AuthProvider authProvider) {
+@@ -111,7 +111,7 @@ public class Configuration {
+ }
+
+ public Set<YangResource> getDefaultYangResources() {
+- return defaultYangResources;
++ return this.defaultYangResources;
+ }
+
+ public void setDefaultYangResources(final Set<YangResource> defaultYangResources) {
+@@ -119,7 +119,7 @@ public class Configuration {
+ }
+
+ public int getThreadPoolSize() {
+- return threadPoolSize;
++ return this.threadPoolSize;
+ }
+
+ public void setThreadPoolSize(final int threadPoolSize) {
+@@ -127,7 +127,7 @@ public class Configuration {
+ }
+
+ public int getStartingPort() {
+- return startingPort;
++ return this.startingPort;
+ }
+
+ public void setStartingPort(final int startingPort) {
+@@ -135,7 +135,7 @@ public class Configuration {
+ }
+
+ public int getDeviceCount() {
+- return deviceCount;
++ return this.deviceCount;
+ }
+
+ public void setDeviceCount(final int deviceCount) {
+@@ -143,7 +143,7 @@ public class Configuration {
+ }
+
+ public int getGenerateConfigsTimeout() {
+- return generateConfigsTimeout;
++ return this.generateConfigsTimeout;
+ }
+
+ public void setGenerateConfigsTimeout(final int generateConfigsTimeout) {
+@@ -151,7 +151,7 @@ public class Configuration {
+ }
+
+ public boolean isSsh() {
+- return ssh;
++ return this.ssh;
+ }
+
+ public void setSsh(final boolean ssh) {
+@@ -159,7 +159,7 @@ public class Configuration {
+ }
+
+ public String getIp() {
+- return ip;
++ return this.ip;
+ }
+
+ public void setIp(final String ip) {
+@@ -167,7 +167,7 @@ public class Configuration {
+ }
+
+ public Set<String> getModels() {
+- return models;
++ return this.models;
+ }
+
+ public void setModels(final Set<String> models) {
+@@ -175,7 +175,7 @@ public class Configuration {
+ }
+
+ public Set<String> getCapabilities() {
+- return capabilities;
++ return this.capabilities;
+ }
+
+ public void setCapabilities(final Set<String> capabilities) {
+@@ -183,7 +183,7 @@ public class Configuration {
+ }
+
+ public RpcHandler getRpcHandler() {
+- return rpcHandler;
++ return this.rpcHandler;
+ }
+
+ public void setRpcHandler(final RpcHandler rpcHandler) {
+@@ -191,7 +191,7 @@ public class Configuration {
+ }
+
+ public OperationsCreator getOperationsCreator() {
+- return operationsCreator;
++ return this.operationsCreator;
+ }
+
+ public void setOperationsCreator(final OperationsCreator operationsCreator) {
+@@ -200,7 +200,7 @@ public class Configuration {
+
+ @Deprecated
+ public boolean isMdSal() {
+- return mdSal;
++ return this.mdSal;
+ }
+
+ @Deprecated
+@@ -210,7 +210,7 @@ public class Configuration {
+
+ @Deprecated
+ public File getRpcConfigFile() {
+- return rpcConfigFile;
++ return this.rpcConfigFile;
+ }
+
+ @Deprecated
+@@ -220,7 +220,7 @@ public class Configuration {
+
+ @Deprecated
+ public File getNotificationFile() {
+- return notificationFile;
++ return this.notificationFile;
+ }
+
+ @Deprecated
+@@ -230,7 +230,7 @@ public class Configuration {
+
+ @Deprecated
+ public File getInitialConfigXMLFile() {
+- return initialConfigXMLFile;
++ return this.initialConfigXMLFile;
+ }
+
+ @Deprecated
+@@ -240,12 +240,12 @@ public class Configuration {
+
+ @Deprecated
+ public boolean isXmlConfigurationProvided() {
+- return initialConfigXMLFile != null && notificationFile != null;
++ return this.initialConfigXMLFile != null;//&& notificationFile != null;
+ }
+
+ @Deprecated
+ public File getSchemasDir() {
+- return schemasDir;
++ return this.schemasDir;
+ }
+
+ @Deprecated
+diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/DefaultOperationsCreator.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/DefaultOperationsCreator.java
+index edfdf6e..0bc0b9d 100644
+--- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/DefaultOperationsCreator.java
++++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/operations/DefaultOperationsCreator.java
+@@ -30,14 +30,14 @@ public final class DefaultOperationsCreator implements OperationsCreator {
+ private final SimulatedOperationService simulatedOperationService;
+
+ private DefaultOperationsCreator(final long currentSessionId) {
+- simulatedOperationService = new SimulatedOperationService(currentSessionId);
++ this.simulatedOperationService = new SimulatedOperationService(currentSessionId);
+ }
+
+ @Override
+ public NetconfOperationService getNetconfOperationService(final Set<Capability> caps,
+ final SessionIdProvider idProvider,
+ final String netconfSessionIdForReporting) {
+- return simulatedOperationService;
++ return this.simulatedOperationService;
+ }
+
+ public static DefaultOperationsCreator getDefaultOperationServiceCreator(final long currentSessionId) {
+@@ -55,17 +55,19 @@ public final class DefaultOperationsCreator implements OperationsCreator {
@Override
public Set<NetconfOperation> getNetconfOperations() {
final DataList storage = new DataList();
- final SimulatedGet sGet = new SimulatedGet(String.valueOf(currentSessionId), storage);
-+ final SimulatedGet sGet = new SimulatedGet(
-+ String.valueOf(currentSessionId), storage, initialConfigXMLFile);
- final SimulatedEditConfig sEditConfig = new SimulatedEditConfig(String.valueOf(currentSessionId), storage);
+- final SimulatedEditConfig sEditConfig = new SimulatedEditConfig(String.valueOf(currentSessionId), storage);
++ final SimulatedGet sGet = new SimulatedGet(String.valueOf(this.currentSessionId), storage,
++ Optional.absent());
++ final SimulatedEditConfig sEditConfig = new SimulatedEditConfig(String.valueOf(this.currentSessionId),
++ storage);
final SimulatedGetConfig sGetConfig = new SimulatedGetConfig(
- String.valueOf(currentSessionId), storage, initialConfigXMLFile);
+- String.valueOf(currentSessionId), storage, Optional.absent());
+- final SimulatedCommit sCommit = new SimulatedCommit(String.valueOf(currentSessionId));
+- final SimulatedLock sLock = new SimulatedLock(String.valueOf(currentSessionId));
+- final SimulatedUnLock sUnlock = new SimulatedUnLock(String.valueOf(currentSessionId));
++ String.valueOf(this.currentSessionId), storage, Optional.absent());
++ final SimulatedCommit sCommit = new SimulatedCommit(String.valueOf(this.currentSessionId));
++ final SimulatedLock sLock = new SimulatedLock(String.valueOf(this.currentSessionId));
++ final SimulatedUnLock sUnlock = new SimulatedUnLock(String.valueOf(this.currentSessionId));
+ final SimulatedCreateSubscription sCreateSubs = new SimulatedCreateSubscription(
+- String.valueOf(currentSessionId), Optional.absent());
++ String.valueOf(this.currentSessionId), Optional.absent());
+ final SimulatedDiscardChanges sDiscardChanges = new SimulatedDiscardChanges(
+- String.valueOf(currentSessionId));
++ String.valueOf(this.currentSessionId));
+ return Sets.newHashSet(
+ sGet, sGetConfig, sEditConfig, sCommit, sLock, sUnlock, sCreateSubs, sDiscardChanges);
+ }
diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGet.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGet.java
-index 0f19b117..3aafa005 100644
+index e5b197d..92f71fc 100644
--- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGet.java
+++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGet.java
-@@ -9,21 +9,56 @@
+@@ -9,27 +9,62 @@
package org.opendaylight.netconf.test.tool.rpc;
import com.google.common.base.Optional;
++import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import java.io.File;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
- import org.opendaylight.controller.config.util.xml.DocumentedException;
- import org.opendaylight.controller.config.util.xml.XmlElement;
- import org.opendaylight.controller.config.util.xml.XmlUtil;
+ import org.opendaylight.netconf.api.xml.XmlElement;
import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
- import org.opendaylight.netconf.confignetconfconnector.operations.AbstractConfigNetconfOperation;
+ import org.opendaylight.netconf.api.xml.XmlUtil;
+ import org.opendaylight.netconf.util.mapping.AbstractLastNetconfOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
- public class SimulatedGet extends AbstractConfigNetconfOperation {
+ public class SimulatedGet extends AbstractLastNetconfOperation {
private final DataList storage;
-+ private static final Logger LOG = LoggerFactory
-+ .getLogger(SimulatedGet.class);
++ private static final Logger LOG = LoggerFactory.getLogger(SimulatedGet.class);
- public SimulatedGet(final String netconfSessionIdForReporting, final DataList storage) {
+ public SimulatedGet(final String netconfSessionIdForReporting, final DataList storage,
-+ final Optional<File> initialConfigXMLFile) {
- super(null, netconfSessionIdForReporting);
++ final Optional<File> initialConfigXMLFile) {
+ super(netconfSessionIdForReporting);
- this.storage = storage;
+
+ if (initialConfigXMLFile.isPresent()) {
-+ LOG.info("File is present: {}", initialConfigXMLFile.get()
-+ .getName());
++ LOG.info("File is present: {}", initialConfigXMLFile.get().getName());
+ this.storage = loadInitialConfigXMLFile(initialConfigXMLFile.get());
+ } else {
+ this.storage = storage;
+ }
+ }
+
++ @SuppressFBWarnings(value = "DLS_DEAD_LOCAL_STORE")
+ private DataList loadInitialConfigXMLFile(final File file) {
+ LOG.info("Loading initial config xml file: {}", file.getName());
+ DataList configData = new DataList();
}
@Override
+ protected Element handleWithNoSubsequentOperations(final Document document, final XmlElement operationElement) {
+ final Element element = XmlUtil.createElement(document, XmlNetconfConstants.DATA_KEY, Optional.absent());
+
+- for (final XmlElement e : storage.getConfigList()) {
++ for (final XmlElement e : this.storage.getConfigList()) {
+ final Element domElement = e.getDomElement();
+ element.appendChild(element.getOwnerDocument().importNode(domElement, true));
+ }
+diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGetConnectionPortTrail.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGetConnectionPortTrail.java
+new file mode 100644
+index 0000000..551eb71
+--- /dev/null
++++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/rpc/SimulatedGetConnectionPortTrail.java
+@@ -0,0 +1,42 @@
++/*
++ * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
++ *
++ * This program and the accompanying materials are made available under the
++ * 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.netconf.test.tool.rpc;
++
++import org.opendaylight.netconf.api.DocumentedException;
++import org.opendaylight.netconf.api.xml.XmlElement;
++import org.opendaylight.netconf.util.mapping.AbstractLastNetconfOperation;
++import org.w3c.dom.Document;
++import org.w3c.dom.Element;
++
++public class SimulatedGetConnectionPortTrail extends AbstractLastNetconfOperation {
++
++ public SimulatedGetConnectionPortTrail(final String netconfSessionIdForReporting) {
++ super(netconfSessionIdForReporting);
++ }
++
++ @Override
++ protected Element handleWithNoSubsequentOperations(Document document, XmlElement operationElement)
++ throws DocumentedException {
++ Element portname = document.createElement("port-name");
++ portname.appendChild(document.createTextNode("L1"));
++ Element circuitpackname = document.createElement("circuit-pack-name");
++ circuitpackname.appendChild(document.createTextNode("2/0"));
++ Element ports = document.createElement("ports");
++ ports.setAttribute("xmlns", "http://org/openroadm/device");
++ ports.appendChild(portname);
++ ports.appendChild(circuitpackname);
++ return ports;
++ }
++
++ @Override
++ protected String getOperationName() {
++ return "get-connection-port-trail";
++ }
++
++
++}