Skip to content

Commit

Permalink
[MOSIP-35065]Fixed the DB issues (#1093)
Browse files Browse the repository at this point in the history
* Fixed startup issue in docker

Signed-off-by: Aravindhan Alagesan <[email protected]>

* Changed from PostgreSQL92Dialect to PostgreSQLDialect

Signed-off-by: Aravindhan Alagesan <[email protected]>

* Fixed startup issue in salt generator

Signed-off-by: Aravindhan Alagesan <[email protected]>

---------

Signed-off-by: Aravindhan Alagesan <[email protected]>
  • Loading branch information
aranaravi committed Sep 18, 2024
1 parent b41373a commit a6ab28e
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 67 deletions.
80 changes: 32 additions & 48 deletions id-repository/id-repository-salt-generator/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@
<maven-shade-plugin.version>2.3</maven-shade-plugin.version>

<!-- spring -->
<spring.boot.version>2.0.2.RELEASE</spring.boot.version>
<spring.data.jpa.version>2.0.7.RELEASE</spring.data.jpa.version>
<spring.security.test.version>5.0.5.RELEASE</spring.security.test.version>
<spring-cloud-config.version>2.0.4.RELEASE</spring-cloud-config.version>

Expand Down Expand Up @@ -117,39 +115,31 @@
<micrometer.registry.prometheus.version>1.4.2</micrometer.registry.prometheus.version>
<kernel-core.version>1.2.1-java21-SNAPSHOT</kernel-core.version>
<kernel-logger-logback.version>1.2.1-java21-SNAPSHOT</kernel-logger-logback.version>
<jacoco.maven.plugin.version>0.8.11</jacoco.maven.plugin.version>
<com.fasterxml.jackson.core.version>2.12.0</com.fasterxml.jackson.core.version>
<postgresql.version>42.2.2</postgresql.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
<version>${spring.boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>${spring.data.jpa.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
<version>${spring-cloud-config.version}</version>
</dependency>
<dependency>
<groupId>io.mosip.kernel</groupId>
<artifactId>kernel-core</artifactId>
<version>${kernel-core.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-afterburner</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>io.mosip.kernel</groupId>
Expand All @@ -159,45 +149,39 @@
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>${postgresql.version}</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
<version>1.4.200</version>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.17.1</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.17.1</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.17.1</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.17.1</version>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.17.1</version>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
</dependencyManagement>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,31 +1,45 @@
package io.mosip.idrepository.saltgenerator.config;

import javax.sql.DataSource;
import java.util.HashMap;
import java.util.Map;

import org.hibernate.cfg.AvailableSettings;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.core.env.Environment;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import static io.mosip.idrepository.saltgenerator.constant.SaltGeneratorConstant.DATASOURCE_ALIAS;
import static io.mosip.idrepository.saltgenerator.constant.SaltGeneratorConstant.DATASOURCE_DRIVERCLASSNAME;
import static io.mosip.idrepository.saltgenerator.constant.SaltGeneratorConstant.DATASOURCE_PASSWORD;
import static io.mosip.idrepository.saltgenerator.constant.SaltGeneratorConstant.DATASOURCE_URL;
import static io.mosip.idrepository.saltgenerator.constant.SaltGeneratorConstant.DATASOURCE_USERNAME;
import static io.mosip.idrepository.saltgenerator.constant.SaltGeneratorConstant.DB_SCHEMA_NAME;
import static io.mosip.idrepository.saltgenerator.constant.SaltGeneratorConstant.PACKAGE_TO_SCAN;

import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy;

import jakarta.persistence.EntityManagerFactory;
/**
* The Class SaltGeneratorIdMapDataSourceConfig - Provides configuration for Salt
* generator application.
*
* @author Manoj SP
*/
@Configuration
@EnableTransactionManagement

public class SaltGeneratorConfig {
@Autowired
private Environment env;
Expand All @@ -39,6 +53,30 @@ public class SaltGeneratorConfig {
* @return the batch configurer
*/

@Bean
@Primary
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource());
em.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
em.setPackagesToScan(PACKAGE_TO_SCAN.getValue());
em.setJpaPropertyMap(additionalProperties());
return em;
}

/**
* Additional properties.
*
* @return the map
*/
private Map<String, Object> additionalProperties() {
Map<String, Object> jpaProperties = new HashMap<>();
jpaProperties.put("hibernate.implicit_naming_strategy", SpringImplicitNamingStrategy.class.getName());
jpaProperties.put("hibernate.physical_naming_strategy", namingResolver);
jpaProperties.put("hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect");
return jpaProperties;
}

@Bean
@Primary
public DataSource dataSource() {
Expand All @@ -48,11 +86,17 @@ public DataSource dataSource() {
dataSource.setUsername(env.getProperty(String.format(DATASOURCE_USERNAME.getValue(), alias)));
dataSource.setPassword(env.getProperty(String.format(DATASOURCE_PASSWORD.getValue(), alias)));
dataSource.setSchema(env.getProperty(DB_SCHEMA_NAME.getValue()));
dataSource.setDriverClassName(env.getProperty(String.format(DATASOURCE_DRIVERCLASSNAME.getValue(), alias)));
dataSource.setDriverClassName("org.postgresql.Driver");
return dataSource;
}


@Bean
@Primary
public JpaTransactionManager jpaTransactionManager(EntityManagerFactory emf) {
return new JpaTransactionManager(emf);
}

@Bean
public PlatformTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
import org.springframework.batch.core.Job;
import org.springframework.batch.core.JobExecutionListener;
import org.springframework.batch.core.Step;
import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
import org.springframework.batch.core.launch.support.RunIdIncrementer;
import org.springframework.batch.item.ItemReader;
import org.springframework.batch.item.ItemWriter;
Expand All @@ -15,9 +13,12 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.core.env.Environment;
import org.springframework.batch.core.repository.JobRepository;
import org.springframework.batch.core.job.builder.JobBuilder;
import org.springframework.batch.core.step.builder.StepBuilder;

import io.mosip.idrepository.saltgenerator.entity.IdRepoSaltEntitiesComposite;

import org.springframework.transaction.PlatformTransactionManager;
/**
* The Class SaltGeneratorJobConfig - provides configuration for Salt generator Job.
*
Expand All @@ -29,14 +30,6 @@ public class SaltGeneratorJobConfig {

@Autowired
private Environment env;

/** The job builder factory. */
@Autowired
private JobBuilderFactory jobBuilderFactory;

/** The step builder factory. */
@Autowired
private StepBuilderFactory stepBuilderFactory;

/** The listener. */
@Autowired
Expand All @@ -57,9 +50,8 @@ public class SaltGeneratorJobConfig {
* @return the job
*/
@Bean
public Job job(Step step) {
return jobBuilderFactory
.get("job")
public Job job(JobRepository jobRepository, Step step) {
return new JobBuilder("job", jobRepository)
.incrementer(new RunIdIncrementer())
.listener(listener)
.flow(step)
Expand All @@ -74,10 +66,10 @@ public Job job(Step step) {
* @return the step
*/
@Bean
public Step step() {
return stepBuilderFactory
.get("step")
.<IdRepoSaltEntitiesComposite, IdRepoSaltEntitiesComposite> chunk(env.getProperty(CHUNK_SIZE.getValue(), Integer.class))
public Step step(JobRepository jobRepository, PlatformTransactionManager transactionManager) {
return new StepBuilder("step", jobRepository)
.<IdRepoSaltEntitiesComposite, IdRepoSaltEntitiesComposite> chunk(env.getProperty(CHUNK_SIZE.getValue(), Integer.class),
transactionManager)
.reader(reader)
.writer(writer)
.build();
Expand Down

0 comments on commit a6ab28e

Please sign in to comment.