Initial Python rewrite
This commit is contained in:
20
src.bak/main/java/com/example/config/DlpConfig.java
Normal file
20
src.bak/main/java/com/example/config/DlpConfig.java
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Copyright 2025 Google. This software is provided as-is, without warranty or representation for any use or purpose.
|
||||
* Your use of it is subject to your agreement with Google.
|
||||
*/
|
||||
|
||||
package com.example.config;
|
||||
|
||||
import com.google.cloud.dlp.v2.DlpServiceClient;
|
||||
import java.io.IOException;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
public class DlpConfig {
|
||||
|
||||
@Bean(destroyMethod = "close")
|
||||
public DlpServiceClient dlpServiceClient() throws IOException {
|
||||
return DlpServiceClient.create();
|
||||
}
|
||||
}
|
||||
44
src.bak/main/java/com/example/config/GeminiConfig.java
Normal file
44
src.bak/main/java/com/example/config/GeminiConfig.java
Normal file
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
* Copyright 2025 Google. This software is provided as-is, without warranty or representation for any use or purpose.
|
||||
* Your use of it is subject to your agreement with Google.
|
||||
*/
|
||||
|
||||
package com.example.config;
|
||||
|
||||
import com.google.genai.Client;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* Spring configuration class for initializing the Google Gen AI Client.
|
||||
* It uses properties from the application's configuration to create a
|
||||
* singleton `Client` bean for interacting with the Gemini model, ensuring
|
||||
* proper resource management by specifying a destroy method.
|
||||
*/
|
||||
@Configuration
|
||||
public class GeminiConfig {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(GeminiConfig.class);
|
||||
|
||||
@Value("${google.cloud.project}")
|
||||
private String projectId;
|
||||
|
||||
@Value("${google.cloud.location}")
|
||||
private String location;
|
||||
|
||||
@Bean(destroyMethod = "close")
|
||||
public Client geminiClient() throws IOException {
|
||||
logger.info("Initializing Google Gen AI Client. Project: {}, Location: {}", projectId, location);
|
||||
return Client.builder()
|
||||
.project(projectId)
|
||||
.location(location)
|
||||
.vertexAI(true)
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
33
src.bak/main/java/com/example/config/OpenApiConfig.java
Normal file
33
src.bak/main/java/com/example/config/OpenApiConfig.java
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright 2025 Google. This software is provided as-is, without warranty or representation for any use or purpose.
|
||||
* Your use of it is subject to your agreement with Google.
|
||||
*/
|
||||
|
||||
package com.example.config;
|
||||
|
||||
import io.swagger.v3.oas.models.OpenAPI;
|
||||
import io.swagger.v3.oas.models.info.Info;
|
||||
import io.swagger.v3.oas.models.info.License;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* Spring configuration class for customizing OpenAPI (Swagger) documentation.
|
||||
* It defines a single bean to configure the API's title, version, description,
|
||||
* and license, providing a structured and user-friendly documentation page.
|
||||
*/
|
||||
@Configuration
|
||||
public class OpenApiConfig {
|
||||
|
||||
@Bean
|
||||
public OpenAPI customOpenAPI() {
|
||||
return new OpenAPI()
|
||||
.info(new Info()
|
||||
.title("Google Middleware API")
|
||||
.version("1.0")
|
||||
.description("API documentation. " +
|
||||
"It provides functionalities for user management, file storage, and more.")
|
||||
.termsOfService("http://swagger.io/terms/")
|
||||
.license(new License().name("Apache 2.0").url("http://springdoc.org")));
|
||||
}
|
||||
}
|
||||
51
src.bak/main/java/com/example/config/RedisConfig.java
Normal file
51
src.bak/main/java/com/example/config/RedisConfig.java
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright 2025 Google. This software is provided as-is, without warranty or representation for any use or purpose.
|
||||
* Your use of it is subject to your agreement with Google.
|
||||
*/
|
||||
|
||||
package com.example.config;
|
||||
|
||||
import com.example.dto.dialogflow.conversation.ConversationMessageDTO;
|
||||
import com.example.dto.dialogflow.conversation.ConversationSessionDTO;
|
||||
import com.example.dto.dialogflow.notification.NotificationSessionDTO;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory;
|
||||
import org.springframework.data.redis.core.ReactiveRedisTemplate;
|
||||
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
|
||||
import org.springframework.data.redis.serializer.RedisSerializationContext;
|
||||
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||
|
||||
@Configuration
|
||||
public class RedisConfig {
|
||||
|
||||
@Bean
|
||||
public ReactiveRedisTemplate<String, ConversationSessionDTO> reactiveRedisTemplate(ReactiveRedisConnectionFactory factory, ObjectMapper objectMapper) {
|
||||
Jackson2JsonRedisSerializer<ConversationSessionDTO> serializer = new Jackson2JsonRedisSerializer<>(objectMapper, ConversationSessionDTO.class);
|
||||
RedisSerializationContext.RedisSerializationContextBuilder<String, ConversationSessionDTO> builder = RedisSerializationContext.newSerializationContext(new StringRedisSerializer());
|
||||
RedisSerializationContext<String, ConversationSessionDTO> context = builder.value(serializer).build();
|
||||
return new ReactiveRedisTemplate<>(factory, context);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public ReactiveRedisTemplate<String, NotificationSessionDTO> reactiveNotificationRedisTemplate(ReactiveRedisConnectionFactory factory, ObjectMapper objectMapper) {
|
||||
Jackson2JsonRedisSerializer<NotificationSessionDTO> serializer = new Jackson2JsonRedisSerializer<>(objectMapper, NotificationSessionDTO.class);
|
||||
RedisSerializationContext.RedisSerializationContextBuilder<String, NotificationSessionDTO> builder = RedisSerializationContext.newSerializationContext(new StringRedisSerializer());
|
||||
RedisSerializationContext<String, NotificationSessionDTO> context = builder.value(serializer).build();
|
||||
return new ReactiveRedisTemplate<>(factory, context);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public ReactiveRedisTemplate<String, ConversationMessageDTO> reactiveMessageRedisTemplate(ReactiveRedisConnectionFactory factory, ObjectMapper objectMapper) {
|
||||
Jackson2JsonRedisSerializer<ConversationMessageDTO> serializer = new Jackson2JsonRedisSerializer<>(objectMapper, ConversationMessageDTO.class);
|
||||
RedisSerializationContext.RedisSerializationContextBuilder<String, ConversationMessageDTO> builder = RedisSerializationContext.newSerializationContext(new StringRedisSerializer());
|
||||
RedisSerializationContext<String, ConversationMessageDTO> context = builder.value(serializer).build();
|
||||
return new ReactiveRedisTemplate<>(factory, context);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public ReactiveRedisTemplate<String, String> reactiveStringRedisTemplate(ReactiveRedisConnectionFactory factory) {
|
||||
return new ReactiveRedisTemplate<>(factory, RedisSerializationContext.string());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user