You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2022/01/25 11:27:59 UTC

[empire-db] branch version3 updated: EMPIREDB-362 DBSamples model check

This is an automated email from the ASF dual-hosted git repository.

doebele pushed a commit to branch version3
in repository https://gitbox.apache.org/repos/asf/empire-db.git


The following commit(s) were added to refs/heads/version3 by this push:
     new 5550446  EMPIREDB-362 DBSamples model check
5550446 is described below

commit 5550446e91c935547ddbab419317906c2b56be8e
Author: Rainer Döbele <do...@apache.org>
AuthorDate: Tue Jan 25 12:27:56 2022 +0100

    EMPIREDB-362 DBSamples model check
---
 .../empire/samples/db/advanced/SampleAdvApp.java   | 29 ++++++++++------------
 .../org/apache/empire/samples/db/SampleApp.java    | 21 +++++++++++++++-
 2 files changed, 33 insertions(+), 17 deletions(-)

diff --git a/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvApp.java b/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvApp.java
index 3d7c85f..b3269f1 100644
--- a/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvApp.java
+++ b/empire-db-examples/empire-db-example-advanced/src/main/java/org/apache/empire/samples/db/advanced/SampleAdvApp.java
@@ -94,7 +94,6 @@ public class SampleAdvApp
             context = new DBContextStatic(dbms, conn); 
 
             // STEP 3: Open Database (and create if not existing)
-            boolean checkDataModel = true;
             System.out.println("*** Step 3: openDatabase() ***");
             try {
                 // Enable the use of prepared statements for update and insert commands as well as for read operations on a DBRecord.
@@ -105,6 +104,7 @@ public class SampleAdvApp
                 // Check whether database exists
                 databaseExists();
                 System.out.println("*** Database already exists. Checking data model... ***");
+                checkDataModel();
                 
             } catch(Exception e) {
                 // STEP 4: Create Database
@@ -122,13 +122,6 @@ public class SampleAdvApp
                 // Open again
                 if (db.isOpen()==false)
                     db.open(context);
-                // don't check
-                checkDataModel = false;
-            }
-            
-            if (checkDataModel)
-            {   // Check the data model (SampleAdvDB) against the existing database
-                checkDataModel();
             }
 
             // STEP 5: Clear Database (Delete all records)
@@ -333,14 +326,18 @@ public class SampleAdvApp
     
     private static void checkDataModel()
     {
-        DBModelChecker modelChecker = context.getDbms().createModelChecker(db);
-        // Check data model   
-        log.info("Checking DataModel for {} using {}", db.getClass().getSimpleName(), modelChecker.getClass().getSimpleName());
-        // dbo schema
-        DBModelErrorLogger logger = new DBModelErrorLogger();
-        modelChecker.checkModel(context.getConnection(), logger);
-        // show result
-        log.info("Data model check done. Found {} errors and {} warnings.", logger.getErrorCount(), logger.getWarnCount());
+        try {
+            DBModelChecker modelChecker = context.getDbms().createModelChecker(db);
+            // Check data model   
+            log.info("Checking DataModel for {} using {}", db.getClass().getSimpleName(), modelChecker.getClass().getSimpleName());
+            // dbo schema
+            DBModelErrorLogger logger = new DBModelErrorLogger();
+            modelChecker.checkModel(context.getConnection(), logger);
+            // show result
+            log.info("Data model check done. Found {} errors and {} warnings.", logger.getErrorCount(), logger.getWarnCount());
+        } catch(Exception e) {
+            log.error("FATAL error when checking data model. Probably not properly implemented by DBMSHandler!");
+        }
     }
 
     /**
diff --git a/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/SampleApp.java b/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/SampleApp.java
index 57afacd..3485308 100644
--- a/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/SampleApp.java
+++ b/empire-db-examples/empire-db-example-basic/src/main/java/org/apache/empire/samples/db/SampleApp.java
@@ -36,6 +36,8 @@ import org.apache.empire.db.DBRecord;
 import org.apache.empire.db.DBRowSet.PartialMode;
 import org.apache.empire.db.DBSQLScript;
 import org.apache.empire.db.context.DBContextStatic;
+import org.apache.empire.db.validation.DBModelChecker;
+import org.apache.empire.db.validation.DBModelErrorLogger;
 import org.apache.empire.dbms.DBMSHandler;
 import org.apache.empire.dbms.derby.DBMSHandlerDerby;
 import org.apache.empire.dbms.h2.DBMSHandlerH2;
@@ -101,7 +103,8 @@ public class SampleApp
                 db.open(context);
                 // Check whether database exists
 			    databaseExists();
-                log.info("Database already exists. Skipping Step4");
+                log.info("Database already exists. Checking data model...");
+                checkDataModel();
                 
 			} catch(Exception e) {
                 // STEP 4: Create Database
@@ -286,6 +289,22 @@ public class SampleApp
 		// Commit
 		context.commit();
 	}
+    
+    private static void checkDataModel()
+    {
+        try {
+            DBModelChecker modelChecker = context.getDbms().createModelChecker(db);
+            // Check data model   
+            log.info("Checking DataModel for {} using {}", db.getClass().getSimpleName(), modelChecker.getClass().getSimpleName());
+            // dbo schema
+            DBModelErrorLogger logger = new DBModelErrorLogger();
+            modelChecker.checkModel(context.getConnection(), logger);
+            // show result
+            log.info("Data model check done. Found {} errors and {} warnings.", logger.getErrorCount(), logger.getWarnCount());
+        } catch(Exception e) {
+            log.error("FATAL error when checking data model. Probably not properly implemented by DBMSHandler!");
+        }
+    }
 
 	/**
      * <PRE>