Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support new ConfigurationProperties Binder for Spring Boot 2.0 #22

Closed
making opened this issue Jul 16, 2017 · 3 comments
Closed

Support new ConfigurationProperties Binder for Spring Boot 2.0 #22

making opened this issue Jul 16, 2017 · 3 comments
Milestone

Comments

@making
Copy link
Member

making commented Jul 16, 2017

The behavior seems to change.
related issue: spring-projects/spring-boot#8868

***************************
APPLICATION FAILED TO START
***************************

Description:

Binding to target [Bindable@d675f9f type = org.seasar.doma.jdbc.dialect.Dialect, value = 'provided', annotations = array<Annotation>[[empty]]] failed:

    Property: doma.dialect
    Value: H2
    Origin: class path resource [application.properties]:1:14
    Reason: No converter found capable of converting from type [java.lang.String] to type [org.seasar.doma.jdbc.dialect.Dialect]

Action:

Update your application's configuration

2017-07-17 00:51:33.023 ERROR 82376 --- [           main] o.s.test.context.TestContextManager      : Caught exception while allowing TestExecutionListener [org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@515aebb0] to prepare test instance [org.seasar.doma.boot.DomaBootSampleSimpleApplicationTest@231f98ef]

java.lang.IllegalStateException: Failed to load ApplicationContext
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125) ~[spring-test-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:104) ~[spring-test-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener.prepareTestInstance(SpringBootDependencyInjectionTestExecutionListener.java:47) ~[spring-boot-test-autoconfigure-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:242) ~[spring-test-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:226) [spring-test-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:288) [spring-test-5.0.0.RC2.jar:5.0.0.RC2]
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.12.jar:4.12]
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:290) [spring-test-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:245) [spring-test-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) [spring-test-5.0.0.RC2.jar:5.0.0.RC2]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]
	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) [spring-test-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) [spring-test-5.0.0.RC2.jar:5.0.0.RC2]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:189) [spring-test-5.0.0.RC2.jar:5.0.0.RC2]
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137) [junit-4.12.jar:4.12]
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) [junit-rt.jar:na]
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:51) [junit-rt.jar:na]
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242) [junit-rt.jar:na]
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) [junit-rt.jar:na]
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'domaBootSampleSimpleApplication': Unsatisfied dependency expressed through field 'messageDao'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'messageDaoImpl' defined in file [/Users/makit/git/doma-spring-boot/doma-spring-boot-samples/doma-spring-boot-sample-simple/target/classes/org/seasar/doma/boot/MessageDaoImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'config': Could not bind properties to DomaConfig (prefix=doma, ignoreInvalidFields=false, ignoreUnknownFields=true); nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'doma.dialect' to org.seasar.doma.jdbc.dialect.Dialect
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:565) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:89) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:354) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1353) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:579) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:305) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:233) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:303) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:747) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:861) ~[spring-context-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) ~[spring-context-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:122) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:138) ~[spring-boot-test-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) ~[spring-test-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:117) ~[spring-test-5.0.0.RC2.jar:5.0.0.RC2]
	... 23 common frames omitted
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'messageDaoImpl' defined in file [/Users/makit/git/doma-spring-boot/doma-spring-boot-samples/doma-spring-boot-sample-simple/target/classes/org/seasar/doma/boot/MessageDaoImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'config': Could not bind properties to DomaConfig (prefix=doma, ignoreInvalidFields=false, ignoreUnknownFields=true); nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'doma.dialect' to org.seasar.doma.jdbc.dialect.Dialect
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:726) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:191) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1282) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1138) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:305) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:233) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:303) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:250) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1123) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1050) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:562) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	... 42 common frames omitted
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'config': Could not bind properties to DomaConfig (prefix=doma, ignoreInvalidFields=false, ignoreUnknownFields=true); nested exception is org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'doma.dialect' to org.seasar.doma.jdbc.dialect.Dialect
	at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java:340) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java:305) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:421) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1708) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:581) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:305) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:233) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:303) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:250) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1123) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1050) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:812) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:718) ~[spring-beans-5.0.0.RC2.jar:5.0.0.RC2]
	... 55 common frames omitted
Caused by: org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'doma.dialect' to org.seasar.doma.jdbc.dialect.Dialect
	at org.springframework.boot.context.properties.bind.Binder.handleBindError(Binder.java:226) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:201) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.Binder.lambda$bindBean$4(Binder.java:299) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:70) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:59) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.JavaBeanBinder.bind(JavaBeanBinder.java:51) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.Binder.lambda$null$5(Binder.java:307) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[na:1.8.0_66]
	at java.util.ArrayList$ArrayListSpliterator.tryAdvance(ArrayList.java:1351) ~[na:1.8.0_66]
	at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126) ~[na:1.8.0_66]
	at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498) ~[na:1.8.0_66]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485) ~[na:1.8.0_66]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[na:1.8.0_66]
	at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152) ~[na:1.8.0_66]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_66]
	at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464) ~[na:1.8.0_66]
	at org.springframework.boot.context.properties.bind.Binder.lambda$bindBean$6(Binder.java:308) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.Binder$Context.withIncreasedDepth(Binder.java:401) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.Binder$Context.withBean(Binder.java:391) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.Binder.bindBean(Binder.java:305) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:250) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:197) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:186) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:168) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor.postProcessBeforeInitialization(ConfigurationPropertiesBindingPostProcessor.java:335) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	... 69 common frames omitted
Caused by: org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [java.lang.String] to type [org.seasar.doma.jdbc.dialect.Dialect]
	at org.springframework.core.convert.support.GenericConversionService.handleConverterNotFound(GenericConversionService.java:319) ~[spring-core-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:192) ~[spring-core-5.0.0.RC2.jar:5.0.0.RC2]
	at org.springframework.boot.context.properties.bind.convert.BinderConversionService.lambda$convert$1(BinderConversionService.java:106) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.convert.BinderConversionService.callConversionService(BinderConversionService.java:114) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.convert.BinderConversionService.convert(BinderConversionService.java:106) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.convert.BinderConversionService.convert(BinderConversionService.java:95) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.Binder.bindProperty(Binder.java:289) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.Binder.bindObject(Binder.java:248) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	at org.springframework.boot.context.properties.bind.Binder.bind(Binder.java:197) ~[spring-boot-2.0.0.M2.jar:2.0.0.M2]
	... 92 common frames omitted
@making
Copy link
Member Author

making commented Jul 16, 2017

@kencharos
Can you try d1c639e ?

@kencharos
Copy link

@making
Thank you for your quick response.
I tried d1c639e , Ant It works on Spring Boot 2.0.0 M2

@making making modified the milestones: 1.2.0, 1.1.1 Jul 19, 2017
making added a commit that referenced this issue Jul 26, 2017
@making
Copy link
Member Author

making commented Jul 26, 2017

fixed via 7198a19

@making making closed this as completed Jul 26, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants