This is an automated email from the ASF dual-hosted git repository.
doebele pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/empire-db.git
The following commit(s) were added to refs/heads/master by this push:
new c58136c EMPIREDB-362 Improved logging
c58136c is described below
commit c58136c6a59ce1bb46cac8d97afc378705044789
Author: Rainer Döbele <[email protected]>
AuthorDate: Thu Mar 3 21:48:58 2022 +0100
EMPIREDB-362 Improved logging
---
.../empire-db-example-advanced/config.xml | 73 +++++++--------
.../empire/samples/db/advanced/SampleAdvApp.java | 1 +
.../empire-db-example-basic/config.xml | 49 +++++-----
.../src/main/webapp/WEB-INF/config.xml | 104 +++++++++++++--------
.../src/main/webapp/WEB-INF/config.xml | 104 +++++++++++++--------
.../java/org/apache/empire/db/DBSQLScript.java | 49 ++++++----
.../main/java/org/apache/empire/db/DBUtils.java | 103 ++++++++++++++++----
.../org/apache/empire/dbms/DBMSHandlerBase.java | 3 +-
.../java/org/apache/empire/dbms/DBSqlPhrase.java | 5 -
.../org/apache/empire/dbms/hsql/DBCommandHSql.java | 3 -
.../org/apache/empire/xml/XMLConfiguration.java | 18 +++-
11 files changed, 322 insertions(+), 190 deletions(-)
diff --git a/empire-db-examples/empire-db-example-advanced/config.xml
b/empire-db-examples/empire-db-example-advanced/config.xml
index e53b18a..baa6fa1 100644
--- a/empire-db-examples/empire-db-example-advanced/config.xml
+++ b/empire-db-examples/empire-db-example-advanced/config.xml
@@ -33,7 +33,7 @@
<jdbcPwd></jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.hsql.DBMSHandlerHSql</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<!-- no properties -->
</dbmsHandlerProperties>
</properties-hsqldb>
@@ -47,7 +47,7 @@
<jdbcPwd>esteam</jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.mysql.DBMSHandlerMySQL</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<databaseName>DBSAMPLEADV</databaseName>
</dbmsHandlerProperties>
</properties-mysql>
@@ -61,7 +61,7 @@
<jdbcPwd>DBSAMPLE</jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.postgresql.DBMSHandlerPostgreSQL</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<!-- no properties -->
</dbmsHandlerProperties>
</properties-postgresql>
@@ -75,7 +75,7 @@
<jdbcPwd></jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.h2.DBMSHandlerH2</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<databaseName>DBSAMPLEADV</databaseName>
</dbmsHandlerProperties>
</properties-h2>
@@ -89,7 +89,7 @@
<jdbcPwd></jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.derby.DBMSHandlerDerby</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<databaseName>DBSAMPLEADV</databaseName>
</dbmsHandlerProperties>
</properties-derby>
@@ -103,7 +103,7 @@
<jdbcPwd>DBSAMPLEADV</jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.oracle.DBMSHandlerOracle</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<schemaName>DBSAMPLEADV</schemaName>
</dbmsHandlerProperties>
</properties-oracle>
@@ -116,7 +116,7 @@
<jdbcPwd>jdbcPwd</jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.sqlserver.DBMSHandlerMSSQL</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<databaseName>DBSAMPLEADV</databaseName>
<useSequenceTable>false</useSequenceTable>
<!-- useDateTime2: set to false for databases using
DATETIME for timestamps instead of DATETIME2 -->
@@ -127,58 +127,51 @@
<!-- log4j configuration node -->
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+ <!-- Default Appender -->
<appender name="default"
class="org.apache.log4j.ConsoleAppender">
- <!-- layout class="org.apache.log4j.TTCCLayout"/ -->
<layout class="org.apache.log4j.PatternLayout">
- <!-- param name="ConversionPattern"
value="NSB(%c) %-5p %m at %l%n"/ -->
- <param name="ConversionPattern" value="%-5p
[%d{yyyy/MM/dd HH:mm}]: %m at %l %n"/>
+ <param name="ConversionPattern" value="%-5p :
%m at %l %n"/>
</layout>
</appender>
- <!-- log detail configuration -->
-
- <logger name="org.apache.empire.xml" additivity="false">
- <level value="info"/>
- <appender-ref ref="default"/>
- </logger>
-
- <logger name="org.apache.empire.commons" additivity="false">
- <level value="warn"/>
- <appender-ref ref="default"/>
- </logger>
+ <!-- Appender for DBUtils (SQL-Statements) -->
+ <appender name="utils" class="org.apache.log4j.ConsoleAppender">
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern"
value="--------------------------------%n%-5p : %m%n"/>
+ </layout>
+ </appender>
+ <!-- Appender for SampleApp -->
+ <appender name="sample"
class="org.apache.log4j.ConsoleAppender">
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%-5p :
*** %m *** %n"/>
+ </layout>
+ </appender>
+
+ <!-- log detail configuration -->
<logger name="org.apache.empire.db" additivity="false">
<level value="warn"/>
<appender-ref ref="default"/>
</logger>
- <!-- Set this level to "debug" to log all SQL-Statements -->
- <logger name="org.apache.empire.db.DBDatabase"
additivity="false">
- <level value="debug"/>
- <appender-ref ref="default"/>
- </logger>
-
- <logger name="org.apache.empire.dbms" additivity="false">
- <level value="debug"/>
- <appender-ref ref="default"/>
- </logger>
-
- <logger name="org.apache.empire.db.validation"
additivity="false">
+ <!-- Show Config-file settings -->
+ <logger name="org.apache.empire.xml" additivity="false">
<level value="info"/>
<appender-ref ref="default"/>
</logger>
- <!-- Set this level to "debug" to log all DDL-Statements -->
- <logger name="org.apache.empire.db.DBSQLScript"
additivity="false">
+ <!-- Set this level to "debug" to log all SQL-Statements or to
"info" to log DML-Statements only -->
+ <logger name="org.apache.empire.db.DBUtils" additivity="false">
<level value="debug"/>
- <appender-ref ref="default"/>
+ <appender-ref ref="utils"/>
</logger>
-
- <logger name="org.apache.empire.samples.db.advanced"
additivity="false">
+
+ <!-- This is the log output of the SampleApp -->
+ <logger name="org.apache.empire.samples" additivity="false">
<level value="debug"/>
- <appender-ref ref="default"/>
+ <appender-ref ref="sample"/>
</logger>
-
+
<root>
<priority value="info"/>
<appender-ref ref="default"/>
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 0cdabfb..6aed30f 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
@@ -157,6 +157,7 @@ public class SampleAdvApp
// Done
log.info("DB Sample Advanced finished successfully.");
+ context.commit();
}
public void populateDatabase()
diff --git a/empire-db-examples/empire-db-example-basic/config.xml
b/empire-db-examples/empire-db-example-basic/config.xml
index 577407f..bec257f 100644
--- a/empire-db-examples/empire-db-example-basic/config.xml
+++ b/empire-db-examples/empire-db-example-basic/config.xml
@@ -33,7 +33,7 @@
<jdbcPwd></jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.hsql.DBMSHandlerHSql</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<!-- no properties -->
</dbmsHandlerProperties>
</properties-hsqldb>
@@ -47,7 +47,7 @@
<jdbcPwd>esteam</jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.mysql.DBMSHandlerMySQL</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<databaseName>DBSAMPLE</databaseName>
</dbmsHandlerProperties>
</properties-mysql>
@@ -61,7 +61,7 @@
<jdbcPwd>DBSAMPLE</jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.postgresql.DBMSHandlerPostgreSQL</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<!-- no properties -->
</dbmsHandlerProperties>
</properties-postgresql>
@@ -75,7 +75,7 @@
<jdbcPwd></jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.h2.DBMSHandlerH2</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<databaseName>DBSAMPLE</databaseName>
</dbmsHandlerProperties>
</properties-h2>
@@ -89,7 +89,7 @@
<jdbcPwd></jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.derby.DBMSHandlerDerby</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<databaseName>DBSAMPLE</databaseName>
</dbmsHandlerProperties>
</properties-derby>
@@ -103,7 +103,7 @@
<jdbcPwd>DBSAMPLE</jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.oracle.DBMSHandlerOracle</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<!-- no properties -->
</dbmsHandlerProperties>
</properties-oracle>
@@ -116,23 +116,32 @@
<jdbcPwd>jdbcPwd</jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.sqlserver.DBMSHandlerMSSQL</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<databaseName>DBSAMPLE</databaseName>
<useSequenceTable>false</useSequenceTable>
<!-- useDateTime2: set to false for databases using
DATETIME for timestamps instead of DATETIME2 -->
<useDateTime2>true</useDateTime2>
</dbmsHandlerProperties>
</properties-sqlserver>
-
+
<!-- log4j configuration node -->
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+ <!-- Default Appender -->
<appender name="default"
class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p :
%m at %l %n"/>
</layout>
</appender>
+ <!-- Appender for DBUtils (SQL-Statements) -->
+ <appender name="utils" class="org.apache.log4j.ConsoleAppender">
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern"
value="--------------------------------%n%-5p : %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- Appender for SampleApp -->
<appender name="sample"
class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p :
*** %m *** %n"/>
@@ -140,33 +149,25 @@
</appender>
<!-- log detail configuration -->
- <logger name="org.apache.empire.xml" additivity="false">
- <level value="info"/>
- <appender-ref ref="default"/>
- </logger>
-
- <logger name="org.apache.empire.commons" additivity="false">
+ <logger name="org.apache.empire.db" additivity="false">
<level value="warn"/>
<appender-ref ref="default"/>
</logger>
- <logger name="org.apache.empire.db" additivity="false">
+ <!-- Show Config-file settings -->
+ <logger name="org.apache.empire.xml" additivity="false">
<level value="info"/>
<appender-ref ref="default"/>
</logger>
- <logger name="org.apache.empire.db.context" additivity="false">
+ <!-- Set this level to "debug" to log all SQL-Statements or to
"info" to log DML-Statements only -->
+ <logger name="org.apache.empire.db.DBUtils" additivity="false">
<level value="debug"/>
- <appender-ref ref="default"/>
- </logger>
-
- <!-- Set this level to "debug" to log all SQL-Statements -->
- <logger name="org.apache.empire.db.DBDatabase"
additivity="false">
- <level value="debug"/>
- <appender-ref ref="default"/>
+ <appender-ref ref="utils"/>
</logger>
- <logger name="org.apache.empire.samples.db" additivity="false">
+ <!-- This is the log output of the SampleApp -->
+ <logger name="org.apache.empire.samples" additivity="false">
<level value="debug"/>
<appender-ref ref="sample"/>
</logger>
diff --git
a/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/config.xml
b/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/config.xml
index ca6f2fb..756b130 100644
---
a/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/config.xml
+++
b/empire-db-examples/empire-db-example-jsf2/src/main/webapp/WEB-INF/config.xml
@@ -1,14 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more
contributor
- license agreements. See the NOTICE file distributed with this work for
additional
- information regarding copyright ownership. The ASF licenses this file
to
- you under the Apache License, Version 2.0 (the "License"); you may not
use
- this file except in compliance with the License. You may obtain a copy
of
- the License at http://www.apache.org/licenses/LICENSE-2.0 Unless
required
- by applicable law or agreed to in writing, software distributed under
the
- License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS
- OF ANY KIND, either express or implied. See the License for the
specific
- language governing permissions and limitations under the License. -->
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
<config>
<properties>
@@ -25,7 +33,7 @@
<jdbcPwd></jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.hsql.DBMSHandlerHSql</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<!-- no properties -->
</dbmsHandlerProperties>
</properties-hsqldb>
@@ -39,7 +47,7 @@
<jdbcPwd>esteam</jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.mysql.DBMSHandlerMySQL</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<databaseName>DBSAMPLE</databaseName>
</dbmsHandlerProperties>
</properties-mysql>
@@ -48,13 +56,13 @@
<!-- JDBC properties for a PostreSQL Database connection -->
<!-- Required jar file: postgresql-8.3-603.jdbc4.jar -->
<jdbcClass>org.postgresql.Driver</jdbcClass>
- <jdbcURL>jdbc:postgresql://localhost</jdbcURL>
- <jdbcUser>postgres</jdbcUser>
- <jdbcPwd>postgres</jdbcPwd>
+ <jdbcURL>jdbc:postgresql://localhost/dbsample</jdbcURL>
+ <jdbcUser>dbsample</jdbcUser>
+ <jdbcPwd>DBSAMPLE</jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.postgresql.DBMSHandlerPostgreSQL</dbmsHandlerClass>
- <dbmsHandlerProperties>
- <databaseName>DBSAMPLE</databaseName>
+ <dbmsHandlerProperties property="false">
+ <!-- no properties -->
</dbmsHandlerProperties>
</properties-postgresql>
@@ -67,7 +75,7 @@
<jdbcPwd></jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.h2.DBMSHandlerH2</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<databaseName>DBSAMPLE</databaseName>
</dbmsHandlerProperties>
</properties-h2>
@@ -81,7 +89,7 @@
<jdbcPwd></jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.derby.DBMSHandlerDerby</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<databaseName>DBSAMPLE</databaseName>
</dbmsHandlerProperties>
</properties-derby>
@@ -95,7 +103,7 @@
<jdbcPwd>DBSAMPLE</jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.oracle.DBMSHandlerOracle</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<!-- no properties -->
</dbmsHandlerProperties>
</properties-oracle>
@@ -108,7 +116,7 @@
<jdbcPwd>jdbcPwd</jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.sqlserver.DBMSHandlerMSSQL</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<databaseName>DBSAMPLE</databaseName>
<useSequenceTable>false</useSequenceTable>
<!-- useDateTime2: set to false for databases using
DATETIME for timestamps instead of DATETIME2 -->
@@ -116,41 +124,57 @@
</dbmsHandlerProperties>
</properties-sqlserver>
+ <!-- log4j configuration node -->
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+ <!-- Default Appender -->
<appender name="default"
class="org.apache.log4j.ConsoleAppender">
- <!-- layout class="org.apache.log4j.TTCCLayout"/ -->
<layout class="org.apache.log4j.PatternLayout">
- <!-- param name="ConversionPattern"
value="NSB(%c) %-5p %m at %l%n"/ -->
- <param name="ConversionPattern" value="%-5p
[%d{yyyy/MM/dd HH:mm}]: %m at %l %n" />
+ <param name="ConversionPattern" value="%-5p :
%m at %l %n"/>
</layout>
</appender>
-
+
+ <!-- Appender for DBUtils (SQL-Statements) -->
+ <appender name="utils" class="org.apache.log4j.ConsoleAppender">
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern"
value="--------------------------------%n%-5p : %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- Appender for SampleApp -->
+ <appender name="sample"
class="org.apache.log4j.ConsoleAppender">
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%-5p :
*** %m *** %n"/>
+ </layout>
+ </appender>
+
<!-- log detail configuration -->
- <logger name="org.apache.empire.xml" additivity="false">
- <level value="info" />
- <appender-ref ref="default" />
+ <logger name="org.apache.empire.db" additivity="false">
+ <level value="warn"/>
+ <appender-ref ref="default"/>
</logger>
- <logger name="org.apache.empire.commons" additivity="false">
- <level value="warn" />
- <appender-ref ref="default" />
+ <!-- Show Config-file settings -->
+ <logger name="org.apache.empire.xml" additivity="false">
+ <level value="info"/>
+ <appender-ref ref="default"/>
</logger>
- <logger name="org.apache.empire.db" additivity="false">
- <level value="info" />
- <appender-ref ref="default" />
+ <!-- Set this level to "debug" to log all SQL-Statements or to
"info" to log DML-Statements only -->
+ <logger name="org.apache.empire.db.DBUtils" additivity="false">
+ <level value="debug"/>
+ <appender-ref ref="utils"/>
</logger>
- <!-- Set this level to "debug" to log all SQL-Statements -->
- <logger name="org.apache.empire.db.DBDatabase"
additivity="false">
- <level value="debug" />
- <appender-ref ref="default" />
+ <!-- This is the log output of the SampleApp -->
+ <logger name="org.apache.empire.jsf2.websample"
additivity="false">
+ <level value="info"/>
+ <appender-ref ref="sample"/>
</logger>
<root>
- <priority value="info" />
- <appender-ref ref="default" />
+ <priority value="info"/>
+ <appender-ref ref="default"/>
</root>
</log4j:configuration>
diff --git
a/empire-db-examples/empire-db-example-vue/src/main/webapp/WEB-INF/config.xml
b/empire-db-examples/empire-db-example-vue/src/main/webapp/WEB-INF/config.xml
index ca6f2fb..5471754 100644
---
a/empire-db-examples/empire-db-example-vue/src/main/webapp/WEB-INF/config.xml
+++
b/empire-db-examples/empire-db-example-vue/src/main/webapp/WEB-INF/config.xml
@@ -1,14 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more
contributor
- license agreements. See the NOTICE file distributed with this work for
additional
- information regarding copyright ownership. The ASF licenses this file
to
- you under the Apache License, Version 2.0 (the "License"); you may not
use
- this file except in compliance with the License. You may obtain a copy
of
- the License at http://www.apache.org/licenses/LICENSE-2.0 Unless
required
- by applicable law or agreed to in writing, software distributed under
the
- License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS
- OF ANY KIND, either express or implied. See the License for the
specific
- language governing permissions and limitations under the License. -->
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
<config>
<properties>
@@ -25,7 +33,7 @@
<jdbcPwd></jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.hsql.DBMSHandlerHSql</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<!-- no properties -->
</dbmsHandlerProperties>
</properties-hsqldb>
@@ -39,7 +47,7 @@
<jdbcPwd>esteam</jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.mysql.DBMSHandlerMySQL</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<databaseName>DBSAMPLE</databaseName>
</dbmsHandlerProperties>
</properties-mysql>
@@ -48,13 +56,13 @@
<!-- JDBC properties for a PostreSQL Database connection -->
<!-- Required jar file: postgresql-8.3-603.jdbc4.jar -->
<jdbcClass>org.postgresql.Driver</jdbcClass>
- <jdbcURL>jdbc:postgresql://localhost</jdbcURL>
- <jdbcUser>postgres</jdbcUser>
- <jdbcPwd>postgres</jdbcPwd>
+ <jdbcURL>jdbc:postgresql://localhost/dbsample</jdbcURL>
+ <jdbcUser>dbsample</jdbcUser>
+ <jdbcPwd>DBSAMPLE</jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.postgresql.DBMSHandlerPostgreSQL</dbmsHandlerClass>
- <dbmsHandlerProperties>
- <databaseName>DBSAMPLE</databaseName>
+ <dbmsHandlerProperties property="false">
+ <!-- no properties -->
</dbmsHandlerProperties>
</properties-postgresql>
@@ -67,7 +75,7 @@
<jdbcPwd></jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.h2.DBMSHandlerH2</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<databaseName>DBSAMPLE</databaseName>
</dbmsHandlerProperties>
</properties-h2>
@@ -81,7 +89,7 @@
<jdbcPwd></jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.derby.DBMSHandlerDerby</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<databaseName>DBSAMPLE</databaseName>
</dbmsHandlerProperties>
</properties-derby>
@@ -95,7 +103,7 @@
<jdbcPwd>DBSAMPLE</jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.oracle.DBMSHandlerOracle</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<!-- no properties -->
</dbmsHandlerProperties>
</properties-oracle>
@@ -108,7 +116,7 @@
<jdbcPwd>jdbcPwd</jdbcPwd>
<!-- Empire-db driver configuration -->
<dbmsHandlerClass>org.apache.empire.dbms.sqlserver.DBMSHandlerMSSQL</dbmsHandlerClass>
- <dbmsHandlerProperties>
+ <dbmsHandlerProperties property="false">
<databaseName>DBSAMPLE</databaseName>
<useSequenceTable>false</useSequenceTable>
<!-- useDateTime2: set to false for databases using
DATETIME for timestamps instead of DATETIME2 -->
@@ -116,41 +124,57 @@
</dbmsHandlerProperties>
</properties-sqlserver>
+ <!-- log4j configuration node -->
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+ <!-- Default Appender -->
<appender name="default"
class="org.apache.log4j.ConsoleAppender">
- <!-- layout class="org.apache.log4j.TTCCLayout"/ -->
<layout class="org.apache.log4j.PatternLayout">
- <!-- param name="ConversionPattern"
value="NSB(%c) %-5p %m at %l%n"/ -->
- <param name="ConversionPattern" value="%-5p
[%d{yyyy/MM/dd HH:mm}]: %m at %l %n" />
+ <param name="ConversionPattern" value="%-5p :
%m at %l %n"/>
</layout>
</appender>
-
+
+ <!-- Appender for DBUtils (SQL-Statements) -->
+ <appender name="utils" class="org.apache.log4j.ConsoleAppender">
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern"
value="--------------------------------%n%-5p : %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- Appender for SampleApp -->
+ <appender name="sample"
class="org.apache.log4j.ConsoleAppender">
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%-5p :
*** %m *** %n"/>
+ </layout>
+ </appender>
+
<!-- log detail configuration -->
- <logger name="org.apache.empire.xml" additivity="false">
- <level value="info" />
- <appender-ref ref="default" />
+ <logger name="org.apache.empire.db" additivity="false">
+ <level value="warn"/>
+ <appender-ref ref="default"/>
</logger>
- <logger name="org.apache.empire.commons" additivity="false">
- <level value="warn" />
- <appender-ref ref="default" />
+ <!-- Show Config-file settings -->
+ <logger name="org.apache.empire.xml" additivity="false">
+ <level value="info"/>
+ <appender-ref ref="default"/>
</logger>
- <logger name="org.apache.empire.db" additivity="false">
- <level value="info" />
- <appender-ref ref="default" />
+ <!-- Set this level to "debug" to log all SQL-Statements or to
"info" to log DML-Statements only -->
+ <logger name="org.apache.empire.db.DBUtils" additivity="false">
+ <level value="debug"/>
+ <appender-ref ref="utils"/>
</logger>
- <!-- Set this level to "debug" to log all SQL-Statements -->
- <logger name="org.apache.empire.db.DBDatabase"
additivity="false">
- <level value="debug" />
- <appender-ref ref="default" />
+ <!-- This is the log output of the SampleApp -->
+ <logger name="org.apache.empire.rest" additivity="false">
+ <level value="info"/>
+ <appender-ref ref="sample"/>
</logger>
<root>
- <priority value="info" />
- <appender-ref ref="default" />
+ <priority value="info"/>
+ <appender-ref ref="default"/>
</root>
</log4j:configuration>
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBSQLScript.java
b/empire-db/src/main/java/org/apache/empire/db/DBSQLScript.java
index 5793b13..08df268 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBSQLScript.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBSQLScript.java
@@ -18,6 +18,7 @@
*/
package org.apache.empire.db;
+import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
@@ -331,31 +332,43 @@ public class DBSQLScript implements DBContextAware,
Iterable<String>
*/
public int executeAll(boolean ignoreErrors)
{
- log.debug("Running script containing " + String.valueOf(getCount()) +
" statements.");
+ log.info("Running script containing " + String.valueOf(getCount()) + "
statements.");
+ int errors = 0;
int result = 0;
- DBMSHandler dbms = context.getDbms();
+ DBMSHandler dbms = context.getDbms();
+ Connection conn = context.getConnection();
+ DBUtils utils = context.getUtils(); // Use DBUtils for log helpers
only
for (SQLStmt stmt : sqlStmtList)
- {
- try
- {
+ { try
+ { // execute
+ String sqlCmd = stmt.getCmd();
+ Object[] sqlParams = stmt.getParams();
+ // Debug
+ if (log.isDebugEnabled())
+ { // Log with or without parameters
+ if (sqlParams!=null && sqlParams.length>0)
+ log.debug("Executing Stmt: {}{}{}Parameters: [{}]",
utils.LOG_NEW_LINE, sqlCmd, utils.LOG_NEW_LINE,
utils.paramsToString(sqlParams));
+ else
+ log.debug("Executing Stmt: {}{}", utils.LOG_NEW_LINE,
sqlCmd);
+ }
// Execute Statement
- log.debug("Executing: {}", stmt.getCmd());
- int count = dbms.executeSQL(stmt.getCmd(), stmt.getParams(),
context.getConnection(), null);
+ int count = dbms.executeSQL(sqlCmd, sqlParams, conn, null);
result += (count >= 0 ? count : 0);
}
catch (SQLException e)
- {
- // SQLException
- log.error(e.toString(), e);
+ { // SQLException
+ log.warn("Statement '"+stmt.getCmd()+"' failed with
SQLException "+e.toString(), e);
if (ignoreErrors == false)
{ // forward exception
throw new EmpireSQLException(dbms, e);
}
// continue
log.debug("Ignoring error. Continuing with script...");
+ errors++;
}
}
- log.debug("Script completed. {} records affected.", result);
+ // done
+ log.info("Script completed with {} errors. {} records affected.",
errors, result);
return result;
}
@@ -374,11 +387,9 @@ public class DBSQLScript implements DBContextAware,
Iterable<String>
*/
public int executeBatch()
{
- log.debug("Running batch containing " + String.valueOf(getCount()) + "
statements.");
DBMSHandler dbms = context.getDbms();
try
- {
- // Execute Statement
+ { // Execute Statement
int count = sqlStmtList.size();
String[] cmdList = new String[count];
Object[][] paramList = null;
@@ -396,16 +407,16 @@ public class DBSQLScript implements DBContextAware,
Iterable<String>
i++;
}
// Execute batch
+ log.info("Running batch containing " + String.valueOf(getCount())
+ " statements.");
int[] res = dbms.executeBatch(cmdList, paramList,
context.getConnection());
for (count = 0, i = 0; i < (res != null ? res.length : 0); i++)
- count += (res[i] >= 0 ? res[i] : 0);
- log.debug("Script completed. {} records affected.", count);
+ count+= (res[i] >= 0 ? res[i] : 0);
+ log.info("Script completed. {} records affected.", count);
return count;
}
catch (SQLException e)
- {
- // SQLException
- log.error(e.toString(), e);
+ { // SQLException
+ log.warn("Execute Batch failed with SQLException "+e.toString(),
e);
throw new EmpireSQLException(dbms, e);
}
}
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBUtils.java
b/empire-db/src/main/java/org/apache/empire/db/DBUtils.java
index 1a29c3e..b6a9fdc 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBUtils.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBUtils.java
@@ -41,7 +41,7 @@ import org.slf4j.LoggerFactory;
public class DBUtils implements DBContextAware
{
// Logger (Use logger from DBDatabase.class)
- protected static final Logger log =
LoggerFactory.getLogger(DBDatabase.class);
+ protected static final Logger log = LoggerFactory.getLogger(DBUtils.class);
// Threshold for long running queries in milliseconds
protected long longRunndingStmtThreshold = 30000;
@@ -49,6 +49,10 @@ public class DBUtils implements DBContextAware
protected int DEFAULT_LIST_CAPACITY = 10;
// Max-Rows for list queries
protected int MAX_QUERY_ROWS = 999;
+ // Log max String length
+ protected int LOG_MAX_STRING_LENGTH = 40;
+ // Log New-Line
+ protected String LOG_NEW_LINE = "\r\n";
// the context
protected final DBContext context;
@@ -76,6 +80,67 @@ public class DBUtils implements DBContextAware
}
/**
+ * Get single parameter as string (for logging only)
+ * @param param the parameter
+ */
+ protected String paramValueToString(Object param)
+ {
+ if (param==null)
+ return "NULL";
+ DataType dataType = DataType.fromJavaType(param.getClass());
+ if (dataType.isText())
+ { // text handling
+ String str = param.toString();
+ // limit length
+ if (str.length()>LOG_MAX_STRING_LENGTH)
+ { StringBuilder b = new StringBuilder(LOG_MAX_STRING_LENGTH+10);
+ b.append(str.substring(0, LOG_MAX_STRING_LENGTH));
+ b.append("~(");
+ b.append(String.valueOf(str.length()));
+ b.append(")");
+ str = b.toString();
+ }
+ // make sure param does not contain the separator
+ if (str.indexOf('|')>=0)
+ str = str.replace('|', '?');
+ // done
+ return str;
+ }
+ if (dataType==DataType.UNKNOWN ||
+ dataType==DataType.BLOB ||
+ dataType==DataType.CLOB)
+ { // get the class name
+ return param.getClass().getName();
+ }
+ // just convert to String
+ return String.valueOf(param);
+ }
+
+ /**
+ * Get all parameters as string (for logging only)
+ * @param params the parameter
+ */
+ protected String paramsToString(Object[] params)
+ {
+ if (params == null || params.length < 1)
+ return null; // Empty
+ if (params.length > 1)
+ { // more than one
+ StringBuilder buf = new StringBuilder();
+ for (int i = 0; i < params.length; i++)
+ {
+ if (i>0)
+ buf.append('|');
+ // append
+ buf.append(paramValueToString(params[i]));
+ }
+ return buf.toString();
+ }
+ // Only one parameter
+ return paramValueToString(params[0]);
+ }
+
+ /**
* Log Query Statement
* @param sqlCmd
* @param sqlParams
@@ -83,9 +148,11 @@ public class DBUtils implements DBContextAware
protected void logQueryStatement(String sqlCmd, Object[] sqlParams)
{
if (log.isDebugEnabled())
- { log.debug("Executing DQL: " + sqlCmd);
+ { // Log with or without parameters
if (sqlParams!=null && sqlParams.length>0)
- log.debug("Parameters: " +
StringUtils.arrayToString(sqlParams, "|"));
+ log.debug("Executing DQL: {}{}{}Parameters: [{}]",
LOG_NEW_LINE, sqlCmd, LOG_NEW_LINE, paramsToString(sqlParams));
+ else
+ log.debug("Executing DQL: {}{}", LOG_NEW_LINE, sqlCmd);
}
}
@@ -97,9 +164,11 @@ public class DBUtils implements DBContextAware
protected void logUpdateStatement(String sqlCmd, Object[] sqlParams)
{
if (log.isInfoEnabled())
- { log.info("Executing DML: " + sqlCmd);
+ { // Log with or without parameters
if (sqlParams!=null && sqlParams.length>0)
- log.info("Parameters: " + StringUtils.arrayToString(sqlParams,
"|"));
+ log.info("Executing DML: {}{}{}Parameters: [{}]",
LOG_NEW_LINE, sqlCmd, LOG_NEW_LINE, paramsToString(sqlParams));
+ else
+ log.info("Executing DML: {}{}", LOG_NEW_LINE, sqlCmd);
}
}
@@ -424,10 +493,10 @@ public class DBUtils implements DBContextAware
{ // Start query
ResultSet rs = null;
try
- { // Log performance
+ {
+ logQueryStatement(sqlCmd, sqlParams);
+ // Log performance
long start = System.currentTimeMillis();
- if (log.isDebugEnabled())
- log.debug("Executing: " + sqlCmd);
// Get the next Value
rs = dbms.executeQuery(sqlCmd, sqlParams, false,
context.getConnection());
if (rs == null)
@@ -517,10 +586,10 @@ public class DBUtils implements DBContextAware
{ // Execute the Statement
ResultSet rs = null;
try
- { // Debug
+ {
+ logQueryStatement(sqlCmd, sqlParams);
+ // Debug
long start = System.currentTimeMillis();
- if (log.isDebugEnabled())
- log.debug("Executing: " + sqlCmd);
// Get the next Value
rs = dbms.executeQuery(sqlCmd, sqlParams, false,
context.getConnection());
if (rs == null)
@@ -593,10 +662,10 @@ public class DBUtils implements DBContextAware
{ // Perform query
ResultSet rs = null;
try
- { // Log performance
+ {
+ logQueryStatement(sqlCmd, sqlParams);
+ // Log performance
long start = System.currentTimeMillis();
- if (log.isDebugEnabled())
- log.debug("Executing: " + sqlCmd);
// Get the next Value
rs = dbms.executeQuery(sqlCmd, sqlParams, false,
context.getConnection());
if (rs == null)
@@ -917,7 +986,7 @@ public class DBUtils implements DBContextAware
rownum++;
}
else
- log.warn("Record {} is not valid thus it will not be added
to the RecordListQuery.", rownum);
+ log.trace("Record {} is not valid thus it will not be
added to the RecordListQuery.", rownum);
// Decrease count
if (maxCount > 0)
maxCount--;
@@ -986,7 +1055,7 @@ public class DBUtils implements DBContextAware
DBBeanListFactory<T> factory =
DBBeanFactoryCache.getFactoryForType(beanType);
if (factory==null)
{ // Create default factory
- log.info("No factory found for bean type '{}' and rowset {}.
Creating default", beanType.getName(), rowset.getName());
+ log.debug("No factory found for bean type '{}' and rowset {}.
Creating default", beanType.getName(), rowset.getName());
factory= createDefaultBeanListFactory(beanType,
rowset.getKeyColumns(), rowset.getColumns());
DBBeanFactoryCache.setFactoryForType(beanType, factory);
}
@@ -1007,7 +1076,7 @@ public class DBUtils implements DBContextAware
if (!cmd.hasSelectExpr())
throw new CommandWithoutSelectException(cmd);
// Create default factory
- log.info("No factory found for bean type '{}'. Creating default",
beanType.getName());
+ log.debug("No factory found for bean type '{}'. Creating default",
beanType.getName());
factory= createDefaultBeanListFactory(beanType, null,
cmd.getSelectExpressions());
DBBeanFactoryCache.setFactoryForType(beanType, factory);
}
diff --git
a/empire-db/src/main/java/org/apache/empire/dbms/DBMSHandlerBase.java
b/empire-db/src/main/java/org/apache/empire/dbms/DBMSHandlerBase.java
index 2f10919..6f7d485 100644
--- a/empire-db/src/main/java/org/apache/empire/dbms/DBMSHandlerBase.java
+++ b/empire-db/src/main/java/org/apache/empire/dbms/DBMSHandlerBase.java
@@ -733,7 +733,8 @@ public abstract class DBMSHandlerBase implements DBMSHandler
}
} catch(SQLException e) {
// close statement (if not null)
- log.error("Error executing query '"+sqlCmd+"' -->
"+e.getMessage(), e);
+ if (log.isDebugEnabled())
+ log.debug("Error executeQuery '"+sqlCmd+"' -->
"+e.getMessage(), e);
closeStatement(stmt);
throw e;
}
diff --git a/empire-db/src/main/java/org/apache/empire/dbms/DBSqlPhrase.java
b/empire-db/src/main/java/org/apache/empire/dbms/DBSqlPhrase.java
index ae94efe..a13e64c 100644
--- a/empire-db/src/main/java/org/apache/empire/dbms/DBSqlPhrase.java
+++ b/empire-db/src/main/java/org/apache/empire/dbms/DBSqlPhrase.java
@@ -1,10 +1,5 @@
package org.apache.empire.dbms;
-import org.apache.empire.data.DataType;
-import org.apache.empire.db.DBColumn;
-import org.apache.empire.db.DBColumnExpr;
-import org.apache.empire.db.expr.column.DBFuncExpr;
-
/**
* Enum for all SQL phrases that may be supplied by the dbms
* @author rainer
diff --git
a/empire-db/src/main/java/org/apache/empire/dbms/hsql/DBCommandHSql.java
b/empire-db/src/main/java/org/apache/empire/dbms/hsql/DBCommandHSql.java
index bc829a6..89f435d 100644
--- a/empire-db/src/main/java/org/apache/empire/dbms/hsql/DBCommandHSql.java
+++ b/empire-db/src/main/java/org/apache/empire/dbms/hsql/DBCommandHSql.java
@@ -29,10 +29,7 @@ import org.apache.empire.db.DBRowSet;
import org.apache.empire.db.exceptions.NoPrimaryKeyException;
import org.apache.empire.db.expr.column.DBAliasExpr;
import org.apache.empire.db.expr.column.DBValueExpr;
-import org.apache.empire.db.expr.join.DBColumnJoinExpr;
-import org.apache.empire.db.expr.join.DBJoinExpr;
import org.apache.empire.db.expr.set.DBSetExpr;
-import org.apache.empire.exceptions.ObjectNotValidException;
/**
* This class handles the special features of an HSqlDB database.
diff --git
a/empire-db/src/main/java/org/apache/empire/xml/XMLConfiguration.java
b/empire-db/src/main/java/org/apache/empire/xml/XMLConfiguration.java
index 2823a9d..a41c38e 100644
--- a/empire-db/src/main/java/org/apache/empire/xml/XMLConfiguration.java
+++ b/empire-db/src/main/java/org/apache/empire/xml/XMLConfiguration.java
@@ -42,6 +42,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
@@ -184,10 +185,25 @@ public class XMLConfiguration
if (item.getNodeType() != Node.ELEMENT_NODE)
continue;
// Get the Text and set the Property
- setPropertyValue(bean, item);
+ if (isProperty(item))
+ setPropertyValue(bean, item);
}
}
+ protected boolean isProperty(Node item)
+ {
+ NamedNodeMap map = item.getAttributes();
+ if (map==null)
+ return false; // not an element?
+ Node propAttr = map.getNamedItem("property");
+ if (propAttr==null)
+ return true; // assume yes
+ String value = propAttr.getNodeValue();
+ if (value==null)
+ return true; // assume yes
+ return ObjectUtils.getBoolean(value);
+ }
+
protected void setPropertyValue(Object bean, Node item)
{
// Get the Text and set the Property