Skip to content

Commit c5b5e4d

Browse files
committed
1.7.3 changed set
Added : - daogen property : dao-helper-ng-mode ('dao.helper.ng' will be selected and no serialization) - daogen property : dao-wrapper-ng-mode ('dao.wrapper.ng' will be selected and no serialization) Changed : - fj-version set to 8.5.2 Fixed : - name of junit 5 methods
1 parent 037b7dd commit c5b5e4d

File tree

16 files changed

+215
-69
lines changed

16 files changed

+215
-69
lines changed

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
### Added
9+
10+
- daogen property : dao-helper-ng-mode ('dao.helper.ng' will be selected and no serialization)
11+
- daogen property : dao-wrapper-ng-mode ('dao.wrapper.ng' will be selected and no serialization)
12+
13+
### Changed
14+
15+
- fj-version set to 8.5.2
16+
17+
### Fixed
18+
19+
- name of junit 5 methods
20+
821
## [1.7.2] - 2024-03-08
922

1023
### Changed

fj-daogen-base/src/main/java/org/fugerit/java/daogen/base/config/DaogenCatalogConfig.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ public DaogenCatalogConfig() {
5353
public String getGeneralProp( String key ) {
5454
return this.getGeneralProps().getProperty( key );
5555
}
56+
57+
public String getGeneralProp( String key, String defValue ) {
58+
return this.getGeneralProps().getProperty( key, defValue );
59+
}
5660

5761
public static DaogenCatalogConfig loadConfig( InputStream input ) throws ConfigException {
5862
return loadConfig(input, DaogenCatalogConfig.class, null);

fj-daogen-base/src/main/java/org/fugerit/java/daogen/base/config/DaogenCatalogConstants.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,16 @@ private DaogenCatalogConstants() {}
7575
public static final String GEN_PROP_JEE_TARGET_MODE_JAVAX = "javax";
7676
public static final String GEN_PROP_JEE_TARGET_MODE_JAKARTA = "jakarta";
7777
public static final String GEN_PROP_JEE_TARGET_MODE_DEFAULT = GEN_PROP_JEE_TARGET_MODE_JAVAX;
78-
78+
79+
public static final String GEN_PROP_DAO_HELPER_NG_MODE = "dao-helper-ng-mode";
80+
public static final String GEN_PROP_DAO_HELPER_NG_MODE_ENABLED = "enabled";
81+
public static final String GEN_PROP_DAO_HELPER_NG_MODE_DISABLED = "disabled";
82+
83+
public static final String GEN_PROP_DAO_WRAPPER_NG_MODE = "dao-wrapper-ng-mode";
84+
85+
public static final String GEN_PROP_DAO_WRAPPER_NG_MODE_ENABLED = "enabled";
86+
public static final String GEN_PROP_DAO_WRAPPER_NG_MODE_DISABLED = "disabled";
87+
7988
public static final String PREFIX_MODEL = "Model";
8089

8190
public static final String PREFIX_HELPER = "Helper";

fj-daogen-base/src/main/java/org/fugerit/java/daogen/base/config/DaogenClassConfigHelper.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@ private DaogenClassConfigHelper() {}
2323
public static final String DAO_SERVICERESULT_BASE = "dao.serviceresult";
2424
public static final String DAO_HELPER_BASE = "dao.helper";
2525
public static final String DAO_WRAPPER_BASE = "dao.wrapper";
26-
26+
27+
public static final String DAO_HELPER_NG_BASE = "dao.helper.ng";
28+
29+
public static final String DAO_WRAPPER_NG_BASE = "dao.wrapper.ng";
30+
2731
public static final String DAO_DAOHELPER_BASE = "dao.daohelper";
2832
public static final String DAO_SELECTHELPER_BASE = "dao.selecthelper";
2933
public static final String DAO_DELETEHELPER_BASE = "dao.deletehelper";
@@ -35,13 +39,19 @@ private DaogenClassConfigHelper() {}
3539
public static final String DAO_RSEHELPER_BASE = "dao.rsehelper";
3640

3741
public static final String DAO_STRUCTMAPPER_BASE = "dao.structmapper";
38-
42+
43+
public static String findClassConfigProp( DaogenCatalogConfig config, String base, String type ) {
44+
log.info( "search, base:{} - type:{}", base, type );
45+
String fullKey = base+"."+type;
46+
String fullValue = config.getClassConfig().getProperty( fullKey );
47+
log.info( "search, fullKey:{} - fullValue:{}", fullKey, fullValue );
48+
return fullValue;
49+
}
50+
3951
public static String addImport( DaogenCatalogConfig config, String base, Collection<String> imports ) {
4052
log.info( "props > {}", config.getClassConfig() );
41-
String classPropKey = base+"."+DAO_BASE_CLASS;
42-
String pacakgePropKey = base+"."+DAO_BASE_PACKAGE;
43-
String simpleName = config.getClassConfig().getProperty( classPropKey );
44-
String packageName = config.getClassConfig().getProperty( pacakgePropKey );
53+
String simpleName = findClassConfigProp(config, base, DAO_BASE_CLASS );
54+
String packageName = findClassConfigProp(config, base, DAO_BASE_PACKAGE );
4555
if ( simpleName == null || packageName == null ) {
4656
throw new ConfigRuntimeException( "Daogen class configuration not set properly" );
4757
}

fj-daogen-base/src/main/java/org/fugerit/java/daogen/base/gen/DaogenBasicGenerator.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,14 @@ protected void beforeClass() {
471471
}
472472
}
473473
}
474-
474+
475+
protected void generateSerial( boolean condition ) throws IOException {
476+
if ( condition ) {
477+
this.addSerialVerUID();
478+
this.writeSerialHelpers();
479+
}
480+
}
481+
475482
protected void writeSerialHelpers() {
476483
this.getWriter().println( TAB+"private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {" );
477484
this.getWriter().println( TAB_2+"// this class is conditionally serializable, depending on contained object" );

fj-daogen-base/src/main/java/org/fugerit/java/daogen/base/gen/HelperGenerator.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.fugerit.java.core.javagen.GeneratorNameHelper;
77
import org.fugerit.java.core.lang.compare.CheckEmptyHelper;
88
import org.fugerit.java.core.lang.helpers.BooleanUtils;
9+
import org.fugerit.java.core.lang.helpers.StringUtils;
910
import org.fugerit.java.daogen.base.config.DaogenCatalogConfig;
1011
import org.fugerit.java.daogen.base.config.DaogenCatalogConstants;
1112
import org.fugerit.java.daogen.base.config.DaogenCatalogEntity;
@@ -26,9 +27,21 @@ public void init( DaogenCatalogConfig daogenConfig, DaogenCatalogEntity entity )
2627
super.init( daogenConfig.getGeneralProp( DaogenCatalogConstants.GEN_PROP_SRC_MAIN_JAVA ),
2728
fullObjectName( daogenConfig.getGeneralProp( DaogenCatalogConstants.GEN_PROP_PACKAGE_HELPER ), DaogenCatalogConstants.helperName( entity ) ),
2829
STYLE_CLASS, daogenConfig, entity );
29-
this.setClassBaseHelper( DaogenClassConfigHelper.addImport( daogenConfig , DaogenClassConfigHelper.DAO_HELPER_BASE, this.getImportList() ) );
30+
String daoHelperNgMode = daogenConfig.getGeneralProp( DaogenCatalogConstants.GEN_PROP_DAO_HELPER_NG_MODE, DaogenCatalogConstants.GEN_PROP_DAO_HELPER_NG_MODE_DISABLED );
31+
logger.info( "{} -> {}", DaogenCatalogConstants.GEN_PROP_DAO_HELPER_NG_MODE, daoHelperNgMode );
32+
if ( DaogenCatalogConstants.GEN_PROP_DAO_HELPER_NG_MODE_DISABLED.equalsIgnoreCase( daoHelperNgMode ) ) {
33+
this.setClassBaseHelper( DaogenClassConfigHelper.addImport( daogenConfig , DaogenClassConfigHelper.DAO_HELPER_BASE, this.getImportList() ) );
34+
this.setExtendsClass( this.getClassBaseHelper() );
35+
} else if ( DaogenCatalogConstants.GEN_PROP_DAO_HELPER_NG_MODE_ENABLED.equalsIgnoreCase( daoHelperNgMode ) ) {
36+
String helperNgClass = DaogenClassConfigHelper.findClassConfigProp( daogenConfig, DaogenClassConfigHelper.DAO_HELPER_NG_BASE, DaogenClassConfigHelper.DAO_BASE_CLASS );
37+
if ( StringUtils.isNotEmpty( helperNgClass ) ) {
38+
this.setClassBaseHelper( DaogenClassConfigHelper.addImport( daogenConfig , DaogenClassConfigHelper.DAO_HELPER_NG_BASE, this.getImportList() ) );
39+
this.setExtendsClass( this.getClassBaseHelper() );
40+
}
41+
} else {
42+
throw new ConfigException( "Invalid "+DaogenCatalogConstants.GEN_PROP_DAO_HELPER_NG_MODE+" parameter : "+daoHelperNgMode );
43+
}
3044
this.getImportList().add( this.getDaogenConfig().getGeneralProp( DaogenCatalogConstants.GEN_PROP_PACKAGE_MODEL )+"."+this.getEntityModelName() );
31-
this.setExtendsClass( this.getClassBaseHelper() );
3245
this.setImplementsInterface( this.getEntityModelName() );
3346
for ( DaogenCatalogRelation relation : this.getCurrentEntity().getRelations() ) {
3447
DaogenCatalogEntity entityTo = this.getDaogenConfig().getListMap( relation.getTo() );
@@ -70,8 +83,8 @@ private void generateRelations() {
7083

7184
@Override
7285
public void generateDaogenBody() throws IOException {
73-
this.addSerialVerUID();
74-
this.writeSerialHelpers();
86+
String daoHelperNgMode = this.getDaogenConfig().getGeneralProp( DaogenCatalogConstants.GEN_PROP_DAO_HELPER_NG_MODE, DaogenCatalogConstants.GEN_PROP_DAO_HELPER_NG_MODE_DISABLED );
87+
this.generateSerial( DaogenCatalogConstants.GEN_PROP_DAO_HELPER_NG_MODE_DISABLED.equalsIgnoreCase( daoHelperNgMode ) );
7588
boolean relationLast = "true".equalsIgnoreCase( this.getDaogenConfig().getGeneralProp( DaogenCatalogConstants.GEN_PROP_RELATIONS_LAST ) );
7689
if ( !relationLast ) {
7790
this.generateRelations();

fj-daogen-base/src/main/java/org/fugerit/java/daogen/base/gen/StructGenerator.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,14 +247,14 @@ public void generateDaogenBody() throws IOException {
247247
this.handleField1(field, blobHandlerType, clobHandlerType);
248248
}
249249
this.getWriter().println( TAB+"}" );
250-
this.getWriter().println();
251-
250+
this.getWriter().println();
251+
252252
// readSQL()
253253
this.getWriter().println( TAB+AT_OVERRIDE );
254254
this.getWriter().println( TAB+"public void writeSQL(SQLOutput stream) throws SQLException {" );
255255
if ( containsBlob || containsClob ) {
256256
this.getWriter().println( TAB_2+"if ( !this.checkLobs() ) {" );
257-
this.getWriter().println( TAB_3+"throwUnsupported( \"To use writeSQL() you must invoke setupLobs() for \"+this.getSQLTypeName() );" );
257+
this.getWriter().println( TAB_3+"org.fugerit.java.core.db.daogen.BasicHelper.throwUnsupported( \"To use writeSQL() you must invoke setupLobs() for \"+this.getSQLTypeName() );" );
258258
this.getWriter().println( TAB_2+"}" );
259259
this.getWriter().println( TAB_2+"this.areLobsSet = false;\t// clob and blob will be used only once" );
260260
}

fj-daogen-base/src/main/java/org/fugerit/java/daogen/base/gen/WrapperGenerator.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import org.fugerit.java.core.cfg.ConfigException;
66
import org.fugerit.java.core.javagen.GeneratorNameHelper;
77
import org.fugerit.java.core.lang.helpers.BooleanUtils;
8+
import org.fugerit.java.core.lang.helpers.StringUtils;
89
import org.fugerit.java.daogen.base.config.DaogenCatalogConfig;
910
import org.fugerit.java.daogen.base.config.DaogenCatalogConstants;
1011
import org.fugerit.java.daogen.base.config.DaogenCatalogEntity;
@@ -25,9 +26,21 @@ public void init( DaogenCatalogConfig daogenConfig, DaogenCatalogEntity entity )
2526
super.init( daogenConfig.getGeneralProp( DaogenCatalogConstants.GEN_PROP_SRC_MAIN_JAVA ),
2627
fullObjectName( daogenConfig.getGeneralProp( DaogenCatalogConstants.GEN_PROP_PACKAGE_HELPER ), DaogenCatalogConstants.wrapperName( entity ) ),
2728
STYLE_CLASS, daogenConfig, entity );
28-
this.setClassBaseWrapper( DaogenClassConfigHelper.addImport( daogenConfig , DaogenClassConfigHelper.DAO_WRAPPER_BASE, this.getImportList() ) );
29+
String daoWrapperNgMode = daogenConfig.getGeneralProp( DaogenCatalogConstants.GEN_PROP_DAO_WRAPPER_NG_MODE, DaogenCatalogConstants.GEN_PROP_DAO_WRAPPER_NG_MODE_DISABLED );
30+
logger.info( "{} -> {}", DaogenCatalogConstants.GEN_PROP_DAO_WRAPPER_NG_MODE, daoWrapperNgMode );
31+
if ( DaogenCatalogConstants.GEN_PROP_DAO_WRAPPER_NG_MODE_DISABLED.equalsIgnoreCase( daoWrapperNgMode ) ) {
32+
this.setClassBaseWrapper( DaogenClassConfigHelper.addImport( daogenConfig , DaogenClassConfigHelper.DAO_WRAPPER_BASE, this.getImportList() ) );
33+
this.setExtendsClass( this.getClassBaseWrapper()+"<"+this.getEntityModelName()+">" );
34+
} else if ( DaogenCatalogConstants.GEN_PROP_DAO_WRAPPER_NG_MODE_ENABLED.equalsIgnoreCase( daoWrapperNgMode ) ) {
35+
String wrapperNgClass = DaogenClassConfigHelper.findClassConfigProp( daogenConfig, DaogenClassConfigHelper.DAO_WRAPPER_NG_BASE, DaogenClassConfigHelper.DAO_BASE_CLASS );
36+
if ( StringUtils.isNotEmpty( wrapperNgClass ) ) {
37+
this.setClassBaseWrapper( DaogenClassConfigHelper.addImport( daogenConfig , DaogenClassConfigHelper.DAO_WRAPPER_NG_BASE, this.getImportList() ) );
38+
this.setExtendsClass( this.getClassBaseWrapper()+"<"+this.getEntityModelName()+">" );
39+
}
40+
} else {
41+
throw new ConfigException( "Invalid "+DaogenCatalogConstants.GEN_PROP_DAO_WRAPPER_NG_MODE+" parameter : "+daoWrapperNgMode );
42+
}
2943
this.getImportList().add( this.getDaogenConfig().getGeneralProp( DaogenCatalogConstants.GEN_PROP_PACKAGE_MODEL )+"."+this.getEntityModelName() );
30-
this.setExtendsClass( this.getClassBaseWrapper()+"<"+this.getEntityModelName()+">" );
3144
this.setImplementsInterface( this.getEntityModelName() );
3245
for ( DaogenCatalogRelation relation : this.getCurrentEntity().getRelations() ) {
3346
DaogenCatalogEntity entityTo = this.getDaogenConfig().getListMap( relation.getTo() );
@@ -66,8 +79,8 @@ private void generateRelations() {
6679

6780
@Override
6881
public void generateDaogenBody() throws IOException {
69-
this.addSerialVerUID();
70-
this.writeSerialHelpers();
82+
String daoWrapperNgMode = this.getDaogenConfig().getGeneralProp( DaogenCatalogConstants.GEN_PROP_DAO_WRAPPER_NG_MODE, DaogenCatalogConstants.GEN_PROP_DAO_WRAPPER_NG_MODE_DISABLED );
83+
this.generateSerial( DaogenCatalogConstants.GEN_PROP_DAO_WRAPPER_NG_MODE_DISABLED.equalsIgnoreCase( daoWrapperNgMode ) );
7184
this.getWriter().println( TAB+PUBLIC_SPACE_LIT+this.getEntityWrapperName()+"( "+this.getEntityModelName()+" wrapped ) {" );
7285
this.getWriter().println( TAB_2+"super( wrapped );" );
7386
this.getWriter().println( TAB+"}" );

fj-daogen-base/src/main/java/org/fugerit/java/daogen/base/gen/util/UnitTestHelper.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,13 @@ public static void genBodyBasicTest( DaogenBasicGenerator gen, int junitLevel )
2929
appendPublic = "public";
3030
}
3131
gen.getWriter().println( DaogenBasicGenerator.TAB+"@Test" );
32-
gen.getWriter().println( DaogenBasicGenerator.TAB+appendPublic+" void testJUnit4Model"+GeneratorNameHelper.toClassName( gen.getCurrentEntity().getName() )+"() { " );
32+
gen.getWriter().println( DaogenBasicGenerator.TAB+appendPublic+" void testJUnit"+junitLevel+"Model"+GeneratorNameHelper.toClassName( gen.getCurrentEntity().getName() )+"() { " );
3333
gen.getWriter().println( DaogenBasicGenerator.TAB_2+gen.getEntityModelName()+" current = this.newInstance();" );
3434
gen.getWriter().println( DaogenBasicGenerator.TAB_2+"this.printAll( current );" );
35-
gen.getWriter().println( DaogenBasicGenerator.TAB_2+"org.fugerit.java.core.function.SafeFunction.apply( () -> org.fugerit.java.core.io.ObjectIO.fullSerializationTest( current ) );" );
35+
String daoHelperNgMode = gen.getDaogenConfig().getGeneralProp( DaogenCatalogConstants.GEN_PROP_DAO_HELPER_NG_MODE, DaogenCatalogConstants.GEN_PROP_DAO_HELPER_NG_MODE_DISABLED );
36+
if ( DaogenCatalogConstants.GEN_PROP_DAO_HELPER_NG_MODE_DISABLED.equalsIgnoreCase( daoHelperNgMode ) ) {
37+
gen.getWriter().println( DaogenBasicGenerator.TAB_2+"org.fugerit.java.core.function.SafeFunction.apply( () -> org.fugerit.java.core.io.ObjectIO.fullSerializationTest( current ) );" );
38+
}
3639
if ( junitLevel < 5 ) {
3740
gen.getWriter().println( DaogenBasicGenerator.TAB_2+"Assert.assertNotNull( current );" );
3841
} else {

fj-daogen-base/src/main/resources/config/daogen-config-1-0.xsd

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*
77
* @project : fj-daogen
88
* @creation : 2020-11-12
9-
* @version : 1.0.0-rc.7 (2024-03-06)
9+
* @version : 1.0.0-rc.8 (2024-03-08)
1010
*
1111
* XSD for fugerit daogen configuration
1212
*/
@@ -166,6 +166,18 @@ The entry point for daogen-config documentation is : https://marsdocs.fugerit.or
166166
<xsd:documentation>The relevant generators and decorators will only by run if this property is set.</xsd:documentation>
167167
</xsd:annotation>
168168
</xsd:attribute>
169+
<xsd:attribute type="daogen:enabledDisabledType" name="dao-helper-ng-mode" use="optional" default="disabled">
170+
<xsd:annotation>
171+
<xsd:documentation>If set to 'enabled' the 'dao.helper.ng' property set will be selected.</xsd:documentation>
172+
<xsd:documentation>NOTE: when enabled, Helper entities will not be made serializable.</xsd:documentation>
173+
</xsd:annotation>
174+
</xsd:attribute>
175+
<xsd:attribute type="daogen:enabledDisabledType" name="dao-wrapper-ng-mode" use="optional" default="disabled">
176+
<xsd:annotation>
177+
<xsd:documentation>If set to 'enabled' the 'dao.wrapper.ng' property set will be selected.</xsd:documentation>
178+
<xsd:documentation>NOTE: when enabled, Wrapper entities will not be made serializable.</xsd:documentation>
179+
</xsd:annotation>
180+
</xsd:attribute>
169181
<xsd:attribute type="xsd:string" name="package-struct" use="optional">
170182
<xsd:annotation>
171183
<xsd:documentation>The package to be used for database java.sql.String classes, for each entity.</xsd:documentation>
@@ -364,6 +376,16 @@ The entry point for daogen-config documentation is : https://marsdocs.fugerit.or
364376
</xsd:restriction>
365377
</xsd:simpleType>
366378

379+
<xsd:simpleType name="enabledDisabledType">
380+
<xsd:annotation>
381+
<xsd:documentation>Property to set enabled/disabled, may be extended in future</xsd:documentation>
382+
</xsd:annotation>
383+
<xsd:restriction base="xsd:string">
384+
<xsd:enumeration value="enabled"></xsd:enumeration>
385+
<xsd:enumeration value="disabled"></xsd:enumeration>
386+
</xsd:restriction>
387+
</xsd:simpleType>
388+
367389
<xsd:simpleType name="jdkTargetVersionType">
368390
<xsd:annotation>
369391
<xsd:documentation>The target jdk version. currently possible values are '8', '11', '17', '21'.</xsd:documentation>

0 commit comments

Comments
 (0)