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

danhaywood pushed a commit to branch CAUSEWAY-3885
in repository https://gitbox.apache.org/repos/asf/causeway.git

commit 50f12ff4fbba3cc7f5827dac262ae5d60b3a2f24
Author: Dan Haywood <[email protected]>
AuthorDate: Tue Apr 22 10:50:35 2025 +0100

    CAUSEWAY-3885: adds new module for the generation of JDO Q classes
---
 .../logging-dn-enhance.properties                  | 48 +++++++++++++
 .../pom.xml                                        | 56 +++-------------
 extensions/core/commandlog/persistence-jdo/pom.xml |  7 ++
 .../jdo/dom/CommandLogEntryRepository.java         | 11 ---
 extensions/core/commandlog/pom.xml                 |  6 ++
 .../logging-dn-enhance.properties                  | 48 +++++++++++++
 .../pom.xml                                        | 49 ++------------
 .../executionlog/persistence-jdo/log4j2-test.xml   | 78 ++++++++++++++++++++++
 .../core/executionlog/persistence-jdo/pom.xml      |  9 ++-
 extensions/core/executionlog/pom.xml               |  6 ++
 .../logging-dn-enhance.properties                  | 48 +++++++++++++
 .../pom.xml                                        | 49 ++------------
 .../persistence-jdo/log4j2-test.xml                | 78 ++++++++++++++++++++++
 .../core/executionoutbox/persistence-jdo/pom.xml   |  8 ++-
 extensions/core/executionoutbox/pom.xml            |  6 ++
 .../logging-dn-enhance.properties                  | 41 ++++++++++++
 .../pom.xml                                        | 27 +++-----
 .../security/audittrail/persistence-jdo/pom.xml    | 32 +++++++--
 extensions/security/audittrail/pom.xml             |  6 ++
 .../logging-dn-enhance.properties                  | 41 ++++++++++++
 .../pom.xml                                        | 25 +++----
 extensions/security/secman/persistence-jdo/pom.xml | 26 ++++++++
 extensions/security/secman/pom.xml                 |  7 +-
 .../persistence-jdo-qclasses/log4j2-test.xml       | 78 ++++++++++++++++++++++
 .../logging-dn-enhance.properties                  | 41 ++++++++++++
 .../pom.xml                                        | 25 +++----
 .../security/sessionlog/persistence-jdo/pom.xml    | 26 ++++++++
 extensions/security/sessionlog/pom.xml             |  6 ++
 28 files changed, 679 insertions(+), 209 deletions(-)

diff --git 
a/extensions/core/commandlog/persistence-jdo-qclasses/logging-dn-enhance.properties
 
b/extensions/core/commandlog/persistence-jdo-qclasses/logging-dn-enhance.properties
new file mode 100644
index 00000000000..515c2a29662
--- /dev/null
+++ 
b/extensions/core/commandlog/persistence-jdo-qclasses/logging-dn-enhance.properties
@@ -0,0 +1,48 @@
+#
+#  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.
+#
+
+log4j.appender.A1=org.apache.log4j.FileAppender
+log4j.appender.A1.File=datanucleus.log
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - 
%m%n
+
+
+# overriding all those below... 
+log4j.category.DataNucleus=ERROR
+
+log4j.category.DataNucleus.Persistence=INFO, A1
+log4j.category.DataNucleus.Transaction=INFO, A1
+log4j.category.DataNucleus.Connection=INFO, A1
+log4j.category.DataNucleus.Query=INFO, A1
+log4j.category.DataNucleus.Cache=INFO, A1
+log4j.category.DataNucleus.MetaData=INFO, A1
+log4j.category.DataNucleus.Datastore=INFO, A1
+log4j.category.DataNucleus.Datastore.Schema=INFO, A1
+log4j.category.DataNucleus.Datastore.Persist=INFO, A1
+log4j.category.DataNucleus.Datastore.Retrieve=INFO, A1
+#Log of all 'native' statements sent to the datastore
+log4j.category.DataNucleus.Datastore.Native=INFO, A1 
+log4j.category.DataNucleus.General=INFO, A1
+#All messages relating to object lifecycle changes
+log4j.category.DataNucleus.Lifecycle=INFO, A1
+log4j.category.DataNucleus.ValueGeneration=INFO, A1
+log4j.category.DataNucleus.Enhancer=INFO, A1
+log4j.category.DataNucleus.SchemaTool=INFO, A1
+log4j.category.DataNucleus.JDO=INFO, A1
+ 
\ No newline at end of file
diff --git a/extensions/core/commandlog/persistence-jdo/pom.xml 
b/extensions/core/commandlog/persistence-jdo-qclasses/pom.xml
similarity index 55%
copy from extensions/core/commandlog/persistence-jdo/pom.xml
copy to extensions/core/commandlog/persistence-jdo-qclasses/pom.xml
index 83b13798f8d..f2dd193b4b9 100644
--- a/extensions/core/commandlog/persistence-jdo/pom.xml
+++ b/extensions/core/commandlog/persistence-jdo-qclasses/pom.xml
@@ -27,67 +27,29 @@
         <version>2.0.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>causeway-extensions-commandlog-persistence-jdo</artifactId>
-    <name>Apache Causeway Ext - Command Log Implementation (JDO)</name>
+    
<artifactId>causeway-extensions-commandlog-persistence-jdo-qclasses</artifactId>
+    <name>Apache Causeway Ext - Command Log Implementation (JDO) with Q 
Classes</name>
 
     <properties>
-        
<jar-plugin.automaticModuleName>org.apache.causeway.extensions.commandlog.persistence.jdo</jar-plugin.automaticModuleName>
-        
<git-plugin.propertiesDir>org/apache/causeway/extensions/commandlog/persistence-jdo</git-plugin.propertiesDir>
+        
<jar-plugin.automaticModuleName>org.apache.causeway.extensions.commandlog.persistence.jdoqclasses</jar-plugin.automaticModuleName>
+        
<git-plugin.propertiesDir>org/apache/causeway/extensions/commandlog/persistence-jdo-qclasses</git-plugin.propertiesDir>
     </properties>
 
     <build>
-        <resources>
-            <resource>
-                <filtering>false</filtering>
-                <directory>src/main/resources</directory>
-            </resource>
-            <resource>
-                <filtering>false</filtering>
-                <directory>src/main/java</directory>
-                <includes>
-                    <include>**</include>
-                </includes>
-                <excludes>
-                    <exclude>**/*.java</exclude>
-                </excludes>
-            </resource>
-        </resources>
+        <sourceDirectory>../persistence-jdo/src/main/java</sourceDirectory>
     </build>
 
     <dependencies>
 
-           <dependency>
-               <groupId>org.apache.causeway.extensions</groupId>
-               <artifactId>causeway-extensions-commandlog-applib</artifactId>
-           </dependency>
-
-        <!-- PERSISTENCE -->
-
-               <dependency>
-            <groupId>org.apache.causeway.persistence</groupId>
-                       
<artifactId>causeway-persistence-jdo-datanucleus</artifactId>
-        </dependency>
-
-        <!-- TESTING -->
-
         <dependency>
             <groupId>org.apache.causeway.extensions</groupId>
             <artifactId>causeway-extensions-commandlog-applib</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
         </dependency>
 
-               <dependency>
-                       <groupId>org.apache.causeway.testing</groupId>
-                       
<artifactId>causeway-testing-unittestsupport-applib</artifactId>
-            <scope>test</scope>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.apache.causeway.testing</groupId>
-                       
<artifactId>causeway-testing-integtestsupport-applib</artifactId>
-                       <scope>test</scope>
-               </dependency>
+        <dependency>
+            <groupId>org.apache.causeway.persistence</groupId>
+            <artifactId>causeway-persistence-jdo-datanucleus</artifactId>
+        </dependency>
 
     </dependencies>
 
diff --git a/extensions/core/commandlog/persistence-jdo/pom.xml 
b/extensions/core/commandlog/persistence-jdo/pom.xml
index 83b13798f8d..1d6091b7a4c 100644
--- a/extensions/core/commandlog/persistence-jdo/pom.xml
+++ b/extensions/core/commandlog/persistence-jdo/pom.xml
@@ -66,6 +66,13 @@
                <dependency>
             <groupId>org.apache.causeway.persistence</groupId>
                        
<artifactId>causeway-persistence-jdo-datanucleus</artifactId>
+            <exclusions>
+                <!-- Prevent the JDO query classes from being generated -->
+                <exclusion>
+                    <groupId>org.datanucleus</groupId>
+                    <artifactId>datanucleus-jdo-query</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <!-- TESTING -->
diff --git 
a/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/commandlog/jdo/dom/CommandLogEntryRepository.java
 
b/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/commandlog/jdo/dom/CommandLogEntryRepository.java
index 6440a1cf98e..da2ca948fda 100644
--- 
a/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/commandlog/jdo/dom/CommandLogEntryRepository.java
+++ 
b/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/commandlog/jdo/dom/CommandLogEntryRepository.java
@@ -44,15 +44,4 @@ public CommandLogEntryRepository() {
         super(CommandLogEntry.class);
     }
 
-    /**
-     * The DN annotation processor (from artifact {@literal 
org.datanucleus:datanucleus-jdo-query})
-     * should  generate Q classes under 'target/generated-sources/annotations'.
-     * @see 
"https://www.datanucleus.org/products/accessplatform_6_0/jdo/query.html#jdoql";
-     */
-    @SuppressWarnings("unused")
-    private void ensureWeHaveQClasses() {
-        // ensures at compile time, that Q classes are generated
-        org.apache.causeway.extensions.commandlog.jdo.dom.QCommandLogEntry q;
-    }
-
 }
diff --git a/extensions/core/commandlog/pom.xml 
b/extensions/core/commandlog/pom.xml
index ed24dfd74f4..baad31c73b4 100644
--- a/extensions/core/commandlog/pom.xml
+++ b/extensions/core/commandlog/pom.xml
@@ -61,6 +61,11 @@
                                
<artifactId>causeway-extensions-commandlog-persistence-jdo</artifactId>
                                <version>2.0.0-SNAPSHOT</version>
                        </dependency>
+                       <dependency>
+                               
<groupId>org.apache.causeway.extensions</groupId>
+                               
<artifactId>causeway-extensions-commandlog-persistence-jdo-qclasses</artifactId>
+                               <version>2.0.0-SNAPSHOT</version>
+                       </dependency>
                        <dependency>
                                
<groupId>org.apache.causeway.extensions</groupId>
                                
<artifactId>causeway-extensions-commandlog-persistence-jpa</artifactId>
@@ -87,6 +92,7 @@
        <modules>
                <module>applib</module>
                <module>persistence-jdo</module>
+               <module>persistence-jdo-qclasses</module>
                <module>persistence-jpa</module>
        </modules>
 
diff --git 
a/extensions/core/executionlog/persistence-jdo-qclasses/logging-dn-enhance.properties
 
b/extensions/core/executionlog/persistence-jdo-qclasses/logging-dn-enhance.properties
new file mode 100644
index 00000000000..515c2a29662
--- /dev/null
+++ 
b/extensions/core/executionlog/persistence-jdo-qclasses/logging-dn-enhance.properties
@@ -0,0 +1,48 @@
+#
+#  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.
+#
+
+log4j.appender.A1=org.apache.log4j.FileAppender
+log4j.appender.A1.File=datanucleus.log
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - 
%m%n
+
+
+# overriding all those below... 
+log4j.category.DataNucleus=ERROR
+
+log4j.category.DataNucleus.Persistence=INFO, A1
+log4j.category.DataNucleus.Transaction=INFO, A1
+log4j.category.DataNucleus.Connection=INFO, A1
+log4j.category.DataNucleus.Query=INFO, A1
+log4j.category.DataNucleus.Cache=INFO, A1
+log4j.category.DataNucleus.MetaData=INFO, A1
+log4j.category.DataNucleus.Datastore=INFO, A1
+log4j.category.DataNucleus.Datastore.Schema=INFO, A1
+log4j.category.DataNucleus.Datastore.Persist=INFO, A1
+log4j.category.DataNucleus.Datastore.Retrieve=INFO, A1
+#Log of all 'native' statements sent to the datastore
+log4j.category.DataNucleus.Datastore.Native=INFO, A1 
+log4j.category.DataNucleus.General=INFO, A1
+#All messages relating to object lifecycle changes
+log4j.category.DataNucleus.Lifecycle=INFO, A1
+log4j.category.DataNucleus.ValueGeneration=INFO, A1
+log4j.category.DataNucleus.Enhancer=INFO, A1
+log4j.category.DataNucleus.SchemaTool=INFO, A1
+log4j.category.DataNucleus.JDO=INFO, A1
+ 
\ No newline at end of file
diff --git a/extensions/core/executionlog/persistence-jdo/pom.xml 
b/extensions/core/executionlog/persistence-jdo-qclasses/pom.xml
similarity index 59%
copy from extensions/core/executionlog/persistence-jdo/pom.xml
copy to extensions/core/executionlog/persistence-jdo-qclasses/pom.xml
index c7471672b17..d1c880ee832 100644
--- a/extensions/core/executionlog/persistence-jdo/pom.xml
+++ b/extensions/core/executionlog/persistence-jdo-qclasses/pom.xml
@@ -27,31 +27,16 @@
         <version>2.0.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>causeway-extensions-executionlog-persistence-jdo</artifactId>
-    <name>Apache Causeway Ext - Execution Log Implementation (JDO)</name>
+    
<artifactId>causeway-extensions-executionlog-persistence-jdo-qclasses</artifactId>
+    <name>Apache Causeway Ext - Execution Log Implementation (JDO) with Q 
Classes</name>
 
     <properties>
-        
<jar-plugin.automaticModuleName>org.apache.causeway.extensions.executionlog.persistence.jdo</jar-plugin.automaticModuleName>
-        
<git-plugin.propertiesDir>org/apache/causeway/extensions/executionlog/persistence-jdo</git-plugin.propertiesDir>
+        
<jar-plugin.automaticModuleName>org.apache.causeway.extensions.executionlog.persistence.jdoqclasses</jar-plugin.automaticModuleName>
+        
<git-plugin.propertiesDir>org/apache/causeway/extensions/executionlog/persistence-jdo-qclasses</git-plugin.propertiesDir>
     </properties>
 
     <build>
