From 6a094c2da64df3cd7d6515b035034a9bc671bcba Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 5 Jan 2022 09:05:39 +0100 Subject: [PATCH] Introduce PostgreSQL specific CMS module --- dep/org.argeo.dep.cms.minimal/pom.xml | 5 +++ org.argeo.cms.jcr/bnd.bnd | 2 +- org.argeo.cms.pgsql/.classpath | 7 ++++ org.argeo.cms.pgsql/.project | 28 +++++++++++++ org.argeo.cms.pgsql/bnd.bnd | 1 + org.argeo.cms.pgsql/build.properties | 4 ++ org.argeo.cms.pgsql/pom.xml | 23 ++++++++++ .../src/org/argeo/cms/pgsql/util/CheckPg.java | 42 +++++++++++++++++++ pom.xml | 1 + 9 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 org.argeo.cms.pgsql/.classpath create mode 100644 org.argeo.cms.pgsql/.project create mode 100644 org.argeo.cms.pgsql/bnd.bnd create mode 100644 org.argeo.cms.pgsql/build.properties create mode 100644 org.argeo.cms.pgsql/pom.xml create mode 100644 org.argeo.cms.pgsql/src/org/argeo/cms/pgsql/util/CheckPg.java diff --git a/dep/org.argeo.dep.cms.minimal/pom.xml b/dep/org.argeo.dep.cms.minimal/pom.xml index 9042eabab..6df8690b5 100644 --- a/dep/org.argeo.dep.cms.minimal/pom.xml +++ b/dep/org.argeo.dep.cms.minimal/pom.xml @@ -50,6 +50,11 @@ org.argeo.cms 2.3-SNAPSHOT + + org.argeo.commons + org.argeo.cms.pgsql + 2.3-SNAPSHOT + diff --git a/org.argeo.cms.jcr/bnd.bnd b/org.argeo.cms.jcr/bnd.bnd index 6bb15aba5..761c950e5 100644 --- a/org.argeo.cms.jcr/bnd.bnd +++ b/org.argeo.cms.jcr/bnd.bnd @@ -10,7 +10,7 @@ Import-Package:\ org.argeo.cms.servlet,\ javax.jcr.security,\ org.h2;resolution:=optional,\ -org.postgresql;resolution:=optional,\ +org.postgresql;version="[42,43)";resolution:=optional,\ org.apache.jackrabbit.webdav.server,\ org.apache.jackrabbit.webdav.jcr,\ org.apache.commons.httpclient.cookie;resolution:=optional,\ diff --git a/org.argeo.cms.pgsql/.classpath b/org.argeo.cms.pgsql/.classpath new file mode 100644 index 000000000..e801ebfb4 --- /dev/null +++ b/org.argeo.cms.pgsql/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/org.argeo.cms.pgsql/.project b/org.argeo.cms.pgsql/.project new file mode 100644 index 000000000..ff01ad98d --- /dev/null +++ b/org.argeo.cms.pgsql/.project @@ -0,0 +1,28 @@ + + + org.argeo.cms.pgsql + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/org.argeo.cms.pgsql/bnd.bnd b/org.argeo.cms.pgsql/bnd.bnd new file mode 100644 index 000000000..9c7300926 --- /dev/null +++ b/org.argeo.cms.pgsql/bnd.bnd @@ -0,0 +1 @@ +Import-Package: org.postgresql;version="[42,43)" diff --git a/org.argeo.cms.pgsql/build.properties b/org.argeo.cms.pgsql/build.properties new file mode 100644 index 000000000..34d2e4d2d --- /dev/null +++ b/org.argeo.cms.pgsql/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/org.argeo.cms.pgsql/pom.xml b/org.argeo.cms.pgsql/pom.xml new file mode 100644 index 000000000..c15567f5a --- /dev/null +++ b/org.argeo.cms.pgsql/pom.xml @@ -0,0 +1,23 @@ + + + 4.0.0 + + org.argeo.commons + 2.3-SNAPSHOT + argeo-commons + .. + + org.argeo.cms.pgsql + jar + CMS PostgreSQL + CMS components depending on PostgreSQL APIs (SQL or JDBC) + + + org.argeo.commons + org.argeo.cms + 2.3-SNAPSHOT + + + \ No newline at end of file diff --git a/org.argeo.cms.pgsql/src/org/argeo/cms/pgsql/util/CheckPg.java b/org.argeo.cms.pgsql/src/org/argeo/cms/pgsql/util/CheckPg.java new file mode 100644 index 000000000..9db43df25 --- /dev/null +++ b/org.argeo.cms.pgsql/src/org/argeo/cms/pgsql/util/CheckPg.java @@ -0,0 +1,42 @@ +package org.argeo.cms.pgsql.util; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +import org.postgresql.Driver; + +/** Simple PostgreSQL check. */ +public class CheckPg { + + public List listTables() { + String osUser = System.getProperty("user.name"); + + String url = "jdbc:postgresql://localhost/" + osUser; + Properties props = new Properties(); + props.setProperty("user", osUser); + props.setProperty("password", "changeit"); + List result = new ArrayList<>(); + + Driver driver = new Driver(); + try (Connection conn = driver.connect(url, props); Statement s = conn.createStatement();) { + s.execute("SELECT * FROM pg_catalog.pg_tables"); + ResultSet rs = s.getResultSet(); + while (rs.next()) { + result.add(rs.getString("tablename")); + } + return result; + } catch (SQLException e) { + throw new IllegalStateException(e); + } + } + + public static void main(String[] args) { + new CheckPg().listTables().forEach(System.out::println); + } + +} diff --git a/pom.xml b/pom.xml index af7295ccd..41f257e50 100644 --- a/pom.xml +++ b/pom.xml @@ -27,6 +27,7 @@ org.argeo.api org.argeo.cms.tp org.argeo.cms + org.argeo.cms.pgsql org.argeo.cms.servlet org.argeo.cms.jcr -- 2.30.2