partial .CFConfig.json only populates a subset of required default values

Description

When providing a partial or empty .CFConfig.json either by dropping it in the context dir or via LUCEE_BASE_CONFIG, only a subset of the default values are written out as config, (when triggered by a CFADMIN operation)

https://github.com/lucee/lucee-testlab/actions/runs/9714621156/job/26814093690#step:7:926

one of the regressions this caused was https://luceeserver.atlassian.net/browse/LDEV-4930

While it’s important that some features are optional, i.e resourceProviders, extensions, mappings, all the defaults should be set / inherited?

[java] [script] applicationTimeout missing in empty .CFConfig.json [java] [script] [java] [script] cacheDirectory missing in empty .CFConfig.json [java] [script] [java] [script] cacheDirectoryMaxSize missing in empty .CFConfig.json [java] [script] [java] [script] cascadeToResultset missing in empty .CFConfig.json [java] [script] [java] [script] clientCookies missing in empty .CFConfig.json [java] [script] [java] [script] clientDirectory missing in empty .CFConfig.json [java] [script] [java] [script] clientDirectoryMaxSize missing in empty .CFConfig.json [java] [script] [java] [script] clientManagement missing in empty .CFConfig.json [java] [script] [java] [script] clientTimeout missing in empty .CFConfig.json [java] [script] [java] [script] componentBase missing in empty .CFConfig.json [java] [script] [java] [script] componentDataMemberAccess missing in empty .CFConfig.json [java] [script] [java] [script] componentDumpTemplate missing in empty .CFConfig.json [java] [script] [java] [script] developMode missing in empty .CFConfig.json [java] [script] [java] [script] domainCookies missing in empty .CFConfig.json [java] [script] [java] [script] listenerMode missing in empty .CFConfig.json [java] [script] [java] [script] listenerType missing in empty .CFConfig.json [java] [script] [java] [script] mailConnectionTimeout missing in empty .CFConfig.json [java] [script] [java] [script] mailSpoolEnable missing in empty .CFConfig.json [java] [script] [java] [script] mailSpoolInterval missing in empty .CFConfig.json [java] [script] [java] [script] mergeUrlForm missing in empty .CFConfig.json [java] [script] mode matches! [java] [script] [java] [script] preserveSingleQuote missing in empty .CFConfig.json [java] [script] [java] [script] requestTimeout missing in empty .CFConfig.json [java] [script] [java] [script] scopeCascading missing in empty .CFConfig.json [java] [script] [java] [script] sessionManagement missing in empty .CFConfig.json [java] [script] [java] [script] sessionTimeout missing in empty .CFConfig.json [java] [script] [java] [script] systemErr missing in empty .CFConfig.json [java] [script] [java] [script] systemOut missing in empty .CFConfig.json [java] [script] [java] [script] tempDirectory missing in empty .CFConfig.json [java] [script] [java] [script] timeserver missing in empty .CFConfig.json [java] [script] [java] [script] updateLocation missing in empty .CFConfig.json [java] [script] [java] [script] updateType missing in empty .CFConfig.json [java] [script] [java] [script] version missing in empty .CFConfig.json [java] [script] [java] [script] cacheHandlers missing in empty .CFConfig.json [java] [script] [java] [script] cfx missing in empty .CFConfig.json [java] [script] [java] [script] componentMappings missing in empty .CFConfig.json [java] [script] [java] [script] customTagMappings missing in empty .CFConfig.json [java] [script] [java] [script] dataSources missing in empty .CFConfig.json [java] [script] [java] [script] debugging missing in empty .CFConfig.json [java] [script] [java] [script] defaultResourceProvider missing in empty .CFConfig.json [java] [script] [java] [script] dumpWriters missing in empty .CFConfig.json [java] [script] [java] [script] fileSystem missing in empty .CFConfig.json [java] [script] [java] [script] loggers missing in empty .CFConfig.json [java] [script] [java] [script] mappings is different! [java] [script] empty : {"/lucee/admin":{"physical":"{lucee-config}/context/admin","archive":"{lucee-config}/context/lucee-admin.lar","primary":"physical","listenerType":"modern","listenerMode":"curr2root","inspectTemplate":"once","inspectTemplateIntervalSlow":"-1","inspectTemplateIntervalFast":"-1","topLevel":"true","readOnly":"true"},"/lucee/doc":{"archive":"{lucee-config}/context/lucee-doc.lar","primary":"archive","listenerType":"modern","listenerMode":"curr2root","inspectTemplate":"once","inspectTemplateIntervalSlow":"-1","inspectTemplateIntervalFast":"-1","topLevel":"true","readOnly":"true"},"/":{"physical":"/home/runner/work/lucee-testlab/lucee-testlab/custom/default-cfconfig","primary":"physical","inspectTemplate":"","inspectTemplateIntervalSlow":"-1","inspectTemplateIntervalFast":"-1","topLevel":"true","readOnly":"false"}} [java] [script] default: {"/lucee/":{"readonly":"yes","physical":"{lucee-config}/context/","archive":"{lucee-config}/context/lucee-context.lar","primary":"physical","listenerMode":"modern","listenerType":"curr2root","inspectTemplate":"once"},"/lucee-server/":{"readonly":"yes","physical":"{lucee-server}/context/","archive":"","primary":"physical","listenerMode":"modern","listenerType":"curr2root","inspectTemplate":"once"},"/lucee/admin":{"physical":"{lucee-config}/context/admin","archive":"{lucee-config}/context/lucee-admin.lar","primary":"physical","listenerType":"modern","listenerMode":"curr2root","inspectTemplate":"once","inspectTemplateIntervalSlow":"-1","inspectTemplateIntervalFast":"-1","topLevel":"true","readOnly":"true"},"/lucee/doc":{"archive":"{lucee-config}/context/lucee-doc.lar","primary":"archive","listenerType":"modern","listenerMode":"curr2root","inspectTemplate":"once","inspectTemplateIntervalSlow":"-1","inspectTemplateIntervalFast":"-1","topLevel":"true","readOnly":"true"},"/":{"physical":"/home/runner/work/lucee-testlab/lucee-testlab/custom/default-cfconfig","primary":"physical","inspectTemplate":"","inspectTemplateIntervalSlow":"-1","inspectTemplateIntervalFast":"-1","topLevel":"true","readOnly":"false"}} [java] [script] [java] [script] orm missing in empty .CFConfig.json [java] [script] [java] [script] remoteClients missing in empty .CFConfig.json [java] [script] [java] [script] resourceProviders is different! [java] [script] empty : [{"bundleName":"s3.extension","arguments":"lock-timeout:10000","bundleVersion":"2.0.1.25","scheme":"s3","class":"org.lucee.extension.resource.s3.S3ResourceProvider"}] [java] [script] default: [{"scheme":"ftp","class":"lucee.commons.io.res.type.ftp.FTPResourceProvider","arguments":"lock-timeout:20000;socket-timeout:-1;client-timeout:60000"},{"scheme":"zip","class":"lucee.commons.io.res.type.zip.ZipResourceProvider","arguments":"lock-timeout:1000;case-sensitive:true;"},{"scheme":"tar","class":"lucee.commons.io.res.type.tar.TarResourceProvider","arguments":"lock-timeout:1000;case-sensitive:true;"},{"scheme":"tgz","class":"lucee.commons.io.res.type.tgz.TGZResourceProvider","arguments":"lock-timeout:1000;case-sensitive:true;"},{"scheme":"http","class":"lucee.commons.io.res.type.http.HTTPResourceProvider","arguments":"lock-timeout:10000;case-sensitive:false;"},{"scheme":"https","class":"lucee.commons.io.res.type.http.HTTPSResourceProvider","arguments":"lock-timeout:10000;case-sensitive:false;"},{"scheme":"ram","class":"lucee.commons.io.res.type.cache.CacheResourceProvider","arguments":"case-sensitive:true;lock-timeout:1000;"},{"bundleName":"s3.extension","arguments":"lock-timeout:10000","bundleVersion":"2.0.1.25","scheme":"s3","class":"org.lucee.extension.resource.s3.S3ResourceProvider"}] [java] [script] extensions matches! [java] [script] jdbcDrivers matches! [java] [script] cacheClasses matches! [java] [script] 28.06.2024 14:43:29,456 ERROR [server.exception] 46 config elements were different!