-        <resources>
-            <resource>
-                <filtering>false</filtering>
-                <directory>src/main/resources</directory>
-            </resource>
-            <resource>
-                <filtering>false</filtering>
-                <directory>src/main/java</directory>
-                <includes>
-                    <include>**</include>
-                </includes>
-                <excludes>
-                    <exclude>**/*.java</exclude>
-                </excludes>
-            </resource>
-        </resources>
+        <sourceDirectory>../persistence-jdo/src/main/java</sourceDirectory>
     </build>
 
     <dependencies>
@@ -61,35 +46,11 @@
                <artifactId>causeway-extensions-executionlog-applib</artifactId>
            </dependency>
 
-        <!-- PERSISTENCE -->
-
                <dependency>
             <groupId>org.apache.causeway.persistence</groupId>
                        
<artifactId>causeway-persistence-jdo-datanucleus</artifactId>
         </dependency>
 
-        <!-- TESTING -->
-
-        <dependency>
-            <groupId>org.apache.causeway.extensions</groupId>
-            <artifactId>causeway-extensions-executionlog-applib</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-               <dependency>
-                       <groupId>org.apache.causeway.testing</groupId>
-                       
<artifactId>causeway-testing-unittestsupport-applib</artifactId>
-            <scope>test</scope>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.apache.causeway.testing</groupId>
-                       
<artifactId>causeway-testing-integtestsupport-applib</artifactId>
-                       <scope>test</scope>
-               </dependency>
-
-
     </dependencies>
 
 </project>
diff --git a/extensions/core/executionlog/persistence-jdo/log4j2-test.xml 
b/extensions/core/executionlog/persistence-jdo/log4j2-test.xml
new file mode 100644
index 00000000000..0ed7986e245
--- /dev/null
+++ b/extensions/core/executionlog/persistence-jdo/log4j2-test.xml
@@ -0,0 +1,78 @@
+<?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.
+-->
+<Configuration status="WARN">
+       <Properties>
+               <Property name="PID">????</Property>
+               <Property name="LOG_EXCEPTION_CONVERSION_WORD">%xwEx</Property>
+               <Property name="LOG_LEVEL_PATTERN">%5p</Property>
+               <Property name="LOG_DATEFORMAT_PATTERN">yyyy-MM-dd 
HH:mm:ss.SSS</Property>
+               <Property 
name="CONSOLE_LOG_PATTERN">%clr{%d{${LOG_DATEFORMAT_PATTERN}}}{faint} 
%clr{${LOG_LEVEL_PATTERN}} %clr{${sys:PID}}{magenta} %clr{---}{faint} 
%clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} 
%m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
+               <Property name="FILE_LOG_PATTERN">%d{${LOG_DATEFORMAT_PATTERN}} 
${LOG_LEVEL_PATTERN} ${sys:PID} --- [%t] %-40.40c{1.} : 
%m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
+       </Properties>
+       <Appenders>
+               <Console name="Console" target="SYSTEM_OUT" follow="true">
+                       <PatternLayout pattern="${sys:CONSOLE_LOG_PATTERN}" />
+               </Console>
+       </Appenders>
+       <Loggers>
+               <Logger name="org.apache.catalina.startup.DigesterFactory" 
level="error" />
+               <Logger name="org.apache.catalina.util.LifecycleBase" 
level="error" />
+               <Logger name="org.apache.coyote.http11.Http11NioProtocol" 
level="warn" />
+               <logger name="org.apache.sshd.common.util.SecurityUtils" 
level="warn"/>
+               <Logger name="org.apache.tomcat.util.net.NioSelectorPool" 
level="warn" />
+               <Logger 
name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error" />
+               <Logger name="org.hibernate.validator.internal.util.Version" 
level="warn" />
+               <logger name="org.springframework.boot.actuate.endpoint.jmx" 
level="warn"/>
+               
+               <logger name="org.apache.directory" level="warn"/>
+               <logger name="org.apache.directory.api.ldap.model.entry.Value" 
level="off"/>
+               
+               <logger name="DataNucleus.Persistence" level="info"/>
+               <logger name="DataNucleus.Transaction" level="info"/>
+               <logger name="DataNucleus.Datastore.Schema" level="info"/>
+               <logger name="DataNucleus.Datastore.Native" level="info"/>
+               
+               <Root level="info">
+                       <AppenderRef ref="Console" />
+               </Root>
+       </Loggers>
+</Configuration>
+
+<!-- # DataNucleus Logging Categories -->
+<!-- DataNucleus.Persistence - All messages relating to the persistence 
process -->
+<!-- DataNucleus.Transaction - All messages relating to transactions -->
+<!-- DataNucleus.Connection - All messages relating to Connections. -->
+<!-- DataNucleus.Query - All messages relating to queries -->
+<!-- DataNucleus.Cache - All messages relating to the DataNucleus Cache -->
+<!-- DataNucleus.MetaData - All messages relating to MetaData -->
+<!-- DataNucleus.Datastore - All general datastore messages -->
+<!-- DataNucleus.Datastore.Schema - All schema related datastore log messages 
-->
+<!-- DataNucleus.Datastore.Persist - All datastore persistence messages -->
+<!-- DataNucleus.Datastore.Retrieve - All datastore retrieval messages -->
+<!-- DataNucleus.Datastore.Native - Log of all 'native' statements sent to the 
datastore -->
+<!-- DataNucleus.General - All general operational messages -->
+<!-- DataNucleus.Lifecycle - All messages relating to object lifecycle changes 
-->
+<!-- DataNucleus.ValueGeneration - All messages relating to value generation 
-->
+<!-- DataNucleus.Enhancer - All messages from the DataNucleus Enhancer. -->
+<!-- DataNucleus.SchemaTool - All messages from DataNucleus SchemaTool -->
+<!-- DataNucleus.JDO - All messages general to JDO -->
+<!-- DataNucleus.JPA - All messages general to JPA -->
+<!-- DataNucleus.JCA - All messages relating to Connector JCA. -->
+<!-- DataNucleus.IDE - Messages from the DataNucleus IDE. -->
\ No newline at end of file
diff --git a/extensions/core/executionlog/persistence-jdo/pom.xml 
b/extensions/core/executionlog/persistence-jdo/pom.xml
index c7471672b17..809a0d9f07a 100644
--- a/extensions/core/executionlog/persistence-jdo/pom.xml
+++ b/extensions/core/executionlog/persistence-jdo/pom.xml
@@ -66,6 +66,13 @@
                <dependency>
             <groupId>org.apache.causeway.persistence</groupId>
                        
<artifactId>causeway-persistence-jdo-datanucleus</artifactId>
+            <exclusions>
+                <!-- Prevent the JDO query classes from being generated -->
+                <exclusion>
+                    <groupId>org.datanucleus</groupId>
+                    <artifactId>datanucleus-jdo-query</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <!-- TESTING -->
@@ -88,8 +95,6 @@
                        
<artifactId>causeway-testing-integtestsupport-applib</artifactId>
                        <scope>test</scope>
                </dependency>
-
-
     </dependencies>
 
 </project>
diff --git a/extensions/core/executionlog/pom.xml 
b/extensions/core/executionlog/pom.xml
index 9ba05b45fd2..ac0eb9dfbbc 100644
--- a/extensions/core/executionlog/pom.xml
+++ b/extensions/core/executionlog/pom.xml
@@ -54,6 +54,11 @@
                                
<artifactId>causeway-extensions-executionlog-persistence-jdo</artifactId>
                                <version>2.0.0-SNAPSHOT</version>
                        </dependency>
+                       <dependency>
+                               
<groupId>org.apache.causeway.extensions</groupId>
+                               
<artifactId>causeway-extensions-executionlog-persistence-jdo-qclasses</artifactId>
+                               <version>2.0.0-SNAPSHOT</version>
+                       </dependency>
                        <dependency>
                                
<groupId>org.apache.causeway.extensions</groupId>
                                
<artifactId>causeway-extensions-executionlog-persistence-jpa</artifactId>
@@ -65,6 +70,7 @@
        <modules>
                <module>applib</module>
                <module>persistence-jdo</module>
+               <module>persistence-jdo-qclasses</module>
                <module>persistence-jpa</module>
        </modules>
 
diff --git 
a/extensions/core/executionoutbox/persistence-jdo-qclasses/logging-dn-enhance.properties
 
b/extensions/core/executionoutbox/persistence-jdo-qclasses/logging-dn-enhance.properties
new file mode 100644
index 00000000000..515c2a29662
--- /dev/null
+++ 
b/extensions/core/executionoutbox/persistence-jdo-qclasses/logging-dn-enhance.properties
@@ -0,0 +1,48 @@
+#
+#  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.
+#
+
+log4j.appender.A1=org.apache.log4j.FileAppender
+log4j.appender.A1.File=datanucleus.log
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - 
%m%n
+
+
+# overriding all those below... 
+log4j.category.DataNucleus=ERROR
+
+log4j.category.DataNucleus.Persistence=INFO, A1
+log4j.category.DataNucleus.Transaction=INFO, A1
+log4j.category.DataNucleus.Connection=INFO, A1
+log4j.category.DataNucleus.Query=INFO, A1
+log4j.category.DataNucleus.Cache=INFO, A1
+log4j.category.DataNucleus.MetaData=INFO, A1
+log4j.category.DataNucleus.Datastore=INFO, A1
+log4j.category.DataNucleus.Datastore.Schema=INFO, A1
+log4j.category.DataNucleus.Datastore.Persist=INFO, A1
+log4j.category.DataNucleus.Datastore.Retrieve=INFO, A1
+#Log of all 'native' statements sent to the datastore
+log4j.category.DataNucleus.Datastore.Native=INFO, A1 
+log4j.category.DataNucleus.General=INFO, A1
+#All messages relating to object lifecycle changes
+log4j.category.DataNucleus.Lifecycle=INFO, A1
+log4j.category.DataNucleus.ValueGeneration=INFO, A1
+log4j.category.DataNucleus.Enhancer=INFO, A1
+log4j.category.DataNucleus.SchemaTool=INFO, A1
+log4j.category.DataNucleus.JDO=INFO, A1
+ 
\ No newline at end of file
diff --git a/extensions/core/executionoutbox/persistence-jdo/pom.xml 
b/extensions/core/executionoutbox/persistence-jdo-qclasses/pom.xml
similarity index 59%
copy from extensions/core/executionoutbox/persistence-jdo/pom.xml
copy to extensions/core/executionoutbox/persistence-jdo-qclasses/pom.xml
index cb876a38891..7c140b286e8 100644
--- a/extensions/core/executionoutbox/persistence-jdo/pom.xml
+++ b/extensions/core/executionoutbox/persistence-jdo-qclasses/pom.xml
@@ -27,31 +27,16 @@
         <version>2.0.0-SNAPSHOT</version>
     </parent>
 
-    
<artifactId>causeway-extensions-executionoutbox-persistence-jdo</artifactId>
-    <name>Apache Causeway Ext - Execution Outbox Implementation (JDO)</name>
+    
<artifactId>causeway-extensions-executionoutbox-persistence-jdo-qclasses</artifactId>
+    <name>Apache Causeway Ext - Execution Outbox Implementation (JDO) with Q 
Classes</name>
 
     <properties>
-        
<jar-plugin.automaticModuleName>org.apache.causeway.extensions.executionoutbox.persistence.jdo</jar-plugin.automaticModuleName>
-        
<git-plugin.propertiesDir>org/apache/causeway/extensions/executionoutbox/persistence-jdo</git-plugin.propertiesDir>
+        
<jar-plugin.automaticModuleName>org.apache.causeway.extensions.executionoutbox.persistence.jdoqclasses</jar-plugin.automaticModuleName>
+        
<git-plugin.propertiesDir>org/apache/causeway/extensions/executionoutbox/persistence-jdo-qclasses</git-plugin.propertiesDir>
     </properties>
 
     <build>
-        <resources>
-            <resource>
-                <filtering>false</filtering>
-                <directory>src/main/resources</directory>
-            </resource>
-            <resource>
-                <filtering>false</filtering>
-                <directory>src/main/java</directory>
-                <includes>
-                    <include>**</include>
-                </includes>
-                <excludes>
-                    <exclude>**/*.java</exclude>
-                </excludes>
-            </resource>
-        </resources>
+        <sourceDirectory>../persistence-jdo/src/main/java</sourceDirectory>
     </build>
 
     <dependencies>
