X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=it%2Fotf.git;a=blobdiff_plain;f=otf-camunda%2Fsrc%2Fmain%2Fjava%2Forg%2Foran%2Fotf%2Fcamunda%2Fconfiguration%2FOTFDataSourceConfiguration.java;fp=otf-camunda%2Fsrc%2Fmain%2Fjava%2Forg%2Foran%2Fotf%2Fcamunda%2Fconfiguration%2FOTFDataSourceConfiguration.java;h=87936f5c19dc954cefa070edfe34e555a2936ce2;hp=0000000000000000000000000000000000000000;hb=14f6f95c84a4a1fa8774190db4a03fd0214ec55f;hpb=f49bd1efeaaddd4891c1f329b18d8cfb28b3e75b diff --git a/otf-camunda/src/main/java/org/oran/otf/camunda/configuration/OTFDataSourceConfiguration.java b/otf-camunda/src/main/java/org/oran/otf/camunda/configuration/OTFDataSourceConfiguration.java new file mode 100644 index 0000000..87936f5 --- /dev/null +++ b/otf-camunda/src/main/java/org/oran/otf/camunda/configuration/OTFDataSourceConfiguration.java @@ -0,0 +1,63 @@ +/* Copyright (c) 2019 AT&T Intellectual Property. # +# # +# Licensed under the Apache License, Version 2.0 (the "License"); # +# you may not use this file except in compliance with the License. # +# You may obtain a copy of the License at # +# # +# http://www.apache.org/licenses/LICENSE-2.0 # +# # +# Unless required by applicable law or agreed to in writing, software # +# distributed under the License is distributed on an "AS IS" BASIS, # +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # +# See the License for the specific language governing permissions and # +# limitations under the License. # +##############################################################################*/ + + +package org.oran.otf.camunda.configuration; + +import javax.sql.DataSource; + +import com.zaxxer.hikari.HikariDataSource; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.jdbc.DataSourceBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; +import org.springframework.transaction.PlatformTransactionManager; + +@Configuration +public class OTFDataSourceConfiguration { + @Value("${otf.camunda.mysql.url}") + private String url; + + @Value("${otf.camunda.mysql.username}") + private String username; + + @Value("${otf.camunda.mysql.password}") + private String password; + + @Bean + @Primary + public DataSource dataSource() { + DataSource dataSource = DataSourceBuilder.create() + .url(url) + .username(username) + .password(password) + .driverClassName("com.mysql.cj.jdbc.Driver") + .build(); + if (dataSource instanceof HikariDataSource){ +// ((HikariDataSource) dataSource).setLeakDetectionThreshold(10000); + + ((HikariDataSource) dataSource).setMaximumPoolSize(75); + ((HikariDataSource) dataSource).setMinimumIdle(15); + } + return dataSource; + } + + @Bean + public PlatformTransactionManager transactionManager() { + return new DataSourceTransactionManager(dataSource()); + } +}