From: Tony Tkacik Date: Mon, 15 Dec 2014 08:06:17 +0000 (+0000) Subject: Merge "Reuse PEM provider in netconf-testtool." X-Git-Tag: release/lithium~767 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=940603a5319c9a0eff30e92f2dc83817974d7f78;hp=26d2f331053e05d830c74196fb46b90379e47492 Merge "Reuse PEM provider in netconf-testtool." --- diff --git a/features/mdsal/pom.xml b/features/mdsal/pom.xml index 6f43768a9d..d81da186b9 100644 --- a/features/mdsal/pom.xml +++ b/features/mdsal/pom.xml @@ -17,9 +17,93 @@ + - org.opendaylight.yangtools - features-yangtools + org.json + json + + + + + com.google.code.gson + gson + + + + + com.fasterxml.jackson.core + jackson-annotations + + + com.fasterxml.jackson.core + jackson-core + + + com.fasterxml.jackson.core + jackson-databind + + + com.fasterxml.jackson.datatype + jackson-datatype-json-org + + + com.fasterxml.jackson.module + jackson-module-jaxb-annotations + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-base + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-json-provider + + + + + com.sun.jersey + jersey-core + + + com.sun.jersey + jersey-server + + + com.sun.jersey + jersey-servlet + + + + + io.netty + netty-buffer + + + io.netty + netty-codec + + + io.netty + netty-codec-http + + + io.netty + netty-common + + + io.netty + netty-handler + + + io.netty + netty-transport + + + + + org.opendaylight.controller + features-akka + ${commons.opendaylight.version} features xml @@ -41,20 +125,19 @@ features xml + org.opendaylight.controller - features-akka - ${commons.opendaylight.version} - features + md-sal-config + ${mdsal.version} xml + config + org.opendaylight.controller - sal-core-api - - - org.opendaylight.controller - sal-core-api + sal-akka-raft + ${mdsal.version} org.opendaylight.controller @@ -64,21 +147,12 @@ org.opendaylight.controller sal-broker-impl - - org.opendaylight.controller - sal-dom-xsql - org.opendaylight.controller sal-karaf-xsql - - org.opendaylight.controller - sal-dom-xsql-config - config - xml - + org.opendaylight.controller sal-binding-api @@ -99,34 +173,22 @@ org.opendaylight.controller sal-connector-api + org.opendaylight.controller - sal-inmemory-datastore + sal-dom-xsql org.opendaylight.controller - md-sal-config - ${mdsal.version} - xml + sal-dom-xsql-config config + xml - - org.opendaylight.controller - sal-distributed-datastore - - - org.opendaylight.controller - sal-remoterpc-connector - + org.opendaylight.controller sal-clustering-commons - - org.opendaylight.controller - sal-akka-raft - ${mdsal.version} - org.opendaylight.controller sal-clustering-config @@ -155,72 +217,32 @@ xml config + org.opendaylight.controller - sal-netconf-connector - - - org.opendaylight.controller.model - model-inventory + sal-distributed-datastore + org.opendaylight.controller - netconf-config-dispatcher + sal-inmemory-datastore + org.opendaylight.controller - netconf-connector-config - ${netconf.version} - xml - config + sal-netconf-connector org.opendaylight.controller - sal-rest-connector - - - com.google.code.gson - gson - - - com.sun.jersey - jersey-core - - - com.sun.jersey - jersey-server - - - com.sun.jersey - jersey-servlet - - - io.netty - netty-buffer - - - io.netty - netty-codec - - - io.netty - netty-codec-http - - - io.netty - netty-common - - - io.netty - netty-handler + sal-remote - io.netty - netty-transport + org.opendaylight.controller + sal-remoterpc-connector org.opendaylight.controller - sal-remote + sal-rest-connector org.opendaylight.controller @@ -230,34 +252,27 @@ config - org.opendaylight.controller.samples - sample-toaster - - - org.opendaylight.controller.samples - sample-toaster-provider + org.opendaylight.controller + sal-rest-docgen + - org.opendaylight.controller.samples - sample-toaster-consumer + org.opendaylight.controller + netconf-config-dispatcher - org.opendaylight.controller.samples - toaster-config - ${mdsal.version} + org.opendaylight.controller + netconf-connector-config + ${netconf.version} xml config + - org.opendaylight.controller.samples - clustering-it-model - ${mdsal.version} - - - org.opendaylight.controller.samples - clustering-it-provider - ${mdsal.version} + org.opendaylight.controller.model + model-inventory + org.opendaylight.controller.samples clustering-it-config @@ -270,51 +285,55 @@ clustering-it-config ${mdsal.version} xml - testmoduleshardconf + testmoduleconf org.opendaylight.controller.samples clustering-it-config ${mdsal.version} xml - testmoduleconf - - - org.opendaylight.controller - sal-rest-docgen - - - com.fasterxml.jackson.core - jackson-annotations + testmoduleshardconf - com.fasterxml.jackson.core - jackson-core + org.opendaylight.controller.samples + clustering-it-model + ${mdsal.version} - com.fasterxml.jackson.core - jackson-databind + org.opendaylight.controller.samples + clustering-it-provider + ${mdsal.version} + + - com.fasterxml.jackson.datatype - jackson-datatype-json-org + org.opendaylight.controller.samples + sample-toaster - com.fasterxml.jackson.module - jackson-module-jaxb-annotations + org.opendaylight.controller.samples + sample-toaster-consumer - com.fasterxml.jackson.jaxrs - jackson-jaxrs-base + org.opendaylight.controller.samples + sample-toaster-provider - com.fasterxml.jackson.jaxrs - jackson-jaxrs-json-provider + org.opendaylight.controller.samples + toaster-config + ${mdsal.version} + xml + config + + - org.json - json + org.opendaylight.yangtools + features-yangtools + features + xml + org.opendaylight.yangtools @@ -420,7 +439,7 @@ org.opendaylight.controller - sal-rest-docgen + sal-rest-docgen-maven ${mdsal.version} jar @@ -434,7 +453,7 @@ src - org.opendaylight.controller.sal.rest.doc.impl.StaticDocGenerator + org.opendaylight.controller.sal.rest.doc.maven.StaticDocGenerator ${project.build.directory}/generated-resources/swagger-api-documentation/explorer/static diff --git a/opendaylight/adsal/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterManager.java b/opendaylight/adsal/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterManager.java index e34eb32933..4febcd07c1 100644 --- a/opendaylight/adsal/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterManager.java +++ b/opendaylight/adsal/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterManager.java @@ -457,7 +457,9 @@ public class ClusterManager implements IClusterServices { return null; } for (String cacheName : manager.getCacheNames()) { - if (!manager.isRunning(cacheName)) continue; + if (!manager.isRunning(cacheName)) { + continue; + } if (cacheName.startsWith("{" + containerName + "}_")) { String[] res = cacheName.split("[{}]"); if (res.length >= 4 && res[1].equals(containerName) diff --git a/opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IPHostId.java b/opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IPHostId.java index b8b54b45ba..a6314e0695 100644 --- a/opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IPHostId.java +++ b/opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IPHostId.java @@ -42,18 +42,23 @@ public class IPHostId implements IHostId, Serializable { @Override public boolean equals(Object obj) { - if (this == obj) + if (this == obj) { return true; - if (obj == null) + } + if (obj == null) { return false; - if (getClass() != obj.getClass()) + } + if (getClass() != obj.getClass()) { return false; + } IPHostId other = (IPHostId) obj; if (ipAddress == null) { - if (other.ipAddress != null) + if (other.ipAddress != null) { return false; - } else if (!ipAddress.equals(other.ipAddress)) + } + } else if (!ipAddress.equals(other.ipAddress)) { return false; + } return true; } diff --git a/opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IPMacHostId.java b/opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IPMacHostId.java index e10c5d1a78..19f3f585b1 100644 --- a/opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IPMacHostId.java +++ b/opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IPMacHostId.java @@ -56,23 +56,30 @@ public class IPMacHostId implements IHostId, Serializable { @Override public boolean equals(Object obj) { - if (this == obj) + if (this == obj) { return true; - if (obj == null) + } + if (obj == null) { return false; - if (getClass() != obj.getClass()) + } + if (getClass() != obj.getClass()) { return false; + } IPMacHostId other = (IPMacHostId) obj; if (ipAddress == null) { - if (other.ipAddress != null) + if (other.ipAddress != null) { return false; - } else if (!ipAddress.equals(other.ipAddress)) + } + } else if (!ipAddress.equals(other.ipAddress)) { return false; + } if (macAddr == null) { - if (other.macAddr != null) + if (other.macAddr != null) { return false; - } else if (!macAddr.equals(other.macAddr)) + } + } else if (!macAddr.equals(other.macAddr)) { return false; + } return true; } diff --git a/opendaylight/adsal/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/HostTrackerCallable.java b/opendaylight/adsal/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/HostTrackerCallable.java index a1d29dd27f..59b4a08464 100644 --- a/opendaylight/adsal/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/HostTrackerCallable.java +++ b/opendaylight/adsal/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/HostTrackerCallable.java @@ -44,8 +44,9 @@ public class HostTrackerCallable implements Callable { @Override public HostNodeConnector call() throws Exception { HostNodeConnector h = hostTracker.hostFind(trackedHost); - if (h != null) + if (h != null) { return h; + } hostTracker.setCallableOnPendingARP(trackedHost, this); Thread.sleep(2000); // wait 2sec to see if the host responds return hostTracker.hostQuery(trackedHost); diff --git a/opendaylight/adsal/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/Activator.java b/opendaylight/adsal/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/Activator.java index 69c81242d9..abe8618d9b 100644 --- a/opendaylight/adsal/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/Activator.java +++ b/opendaylight/adsal/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/Activator.java @@ -38,7 +38,9 @@ public class Activator extends ComponentActivatorAbstractBase { @Override protected void configureGlobalInstance(Component c, Object imp) { - if (!imp.equals(BundleScanServiceImpl.class)) return; + if (!imp.equals(BundleScanServiceImpl.class)) { + return; + } // export service c.setInterface( new String[] { IBundleScanService.class.getName() }, diff --git a/opendaylight/adsal/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/BundleInfo.java b/opendaylight/adsal/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/BundleInfo.java index 9cb1cb52ed..31c81dab7e 100644 --- a/opendaylight/adsal/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/BundleInfo.java +++ b/opendaylight/adsal/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/BundleInfo.java @@ -73,10 +73,14 @@ import org.slf4j.LoggerFactory; } private boolean matches(Pattern pattern, Set values) { - if (pattern == null) return true; + if (pattern == null) { + return true; + } //LOGGER.debug("Matching: {} {}", pattern.toString(), values); for (String s : values) { - if (pattern.matcher(s).find()) return true; + if (pattern.matcher(s).find()) { + return true; + } } return false; } @@ -130,7 +134,9 @@ import org.slf4j.LoggerFactory; Bundle initBundle, Set excludes) { for (BundleInfo other : bundlesToScan) { - if (other.getId() == target.getId()) continue; + if (other.getId() == target.getId()) { + continue; + } if (target.isDependantOn(other)) { if (!visited.contains(other)) { classes.addAll(BundleScanner.loadClasses( @@ -146,7 +152,9 @@ import org.slf4j.LoggerFactory; private boolean isDependantOn(BundleInfo other) { for (String pkg : importPkgs) { - if (other.exportPkgs.contains(pkg)) return true; + if (other.exportPkgs.contains(pkg)) { + return true; + } } return false; } @@ -154,14 +162,18 @@ import org.slf4j.LoggerFactory; public List getDependencies(Collection bundles) { List result = new ArrayList(); for(BundleInfo bundle : bundles) { - if (isDependantOn(bundle)) result.add(bundle); + if (isDependantOn(bundle)) { + result.add(bundle); + } } return result; } private static Set parsePackages(String packageString) { - if (packageString == null) return Collections.emptySet(); + if (packageString == null) { + return Collections.emptySet(); + } String[] packages = packageString.split(","); Set result = new HashSet(); for (int i=0; i> result = null; if (includeDependentBundleClasses) { @@ -254,7 +256,9 @@ import org.slf4j.LoggerFactory; StringBuilder errors = new StringBuilder(); for (String name : annotatedClasses) { try { - if (excludes != null && excludes.contains(name)) continue; + if (excludes != null && excludes.contains(name)) { + continue; + } result.add(initBundle.loadClass(name)); } catch (ClassNotFoundException e) { errors.append(name).append(", "); @@ -276,7 +280,9 @@ import org.slf4j.LoggerFactory; if (c.endsWith("*")) { c = c.substring(0, c.length() - 1); } - if (regex.length() > 0) regex.append("|"); + if (regex.length() > 0) { + regex.append("|"); + } regex.append("^"); if (convert2signature) { regex.append("L").append(c.replaceAll("\\.", "/")); @@ -291,12 +297,16 @@ import org.slf4j.LoggerFactory; } private void validate(List> classes) { - if (classes == null || classes.size() == 0) return; + if (classes == null || classes.size() == 0) { + return; + } Map names = new HashMap(); StringBuilder conflictsMsg = new StringBuilder(); for (Class c : classes) { XmlRootElement root = c.getAnnotation(XmlRootElement.class); - if (root == null) continue; + if (root == null) { + continue; + } String rootName = root.name(); if ("##default".equals(rootName)) { String clsName = c.getSimpleName(); diff --git a/opendaylight/adsal/northbound/connectionmanager/src/main/java/org/opendaylight/controller/connectionmanager/northbound/ConnectionManagerNorthbound.java b/opendaylight/adsal/northbound/connectionmanager/src/main/java/org/opendaylight/controller/connectionmanager/northbound/ConnectionManagerNorthbound.java index dde3210928..3f64b07ab6 100644 --- a/opendaylight/adsal/northbound/connectionmanager/src/main/java/org/opendaylight/controller/connectionmanager/northbound/ConnectionManagerNorthbound.java +++ b/opendaylight/adsal/northbound/connectionmanager/src/main/java/org/opendaylight/controller/connectionmanager/northbound/ConnectionManagerNorthbound.java @@ -62,7 +62,9 @@ public class ConnectionManagerNorthbound { } @Context public void setSecurityContext(SecurityContext context) { - if (context != null && context.getUserPrincipal() != null) username = context.getUserPrincipal().getName(); + if (context != null && context.getUserPrincipal() != null) { + username = context.getUserPrincipal().getName(); + } } protected String getUserName() { return username; diff --git a/opendaylight/adsal/northbound/hosttracker/src/main/java/org/opendaylight/controller/hosttracker/northbound/HostTrackerNorthbound.java b/opendaylight/adsal/northbound/hosttracker/src/main/java/org/opendaylight/controller/hosttracker/northbound/HostTrackerNorthbound.java index d7579c82e1..3769cc7818 100644 --- a/opendaylight/adsal/northbound/hosttracker/src/main/java/org/opendaylight/controller/hosttracker/northbound/HostTrackerNorthbound.java +++ b/opendaylight/adsal/northbound/hosttracker/src/main/java/org/opendaylight/controller/hosttracker/northbound/HostTrackerNorthbound.java @@ -83,7 +83,9 @@ public class HostTrackerNorthbound { @Context public void setSecurityContext(SecurityContext context) { - if (context != null && context.getUserPrincipal() != null) username = context.getUserPrincipal().getName(); + if (context != null && context.getUserPrincipal() != null) { + username = context.getUserPrincipal().getName(); + } } protected String getUserName() { diff --git a/opendaylight/adsal/northbound/networkconfiguration/bridgedomain/src/main/java/org/opendaylight/controller/networkconfig/bridgedomain/northbound/BridgeDomainNorthbound.java b/opendaylight/adsal/northbound/networkconfiguration/bridgedomain/src/main/java/org/opendaylight/controller/networkconfig/bridgedomain/northbound/BridgeDomainNorthbound.java index 9ddba67e25..8aea7e57f8 100644 --- a/opendaylight/adsal/northbound/networkconfiguration/bridgedomain/src/main/java/org/opendaylight/controller/networkconfig/bridgedomain/northbound/BridgeDomainNorthbound.java +++ b/opendaylight/adsal/northbound/networkconfiguration/bridgedomain/src/main/java/org/opendaylight/controller/networkconfig/bridgedomain/northbound/BridgeDomainNorthbound.java @@ -54,7 +54,9 @@ public class BridgeDomainNorthbound { @Context public void setSecurityContext(SecurityContext context) { - if (context != null && context.getUserPrincipal() != null) username = context.getUserPrincipal().getName(); + if (context != null && context.getUserPrincipal() != null) { + username = context.getUserPrincipal().getName(); + } } protected String getUserName() { return username; diff --git a/opendaylight/adsal/northbound/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/northbound/StaticRoutingNorthbound.java b/opendaylight/adsal/northbound/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/northbound/StaticRoutingNorthbound.java index 20f6cb40a5..de291d6d96 100644 --- a/opendaylight/adsal/northbound/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/northbound/StaticRoutingNorthbound.java +++ b/opendaylight/adsal/northbound/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/northbound/StaticRoutingNorthbound.java @@ -88,7 +88,9 @@ public class StaticRoutingNorthbound { @Context public void setSecurityContext(SecurityContext context) { - if (context != null && context.getUserPrincipal() != null) username = context.getUserPrincipal().getName(); + if (context != null && context.getUserPrincipal() != null) { + username = context.getUserPrincipal().getName(); + } } protected String getUserName() { return username; diff --git a/opendaylight/adsal/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/StatisticsNorthbound.java b/opendaylight/adsal/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/StatisticsNorthbound.java index 4175f1e3c4..ad9d1269e5 100644 --- a/opendaylight/adsal/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/StatisticsNorthbound.java +++ b/opendaylight/adsal/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/StatisticsNorthbound.java @@ -70,7 +70,9 @@ public class StatisticsNorthbound { } @Context public void setSecurityContext(SecurityContext context) { - if (context != null && context.getUserPrincipal() != null) username = context.getUserPrincipal().getName(); + if (context != null && context.getUserPrincipal() != null) { + username = context.getUserPrincipal().getName(); + } } protected String getUserName() { diff --git a/opendaylight/adsal/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/StubNodeFactory.java b/opendaylight/adsal/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/StubNodeFactory.java index c5a9de3032..439519fa41 100644 --- a/opendaylight/adsal/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/StubNodeFactory.java +++ b/opendaylight/adsal/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/StubNodeFactory.java @@ -11,45 +11,44 @@ import org.opendaylight.controller.sal.core.ConstructionException; import org.opendaylight.controller.sal.utils.INodeFactory; import org.opendaylight.controller.sal.core.Node; -public class StubNodeFactory implements INodeFactory - { - void init() { - } +public class StubNodeFactory implements INodeFactory { + void init() { + } - /** - * Function called by the dependency manager when at least one dependency - * become unsatisfied or when the component is shutting down because for - * example bundle is being stopped. - * - */ - void destroy() { - } + /** + * Function called by the dependency manager when at least one dependency + * become unsatisfied or when the component is shutting down because for + * example bundle is being stopped. + * + */ + void destroy() { + } - /** - * Function called by dependency manager after "init ()" is called and after - * the services provided by the class are registered in the service registry - * - */ - void start() { - } + /** + * Function called by dependency manager after "init ()" is called and after + * the services provided by the class are registered in the service registry + * + */ + void start() { + } - /** - * Function called by the dependency manager before the services exported by - * the component are unregistered, this will be followed by a "destroy ()" - * calls - * - */ - void stop() { - } + /** + * Function called by the dependency manager before the services exported by + * the component are unregistered, this will be followed by a "destroy ()" + * calls + * + */ + void stop() { + } - public Node fromString(String nodeType, String nodeId){ - if(nodeType.equals("STUB")) - try{ - return new Node("STUB", Integer.parseInt(nodeId)); - } catch(ConstructionException e) - { - return null; - } - return null; - } + public Node fromString(String nodeType, String nodeId){ + if(nodeType.equals("STUB")) { + try { + return new Node("STUB", Integer.parseInt(nodeId)); + } catch(ConstructionException e) { + return null; + } + } + return null; + } } diff --git a/opendaylight/adsal/sal/connection/implementation/src/main/java/org/opendaylight/controller/sal/connection/implementation/internal/ConnectionService.java b/opendaylight/adsal/sal/connection/implementation/src/main/java/org/opendaylight/controller/sal/connection/implementation/internal/ConnectionService.java index 5a637b7999..c73607ae83 100644 --- a/opendaylight/adsal/sal/connection/implementation/src/main/java/org/opendaylight/controller/sal/connection/implementation/internal/ConnectionService.java +++ b/opendaylight/adsal/sal/connection/implementation/src/main/java/org/opendaylight/controller/sal/connection/implementation/internal/ConnectionService.java @@ -103,7 +103,9 @@ public class ConnectionService implements IPluginOutConnectionService, IConnecti @Override public ConnectionLocality getLocalityStatus(Node node) { - if (this.connectionListener == null) return ConnectionLocality.NOT_CONNECTED; + if (this.connectionListener == null) { + return ConnectionLocality.NOT_CONNECTED; + } return connectionListener.getLocalityStatus(node); } @@ -133,7 +135,9 @@ public class ConnectionService implements IPluginOutConnectionService, IConnecti @Override public Status disconnect(Node node) { IPluginInConnectionService s = pluginService.get(node.getType()); - if (s != null) return s.disconnect(node); + if (s != null) { + return s.disconnect(node); + } return new Status(StatusCode.NOTFOUND); } diff --git a/opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/ConfigManager.java b/opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/ConfigManager.java index 77d03aa122..e7b261c8a2 100644 --- a/opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/ConfigManager.java +++ b/opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/ConfigManager.java @@ -176,17 +176,19 @@ public class ConfigManager implements IConfigManager{ @Override public boolean memberExists(String name, String poolName) { - if(this.pools.containsKey(poolName)){ - if(this.pools.get(poolName).getMember(name) != null ) + if (this.pools.containsKey(poolName)) { + if (this.pools.get(poolName).getMember(name) != null) { return true; + } } return false; } @Override - public boolean memberExists(String name, String memberIP,String poolName){ - if(!this.pools.containsKey(poolName)) + public boolean memberExists(String name, String memberIP,String poolName) { + if (!this.pools.containsKey(poolName)) { return false; + } return this.pools.get(poolName).poolMemberExists(new PoolMember(name, memberIP, poolName)); } diff --git a/opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/internal/LoadBalancerService.java b/opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/internal/LoadBalancerService.java index e1a997b44c..b4836e9f17 100644 --- a/opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/internal/LoadBalancerService.java +++ b/opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/internal/LoadBalancerService.java @@ -146,8 +146,9 @@ public class LoadBalancerService implements IListenDataPacket, IConfigManager { * requires */ public String getContainerName() { - if (containerName == null) + if (containerName == null) { return GlobalConstants.DEFAULT.toString(); + } return containerName; } diff --git a/opendaylight/adsal/usermanager/implementation/src/main/java/org/opendaylight/controller/usermanager/internal/UserManager.java b/opendaylight/adsal/usermanager/implementation/src/main/java/org/opendaylight/controller/usermanager/internal/UserManager.java index 3f6ac4a8c7..e7394f9262 100644 --- a/opendaylight/adsal/usermanager/implementation/src/main/java/org/opendaylight/controller/usermanager/internal/UserManager.java +++ b/opendaylight/adsal/usermanager/implementation/src/main/java/org/opendaylight/controller/usermanager/internal/UserManager.java @@ -278,7 +278,9 @@ public class UserManager implements IUserManager, IObjectReader, private String checkPasswordRecovery() { final String fileDescription = "Default Network Administrator password recovery file"; File recoveryFile = new File(UserManager.RECOVERY_FILE); - if (!recoveryFile.exists()) return null; + if (!recoveryFile.exists()) { + return null; + } // read the recovery file String pwd = null; try { diff --git a/opendaylight/adsal/web/root/pom.xml b/opendaylight/adsal/web/root/pom.xml index faede10e2d..3d633b6c65 100644 --- a/opendaylight/adsal/web/root/pom.xml +++ b/opendaylight/adsal/web/root/pom.xml @@ -24,6 +24,10 @@ junit junit + + commons-io + commons-io + org.opendaylight.controller clustering.services @@ -90,6 +94,7 @@ javax.servlet.resources, javax.xml.parsers, javax.xml.transform, + org.apache.commons.io, org.apache.commons.logging, org.apache.taglibs.standard.functions, org.apache.taglibs.standard.resources, diff --git a/opendaylight/adsal/web/root/src/main/java/org/opendaylight/controller/web/DaylightWeb.java b/opendaylight/adsal/web/root/src/main/java/org/opendaylight/controller/web/DaylightWeb.java index ca37f4b7c1..090efec31e 100644 --- a/opendaylight/adsal/web/root/src/main/java/org/opendaylight/controller/web/DaylightWeb.java +++ b/opendaylight/adsal/web/root/src/main/java/org/opendaylight/controller/web/DaylightWeb.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. + * Copyright (c) 2013, 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, @@ -9,6 +9,7 @@ package org.opendaylight.controller.web; import java.io.FileInputStream; +import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Properties; @@ -18,6 +19,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import org.apache.commons.io.IOUtils; import org.opendaylight.controller.configuration.IConfigurationContainerService; import org.opendaylight.controller.configuration.IConfigurationService; import org.opendaylight.controller.containermanager.IContainerAuthorization; @@ -65,11 +67,17 @@ public class DaylightWeb { @ResponseBody public String getVersion(HttpServletRequest request, @PathVariable("property") String property) { Properties prop = new Properties(); + FileInputStream propertiesFile = null; try { - prop.load(new FileInputStream("version.properties")); + propertiesFile = new FileInputStream("version.properties"); + prop.load(propertiesFile); return prop.getProperty(property+".version"); - } catch (Exception e) { + } catch (IOException e) { + // TODO: We should be logging the exception here + // "Failed to open version.properties." return null; + } finally { + IOUtils.closeQuietly(propertiesFile); } } @RequestMapping(value = "web.json") diff --git a/opendaylight/commons/liblldp/src/main/java/org/opendaylight/controller/liblldp/BitBufferHelper.java b/opendaylight/commons/liblldp/src/main/java/org/opendaylight/controller/liblldp/BitBufferHelper.java index 3eae43212f..fc515e109d 100644 --- a/opendaylight/commons/liblldp/src/main/java/org/opendaylight/controller/liblldp/BitBufferHelper.java +++ b/opendaylight/commons/liblldp/src/main/java/org/opendaylight/controller/liblldp/BitBufferHelper.java @@ -359,8 +359,9 @@ public abstract class BitBufferHelper { int value = 0; for (int i = 0; i < length; i++) { value = array[i]; - if (value < 0) + if (value < 0) { value += 256; + } ret = ret | (long) ((long) value << ((length - i - 1) * NetUtils.NumBitsInAByte)); } @@ -390,8 +391,9 @@ public abstract class BitBufferHelper { for (int i = startOffset; i < array.length; i++) { value = array[i]; - if (value < 0) + if (value < 0) { value += 256; + } ret = ret | (long) ((long) value << ((array.length - i - 1) * NetUtils.NumBitsInAByte)); } @@ -637,8 +639,9 @@ public abstract class BitBufferHelper { } } else { for (i = 0; i < numBytes; i++) { - if (i != 0) + if (i != 0) { InputLSBbits = (inputdata[i - 1] & getLSBMask(extraOffsetBits)); + } InputMSBbits = (byte) (inputdata[i] & (getMSBMask(NetUtils.NumBitsInAByte - extraOffsetBits))); InputMSBbits = (InputMSBbits >= 0) ? InputMSBbits @@ -648,16 +651,18 @@ public abstract class BitBufferHelper { InputMSBbits = InputLSBbits = 0; } if (RestBits < (NetUtils.NumBitsInAByte - extraOffsetBits)) { - if (numBytes != 0) + if (numBytes != 0) { InputLSBbits = (inputdata[i - 1] & getLSBMask(extraOffsetBits)); + } InputMSBbits = (byte) (inputdata[i] & (getMSBMask(RestBits))); InputMSBbits = (InputMSBbits >= 0) ? InputMSBbits : InputMSBbits + 256; data[startByteOffset + i] = (byte) ((data[startByteOffset + i]) | (InputLSBbits << (NetUtils.NumBitsInAByte - extraOffsetBits)) | (InputMSBbits >> extraOffsetBits)); } else if (RestBits == (NetUtils.NumBitsInAByte - extraOffsetBits)) { - if (numBytes != 0) + if (numBytes != 0) { InputLSBbits = (inputdata[i - 1] & getLSBMask(extraOffsetBits)); + } InputMSBbits = (byte) (inputdata[i] & (getMSBMask(NetUtils.NumBitsInAByte - extraOffsetBits))); InputMSBbits = (InputMSBbits >= 0) ? InputMSBbits @@ -665,8 +670,9 @@ public abstract class BitBufferHelper { data[startByteOffset + i] = (byte) (data[startByteOffset + i] | (InputLSBbits << (NetUtils.NumBitsInAByte - extraOffsetBits)) | (InputMSBbits >> extraOffsetBits)); } else { - if (numBytes != 0) + if (numBytes != 0) { InputLSBbits = (inputdata[i - 1] & getLSBMask(extraOffsetBits)); + } InputMSBbits = (byte) (inputdata[i] & (getMSBMask(NetUtils.NumBitsInAByte - extraOffsetBits))); InputMSBbits = (InputMSBbits >= 0) ? InputMSBbits diff --git a/opendaylight/commons/liblldp/src/main/java/org/opendaylight/controller/liblldp/DataLinkAddress.java b/opendaylight/commons/liblldp/src/main/java/org/opendaylight/controller/liblldp/DataLinkAddress.java index d617c05a5a..cf56aebe60 100644 --- a/opendaylight/commons/liblldp/src/main/java/org/opendaylight/controller/liblldp/DataLinkAddress.java +++ b/opendaylight/commons/liblldp/src/main/java/org/opendaylight/controller/liblldp/DataLinkAddress.java @@ -74,18 +74,23 @@ abstract public class DataLinkAddress implements Serializable { @Override public boolean equals(Object obj) { - if (this == obj) + if (this == obj) { return true; - if (obj == null) + } + if (obj == null) { return false; - if (getClass() != obj.getClass()) + } + if (getClass() != obj.getClass()) { return false; + } DataLinkAddress other = (DataLinkAddress) obj; if (name == null) { - if (other.name != null) + if (other.name != null) { return false; - } else if (!name.equals(other.name)) + } + } else if (!name.equals(other.name)) { return false; + } return true; } diff --git a/opendaylight/commons/liblldp/src/main/java/org/opendaylight/controller/liblldp/EthernetAddress.java b/opendaylight/commons/liblldp/src/main/java/org/opendaylight/controller/liblldp/EthernetAddress.java index b7b72cbffd..8c5f8b9ffd 100644 --- a/opendaylight/commons/liblldp/src/main/java/org/opendaylight/controller/liblldp/EthernetAddress.java +++ b/opendaylight/commons/liblldp/src/main/java/org/opendaylight/controller/liblldp/EthernetAddress.java @@ -99,15 +99,19 @@ public class EthernetAddress extends DataLinkAddress { @Override public boolean equals(Object obj) { - if (this == obj) + if (this == obj) { return true; - if (!super.equals(obj)) + } + if (!super.equals(obj)) { return false; - if (getClass() != obj.getClass()) + } + if (getClass() != obj.getClass()) { return false; + } EthernetAddress other = (EthernetAddress) obj; - if (!Arrays.equals(macAddress, other.macAddress)) + if (!Arrays.equals(macAddress, other.macAddress)) { return false; + } return true; } diff --git a/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/AbstractProtocolSession.java b/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/AbstractProtocolSession.java index 47e96d1ff4..af196a941a 100644 --- a/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/AbstractProtocolSession.java +++ b/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/AbstractProtocolSession.java @@ -37,6 +37,12 @@ public abstract class AbstractProtocolSession extends SimpleChannelInboundHan public final void channelInactive(final ChannelHandlerContext ctx) { LOG.debug("Channel {} inactive.", ctx.channel()); endOfInput(); + try { + // Forward channel inactive event, all handlers in pipeline might be interested in the event e.g. close channel handler of reconnect promise + super.channelInactive(ctx); + } catch (final Exception e) { + throw new RuntimeException("Failed to delegate channel inactive event on channel " + ctx.channel(), e); + } } @Override diff --git a/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/ReconnectPromise.java b/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/ReconnectPromise.java index b2ab27a826..aaec95a74b 100644 --- a/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/ReconnectPromise.java +++ b/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/ReconnectPromise.java @@ -47,13 +47,12 @@ final class ReconnectPromise, L extends SessionList pending = this.dispatcher.createClient(this.address, cs, b, new AbstractDispatcher.PipelineInitializer() { @Override public void initializeChannel(final SocketChannel channel, final Promise promise) { - // add closed channel handler - // This handler has to be added before initializer.initializeChannel is called - // Initializer might add some handlers using addFirst e.g. AsyncSshHandler and in that case - // closed channel handler is before the handler that invokes channel inactive event - channel.pipeline().addFirst(new ClosedChannelHandler(ReconnectPromise.this)); - initializer.initializeChannel(channel, promise); + // add closed channel handler + // This handler has to be added as last channel handler and the channel inactive event has to be caught by it + // Handlers in front of it can react to channelInactive event, but have to forward the event or the reconnect will not work + // This handler is last so all handlers in front of it can handle channel inactive (to e.g. resource cleanup) before a new connection is started + channel.pipeline().addLast(new ClosedChannelHandler(ReconnectPromise.this)); } }); } @@ -91,9 +90,7 @@ final class ReconnectPromise, L extends SessionList @Override public void channelInactive(final ChannelHandlerContext ctx) throws Exception { - // Pass info about disconnect further and then reconnect - super.channelInactive(ctx); - + // This is the ultimate channel inactive handler, not forwarding if (promise.isCancelled()) { return; } diff --git a/opendaylight/config/config-persister-file-xml-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/xml/XmlFileStorageAdapter.java b/opendaylight/config/config-persister-file-xml-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/xml/XmlFileStorageAdapter.java index 7badc4b294..8bd420865c 100644 --- a/opendaylight/config/config-persister-file-xml-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/xml/XmlFileStorageAdapter.java +++ b/opendaylight/config/config-persister-file-xml-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/xml/XmlFileStorageAdapter.java @@ -52,8 +52,9 @@ public class XmlFileStorageAdapter implements StorageAdapter, Persister { LOG.debug("Storage file does not exist, creating empty file"); try { boolean result = storage.createNewFile(); - if (result == false) + if (result == false) { throw new RuntimeException("Unable to create storage file " + storage); + } } catch (IOException e) { throw new RuntimeException("Unable to create storage file " + storage, e); } diff --git a/opendaylight/config/config-persister-file-xml-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/xml/model/Config.java b/opendaylight/config/config-persister-file-xml-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/xml/model/Config.java index 354c8c0540..e629d20db5 100644 --- a/opendaylight/config/config-persister-file-xml-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/xml/model/Config.java +++ b/opendaylight/config/config-persister-file-xml-adapter/src/main/java/org/opendaylight/controller/config/persist/storage/file/xml/model/Config.java @@ -65,8 +65,9 @@ public final class Config { } public static Config fromXml(File from) { - if(isEmpty(from)) + if(isEmpty(from)) { return new Config(); + } try { JAXBContext jaxbContext = JAXBContext.newInstance(Config.class); diff --git a/opendaylight/config/logback-config/src/main/java/org/opendaylight/controller/config/yang/logback/config/LogbackStatusListener.java b/opendaylight/config/logback-config/src/main/java/org/opendaylight/controller/config/yang/logback/config/LogbackStatusListener.java index 8111136cfc..720f33d794 100644 --- a/opendaylight/config/logback-config/src/main/java/org/opendaylight/controller/config/yang/logback/config/LogbackStatusListener.java +++ b/opendaylight/config/logback-config/src/main/java/org/opendaylight/controller/config/yang/logback/config/LogbackStatusListener.java @@ -106,8 +106,9 @@ public class LogbackStatusListener implements StatusListener, LogbackRuntimeMXBe @Override public void close() throws IOException { - if (reg != null) + if (reg != null) { reg.close(); + } unregisterFromLogback(); } diff --git a/opendaylight/config/netty-timer-config/src/main/java/org/opendaylight/controller/config/yang/netty/timer/HashedWheelTimerModule.java b/opendaylight/config/netty-timer-config/src/main/java/org/opendaylight/controller/config/yang/netty/timer/HashedWheelTimerModule.java index e65a4d335e..60ad4c8a96 100644 --- a/opendaylight/config/netty-timer-config/src/main/java/org/opendaylight/controller/config/yang/netty/timer/HashedWheelTimerModule.java +++ b/opendaylight/config/netty-timer-config/src/main/java/org/opendaylight/controller/config/yang/netty/timer/HashedWheelTimerModule.java @@ -21,10 +21,8 @@ import io.netty.util.HashedWheelTimer; import io.netty.util.Timeout; import io.netty.util.Timer; import io.netty.util.TimerTask; - import java.util.Set; import java.util.concurrent.TimeUnit; - import org.opendaylight.controller.config.api.JmxAttributeValidationException; /** diff --git a/opendaylight/config/netty-timer-config/src/test/java/org/opendaylight/controller/config/yang/netty/timer/HashedWheelTimerModuleTest.java b/opendaylight/config/netty-timer-config/src/test/java/org/opendaylight/controller/config/yang/netty/timer/HashedWheelTimerModuleTest.java index 578476f0f7..6ffeb0490d 100644 --- a/opendaylight/config/netty-timer-config/src/test/java/org/opendaylight/controller/config/yang/netty/timer/HashedWheelTimerModuleTest.java +++ b/opendaylight/config/netty-timer-config/src/test/java/org/opendaylight/controller/config/yang/netty/timer/HashedWheelTimerModuleTest.java @@ -9,6 +9,7 @@ package org.opendaylight.controller.config.yang.netty.timer; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; + import javax.management.InstanceAlreadyExistsException; import javax.management.InstanceNotFoundException; import javax.management.ObjectName; diff --git a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/CloseableAsyncEventBus.java b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/CloseableAsyncEventBus.java index 93a08daa5d..f460cb0021 100644 --- a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/CloseableAsyncEventBus.java +++ b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/CloseableAsyncEventBus.java @@ -11,10 +11,8 @@ package org.opendaylight.controller.config.threadpool.util; import com.google.common.eventbus.AsyncEventBus; import com.google.common.eventbus.DeadEvent; import com.google.common.eventbus.Subscribe; - import java.io.Closeable; import java.io.IOException; - import org.opendaylight.controller.config.threadpool.ThreadPool; import org.opendaylight.controller.config.yang.threadpool.impl.AsyncEventBusRuntimeMXBean; import org.opendaylight.controller.config.yang.threadpool.impl.AsyncEventBusRuntimeRegistration; diff --git a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/CloseableEventBus.java b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/CloseableEventBus.java index b6dd77dbf3..b56f0e490a 100644 --- a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/CloseableEventBus.java +++ b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/CloseableEventBus.java @@ -8,16 +8,14 @@ package org.opendaylight.controller.config.threadpool.util; +import com.google.common.eventbus.DeadEvent; +import com.google.common.eventbus.EventBus; +import com.google.common.eventbus.Subscribe; import java.io.Closeable; - import org.opendaylight.controller.config.yang.threadpool.impl.EventBusRuntimeMXBean; import org.opendaylight.controller.config.yang.threadpool.impl.EventBusRuntimeRegistration; import org.opendaylight.controller.config.yang.threadpool.impl.EventBusRuntimeRegistrator; -import com.google.common.eventbus.DeadEvent; -import com.google.common.eventbus.EventBus; -import com.google.common.eventbus.Subscribe; - /** * Closeable {@link EventBus}. */ diff --git a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/FixedThreadPoolWrapper.java b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/FixedThreadPoolWrapper.java index ca034434d5..2dad26490b 100644 --- a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/FixedThreadPoolWrapper.java +++ b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/FixedThreadPoolWrapper.java @@ -13,7 +13,6 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; - import org.opendaylight.controller.config.threadpool.ThreadPool; /** diff --git a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/FlexibleThreadPoolWrapper.java b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/FlexibleThreadPoolWrapper.java index 5036399828..d013a0a4b8 100644 --- a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/FlexibleThreadPoolWrapper.java +++ b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/FlexibleThreadPoolWrapper.java @@ -8,6 +8,7 @@ package org.opendaylight.controller.config.threadpool.util; +import com.google.common.base.Optional; import java.io.Closeable; import java.io.IOException; import java.util.concurrent.BlockingQueue; @@ -19,11 +20,8 @@ import java.util.concurrent.RejectedExecutionHandler; import java.util.concurrent.ThreadFactory; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; - import org.opendaylight.controller.config.threadpool.ThreadPool; -import com.google.common.base.Optional; - /** * Implementation of {@link ThreadPool} using flexible number of threads wraps * {@link ExecutorService}. diff --git a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/NamingThreadPoolFactory.java b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/NamingThreadPoolFactory.java index 2e27d6cce8..608d3a5dfd 100644 --- a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/NamingThreadPoolFactory.java +++ b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/NamingThreadPoolFactory.java @@ -8,15 +8,13 @@ package org.opendaylight.controller.config.threadpool.util; +import com.google.common.base.Preconditions; import java.io.Closeable; import java.io.IOException; import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicLong; - import javax.annotation.concurrent.ThreadSafe; -import com.google.common.base.Preconditions; - /** * Implementation of {@link ThreadFactory}. */ diff --git a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/ScheduledThreadPoolWrapper.java b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/ScheduledThreadPoolWrapper.java index ee3399e1b2..648bd82ab0 100644 --- a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/ScheduledThreadPoolWrapper.java +++ b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/threadpool/util/ScheduledThreadPoolWrapper.java @@ -13,7 +13,6 @@ import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.ThreadFactory; - import org.opendaylight.controller.config.threadpool.ScheduledThreadPool; /** diff --git a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/yang/threadpool/impl/flexible/FlexibleThreadPoolModule.java b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/yang/threadpool/impl/flexible/FlexibleThreadPoolModule.java index d6abe168fb..eb40073db6 100644 --- a/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/yang/threadpool/impl/flexible/FlexibleThreadPoolModule.java +++ b/opendaylight/config/threadpool-config-impl/src/main/java/org/opendaylight/controller/config/yang/threadpool/impl/flexible/FlexibleThreadPoolModule.java @@ -19,7 +19,6 @@ package org.opendaylight.controller.config.yang.threadpool.impl.flexible; import com.google.common.base.Optional; import java.util.concurrent.TimeUnit; - import org.opendaylight.controller.config.api.JmxAttributeValidationException; import org.opendaylight.controller.config.threadpool.util.FlexibleThreadPoolWrapper; diff --git a/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/async/AsyncEventBusConfigBeanTest.java b/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/async/AsyncEventBusConfigBeanTest.java index 92b81220ff..89a0182d00 100644 --- a/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/async/AsyncEventBusConfigBeanTest.java +++ b/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/async/AsyncEventBusConfigBeanTest.java @@ -13,7 +13,6 @@ import static org.junit.Assert.fail; import javax.management.InstanceAlreadyExistsException; import javax.management.ObjectName; - import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.config.api.ConflictingVersionException; diff --git a/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/eventbus/SyncEventBusConfigBeanTest.java b/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/eventbus/SyncEventBusConfigBeanTest.java index 6d0449cf5a..ed3ede01c6 100644 --- a/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/eventbus/SyncEventBusConfigBeanTest.java +++ b/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/eventbus/SyncEventBusConfigBeanTest.java @@ -7,6 +7,13 @@ */ package org.opendaylight.controller.config.threadpool.eventbus; +import static org.hamcrest.CoreMatchers.containsString; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.fail; + +import javax.management.InstanceAlreadyExistsException; +import javax.management.ObjectName; import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.config.api.ConflictingVersionException; @@ -17,14 +24,6 @@ import org.opendaylight.controller.config.manager.impl.factoriesresolver.Hardcod import org.opendaylight.controller.config.util.ConfigTransactionJMXClient; import org.opendaylight.controller.config.yang.threadpool.impl.EventBusModuleFactory; -import javax.management.InstanceAlreadyExistsException; -import javax.management.ObjectName; - -import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.fail; - public class SyncEventBusConfigBeanTest extends AbstractConfigTest { private EventBusModuleFactory factory; diff --git a/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/fixed/FixedThreadPoolConfigBeanTest.java b/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/fixed/FixedThreadPoolConfigBeanTest.java index f968e287c2..64e83a544f 100644 --- a/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/fixed/FixedThreadPoolConfigBeanTest.java +++ b/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/fixed/FixedThreadPoolConfigBeanTest.java @@ -36,7 +36,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class FixedThreadPoolConfigBeanTest extends AbstractConfigTest { - private static final Logger logger = LoggerFactory.getLogger(FixedThreadPoolConfigBeanTest.class); + private static final Logger LOG = LoggerFactory.getLogger(FixedThreadPoolConfigBeanTest.class); private FixedThreadPoolModuleFactory factory; private final String nameInstance = "fixedInstance"; @@ -107,7 +107,7 @@ public class FixedThreadPoolConfigBeanTest extends AbstractConfigTest { result++; } } - logger.info("Current threads {}", names); + LOG.info("Current threads {}", names); return result; } diff --git a/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/fixed/TestingFixedThreadPoolModule.java b/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/fixed/TestingFixedThreadPoolModule.java index 03cf9d63a2..d6171263af 100644 --- a/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/fixed/TestingFixedThreadPoolModule.java +++ b/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/fixed/TestingFixedThreadPoolModule.java @@ -12,7 +12,6 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import java.util.concurrent.ExecutorService; - import org.opendaylight.controller.config.api.DynamicMBeanWithInstance; import org.opendaylight.controller.config.api.ModuleIdentifier; import org.opendaylight.controller.config.manager.impl.AbstractMockedModule; diff --git a/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/flexible/FlexibleThreadPoolConfigBeanTest.java b/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/flexible/FlexibleThreadPoolConfigBeanTest.java index 9ae721ee87..e40a0cbe3c 100644 --- a/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/flexible/FlexibleThreadPoolConfigBeanTest.java +++ b/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/flexible/FlexibleThreadPoolConfigBeanTest.java @@ -7,6 +7,13 @@ */ package org.opendaylight.controller.config.threadpool.flexible; +import static org.hamcrest.CoreMatchers.containsString; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.fail; + +import javax.management.InstanceAlreadyExistsException; +import javax.management.InstanceNotFoundException; +import javax.management.ObjectName; import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.config.api.ConflictingVersionException; @@ -20,14 +27,6 @@ import org.opendaylight.controller.config.yang.threadpool.impl.NamingThreadFacto import org.opendaylight.controller.config.yang.threadpool.impl.flexible.FlexibleThreadPoolModuleFactory; import org.opendaylight.controller.config.yang.threadpool.impl.flexible.FlexibleThreadPoolModuleMXBean; -import javax.management.InstanceAlreadyExistsException; -import javax.management.InstanceNotFoundException; -import javax.management.ObjectName; - -import static org.hamcrest.CoreMatchers.containsString; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.fail; - public class FlexibleThreadPoolConfigBeanTest extends AbstractConfigTest { private FlexibleThreadPoolModuleFactory flexibleFactory; diff --git a/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/naming/TestingNamingThreadPoolFactoryModule.java b/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/naming/TestingNamingThreadPoolFactoryModule.java index 47613bfb1b..37fb839070 100644 --- a/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/naming/TestingNamingThreadPoolFactoryModule.java +++ b/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/naming/TestingNamingThreadPoolFactoryModule.java @@ -14,7 +14,6 @@ import static org.mockito.Mockito.mock; import java.io.Closeable; import java.io.IOException; - import org.opendaylight.controller.config.api.DynamicMBeanWithInstance; import org.opendaylight.controller.config.api.ModuleIdentifier; import org.opendaylight.controller.config.spi.Module; diff --git a/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/scheduled/TestingScheduledThreadPoolModule.java b/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/scheduled/TestingScheduledThreadPoolModule.java index 2ba1b3b20d..157380d483 100644 --- a/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/scheduled/TestingScheduledThreadPoolModule.java +++ b/opendaylight/config/threadpool-config-impl/src/test/java/org/opendaylight/controller/config/threadpool/scheduled/TestingScheduledThreadPoolModule.java @@ -7,7 +7,18 @@ */ package org.opendaylight.controller.config.threadpool.scheduled; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyBoolean; +import static org.mockito.Matchers.anyLong; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; + import com.google.common.util.concurrent.ListenableFutureTask; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; +import javax.management.ObjectName; import org.opendaylight.controller.config.api.DynamicMBeanWithInstance; import org.opendaylight.controller.config.api.ModuleIdentifier; import org.opendaylight.controller.config.manager.impl.AbstractMockedModule; @@ -16,18 +27,6 @@ import org.opendaylight.controller.config.threadpool.util.ScheduledThreadPoolWra import org.opendaylight.controller.config.yang.threadpool.ScheduledThreadPoolServiceInterface; import org.opendaylight.controller.config.yang.threadpool.impl.scheduled.ScheduledThreadPoolModuleMXBean; -import javax.management.ObjectName; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.TimeUnit; - -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyBoolean; -import static org.mockito.Matchers.anyLong; -import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; - public class TestingScheduledThreadPoolModule extends AbstractMockedModule implements ScheduledThreadPoolServiceInterface, Module, ScheduledThreadPoolModuleMXBean { diff --git a/opendaylight/config/yang-jmx-generator-it/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/it/ITTest.java b/opendaylight/config/yang-jmx-generator-it/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/it/ITTest.java index 7505fcf485..9f5498cf70 100644 --- a/opendaylight/config/yang-jmx-generator-it/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/it/ITTest.java +++ b/opendaylight/config/yang-jmx-generator-it/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/it/ITTest.java @@ -7,6 +7,10 @@ */ package org.opendaylight.controller.config.yangjmxgenerator.it; +import static org.junit.Assert.fail; + +import javax.management.InstanceAlreadyExistsException; +import javax.management.ObjectName; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; @@ -21,11 +25,6 @@ import org.opendaylight.controller.config.yang.test.impl.DtoB; import org.opendaylight.controller.config.yang.test.impl.TestImplModuleFactory; import org.opendaylight.controller.config.yang.test.impl.TestImplModuleMXBean; -import javax.management.InstanceAlreadyExistsException; -import javax.management.ObjectName; - -import static org.junit.Assert.fail; - @Ignore // ietf beans are not JMX compliant beans: // Do not know how to make a diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/CodeWriter.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/CodeWriter.java index cd0f491ebc..a1ccdc3eba 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/CodeWriter.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/CodeWriter.java @@ -9,6 +9,16 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin; import com.google.common.base.Optional; import com.google.common.collect.Lists; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry; import org.opendaylight.controller.config.yangjmxgenerator.RuntimeBeanEntry; import org.opendaylight.controller.config.yangjmxgenerator.ServiceInterfaceEntry; @@ -28,20 +38,9 @@ import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.StringUti import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - final class CodeWriter { - private static final Logger LOGGER = LoggerFactory.getLogger(CodeWriter.class); + private static final Logger LOG = LoggerFactory.getLogger(CodeWriter.class); private static final Optional COPYRIGHT = StringUtil.loadCopyright(); public File writeSie(ServiceInterfaceEntry sie, File outputBaseDir) { @@ -52,7 +51,7 @@ final class CodeWriter { } catch (Exception e) { String message = "An error occurred during Service interface generating, sie:" + sie.getTypeName() + ", " + sie.getFullyQualifiedName(); - LOGGER.error(message, e); + LOG.error(message, e); throw new RuntimeException(message, e); } } @@ -113,7 +112,7 @@ final class CodeWriter { } catch (Exception e) { String message = "An error occurred during Module generating, mbe:" + mbe.getJavaNamePrefix(); - LOGGER.error(message, e); + LOG.error(message, e); throw new RuntimeException(message, e); } } diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGenerator.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGenerator.java index c8356274f8..9ad8d2826f 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGenerator.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGenerator.java @@ -12,6 +12,16 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; +import java.io.File; +import java.io.IOException; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.apache.commons.io.FileUtils; import org.apache.maven.plugin.logging.Log; import org.apache.maven.project.MavenProject; @@ -30,17 +40,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.impl.StaticLoggerBinder; -import java.io.File; -import java.io.IOException; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - /** * This class interfaces with yang-maven-plugin. Gets parsed yang modules in * {@link SchemaContext}, and parameters form the plugin configuration, and @@ -54,7 +53,7 @@ public class JMXGenerator implements CodeGenerator { private PackageTranslator packageTranslator; private final CodeWriter codeWriter; - private static final Logger LOGGER = LoggerFactory + private static final Logger LOG = LoggerFactory .getLogger(JMXGenerator.class); private Map namespaceToPackageMapping; private File resourceBaseDir; @@ -167,7 +166,7 @@ public class JMXGenerator implements CodeGenerator { fullyQualifiedNamesOfFactories.toString()); } catch (IOException e) { String message = "Cannot write to " + serviceLoaderFile; - LOGGER.error(message); + LOG.error(message); throw new RuntimeException(message, e); } } @@ -185,8 +184,8 @@ public class JMXGenerator implements CodeGenerator { @Override public void setAdditionalConfig(Map additionalCfg) { - if (LOGGER != null) { - LOGGER.debug(getClass().getCanonicalName(), + if (LOG != null) { + LOG.debug(getClass().getCanonicalName(), ": Additional configuration received: ", additionalCfg.toString()); } @@ -254,9 +253,10 @@ public class JMXGenerator implements CodeGenerator { public void setMavenProject(MavenProject project) { this.projectBaseDir = project.getBasedir(); - if (LOGGER != null) - LOGGER.debug(getClass().getCanonicalName(), " project base dir: ", + if (LOG != null) { + LOG.debug(getClass().getCanonicalName(), " project base dir: ", projectBaseDir); + } } @VisibleForTesting @@ -272,7 +272,7 @@ public class JMXGenerator implements CodeGenerator { } } if (undeletedFiles.isEmpty() == false) { - LOGGER.error( + LOG.error( "Illegal state occurred: Unable to delete already generated files, undeleted files: {}", undeletedFiles); } diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/AbstractFactoryTemplate.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/AbstractFactoryTemplate.java index c3a00b93da..52b6bc165a 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/AbstractFactoryTemplate.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/AbstractFactoryTemplate.java @@ -8,15 +8,14 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl; import com.google.common.collect.Lists; +import java.util.Collections; +import java.util.List; import org.opendaylight.controller.config.spi.ModuleFactory; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Constructor; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Header; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.MethodDefinition; -import java.util.Collections; -import java.util.List; - public class AbstractFactoryTemplate extends GeneralClassTemplate { private static final List IMPLEMENTED_IFCS = Lists diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/AbstractFtlTemplate.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/AbstractFtlTemplate.java index a9599783e6..edcd11d9de 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/AbstractFtlTemplate.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/AbstractFtlTemplate.java @@ -9,6 +9,8 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl; import com.google.common.base.Optional; import com.google.common.collect.Lists; +import java.util.Collections; +import java.util.List; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Annotation; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Constructor; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field; @@ -17,9 +19,6 @@ import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Meth import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.TypeDeclaration; import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.FullyQualifiedNameHelper; -import java.util.Collections; -import java.util.List; - public abstract class AbstractFtlTemplate implements FtlTemplate { private final String packageName; private final List fields; diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/AbstractModuleTemplate.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/AbstractModuleTemplate.java index 92a71c2530..2402014fd3 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/AbstractModuleTemplate.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/AbstractModuleTemplate.java @@ -7,15 +7,14 @@ */ package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl; +import java.util.Collections; +import java.util.List; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Constructor; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Header; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.MethodDefinition; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.ModuleField; -import java.util.Collections; -import java.util.List; - public class AbstractModuleTemplate extends GeneralClassTemplate { private final List moduleFields; diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/FtlTemplate.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/FtlTemplate.java index d01f3f9223..2e867d307f 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/FtlTemplate.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/FtlTemplate.java @@ -8,6 +8,7 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl; import com.google.common.base.Optional; +import java.util.List; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Annotation; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Constructor; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field; @@ -15,8 +16,6 @@ import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Head import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Method; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.TypeDeclaration; -import java.util.List; - public interface FtlTemplate { Header getHeader(); diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/GeneralClassTemplate.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/GeneralClassTemplate.java index 4df7b2a55b..3f4917f2ff 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/GeneralClassTemplate.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/GeneralClassTemplate.java @@ -9,7 +9,6 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl; import java.util.Collections; import java.util.List; - import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Constructor; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Header; @@ -39,9 +38,10 @@ public class GeneralClassTemplate extends AbstractFtlTemplate { } static List checkCardinality(List extendedClass) { - if (extendedClass.size() > 1) + if (extendedClass.size() > 1) { throw new IllegalArgumentException( "Class cannot have more than one super " + "class"); + } return extendedClass; } diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/GeneralInterfaceTemplate.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/GeneralInterfaceTemplate.java index 1539e10885..6842ed1cf5 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/GeneralInterfaceTemplate.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/GeneralInterfaceTemplate.java @@ -9,7 +9,6 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl; import java.util.Collections; import java.util.List; - import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Header; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.MethodDeclaration; diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/RuntimeRegistratorFtlTemplate.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/RuntimeRegistratorFtlTemplate.java index aa696450a9..13345d62a4 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/RuntimeRegistratorFtlTemplate.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/RuntimeRegistratorFtlTemplate.java @@ -11,6 +11,8 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static java.lang.String.format; +import com.google.common.annotations.VisibleForTesting; +import com.google.common.collect.Lists; import java.io.Closeable; import java.util.ArrayList; import java.util.Arrays; @@ -24,7 +26,6 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; - import org.opendaylight.controller.config.api.runtime.HierarchicalRuntimeBeanRegistration; import org.opendaylight.controller.config.api.runtime.RootRuntimeBeanRegistrator; import org.opendaylight.controller.config.yangjmxgenerator.RuntimeBeanEntry; @@ -34,9 +35,6 @@ import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Fiel import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.MethodDefinition; import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.FullyQualifiedNameHelper; -import com.google.common.annotations.VisibleForTesting; -import com.google.common.collect.Lists; - public class RuntimeRegistratorFtlTemplate extends GeneralClassTemplate { private RuntimeRegistratorFtlTemplate(RuntimeBeanEntry runtimeBeanEntry, @@ -44,7 +42,7 @@ public class RuntimeRegistratorFtlTemplate extends GeneralClassTemplate { // TODO header super(null, runtimeBeanEntry.getPackageName(), name, Collections . emptyList(), Arrays.asList(Closeable.class - .getCanonicalName()), fields, methods); + .getCanonicalName()), fields, methods); } public static RuntimeBeanEntry findRoot( diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/StubFactoryTemplate.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/StubFactoryTemplate.java index 5d2d6644b0..1dd23a153b 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/StubFactoryTemplate.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/StubFactoryTemplate.java @@ -8,12 +8,11 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl; import com.google.common.collect.Lists; +import java.util.Collections; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Field; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Header; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.MethodDefinition; -import java.util.Collections; - public class StubFactoryTemplate extends GeneralClassTemplate { public StubFactoryTemplate(Header header, String packageName, String name, diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/TemplateFactory.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/TemplateFactory.java index ca1e823ec7..53ab4ef335 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/TemplateFactory.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/TemplateFactory.java @@ -10,6 +10,14 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import javax.management.openmbean.SimpleType; import org.opendaylight.controller.config.api.DependencyResolver; import org.opendaylight.controller.config.api.IdentityAttributeRef; import org.opendaylight.controller.config.api.RuntimeBeanRegistratorAwareModule; @@ -44,15 +52,6 @@ import org.opendaylight.yangtools.binding.generator.util.BindingGeneratorUtil; import org.opendaylight.yangtools.sal.binding.model.api.ParameterizedType; import org.opendaylight.yangtools.sal.binding.model.api.Type; -import javax.management.openmbean.SimpleType; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - public class TemplateFactory { /** @@ -167,10 +166,11 @@ public class TemplateFactory { Lists. newArrayList()); sieTemplate.setJavadoc(sie.getNullableDescription()); - if (sie.getNullableDescription() != null) + if (sie.getNullableDescription() != null) { sieTemplate.getAnnotations().add( Annotation.createDescriptionAnnotation(sie .getNullableDescription())); + } sieTemplate.getAnnotations().addAll(Annotation.createSieAnnotations(sie)); return sieTemplate; @@ -224,10 +224,11 @@ public class TemplateFactory { attrProcessor.getMethods(), generateRuntime, registratorFullyQualifiedName); - if (mbe.getNullableDescription() != null) + if (mbe.getNullableDescription() != null) { abstractModuleTemplate.getAnnotations().add( Annotation.createDescriptionAnnotation(mbe .getNullableDescription())); + } return abstractModuleTemplate; } @@ -688,8 +689,9 @@ public class TemplateFactory { private static boolean needsDepResolver(AttributeIfc value) { - if(value instanceof TOAttribute) + if(value instanceof TOAttribute) { return true; + } if(value instanceof ListAttribute) { AttributeIfc innerAttribute = ((ListAttribute) value).getInnerAttribute(); return needsDepResolver(innerAttribute); diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/Annotation.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/Annotation.java index a8ddabc4cf..ae5f947d2d 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/Annotation.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/Annotation.java @@ -9,19 +9,18 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; -import org.opendaylight.controller.config.api.annotations.Description; -import org.opendaylight.controller.config.api.annotations.RequireInterface; -import org.opendaylight.controller.config.api.annotations.ServiceInterfaceAnnotation; -import org.opendaylight.controller.config.yangjmxgenerator.ServiceInterfaceEntry; -import org.opendaylight.yangtools.yang.binding.annotations.ModuleQName; -import org.opendaylight.yangtools.yang.common.QName; - import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import org.opendaylight.controller.config.api.annotations.Description; +import org.opendaylight.controller.config.api.annotations.RequireInterface; +import org.opendaylight.controller.config.api.annotations.ServiceInterfaceAnnotation; +import org.opendaylight.controller.config.yangjmxgenerator.ServiceInterfaceEntry; +import org.opendaylight.yangtools.yang.binding.annotations.ModuleQName; +import org.opendaylight.yangtools.yang.common.QName; public class Annotation { final String name; diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/Field.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/Field.java index 3639b6d727..312bb4a1db 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/Field.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/Field.java @@ -7,12 +7,11 @@ */ package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model; -import com.google.common.collect.Lists; +import static com.google.common.base.Preconditions.checkNotNull; +import com.google.common.collect.Lists; import java.util.List; -import static com.google.common.base.Preconditions.checkNotNull; - public class Field { private final String type; private final String name; diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/HeaderSerializer.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/HeaderSerializer.java index eb07c80e15..89a2cf7b90 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/HeaderSerializer.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/HeaderSerializer.java @@ -8,9 +8,8 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model; -import org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator; - import java.util.Date; +import org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator; public class HeaderSerializer { private static final String GENERATOR_CLASS = JMXGenerator.class.getCanonicalName(); diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/ModuleField.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/ModuleField.java index 37d660353f..7dc864b676 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/ModuleField.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/ModuleField.java @@ -8,11 +8,10 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model; -import org.opendaylight.controller.config.yangjmxgenerator.attribute.Dependency; - import java.util.ArrayList; import java.util.Collections; import java.util.List; +import org.opendaylight.controller.config.yangjmxgenerator.attribute.Dependency; public class ModuleField extends Field { diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/TypeDeclaration.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/TypeDeclaration.java index a5bb987fd3..1c44040708 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/TypeDeclaration.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ftl/model/TypeDeclaration.java @@ -7,9 +7,8 @@ */ package org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model; -import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.TypeName; - import java.util.List; +import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.TypeName; public class TypeDeclaration { private final String type, name; diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/AbsModuleGeneratedObjectFactory.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/AbsModuleGeneratedObjectFactory.java index 2378fac6e7..64a13d3f80 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/AbsModuleGeneratedObjectFactory.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/AbsModuleGeneratedObjectFactory.java @@ -89,7 +89,7 @@ public class AbsModuleGeneratedObjectFactory { } // add logger: - b.addToBody(getLogger(abstractFQN)); + b.addToBody(getLoggerDefinition(abstractFQN)); b.addToBody("//attributes start"); for(ModuleField moduleField: moduleFields) { @@ -377,7 +377,7 @@ public class AbsModuleGeneratedObjectFactory { return result; } - private static String getLogger(FullyQualifiedName fqn) { + private static String getLoggerDefinition(FullyQualifiedName fqn) { return format("private static final %s logger = %s.getLogger(%s.class);", Logger.class.getCanonicalName(), LoggerFactory.class.getCanonicalName(), fqn); } diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/ConcreteModuleGeneratedObjectFactory.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/ConcreteModuleGeneratedObjectFactory.java index 051b1a7f5b..68dd704396 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/ConcreteModuleGeneratedObjectFactory.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/gofactory/ConcreteModuleGeneratedObjectFactory.java @@ -1,7 +1,8 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.gofactory; +import com.google.common.base.Joiner; +import com.google.common.base.Optional; import java.util.LinkedHashMap; - import org.opendaylight.controller.config.api.DependencyResolver; import org.opendaylight.controller.config.api.ModuleIdentifier; import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry; @@ -11,9 +12,6 @@ import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.Generated import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.JavaFileInputBuilder; import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.TypeName; -import com.google.common.base.Joiner; -import com.google.common.base.Optional; - public class ConcreteModuleGeneratedObjectFactory { public GeneratedObject toGeneratedObject(ModuleMXBeanEntry mbe, Optional copyright, Optional header) { diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/FullyQualifiedName.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/FullyQualifiedName.java index f72551a377..5572bff2ae 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/FullyQualifiedName.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/FullyQualifiedName.java @@ -1,11 +1,11 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.java; +import static com.google.common.base.Preconditions.checkNotNull; + import java.io.File; import java.util.regex.Matcher; import java.util.regex.Pattern; -import static com.google.common.base.Preconditions.checkNotNull; - public class FullyQualifiedName { private final String packageName; diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/GeneratedObject.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/GeneratedObject.java index 4ad080c6f5..4d8bd3e5b4 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/GeneratedObject.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/GeneratedObject.java @@ -1,15 +1,14 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.java; +import static com.google.common.base.Preconditions.checkNotNull; + import com.google.common.base.Optional; import com.google.common.collect.Maps; -import org.apache.commons.io.FileUtils; -import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.StringUtil; - import java.io.File; import java.io.IOException; import java.util.Map.Entry; - -import static com.google.common.base.Preconditions.checkNotNull; +import org.apache.commons.io.FileUtils; +import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.StringUtil; public class GeneratedObject { diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/GeneratedObjectBuilder.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/GeneratedObjectBuilder.java index 72819db9cf..336bece1f7 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/GeneratedObjectBuilder.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/GeneratedObjectBuilder.java @@ -1,10 +1,10 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.java; +import static org.opendaylight.controller.config.yangjmxgenerator.plugin.util.StringUtil.prefixAndJoin; + import com.google.common.base.Optional; import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.StringUtil; -import static org.opendaylight.controller.config.yangjmxgenerator.plugin.util.StringUtil.prefixAndJoin; - public class GeneratedObjectBuilder { private final JavaFileInput input; diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/JavaFileInput.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/JavaFileInput.java index ba8537bea0..bd4d639302 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/JavaFileInput.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/JavaFileInput.java @@ -1,7 +1,6 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.java; import com.google.common.base.Optional; - import java.util.List; public interface JavaFileInput { diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/JavaFileInputBuilder.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/JavaFileInputBuilder.java index c739f57730..588e218e62 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/JavaFileInputBuilder.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/java/JavaFileInputBuilder.java @@ -8,14 +8,13 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.java; -import com.google.common.base.Optional; -import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Annotation; +import static com.google.common.base.Preconditions.checkNotNull; +import com.google.common.base.Optional; import java.util.ArrayList; import java.util.Collections; import java.util.List; - -import static com.google.common.base.Preconditions.checkNotNull; +import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.model.Annotation; public class JavaFileInputBuilder { diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/StringUtil.java b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/StringUtil.java index bcc55a203e..536dc2f57a 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/StringUtil.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/StringUtil.java @@ -4,16 +4,15 @@ import com.google.common.base.Joiner; import com.google.common.base.Optional; import com.google.common.base.Splitter; import com.google.common.base.Strings; +import java.util.List; +import java.util.regex.Pattern; import org.apache.commons.lang3.StringUtils; import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.FullyQualifiedName; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.List; -import java.util.regex.Pattern; - public class StringUtil { - private static final Logger logger = LoggerFactory.getLogger(StringUtils.class); + private static final Logger LOG = LoggerFactory.getLogger(StringUtil.class); /** * @param list of strings to be joined by ',' @@ -66,7 +65,7 @@ public class StringUtil { return Optional.of(IOUtils.toString(in)); } } catch (IOException e) { - logger.warn("Cannot load copyright.txt", e); + LOG.warn("Cannot load copyright.txt", e); } */ diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/AbstractGeneratorTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/AbstractGeneratorTest.java index 1dde94b482..2eae8b6b09 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/AbstractGeneratorTest.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/AbstractGeneratorTest.java @@ -7,12 +7,11 @@ */ package org.opendaylight.controller.config.yangjmxgenerator.plugin; +import java.io.File; import org.apache.commons.io.FileUtils; import org.junit.Before; import org.opendaylight.controller.config.yangjmxgenerator.AbstractYangTest; -import java.io.File; - public abstract class AbstractGeneratorTest extends AbstractYangTest { private static final File GENERATOR_OUTPUT_PATH_ROOT = new File( "target/testgen"); diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGeneratorFileNamesValidationTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGeneratorFileNamesValidationTest.java index cdff5090bb..3a820fdd0c 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGeneratorFileNamesValidationTest.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGeneratorFileNamesValidationTest.java @@ -13,12 +13,11 @@ import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import com.google.common.collect.Sets; import org.junit.Test; import org.opendaylight.controller.config.yangjmxgenerator.ConfigConstants; import org.opendaylight.controller.config.yangjmxgenerator.PackageTranslatorTest; -import com.google.common.collect.Sets; - public class JMXGeneratorFileNamesValidationTest extends JMXGeneratorTest { @Test diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGeneratorGeneratedFilesTrackerTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGeneratorGeneratedFilesTrackerTest.java index 589fe41f46..1e48d9a8c9 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGeneratorGeneratedFilesTrackerTest.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGeneratorGeneratedFilesTrackerTest.java @@ -8,6 +8,7 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin; import static org.junit.Assert.assertEquals; + import java.io.File; import org.junit.Test; diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGeneratorTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGeneratorTest.java index 42112013e9..8c2b5d69eb 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGeneratorTest.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/JMXGeneratorTest.java @@ -565,7 +565,7 @@ public class JMXGeneratorTest extends AbstractGeneratorTest { private static class SieASTVisitor extends ASTVisitor { protected String packageName, descriptionAnotValue, sieAnnotValue, - sieAnnotOsgiRegistrationType, type, extnds, javadoc; + sieAnnotOsgiRegistrationType, type, extnds, javadoc; protected Map methodDescriptions = Maps.newHashMap(); @Override diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ModuleMXBeanEntryPluginTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ModuleMXBeanEntryPluginTest.java index 473b245f25..1c44a80e0b 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ModuleMXBeanEntryPluginTest.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ModuleMXBeanEntryPluginTest.java @@ -17,7 +17,6 @@ import java.util.Arrays; import java.util.Collection; import java.util.List; import java.util.Map; - import org.junit.Test; import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry; import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntryTest; diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ModuleMXBeanEntryTemplatesTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ModuleMXBeanEntryTemplatesTest.java index 3c01cc00d4..076e4e9812 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ModuleMXBeanEntryTemplatesTest.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/ModuleMXBeanEntryTemplatesTest.java @@ -7,7 +7,14 @@ */ package org.opendaylight.controller.config.yangjmxgenerator.plugin; +import static org.junit.Assert.assertNotNull; +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; + import com.google.common.collect.Maps; +import java.util.Collections; +import java.util.Map; import org.junit.Test; import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry; import org.opendaylight.controller.config.yangjmxgenerator.attribute.AttributeIfc; @@ -16,14 +23,6 @@ import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.AbstractFa import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.TemplateFactory; import org.opendaylight.yangtools.sal.binding.model.api.Type; -import java.util.Collections; -import java.util.Map; - -import static org.junit.Assert.assertNotNull; -import static org.mockito.Matchers.anyString; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; - public class ModuleMXBeanEntryTemplatesTest { @Test diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/RuntimeRegistratorFtlFileTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/RuntimeRegistratorFtlFileTest.java index f21765e536..925f95ab83 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/RuntimeRegistratorFtlFileTest.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/RuntimeRegistratorFtlFileTest.java @@ -7,20 +7,19 @@ */ package org.opendaylight.controller.config.yangjmxgenerator.plugin; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThat; + +import java.util.Arrays; +import java.util.Collections; +import java.util.Map; import org.junit.Test; import org.opendaylight.controller.config.yangjmxgenerator.RuntimeBeanEntry; import org.opendaylight.controller.config.yangjmxgenerator.RuntimeRegistratorTest; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.FtlTemplate; import org.opendaylight.controller.config.yangjmxgenerator.plugin.ftl.RuntimeRegistratorFtlTemplate; -import java.util.Arrays; -import java.util.Collections; -import java.util.Map; - -import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThat; - public class RuntimeRegistratorFtlFileTest extends RuntimeRegistratorTest { @Test diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/AbstractGeneratedObjectTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/AbstractGeneratedObjectTest.java index 957fbf5251..c3ca077bcc 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/AbstractGeneratedObjectTest.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/AbstractGeneratedObjectTest.java @@ -8,6 +8,12 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.module; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.io.File; +import java.io.FileReader; +import java.io.IOException; import net.sourceforge.pmd.lang.Parser; import net.sourceforge.pmd.lang.ParserOptions; import net.sourceforge.pmd.lang.ast.Node; @@ -17,15 +23,8 @@ import org.opendaylight.controller.config.yangjmxgenerator.plugin.AbstractGenera import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; - -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - public class AbstractGeneratedObjectTest extends AbstractGeneratorTest { - private static final Logger logger = LoggerFactory.getLogger(AbstractGeneratedObjectTest.class); + private static final Logger LOG = LoggerFactory.getLogger(AbstractGeneratedObjectTest.class); protected void assertHasMethodNamed(Node c, String method) { assertTrue(c.hasDescendantMatchingXPath("//MethodDeclaration[MethodDeclarator[@Image='" + @@ -35,7 +34,7 @@ public class AbstractGeneratedObjectTest extends AbstractGeneratorTest { protected Node parse(File dstFile) throws IOException { assertNotNull(dstFile); - logger.debug(FileUtils.readFileToString(dstFile)); + LOG.debug(FileUtils.readFileToString(dstFile)); Parser parser = new Java17Parser(new ParserOptions()); return parser.parse(dstFile.toString(), new FileReader(dstFile)); } diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/abs/AbsModuleGeneratedObjectFactoryTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/abs/AbsModuleGeneratedObjectFactoryTest.java index 164d1a5f58..ba9f544e6e 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/abs/AbsModuleGeneratedObjectFactoryTest.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/abs/AbsModuleGeneratedObjectFactoryTest.java @@ -9,6 +9,10 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.module.abs; import com.google.common.base.Optional; +import java.io.File; +import java.io.IOException; +import java.util.Map; +import java.util.Map.Entry; import org.junit.Test; import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry; import org.opendaylight.controller.config.yangjmxgenerator.ServiceInterfaceEntry; @@ -18,11 +22,6 @@ import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.Generated import org.opendaylight.controller.config.yangjmxgenerator.plugin.module.AbstractGeneratedObjectTest; import org.opendaylight.yangtools.yang.common.QName; -import java.io.File; -import java.io.IOException; -import java.util.Map; -import java.util.Map.Entry; - public class AbsModuleGeneratedObjectFactoryTest extends AbstractGeneratedObjectTest { @Test diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/concrete/ConcreteModuleGeneratedObjectFactoryTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/concrete/ConcreteModuleGeneratedObjectFactoryTest.java index 519b0edf42..a9bf2b293c 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/concrete/ConcreteModuleGeneratedObjectFactoryTest.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/module/concrete/ConcreteModuleGeneratedObjectFactoryTest.java @@ -1,6 +1,12 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.module.concrete; +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; + import com.google.common.base.Optional; +import java.io.File; +import java.util.Map.Entry; import net.sourceforge.pmd.lang.ast.Node; import net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceDeclaration; import net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit; @@ -11,13 +17,6 @@ import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.FullyQual import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.GeneratedObject; import org.opendaylight.controller.config.yangjmxgenerator.plugin.module.AbstractGeneratedObjectTest; -import java.io.File; -import java.util.Map.Entry; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; - public class ConcreteModuleGeneratedObjectFactoryTest extends AbstractGeneratedObjectTest { @Test diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/StringUtilTest.java b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/StringUtilTest.java index 1ad0207c2b..1576b38a8e 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/StringUtilTest.java +++ b/opendaylight/config/yang-jmx-generator-plugin/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/StringUtilTest.java @@ -1,15 +1,14 @@ package org.opendaylight.controller.config.yangjmxgenerator.plugin.util; -import org.junit.Ignore; -import org.junit.Test; -import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.FullyQualifiedName; - -import java.io.IOException; - import static java.util.Arrays.asList; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import java.io.IOException; +import org.junit.Ignore; +import org.junit.Test; +import org.opendaylight.controller.config.yangjmxgenerator.plugin.java.FullyQualifiedName; + public class StringUtilTest { @Test public void testPrefixAndJoin() { @@ -33,19 +32,19 @@ public class StringUtilTest { @Test public void testFormatting() { { - String input = " \tpack;\n" + + String input = " \tpack;\n" + "class Bar{ \n" + " method() {\n" + " body\n" + "}\n" + " }"; - String expected = "pack;\n" + + String expected = "pack;\n" + "class Bar{\n" + " method() {\n" + " body\n" + " }\n" + "}\n"; - assertEquals(expected, StringUtil.formatJavaSource(input)); + assertEquals(expected, StringUtil.formatJavaSource(input)); } { String input = "{\n" + diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryBuilder.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryBuilder.java index f99d378b6f..80db46df2b 100644 --- a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryBuilder.java +++ b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryBuilder.java @@ -18,7 +18,6 @@ import com.google.common.base.Optional; import com.google.common.collect.Collections2; import com.google.common.collect.Maps; import com.google.common.collect.Sets; - import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -27,9 +26,7 @@ import java.util.Objects; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; - import javax.annotation.Nullable; - import org.opendaylight.controller.config.yangjmxgenerator.attribute.AbstractDependencyAttribute; import org.opendaylight.controller.config.yangjmxgenerator.attribute.AttributeIfc; import org.opendaylight.controller.config.yangjmxgenerator.attribute.DependencyAttribute; @@ -93,7 +90,7 @@ final class ModuleMXBeanEntryBuilder { return this; } - private static final Logger LOGGER = LoggerFactory + private static final Logger LOG = LoggerFactory .getLogger(ModuleMXBeanEntryBuilder.class); // TODO: the XPath should be parsed by code generator IMO @@ -108,7 +105,7 @@ final class ModuleMXBeanEntryBuilder { public Map build() { - LOGGER.debug("Generating ModuleMXBeans of {} to package {}", + LOG.debug("Generating ModuleMXBeans of {} to package {}", currentModule.getNamespace(), packageName); String configModulePrefix; @@ -146,7 +143,7 @@ final class ModuleMXBeanEntryBuilder { checkAttributeNamesUniqueness(uniqueGeneratedClassesNames, result); checkUnaugumentedIdentities(unaugmentedModuleIdentities); - LOGGER.debug("Number of ModuleMXBeans to be generated: {}", result.size()); + LOG.debug("Number of ModuleMXBeans to be generated: {}", result.size()); return result; } @@ -166,7 +163,7 @@ final class ModuleMXBeanEntryBuilder { private static void checkUnaugumentedIdentities(final Map unaugmentedModuleIdentities) { if (unaugmentedModuleIdentities.size() > 0) { - LOGGER.warn("Augmentation not found for all currentModule identities: {}", + LOG.warn("Augmentation not found for all currentModule identities: {}", unaugmentedModuleIdentities.keySet()); } } @@ -190,7 +187,7 @@ final class ModuleMXBeanEntryBuilder { + identityLocalName); } else { moduleIdentities.put(identityLocalName, id); - LOGGER.debug("Found identity {}", identityLocalName); + LOG.debug("Found identity {}", identityLocalName); } // validation check on unknown schema nodes boolean providedServiceWasSet = false; @@ -271,12 +268,12 @@ final class ModuleMXBeanEntryBuilder { HAS_CHILDREN_AND_QNAME dataNodeContainer = getDataNodeContainer(choiceCaseNode); if (EXPECTED_CONFIGURATION_AUGMENTATION_SCHEMA_PATH.equals(augmentation.getTargetPath())) { - LOGGER.debug("Parsing configuration of {}", moduleLocalNameFromXPath); + LOG.debug("Parsing configuration of {}", moduleLocalNameFromXPath); yangToAttributes = fillConfiguration(dataNodeContainer, currentModule, typeProviderWrapper, qNamesToSIEs, schemaContext, packageName); checkUniqueAttributesWithGeneratedClass(uniqueGeneratedClassesNames, when.getQName(), yangToAttributes); } else if (EXPECTED_STATE_AUGMENTATION_SCHEMA_PATH.equals(augmentation.getTargetPath())) { - LOGGER.debug("Parsing state of {}", moduleLocalNameFromXPath); + LOG.debug("Parsing state of {}", moduleLocalNameFromXPath); try { runtimeBeans = fillRuntimeBeans(dataNodeContainer, currentModule, typeProviderWrapper, packageName, moduleLocalNameFromXPath, javaNamePrefix); @@ -309,9 +306,9 @@ final class ModuleMXBeanEntryBuilder { " both state and configuration"); } else { ModuleMXBeanEntry.ModuleMXBeanEntryInitial initial = new ModuleMXBeanEntry.ModuleMXBeanEntryInitialBuilder() - .setIdSchemaNode(moduleIdentity).setPackageName(packageName).setJavaNamePrefix(javaNamePrefix) - .setNamespace(currentModule.getNamespace().toString()).setqName(ModuleUtil.getQName(currentModule)) - .build(); + .setIdSchemaNode(moduleIdentity).setPackageName(packageName).setJavaNamePrefix(javaNamePrefix) + .setNamespace(currentModule.getNamespace().toString()).setqName(ModuleUtil.getQName(currentModule)) + .build(); // construct ModuleMXBeanEntry ModuleMXBeanEntry moduleMXBeanEntry = new ModuleMXBeanEntry(initial, yangToAttributes, providedServices, diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/PackageTranslator.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/PackageTranslator.java index a7f6f2f221..2b130e3188 100644 --- a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/PackageTranslator.java +++ b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/PackageTranslator.java @@ -9,7 +9,6 @@ package org.opendaylight.controller.config.yangjmxgenerator; import java.util.Map; import java.util.Map.Entry; - import org.opendaylight.yangtools.binding.generator.util.BindingGeneratorUtil; import org.opendaylight.yangtools.yang.model.api.Module; diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/RuntimeBeanEntry.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/RuntimeBeanEntry.java index aec41152de..b6ed824321 100644 --- a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/RuntimeBeanEntry.java +++ b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/RuntimeBeanEntry.java @@ -13,7 +13,6 @@ import static com.google.common.base.Preconditions.checkState; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Optional; import com.google.common.collect.Lists; - import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -26,7 +25,6 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeSet; - import org.opendaylight.controller.config.yangjmxgenerator.attribute.AttributeIfc; import org.opendaylight.controller.config.yangjmxgenerator.attribute.JavaAttribute; import org.opendaylight.controller.config.yangjmxgenerator.attribute.ListAttribute; diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/ServiceInterfaceEntry.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/ServiceInterfaceEntry.java index ee02b303e0..f03bd96529 100644 --- a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/ServiceInterfaceEntry.java +++ b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/ServiceInterfaceEntry.java @@ -7,6 +7,10 @@ */ package org.opendaylight.controller.config.yangjmxgenerator; +import static com.google.common.base.Preconditions.checkNotNull; +import static java.lang.String.format; +import static org.opendaylight.controller.config.yangjmxgenerator.ConfigConstants.SERVICE_TYPE_Q_NAME; + import com.google.common.base.Optional; import java.util.ArrayList; import java.util.HashMap; @@ -21,9 +25,6 @@ import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import static com.google.common.base.Preconditions.checkNotNull; -import static java.lang.String.format; -import static org.opendaylight.controller.config.yangjmxgenerator.ConfigConstants.SERVICE_TYPE_Q_NAME; /** * Represents identity derived from {@link ConfigConstants#SERVICE_TYPE_Q_NAME}. @@ -46,7 +47,7 @@ import static org.opendaylight.controller.config.yangjmxgenerator.ConfigConstant *

*/ public class ServiceInterfaceEntry extends AbstractEntry { - private static final Logger LOGGER = LoggerFactory + private static final Logger LOG = LoggerFactory .getLogger(ServiceInterfaceEntry.class); private static final String CLASS_NAME_SUFFIX = "ServiceInterface"; @@ -121,7 +122,7 @@ public class ServiceInterfaceEntry extends AbstractEntry { */ public static Map create(Module currentModule, String packageName,Map definedSEItracker) { - LOGGER.debug("Generating ServiceInterfaces from {} to package {}", + LOG.debug("Generating ServiceInterfaces from {} to package {}", currentModule.getNamespace(), packageName); Map identitiesToSIs = new HashMap<>(); @@ -130,7 +131,7 @@ public class ServiceInterfaceEntry extends AbstractEntry { int lastSize = notVisited.size() + 1; while (!notVisited.isEmpty()) { if (notVisited.size() == lastSize) { - LOGGER.debug( + LOG.debug( "Following identities will be ignored while generating ServiceInterfaces, as they are not derived from {} : {}", SERVICE_TYPE_Q_NAME, notVisited); break; @@ -175,7 +176,7 @@ public class ServiceInterfaceEntry extends AbstractEntry { for (ServiceInterfaceEntry sie : identitiesToSIs.values()) { resultMap.put(sie.getQName(), sie); } - LOGGER.debug("Number of ServiceInterfaces to be generated: {}", + LOG.debug("Number of ServiceInterfaces to be generated: {}", resultMap.size()); return resultMap; } diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/AbstractAttribute.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/AbstractAttribute.java index d9a6dd0452..e6b69fb17d 100644 --- a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/AbstractAttribute.java +++ b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/AbstractAttribute.java @@ -12,7 +12,7 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; public abstract class AbstractAttribute implements AttributeIfc { private final String attributeYangName, upperCaseCammelCase, - lowerCaseCammelCase; + lowerCaseCammelCase; protected final DataSchemaNode node; private static String getLocalName(DataSchemaNode attrNode) { diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/Dependency.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/Dependency.java index 6ea2ea1724..fd07e269f4 100644 --- a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/Dependency.java +++ b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/Dependency.java @@ -28,17 +28,21 @@ public class Dependency { @Override public boolean equals(Object o) { - if (this == o) + if (this == o) { return true; - if (o == null || getClass() != o.getClass()) + } + if (o == null || getClass() != o.getClass()) { return false; + } Dependency that = (Dependency) o; - if (mandatory != that.mandatory) + if (mandatory != that.mandatory) { return false; - if (!sie.equals(that.sie)) + } + if (!sie.equals(that.sie)) { return false; + } return true; } diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/DependencyAttribute.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/DependencyAttribute.java index d8df78af0a..a82571cb19 100644 --- a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/DependencyAttribute.java +++ b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/DependencyAttribute.java @@ -7,14 +7,13 @@ */ package org.opendaylight.controller.config.yangjmxgenerator.attribute; +import javax.management.ObjectName; +import javax.management.openmbean.SimpleType; import org.opendaylight.controller.config.yangjmxgenerator.ServiceInterfaceEntry; import org.opendaylight.yangtools.binding.generator.util.Types; import org.opendaylight.yangtools.sal.binding.model.api.Type; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; -import javax.management.ObjectName; -import javax.management.openmbean.SimpleType; - public class DependencyAttribute extends AbstractDependencyAttribute { diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/JavaAttribute.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/JavaAttribute.java index 8d3139999e..f6ce92d506 100644 --- a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/JavaAttribute.java +++ b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/JavaAttribute.java @@ -8,6 +8,13 @@ package org.opendaylight.controller.config.yangjmxgenerator.attribute; import com.google.common.base.Preconditions; +import java.util.Arrays; +import java.util.List; +import javax.management.openmbean.ArrayType; +import javax.management.openmbean.CompositeType; +import javax.management.openmbean.OpenDataException; +import javax.management.openmbean.OpenType; +import javax.management.openmbean.SimpleType; import org.opendaylight.controller.config.api.IdentityAttributeRef; import org.opendaylight.controller.config.yangjmxgenerator.TypeProviderWrapper; import org.opendaylight.yangtools.sal.binding.model.api.Type; @@ -17,14 +24,6 @@ import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition; import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition; -import javax.management.openmbean.ArrayType; -import javax.management.openmbean.CompositeType; -import javax.management.openmbean.OpenDataException; -import javax.management.openmbean.OpenType; -import javax.management.openmbean.SimpleType; -import java.util.Arrays; -import java.util.List; - public class JavaAttribute extends AbstractAttribute implements TypedAttribute { public static final String DESCRIPTION_OF_VALUE_ATTRIBUTE_FOR_UNION = "valueOfArtificialUnionProperty"; @@ -233,7 +232,7 @@ public class JavaAttribute extends AbstractAttribute implements TypedAttribute { return simpleType; } - private OpenType getCompositeType(Type baseType, TypeDefinition baseTypeDefinition) { + private OpenType getCompositeType(Type baseType, TypeDefinition baseTypeDefinition) { SimpleType innerItemType = SimpleTypeResolver.getSimpleType(baseType); String innerItemName = typeProviderWrapper.getJMXParamForBaseType(baseTypeDefinition); @@ -282,8 +281,9 @@ public class JavaAttribute extends AbstractAttribute implements TypedAttribute { // TODO verify private boolean isPrimitive(String innerTypeFullyQName) { - if (innerTypeFullyQName.contains(".")) + if (innerTypeFullyQName.contains(".")) { return false; + } return true; } diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/ListAttribute.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/ListAttribute.java index bb71f9dbc7..9d8996369d 100644 --- a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/ListAttribute.java +++ b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/ListAttribute.java @@ -7,6 +7,10 @@ */ package org.opendaylight.controller.config.yangjmxgenerator.attribute; +import java.util.List; +import javax.management.openmbean.ArrayType; +import javax.management.openmbean.OpenDataException; +import javax.management.openmbean.OpenType; import org.opendaylight.controller.config.yangjmxgenerator.TypeProviderWrapper; import org.opendaylight.yangtools.binding.generator.util.Types; import org.opendaylight.yangtools.sal.binding.model.api.Type; @@ -14,11 +18,6 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode; import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; -import javax.management.openmbean.ArrayType; -import javax.management.openmbean.OpenDataException; -import javax.management.openmbean.OpenType; -import java.util.List; - public class ListAttribute extends AbstractAttribute implements TypedAttribute { private final String nullableDescription, nullableDefault; diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/ListDependenciesAttribute.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/ListDependenciesAttribute.java index 641099aef3..48d06a381c 100644 --- a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/ListDependenciesAttribute.java +++ b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/ListDependenciesAttribute.java @@ -7,16 +7,15 @@ */ package org.opendaylight.controller.config.yangjmxgenerator.attribute; -import org.opendaylight.controller.config.yangjmxgenerator.ServiceInterfaceEntry; -import org.opendaylight.yangtools.binding.generator.util.Types; -import org.opendaylight.yangtools.sal.binding.model.api.Type; -import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; - +import java.util.List; import javax.management.ObjectName; import javax.management.openmbean.ArrayType; import javax.management.openmbean.OpenType; import javax.management.openmbean.SimpleType; -import java.util.List; +import org.opendaylight.controller.config.yangjmxgenerator.ServiceInterfaceEntry; +import org.opendaylight.yangtools.binding.generator.util.Types; +import org.opendaylight.yangtools.sal.binding.model.api.Type; +import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; public class ListDependenciesAttribute extends AbstractDependencyAttribute { diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/SimpleTypeResolver.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/SimpleTypeResolver.java index 9b5530175c..8454a6bb35 100644 --- a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/SimpleTypeResolver.java +++ b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/SimpleTypeResolver.java @@ -9,13 +9,12 @@ package org.opendaylight.controller.config.yangjmxgenerator.attribute; import com.google.common.base.Preconditions; import com.google.common.collect.Maps; -import org.opendaylight.yangtools.sal.binding.model.api.Type; - -import javax.management.openmbean.SimpleType; import java.math.BigDecimal; import java.math.BigInteger; import java.util.Date; import java.util.Map; +import javax.management.openmbean.SimpleType; +import org.opendaylight.yangtools.sal.binding.model.api.Type; public class SimpleTypeResolver { diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/TOAttribute.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/TOAttribute.java index e563da1328..91016d4100 100644 --- a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/TOAttribute.java +++ b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/attribute/TOAttribute.java @@ -11,6 +11,15 @@ import com.google.common.base.Function; import com.google.common.collect.Collections2; import com.google.common.collect.Maps; import com.google.common.collect.Sets; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import javax.management.openmbean.CompositeType; +import javax.management.openmbean.OpenDataException; +import javax.management.openmbean.OpenType; import org.opendaylight.controller.config.yangjmxgenerator.TypeProviderWrapper; import org.opendaylight.yangtools.binding.generator.util.ReferencedTypeImpl; import org.opendaylight.yangtools.sal.binding.model.api.Type; @@ -22,16 +31,6 @@ import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; -import javax.management.openmbean.CompositeType; -import javax.management.openmbean.OpenDataException; -import javax.management.openmbean.OpenType; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; - public class TOAttribute extends AbstractAttribute implements TypedAttribute { private final String nullableDescription, nullableDefault; diff --git a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/FullyQualifiedNameHelper.java b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/FullyQualifiedNameHelper.java index 966aff96a0..7c3ebb5916 100644 --- a/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/FullyQualifiedNameHelper.java +++ b/opendaylight/config/yang-jmx-generator/src/main/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/FullyQualifiedNameHelper.java @@ -14,8 +14,9 @@ public class FullyQualifiedNameHelper { public static String getFullyQualifiedName(String packageName, String className) { - if (packageName.isEmpty()) + if (packageName.isEmpty()) { return className; + } return packageName + "." + className; } } diff --git a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/AbstractYangTest.java b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/AbstractYangTest.java index e3c3a3024c..a937af9a5e 100644 --- a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/AbstractYangTest.java +++ b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/AbstractYangTest.java @@ -7,8 +7,8 @@ */ package org.opendaylight.controller.config.yangjmxgenerator; -import static org.junit.Assert.assertNotNull; import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; import com.google.common.base.Preconditions; @@ -34,8 +34,8 @@ public abstract class AbstractYangTest { protected Map namesToModules; // are module names globally // unique? protected Module configModule, rpcContextModule, threadsModule, - threadsJavaModule, bgpListenerJavaModule, ietfInetTypesModule, - jmxModule, jmxImplModule, testFilesModule, testFiles1Module; + threadsJavaModule, bgpListenerJavaModule, ietfInetTypesModule, + jmxModule, jmxImplModule, testFilesModule, testFiles1Module; public static final String EVENTBUS_MXB_NAME = "eventbus"; public static final String ASYNC_EVENTBUS_MXB_NAME = "async-eventbus"; @@ -116,7 +116,7 @@ public abstract class AbstractYangTest { protected Map loadThreadsJava(Map modulesToSIEs, String packageName) { Map namesToMBEs = ModuleMXBeanEntry .create(threadsJavaModule, modulesToSIEs, context, new TypeProviderWrapper(new TypeProviderImpl - (context)), packageName); + (context)), packageName); Assert.assertNotNull(namesToMBEs); Set expectedMXBeanNames = Sets.newHashSet(EVENTBUS_MXB_NAME, ASYNC_EVENTBUS_MXB_NAME, THREADFACTORY_NAMING_MXB_NAME, diff --git a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryNameConflictTest.java b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryNameConflictTest.java index cac0ac705f..65f0f54ec4 100644 --- a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryNameConflictTest.java +++ b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryNameConflictTest.java @@ -10,6 +10,7 @@ package org.opendaylight.controller.config.yangjmxgenerator; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; +import com.google.common.base.Preconditions; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; @@ -18,7 +19,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; - import org.junit.Ignore; import org.junit.Test; import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.NameConflictException; @@ -30,11 +30,9 @@ import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Preconditions; - public class ModuleMXBeanEntryNameConflictTest extends AbstractYangTest { - private static final Logger logger = LoggerFactory + private static final Logger LOG = LoggerFactory .getLogger(ModuleMXBeanEntryNameConflictTest.class); public static final String PACKAGE_NAME = "pack2"; @@ -54,7 +52,7 @@ public class ModuleMXBeanEntryNameConflictTest extends AbstractYangTest { Module testedModule = loadYangs(yangFile, moduleName); try { - logger.debug("Testing {}", yangFile); + LOG.debug("Testing {}", yangFile); ModuleMXBeanEntry.create(testedModule, new HashMap(), context, new TypeProviderWrapper(new TypeProviderImpl(context)), diff --git a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryTest.java b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryTest.java index fab273c600..17d4d9a524 100644 --- a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryTest.java +++ b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ModuleMXBeanEntryTest.java @@ -18,7 +18,6 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import com.google.common.collect.Sets; - import java.net.URI; import java.net.URISyntaxException; import java.text.ParseException; @@ -31,11 +30,9 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; import java.util.regex.Matcher; - import javax.management.openmbean.ArrayType; import javax.management.openmbean.CompositeType; import javax.management.openmbean.SimpleType; - import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.config.yangjmxgenerator.attribute.AttributeIfc; diff --git a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/PackageTranslatorTest.java b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/PackageTranslatorTest.java index 031acfa312..10c42a890e 100644 --- a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/PackageTranslatorTest.java +++ b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/PackageTranslatorTest.java @@ -11,14 +11,12 @@ import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; +import com.google.common.collect.Maps; import java.net.URI; import java.util.Map; - import org.junit.Test; import org.opendaylight.yangtools.yang.model.api.Module; -import com.google.common.collect.Maps; - public class PackageTranslatorTest { public static final String EXPECTED_PACKAGE_PREFIX = "org.opendaylight.controller.config"; diff --git a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/RuntimeBeanEntryTest.java b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/RuntimeBeanEntryTest.java index 38b0a3afec..1503b84d64 100644 --- a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/RuntimeBeanEntryTest.java +++ b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/RuntimeBeanEntryTest.java @@ -20,9 +20,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; - import javax.management.openmbean.SimpleType; - import org.junit.Test; import org.mockito.Mockito; import org.opendaylight.controller.config.yangjmxgenerator.attribute.JavaAttribute; diff --git a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/SchemaContextTest.java b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/SchemaContextTest.java index b72d85c118..b189db4c08 100644 --- a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/SchemaContextTest.java +++ b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/SchemaContextTest.java @@ -15,20 +15,18 @@ import static org.junit.Assert.assertTrue; import static org.opendaylight.controller.config.yangjmxgenerator.ConfigConstants.MODULE_TYPE_Q_NAME; import static org.opendaylight.controller.config.yangjmxgenerator.ConfigConstants.SERVICE_TYPE_Q_NAME; +import com.google.common.base.Optional; +import com.google.common.collect.ImmutableMap; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; - import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; -import com.google.common.base.Optional; -import com.google.common.collect.ImmutableMap; - public class SchemaContextTest extends AbstractYangTest { IdentitySchemaNode findIdentityByQName(Module module, QName qName) { @@ -103,14 +101,15 @@ public class SchemaContextTest extends AbstractYangTest { Map> expectedIdentitiesToBases = new HashMap>(){ private static final long serialVersionUID = 1L; - { - put(ModuleMXBeanEntryTest.EVENTBUS_MXB_NAME, Optional.of(MODULE_TYPE_Q_NAME)); - put(ModuleMXBeanEntryTest.ASYNC_EVENTBUS_MXB_NAME, Optional.of(MODULE_TYPE_Q_NAME)); - put(ModuleMXBeanEntryTest.THREADFACTORY_NAMING_MXB_NAME, Optional.of(MODULE_TYPE_Q_NAME)); - put(ModuleMXBeanEntryTest.THREADPOOL_DYNAMIC_MXB_NAME, Optional.of(MODULE_TYPE_Q_NAME)); - put("thread-rpc-context", Optional.absent()); - put(ModuleMXBeanEntryTest.THREADPOOL_REGISTRY_IMPL_NAME, Optional.of(MODULE_TYPE_Q_NAME)); - }}; + { + put(ModuleMXBeanEntryTest.EVENTBUS_MXB_NAME, Optional.of(MODULE_TYPE_Q_NAME)); + put(ModuleMXBeanEntryTest.ASYNC_EVENTBUS_MXB_NAME, Optional.of(MODULE_TYPE_Q_NAME)); + put(ModuleMXBeanEntryTest.THREADFACTORY_NAMING_MXB_NAME, Optional.of(MODULE_TYPE_Q_NAME)); + put(ModuleMXBeanEntryTest.THREADPOOL_DYNAMIC_MXB_NAME, Optional.of(MODULE_TYPE_Q_NAME)); + put("thread-rpc-context", Optional.absent()); + put(ModuleMXBeanEntryTest.THREADPOOL_REGISTRY_IMPL_NAME, Optional.of(MODULE_TYPE_Q_NAME)); + } + }; assertAllIdentitiesAreExpected(threadsJavaModule, expectedIdentitiesToBases); diff --git a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ServiceInterfaceEntryTest.java b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ServiceInterfaceEntryTest.java index f22edbf948..f021c2c81d 100644 --- a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ServiceInterfaceEntryTest.java +++ b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/ServiceInterfaceEntryTest.java @@ -12,7 +12,6 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThat; import com.google.common.collect.Sets; - import java.net.URI; import java.net.URISyntaxException; import java.text.ParseException; @@ -25,7 +24,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; - import org.hamcrest.CoreMatchers; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; diff --git a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/YangModelSearchUtils.java b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/YangModelSearchUtils.java index 11c7d04bd7..ce70c9a82b 100644 --- a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/YangModelSearchUtils.java +++ b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/plugin/util/YangModelSearchUtils.java @@ -7,14 +7,12 @@ */ package org.opendaylight.controller.config.yangjmxgenerator.plugin.util; +import com.google.common.base.Preconditions; import java.util.Collection; import java.util.HashMap; import java.util.Map; - import org.opendaylight.yangtools.yang.model.api.Module; -import com.google.common.base.Preconditions; - public class YangModelSearchUtils { public static Map mapModulesByNames( diff --git a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/unknownextension/UnknownExtensionTest.java b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/unknownextension/UnknownExtensionTest.java index 91e92f70e0..0bd2db8b5e 100644 --- a/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/unknownextension/UnknownExtensionTest.java +++ b/opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/unknownextension/UnknownExtensionTest.java @@ -10,10 +10,10 @@ package org.opendaylight.controller.config.yangjmxgenerator.unknownextension; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import com.google.common.collect.Lists; import java.io.InputStream; import java.util.List; import java.util.Set; - import org.junit.Test; import org.opendaylight.controller.config.yangjmxgenerator.ConfigConstants; import org.opendaylight.controller.config.yangjmxgenerator.ServiceInterfaceEntryTest; @@ -21,8 +21,6 @@ import org.opendaylight.controller.config.yangjmxgenerator.plugin.util.YangModel import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl; -import com.google.common.collect.Lists; - public class UnknownExtensionTest extends ServiceInterfaceEntryTest { @Test diff --git a/opendaylight/config/yang-test-plugin/src/main/java/org/opendaylight/controller/config/yang/test/plugin/DeleteSources.java b/opendaylight/config/yang-test-plugin/src/main/java/org/opendaylight/controller/config/yang/test/plugin/DeleteSources.java index 461066215f..29b37af794 100644 --- a/opendaylight/config/yang-test-plugin/src/main/java/org/opendaylight/controller/config/yang/test/plugin/DeleteSources.java +++ b/opendaylight/config/yang-test-plugin/src/main/java/org/opendaylight/controller/config/yang/test/plugin/DeleteSources.java @@ -7,12 +7,11 @@ */ package org.opendaylight.controller.config.yang.test.plugin; +import java.io.File; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; -import java.io.File; - /** * Delete all Module/ModuleFactory sources * @@ -35,12 +34,12 @@ public class DeleteSources extends AbstractMojo{ } File sourceDirectory = new File(directory.getPath() + Util.replaceDots(".org.opendaylight.controller.config.yang.test.impl")); if (sourceDirectory == null || !sourceDirectory.exists()) { - super.getLog().error("Source directory does not exists " + sourceDirectory.getPath()); + super.getLog().error(String.format("Source directory does not exists %s", sourceDirectory.getPath())); } File[] sourceFiles = sourceDirectory.listFiles(); for (File sourceFile: sourceFiles) { if(sourceFile.getName().endsWith("Module.java") || sourceFile.getName().endsWith("ModuleFactory.java")) { - super.getLog().debug("Source file deleted: " + sourceFile.getName()); + super.getLog().debug(String.format("Source file deleted: %s", sourceFile.getName())); sourceFile.delete(); } } diff --git a/opendaylight/config/yang-test-plugin/src/main/java/org/opendaylight/controller/config/yang/test/plugin/ProcessSources.java b/opendaylight/config/yang-test-plugin/src/main/java/org/opendaylight/controller/config/yang/test/plugin/ProcessSources.java index 7a20f22440..4e392304a0 100644 --- a/opendaylight/config/yang-test-plugin/src/main/java/org/opendaylight/controller/config/yang/test/plugin/ProcessSources.java +++ b/opendaylight/config/yang-test-plugin/src/main/java/org/opendaylight/controller/config/yang/test/plugin/ProcessSources.java @@ -7,15 +7,14 @@ */ package org.opendaylight.controller.config.yang.test.plugin; +import java.io.File; +import java.io.IOException; +import java.util.regex.Pattern; import org.apache.commons.io.FileUtils; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; -import java.io.File; -import java.io.IOException; -import java.util.regex.Pattern; - /** * Add implementation code from stub.txt * @@ -39,7 +38,7 @@ public class ProcessSources extends AbstractMojo{ } File sourceDirectory = new File(directory.getPath() + Util.replaceDots(".org.opendaylight.controller.config.yang.test.impl")); if (!sourceDirectory.exists()) { - super.getLog().error("Source directory does not exists " + sourceDirectory.getPath()); + super.getLog().error(String.format("Source directory does not exists %s", sourceDirectory.getPath())); } File[] sourceFiles = sourceDirectory.listFiles(); @@ -49,7 +48,7 @@ public class ProcessSources extends AbstractMojo{ try { sourceContent = FileUtils.readFileToString(sourceFile); } catch (IOException e) { - getLog().error("Cannot read " + sourceFile.getAbsolutePath(), e); + getLog().error(String.format("Cannot read %s", sourceFile.getAbsolutePath()), e); continue; } if (sourceFile.getName().endsWith("Module.java") || sourceFile.getName().endsWith("ModuleFactory.java")) { @@ -59,7 +58,7 @@ public class ProcessSources extends AbstractMojo{ try { stubContent = FileUtils.readFileToString(stubFile); } catch (IOException e) { - getLog().error("Cannot read " + stubFile.getAbsolutePath(), e); + getLog().error(String.format("Cannot read %s", stubFile.getAbsolutePath()), e); } if (stubContent != null) { sourceContent = rewriteStub(sourceContent, stubContent); @@ -73,7 +72,7 @@ public class ProcessSources extends AbstractMojo{ try { FileUtils.write(sourceFile, sourceContent); } catch (IOException e) { - getLog().error("Cannot write " + sourceFile.getAbsolutePath(), e); + getLog().error(String.format("Cannot write %s", sourceFile.getAbsolutePath()), e); } } diff --git a/opendaylight/config/yang-test/src/test/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleTest.java b/opendaylight/config/yang-test/src/test/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleTest.java index fb9264749b..441de1f9f2 100644 --- a/opendaylight/config/yang-test/src/test/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleTest.java +++ b/opendaylight/config/yang-test/src/test/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleTest.java @@ -7,8 +7,19 @@ */ package org.opendaylight.controller.config.yang.test.impl; -import com.google.common.collect.Lists; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import com.google.common.collect.Lists; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import javax.management.InstanceAlreadyExistsException; +import javax.management.ObjectName; import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.config.api.IdentityAttributeRef; @@ -22,20 +33,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controll import org.opendaylight.yangtools.yang.data.impl.codec.CodecRegistry; import org.opendaylight.yangtools.yang.data.impl.codec.IdentityCodec; -import javax.management.InstanceAlreadyExistsException; -import javax.management.ObjectName; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; - public class NetconfTestImplModuleTest extends AbstractConfigTest { public static final String TESTING_DEP_PREFIX = "testing-dep"; diff --git a/opendaylight/md-sal/mdsal-artifacts/pom.xml b/opendaylight/md-sal/mdsal-artifacts/pom.xml index c765aa87a8..01a55e883e 100644 --- a/opendaylight/md-sal/mdsal-artifacts/pom.xml +++ b/opendaylight/md-sal/mdsal-artifacts/pom.xml @@ -246,6 +246,11 @@ sal-rest-docgen ${project.version}
+ + org.opendaylight.controller + sal-rest-docgen-maven + ${project.version} + diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index 6c87899eea..9f342b88e8 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -63,6 +63,7 @@ sal-rest-docgen + sal-rest-docgen-maven sal-akka-raft diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/RpcRouterCodegenInstance.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/RpcRouterCodegenInstance.java index 783e5c0cd4..d69aeed352 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/RpcRouterCodegenInstance.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/RpcRouterCodegenInstance.java @@ -8,11 +8,14 @@ package org.opendaylight.controller.sal.binding.codegen.impl; import static org.opendaylight.controller.sal.binding.codegen.RuntimeCodeHelper.setRoutingTable; - +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.Set; - +import javax.annotation.concurrent.GuardedBy; import org.opendaylight.controller.md.sal.common.api.routing.RouteChange; import org.opendaylight.controller.md.sal.common.api.routing.RouteChangeListener; import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RoutedRpcRegistration; @@ -29,9 +32,6 @@ import org.opendaylight.yangtools.yang.binding.RpcService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableSet; - public class RpcRouterCodegenInstance implements // RpcRouter, RouteChangeListener, InstanceIdentifier> { @@ -133,7 +133,14 @@ RpcRouter, RouteChangeListener, InstanceIdentif return new DefaultRpcImplementationRegistration(service); } - private class RoutedRpcRegistrationImpl extends AbstractObjectRegistration implements RoutedRpcRegistration { + private final class RoutedRpcRegistrationImpl extends AbstractObjectRegistration implements RoutedRpcRegistration { + /* + * FIXME: retaining this collection is not completely efficient. We really should be storing + * a reference to this registration, as a particular listener may be registered multiple + * times -- and then this goes kaboom in various aspects. + */ + @GuardedBy("this") + private final Collection> contexts = new ArrayList<>(1); public RoutedRpcRegistrationImpl(final T instance) { super(instance); @@ -145,32 +152,49 @@ RpcRouter, RouteChangeListener, InstanceIdentif } @Override - public void registerPath(final Class context, final InstanceIdentifier path) { + public synchronized void registerPath(final Class context, final InstanceIdentifier path) { + if (isClosed()) { + LOG.debug("Closed registration of {} ignoring new path {}", getInstance(), path); + return; + } + routingTables.get(context).updateRoute(path, getInstance()); + contexts.add(context); } @Override - public void unregisterPath(final Class context, final InstanceIdentifier path) { + public synchronized void unregisterPath(final Class context, final InstanceIdentifier path) { + if (isClosed()) { + LOG.debug("Closed unregistration of {} ignoring new path {}", getInstance(), path); + return; + } + routingTables.get(context).removeRoute(path, getInstance()); + contexts.remove(context); } + @Deprecated @Override public void registerInstance(final Class context, final InstanceIdentifier instance) { registerPath(context, instance); } + @Deprecated @Override public void unregisterInstance(final Class context, final InstanceIdentifier instance) { unregisterPath(context, instance); } @Override - protected void removeRegistration() { - + protected synchronized void removeRegistration() { + for (Class ctx : contexts) { + routingTables.get(ctx).removeAllReferences(getInstance()); + } + contexts.clear(); } } - private class DefaultRpcImplementationRegistration extends AbstractObjectRegistration implements RpcRegistration { + private final class DefaultRpcImplementationRegistration extends AbstractObjectRegistration implements RpcRegistration { protected DefaultRpcImplementationRegistration(final T instance) { diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/RpcRoutingTableImpl.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/RpcRoutingTableImpl.java index ce159b8f3e..78fa88bb1b 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/RpcRoutingTableImpl.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/codegen/impl/RpcRoutingTableImpl.java @@ -8,10 +8,10 @@ package org.opendaylight.controller.sal.binding.codegen.impl; import java.util.Collections; +import java.util.Iterator; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; - import org.opendaylight.controller.md.sal.common.api.routing.RouteChangeListener; import org.opendaylight.controller.md.sal.common.api.routing.RouteChangePublisher; import org.opendaylight.controller.md.sal.common.impl.routing.RoutingUtils; @@ -25,8 +25,7 @@ import org.opendaylight.yangtools.yang.binding.RpcService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -class RpcRoutingTableImpl // -implements // +final class RpcRoutingTableImpl implements Mutable, // RpcRoutingTable, // RouteChangePublisher, InstanceIdentifier> { @@ -42,7 +41,7 @@ implements // private RouteChangeListener, InstanceIdentifier> listener; private S defaultRoute; - public RpcRoutingTableImpl(String routerName,Class contextType, Class serviceType) { + public RpcRoutingTableImpl(final String routerName,final Class contextType, final Class serviceType) { super(); this.routerName = routerName; this.serviceType = serviceType; @@ -52,7 +51,7 @@ implements // } @Override - public void setDefaultRoute(S target) { + public void setDefaultRoute(final S target) { defaultRoute = target; } @@ -63,7 +62,7 @@ implements // @Override public , InstanceIdentifier>> ListenerRegistration registerRouteChangeListener( - L listener) { + final L listener) { return new SingletonListenerRegistration(listener); } @@ -74,7 +73,7 @@ implements // @Override @SuppressWarnings("unchecked") - public void updateRoute(InstanceIdentifier path, S service) { + public void updateRoute(final InstanceIdentifier path, final S service) { S previous = this.routes.put(path, service); LOGGER.debug("Route {} updated to {} in routing table {}",path,service,this); @@ -88,7 +87,7 @@ implements // @Override @SuppressWarnings("unchecked") - public void removeRoute(InstanceIdentifier path) { + public void removeRoute(final InstanceIdentifier path) { S previous = this.routes.remove(path); LOGGER.debug("Route {} to {} removed in routing table {}",path,previous,this); @SuppressWarnings("rawtypes") @@ -98,7 +97,7 @@ implements // } } - public void removeRoute(InstanceIdentifier path, S service) { + void removeRoute(final InstanceIdentifier path, final S service) { @SuppressWarnings("rawtypes") RouteChangeListener listenerCapture = listener; if (routes.remove(path, service) && listenerCapture != null) { @@ -108,7 +107,7 @@ implements // } @Override - public S getRoute(InstanceIdentifier nodeInstance) { + public S getRoute(final InstanceIdentifier nodeInstance) { S route = routes.get(nodeInstance); if (route != null) { return route; @@ -121,25 +120,28 @@ implements // return unmodifiableRoutes; } - protected void removeAllReferences(S service) { - + void removeAllReferences(final S service) { + // FIXME: replace this via properly-synchronized BiMap (or something) + final Iterator it = routes.values().iterator(); + while (it.hasNext()) { + final S s = it.next(); + if (service.equals(s)) { + it.remove(); + } + } } - - @Override public String toString() { return "RpcRoutingTableImpl [router=" + routerName + ", service=" + serviceType.getSimpleName() + ", context=" + contextType.getSimpleName() + "]"; } - - private class SingletonListenerRegistration, InstanceIdentifier>> extends AbstractObjectRegistration implements ListenerRegistration { - public SingletonListenerRegistration(L instance) { + public SingletonListenerRegistration(final L instance) { super(instance); listener = instance; } diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/DomToBindingRpcForwarder.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/DomToBindingRpcForwarder.java index 6be5f2d481..0f450d10bd 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/DomToBindingRpcForwarder.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/DomToBindingRpcForwarder.java @@ -2,13 +2,11 @@ package org.opendaylight.controller.sal.binding.impl.connect.dom; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; - import com.google.common.base.Function; import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableSet; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; - import java.lang.ref.WeakReference; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; @@ -18,7 +16,6 @@ import java.util.Map; import java.util.Set; import java.util.WeakHashMap; import java.util.concurrent.Callable; - import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; import org.opendaylight.controller.sal.binding.api.rpc.RpcRouter; import org.opendaylight.controller.sal.binding.impl.RpcProviderRegistryImpl; @@ -37,6 +34,7 @@ import org.opendaylight.yangtools.yang.binding.util.BindingReflections; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.data.api.CompositeNode; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -58,7 +56,7 @@ class DomToBindingRpcForwarder implements RpcImplementation, InvocationHandler { private final RpcProviderRegistry baRpcRegistry; private final RpcProviderRegistryImpl baRpcRegistryImpl; - private final Function, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier> toDOMInstanceIdentifier; + private final Function, YangInstanceIdentifier> toDOMInstanceIdentifier; private final static Method EQUALS_METHOD; @@ -75,10 +73,9 @@ class DomToBindingRpcForwarder implements RpcImplementation, InvocationHandler { this.rpcServiceType = new WeakReference>(service); this.supportedRpcs = mappingService.getRpcQNamesFor(service); - toDOMInstanceIdentifier = new Function, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier>() { - + this.toDOMInstanceIdentifier = new Function, YangInstanceIdentifier>() { @Override - public org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier apply(final InstanceIdentifier input) { + public YangInstanceIdentifier apply(final InstanceIdentifier input) { return mappingService.toDataDom(input); } }; @@ -162,7 +159,7 @@ class DomToBindingRpcForwarder implements RpcImplementation, InvocationHandler { public void registerPaths(final Class context, final Class service, final Set> set) { QName ctx = BindingReflections.findQName(context); - for (org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier path : FluentIterable.from(set).transform( + for (YangInstanceIdentifier path : FluentIterable.from(set).transform( toDOMInstanceIdentifier)) { for (org.opendaylight.controller.sal.core.api.Broker.RoutedRpcRegistration reg : registrations) { reg.registerPath(ctx, path); @@ -188,7 +185,7 @@ class DomToBindingRpcForwarder implements RpcImplementation, InvocationHandler { public void removePaths(final Class context, final Class service, final Set> set) { QName ctx = BindingReflections.findQName(context); - for (org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier path : FluentIterable.from(set).transform( + for (YangInstanceIdentifier path : FluentIterable.from(set).transform( toDOMInstanceIdentifier)) { for (org.opendaylight.controller.sal.core.api.Broker.RoutedRpcRegistration reg : registrations) { reg.unregisterPath(ctx, path); diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/DomToBindingRpcForwardingManager.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/DomToBindingRpcForwardingManager.java index 63d4b71210..b6bc488c20 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/DomToBindingRpcForwardingManager.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/DomToBindingRpcForwardingManager.java @@ -1,9 +1,10 @@ package org.opendaylight.controller.sal.binding.impl.connect.dom; +import com.google.common.base.Optional; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import java.util.WeakHashMap; - import org.opendaylight.controller.md.sal.common.api.routing.RouteChange; import org.opendaylight.controller.md.sal.common.api.routing.RouteChangeListener; import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; @@ -18,8 +19,6 @@ import org.opendaylight.yangtools.yang.binding.RpcService; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService; -import com.google.common.base.Optional; - /** * Manager responsible for instantiating forwarders responsible for * forwarding of RPC invocations from DOM Broker to Binding Aware Broker @@ -69,16 +68,21 @@ class DomToBindingRpcForwardingManager implements @Override public void onRouteChange(final RouteChange> change) { - for (Map.Entry>> entry : change.getAnnouncements().entrySet()) { - bindingRoutesAdded(entry); + // Process removals first + for (Entry>> entry : change.getRemovals().entrySet()) { + final Class context = entry.getKey().getRoutingContext(); + if (context != null) { + final Class service = entry.getKey().getRpcService(); + getRpcForwarder(service, context).removePaths(context, service, entry.getValue()); + } } - } - private void bindingRoutesAdded(final Map.Entry>> entry) { - Class context = entry.getKey().getRoutingContext(); - Class service = entry.getKey().getRpcService(); - if (context != null) { - getRpcForwarder(service, context).registerPaths(context, service, entry.getValue()); + for (Entry>> entry : change.getAnnouncements().entrySet()) { + final Class context = entry.getKey().getRoutingContext(); + if (context != null) { + final Class service = entry.getKey().getRpcService(); + getRpcForwarder(service, context).registerPaths(context, service, entry.getValue()); + } } } diff --git a/opendaylight/md-sal/sal-clustering-commons/pom.xml b/opendaylight/md-sal/sal-clustering-commons/pom.xml index f6d7dbab1a..35fa535da6 100644 --- a/opendaylight/md-sal/sal-clustering-commons/pom.xml +++ b/opendaylight/md-sal/sal-clustering-commons/pom.xml @@ -9,49 +9,78 @@ sal-clustering-commons - bundle - - + + - com.typesafe.akka - akka-actor_${scala.version} + junit + junit + test - - com.typesafe.akka - akka-cluster_${scala.version} + xmlunit + xmlunit - com.typesafe.akka - akka-persistence-experimental_${scala.version} + org.mockito + mockito-all + test - - com.typesafe.akka - akka-remote_${scala.version} + org.slf4j + slf4j-simple + test + - com.typesafe.akka - akka-testkit_${scala.version} + commons-lang + commons-lang - + - org.scala-lang - scala-library + com.typesafe.akka + akka-actor_${scala.version} - - - com.typesafe.akka - akka-slf4j_${scala.version} + com.typesafe.akka + akka-cluster_${scala.version} + + + com.typesafe.akka + akka-osgi_${scala.version} + + + com.typesafe.akka + akka-persistence-experimental_${scala.version} + + + com.typesafe.akka + akka-remote_${scala.version} + + + com.typesafe.akka + akka-slf4j_${scala.version} + + + com.typesafe.akka + akka-testkit_${scala.version} + + + com.codahale.metrics + metrics-core + + + com.codahale.metrics + metrics-graphite + + com.google.code.findbugs jsr305 @@ -65,9 +94,17 @@ protobuf-java 2.5.0 + + - commons-lang - commons-lang + org.scala-lang + scala-library + + + + + org.opendaylight.controller + netconf-util org.opendaylight.yangtools @@ -97,121 +134,13 @@ org.opendaylight.yangtools yang-model-util - org.opendaylight.yangtools yang-parser-impl - - org.opendaylight.controller - netconf-util - - - - xmlunit - xmlunit - - - junit - junit - test - - - junit - junit - test - - - org.mockito - mockito-all - test - - - org.slf4j - slf4j-simple - test - - - org.opendaylight.yangtools - util - - - org.opendaylight.yangtools - yang-common - - - org.opendaylight.yangtools - yang-data-api - - - org.opendaylight.yangtools - yang-data-impl - - - org.opendaylight.yangtools - yang-model-api - - - org.opendaylight.yangtools - yang-model-util - - - org.opendaylight.yangtools - yang-binding - - - - - com.typesafe.akka - akka-osgi_${scala.version} - - - com.typesafe.akka - akka-actor_${scala.version} - - - com.google.guava - guava - - - junit - junit - test - - - - xmlunit - xmlunit - - - - org.opendaylight.yangtools - yang-parser-impl - - - commons-lang - commons-lang - - - org.slf4j - slf4j-simple - test - - - com.google.code.findbugs - jsr305 - - - com.codahale.metrics - metrics-core - - - com.codahale.metrics - metrics-graphite - - + org.jacoco diff --git a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/AbstractDataModification.java b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/AbstractDataModification.java index 8950b3c849..1d3967f94d 100644 --- a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/AbstractDataModification.java +++ b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/AbstractDataModification.java @@ -104,8 +104,9 @@ public abstract class AbstractDataModification

, D> implements } private final void checkMutable() { - if (!NEW.equals(this.getStatus())) + if (!NEW.equals(this.getStatus())) { throw new IllegalStateException("Transaction was already submitted"); + } } @Override diff --git a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/routing/RoutingUtils.java b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/routing/RoutingUtils.java index 9001aaa4de..0672ba2b6d 100644 --- a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/routing/RoutingUtils.java +++ b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/routing/RoutingUtils.java @@ -80,16 +80,19 @@ public class RoutingUtils { } RouteChangeImpl other = (RouteChangeImpl) obj; if (announcement == null) { - if (other.announcement != null) + if (other.announcement != null) { return false; - } else if (!announcement.equals(other.announcement)) + } + } else if (!announcement.equals(other.announcement)) { return false; + } if (removal == null) { if (other.removal != null) { return false; } - } else if (!removal.equals(other.removal)) + } else if (!removal.equals(other.removal)) { return false; + } return true; } } diff --git a/opendaylight/md-sal/sal-common-util/src/main/java/org/opendaylight/controller/sal/common/util/Arguments.java b/opendaylight/md-sal/sal-common-util/src/main/java/org/opendaylight/controller/sal/common/util/Arguments.java index a4017c23a8..17ce5dffcf 100644 --- a/opendaylight/md-sal/sal-common-util/src/main/java/org/opendaylight/controller/sal/common/util/Arguments.java +++ b/opendaylight/md-sal/sal-common-util/src/main/java/org/opendaylight/controller/sal/common/util/Arguments.java @@ -23,8 +23,9 @@ public final class Arguments { */ @SuppressWarnings("unchecked") public static T checkInstanceOf(Object value, Class type) { - if(!type.isInstance(value)) + if(!type.isInstance(value)) { throw new IllegalArgumentException(String.format("Value %s is not of type %s", value, type)); + } return (T) value; } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-distributed-datastore/pom.xml index bd42a9cdd9..0c3387a5f8 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-distributed-datastore/pom.xml @@ -10,166 +10,143 @@ bundle + - com.google.guava - guava + junit + junit + test + + + org.mockito + mockito-all + test + + + org.slf4j + slf4j-simple + test + + + + org.osgi + org.osgi.core + com.typesafe.akka akka-actor_${scala.version} - com.typesafe.akka akka-cluster_${scala.version} - + + com.typesafe.akka + akka-osgi_${scala.version} + com.typesafe.akka akka-persistence-experimental_${scala.version} - com.typesafe.akka akka-remote_${scala.version} - + + com.typesafe.akka + akka-slf4j_${scala.version} + com.typesafe.akka akka-testkit_${scala.version} + - com.typesafe.akka - akka-slf4j_${scala.version} + com.codahale.metrics + metrics-core + + + com.codahale.metrics + metrics-graphite + - com.typesafe.akka - akka-osgi_${scala.version} + com.google.guava + guava - + + + org.scala-lang + scala-library + + org.opendaylight.controller config-api - + + org.opendaylight.controller + sal-akka-raft + 1.2.0-SNAPSHOT + org.opendaylight.controller sal-binding-api - org.opendaylight.controller sal-binding-config - - - org.opendaylight.yangtools - yang-data-api - - - - org.opendaylight.yangtools - yang-data-impl - - org.opendaylight.controller - sal-inmemory-datastore + sal-clustering-commons - org.opendaylight.controller sal-common-api - org.opendaylight.controller sal-common-util - org.opendaylight.controller sal-core-spi + + org.opendaylight.controller + sal-inmemory-datastore + org.opendaylight.yangtools concepts - org.opendaylight.yangtools yang-binding - org.opendaylight.yangtools yang-common - org.opendaylight.yangtools yang-data-api - - - org.osgi - org.osgi.core - - - - org.scala-lang - scala-library - - - - org.opendaylight.controller - sal-clustering-commons - - - - org.opendaylight.controller - sal-akka-raft - 1.2.0-SNAPSHOT - - - - com.codahale.metrics - metrics-core - - - - com.codahale.metrics - metrics-graphite - - - junit - junit - test - - - org.mockito - mockito-all - test - - - - org.slf4j - slf4j-simple - test + org.opendaylight.yangtools + yang-data-impl - - org.apache.felix maven-bundle-plugin diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModule.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModule.java index f1f16cd635..d299afa057 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModule.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/DomBrokerImplModule.java @@ -84,6 +84,7 @@ public final class DomBrokerImplModule extends org.opendaylight.controller.confi return new BrokerImpl(router, services); } + @Deprecated private DataProviderService createLegacyDataService(final DataStore legacyStore, final SchemaService schemaService) { YangInstanceIdentifier rootPath = YangInstanceIdentifier.builder().toInstance(); DataBrokerImpl dataService = new DataBrokerImpl(); diff --git a/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLBluePrint.java b/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLBluePrint.java index 867c7a47b5..a9c0f69fc6 100644 --- a/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLBluePrint.java +++ b/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLBluePrint.java @@ -114,8 +114,9 @@ public class XSQLBluePrint implements DatabaseMetaData, Serializable { String odlTableName) { Map map = this.odlNameToBluePrint .get(odlTableName); - if (map == null) + if (map == null) { return null; + } return map.values().toArray(new XSQLBluePrintNode[map.size()]); } diff --git a/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLBluePrintNode.java b/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLBluePrintNode.java index 8e9ed3a26b..4a56545238 100644 --- a/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLBluePrintNode.java +++ b/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLBluePrintNode.java @@ -240,12 +240,15 @@ public class XSQLBluePrintNode implements Serializable { XSQLBluePrintNode other = (XSQLBluePrintNode) obj; if (odlNode != null) { return getBluePrintNodeName().equals(other.getBluePrintNodeName()); - } else if (this.odlTableName == null && other.odlTableName != null) + } else if (this.odlTableName == null && other.odlTableName != null) { return false; - if (this.odlTableName != null && other.odlTableName == null) + } + if (this.odlTableName != null && other.odlTableName == null) { return false; - else + } + else { return this.odlTableName.equals(other.odlTableName); + } } @Override diff --git a/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCConnection.java b/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCConnection.java index bf1244f2e3..137631f611 100644 --- a/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCConnection.java +++ b/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCConnection.java @@ -73,8 +73,9 @@ public class JDBCConnection implements Connection, Runnable { } private void init() throws Exception { - if (addr.startsWith("http://")) + if (addr.startsWith("http://")) { addr = addr.substring(7); + } System.err.print("Address is:" + addr); socket = new Socket(addr, 40004); try { diff --git a/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCResultSet.java b/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCResultSet.java index 37eacd5595..d37fdb8819 100644 --- a/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCResultSet.java +++ b/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCResultSet.java @@ -66,16 +66,18 @@ public class JDBCResultSet implements Serializable, ResultSet, } public JDBCResultSet addSubQuery(String _sql,String logicalName) { - if(subQueries == null) + if (subQueries == null) { subQueries = new HashMap(); + } JDBCResultSet rs = new JDBCResultSet(_sql); this.subQueries.put(logicalName,rs); return rs; } public Map getSubQueries() { - if(this.subQueries==null) + if (this.subQueries==null) { this.subQueries = new HashMap<>(); + } return this.subQueries; } @@ -381,13 +383,15 @@ public class JDBCResultSet implements Serializable, ResultSet, for (Object child : children) { String odlNodeName = XSQLODLUtils.getNodeIdentiofier(child); - if (odlNodeName == null) + if (odlNodeName == null) { continue; + } XSQLBluePrintNode eNodes[] = bluePrint .getBluePrintNodeByODLTableName(odlNodeName); - if (eNodes == null) + if (eNodes == null) { continue; + } boolean match = false; for (XSQLBluePrintNode enode : eNodes) { @@ -397,8 +401,9 @@ public class JDBCResultSet implements Serializable, ResultSet, } } - if (!match) + if (!match) { continue; + } if (child.getClass().getName().endsWith("ImmutableContainerNode")) { result.add(child); @@ -466,8 +471,9 @@ public class JDBCResultSet implements Serializable, ResultSet, for (XSQLBluePrintNode eNode : eNodes) { bpn = this.tablesInQueryMap.get(eNode .getBluePrintNodeName()); - if (bpn != null) + if (bpn != null) { break; + } } boolean isObjectInCriteria = true; if (bpn != null) { @@ -482,8 +488,9 @@ public class JDBCResultSet implements Serializable, ResultSet, if (isObjectInCriteria) { if (root) { - if (!rec.data.isEmpty()) + if (!rec.data.isEmpty()) { addRecord(rec.data); + } } else { result.add(rec); } diff --git a/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCServer.java b/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCServer.java index b348d8fda8..7b2733ccf7 100644 --- a/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCServer.java +++ b/opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCServer.java @@ -193,10 +193,12 @@ public class JDBCServer extends Thread { int braketCount = 0; int endSubQuery = startSubQuery; do { - if (sql.charAt(endSubQuery) == '(') + if (sql.charAt(endSubQuery) == '(') { braketCount++; - else if (sql.charAt(endSubQuery) == ')') + } + else if (sql.charAt(endSubQuery) == ')') { braketCount--; + } endSubQuery++; } while (braketCount > 0 || endSubQuery == sql.length()); String subQuerySQL = sql.substring(startSubQuery + 1,endSubQuery - 1); @@ -338,8 +340,9 @@ public class JDBCServer extends Thread { whereTo = order; } - if(whereTo==-1) + if(whereTo==-1) { whereTo=lowSQL.length(); + } String whereStatement = rs.getSQL().substring(where + 5, whereTo) .trim(); diff --git a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/InMemoryDOMDataStore.java b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/InMemoryDOMDataStore.java index 4e01fa98e4..deddd6938a 100644 --- a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/InMemoryDOMDataStore.java +++ b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/InMemoryDOMDataStore.java @@ -241,6 +241,11 @@ public class InMemoryDOMDataStore extends TransactionReadyPrototype implements D LOG.warn("Store Tx: {} Data Precondition failed for {}.", transaction.getIdentifier(), e.getPath(), e); transaction.warnDebugContext(LOG); + + // For debugging purposes, allow dumping of the modification. Coupled with the above + // precondition log, it should allow us to understand what went on. + LOG.trace("Store Tx: {} modifications: {} tree: {}", modification, dataTree); + return Futures.immediateFailedFuture(new TransactionCommitFailedException("Data did not pass validation.", e)); } catch (Exception e) { LOG.warn("Unexpected failure in validation phase", e); diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfStateSchemas.java b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfStateSchemas.java index e0b774f53c..d758073a8e 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfStateSchemas.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/NetconfStateSchemas.java @@ -213,12 +213,18 @@ public final class NetconfStateSchemas { @Override public boolean equals(final Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } final RemoteYangSchema that = (RemoteYangSchema) o; - if (!qname.equals(that.qname)) return false; + if (!qname.equals(that.qname)) { + return false; + } return true; } diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/sal/NetconfDeviceDatastoreAdapter.java b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/sal/NetconfDeviceDatastoreAdapter.java index 04d5e5e449..fc69a7e253 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/sal/NetconfDeviceDatastoreAdapter.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/sal/NetconfDeviceDatastoreAdapter.java @@ -58,7 +58,7 @@ final class NetconfDeviceDatastoreAdapter implements AutoCloseable { final ReadWriteTransaction transaction = dataService.newReadWriteTransaction(); logger.trace("{}: Update device state transaction {} merging operational data started.", id, transaction.getIdentifier()); - transaction.merge(LogicalDatastoreType.OPERATIONAL, id.getBindingPath(), data); + transaction.put(LogicalDatastoreType.OPERATIONAL, id.getBindingPath(), data); logger.trace("{}: Update device state transaction {} merging operational data ended.", id, transaction.getIdentifier()); commitTransaction(transaction, "update"); @@ -83,11 +83,11 @@ final class NetconfDeviceDatastoreAdapter implements AutoCloseable { final Node nodeWithId = getNodeWithId(id); logger.trace("{}: Init device state transaction {} putting if absent operational data started.", id, transaction.getIdentifier()); - transaction.merge(LogicalDatastoreType.OPERATIONAL, path, nodeWithId); + transaction.put(LogicalDatastoreType.OPERATIONAL, path, nodeWithId); logger.trace("{}: Init device state transaction {} putting operational data ended.", id, transaction.getIdentifier()); logger.trace("{}: Init device state transaction {} putting if absent config data started.", id, transaction.getIdentifier()); - transaction.merge(LogicalDatastoreType.CONFIGURATION, path, nodeWithId); + transaction.put(LogicalDatastoreType.CONFIGURATION, path, nodeWithId); logger.trace("{}: Init device state transaction {} putting config data ended.", id, transaction.getIdentifier()); commitTransaction(transaction, "init"); diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/util/RemoteDeviceId.java b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/util/RemoteDeviceId.java index 175cb8e207..333b42e1c5 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/util/RemoteDeviceId.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/util/RemoteDeviceId.java @@ -71,13 +71,21 @@ public class RemoteDeviceId { @Override public boolean equals(final Object o) { - if (this == o) return true; - if (!(o instanceof RemoteDeviceId)) return false; + if (this == o) { + return true; + } + if (!(o instanceof RemoteDeviceId)) { + return false; + } final RemoteDeviceId that = (RemoteDeviceId) o; - if (!name.equals(that.name)) return false; - if (!bindingPath.equals(that.bindingPath)) return false; + if (!name.equals(that.name)) { + return false; + } + if (!bindingPath.equals(that.bindingPath)) { + return false; + } return true; } diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/RestconfDocumentedExceptionMapper.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/RestconfDocumentedExceptionMapper.java index 10201ab6f5..d564d4cbd4 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/RestconfDocumentedExceptionMapper.java +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/rest/impl/RestconfDocumentedExceptionMapper.java @@ -16,7 +16,6 @@ import static org.opendaylight.controller.sal.rest.api.Draft02.RestConfModule.ER import static org.opendaylight.controller.sal.rest.api.Draft02.RestConfModule.ERROR_TAG_QNAME; import static org.opendaylight.controller.sal.rest.api.Draft02.RestConfModule.ERROR_TYPE_QNAME; import static org.opendaylight.controller.sal.rest.api.Draft02.RestConfModule.NAMESPACE; - import com.google.common.base.Charsets; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; @@ -69,6 +68,7 @@ import org.xml.sax.InputSource; public class RestconfDocumentedExceptionMapper implements ExceptionMapper { private final static Logger LOG = LoggerFactory.getLogger(RestconfDocumentedExceptionMapper.class); + private static final TransformerFactory TRANSFORMER_FACTORY = TransformerFactory.newInstance(); @Context private HttpHeaders headers; @@ -178,8 +178,7 @@ public class RestconfDocumentedExceptionMapper implements ExceptionMapper + + + + 4.0.0 + + org.opendaylight.controller + sal-parent + 1.2.0-SNAPSHOT + + + sal-rest-docgen-maven + jar + + + + com.fasterxml.jackson.core + jackson-databind + + + org.opendaylight.controller + sal-rest-docgen + + + org.opendaylight.yangtools + yang-maven-plugin-spi + + + diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/impl/StaticDocGenerator.java b/opendaylight/md-sal/sal-rest-docgen-maven/src/main/java/org/opendaylight/controller/sal/rest/doc/maven/StaticDocGenerator.java similarity index 86% rename from opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/impl/StaticDocGenerator.java rename to opendaylight/md-sal/sal-rest-docgen-maven/src/main/java/org/opendaylight/controller/sal/rest/doc/maven/StaticDocGenerator.java index b658102d6f..280c26adb4 100644 --- a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/impl/StaticDocGenerator.java +++ b/opendaylight/md-sal/sal-rest-docgen-maven/src/main/java/org/opendaylight/controller/sal/rest/doc/maven/StaticDocGenerator.java @@ -5,33 +5,31 @@ * 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.controller.sal.rest.doc.impl; +package org.opendaylight.controller.sal.rest.doc.maven; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; - -import org.apache.maven.plugin.logging.Log; -import org.apache.maven.project.MavenProject; -import org.opendaylight.controller.sal.rest.doc.swagger.ApiDeclaration; -import org.opendaylight.controller.sal.rest.doc.swagger.Resource; -import org.opendaylight.controller.sal.rest.doc.swagger.ResourceList; -import org.opendaylight.yangtools.yang.model.api.Module; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.opendaylight.yangtools.yang2sources.spi.CodeGenerator; - -import javax.ws.rs.core.UriInfo; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; import java.util.Set; +import javax.ws.rs.core.UriInfo; +import org.apache.maven.plugin.logging.Log; +import org.apache.maven.project.MavenProject; +import org.opendaylight.controller.sal.rest.doc.impl.ApiDocGenerator; +import org.opendaylight.controller.sal.rest.doc.swagger.ApiDeclaration; +import org.opendaylight.controller.sal.rest.doc.swagger.Resource; +import org.opendaylight.controller.sal.rest.doc.swagger.ResourceList; +import org.opendaylight.yangtools.yang.model.api.Module; +import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang2sources.spi.CodeGenerator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * This class gathers all yang defined {@link Module}s and generates Swagger compliant documentation. @@ -41,13 +39,12 @@ public class StaticDocGenerator extends ApiDocGenerator implements CodeGenerator private static final String DEFAULT_OUTPUT_BASE_DIR_PATH = "target" + File.separator + "generated-resources" + File.separator + "swagger-api-documentation"; - private static Logger _logger = LoggerFactory.getLogger(ApiDocGenerator.class); + private static final Logger _logger = LoggerFactory.getLogger(ApiDocGenerator.class); private MavenProject mavenProject; private File projectBaseDir; private Map additionalConfig; private File resourceBaseDir; - private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); /** * @@ -58,15 +55,16 @@ public class StaticDocGenerator extends ApiDocGenerator implements CodeGenerator * @throws IOException */ @Override - public Collection generateSources(SchemaContext context, File outputDir, Set yangModules) throws IOException { + public Collection generateSources(final SchemaContext context, final File outputDir, final Set yangModules) throws IOException { List result = new ArrayList<>(); // Create Base Directory final File outputBaseDir; if (outputDir == null) { outputBaseDir = new File(DEFAULT_OUTPUT_BASE_DIR_PATH); + } else { + outputBaseDir = outputDir; } - else outputBaseDir = outputDir; outputBaseDir.mkdirs(); // Create Resources directory @@ -114,7 +112,7 @@ public class StaticDocGenerator extends ApiDocGenerator implements CodeGenerator } @Override - protected String generatePath(UriInfo uriInfo, String name, String revision) { + protected String generatePath(final UriInfo uriInfo, final String name, final String revision) { if (uriInfo == null) { return name + "(" + revision + ")"; } @@ -122,7 +120,7 @@ public class StaticDocGenerator extends ApiDocGenerator implements CodeGenerator } @Override - protected String createBasePathFromUriInfo(UriInfo uriInfo) { + protected String createBasePathFromUriInfo(final UriInfo uriInfo) { if (uriInfo == null) { return RESTCONF_CONTEXT_ROOT; } @@ -130,21 +128,21 @@ public class StaticDocGenerator extends ApiDocGenerator implements CodeGenerator } @Override - public void setLog(Log log) { + public void setLog(final Log log) { } @Override - public void setAdditionalConfig(Map additionalConfig) { + public void setAdditionalConfig(final Map additionalConfig) { this.additionalConfig = additionalConfig; } @Override - public void setResourceBaseDir(File resourceBaseDir) { + public void setResourceBaseDir(final File resourceBaseDir) { this.resourceBaseDir = resourceBaseDir; } @Override - public void setMavenProject(MavenProject mavenProject) { + public void setMavenProject(final MavenProject mavenProject) { this.mavenProject = mavenProject; this.projectBaseDir = mavenProject.getBasedir(); } diff --git a/opendaylight/md-sal/sal-rest-docgen/pom.xml b/opendaylight/md-sal/sal-rest-docgen/pom.xml index 53f1b2e692..22a128c1b7 100644 --- a/opendaylight/md-sal/sal-rest-docgen/pom.xml +++ b/opendaylight/md-sal/sal-rest-docgen/pom.xml @@ -72,11 +72,6 @@ yang-parser-impl - - org.opendaylight.yangtools - yang-maven-plugin-spi - - org.osgi org.osgi.core diff --git a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/DocProvider.java b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/DocProvider.java index 9442ca0c07..c07e9c78be 100644 --- a/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/DocProvider.java +++ b/opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/DocProvider.java @@ -76,11 +76,13 @@ public class DocProvider implements BundleActivator, ServiceTrackerCustomizer
reference, Broker service) { - if (session != null) + if (session != null) { session.close(); + } Broker broker = bundleContext.getService(reference); session = broker.registerProvider(this, bundleContext); diff --git a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/impl/helper/FlowComparator.java b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/impl/helper/FlowComparator.java index c6205cb13c..ded3197f0f 100644 --- a/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/impl/helper/FlowComparator.java +++ b/opendaylight/md-sal/statistics-manager/src/main/java/org/opendaylight/controller/md/statistics/manager/impl/helper/FlowComparator.java @@ -94,8 +94,12 @@ public final class FlowComparator { if (statsFlow == storedFlow) { return true; } - if (storedFlow == null && statsFlow != null) return false; - if (statsFlow == null && storedFlow != null) return false; + if (storedFlow == null && statsFlow != null) { + return false; + } + if (statsFlow == null && storedFlow != null) { + return false; + } if (storedFlow.getEthernetMatch() == null) { if (statsFlow.getEthernetMatch() != null) { return false; diff --git a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/transactions/TransactionProvider.java b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/transactions/TransactionProvider.java index 2967cf04c4..b2ee63a987 100644 --- a/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/transactions/TransactionProvider.java +++ b/opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/transactions/TransactionProvider.java @@ -77,8 +77,9 @@ public class TransactionProvider implements AutoCloseable { public synchronized ObjectName getOrCreateTransaction() { Optional ta = getTransaction(); - if (ta.isPresent()) + if (ta.isPresent()) { return ta.get(); + } transaction = configRegistryClient.beginConfig(); allOpenedTransactions.add(transaction); return transaction; diff --git a/opendaylight/netconf/config-netconf-connector/src/test/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/runtimerpc/RuntimeRpcElementResolvedTest.java b/opendaylight/netconf/config-netconf-connector/src/test/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/runtimerpc/RuntimeRpcElementResolvedTest.java index 3c4213cbc3..6ed2861b85 100644 --- a/opendaylight/netconf/config-netconf-connector/src/test/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/runtimerpc/RuntimeRpcElementResolvedTest.java +++ b/opendaylight/netconf/config-netconf-connector/src/test/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/runtimerpc/RuntimeRpcElementResolvedTest.java @@ -32,30 +32,30 @@ public class RuntimeRpcElementResolvedTest { @Parameterized.Parameters(name = "{index}: parsed({0}) contains moduleName:{1} and instanceName:{2}") public static Collection data() { return Arrays.asList(new Object[][] { - // With namespaces - { "/a:modules/a:module[a:name='instanceName'][a:type='moduleType']/b:listener-state[b:peer-id='127.0.0.1']", - new HashMap<>(ImmutableMap.of("listener-state", "127.0.0.1"))}, - { "/a:modules/a:module[a:name='instanceName'][a:type='moduleType']", - null}, + // With namespaces + { "/a:modules/a:module[a:name='instanceName'][a:type='moduleType']/b:listener-state[b:peer-id='127.0.0.1']", + new HashMap<>(ImmutableMap.of("listener-state", "127.0.0.1"))}, + { "/a:modules/a:module[a:name='instanceName'][a:type='moduleType']", + null}, - // Without namespaces - { "/modules/module[name=instanceName][type=moduleType]", null}, - { "/modules/module[type=moduleType][name='instanceName']", null}, - { "/modules/module[name=\'instanceName\'][type=\"moduleType\"]", null}, - { "/modules/module[type=moduleType and name=instanceName]", null}, - { "/modules/module[name=\"instanceName\" and type=moduleType]", null}, - { "/modules/module[type=\"moduleType\" and name=instanceName]", null}, - { "/modules/module[name=\'instanceName\' and type=\"moduleType\"]", null}, + // Without namespaces + { "/modules/module[name=instanceName][type=moduleType]", null}, + { "/modules/module[type=moduleType][name='instanceName']", null}, + { "/modules/module[name=\'instanceName\'][type=\"moduleType\"]", null}, + { "/modules/module[type=moduleType and name=instanceName]", null}, + { "/modules/module[name=\"instanceName\" and type=moduleType]", null}, + { "/modules/module[type=\"moduleType\" and name=instanceName]", null}, + { "/modules/module[name=\'instanceName\' and type=\"moduleType\"]", null}, - // With inner beans - { "/modules/module[name=instanceName and type=\"moduleType\"]/inner[key=b]", Collections.singletonMap("inner", "b")}, - { "/modules/module[name=instanceName and type=moduleType]/inner[key=b]", Collections.singletonMap("inner", "b")}, - { "/modules/module[name=instanceName and type=moduleType]/inner[key=\'b\']", Collections.singletonMap("inner", "b")}, - { "/modules/module[name=instanceName and type=moduleType]/inner[key=\"b\"]", Collections.singletonMap("inner", "b")}, + // With inner beans + { "/modules/module[name=instanceName and type=\"moduleType\"]/inner[key=b]", Collections.singletonMap("inner", "b")}, + { "/modules/module[name=instanceName and type=moduleType]/inner[key=b]", Collections.singletonMap("inner", "b")}, + { "/modules/module[name=instanceName and type=moduleType]/inner[key=\'b\']", Collections.singletonMap("inner", "b")}, + { "/modules/module[name=instanceName and type=moduleType]/inner[key=\"b\"]", Collections.singletonMap("inner", "b")}, - { "/modules/module[name=instanceName and type=\"moduleType\"]/inner[key2=a]/inner2[key=b]", - new HashMap<>(ImmutableMap.of("inner", "a", "inner2", "b")) - }, + { "/modules/module[name=instanceName and type=\"moduleType\"]/inner[key2=a]/inner2[key=b]", + new HashMap<>(ImmutableMap.of("inner", "a", "inner2", "b")) + }, }); } diff --git a/opendaylight/netconf/config-netconf-connector/src/test/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/NetconfOperationServiceImplTest.java b/opendaylight/netconf/config-netconf-connector/src/test/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/NetconfOperationServiceImplTest.java index 03bf4e3b32..413aa5cc67 100644 --- a/opendaylight/netconf/config-netconf-connector/src/test/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/NetconfOperationServiceImplTest.java +++ b/opendaylight/netconf/config-netconf-connector/src/test/java/org/opendaylight/controller/netconf/confignetconfconnector/osgi/NetconfOperationServiceImplTest.java @@ -20,9 +20,9 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import java.util.Set; +import org.hamcrest.CoreMatchers; import org.junit.Assert; import org.junit.Test; -import org.hamcrest.CoreMatchers; import org.opendaylight.controller.config.api.LookupRegistry; import org.opendaylight.controller.config.yangjmxgenerator.ModuleMXBeanEntry; import org.opendaylight.yangtools.yang.common.QName; diff --git a/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/ConfigPersisterNotificationHandler.java b/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/ConfigPersisterNotificationHandler.java index 7618807a0e..fe7b3da770 100644 --- a/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/ConfigPersisterNotificationHandler.java +++ b/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/ConfigPersisterNotificationHandler.java @@ -80,8 +80,9 @@ class ConfigPersisterNotificationListener implements NotificationListener { @Override public void handleNotification(final Notification notification, final Object handback) { - if (!(notification instanceof NetconfJMXNotification)) + if (!(notification instanceof NetconfJMXNotification)) { return; + } // Socket should not be closed at this point // Activator unregisters this as JMX listener before close is called diff --git a/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/ConfigPusherImpl.java b/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/ConfigPusherImpl.java index b06219c978..c20007d397 100644 --- a/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/ConfigPusherImpl.java +++ b/opendaylight/netconf/config-persister-impl/src/main/java/org/opendaylight/controller/netconf/persist/impl/ConfigPusherImpl.java @@ -78,17 +78,9 @@ public class ConfigPusherImpl implements ConfigPusher { synchronized (autoCloseables) { autoCloseables.add(jmxNotificationHandler); } - /* - * We have completed initial configuration. At this point - * it is good idea to perform garbage collection to prune - * any garbage we have accumulated during startup. - */ - LOG.debug("Running post-initialization garbage collection..."); - System.gc(); - LOG.debug("Post-initialization garbage collection completed."); - LOG.debug("ConfigPusher has pushed configs {}, gc completed", configs); - } - catch (NetconfDocumentedException e) { + + LOG.debug("ConfigPusher has pushed configs {}", configs); + } catch (NetconfDocumentedException e) { LOG.error("Error pushing configs {}",configs); throw new IllegalStateException(e); } diff --git a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionListenerFactory.java b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionListenerFactory.java index 4be8b91a94..0537942487 100644 --- a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionListenerFactory.java +++ b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionListenerFactory.java @@ -22,10 +22,10 @@ public class NetconfServerSessionListenerFactory implements SessionListenerFacto private final NetconfOperationServiceSnapshot netconfOperationServiceSnapshot; private final CapabilityProvider capabilityProvider; - public NetconfServerSessionListenerFactory(DefaultCommitNotificationProducer commitNotifier, - SessionMonitoringService monitor, - NetconfOperationServiceSnapshot netconfOperationServiceSnapshot, - CapabilityProvider capabilityProvider) { + public NetconfServerSessionListenerFactory(final DefaultCommitNotificationProducer commitNotifier, + final SessionMonitoringService monitor, + final NetconfOperationServiceSnapshot netconfOperationServiceSnapshot, + final CapabilityProvider capabilityProvider) { this.commitNotifier = commitNotifier; this.monitor = monitor; @@ -35,8 +35,7 @@ public class NetconfServerSessionListenerFactory implements SessionListenerFacto @Override public NetconfServerSessionListener getSessionListener() { - NetconfOperationRouter operationRouter = NetconfOperationRouterImpl.createOperationRouter( - netconfOperationServiceSnapshot, capabilityProvider, commitNotifier); + NetconfOperationRouter operationRouter = new NetconfOperationRouterImpl(netconfOperationServiceSnapshot, capabilityProvider, commitNotifier); return new NetconfServerSessionListener(operationRouter, monitor, netconfOperationServiceSnapshot); } } diff --git a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionNegotiator.java b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionNegotiator.java index 2f72ad4d47..0dd79e2723 100644 --- a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionNegotiator.java +++ b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionNegotiator.java @@ -30,7 +30,7 @@ public class NetconfServerSessionNegotiator AbstractNetconfSessionNegotiator { private static final Logger LOG = LoggerFactory.getLogger(NetconfServerSessionNegotiator.class); - + private static final String UNKNOWN = "unknown"; protected NetconfServerSessionNegotiator( diff --git a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationRouterImpl.java b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationRouterImpl.java index 2aa89ba2c4..aeab13f7e2 100644 --- a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationRouterImpl.java +++ b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfOperationRouterImpl.java @@ -8,11 +8,11 @@ package org.opendaylight.controller.netconf.impl.osgi; import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; -import com.google.common.collect.Sets; +import java.util.Collection; import java.util.Collections; import java.util.HashSet; -import java.util.Map; import java.util.NavigableMap; import java.util.Set; import java.util.TreeMap; @@ -39,92 +39,62 @@ import org.w3c.dom.Document; public class NetconfOperationRouterImpl implements NetconfOperationRouter { private static final Logger LOG = LoggerFactory.getLogger(NetconfOperationRouterImpl.class); - private final NetconfOperationServiceSnapshot netconfOperationServiceSnapshot; - private Set allNetconfOperations; - - private NetconfOperationRouterImpl(final NetconfOperationServiceSnapshot netconfOperationServiceSnapshot) { - this.netconfOperationServiceSnapshot = netconfOperationServiceSnapshot; - } - - private synchronized void initNetconfOperations(final Set allOperations) { - allNetconfOperations = allOperations; - } + private final Collection allNetconfOperations; - /** - * Factory method to produce instance of NetconfOperationRouter - */ - public static NetconfOperationRouter createOperationRouter(final NetconfOperationServiceSnapshot netconfOperationServiceSnapshot, - final CapabilityProvider capabilityProvider, final DefaultCommitNotificationProducer commitNotifier) { - NetconfOperationRouterImpl router = new NetconfOperationRouterImpl(netconfOperationServiceSnapshot); - - Preconditions.checkNotNull(netconfOperationServiceSnapshot); - Preconditions.checkNotNull(capabilityProvider); + public NetconfOperationRouterImpl(final NetconfOperationServiceSnapshot netconfOperationServiceSnapshot, final CapabilityProvider capabilityProvider, + final DefaultCommitNotificationProducer commitNotifier) { + this.netconfOperationServiceSnapshot = Preconditions.checkNotNull(netconfOperationServiceSnapshot); final String sessionId = netconfOperationServiceSnapshot.getNetconfSessionIdForReporting(); - final Set defaultNetconfOperations = Sets.newHashSet(); - defaultNetconfOperations.add(new DefaultGetSchema(capabilityProvider, sessionId)); - defaultNetconfOperations.add(new DefaultCloseSession(sessionId, router)); - defaultNetconfOperations.add(new DefaultStartExi(sessionId)); - defaultNetconfOperations.add(new DefaultStopExi(sessionId)); - defaultNetconfOperations.add(new DefaultCommit(commitNotifier, capabilityProvider, sessionId, router)); - - router.initNetconfOperations(getAllNetconfOperations(defaultNetconfOperations, netconfOperationServiceSnapshot)); - - return router; - } - - private static Set getAllNetconfOperations(final Set defaultNetconfOperations, - final NetconfOperationServiceSnapshot netconfOperationServiceSnapshot) { - Set result = new HashSet<>(); - result.addAll(defaultNetconfOperations); + final Set ops = new HashSet<>(); + ops.add(new DefaultGetSchema(capabilityProvider, sessionId)); + ops.add(new DefaultCloseSession(sessionId, this)); + ops.add(new DefaultStartExi(sessionId)); + ops.add(new DefaultStopExi(sessionId)); + ops.add(new DefaultCommit(commitNotifier, capabilityProvider, sessionId, this)); for (NetconfOperationService netconfOperationService : netconfOperationServiceSnapshot.getServices()) { - final Set netOpsFromService = netconfOperationService.getNetconfOperations(); - for (NetconfOperation netconfOperation : netOpsFromService) { - Preconditions.checkState(!result.contains(netconfOperation), + for (NetconfOperation netconfOperation : netconfOperationService.getNetconfOperations()) { + Preconditions.checkState(!ops.contains(netconfOperation), "Netconf operation %s already present", netconfOperation); - result.add(netconfOperation); + ops.add(netconfOperation); } } - return Collections.unmodifiableSet(result); + + allNetconfOperations = ImmutableSet.copyOf(ops); } @Override - public synchronized Document onNetconfMessage(final Document message, - final NetconfServerSession session) throws NetconfDocumentedException { + public Document onNetconfMessage(final Document message, final NetconfServerSession session) throws NetconfDocumentedException { Preconditions.checkNotNull(allNetconfOperations, "Operation router was not initialized properly"); - NetconfOperationExecution netconfOperationExecution; - - String messageAsString = ""; + final NetconfOperationExecution netconfOperationExecution; try { - messageAsString = XmlUtil.toString(message); netconfOperationExecution = getNetconfOperationWithHighestPriority(message, session); } catch (IllegalArgumentException | IllegalStateException e) { + final String messageAsString = XmlUtil.toString(message); LOG.warn("Unable to handle rpc {} on session {}", messageAsString, session, e); - String errorMessage = String.format("Unable to handle rpc %s on session %s", messageAsString, session); - Map errorInfo = Maps.newHashMap(); - - NetconfDocumentedException.ErrorTag tag; + final NetconfDocumentedException.ErrorTag tag; if (e instanceof IllegalArgumentException) { - errorInfo.put(NetconfDocumentedException.ErrorTag.operation_not_supported.toString(), e.getMessage()); tag = NetconfDocumentedException.ErrorTag.operation_not_supported; } else { - errorInfo.put(NetconfDocumentedException.ErrorTag.operation_failed.toString(), e.getMessage()); tag = NetconfDocumentedException.ErrorTag.operation_failed; } - throw new NetconfDocumentedException(errorMessage, e, NetconfDocumentedException.ErrorType.application, - tag, NetconfDocumentedException.ErrorSeverity.error, errorInfo); + throw new NetconfDocumentedException( + String.format("Unable to handle rpc %s on session %s", messageAsString, session), + e, NetconfDocumentedException.ErrorType.application, + tag, NetconfDocumentedException.ErrorSeverity.error, + Collections.singletonMap(tag.toString(), e.getMessage())); } catch (RuntimeException e) { throw handleUnexpectedEx("Unexpected exception during netconf operation sort", e); } try { - return executeOperationWithHighestPriority(message, netconfOperationExecution, messageAsString); + return executeOperationWithHighestPriority(message, netconfOperationExecution); } catch (RuntimeException e) { throw handleUnexpectedEx("Unexpected exception during netconf operation execution", e); } @@ -135,21 +105,22 @@ public class NetconfOperationRouterImpl implements NetconfOperationRouter { netconfOperationServiceSnapshot.close(); } - private NetconfDocumentedException handleUnexpectedEx(final String s, final Exception e) throws NetconfDocumentedException { - LOG.error(s, e); - - Map info = Maps.newHashMap(); - info.put(NetconfDocumentedException.ErrorSeverity.error.toString(), e.toString()); + private static NetconfDocumentedException handleUnexpectedEx(final String s, final Exception e) throws NetconfDocumentedException { + LOG.error("{}", s, e); return new NetconfDocumentedException("Unexpected error", NetconfDocumentedException.ErrorType.application, NetconfDocumentedException.ErrorTag.operation_failed, - NetconfDocumentedException.ErrorSeverity.error, info); + NetconfDocumentedException.ErrorSeverity.error, + Collections.singletonMap(NetconfDocumentedException.ErrorSeverity.error.toString(), e.toString())); } private Document executeOperationWithHighestPriority(final Document message, - final NetconfOperationExecution netconfOperationExecution, final String messageAsString) + final NetconfOperationExecution netconfOperationExecution) throws NetconfDocumentedException { - LOG.debug("Forwarding netconf message {} to {}", messageAsString, netconfOperationExecution.netconfOperation); + if (LOG.isDebugEnabled()) { + LOG.debug("Forwarding netconf message {} to {}", XmlUtil.toString(message), netconfOperationExecution.netconfOperation); + } + return netconfOperationExecution.execute(message); } diff --git a/opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/NetconfMonitoringServiceImplTest.java b/opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/NetconfMonitoringServiceImplTest.java index 395e5c0338..0d296c5f52 100644 --- a/opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/NetconfMonitoringServiceImplTest.java +++ b/opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/NetconfMonitoringServiceImplTest.java @@ -98,6 +98,7 @@ public class NetconfMonitoringServiceImplTest { NetconfServerSessionListener sessionListener = mock(NetconfServerSessionListener.class); Channel channel = mock(Channel.class); + doReturn("mockChannel").when(channel).toString(); NetconfHelloMessageAdditionalHeader header = new NetconfHelloMessageAdditionalHeader("name", "addr", "2", "tcp", "id"); NetconfServerSession sm = new NetconfServerSession(sessionListener, channel, 10, header); doNothing().when(sessionListener).onSessionUp(any(NetconfServerSession.class)); diff --git a/opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionNegotiatorTest.java b/opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionNegotiatorTest.java index c16046c642..c5d5bede36 100644 --- a/opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionNegotiatorTest.java +++ b/opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/NetconfServerSessionNegotiatorTest.java @@ -1,14 +1,13 @@ package org.opendaylight.controller.netconf.impl; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + import io.netty.channel.local.LocalAddress; +import java.net.InetSocketAddress; import org.apache.sshd.common.SshdSocketAddress; import org.junit.Test; -import java.net.InetSocketAddress; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - public class NetconfServerSessionNegotiatorTest { @Test diff --git a/opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/mapping/operations/DefaultStopExiTest.java b/opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/mapping/operations/DefaultStopExiTest.java index c06e78aa99..aaaf5991d4 100644 --- a/opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/mapping/operations/DefaultStopExiTest.java +++ b/opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/mapping/operations/DefaultStopExiTest.java @@ -31,6 +31,7 @@ public class DefaultStopExiTest { DefaultStopExi exi = new DefaultStopExi(""); Document doc = XmlUtil.newDocument(); Channel channel = mock(Channel.class); + doReturn("mockChannel").when(channel).toString(); ChannelPipeline pipeline = mock(ChannelPipeline.class); doReturn(pipeline).when(channel).pipeline(); ChannelHandler channelHandler = mock(ChannelHandler.class); diff --git a/opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/NetconfITSecureTest.java b/opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/NetconfITSecureTest.java index fdc9a02006..5f316d11c1 100644 --- a/opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/NetconfITSecureTest.java +++ b/opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/NetconfITSecureTest.java @@ -25,7 +25,6 @@ import io.netty.channel.EventLoopGroup; import io.netty.channel.local.LocalAddress; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.util.concurrent.GlobalEventExecutor; -import java.io.File; import java.io.IOException; import java.net.InetSocketAddress; import java.nio.file.Files; @@ -78,7 +77,6 @@ public class NetconfITSecureTest extends AbstractNetconfConfigTest { public static final String USERNAME = "user"; public static final String PASSWORD = "pwd"; - private File sshKeyPair; private SshProxyServer sshProxyServer; private ExecutorService nioExec; @@ -87,8 +85,6 @@ public class NetconfITSecureTest extends AbstractNetconfConfigTest { @Before public void setUp() throws Exception { - sshKeyPair = Files.createTempFile("sshKeyPair", ".pem").toFile(); - sshKeyPair.deleteOnExit(); nioExec = Executors.newFixedThreadPool(1); clientGroup = new NioEventLoopGroup(); minaTimerEx = Executors.newScheduledThreadPool(1); @@ -98,12 +94,13 @@ public class NetconfITSecureTest extends AbstractNetconfConfigTest { .setBindingAddress(TLS_ADDRESS) .setLocalAddress(NetconfConfigUtil.getNetconfLocalAddress()) .setAuthenticator(new PasswordAuthenticator() { - @Override - public boolean authenticate(final String username, final String password, final ServerSession session) { - return true; - } - }) - .setKeyPairProvider(new PEMGeneratorHostKeyProvider(sshKeyPair.toPath().toAbsolutePath().toString())) + @Override + public boolean authenticate(final String username, final String password, final ServerSession session) { + return true; + } + } + ) + .setKeyPairProvider(new PEMGeneratorHostKeyProvider(Files.createTempFile("prefix", "suffix").toAbsolutePath().toString())) .setIdleTimeout(Integer.MAX_VALUE) .createSshProxyServerConfiguration()); } diff --git a/opendaylight/netconf/netconf-monitoring/src/test/java/org/opendaylight/controller/netconf/monitoring/osgi/NetconfMonitoringActivatorTest.java b/opendaylight/netconf/netconf-monitoring/src/test/java/org/opendaylight/controller/netconf/monitoring/osgi/NetconfMonitoringActivatorTest.java index 6664f3e733..792a591512 100644 --- a/opendaylight/netconf/netconf-monitoring/src/test/java/org/opendaylight/controller/netconf/monitoring/osgi/NetconfMonitoringActivatorTest.java +++ b/opendaylight/netconf/netconf-monitoring/src/test/java/org/opendaylight/controller/netconf/monitoring/osgi/NetconfMonitoringActivatorTest.java @@ -40,6 +40,7 @@ public class NetconfMonitoringActivatorTest { ServiceReference[] refs = new ServiceReference[2]; doReturn(Arrays.asList(refs)).when(context).getServiceReferences(any(Class.class), anyString()); doReturn(refs).when(context).getServiceReferences(anyString(), anyString()); + doNothing().when(context).removeServiceListener(any(ServiceListener.class)); } @Test diff --git a/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/AbstractNetconfSession.java b/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/AbstractNetconfSession.java index efa1c731c8..fd11ce8c51 100644 --- a/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/AbstractNetconfSession.java +++ b/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/AbstractNetconfSession.java @@ -87,6 +87,7 @@ public abstract class AbstractNetconfSession chunkSize) { - ByteBuf chunk = Unpooled.buffer(chunkSize); - chunk.writeBytes(createChunkHeader(chunkSize)); - chunk.writeBytes(msg.readBytes(chunkSize)); - ctx.write(chunk); - } - out.writeBytes(createChunkHeader(msg.readableBytes())); - out.writeBytes(msg.readBytes(msg.readableBytes())); - out.writeBytes(NetconfMessageConstants.END_OF_CHUNK); - } + protected void encode(final ChannelHandlerContext ctx, final ByteBuf msg, final ByteBuf out) { + do { + final int xfer = Math.min(chunkSize, msg.readableBytes()); + + out.writeBytes(NetconfMessageConstants.START_OF_CHUNK); + out.writeBytes(String.valueOf(xfer).getBytes(Charsets.US_ASCII)); + out.writeByte('\n'); - private ByteBuf createChunkHeader(int chunkSize) { - return Unpooled.wrappedBuffer(NetconfMessageHeader.toBytes(chunkSize)); + out.writeBytes(msg, xfer); + } while (msg.isReadable()); + + out.writeBytes(NetconfMessageConstants.END_OF_CHUNK); } } diff --git a/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/NetconfEXIToMessageDecoder.java b/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/NetconfEXIToMessageDecoder.java index 0d8f9eeec1..77d33e1831 100644 --- a/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/NetconfEXIToMessageDecoder.java +++ b/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/NetconfEXIToMessageDecoder.java @@ -17,7 +17,6 @@ import java.io.IOException; import java.io.InputStream; import java.util.List; import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.sax.SAXTransformerFactory; import javax.xml.transform.sax.TransformerHandler; @@ -33,6 +32,7 @@ import org.xml.sax.SAXException; public final class NetconfEXIToMessageDecoder extends ByteToMessageDecoder { private static final Logger LOG = LoggerFactory.getLogger(NetconfEXIToMessageDecoder.class); + private static final SAXTransformerFactory FACTORY = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); private final NetconfEXICodec codec; @@ -60,10 +60,7 @@ public final class NetconfEXIToMessageDecoder extends ByteToMessageDecoder { } final EXIReader r = codec.getReader(); - - final SAXTransformerFactory transformerFactory - = (SAXTransformerFactory) TransformerFactory.newInstance(); - final TransformerHandler handler = transformerFactory.newTransformerHandler(); + final TransformerHandler handler = FACTORY.newTransformerHandler(); r.setContentHandler(handler); final DOMResult domResult = new DOMResult(); diff --git a/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/NetconfMessageToEXIEncoder.java b/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/NetconfMessageToEXIEncoder.java index 55dcd9daba..f1e72ed85f 100644 --- a/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/NetconfMessageToEXIEncoder.java +++ b/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/NetconfMessageToEXIEncoder.java @@ -14,11 +14,9 @@ import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToByteEncoder; import java.io.IOException; import java.io.OutputStream; -import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.sax.SAXResult; -import javax.xml.transform.sax.SAXTransformerFactory; import org.opendaylight.controller.netconf.api.NetconfMessage; import org.openexi.proc.common.EXIOptionsException; import org.openexi.sax.Transmogrifier; @@ -26,10 +24,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; public final class NetconfMessageToEXIEncoder extends MessageToByteEncoder { - private static final Logger LOG = LoggerFactory.getLogger(NetconfMessageToEXIEncoder.class); - - private static final SAXTransformerFactory saxTransformerFactory = (SAXTransformerFactory)SAXTransformerFactory.newInstance(); private final NetconfEXICodec codec; public NetconfMessageToEXIEncoder(final NetconfEXICodec codec) { @@ -44,8 +39,7 @@ public final class NetconfMessageToEXIEncoder extends MessageToByteEncoder { private static final Logger LOG = LoggerFactory.getLogger(NetconfMessageToXMLEncoder.class); - private static final TransformerFactory FACTORY = TransformerFactory.newInstance(); private final Optional clientId; @@ -38,13 +34,13 @@ public class NetconfMessageToXMLEncoder extends MessageToByteEncoderabsent()); } - public NetconfMessageToXMLEncoder(Optional clientId) { + public NetconfMessageToXMLEncoder(final Optional clientId) { this.clientId = clientId; } @Override @VisibleForTesting - public void encode(ChannelHandlerContext ctx, NetconfMessage msg, ByteBuf out) throws IOException, TransformerException { + public void encode(final ChannelHandlerContext ctx, final NetconfMessage msg, final ByteBuf out) throws IOException, TransformerException { LOG.trace("Sent to encode : {}", msg); if (clientId.isPresent()) { @@ -53,14 +49,10 @@ public class NetconfMessageToXMLEncoder extends MessageToByteEncoder DEFAULT_TRANSFORMER = new ThreadLocal() { + @Override + protected Transformer initialValue() { + try { + return FACTORY.newTransformer(); + } catch (TransformerConfigurationException | TransformerFactoryConfigurationError e) { + throw new IllegalStateException("Unexpected error while instantiating a Transformer", e); + } + }; + + @Override + public void set(final Transformer value) { + throw new UnsupportedOperationException(); + }; + }; + + private static final ThreadLocal PRETTY_TRANSFORMER = new ThreadLocal() { + @Override + protected Transformer initialValue() { + final Transformer ret; + + try { + ret = FACTORY.newTransformer(); + } catch (TransformerConfigurationException | TransformerFactoryConfigurationError e) { + throw new IllegalStateException("Unexpected error while instantiating a Transformer", e); + } + + ret.setOutputProperty(OutputKeys.INDENT, "yes"); + ret.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); + return ret; + }; + + @Override + public void set(final Transformer value) { + throw new UnsupportedOperationException(); + }; + }; + + private ThreadLocalTransformers() { + throw new UnsupportedOperationException("Utility class"); + } + + /** + * Get the transformer with default configuration. + * + * @return A transformer with default configuration based on the default implementation. + */ + public static Transformer getDefaultTransformer() { + return DEFAULT_TRANSFORMER.get(); + } + + /** + * Get the transformer with default configuration, but with automatic indentation + * and the XML declaration removed. + * + * @return A transformer with human-friendly configuration. + */ + public static Transformer getPrettyTransformer() { + return PRETTY_TRANSFORMER.get(); + } +} diff --git a/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/ssh/client/AsyncSshHandler.java b/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/ssh/client/AsyncSshHandler.java index c8c9128282..05cd598cdc 100644 --- a/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/ssh/client/AsyncSshHandler.java +++ b/opendaylight/netconf/netconf-netty-util/src/main/java/org/opendaylight/controller/netconf/nettyutil/handler/ssh/client/AsyncSshHandler.java @@ -176,6 +176,7 @@ public class AsyncSshHandler extends ChannelOutboundHandlerAdapter { @Override public synchronized void connect(final ChannelHandlerContext ctx, final SocketAddress remoteAddress, final SocketAddress localAddress, final ChannelPromise promise) throws Exception { + LOG.debug("XXX session connecting on channel {}. promise: {} ", ctx.channel(), connectPromise); this.connectPromise = promise; startSsh(ctx, remoteAddress); } @@ -187,23 +188,21 @@ public class AsyncSshHandler extends ChannelOutboundHandlerAdapter { @Override public synchronized void disconnect(final ChannelHandlerContext ctx, final ChannelPromise promise) { - // Super disconnect is necessary in this case since we are using NioSocketChannel and it needs to cleanup its resources - // e.g. Socket that it tries to open in its constructor (https://bugs.opendaylight.org/show_bug.cgi?id=2430) - // TODO better solution would be to implement custom ChannelFactory + Channel that will use mina SSH lib internally: port this to custom channel implementation - try { - super.disconnect(ctx, ctx.newPromise()); - } catch (final Exception e) { - LOG.warn("Unable to cleanup all resources for channel: {}. Ignoring.", ctx.channel(), e); - } + LOG.trace("Closing SSH session on channel: {} with connect promise in state: {}", ctx.channel(), connectPromise); - if(sshReadAsyncListener != null) { - sshReadAsyncListener.close(); + // If we have already succeeded and the session was dropped after, we need to fire inactive to notify reconnect logic + if(connectPromise.isSuccess()) { + ctx.fireChannelInactive(); } if(sshWriteAsyncHandler != null) { sshWriteAsyncHandler.close(); } + if(sshReadAsyncListener != null) { + sshReadAsyncListener.close(); + } + if(session!= null && !session.isClosed() && !session.isClosing()) { session.close(false).addListener(new SshFutureListener() { @Override @@ -216,13 +215,17 @@ public class AsyncSshHandler extends ChannelOutboundHandlerAdapter { }); } - // If we have already succeeded and the session was dropped after, we need to fire inactive to notify reconnect logic - if(connectPromise.isSuccess()) { - ctx.fireChannelInactive(); + // Super disconnect is necessary in this case since we are using NioSocketChannel and it needs to cleanup its resources + // e.g. Socket that it tries to open in its constructor (https://bugs.opendaylight.org/show_bug.cgi?id=2430) + // TODO better solution would be to implement custom ChannelFactory + Channel that will use mina SSH lib internally: port this to custom channel implementation + try { + // Disconnect has to be closed after inactive channel event was fired, because it interferes with it + super.disconnect(ctx, ctx.newPromise()); + } catch (final Exception e) { + LOG.warn("Unable to cleanup all resources for channel: {}. Ignoring.", ctx.channel(), e); } channel = null; - promise.setSuccess(); LOG.debug("SSH session closed on channel: {}", ctx.channel()); } diff --git a/opendaylight/netconf/netconf-netty-util/src/test/java/org/opendaylight/controller/netconf/nettyutil/AbstractNetconfSessionTest.java b/opendaylight/netconf/netconf-netty-util/src/test/java/org/opendaylight/controller/netconf/nettyutil/AbstractNetconfSessionTest.java index 8199963c81..7946afdbf5 100644 --- a/opendaylight/netconf/netconf-netty-util/src/test/java/org/opendaylight/controller/netconf/nettyutil/AbstractNetconfSessionTest.java +++ b/opendaylight/netconf/netconf-netty-util/src/test/java/org/opendaylight/controller/netconf/nettyutil/AbstractNetconfSessionTest.java @@ -60,6 +60,7 @@ public class AbstractNetconfSessionTest { doReturn(mock(ChannelFuture.class)).when(channel).writeAndFlush(any(NetconfMessage.class)); doReturn(pipeline).when(channel).pipeline(); + doReturn("mockChannel").when(channel).toString(); doReturn(mock(ChannelFuture.class)).when(channel).close(); doReturn(null).when(pipeline).replace(anyString(), anyString(), any(ChannelHandler.class)); diff --git a/opendaylight/netconf/netconf-netty-util/src/test/java/org/opendaylight/controller/netconf/nettyutil/handler/ChunkedFramingMechanismEncoderTest.java b/opendaylight/netconf/netconf-netty-util/src/test/java/org/opendaylight/controller/netconf/nettyutil/handler/ChunkedFramingMechanismEncoderTest.java index 556bece43f..4488c5e1be 100644 --- a/opendaylight/netconf/netconf-netty-util/src/test/java/org/opendaylight/controller/netconf/nettyutil/handler/ChunkedFramingMechanismEncoderTest.java +++ b/opendaylight/netconf/netconf-netty-util/src/test/java/org/opendaylight/controller/netconf/nettyutil/handler/ChunkedFramingMechanismEncoderTest.java @@ -9,20 +9,16 @@ package org.opendaylight.controller.netconf.nettyutil.handler; import static org.junit.Assert.assertEquals; -import static org.mockito.Matchers.anyObject; -import static org.mockito.Mockito.doAnswer; -import com.google.common.collect.Lists; +import static org.junit.Assert.assertTrue; +import com.google.common.base.Charsets; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; -import java.util.List; +import java.nio.ByteBuffer; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; -import org.opendaylight.controller.netconf.util.messages.NetconfMessageConstants; public class ChunkedFramingMechanismEncoderTest { @@ -48,30 +44,20 @@ public class ChunkedFramingMechanismEncoderTest { @Test public void testEncode() throws Exception { - final List chunks = Lists.newArrayList(); - doAnswer(new Answer() { - @Override - public Object answer(final InvocationOnMock invocation) throws Throwable { - chunks.add((ByteBuf) invocation.getArguments()[0]); - return null; - } - }).when(ctx).write(anyObject()); - final ChunkedFramingMechanismEncoder encoder = new ChunkedFramingMechanismEncoder(chunkSize); final int lastChunkSize = 20; final ByteBuf src = Unpooled.wrappedBuffer(getByteArray(chunkSize * 4 + lastChunkSize)); final ByteBuf destination = Unpooled.buffer(); encoder.encode(ctx, src, destination); - assertEquals(4, chunks.size()); - final int framingSize = "#256\n".getBytes().length + 1/* new line at end */; + assertEquals(1077, destination.readableBytes()); - for (final ByteBuf chunk : chunks) { - assertEquals(chunkSize + framingSize, chunk.readableBytes()); - } + byte[] buf = new byte[destination.readableBytes()]; + destination.readBytes(buf); + String s = Charsets.US_ASCII.decode(ByteBuffer.wrap(buf)).toString(); - final int lastFramingSize = "#20\n".length() + NetconfMessageConstants.END_OF_CHUNK.length + 1/* new line at end */; - assertEquals(lastChunkSize + lastFramingSize, destination.readableBytes()); + assertTrue(s.startsWith("\n#256\na")); + assertTrue(s.endsWith("\n#20\naaaaaaaaaaaaaaaaaaaa\n##\n")); } private byte[] getByteArray(final int size) { diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/NetconfMessageConstants.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/NetconfMessageConstants.java index 5c2770a8c1..89285d18c0 100644 --- a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/NetconfMessageConstants.java +++ b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/messages/NetconfMessageConstants.java @@ -27,6 +27,7 @@ public final class NetconfMessageConstants { public static final int MAX_HEADER_LENGTH = 13; + public static final byte[] START_OF_CHUNK = "\n#".getBytes(Charsets.UTF_8); public static final byte[] END_OF_CHUNK = "\n##\n".getBytes(Charsets.UTF_8); } diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XMLNetconfUtil.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XMLNetconfUtil.java index eaaf320b02..6569dba714 100644 --- a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XMLNetconfUtil.java +++ b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XMLNetconfUtil.java @@ -8,6 +8,7 @@ package org.opendaylight.controller.netconf.util.xml; +import javax.xml.namespace.NamespaceContext; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathExpression; import javax.xml.xpath.XPathExpressionException; @@ -15,14 +16,17 @@ import javax.xml.xpath.XPathFactory; import org.opendaylight.controller.netconf.api.xml.XmlNetconfConstants; public final class XMLNetconfUtil { + private static final XPathFactory FACTORY = XPathFactory.newInstance(); + private static final NamespaceContext NS_CONTEXT = new HardcodedNamespaceResolver("netconf", + XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0); - private XMLNetconfUtil() {} + private XMLNetconfUtil() { + throw new UnsupportedOperationException("Utility class"); + } - public static XPathExpression compileXPath(String xPath) { - final XPathFactory xPathfactory = XPathFactory.newInstance(); - final XPath xpath = xPathfactory.newXPath(); - xpath.setNamespaceContext(new HardcodedNamespaceResolver("netconf", - XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0)); + public static XPathExpression compileXPath(final String xPath) { + final XPath xpath = FACTORY.newXPath(); + xpath.setNamespaceContext(NS_CONTEXT); try { return xpath.compile(xPath); } catch (final XPathExpressionException e) { diff --git a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlUtil.java b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlUtil.java index 68c4d9fdab..ee5b27b2e7 100644 --- a/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlUtil.java +++ b/opendaylight/netconf/netconf-util/src/main/java/org/opendaylight/controller/netconf/util/xml/XmlUtil.java @@ -43,7 +43,9 @@ public final class XmlUtil { public static final String XMLNS_ATTRIBUTE_KEY = "xmlns"; public static final String XMLNS_URI = "http://www.w3.org/2000/xmlns/"; - private static final DocumentBuilderFactory BUILDERFACTORY; + private static final DocumentBuilderFactory BUILDER_FACTORY; + private static final TransformerFactory TRANSFORMER_FACTORY = TransformerFactory.newInstance(); + private static final SchemaFactory SCHEMA_FACTORY = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); static { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); @@ -51,32 +53,34 @@ public final class XmlUtil { factory.setCoalescing(true); factory.setIgnoringElementContentWhitespace(true); factory.setIgnoringComments(true); - BUILDERFACTORY = factory; + BUILDER_FACTORY = factory; } - private XmlUtil() {} + private XmlUtil() { + throw new UnsupportedOperationException("Utility class"); + } - public static Element readXmlToElement(String xmlContent) throws SAXException, IOException { + public static Element readXmlToElement(final String xmlContent) throws SAXException, IOException { Document doc = readXmlToDocument(xmlContent); return doc.getDocumentElement(); } - public static Element readXmlToElement(InputStream xmlContent) throws SAXException, IOException { + public static Element readXmlToElement(final InputStream xmlContent) throws SAXException, IOException { Document doc = readXmlToDocument(xmlContent); return doc.getDocumentElement(); } - public static Document readXmlToDocument(String xmlContent) throws SAXException, IOException { + public static Document readXmlToDocument(final String xmlContent) throws SAXException, IOException { return readXmlToDocument(new ByteArrayInputStream(xmlContent.getBytes(Charsets.UTF_8))); } // TODO improve exceptions throwing // along with XmlElement - public static Document readXmlToDocument(InputStream xmlContent) throws SAXException, IOException { + public static Document readXmlToDocument(final InputStream xmlContent) throws SAXException, IOException { DocumentBuilder dBuilder; try { - dBuilder = BUILDERFACTORY.newDocumentBuilder(); + dBuilder = BUILDER_FACTORY.newDocumentBuilder(); } catch (ParserConfigurationException e) { throw new IllegalStateException("Failed to parse XML document", e); } @@ -86,20 +90,20 @@ public final class XmlUtil { return doc; } - public static Element readXmlToElement(File xmlFile) throws SAXException, IOException { + public static Element readXmlToElement(final File xmlFile) throws SAXException, IOException { return readXmlToDocument(new FileInputStream(xmlFile)).getDocumentElement(); } public static Document newDocument() { try { - DocumentBuilder builder = BUILDERFACTORY.newDocumentBuilder(); + DocumentBuilder builder = BUILDER_FACTORY.newDocumentBuilder(); return builder.newDocument(); } catch (ParserConfigurationException e) { throw new IllegalStateException("Failed to create document", e); } } - public static Element createElement(final Document document, String qName, Optional namespaceURI) { + public static Element createElement(final Document document, final String qName, final Optional namespaceURI) { if(namespaceURI.isPresent()) { final Element element = document.createElementNS(namespaceURI.get(), qName); String name = XMLNS_ATTRIBUTE_KEY; @@ -112,20 +116,20 @@ public final class XmlUtil { return document.createElement(qName); } - public static Element createTextElement(Document document, String qName, String content, Optional namespaceURI) { + public static Element createTextElement(final Document document, final String qName, final String content, final Optional namespaceURI) { Element typeElement = createElement(document, qName, namespaceURI); typeElement.appendChild(document.createTextNode(content)); return typeElement; } - public static Element createTextElementWithNamespacedContent(Document document, String qName, String prefix, - String namespace, String contentWithoutPrefix) { + public static Element createTextElementWithNamespacedContent(final Document document, final String qName, final String prefix, + final String namespace, final String contentWithoutPrefix) { return createTextElementWithNamespacedContent(document, qName, prefix, namespace, contentWithoutPrefix, Optional.absent()); } - public static Element createTextElementWithNamespacedContent(Document document, String qName, String prefix, - String namespace, String contentWithoutPrefix, Optional namespaceURI) { + public static Element createTextElementWithNamespacedContent(final Document document, final String qName, final String prefix, + final String namespace, final String contentWithoutPrefix, final Optional namespaceURI) { String content = createPrefixedValue(XmlNetconfConstants.PREFIX, contentWithoutPrefix); Element element = createTextElement(document, qName, content, namespaceURI); @@ -134,25 +138,25 @@ public final class XmlUtil { return element; } - public static String createPrefixedValue(String prefix, String value) { + public static String createPrefixedValue(final String prefix, final String value) { return prefix + ":" + value; } - public static String toString(Document document) { + public static String toString(final Document document) { return toString(document.getDocumentElement()); } - public static String toString(Element xml) { + public static String toString(final Element xml) { return toString(xml, false); } - public static String toString(XmlElement xmlElement) { + public static String toString(final XmlElement xmlElement) { return toString(xmlElement.getDomElement(), false); } - public static String toString(Element xml, boolean addXmlDeclaration) { + public static String toString(final Element xml, final boolean addXmlDeclaration) { try { - Transformer transformer = TransformerFactory.newInstance().newTransformer(); + Transformer transformer = TRANSFORMER_FACTORY.newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, addXmlDeclaration ? "no" : "yes"); @@ -166,26 +170,25 @@ public final class XmlUtil { } } - public static String toString(Document doc, boolean addXmlDeclaration) { + public static String toString(final Document doc, final boolean addXmlDeclaration) { return toString(doc.getDocumentElement(), addXmlDeclaration); } - public static Schema loadSchema(InputStream... fromStreams) { + public static Schema loadSchema(final InputStream... fromStreams) { Source[] sources = new Source[fromStreams.length]; int i = 0; for (InputStream stream : fromStreams) { sources[i++] = new StreamSource(stream); } - final SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); try { - return schemaFactory.newSchema(sources); + return SCHEMA_FACTORY.newSchema(sources); } catch (SAXException e) { throw new IllegalStateException("Failed to instantiate XML schema", e); } } - public static Object evaluateXPath(XPathExpression expr, Object rootNode, QName returnType) { + public static Object evaluateXPath(final XPathExpression expr, final Object rootNode, final QName returnType) { try { return expr.evaluate(rootNode, returnType); } catch (XPathExpressionException e) { @@ -193,7 +196,7 @@ public final class XmlUtil { } } - public static Document createDocumentCopy(Document original) { + public static Document createDocumentCopy(final Document original) { final Document copiedDocument = newDocument(); final Node copiedRoot = copiedDocument.importNode(original.getDocumentElement(), true); copiedDocument.appendChild(copiedRoot); diff --git a/opendaylight/netconf/netconf-util/src/test/java/org/opendaylight/controller/netconf/util/NetconfUtilTest.java b/opendaylight/netconf/netconf-util/src/test/java/org/opendaylight/controller/netconf/util/NetconfUtilTest.java index dc175c5733..007dfdc1e7 100644 --- a/opendaylight/netconf/netconf-util/src/test/java/org/opendaylight/controller/netconf/util/NetconfUtilTest.java +++ b/opendaylight/netconf/netconf-util/src/test/java/org/opendaylight/controller/netconf/util/NetconfUtilTest.java @@ -7,9 +7,9 @@ */ package org.opendaylight.controller.netconf.util; +import static org.hamcrest.CoreMatchers.containsString; import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; -import static org.hamcrest.CoreMatchers.containsString; import org.junit.Test; import org.opendaylight.controller.netconf.util.xml.XmlUtil; diff --git a/opendaylight/netconf/pom.xml b/opendaylight/netconf/pom.xml index 8b14adf252..e1aa6ce3ed 100644 --- a/opendaylight/netconf/pom.xml +++ b/opendaylight/netconf/pom.xml @@ -113,7 +113,7 @@ maven-checkstyle-plugin false - false + true checkstyle-logging.xml true true