@@ -61,35 +46,11 @@
                
<artifactId>causeway-extensions-executionoutbox-applib</artifactId>
            </dependency>
 
-        <!-- PERSISTENCE -->
-
                <dependency>
             <groupId>org.apache.causeway.persistence</groupId>
                        
<artifactId>causeway-persistence-jdo-datanucleus</artifactId>
         </dependency>
 
-        <!-- TESTING -->
-
-        <dependency>
-            <groupId>org.apache.causeway.extensions</groupId>
-            <artifactId>causeway-extensions-executionoutbox-applib</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-               <dependency>
-                       <groupId>org.apache.causeway.testing</groupId>
-                       
<artifactId>causeway-testing-unittestsupport-applib</artifactId>
-            <scope>test</scope>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.apache.causeway.testing</groupId>
-                       
<artifactId>causeway-testing-integtestsupport-applib</artifactId>
-                       <scope>test</scope>
-               </dependency>
-
-
     </dependencies>
 
 </project>
diff --git a/extensions/core/executionoutbox/persistence-jdo/log4j2-test.xml 
b/extensions/core/executionoutbox/persistence-jdo/log4j2-test.xml
new file mode 100644
index 00000000000..0ed7986e245
--- /dev/null
+++ b/extensions/core/executionoutbox/persistence-jdo/log4j2-test.xml
@@ -0,0 +1,78 @@
+<?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.
+-->
+<Configuration status="WARN">
+       <Properties>
+               <Property name="PID">????</Property>
+               <Property name="LOG_EXCEPTION_CONVERSION_WORD">%xwEx</Property>
+               <Property name="LOG_LEVEL_PATTERN">%5p</Property>
+               <Property name="LOG_DATEFORMAT_PATTERN">yyyy-MM-dd 
HH:mm:ss.SSS</Property>
+               <Property 
name="CONSOLE_LOG_PATTERN">%clr{%d{${LOG_DATEFORMAT_PATTERN}}}{faint} 
%clr{${LOG_LEVEL_PATTERN}} %clr{${sys:PID}}{magenta} %clr{---}{faint} 
%clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} 
%m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
+               <Property name="FILE_LOG_PATTERN">%d{${LOG_DATEFORMAT_PATTERN}} 
${LOG_LEVEL_PATTERN} ${sys:PID} --- [%t] %-40.40c{1.} : 
%m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
+       </Properties>
+       <Appenders>
+               <Console name="Console" target="SYSTEM_OUT" follow="true">
+                       <PatternLayout pattern="${sys:CONSOLE_LOG_PATTERN}" />
+               </Console>
+       </Appenders>
+       <Loggers>
+               <Logger name="org.apache.catalina.startup.DigesterFactory" 
level="error" />
+               <Logger name="org.apache.catalina.util.LifecycleBase" 
level="error" />
+               <Logger name="org.apache.coyote.http11.Http11NioProtocol" 
level="warn" />
+               <logger name="org.apache.sshd.common.util.SecurityUtils" 
level="warn"/>
+               <Logger name="org.apache.tomcat.util.net.NioSelectorPool" 
level="warn" />
+               <Logger 
name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error" />
+               <Logger name="org.hibernate.validator.internal.util.Version" 
level="warn" />
+               <logger name="org.springframework.boot.actuate.endpoint.jmx" 
level="warn"/>
+               
+               <logger name="org.apache.directory" level="warn"/>
+               <logger name="org.apache.directory.api.ldap.model.entry.Value" 
level="off"/>
+               
+               <logger name="DataNucleus.Persistence" level="info"/>
+               <logger name="DataNucleus.Transaction" level="info"/>
+               <logger name="DataNucleus.Datastore.Schema" level="info"/>
+               <logger name="DataNucleus.Datastore.Native" level="info"/>
+               
+               <Root level="info">
+                       <AppenderRef ref="Console" />
+               </Root>
+       </Loggers>
+</Configuration>
+
+<!-- # DataNucleus Logging Categories -->
+<!-- DataNucleus.Persistence - All messages relating to the persistence 
process -->
+<!-- DataNucleus.Transaction - All messages relating to transactions -->
+<!-- DataNucleus.Connection - All messages relating to Connections. -->
+<!-- DataNucleus.Query - All messages relating to queries -->
+<!-- DataNucleus.Cache - All messages relating to the DataNucleus Cache -->
+<!-- DataNucleus.MetaData - All messages relating to MetaData -->
+<!-- DataNucleus.Datastore - All general datastore messages -->
+<!-- DataNucleus.Datastore.Schema - All schema related datastore log messages 
-->
+<!-- DataNucleus.Datastore.Persist - All datastore persistence messages -->
+<!-- DataNucleus.Datastore.Retrieve - All datastore retrieval messages -->
+<!-- DataNucleus.Datastore.Native - Log of all 'native' statements sent to the 
datastore -->
+<!-- DataNucleus.General - All general operational messages -->
+<!-- DataNucleus.Lifecycle - All messages relating to object lifecycle changes 
-->
+<!-- DataNucleus.ValueGeneration - All messages relating to value generation 
-->
+<!-- DataNucleus.Enhancer - All messages from the DataNucleus Enhancer. -->
+<!-- DataNucleus.SchemaTool - All messages from DataNucleus SchemaTool -->
+<!-- DataNucleus.JDO - All messages general to JDO -->
+<!-- DataNucleus.JPA - All messages general to JPA -->
+<!-- DataNucleus.JCA - All messages relating to Connector JCA. -->
+<!-- DataNucleus.IDE - Messages from the DataNucleus IDE. -->
\ No newline at end of file
diff --git a/extensions/core/executionoutbox/persistence-jdo/pom.xml 
b/extensions/core/executionoutbox/persistence-jdo/pom.xml
index cb876a38891..bb841da3835 100644
--- a/extensions/core/executionoutbox/persistence-jdo/pom.xml
+++ b/extensions/core/executionoutbox/persistence-jdo/pom.xml
@@ -66,6 +66,13 @@
                <dependency>
             <groupId>org.apache.causeway.persistence</groupId>
                        