Environment

None

Attachments

1
  • 24 Jul 2024, 10:44 am

Activity

Show:

Zac Spitzer 24 July 2024 at 10:44

ah i think the confusion is that by partial I meant a subset of top level properties, as is common with they way people are used to using .CFConfig.json, rather than the nested configuration like datasources or mappings, i.e. whether there was a top level datasource property or not, nothing to do with the actual property values

ie. https://github.com/pixl8/Preside-CMS/blob/stable/tests/.cfconfig.json

 

image-20240724-104358.png

 

Zac Spitzer 24 July 2024 at 09:14

Ah, i thought that was done in another ticket, as i didn’t see any commits for this ticket

Michael Offner 24 July 2024 at 09:00

what this ticket solved was for example:
if you have 3 datasources and you add a 4th with a partial cfconfig, you end with 4 and not with 1 as you did before.

That was the only thing this ticket resolved, if that is not the case and only this, reopen it, otherwise let it as it is.
Feel free to create a epic for this 2 tickets above, but i get the feeling that is not needed. better make relation between them.

Zac Spitzer 24 July 2024 at 08:57

i did already create the two above tickets, this is ticket is simply about the defaults not being created, i’ll edit the long comment above

Michael Offner 24 July 2024 at 08:53

open new ticket instead, create new tickets, maybe even break down in multiple more precise tickets.

Fixed

Details

Assignee

Reporter

Priority

Labels

New Issue warning screen

Before you create a new Issue, please post to the mailing list first https://dev.lucee.org

Once the issue has been verified, one of the Lucee team will ask you to file an issue

Sprint

Created 4 July 2024 at 07:37
Updated 24 July 2024 at 10:44
Resolved 12 July 2024 at 12:54

Flag notifications