├── .gitignore ├── .mvn └── wrapper │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml ├── spring-boot-multidatasource-parent └── pom.xml ├── spring-boot-multidatasource-sample ├── pom.xml └── spring-boot-multidatasource-sample-default │ ├── pom.xml │ └── src │ ├── main │ ├── java │ │ └── org │ │ │ └── sbcoba │ │ │ └── springboot │ │ │ └── multidatasource │ │ │ └── sample │ │ │ ├── DataSourceName.java │ │ │ ├── SampleApplication.java │ │ │ ├── annotation │ │ │ ├── Db1DataSource.java │ │ │ ├── Db2DataSource.java │ │ │ ├── Db3DataSource.java │ │ │ └── Db4DataSource.java │ │ │ ├── repository │ │ │ └── TestDao.java │ │ │ ├── service │ │ │ ├── TestService.java │ │ │ ├── TestServiceByClassImpl.java │ │ │ ├── TestServiceByCustomAnnotationImpl.java │ │ │ ├── TestServiceByMethodmpl.java │ │ │ ├── TestServiceImpl.java │ │ │ └── packagetest │ │ │ │ ├── TestServiceByPackageImpl.java │ │ │ │ └── package-info.java │ │ │ └── web │ │ │ ├── TestByClassController.java │ │ │ ├── TestByCustomAnnotationController.java │ │ │ ├── TestByMethodController.java │ │ │ ├── TestByPackageController.java │ │ │ └── TestController.java │ └── resources │ │ ├── application.yml │ │ ├── db1Data.sql │ │ ├── db2Data.sql │ │ ├── db3Data.sql │ │ ├── db4Data.sql │ │ └── schema.sql │ └── test │ └── java │ └── org │ └── sbcoba │ └── springboot │ └── multidatasource │ └── sample │ ├── DataSourceTests.java │ └── MultiDataSourceTests.java └── spring-boot-multidatasource ├── pom.xml └── src ├── main ├── java │ └── org │ │ └── sbcoba │ │ └── springboot │ │ └── multidatasource │ │ └── autoconfigure │ │ ├── DataSource.java │ │ ├── DataSourceFactory.java │ │ ├── DataSourceNameContextHolder.java │ │ ├── DataSourceSet.java │ │ ├── MultiDataSourceAutoConfiguration.java │ │ ├── MultiDataSourceInitializedEvent.java │ │ ├── MultiDataSourceInitializer.java │ │ ├── MultiDataSourceProperties.java │ │ ├── MultiDataSourceRegistrar.java │ │ ├── MultiRoutingDataSource.java │ │ └── aop │ │ ├── AnnotationDeepMethodMatcher.java │ │ ├── DataSourceAdvice.java │ │ └── DataSourceRouterAspect.java └── resources │ └── META-INF │ └── spring.factories └── test └── java └── org └── sbcoba └── springboot └── multidatasource └── autoconfigure └── MultiDataSourceTests.java /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/.gitignore -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/.mvn/wrapper/maven-wrapper.properties -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/README.md -------------------------------------------------------------------------------- /mvnw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/mvnw -------------------------------------------------------------------------------- /mvnw.cmd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/mvnw.cmd -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/pom.xml -------------------------------------------------------------------------------- /spring-boot-multidatasource-parent/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-parent/pom.xml -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/pom.xml -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/pom.xml -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/DataSourceName.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/DataSourceName.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/SampleApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/SampleApplication.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/annotation/Db1DataSource.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/annotation/Db1DataSource.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/annotation/Db2DataSource.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/annotation/Db2DataSource.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/annotation/Db3DataSource.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/annotation/Db3DataSource.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/annotation/Db4DataSource.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/annotation/Db4DataSource.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/repository/TestDao.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/repository/TestDao.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/service/TestService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/service/TestService.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/service/TestServiceByClassImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/service/TestServiceByClassImpl.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/service/TestServiceByCustomAnnotationImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/service/TestServiceByCustomAnnotationImpl.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/service/TestServiceByMethodmpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/service/TestServiceByMethodmpl.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/service/TestServiceImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/service/TestServiceImpl.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/service/packagetest/TestServiceByPackageImpl.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/service/packagetest/TestServiceByPackageImpl.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/service/packagetest/package-info.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/service/packagetest/package-info.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/web/TestByClassController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/web/TestByClassController.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/web/TestByCustomAnnotationController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/web/TestByCustomAnnotationController.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/web/TestByMethodController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/web/TestByMethodController.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/web/TestByPackageController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/web/TestByPackageController.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/web/TestController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/java/org/sbcoba/springboot/multidatasource/sample/web/TestController.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/resources/application.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/resources/application.yml -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/resources/db1Data.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/resources/db1Data.sql -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/resources/db2Data.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/resources/db2Data.sql -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/resources/db3Data.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/resources/db3Data.sql -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/resources/db4Data.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/resources/db4Data.sql -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/resources/schema.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/main/resources/schema.sql -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/test/java/org/sbcoba/springboot/multidatasource/sample/DataSourceTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/test/java/org/sbcoba/springboot/multidatasource/sample/DataSourceTests.java -------------------------------------------------------------------------------- /spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/test/java/org/sbcoba/springboot/multidatasource/sample/MultiDataSourceTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource-sample/spring-boot-multidatasource-sample-default/src/test/java/org/sbcoba/springboot/multidatasource/sample/MultiDataSourceTests.java -------------------------------------------------------------------------------- /spring-boot-multidatasource/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource/pom.xml -------------------------------------------------------------------------------- /spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/DataSource.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/DataSource.java -------------------------------------------------------------------------------- /spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/DataSourceFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/DataSourceFactory.java -------------------------------------------------------------------------------- /spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/DataSourceNameContextHolder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/DataSourceNameContextHolder.java -------------------------------------------------------------------------------- /spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/DataSourceSet.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/DataSourceSet.java -------------------------------------------------------------------------------- /spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/MultiDataSourceAutoConfiguration.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/MultiDataSourceAutoConfiguration.java -------------------------------------------------------------------------------- /spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/MultiDataSourceInitializedEvent.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/MultiDataSourceInitializedEvent.java -------------------------------------------------------------------------------- /spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/MultiDataSourceInitializer.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/MultiDataSourceInitializer.java -------------------------------------------------------------------------------- /spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/MultiDataSourceProperties.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/MultiDataSourceProperties.java -------------------------------------------------------------------------------- /spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/MultiDataSourceRegistrar.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/MultiDataSourceRegistrar.java -------------------------------------------------------------------------------- /spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/MultiRoutingDataSource.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/MultiRoutingDataSource.java -------------------------------------------------------------------------------- /spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/aop/AnnotationDeepMethodMatcher.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/aop/AnnotationDeepMethodMatcher.java -------------------------------------------------------------------------------- /spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/aop/DataSourceAdvice.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/aop/DataSourceAdvice.java -------------------------------------------------------------------------------- /spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/aop/DataSourceRouterAspect.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource/src/main/java/org/sbcoba/springboot/multidatasource/autoconfigure/aop/DataSourceRouterAspect.java -------------------------------------------------------------------------------- /spring-boot-multidatasource/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource/src/main/resources/META-INF/spring.factories -------------------------------------------------------------------------------- /spring-boot-multidatasource/src/test/java/org/sbcoba/springboot/multidatasource/autoconfigure/MultiDataSourceTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sbcoba/spring-boot-multidatasource/HEAD/spring-boot-multidatasource/src/test/java/org/sbcoba/springboot/multidatasource/autoconfigure/MultiDataSourceTests.java --------------------------------------------------------------------------------