From daaf047a4f7e8e688797b940d46f12d0bc626790 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Fri, 21 Jan 2022 08:56:08 +0100
Subject: [PATCH] OZG-1521 OZG-1995 mongock

---
 pluto-server/pom.xml                          | 28 +++++++++++++++++++
 .../ozg/pluto/PlutoServerApplication.java     |  6 ++--
 .../pluto/migration/TestCreateCollection.java | 19 +++++++++++++
 .../src/main/resources/application-local.yml  | 10 ++++++-
 4 files changed, 60 insertions(+), 3 deletions(-)
 create mode 100644 pluto-server/src/main/java/de/itvsh/ozg/pluto/migration/TestCreateCollection.java

diff --git a/pluto-server/pom.xml b/pluto-server/pom.xml
index bf1b82a13..2366101b2 100644
--- a/pluto-server/pom.xml
+++ b/pluto-server/pom.xml
@@ -179,7 +179,35 @@
 			<version>1.15.3</version>
 			<scope>test</scope>
 		</dependency>
+		
+		<!-- mongock -->
+		<dependency>
+		  <groupId>io.mongock</groupId>
+		  <artifactId>mongock-springboot</artifactId>
+		  <version>5.0.35</version>
+		</dependency>
+		<dependency>
+		    <groupId>io.mongock</groupId>
+		    <artifactId>mongock-driver-core</artifactId>
+		    <version>5.0.35</version>
+		</dependency>
+			<dependency>
+		    <groupId>io.mongock</groupId>
+		    <artifactId>mongodb-springdata-v2-driver</artifactId>
+		    <version>5.0.35</version>
+		</dependency>
 	</dependencies>
+	
+	<dependencyManagement>
+        <dependencies>
+	        <dependency>
+			    <groupId>io.mongock</groupId>
+			    <artifactId>mongock-core-bom</artifactId>
+			    <version>5.0.35</version>
+			    <type>pom</type>
+			</dependency>
+        </dependencies>
+    </dependencyManagement>
 
 	<build>
 		<finalName>${project.artifactId}</finalName>
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/PlutoServerApplication.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/PlutoServerApplication.java
index d7877071d..1965aee35 100644
--- a/pluto-server/src/main/java/de/itvsh/ozg/pluto/PlutoServerApplication.java
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/PlutoServerApplication.java
@@ -8,15 +8,17 @@ import org.springframework.context.annotation.EnableAspectJAutoProxy;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.annotation.EnableScheduling;
 
+import io.mongock.runner.springboot.EnableMongock;
+
 @SpringBootApplication(scanBasePackages = "de.itvsh.*")
 @EnableAsync
 @EnableScheduling
 @EnableAspectJAutoProxy(proxyTargetClass = true)
+@EnableMongock
 public class PlutoServerApplication {
 
 	public static void main(String[] args) {
 		TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
 		SpringApplication.run(PlutoServerApplication.class, args);
 	}
-
-}
+}
\ No newline at end of file
diff --git a/pluto-server/src/main/java/de/itvsh/ozg/pluto/migration/TestCreateCollection.java b/pluto-server/src/main/java/de/itvsh/ozg/pluto/migration/TestCreateCollection.java
new file mode 100644
index 000000000..913b0441d
--- /dev/null
+++ b/pluto-server/src/main/java/de/itvsh/ozg/pluto/migration/TestCreateCollection.java
@@ -0,0 +1,19 @@
+package de.itvsh.ozg.pluto.migration;
+
+import io.mongock.api.annotations.ChangeUnit;
+import io.mongock.api.annotations.Execution;
+import io.mongock.api.annotations.RollbackExecution;
+
+@ChangeUnit(id = "2022-01-21", order = "1", author = "mongock")
+public class TestCreateCollection {
+
+	@Execution
+	public void changeSet() {
+		System.out.println("Execution");
+	}
+
+	@RollbackExecution
+	public void doSomething() {
+		System.out.println("Rollback");
+	}
+}
\ No newline at end of file
diff --git a/pluto-server/src/main/resources/application-local.yml b/pluto-server/src/main/resources/application-local.yml
index d4df97c89..894f19c15 100644
--- a/pluto-server/src/main/resources/application-local.yml
+++ b/pluto-server/src/main/resources/application-local.yml
@@ -9,10 +9,18 @@ server:
 management:
   server.port: 8083
   
+mongock:
+  runner-type: initializingbean
+  change-logs-scan-package: 
+    - de.itvsh.ozg.pluto.migration
+  enabled: true
+  
 spring:
   data:
     mongodb:
-       database: pluto-local
+      database: pluto-local
+      #nur zum localen testen(sollte aus dem rancher gezogen werden)
+      uri: mongodb://localhost:27018/test
   mail:
     username: ea@ozg-sh.de
     password: skdljf39jx
-- 
GitLab