<artifactId>causeway-persistence-jdo-datanucleus</artifactId>
+            <exclusions>
+                <!-- Prevent the JDO query classes from being generated -->
+                <exclusion>
+                    <groupId>org.datanucleus</groupId>
+                    <artifactId>datanucleus-jdo-query</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <!-- TESTING -->
@@ -89,7 +96,6 @@
                        <scope>test</scope>
                </dependency>
 
-
     </dependencies>
 
 </project>
diff --git a/extensions/core/executionoutbox/pom.xml 
b/extensions/core/executionoutbox/pom.xml
index d559adc9cd8..3b39a1c2ebb 100644
--- a/extensions/core/executionoutbox/pom.xml
+++ b/extensions/core/executionoutbox/pom.xml
@@ -61,6 +61,11 @@
                                <scope>test</scope>
                                <version>2.0.0-SNAPSHOT</version>
                        </dependency>
+                       <dependency>
+                               
<groupId>org.apache.causeway.extensions</groupId>
+                               
<artifactId>causeway-extensions-executionoutbox-persistence-jdo-qclasses</artifactId>
+                               <version>2.0.0-SNAPSHOT</version>
+                       </dependency>
                        <dependency>
                                
<groupId>org.apache.causeway.extensions</groupId>
                                
<artifactId>causeway-extensions-executionoutbox-persistence-jpa</artifactId>
@@ -84,6 +89,7 @@
        <modules>
                <module>applib</module>
                <module>persistence-jdo</module>
+               <module>persistence-jdo-qclasses</module>
                <module>persistence-jpa</module>
                <module>restclient</module>
        </modules>
diff --git 
a/extensions/security/audittrail/persistence-jdo-qclasses/logging-dn-enhance.properties
 
b/extensions/security/audittrail/persistence-jdo-qclasses/logging-dn-enhance.properties
new file mode 100644
index 00000000000..ca165acc786
--- /dev/null
+++ 
b/extensions/security/audittrail/persistence-jdo-qclasses/logging-dn-enhance.properties
@@ -0,0 +1,41 @@
+#  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.
+
+# LOG4J Configuration
+# ===================
+
+# Basic logging goes to "datanucleus.log"
+log4j.appender.A1=org.apache.log4j.FileAppender
+log4j.appender.A1.File=datanucleus.log
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - 
%m%n
+#log4j.appender.A1.Threshold=INFO
+
+# Categories
+# Each category can be set to a "level", and to direct to an appender
+
+# Default to DEBUG level for all DataNucleus categories
+log4j.logger.DataNucleus = DEBUG, A1
+
+log4j.category.com.mchange.v2.c3p0=INFO, A1
+log4j.category.com.mchange.v2.resourcepool=INFO, A1
+log4j.category.org.logicalcobwebs.proxool=INFO,A1
+
+
+# Hbase libs logging
+log4j.category.org.apache.hadoop=INFO,A1
+log4j.category.org.apache.zookeeper=INFO,A1
\ No newline at end of file
diff --git a/extensions/security/audittrail/persistence-jdo/pom.xml 
b/extensions/security/audittrail/persistence-jdo-qclasses/pom.xml
similarity index 79%
copy from extensions/security/audittrail/persistence-jdo/pom.xml
copy to extensions/security/audittrail/persistence-jdo-qclasses/pom.xml
index 6c769f1fef4..188ed5d2c53 100644
--- a/extensions/security/audittrail/persistence-jdo/pom.xml
+++ b/extensions/security/audittrail/persistence-jdo-qclasses/pom.xml
@@ -27,14 +27,18 @@
         <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>causeway-extensions-audittrail-persistence-jdo</artifactId>
-    <name>Apache Causeway Ext - Audit Trail Persistence (using JDO)</name>
+    
<artifactId>causeway-extensions-audittrail-persistence-jdo-qclasses</artifactId>
+    <name>Apache Causeway Ext - Audit Trail Persistence (using JDO) with Q 
Classes</name>
 
     <properties>
-        
<jar-plugin.automaticModuleName>org.apache.causeway.extensions.audittrail.persistence.jdo</jar-plugin.automaticModuleName>
-        
<git-plugin.propertiesDir>org/apache/causeway/extensions/audittrail/persistence-jdo</git-plugin.propertiesDir>
+        
<jar-plugin.automaticModuleName>org.apache.causeway.extensions.audittrail.persistence.jdoqclasses</jar-plugin.automaticModuleName>
+        
<git-plugin.propertiesDir>org/apache/causeway/extensions/audittrail/persistence-jdo-qclasses</git-plugin.propertiesDir>
     </properties>
 
+    <build>
+        <sourceDirectory>../persistence-jdo/src/main/java</sourceDirectory>
+    </build>
+
     <dependencies>
 
         <dependency>
@@ -65,21 +69,6 @@
             <optional>true</optional>  <!-- for datanucleus-jdo-query 
annotation processor, brought in via profile -->
         </dependency>
 
-        <!-- testing -->
-
-        <dependency>
-            <groupId>org.apache.causeway.extensions</groupId>
-            <artifactId>causeway-extensions-audittrail-applib</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.causeway.testing</groupId>
-            <artifactId>causeway-testing-integtestsupport-applib</artifactId>
-            <scope>test</scope>
-        </dependency>
-
     </dependencies>
 
 </project>
diff --git a/extensions/security/audittrail/persistence-jdo/pom.xml 
b/extensions/security/audittrail/persistence-jdo/pom.xml
index 6c769f1fef4..b3b7103df55 100644
--- a/extensions/security/audittrail/persistence-jdo/pom.xml
+++ b/extensions/security/audittrail/persistence-jdo/pom.xml
@@ -35,6 +35,25 @@
         
<git-plugin.propertiesDir>org/apache/causeway/extensions/audittrail/persistence-jdo</git-plugin.propertiesDir>
     </properties>
 
+    <build>
+        <resources>
+            <resource>
+                <filtering>false</filtering>
+                <directory>src/main/resources</directory>
+            </resource>
+            <resource>
+                <filtering>false</filtering>
+                <directory>src/main/java</directory>
+                <includes>
+                    <include>**</include>
+                </includes>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+        </resources>
+    </build>
+
     <dependencies>
 
         <dependency>
@@ -45,6 +64,13 @@
         <dependency>
             <groupId>org.apache.causeway.persistence</groupId>
             <artifactId>causeway-persistence-jdo-datanucleus</artifactId>
+            <exclusions>
+                <!-- Prevent the JDO query classes from being generated -->
+                <exclusion>
+                    <groupId>org.datanucleus</groupId>
+                    <artifactId>datanucleus-jdo-query</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>
@@ -58,12 +84,6 @@
             <scope>provided</scope>
         </dependency>
 
-        <dependency>
-            <groupId>org.datanucleus</groupId>
-            <artifactId>javax.jdo</artifactId>
-            <version>${datanucleus-jdo-api.version}</version>
-            <optional>true</optional>  <!-- for datanucleus-jdo-query 
annotation processor, brought in via profile -->
-        </dependency>
 
         <!-- testing -->
 
diff --git a/extensions/security/audittrail/pom.xml 
b/extensions/security/audittrail/pom.xml
index b4f754c7329..37c7807d424 100644
--- a/extensions/security/audittrail/pom.xml
+++ b/extensions/security/audittrail/pom.xml
@@ -65,6 +65,11 @@
                 
<artifactId>causeway-extensions-audittrail-persistence-jdo</artifactId>
                 <version>2.0.0-SNAPSHOT</version>
             </dependency>
+            <dependency>
+                <groupId>org.apache.causeway.extensions</groupId>
+                
<artifactId>causeway-extensions-audittrail-persistence-jdo-qclasses</artifactId>
+                <version>2.0.0-SNAPSHOT</version>
+            </dependency>
 
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
@@ -89,6 +94,7 @@
     <modules>
        <module>applib</module>
        <module>persistence-jdo</module>
+       <module>persistence-jdo-qclasses</module>
        <module>persistence-jpa</module>
     </modules>
 </project>
diff --git 
a/extensions/security/secman/persistence-jdo-qclasses/logging-dn-enhance.properties
 
b/extensions/security/secman/persistence-jdo-qclasses/logging-dn-enhance.properties
new file mode 100644
index 00000000000..ca165acc786
--- /dev/null
+++ 
b/extensions/security/secman/persistence-jdo-qclasses/logging-dn-enhance.properties
@@ -0,0 +1,41 @@
+#  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.
+
+# LOG4J Configuration
+# ===================
+
+# Basic logging goes to "datanucleus.log"
+log4j.appender.A1=org.apache.log4j.FileAppender
+log4j.appender.A1.File=datanucleus.log
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - 
%m%n
+#log4j.appender.A1.Threshold=INFO
+
+# Categories
+# Each category can be set to a "level", and to direct to an appender
+
+# Default to DEBUG level for all DataNucleus categories
+log4j.logger.DataNucleus = DEBUG, A1
+
+log4j.category.com.mchange.v2.c3p0=INFO, A1
+log4j.category.com.mchange.v2.resourcepool=INFO, A1
+log4j.category.org.logicalcobwebs.proxool=INFO,A1
+
+
+# Hbase libs logging
+log4j.category.org.apache.hadoop=INFO,A1
+log4j.category.org.apache.zookeeper=INFO,A1
\ No newline at end of file
diff --git a/extensions/security/secman/persistence-jdo/pom.xml 
b/extensions/security/secman/persistence-jdo-qclasses/pom.xml
similarity index 77%
copy from extensions/security/secman/persistence-jdo/pom.xml
copy to extensions/security/secman/persistence-jdo-qclasses/pom.xml
index d0b7f3ddceb..3c17820266b 100644
--- a/extensions/security/secman/persistence-jdo/pom.xml
+++ b/extensions/security/secman/persistence-jdo-qclasses/pom.xml
@@ -27,14 +27,18 @@
         <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>causeway-extensions-secman-persistence-jdo</artifactId>
-    <name>Apache Causeway Ext - Sec Man Persistence (Using JDO)</name>
+    
<artifactId>causeway-extensions-secman-persistence-jdo-qclasses</artifactId>
+    <name>Apache Causeway Ext - Sec Man Persistence (Using JDO) with Q 
Classes</name>
 
     <properties>
