Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
# Changelog
All notable changes to this project will be documented in this file.

## [9.6.0]
### Added
- Implement for Document ingestion;
- Implement Document tags ingestion;
- add Content news tags upsert;
- add currencies upsert;

### Changed
- use latest investment service api 1.3.0;
- move customization of specs into an investment package;

## [9.5.0]
### Added
- investment service intraday generation and ingestion function
Expand Down
27 changes: 0 additions & 27 deletions stream-dbs-clients/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -106,14 +106,6 @@
<phase>generate-sources</phase>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.backbase.investment</groupId>
<artifactId>investment-service-api</artifactId>
<classifier>api</classifier>
<type>zip</type>
<outputDirectory>${project.build.directory}/yaml</outputDirectory>
<overWrite>true</overWrite>
</artifactItem>
<artifactItem>
<groupId>com.backbase.dbs.accesscontrol</groupId>
<artifactId>access-control</artifactId>
Expand Down Expand Up @@ -248,25 +240,6 @@
<artifactId>boat-maven-plugin</artifactId>
<version>0.17.66</version>
<executions>
<execution>
<id>generate-investment-service-api-code</id>
<goals>
<goal>generate-webclient-embedded</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<inputSpec>${project.build.directory}/yaml/investment-service-api/investment-service-api-v1*.yaml</inputSpec>
<apiPackage>com.backbase.investment.api.service.v1</apiPackage>
<modelPackage>com.backbase.investment.api.service.v1.model</modelPackage>
<enumNameMappings>
<enumNameMapping>Etc/GMT-12=ETC_GMT_1222</enumNameMapping>
</enumNameMappings>
<configOptions>
<openApiNullable>false</openApiNullable>
<useBeanValidation>false</useBeanValidation>
</configOptions>
</configuration>
</execution>
<execution>
<id>generate-accesscontrol-datagroup-service-api-v1-code</id>
<goals>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import com.backbase.stream.clients.config.CustomerProfileClientConfig;
import com.backbase.stream.clients.config.IdentityIntegrationClientConfig;
import com.backbase.stream.clients.config.InstrumentApiConfiguration;
import com.backbase.stream.clients.config.InvestmentClientConfig;
import com.backbase.stream.clients.config.LimitsClientConfig;
import com.backbase.stream.clients.config.PaymentOrderClientConfig;
import com.backbase.stream.clients.config.PortfolioApiConfiguration;
Expand Down Expand Up @@ -45,8 +44,7 @@
InstrumentApiConfiguration.class,
PortfolioApiConfiguration.class,
PlanManagerClientConfig.class,
CustomerProfileClientConfig.class,
InvestmentClientConfig.class
CustomerProfileClientConfig.class
})
@EnableConfigurationProperties
public class DbsApiClientsAutoConfiguration {
Expand Down
32 changes: 23 additions & 9 deletions stream-investment/investment-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,11 @@

<properties>
<checkstyle.disable.checks>true</checkstyle.disable.checks>
<investment-service-api.version>1.3.0</investment-service-api.version>
</properties>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.backbase</groupId>
<artifactId>backbase-bom</artifactId>
<version>${backbase-bom.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.backbase.buildingblocks</groupId>
<artifactId>backbase-building-blocks-release</artifactId>
Expand Down Expand Up @@ -105,12 +99,13 @@
<goals>
<goal>unpack</goal>
</goals>
<phase>generate-resources</phase>
<phase>generate-sources</phase>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.backbase.investment</groupId>
<artifactId>investment-service-api</artifactId>
<version>${investment-service-api.version}</version>
<classifier>api</classifier>
<type>zip</type>
<outputDirectory>${project.build.directory}/yaml</outputDirectory>
Expand All @@ -129,12 +124,31 @@
<executions>
<execution>
<id>generate-investment-service-api-code</id>
<goals>
<goal>generate-webclient-embedded</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<inputSpec>${project.build.directory}/yaml/investment-service-api/investment-service-api-v${investment-service-api.version}.yaml</inputSpec>
<apiPackage>com.backbase.investment.api.service.v1</apiPackage>
<modelPackage>com.backbase.investment.api.service.v1.model</modelPackage>
<enumNameMappings>
<enumNameMapping>Etc/GMT-12=ETC_GMT_1222</enumNameMapping>
</enumNameMappings>
<configOptions>
<openApiNullable>false</openApiNullable>
<useBeanValidation>false</useBeanValidation>
</configOptions>
</configuration>
</execution>
<execution>
<id>generate-investment-service-rest-sync-api-code</id>
<goals>
<goal>generate-rest-template-embedded</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<inputSpec>${project.build.directory}/yaml/investment-service-api/investment-service-api-v1*.yaml</inputSpec>
<inputSpec>${project.build.directory}/yaml/investment-service-api/investment-service-api-v${investment-service-api.version}.yaml</inputSpec>
<apiPackage>com.backbase.investment.api.service.sync.v1</apiPackage>
<modelPackage>com.backbase.investment.api.service.sync.v1.model</modelPackage>
<enumNameMappings>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
package com.backbase.stream.clients.config;
package com.backbase.stream.configuration;

import com.backbase.investment.api.service.ApiClient;
import com.backbase.investment.api.service.v1.AllocationsApi;
import com.backbase.investment.api.service.v1.AssetUniverseApi;
import com.backbase.investment.api.service.v1.AsyncBulkGroupsApi;
import com.backbase.investment.api.service.v1.ClientApi;
import com.backbase.investment.api.service.v1.ContentApi;
import com.backbase.investment.api.service.v1.CurrencyApi;
import com.backbase.investment.api.service.v1.FinancialAdviceApi;
import com.backbase.investment.api.service.v1.InvestmentApi;
import com.backbase.investment.api.service.v1.InvestmentProductsApi;
import com.backbase.investment.api.service.v1.PaymentsApi;
import com.backbase.investment.api.service.v1.PortfolioApi;
import com.backbase.stream.clients.config.CompositeApiClientConfig;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import java.text.DateFormat;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
Expand All @@ -29,6 +32,7 @@
* Configuration for Investment service REST client (ClientApi).
*/
@Configuration
@ConditionalOnBean(InvestmentServiceConfiguration.class)
@ConfigurationProperties("backbase.communication.services.investment")
public class InvestmentClientConfig extends CompositeApiClientConfig {

Expand Down Expand Up @@ -113,6 +117,12 @@ public PaymentsApi paymentsApi(ApiClient investmentApiClient) {
return new PaymentsApi(investmentApiClient);
}

@Bean
@ConditionalOnMissingBean
public CurrencyApi currencyApi(ApiClient investmentApiClient) {
return new CurrencyApi(investmentApiClient);
}

@Bean
@ConditionalOnMissingBean
public AsyncBulkGroupsApi asyncBulkGroupsApi(ApiClient investmentApiClient) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
package com.backbase.stream.configuration;

import lombok.Data;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
* Configuration properties governing investment client ingestion behavior.
*/
@Data
@ConditionalOnBean(InvestmentServiceConfiguration.class)
@ConfigurationProperties(prefix = "backbase.bootstrap.ingestions.investment")
public class InvestmentIngestionConfigurationProperties {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.backbase.investment.api.service.sync.v1.AssetUniverseApi;
import com.backbase.investment.api.service.sync.v1.ContentApi;
import com.backbase.stream.investment.service.resttemplate.InvestmentRestAssetUniverseService;
import com.backbase.stream.investment.service.resttemplate.InvestmentRestDocumentContentService;
import com.backbase.stream.investment.service.resttemplate.InvestmentRestNewsContentService;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.databind.ObjectMapper;
Expand Down Expand Up @@ -82,6 +83,11 @@ public InvestmentRestNewsContentService investmentNewsContentService(ContentApi
return new InvestmentRestNewsContentService(restContentApi, restInvestmentApiClient);
}

@Bean
public InvestmentRestDocumentContentService investmentRestContentDocumentService(ContentApi restContentApi,
com.backbase.investment.api.service.sync.ApiClient restInvestmentApiClient) {
return new InvestmentRestDocumentContentService(restContentApi, restInvestmentApiClient);
}

@Bean
public InvestmentRestAssetUniverseService investmentRestAssetUniverseService(AssetUniverseApi assetUniverseApi,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.backbase.investment.api.service.v1.AssetUniverseApi;
import com.backbase.investment.api.service.v1.AsyncBulkGroupsApi;
import com.backbase.investment.api.service.v1.ClientApi;
import com.backbase.investment.api.service.v1.CurrencyApi;
import com.backbase.investment.api.service.v1.FinancialAdviceApi;
import com.backbase.investment.api.service.v1.InvestmentApi;
import com.backbase.investment.api.service.v1.InvestmentProductsApi;
Expand All @@ -19,11 +20,13 @@
import com.backbase.stream.investment.service.InvestmentAssetPriceService;
import com.backbase.stream.investment.service.InvestmentAssetUniverseService;
import com.backbase.stream.investment.service.InvestmentClientService;
import com.backbase.stream.investment.service.InvestmentCurrencyService;
import com.backbase.stream.investment.service.InvestmentIntradayAssetPriceService;
import com.backbase.stream.investment.service.InvestmentModelPortfolioService;
import com.backbase.stream.investment.service.InvestmentPortfolioAllocationService;
import com.backbase.stream.investment.service.InvestmentPortfolioService;
import com.backbase.stream.investment.service.resttemplate.InvestmentRestAssetUniverseService;
import com.backbase.stream.investment.service.resttemplate.InvestmentRestDocumentContentService;
import com.backbase.stream.investment.service.resttemplate.InvestmentRestNewsContentService;
import lombok.RequiredArgsConstructor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
Expand All @@ -34,6 +37,7 @@

@Import({
DbsApiClientsAutoConfiguration.class,
InvestmentClientConfig.class
})
@EnableConfigurationProperties({
InvestmentIngestionConfigurationProperties.class
Expand Down Expand Up @@ -96,6 +100,11 @@ public InvestmentPortfolioAllocationService investmentPortfolioAllocationService
customIntegrationApiService);
}

@Bean
public InvestmentCurrencyService investmentCurrencyService(CurrencyApi currencyApi) {
return new InvestmentCurrencyService(currencyApi);
}

@Bean
public InvestmentSaga investmentSaga(InvestmentClientService investmentClientService,
InvestmentPortfolioService investmentPortfolioService,
Expand All @@ -112,17 +121,20 @@ public InvestmentAssetUniverseSaga investmentStaticDataSaga(
InvestmentAssetUniverseService investmentAssetUniverseService,
InvestmentAssetPriceService investmentAssetPriceService,
InvestmentIntradayAssetPriceService investmentIntradayAssetPriceService,
InvestmentCurrencyService investmentCurrencyService,
AsyncTaskService asyncTaskService,
InvestmentIngestionConfigurationProperties coreConfigurationProperties) {
return new InvestmentAssetUniverseSaga(investmentAssetUniverseService, investmentAssetPriceService,
investmentIntradayAssetPriceService, asyncTaskService, coreConfigurationProperties);
investmentIntradayAssetPriceService, investmentCurrencyService, asyncTaskService,
coreConfigurationProperties);
}

@Bean
public InvestmentContentSaga investmentContentSaga(
InvestmentRestNewsContentService investmentRestNewsContentService,
InvestmentRestDocumentContentService investmentRestDocumentContentService,
InvestmentIngestionConfigurationProperties coreConfigurationProperties) {
return new InvestmentContentSaga(investmentRestNewsContentService, coreConfigurationProperties);
return new InvestmentContentSaga(investmentRestNewsContentService, investmentRestDocumentContentService, coreConfigurationProperties);
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.backbase.stream.investment;

import com.backbase.investment.api.service.v1.model.AssetCategoryType;
import com.backbase.investment.api.service.v1.model.Currency;
import com.backbase.investment.api.service.v1.model.GroupResult;
import com.backbase.investment.api.service.v1.model.Market;
import com.backbase.investment.api.service.v1.model.MarketSpecialDay;
Expand All @@ -20,6 +21,7 @@
@Builder
public class InvestmentAssetData {

private List<Currency> currencies;
private List<Market> markets;
private List<MarketSpecialDay> marketSpecialDays;
private List<AssetCategoryType> assetCategoryTypes;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.backbase.stream.investment;

import com.backbase.stream.investment.model.ContentDocumentEntry;
import com.backbase.stream.investment.model.ContentTag;
import com.backbase.stream.investment.model.MarketNewsEntry;
import java.util.List;
import lombok.Builder;
Expand All @@ -11,6 +13,9 @@
@Builder
public class InvestmentContentData {

private List<ContentTag> marketNewsTags;
private List<MarketNewsEntry> marketNews;
private List<ContentTag> documentTags;
private List<ContentDocumentEntry> documents;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.backbase.stream.investment.model;

import com.backbase.stream.investment.ModelAsset;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
import java.util.Map;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.core.io.Resource;

@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ContentDocumentEntry {

private String name;
private String description;
private List<String> tags;
private List<ModelAsset> assets;
@JsonProperty("extra_data")
private Map<String, Object> extraData;
private String document;
private Resource documentResource;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.backbase.stream.investment.model;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class ContentTag {

private String code;
private String value;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.backbase.stream.investment.model;

/**
* Partitions entities into those to be created and those to be updated during an upsert operation. Exactly one of
* create or update must be non-null.
*
*/
public record UpsertPartition<ID, T>(ID id, T entity) {

public static <ID, T> UpsertPartition<ID, T> createPartition(T entity) {
return new UpsertPartition<>(null, entity);
}

}
Loading