Skip to content
Snippets Groups Projects
Commit 272cf2ad authored by OZGCloud's avatar OZGCloud
Browse files

Merge branch 'master' of git@git.ozg-sh.de:mgm/pluto.git

parents 7e9d7c5e bc2ffb6f
No related branches found
No related tags found
No related merge requests found
Showing
with 259 additions and 11 deletions
## Configuration
### Create mongodb user
db.createUser({user:"sh-kiel-pluto",pwd:"...",roles:[{role:"readWrite",database:"sh-kiel"}]})
version: "2.1"
services:
mongo:
image: mongo:3.2.4
ports:
- 27017:27017
command: --smallfiles
...@@ -17,16 +17,15 @@ service VorgangService { ...@@ -17,16 +17,15 @@ service VorgangService {
/* Create Vorgang */ /* Create Vorgang */
message CreateVorgangRequest { message CreateVorgangRequest {
Eingang eingang = 1; GrpcEingang eingang = 1;
} }
message Eingang { message GrpcEingang {
string id = 1; string id = 1;
EingangHeader header = 2; EingangHeader header = 2;
Antragsteller antragsteller = 3; Antragsteller antragsteller = 3;
repeated Field field = 10; repeated SubForm form = 10;
repeated SubForm form = 11;
} }
message Antragsteller { message Antragsteller {
......
FROM openjdk:15-slim
COPY /target/pluto-server-0.0.1-SNAPSHOT.jar /opt/pluto.jar
WORKDIR /opt
CMD java -jar pluto.jar
\ No newline at end of file
...@@ -3,12 +3,14 @@ ...@@ -3,12 +3,14 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0</version> <version>2.4.0</version>
<relativePath /> <!-- lookup parent from repository --> <relativePath /> <!-- lookup parent from repository -->
</parent> </parent>
<groupId>de.itvsh.ozg.pluto</groupId> <groupId>de.itvsh.ozg.pluto</groupId>
<artifactId>pluto-server</artifactId> <artifactId>pluto-server</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
...@@ -21,6 +23,7 @@ ...@@ -21,6 +23,7 @@
<grpc.spring-boot-starter.version>2.10.1.RELEASE <grpc.spring-boot-starter.version>2.10.1.RELEASE
</grpc.spring-boot-starter.version> </grpc.spring-boot-starter.version>
<mapstruct.version>1.4.1.Final</mapstruct.version>
<lorem.version>2.1</lorem.version> <lorem.version>2.1</lorem.version>
<faker.version>1.0.2</faker.version> <faker.version>1.0.2</faker.version>
</properties> </properties>
...@@ -55,6 +58,12 @@ ...@@ -55,6 +58,12 @@
<artifactId>javafaker</artifactId> <artifactId>javafaker</artifactId>
<version>${faker.version}</version> <version>${faker.version}</version>
</dependency> </dependency>
<!-- tools -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>${mapstruct.version}</version>
</dependency>
<!-- Dev --> <!-- Dev -->
<dependency> <dependency>
...@@ -109,6 +118,92 @@ ...@@ -109,6 +118,92 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
</plugin> </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
<!-- other annotation processors -->
</annotationProcessorPaths>
<showWarnings>true</showWarnings>
<compilerArgs>
<compilerArg>
-Amapstruct.defaultComponentModel=spring
</compilerArg>
<compilerArg>
-Amapstruct.unmappedTargetPolicy=IGNORE
</compilerArg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.13</version>
<configuration>
<username>admin</username>
<password>admin</password>
<!-- <username>srv-schiffsregister-jenkins</username> -->
<!-- <password>Dataport2018!</password> -->
<!-- <repository>build.schir:8082/schir-docker/schir</repository> -->
<repository>default-route-openshift-image-registry.apps.lab.okd.local/sh-kiel-dev/pluto</repository>
<!-- <repository>artefactrepo-ccse.dataport.de/schiffsregister-docker-development</repository> -->
<tag>${git.branch}-${project.version}</tag>
<useMavenSettingsForAuth>true</useMavenSettingsForAuth>
<buildArgs>
<JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
</buildArgs>
</configuration>
<executions>
<execution>
<id>default</id>
<phase>deploy</phase>
<goals>
<goal>build</goal>
<goal>tag</goal>
<goal>push</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<configuration>
<offline>true</offline>
</configuration>
<executions>
<execution>
<id>get-the-git-infos</id>
<goals>
<goal>revision</goal>
</goals>
<phase>initialize</phase>
</execution>
</executions>
</plugin>
</plugins> </plugins>
</build> </build>
......
package de.itvsh.ozg.pluto.vorgang;
import lombok.Builder;
import lombok.Getter;
@Getter
@Builder
public class Eingang {
private String name;
}
package de.itvsh.ozg.pluto.vorgang;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@Mapper
interface EingangMapper {
@Mapping(target = "name", source = "header.formName")
Eingang fromGrpc(GrpcEingang grpcEingang);
}
package de.itvsh.ozg.pluto.vorgang; package de.itvsh.ozg.pluto.vorgang;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.LinkedList;
import java.util.Locale; import java.util.Locale;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import org.springframework.beans.factory.annotation.Autowired;
import com.github.javafaker.Faker; import com.github.javafaker.Faker;
import com.thedeanda.lorem.Lorem; import com.thedeanda.lorem.Lorem;
import com.thedeanda.lorem.LoremIpsum; import com.thedeanda.lorem.LoremIpsum;
...@@ -20,12 +25,25 @@ class GrpcVorgangService extends VorgangServiceGrpc.VorgangServiceImplBase { ...@@ -20,12 +25,25 @@ class GrpcVorgangService extends VorgangServiceGrpc.VorgangServiceImplBase {
private static final Faker FAKER = new Faker(Locale.GERMANY); private static final Faker FAKER = new Faker(Locale.GERMANY);
private static final int TOTAL_VORGAENGE = 1000; private static final int TOTAL_VORGAENGE = 1000;
private static final LinkedList<PlutoVorgangHeader> FAKE_VORGAENGE = new LinkedList<>();
static {
for (int n = 0; n < TOTAL_VORGAENGE; n++) {
FAKE_VORGAENGE.add(buildVorgangHeader());
}
}
@Autowired
private VorgangService vorgangService;
@Autowired
private EingangMapper eingangMapper;
@Override @Override
public void createVorgang(CreateVorgangRequest request, StreamObserver<CreateVorgangReply> responseObserver) { public void createVorgang(CreateVorgangRequest request, StreamObserver<CreateVorgangReply> responseObserver) {
LOG.info("creating vorgang:\n{}", request.toString()); LOG.info("creating vorgang:\n{}", request.toString());
vorgangService.createVorgang(eingangMapper.fromGrpc(request.getEingang()));
var reply = CreateVorgangReply.newBuilder().setMessage("ok").build(); var reply = CreateVorgangReply.newBuilder().setMessage("ok").build();
responseObserver.onNext(reply); responseObserver.onNext(reply);
responseObserver.onCompleted(); responseObserver.onCompleted();
...@@ -43,20 +61,16 @@ class GrpcVorgangService extends VorgangServiceGrpc.VorgangServiceImplBase { ...@@ -43,20 +61,16 @@ class GrpcVorgangService extends VorgangServiceGrpc.VorgangServiceImplBase {
private FindVorgangReply buildFindVorgangReply(FindVorgangRequest request) { private FindVorgangReply buildFindVorgangReply(FindVorgangRequest request) {
var builder = FindVorgangReply.newBuilder(); var builder = FindVorgangReply.newBuilder();
builder.setTotal(TOTAL_VORGAENGE); builder.setTotal(TOTAL_VORGAENGE);
builder.addAllVorgang(FAKE_VORGAENGE.subList(request.getOffset(), request.getOffset() + request.getLimit()));
int numberOfVorgaenge = request.getLimit();
for (int n = 0; n < numberOfVorgaenge; n++) {
builder.addVorgang(buildVorgangHeader());
}
return builder.build(); return builder.build();
} }
private PlutoVorgangHeader buildVorgangHeader() { private static PlutoVorgangHeader buildVorgangHeader() {
return PlutoVorgangHeader.newBuilder()// return PlutoVorgangHeader.newBuilder()//
.setId(UUID.randomUUID().toString())// .setId(UUID.randomUUID().toString())//
.setStatus("NEU")// .setStatus("NEU")//
.setName(LOREM.getWords(2, 7)) .setName(LOREM.getWords(2, 7))
.setCreatedAt(FAKER.date().past(14, TimeUnit.DAYS).toString())// .setCreatedAt(LocalDateTime.ofInstant(FAKER.date().past(14, TimeUnit.DAYS).toInstant(), ZoneId.of("UTC")).toString())//
.build(); .build();
} }
......
package de.itvsh.ozg.pluto.vorgang;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.List;
import org.springframework.data.annotation.Id;
import lombok.Builder;
import lombok.Getter;
import lombok.Singular;
@Getter
@Builder
public class Vorgang {
enum Status {
NEU
}
@Id
private String id;
@Builder.Default
private LocalDateTime createdAt = LocalDateTime.now(ZoneId.of("UTC"));
private String name;
@Builder.Default
private Status status = Status.NEU;
@Singular
private List<Eingang> eingangs;
}
\ No newline at end of file
package de.itvsh.ozg.pluto.vorgang;
import java.time.LocalDateTime;
import java.time.ZoneId;
import org.springframework.data.annotation.Id;
import lombok.Getter;
@Getter
public class VorgangHeader {
enum Status {
NEU
}
@Id
private String id;
private LocalDateTime createdAt = LocalDateTime.now(ZoneId.of("UTC"));
private String name;
private Status status = Status.NEU;
}
package de.itvsh.ozg.pluto.vorgang;
import org.springframework.data.repository.CrudRepository;
public interface VorgangHeaderRepository extends CrudRepository<VorgangHeader, String> {
}
package de.itvsh.ozg.pluto.vorgang;
import org.mapstruct.Mapper;
@Mapper
interface VorgangMapper {
}
package de.itvsh.ozg.pluto.vorgang;
import org.springframework.data.repository.CrudRepository;
interface VorgangRepository extends CrudRepository<Vorgang, String> {
}
package de.itvsh.ozg.pluto.vorgang;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
class VorgangService {
@Autowired
private VorgangRepository repository;
public void createVorgang(Eingang eingang) {
repository.save(Vorgang.builder().eingang(eingang).build());
}
}
spring:
data:
mongodb:
host: 172.30.190.222
authentication-database: admin
username: root
password: ldsjfa0avjklz
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment