From: Tomas Olvecky Date: Fri, 29 Nov 2013 13:28:09 +0000 (+0100) Subject: Fix equals and add hashcode to generated abstract module. X-Git-Tag: jenkins-controller-bulk-release-prepare-only-2-1~294^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=a46c42c28125c59bb3b6d6ed37f15501414c0fa4 Fix equals and add hashcode to generated abstract module. Equals and hashcode should evaluate just identifier. For change detection between commits, new method isSame has been added. Fields that are arrays now use Arrays.equals instead of wrong equals. Change-Id: I63cb29027c07b9737532d7faa75729ea026ffe20 Signed-off-by: Tomas Olvecky --- 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 517143e656..fe9e885b6f 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 @@ -48,4 +48,8 @@ public class Field { public String getDefinition() { return definition; } + + public boolean isArray() { + return type.endsWith("[]"); + } } diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_abs_template_new.ftl b/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_abs_template_new.ftl index 7351822db9..d0646f467a 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_abs_template_new.ftl +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_abs_template_new.ftl @@ -55,6 +55,11 @@ package ${packageName}; dependencyResolver.validateDependency(${field.dependency.sie.fullyQualifiedName}.class, ${field.name}, ${field.name}JmxAttribute); + customValidation(); + } + + protected void customValidation(){ + } // caches of resolved dependencies @@ -110,7 +115,7 @@ package ${packageName}; public boolean canReuseInstance(${typeDeclaration.name} oldModule){ // allow reusing of old instance if no parameters was changed - return equals(oldModule); + return isSame(oldModule); } public ${instanceType} reuseInstance(${instanceType} oldInstance){ @@ -120,34 +125,50 @@ package ${packageName}; public abstract ${instanceType} createInstance(); - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - ${typeDeclaration.name} other = (${typeDeclaration.name}) obj; - - + public boolean isSame(${typeDeclaration.name} other) { + if (other == null) { + throw new IllegalArgumentException("Parameter 'other' is null"); + } <#list moduleFields as field> <#if field.dependent==true> if (${field.name}Dependency == null) { if (other.${field.name}Dependency != null) return false; - } else if (!${field.name}Dependency.equals(other.${field.name}Dependency)) + } else if (!${field.name}Dependency.equals(other.${field.name}Dependency)) { return false; + } <#else> if (${field.name} == null) { - if (other.${field.name} != null) + if (other.${field.name} != null) { return false; - } else if (!${field.name}.equals(other.${field.name})) + } + } else if + <#if field.array == false> + (${field.name}.equals(other.${field.name}) == false) + <#else> + (java.util.Arrays.equals(${field.name},other.${field.name}) == false) + + { return false; + } return true; } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + ${typeDeclaration.name} that = (${typeDeclaration.name}) o; + + return identifier.equals(that.identifier); + } + + @Override + public int hashCode() { + return identifier.hashCode(); + } } diff --git a/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_stub_template.ftl b/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_stub_template.ftl index 23dce9321e..2db505e54e 100644 --- a/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_stub_template.ftl +++ b/opendaylight/config/yang-jmx-generator-plugin/src/main/resources/freeMarker/module_stub_template.ftl @@ -2,20 +2,20 @@ package ${packageName}; <@javadocD object=javadoc/> -<@typeDeclarationD object=typeDeclaration/> -{ +<@typeDeclarationD object=typeDeclaration/> { public ${typeDeclaration.name}(${moduleNameType} identifier, ${dependencyResolverType} dependencyResolver) { super(identifier, dependencyResolver); } - public ${typeDeclaration.name}(${moduleNameType} identifier, ${dependencyResolverType} dependencyResolver, ${typeDeclaration.name} oldModule, ${instanceType} oldInstance) { + public ${typeDeclaration.name}(${moduleNameType} identifier, ${dependencyResolverType} dependencyResolver, + ${typeDeclaration.name} oldModule, ${instanceType} oldInstance) { + super(identifier, dependencyResolver, oldModule, oldInstance); } @Override - public void validate(){ - super.validate(); + protected void customValidation(){ // Add custom validation for module attributes here. } 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 556abad7af..0d6ec3cccb 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 @@ -584,7 +584,7 @@ public class JMXGeneratorTest extends AbstractGeneratorTest { assertContains(reqIfc, PackageTranslatorTest.EXPECTED_PACKAGE_PREFIX + ".threads.ThreadFactoryServiceInterface"); - assertEquals("Incorrenct number of generated methods", 24, + assertEquals("Incorrenct number of generated methods", 27, visitor.methods.size()); assertEquals("Incorrenct number of generated method descriptions", 3, visitor.methodDescriptions.size()); diff --git a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/DepTestImplModule.java b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/DepTestImplModule.java index 76df839665..1122c1ffa4 100644 --- a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/DepTestImplModule.java +++ b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/DepTestImplModule.java @@ -1,38 +1,23 @@ -/** - * Generated file - - * Generated from: yang module name: config-test-impl yang module local name: impl-dep - * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator - * Generated at: Fri Sep 27 13:02:28 CEST 2013 - * - * Do not modify this file unless it is present under src/main directory - */ package org.opendaylight.controller.config.yang.test.impl; - /** * */ -public final class DepTestImplModule - extends - org.opendaylight.controller.config.yang.test.impl.AbstractDepTestImplModule { +public final class DepTestImplModule extends org.opendaylight.controller.config.yang.test.impl.AbstractDepTestImplModule + { - public DepTestImplModule( - org.opendaylight.controller.config.api.ModuleIdentifier name, - org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { - super(name, dependencyResolver); + public DepTestImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { + super(identifier, dependencyResolver); } - public DepTestImplModule( - org.opendaylight.controller.config.api.ModuleIdentifier name, - org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, + public DepTestImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, DepTestImplModule oldModule, java.lang.AutoCloseable oldInstance) { - super(name, dependencyResolver, oldModule, oldInstance); + + super(identifier, dependencyResolver, oldModule, oldInstance); } @Override - public void validate() { - super.validate(); + protected void customValidation(){ // Add custom validation for module attributes here. } @@ -44,5 +29,4 @@ public final class DepTestImplModule } }; } - } diff --git a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/DepTestImplModuleFactory.java b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/DepTestImplModuleFactory.java index b07cf40f82..4152736768 100644 --- a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/DepTestImplModuleFactory.java +++ b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/DepTestImplModuleFactory.java @@ -1,19 +1,10 @@ -/** - * Generated file - - * Generated from: yang module name: config-test-impl yang module local name: impl-dep - * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator - * Generated at: Fri Sep 27 13:02:28 CEST 2013 - * - * Do not modify this file unless it is present under src/main directory - */ package org.opendaylight.controller.config.yang.test.impl; /** * */ -public class DepTestImplModuleFactory - extends - org.opendaylight.controller.config.yang.test.impl.AbstractDepTestImplModuleFactory { +public class DepTestImplModuleFactory extends org.opendaylight.controller.config.yang.test.impl.AbstractDepTestImplModuleFactory +{ + } diff --git a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/DepTestImplModuleStub.txt b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/DepTestImplModuleStub.txt new file mode 100644 index 0000000000..80c1e54a15 --- /dev/null +++ b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/DepTestImplModuleStub.txt @@ -0,0 +1,5 @@ + return new AutoCloseable() { + @Override + public void close() throws Exception { + } + }; diff --git a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModule.java b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModule.java index ae86d42d8e..7e1848dd6a 100644 --- a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModule.java +++ b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModule.java @@ -1,159 +1,28 @@ -/** - * Generated file - - * Generated from: yang module name: config-test-impl yang module local name: impl-netconf - * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator - * Generated at: Fri Sep 27 13:02:28 CEST 2013 - * - * Do not modify this file unless it is present under src/main directory - */ package org.opendaylight.controller.config.yang.test.impl; - -import com.google.common.collect.Lists; - -import java.util.List; - /** * */ -public final class NetconfTestImplModule - extends - org.opendaylight.controller.config.yang.test.impl.AbstractNetconfTestImplModule { +public final class NetconfTestImplModule extends org.opendaylight.controller.config.yang.test.impl.AbstractNetconfTestImplModule + { - public NetconfTestImplModule( - org.opendaylight.controller.config.api.ModuleIdentifier name, - org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { - super(name, dependencyResolver); + public NetconfTestImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { + super(identifier, dependencyResolver); } - public NetconfTestImplModule( - org.opendaylight.controller.config.api.ModuleIdentifier name, - org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, + public NetconfTestImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, NetconfTestImplModule oldModule, java.lang.AutoCloseable oldInstance) { - super(name, dependencyResolver, oldModule, oldInstance); + + super(identifier, dependencyResolver, oldModule, oldInstance); } @Override - public void validate() { - super.validate(); + protected void customValidation(){ // Add custom validation for module attributes here. } @Override public java.lang.AutoCloseable createInstance() { - return registerRuntimeBeans(); + return NetconfTestImplModuleUtil.registerRuntimeBeans(this); } - - private NetconfTestImplRuntimeRegistration registerRuntimeBeans() { - NetconfTestImplRuntimeRegistration reg = getRootRuntimeBeanRegistratorWrapper().register(new NetconfTestImplRuntimeMXBean() { - - @Override - public Long getCreatedSessions() { - return getSimpleLong(); - } - - @Override - public Asdf getAsdf() { - final Asdf asdf = new Asdf(); - asdf.setSimpleString("asdf"); - return asdf; - } - - @Override - public String noArg(final String arg1) { - return arg1.toUpperCase(); - } - - }); - - for (int i = 0; i < getSimpleShort(); i++) { - final int finalI = i; - - reg.register(new InnerRunningDataAdditionalRuntimeMXBean() { - @Override - public Integer getSimpleInt3() { - return getSimpleTest(); - } - - @Override - public Deep4 getDeep4() { - final Deep4 d = new Deep4(); - d.setBoool(false); - return d; - } - - @Override - public String getSimpleString() { - return Integer.toString(finalI); - } - - @Override - public void noArgInner() { - } - }); - - InnerRunningDataRuntimeRegistration innerReg = reg.register(new InnerRunningDataRuntimeMXBean() { - @Override - public Integer getSimpleInt3() { - return finalI; - } - - @Override - public Deep2 getDeep2() { - return new Deep2(); - } - }); - - for (int j = 0; j < getSimpleShort(); j++) { - final int finalJ = j; - innerReg.register(new InnerInnerRunningDataRuntimeMXBean() { - @Override - public List getNotStateBean() { - NotStateBean b1 = new NotStateBean(); - b1.setElement("not state"); - return Lists.newArrayList(b1); - } - - @Override - public Integer getSimpleInt3() { - return finalJ; - } - - @Override - public Deep3 getDeep3() { - return new Deep3(); - } - - @Override - public List getListOfStrings() { - return Lists.newArrayList("l1", "l2"); - } - - @Override - public List listOutput() { - return Lists.newArrayList(new RetValList()); - } - - @Override - public Boolean noArgInnerInner(Integer integer, Boolean aBoolean) { - return aBoolean; - } - - @Override - public RetValContainer containerOutput() { - return new RetValContainer(); - } - - @Override - public List leafListOutput() { - return Lists.newArrayList("1", "2"); - } - }); - } - } - - return reg; - } - } diff --git a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleFactory.java b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleFactory.java index e99c64dd3b..7cab528868 100644 --- a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleFactory.java +++ b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleFactory.java @@ -1,19 +1,10 @@ -/** - * Generated file - - * Generated from: yang module name: config-test-impl yang module local name: impl-netconf - * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator - * Generated at: Fri Sep 27 13:02:28 CEST 2013 - * - * Do not modify this file unless it is present under src/main directory - */ package org.opendaylight.controller.config.yang.test.impl; /** * */ -public class NetconfTestImplModuleFactory - extends - org.opendaylight.controller.config.yang.test.impl.AbstractNetconfTestImplModuleFactory { +public class NetconfTestImplModuleFactory extends org.opendaylight.controller.config.yang.test.impl.AbstractNetconfTestImplModuleFactory +{ + } diff --git a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleStub.txt b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleStub.txt new file mode 100644 index 0000000000..6515412f24 --- /dev/null +++ b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleStub.txt @@ -0,0 +1 @@ +return NetconfTestImplModuleUtil.registerRuntimeBeans(this); diff --git a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleUtil.java b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleUtil.java new file mode 100644 index 0000000000..58943c9df2 --- /dev/null +++ b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/NetconfTestImplModuleUtil.java @@ -0,0 +1,126 @@ +/** + * @author Tomas Olvecky + * + * 11 2013 + * + * Copyright (c) 2013 by Cisco Systems, Inc. + * All rights reserved. + */ +package org.opendaylight.controller.config.yang.test.impl; + +import com.google.common.collect.Lists; + +import java.util.List; + +public class NetconfTestImplModuleUtil { + static NetconfTestImplRuntimeRegistration registerRuntimeBeans(final NetconfTestImplModule module) { + NetconfTestImplRuntimeRegistration reg = module.getRootRuntimeBeanRegistratorWrapper().register(new NetconfTestImplRuntimeMXBean() { + + @Override + public Long getCreatedSessions() { + return module.getSimpleLong(); + } + + @Override + public Asdf getAsdf() { + final Asdf asdf = new Asdf(); + asdf.setSimpleString("asdf"); + return asdf; + } + + @Override + public String noArg(final String arg1) { + return arg1.toUpperCase(); + } + + }); + + for (int i = 0; i < module.getSimpleShort(); i++) { + final int finalI = i; + + reg.register(new InnerRunningDataAdditionalRuntimeMXBean() { + @Override + public Integer getSimpleInt3() { + return module.getSimpleTest(); + } + + @Override + public Deep4 getDeep4() { + final Deep4 d = new Deep4(); + d.setBoool(false); + return d; + } + + @Override + public String getSimpleString() { + return Integer.toString(finalI); + } + + @Override + public void noArgInner() { + } + }); + + InnerRunningDataRuntimeRegistration innerReg = reg.register(new InnerRunningDataRuntimeMXBean() { + @Override + public Integer getSimpleInt3() { + return finalI; + } + + @Override + public Deep2 getDeep2() { + return new Deep2(); + } + }); + + for (int j = 0; j < module.getSimpleShort(); j++) { + final int finalJ = j; + innerReg.register(new InnerInnerRunningDataRuntimeMXBean() { + @Override + public List getNotStateBean() { + NotStateBean b1 = new NotStateBean(); + b1.setElement("not state"); + return Lists.newArrayList(b1); + } + + @Override + public Integer getSimpleInt3() { + return finalJ; + } + + @Override + public Deep3 getDeep3() { + return new Deep3(); + } + + @Override + public List getListOfStrings() { + return Lists.newArrayList("l1", "l2"); + } + + @Override + public List listOutput() { + return Lists.newArrayList(new RetValList()); + } + + @Override + public Boolean noArgInnerInner(Integer integer, Boolean aBoolean) { + return aBoolean; + } + + @Override + public RetValContainer containerOutput() { + return new RetValContainer(); + } + + @Override + public List leafListOutput() { + return Lists.newArrayList("1", "2"); + } + }); + } + } + + return reg; + } +} diff --git a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/TestImplModule.java b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/TestImplModule.java index dfd9ebc021..52a71620bf 100644 --- a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/TestImplModule.java +++ b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/TestImplModule.java @@ -1,38 +1,23 @@ -/** - * Generated file - - * Generated from: yang module name: config-test-impl yang module local name: impl - * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator - * Generated at: Fri Sep 27 13:02:28 CEST 2013 - * - * Do not modify this file unless it is present under src/main directory - */ package org.opendaylight.controller.config.yang.test.impl; - /** * */ -public final class TestImplModule - extends - org.opendaylight.controller.config.yang.test.impl.AbstractTestImplModule { +public final class TestImplModule extends org.opendaylight.controller.config.yang.test.impl.AbstractTestImplModule + { - public TestImplModule( - org.opendaylight.controller.config.api.ModuleIdentifier name, - org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { - super(name, dependencyResolver); + public TestImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { + super(identifier, dependencyResolver); } - public TestImplModule( - org.opendaylight.controller.config.api.ModuleIdentifier name, - org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, + public TestImplModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, TestImplModule oldModule, java.lang.AutoCloseable oldInstance) { - super(name, dependencyResolver, oldModule, oldInstance); + + super(identifier, dependencyResolver, oldModule, oldInstance); } @Override - public void validate() { - super.validate(); + protected void customValidation(){ // Add custom validation for module attributes here. } @@ -44,5 +29,4 @@ public final class TestImplModule } }; } - } diff --git a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/TestImplModuleFactory.java b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/TestImplModuleFactory.java index 1e86c83655..ce9aa92b64 100644 --- a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/TestImplModuleFactory.java +++ b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/TestImplModuleFactory.java @@ -1,19 +1,10 @@ -/** - * Generated file - - * Generated from: yang module name: config-test-impl yang module local name: impl - * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator - * Generated at: Fri Sep 27 13:02:28 CEST 2013 - * - * Do not modify this file unless it is present under src/main directory - */ package org.opendaylight.controller.config.yang.test.impl; /** * */ -public class TestImplModuleFactory - extends - org.opendaylight.controller.config.yang.test.impl.AbstractTestImplModuleFactory { +public class TestImplModuleFactory extends org.opendaylight.controller.config.yang.test.impl.AbstractTestImplModuleFactory +{ + } diff --git a/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/TestImplModuleStub.txt b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/TestImplModuleStub.txt new file mode 100644 index 0000000000..80c1e54a15 --- /dev/null +++ b/opendaylight/config/yang-test/src/main/java/org/opendaylight/controller/config/yang/test/impl/TestImplModuleStub.txt @@ -0,0 +1,5 @@ + return new AutoCloseable() { + @Override + public void close() throws Exception { + } + };