Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: restructure fragmentation in separate package #239

Merged
merged 2 commits into from
Sep 28, 2022
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
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.entities.LdesFragment;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.repository.LdesFragmentRepository;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentCreator;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentationService;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentationServiceDecorator;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentationStrategy;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentationStrategyDecorator;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.valueobjects.FragmentInfo;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragmentrequest.valueobjects.FragmentPair;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragmentrequest.valueobjects.LdesFragmentRequest;
Expand All @@ -22,17 +22,17 @@
import static be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.geospatial.constants.GeospatialConstants.FRAGMENT_KEY_TILE;
import static be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.geospatial.constants.GeospatialConstants.FRAGMENT_KEY_TILE_ROOT;

public class GeospatialFragmentationService extends FragmentationServiceDecorator {
public class GeospatialFragmentationStrategy extends FragmentationStrategyDecorator {

private final LdesFragmentRepository ldesFragmentRepository;
private final FragmentCreator fragmentCreator;
private final GeospatialBucketiser geospatialBucketiser;
private final Tracer tracer;

public GeospatialFragmentationService(FragmentationService fragmentationService,
public GeospatialFragmentationStrategy(FragmentationStrategy fragmentationStrategy,
LdesFragmentRepository ldesFragmentRepository, FragmentCreator fragmentCreator,
GeospatialBucketiser geospatialBucketiser, Tracer tracer) {
super(fragmentationService, ldesFragmentRepository);
super(fragmentationStrategy, ldesFragmentRepository);
this.ldesFragmentRepository = ldesFragmentRepository;
this.fragmentCreator = fragmentCreator;
this.geospatialBucketiser = geospatialBucketiser;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
@Configuration
@EnableConfigurationProperties()
@ComponentScan("be.vlaanderen.informatievlaanderen.ldes.server")
public class GeospatialFragmentationServiceAutoConfiguration {
public class GeospatialFragmentationStrategyAutoConfiguration {

@Bean("geospatial")
public GeospatialFragmentationUpdater geospatialFragmentationService() {
return new GeospatialFragmentationUpdater();
public GeospatialFragmentationStrategyWrapper geospatialFragmentationStrategyWrapper() {
return new GeospatialFragmentationStrategyWrapper();
}

}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.geospatial;

import be.vlaanderen.informatievlaanderen.ldes.server.domain.config.FragmentationProperties;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.viewcreation.valueobjects.FragmentationProperties;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.config.LdesConfig;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.repository.LdesFragmentRepository;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentationService;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentationUpdater;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentationStrategy;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.viewcreation.services.FragmentationStrategyWrapper;
import be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.geospatial.bucketising.CoordinateConverter;
import be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.geospatial.bucketising.CoordinateConverterFactory;
import be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.geospatial.bucketising.GeospatialBucketiser;
Expand All @@ -15,23 +15,22 @@

import static be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.geospatial.config.GeospatialProperties.*;

public class GeospatialFragmentationUpdater implements FragmentationUpdater {
public class GeospatialFragmentationStrategyWrapper implements FragmentationStrategyWrapper {

public FragmentationService updateFragmentationService(ApplicationContext applicationContext,
FragmentationService fragmentationService, FragmentationProperties properties) {
LdesConfig ldesConfig1 = applicationContext.getBean(LdesConfig.class);

LdesFragmentRepository ldesFragmentRepository1 = applicationContext.getBean(LdesFragmentRepository.class);
public FragmentationStrategy wrapFragmentationStrategy(ApplicationContext applicationContext,
FragmentationStrategy fragmentationStrategy, FragmentationProperties properties) {
LdesConfig ldesConfig = applicationContext.getBean(LdesConfig.class);
LdesFragmentRepository ldesFragmentRepository = applicationContext.getBean(LdesFragmentRepository.class);
Tracer tracer = applicationContext.getBean(Tracer.class);

GeospatialConfig geospatialConfig = createGeospatialConfig(properties);

CoordinateConverter coordinateConverter = CoordinateConverterFactory
.getCoordinateConverter(geospatialConfig.getProjection());
GeospatialBucketiser geospatialBucketiser = new GeospatialBucketiser(geospatialConfig, coordinateConverter);
return new GeospatialFragmentationService(fragmentationService,
ldesFragmentRepository1,
new GeospatialFragmentCreator(ldesConfig1), geospatialBucketiser, tracer);
return new GeospatialFragmentationStrategy(fragmentationStrategy,
ldesFragmentRepository,
new GeospatialFragmentCreator(ldesConfig), geospatialBucketiser, tracer);
}

private GeospatialConfig createGeospatialConfig(FragmentationProperties properties) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.geospatial.bucketising;

import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.Bucketiser;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesmember.entities.LdesMember;
import be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.geospatial.config.GeospatialConfig;
import org.apache.jena.geosparql.implementation.GeometryWrapper;
Expand All @@ -9,7 +8,7 @@
import java.util.Set;
import java.util.stream.Collectors;

public class GeospatialBucketiser implements Bucketiser {
public class GeospatialBucketiser {
private final GeospatialConfig geospatialConfig;
private final CoordinateConverter coordinateConverter;

Expand All @@ -19,7 +18,6 @@ public GeospatialBucketiser(GeospatialConfig geospatialConfig,
this.coordinateConverter = coordinateConverter;
}

@Override
public Set<String> bucketise(LdesMember member) {
GeometryWrapper wrapper = (GeometryWrapper) member
.getFragmentationObject(geospatialConfig.getBucketiserProperty());
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.geospatial;

import be.vlaanderen.informatievlaanderen.ldes.server.domain.viewcreation.valueobjects.FragmentationProperties;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentationStrategy;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;

import java.util.Map;

import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.mock;

class GeospatialFragmentationStrategyWrapperTest {

private final ApplicationContext applicationContext = mock(ApplicationContext.class);
private final FragmentationStrategy fragmentationStrategy = mock(FragmentationStrategy.class);
private GeospatialFragmentationStrategyWrapper geospatialFragmentationUpdater;

@BeforeEach
void setUp() {
geospatialFragmentationUpdater = new GeospatialFragmentationStrategyWrapper();
}

@Test
void when_FragmentationStrategyIsUpdated_GeospatialFragmentationStrategyIsReturned() {
FragmentationProperties properties = new FragmentationProperties(
Map.of("maxZoomLevel", "15", "bucketiserProperty", "http://www.opengis.net/ont/geosparql#asWKT",
"projection", "lambert72"));
FragmentationStrategy decoratedFragmentationStrategy = geospatialFragmentationUpdater
.wrapFragmentationStrategy(applicationContext, fragmentationStrategy, properties);
assertTrue(decoratedFragmentationStrategy instanceof GeospatialFragmentationStrategy);
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,21 +1,13 @@
package be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.geospatial.bucketising;// package

import be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.geospatial.config.GeospatialConfig;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.Bucketiser;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesmember.entities.LdesMember;
import org.apache.jena.geosparql.implementation.vocabulary.Geo;
import be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.geospatial.config.GeospatialConfig;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.riot.Lang;
import org.apache.jena.riot.RDFParserBuilder;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;

import java.io.File;
import java.io.IOException;
Expand All @@ -26,11 +18,11 @@
import java.util.Set;
import java.util.stream.Collectors;

import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertEquals;

class GeospatialBucketiserTest {

private Bucketiser bucketiser;
private GeospatialBucketiser bucketiser;

@BeforeEach
void setUp() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
@Configuration
@EnableConfigurationProperties()
@ComponentScan("be.vlaanderen.informatievlaanderen.ldes.server")
public class TimeBasedFragmentationServiceAutoConfiguration {
public class TimeBasedFragmentationStrategyAutoConfiguration {

@Bean("timebased")
public TimebasedFragmentationUpdater geospatialFragmentationService() {
return new TimebasedFragmentationUpdater();
public TimebasedFragmentationStrategyWrapper timebasedFragmentationStrategyWrapper() {
return new TimebasedFragmentationStrategyWrapper();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.entities.LdesFragment;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.repository.LdesFragmentRepository;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentCreator;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentationService;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentationServiceDecorator;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentationStrategy;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentationStrategyDecorator;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.valueobjects.FragmentInfo;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesmember.entities.LdesMember;
import org.springframework.cloud.sleuth.Span;
Expand All @@ -14,16 +14,16 @@

import static be.vlaanderen.informatievlaanderen.ldes.server.domain.constants.RdfConstants.GENERIC_TREE_RELATION;

public class TimebasedFragmentationService extends FragmentationServiceDecorator {
public class TimebasedFragmentationStrategy extends FragmentationStrategyDecorator {
protected final FragmentCreator fragmentCreator;
protected final LdesFragmentRepository ldesFragmentRepository;

private final Tracer tracer;

public TimebasedFragmentationService(FragmentationService fragmentationService,
public TimebasedFragmentationStrategy(FragmentationStrategy fragmentationStrategy,
FragmentCreator fragmentCreator,
LdesFragmentRepository ldesFragmentRepository, Tracer tracer) {
super(fragmentationService, ldesFragmentRepository);
super(fragmentationStrategy, ldesFragmentRepository);
this.fragmentCreator = fragmentCreator;
this.ldesFragmentRepository = ldesFragmentRepository;
this.tracer = tracer;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.timebased;

import be.vlaanderen.informatievlaanderen.ldes.server.domain.config.FragmentationProperties;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.viewcreation.valueobjects.FragmentationProperties;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.config.LdesConfig;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.repository.LdesFragmentRepository;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentationService;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentationUpdater;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.ldesfragment.services.FragmentationStrategy;
import be.vlaanderen.informatievlaanderen.ldes.server.domain.viewcreation.services.FragmentationStrategyWrapper;
import org.springframework.cloud.sleuth.Tracer;
import org.springframework.context.ApplicationContext;

import static be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.timebased.TimebasedProperties.MEMBER_LIMIT;

public class TimebasedFragmentationUpdater implements FragmentationUpdater {
public class TimebasedFragmentationStrategyWrapper implements FragmentationStrategyWrapper {

public FragmentationService updateFragmentationService(ApplicationContext applicationContext,
FragmentationService fragmentationService, FragmentationProperties properties) {
public FragmentationStrategy wrapFragmentationStrategy(ApplicationContext applicationContext,
FragmentationStrategy fragmentationStrategy, FragmentationProperties properties) {
LdesConfig ldesConfig = applicationContext.getBean(LdesConfig.class);
LdesFragmentRepository ldesFragmentRepository1 = applicationContext.getBean(LdesFragmentRepository.class);
TimebasedFragmentationConfig timebasedFragmentationConfig = createTimebasedFragmentationConfig(properties);
Expand All @@ -22,7 +22,7 @@ public FragmentationService updateFragmentationService(ApplicationContext applic
TimeBasedFragmentCreator timeBasedFragmentCreator = new TimeBasedFragmentCreator(ldesConfig,
timebasedFragmentationConfig,
ldesFragmentRepository1);
return new TimebasedFragmentationService(fragmentationService, timeBasedFragmentCreator,
return new TimebasedFragmentationStrategy(fragmentationStrategy, timeBasedFragmentCreator,
ldesFragmentRepository1, tracer);

}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.timebased.TimebasedFragmentationServiceAutoConfiguration
be.vlaanderen.informatievlaanderen.ldes.server.fragmentisers.timebased.TimebasedFragmentationStrategyAutoConfiguration
Loading