-        
<jar-plugin.automaticModuleName>org.apache.causeway.extensions.secman.persistence.jdo</jar-plugin.automaticModuleName>
-        
<git-plugin.propertiesDir>org/apache/causeway/extensions/secman/persistence-jdo</git-plugin.propertiesDir>
+        
<jar-plugin.automaticModuleName>org.apache.causeway.extensions.secman.persistence.jdoqclasses</jar-plugin.automaticModuleName>
+        
<git-plugin.propertiesDir>org/apache/causeway/extensions/secman/persistence-jdo-qclasses</git-plugin.propertiesDir>
     </properties>
 
+    <build>
+        <sourceDirectory>../persistence-jdo/src/main/java</sourceDirectory>
+    </build>
+
     <dependencies>
 
                <dependency>
@@ -58,19 +62,6 @@
                        <scope>provided</scope>
                </dependency>
 
-               <dependency>
-                       <groupId>org.apache.causeway.extensions</groupId>
-                       
<artifactId>causeway-extensions-secman-applib</artifactId>
-                       <scope>test</scope>
-                       <type>test-jar</type>
-               </dependency>
-
-               <dependency>
-                       <groupId>org.apache.causeway.testing</groupId>
-                       
<artifactId>causeway-testing-integtestsupport-applib</artifactId>
-                       <scope>test</scope>
-               </dependency>
-
     </dependencies>
 
 </project>
diff --git a/extensions/security/secman/persistence-jdo/pom.xml 
b/extensions/security/secman/persistence-jdo/pom.xml
index d0b7f3ddceb..245b736488d 100644
--- a/extensions/security/secman/persistence-jdo/pom.xml
+++ b/extensions/security/secman/persistence-jdo/pom.xml
@@ -35,6 +35,25 @@
         
<git-plugin.propertiesDir>org/apache/causeway/extensions/secman/persistence-jdo</git-plugin.propertiesDir>
     </properties>
 
+    <build>
+        <resources>
+            <resource>
+                <filtering>false</filtering>
+                <directory>src/main/resources</directory>
+            </resource>
+            <resource>
+                <filtering>false</filtering>
+                <directory>src/main/java</directory>
+                <includes>
+                    <include>**</include>
+                </includes>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+        </resources>
+    </build>
+
     <dependencies>
 
                <dependency>
@@ -45,6 +64,13 @@
                <dependency>
                        <groupId>org.apache.causeway.persistence</groupId>
                        
<artifactId>causeway-persistence-jdo-datanucleus</artifactId>
+            <exclusions>
+                <!-- Prevent the JDO query classes from being generated -->
+                <exclusion>
+                    <groupId>org.datanucleus</groupId>
+                    <artifactId>datanucleus-jdo-query</artifactId>
+                </exclusion>
+            </exclusions>
                </dependency>
 
                <dependency>
diff --git a/extensions/security/secman/pom.xml 
b/extensions/security/secman/pom.xml
index c0c7197c4d2..235b12d8cf3 100644
--- a/extensions/security/secman/pom.xml
+++ b/extensions/security/secman/pom.xml
@@ -29,7 +29,6 @@
 
     <artifactId>causeway-extensions-secman</artifactId>
     <name>Apache Causeway Ext - Sec Man</name>
-    <description></description>
 
     <packaging>pom</packaging>
 
@@ -72,6 +71,11 @@
                 
<artifactId>causeway-extensions-secman-persistence-jdo</artifactId>
                 <version>2.0.0-SNAPSHOT</version>
             </dependency>
+            <dependency>
+                <groupId>org.apache.causeway.extensions</groupId>
+                
<artifactId>causeway-extensions-secman-persistence-jdo-qclasses</artifactId>
+                <version>2.0.0-SNAPSHOT</version>
+            </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 
<artifactId>causeway-extensions-secman-persistence-jpa</artifactId>
@@ -119,6 +123,7 @@
        <module>encryption-jbcrypt</module>
        <module>encryption-spring</module>
        <module>persistence-jdo</module>
+       <module>persistence-jdo-qclasses</module>
        <module>persistence-jpa</module>
        <module>delegated-shiro</module>
        <module>delegated-springoauth2</module>
diff --git 
a/extensions/security/sessionlog/persistence-jdo-qclasses/log4j2-test.xml 
b/extensions/security/sessionlog/persistence-jdo-qclasses/log4j2-test.xml
new file mode 100644
index 00000000000..0ed7986e245
--- /dev/null
+++ b/extensions/security/sessionlog/persistence-jdo-qclasses/log4j2-test.xml
@@ -0,0 +1,78 @@
+<?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.
+-->
+<Configuration status="WARN">
+       <Properties>
+               <Property name="PID">????</Property>
+               <Property name="LOG_EXCEPTION_CONVERSION_WORD">%xwEx</Property>
+               <Property name="LOG_LEVEL_PATTERN">%5p</Property>
+               <Property name="LOG_DATEFORMAT_PATTERN">yyyy-MM-dd 
HH:mm:ss.SSS</Property>
+               <Property 
name="CONSOLE_LOG_PATTERN">%clr{%d{${LOG_DATEFORMAT_PATTERN}}}{faint} 
%clr{${LOG_LEVEL_PATTERN}} %clr{${sys:PID}}{magenta} %clr{---}{faint} 
%clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} 
%m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
+               <Property name="FILE_LOG_PATTERN">%d{${LOG_DATEFORMAT_PATTERN}} 
${LOG_LEVEL_PATTERN} ${sys:PID} --- [%t] %-40.40c{1.} : 
%m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
+       </Properties>
+       <Appenders>
+               <Console name="Console" target="SYSTEM_OUT" follow="true">
+                       <PatternLayout pattern="${sys:CONSOLE_LOG_PATTERN}" />
+               </Console>
+       </Appenders>
+       <Loggers>
+               <Logger name="org.apache.catalina.startup.DigesterFactory" 
level="error" />
+               <Logger name="org.apache.catalina.util.LifecycleBase" 
level="error" />
+               <Logger name="org.apache.coyote.http11.Http11NioProtocol" 
level="warn" />
+               <logger name="org.apache.sshd.common.util.SecurityUtils" 
level="warn"/>
+               <Logger name="org.apache.tomcat.util.net.NioSelectorPool" 
level="warn" />
+               <Logger 
name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error" />
+               <Logger name="org.hibernate.validator.internal.util.Version" 
level="warn" />
+               <logger name="org.springframework.boot.actuate.endpoint.jmx" 
level="warn"/>
+               
+               <logger name="org.apache.directory" level="warn"/>
+               <logger name="org.apache.directory.api.ldap.model.entry.Value" 
level="off"/>
+               
+               <logger name="DataNucleus.Persistence" level="info"/>
+               <logger name="DataNucleus.Transaction" level="info"/>
+               <logger name="DataNucleus.Datastore.Schema" level="info"/>
+               <logger name="DataNucleus.Datastore.Native" level="info"/>
+               
+               <Root level="info">
+                       <AppenderRef ref="Console" />
+               </Root>
+       </Loggers>
+</Configuration>
+
+<!-- # DataNucleus Logging Categories -->
+<!-- DataNucleus.Persistence - All messages relating to the persistence 
process -->
+<!-- DataNucleus.Transaction - All messages relating to transactions -->
+<!-- DataNucleus.Connection - All messages relating to Connections. -->
+<!-- DataNucleus.Query - All messages relating to queries -->
+<!-- DataNucleus.Cache - All messages relating to the DataNucleus Cache -->
+<!-- DataNucleus.MetaData - All messages relating to MetaData -->
+<!-- DataNucleus.Datastore - All general datastore messages -->
+<!-- DataNucleus.Datastore.Schema - All schema related datastore log messages 
-->
+<!-- DataNucleus.Datastore.Persist - All datastore persistence messages -->
+<!-- DataNucleus.Datastore.Retrieve - All datastore retrieval messages -->
+<!-- DataNucleus.Datastore.Native - Log of all 'native' statements sent to the 
datastore -->
+<!-- DataNucleus.General - All general operational messages -->
+<!-- DataNucleus.Lifecycle - All messages relating to object lifecycle changes 
-->
+<!-- DataNucleus.ValueGeneration - All messages relating to value generation 
-->
+<!-- DataNucleus.Enhancer - All messages from the DataNucleus Enhancer. -->
+<!-- DataNucleus.SchemaTool - All messages from DataNucleus SchemaTool -->
+<!-- DataNucleus.JDO - All messages general to JDO -->
+<!-- DataNucleus.JPA - All messages general to JPA -->
+<!-- DataNucleus.JCA - All messages relating to Connector JCA. -->
+<!-- DataNucleus.IDE - Messages from the DataNucleus IDE. -->
\ No newline at end of file
diff --git 
a/extensions/security/sessionlog/persistence-jdo-qclasses/logging-dn-enhance.properties
 
