While this is pretty neat, its not supported as the xml is version specific and built at runtime, which online a config file will change
The XML is not documented and afaik right now, we dont support options like USE_THICK_DRIVER. That said, I need to confirm it and come back to you.
Be aware that while Sql Dev uses the JDev framework as a baseline they often have significant changes to the config files that deviate from what JDev is using.
In particular Menu names/ids/hierarchy is different. Here are two threads I was involved in that had some questions/answers.
In this one from 2017
The response was that this github link was the 'now official' place to go for info
I create this thread several years ago. They had promised for several years to publish, or otherwise make available, the xml config files needed to know what the menu/other names are but I've never seen any.
This is the JDev doc
This is the Sql Dev Extensions home page
But as you can see it was last updated in 2013 and was for the older 3.x product. As of 4.x they changed the entire framework to use the JDev one as the base.
I don't know what their current position is about this page or whether they will even update it with newer 4x extensions or not but none of those old extensions will work in the new framework.
Thanks for the hint. This sound more complicated and not necessarly better supported than updating product-preferences.xml, right?
Using an extension isn't really going to help you with your distribution of a custom preferences file.
Sql Dev doesn't use the registry (windows) so it isn't really a major effort to prepare a standard distribution:
1. unpack sql dev in a work environment
2. make any changes you want to the preferences and/or connections xml files
3. zip it back up
4. distribute your custom zip file
An alternative is to distribute the standard sql dev zip along with an installation/batch file.
1. unzip the standard
2. execute your batch file that then replaces the preferences and/or connections files.
The choice depends more on how many DIFFERENT configuration files you need to distribute and to what extent you trust your users to do the replacement (or if they even have the privileges needed to do the replacement.
If it is REALLY a standard customization then repackage things yourself and distribute your own package.
I have hundreds of Citrix users and they have no access to the system drive (C:). Some are advanced, some are business users who needs to browse some Data.
It is cumbersome because some have hundreds of settings and connections in Sqldev 4.1. When they'll start 18.1 for the first time, things they've done will be migrated. Hopefully.
To just edit USE_THICK_DRIVER and setting the Oracle Client home with XML replace (e.g. in Powershell) is an headache. But writing an extension to auto-configure the client is probably a traumatic experience. Unsure yet...
I found obe sql extensions and you are right, it is not going to help me.
The easiest (and I use the term loosely) way is:
1. use a sandbox environment
2. MANUALLY install/test/configure Sql dev to your liking
3. copy out any install/config/connection/other files that you customized
4. distribute and place copies of those preconfigured files for each client you distribute to
That is really the ONLY way I know of to totally control the user environment.
If that won't work for you then you have a real problem on your hands.
Unfortunately, it doesn't work
I could not found USE_THICK_DRIVER in the ZIP.
The product-preferences.xml is created in the user home directory. Which means, it does not exist before the user start sql developer.
The number of users is huge and dynamic, there are hundreds of new joiners and leavers and I many thousand of potential users.
I tried my luck on https://github.com/oracle/dbtools-commons/search?utf8=%E2%9C%93&q=USE_THICK_DRIVER+&type= but not close yet
I'm thinking you could make an msi that would put those files into the profile directories for you.
And then on new versions being installed, those would be copied over, automatically if they chose to import their settings.
But I have more than 20'000 profiles... hundreds of them already use sql developer. I need to write to write a wrapper that copy product-preferences in userdir before sqldeveloper 18.1 is started for the first time.
yeah but an MSI package will work for 1, 2, 200, or 20000 profiles
just have it create those directories and copy the files over, all at once. then when they actually startup up 18.1, they'll already be there
But, we use AppData, Roaming Profiles for a reason - it's setup that way to explicitly support things like Citrix
Yes, I know. But I don't know the name of the users at the time the package is created.
I just want to pre-configure the full client to allow things like Password-Reset, ActiveDirectory, SSL for the end-user
Is it possible to change the default driver before starting SQL Developer (beside creating 20'000 files + a new each month)
Currently we plan to migrate from 4.1 to 18.1 and I want to make it as smooth as possible for the end user.