diff --git a/pom.xml b/pom.xml index 96852c4..009d381 100644 --- a/pom.xml +++ b/pom.xml @@ -50,6 +50,14 @@ org.flywaydb flyway-core + + + org.flywaydb + flyway-database-postgresql + 10.4.1 + + + org.springframework.session spring-session-core @@ -140,7 +148,6 @@ - org.opencypher.gremlin @@ -183,6 +190,39 @@ + + org.flywaydb + flyway-maven-plugin + 10.17.2 + + __ + + classpath:com/stktrk/app/db/migrations + + + jdbc:postgresql://192.168.178.50:7654/flyway_db + flyway_user + 7e7v55UcYGrY0e3UPYI0qtyMA4YJ1ZkTEaoyZ252GluFkiEMHVT9U5ULS7Rg2rGi + + flyway_db + + + + + + + + + + org.postgresql + postgresql + 42.7.4 + + + + + + diff --git a/src/main/java/com/stktrk/app/AppApplication.java b/src/main/java/com/stktrk/app/AppApplication.java index ff53a1b..5758b86 100644 --- a/src/main/java/com/stktrk/app/AppApplication.java +++ b/src/main/java/com/stktrk/app/AppApplication.java @@ -3,7 +3,9 @@ package com.stktrk.app; import com.arcadedb.gremlin.ArcadeGraph; import com.github.javafaker.Faker; +import com.stktrk.app.configuration.GraphDbConfig; import org.apache.tinkerpop.gremlin.structure.Vertex; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; diff --git a/src/main/java/com/stktrk/app/ConnectionPool.java b/src/main/java/com/stktrk/app/ConnectionPool.java index 51ab12e..bd44d9d 100644 --- a/src/main/java/com/stktrk/app/ConnectionPool.java +++ b/src/main/java/com/stktrk/app/ConnectionPool.java @@ -2,20 +2,30 @@ package com.stktrk.app; import com.arcadedb.gremlin.ArcadeGraph; import com.arcadedb.gremlin.ArcadeGraphFactory; +import com.stktrk.app.configuration.GraphDbConfig; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import javax.annotation.PostConstruct; + +@Component public class ConnectionPool { - static final ArcadeGraphFactory pool; + static ArcadeGraphFactory pool; - static { + @Autowired + GraphDbConfig graphDbConfig; + + @PostConstruct + void init () { try { - pool = ArcadeGraphFactory.withRemote("192.168.178.50", 2480, "graph", "root", "playwithdata"); + pool = ArcadeGraphFactory.withRemote(graphDbConfig.getHost(), graphDbConfig.getHttpPort(), graphDbConfig.getGraphName(), graphDbConfig.getUser(), graphDbConfig.getPassword()); } catch (Exception e) { throw new RuntimeException(e); } } - public static ArcadeGraph getGraph(){ + public static ArcadeGraph getGraph() { return pool.get(); } } diff --git a/src/main/java/com/stktrk/app/configuration/GraphDbConfig.java b/src/main/java/com/stktrk/app/configuration/GraphDbConfig.java new file mode 100644 index 0000000..be5bfc2 --- /dev/null +++ b/src/main/java/com/stktrk/app/configuration/GraphDbConfig.java @@ -0,0 +1,22 @@ +package com.stktrk.app.configuration; + + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Component +@Getter +@Setter +@ConfigurationProperties(prefix = "graph") + +public class GraphDbConfig { + String host; + int httpPort; + int postgresPort; + String graphName; + String user; + String password; + +} diff --git a/src/main/java/com/stktrk/app/db/migrations/V2__CreateTest.java b/src/main/java/com/stktrk/app/db/migrations/V2__CreateTest.java new file mode 100644 index 0000000..3d260cb --- /dev/null +++ b/src/main/java/com/stktrk/app/db/migrations/V2__CreateTest.java @@ -0,0 +1,35 @@ +package com.stktrk.app.db.migrations; + +import org.flywaydb.core.api.migration.BaseJavaMigration; +import org.flywaydb.core.api.migration.Context; + +import java.sql.*; +import java.util.Properties; + +public class V2__CreateTest extends BaseJavaMigration { + public void migrate(Context context) throws Exception { + + Class.forName("org.postgresql.Driver"); + + Properties props = new Properties(); + props.setProperty("user", "root"); + props.setProperty("password", "playwithdata"); + props.setProperty("ssl", "false"); + props.setProperty("sslmode", "disable"); + + System.out.println ("migration"); + + + try (Connection connection = DriverManager.getConnection("jdbc:postgresql://192.168.178.50:5432/graph", props)) { + + Statement st = connection.createStatement(); + st.execute("CREATE VERTEX TYPE test"); + + + } catch (Exception e) { + + System.out.println (e); + + } + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 650f1d8..21d1ca9 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,3 +1,16 @@ spring.application.name=app server.port=9090 -springdoc.swagger-ui.path=/swagger-ui.html \ No newline at end of file +springdoc.swagger-ui.path=/swagger-ui.html + +flyway.user=flyway_user +flyway.password=7e7v55UcYGrY0e3UPYI0qtyMA4YJ1ZkTEaoyZ252GluFkiEMHVT9U5ULS7Rg2rGi +flyway.schemas=flyway_db + + +graph.user=root +graph.password=playwithdata +graph.connection=jdbc:postgresql://192.168.178.50:5432/graph +graph.http-port:2480 +graph.postgres-port:5432 +graph.host=192.168.178.50 +graph.graph-name=graph \ No newline at end of file