b/extensions/security/sessionlog/persistence-jdo-qclasses/logging-dn-enhance.properties
new file mode 100644
index 00000000000..ca165acc786
--- /dev/null
+++ 
b/extensions/security/sessionlog/persistence-jdo-qclasses/logging-dn-enhance.properties
@@ -0,0 +1,41 @@
+#  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.
+
+# LOG4J Configuration
+# ===================
+
+# Basic logging goes to "datanucleus.log"
+log4j.appender.A1=org.apache.log4j.FileAppender
+log4j.appender.A1.File=datanucleus.log
+log4j.appender.A1.layout=org.apache.log4j.PatternLayout
+log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - 
%m%n
+#log4j.appender.A1.Threshold=INFO
+
+# Categories
+# Each category can be set to a "level", and to direct to an appender
+
+# Default to DEBUG level for all DataNucleus categories
+log4j.logger.DataNucleus = DEBUG, A1
+
+log4j.category.com.mchange.v2.c3p0=INFO, A1
+log4j.category.com.mchange.v2.resourcepool=INFO, A1
+log4j.category.org.logicalcobwebs.proxool=INFO,A1
+
+
+# Hbase libs logging
+log4j.category.org.apache.hadoop=INFO,A1
+log4j.category.org.apache.zookeeper=INFO,A1
\ No newline at end of file
diff --git a/extensions/security/sessionlog/persistence-jdo/pom.xml 
b/extensions/security/sessionlog/persistence-jdo-qclasses/pom.xml
similarity index 77%
copy from extensions/security/sessionlog/persistence-jdo/pom.xml
copy to extensions/security/sessionlog/persistence-jdo-qclasses/pom.xml
index 3d1d6529e62..f704600f590 100644
--- a/extensions/security/sessionlog/persistence-jdo/pom.xml
+++ b/extensions/security/sessionlog/persistence-jdo-qclasses/pom.xml
@@ -27,14 +27,18 @@
         <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>causeway-extensions-sessionlog-persistence-jdo</artifactId>
-    <name>Apache Causeway Ext - Session Log Persistence (using JDO)</name>
+    
<artifactId>causeway-extensions-sessionlog-persistence-jdo-qclasses</artifactId>
+    <name>Apache Causeway Ext - Session Log Persistence (using JDO) with Q 
Classes</name>
 
     <properties>
-        
<jar-plugin.automaticModuleName>org.apache.causeway.extensions.sessionlog.persistence.jdo</jar-plugin.automaticModuleName>
-        
<git-plugin.propertiesDir>org/apache/causeway/extensions/sessionlog/persistence-jdo</git-plugin.propertiesDir>
+        
<jar-plugin.automaticModuleName>org.apache.causeway.extensions.sessionlog.persistence.jdoclasses</jar-plugin.automaticModuleName>
+        
<git-plugin.propertiesDir>org/apache/causeway/extensions/sessionlog/persistence-jdo-qclasses</git-plugin.propertiesDir>
     </properties>
 
+    <build>
+        <sourceDirectory>../persistence-jdo/src/main/java</sourceDirectory>
+    </build>
+
     <dependencies>
 
         <dependency>
@@ -58,19 +62,6 @@
             <scope>provided</scope>
         </dependency>
 
-        <dependency>
-            <groupId>org.apache.causeway.extensions</groupId>
-            <artifactId>causeway-extensions-sessionlog-applib</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.causeway.testing</groupId>
-            <artifactId>causeway-testing-integtestsupport-applib</artifactId>
-            <scope>test</scope>
-        </dependency>
-
     </dependencies>
 
 </project>
diff --git a/extensions/security/sessionlog/persistence-jdo/pom.xml 
b/extensions/security/sessionlog/persistence-jdo/pom.xml
index 3d1d6529e62..6699f9f7212 100644
--- a/extensions/security/sessionlog/persistence-jdo/pom.xml
+++ b/extensions/security/sessionlog/persistence-jdo/pom.xml
@@ -35,6 +35,25 @@
         
<git-plugin.propertiesDir>org/apache/causeway/extensions/sessionlog/persistence-jdo</git-plugin.propertiesDir>
     </properties>
 
+    <build>
+        <resources>
+            <resource>
+                <filtering>false</filtering>
+                <directory>src/main/resources</directory>
+            </resource>
+            <resource>
+                <filtering>false</filtering>
+                <directory>src/main/java</directory>
+                <includes>
+                    <include>**</include>
+                </includes>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+        </resources>
+    </build>
+
     <dependencies>
 
         <dependency>
@@ -45,6 +64,13 @@
         <dependency>
             <groupId>org.apache.causeway.persistence</groupId>
             <artifactId>causeway-persistence-jdo-datanucleus</artifactId>
+            <exclusions>
+                <!-- Prevent the JDO query classes from being generated -->
+                <exclusion>
+                    <groupId>org.datanucleus</groupId>
+                    <artifactId>datanucleus-jdo-query</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>
diff --git a/extensions/security/sessionlog/pom.xml 
b/extensions/security/sessionlog/pom.xml
index 47b141c4abf..18379b8851f 100644
--- a/extensions/security/sessionlog/pom.xml
+++ b/extensions/security/sessionlog/pom.xml
@@ -62,6 +62,11 @@
                 
<artifactId>causeway-extensions-sessionlog-persistence-jdo</artifactId>
                 <version>2.0.0-SNAPSHOT</version>
             </dependency>
+            <dependency>
+                <groupId>org.apache.causeway.extensions</groupId>
+                
<artifactId>causeway-extensions-sessionlog-persistence-jdo-qclasses</artifactId>
+                <version>2.0.0-SNAPSHOT</version>
+            </dependency>
 
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
@@ -86,6 +91,7 @@
     <modules>
        <module>applib</module>
        <module>persistence-jdo</module>
+       <module>persistence-jdo-qclasses</module>
        <module>persistence-jpa</module>
     </modules>
 </project>

Reply via email to