[GH-ISSUE #1308] Adding driver on builded cloudbeaver may be a great way to custom driver #284

Closed
opened 2026-03-07 20:47:17 +03:00 by kerem · 3 comments
Owner

Originally created by @Danst-bjtu on GitHub (Nov 21, 2022).
Original GitHub issue: https://github.com/dbeaver/cloudbeaver/issues/1308

I have implemented adding custom drivers following wiki/Adding-new-database-drivers, but this way need to git clone source code, and build project, I hope to change some files in builded cloudbeaver(it likes change some files in docker containers). By this way,we just need to docker pull lastest version and replace some files which are related to adding drive in docker container, drivers will be added.

Based on the above ideas, I find io.cloudbeaver.resources.drivers.base_1.0.62.202211210606.jar and org.jkiss.dbeaver.ext.generic_2.3.180.202211210606.jar are related to adding drive,so I use jars which has added drives to replace these two files, and mkdir in drivers/ , and add driver.jar. I think it will work, however, It throws expection like :
image

May be I need to read source code. I want to know whether it is feasible to use the way I said? Just replace jars and add drive file in builded cloudbeaver or docker container

Originally created by @Danst-bjtu on GitHub (Nov 21, 2022). Original GitHub issue: https://github.com/dbeaver/cloudbeaver/issues/1308 I have implemented adding custom drivers following wiki/Adding-new-database-drivers, but this way need to git clone source code, and build project, I hope to change some files in builded cloudbeaver(it likes change some files in docker containers). By this way,we just need to docker pull lastest version and replace some files which are related to adding drive in docker container, drivers will be added. Based on the above ideas, I find io.cloudbeaver.resources.drivers.base_1.0.62.202211210606.jar and org.jkiss.dbeaver.ext.generic_2.3.180.202211210606.jar are related to adding drive,so I use jars which has added drives to replace these two files, and mkdir in drivers/ , and add driver.jar. I think it will work, however, It throws expection like : ![image](https://user-images.githubusercontent.com/77576766/202999987-a7548aa2-02a0-46cd-8bce-e3643cf88e98.png) May be I need to read source code. I want to know whether it is feasible to use the way I said? Just replace jars and add drive file in builded cloudbeaver or docker container
kerem 2026-03-07 20:47:17 +03:00
Author
Owner

@Danst-bjtu commented on GitHub (Nov 21, 2022):

14:55:56.896 [main] DEBUG i.c.service.security.db.CBDatabase - Initiate management database
14:55:56.897 [main] ERROR io.cloudbeaver.server.CBApplication - Error initializing database
org.jkiss.dbeaver.DBException: Driver 'h2_embedded' not found
at io.cloudbeaver.service.security.db.CBDatabase.initialize(CBDatabase.java:115) ~[na:na]
at io.cloudbeaver.service.security.EmbeddedSecurityControllerFactory.createSecurityService(EmbeddedSecurityControllerFactory.java:75) ~[na:na]
at io.cloudbeaver.service.security.EmbeddedSecurityControllerFactory.createSecurityService(EmbeddedSecurityControllerFactory.java:48) ~[na:na]
at io.cloudbeaver.server.CBApplication.createGlobalSecurityController(CBApplication.java:483) ~[na:na]
at io.cloudbeaver.server.CBApplication.initializeSecurityController(CBApplication.java:479) ~[na:na]
at io.cloudbeaver.server.CBApplication.startServer(CBApplication.java:324) ~[na:na]
at io.cloudbeaver.model.app.BaseWebApplication.start(BaseWebApplication.java:181) ~[na:na]
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203) ~[na:na]
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136) ~[na:na]
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) ~[na:na]
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402) ~[na:na]
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659) ~[org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar:na]
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596) ~[org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar:na]
at org.eclipse.equinox.launcher.Main.run(Main.java:1467) ~[org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar:na]
at org.eclipse.equinox.launcher.Main.main(Main.java:1440) ~[org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar:na]
14:55:56.901 [Framework stop - Equinox Container: bdf3cb72-3f9e-4736-bcc1-0b2ccd7ea85b] DEBUG io.cloudbeaver.server.CBPlatform - Shutdown Core...
14:55:56.925 [Framework stop - Equinox Container: bdf3cb72-3f9e-4736-bcc1-0b2ccd7ea85b] DEBUG io.cloudbeaver.server.CBPlatform - Shutdown completed in 24ms
Job found still running after platform shutdown. Jobs should be canceled by the plugin that scheduled them during shutdown: org.jkiss.dbeaver.model.navigator.DBNModel$EventProcessingJob

<!-- gh-comment-id:1321684409 --> @Danst-bjtu commented on GitHub (Nov 21, 2022): 14:55:56.896 [main] DEBUG i.c.service.security.db.CBDatabase - Initiate management database 14:55:56.897 [main] ERROR io.cloudbeaver.server.CBApplication - Error initializing database org.jkiss.dbeaver.DBException: Driver 'h2_embedded' not found at io.cloudbeaver.service.security.db.CBDatabase.initialize(CBDatabase.java:115) ~[na:na] at io.cloudbeaver.service.security.EmbeddedSecurityControllerFactory.createSecurityService(EmbeddedSecurityControllerFactory.java:75) ~[na:na] at io.cloudbeaver.service.security.EmbeddedSecurityControllerFactory.createSecurityService(EmbeddedSecurityControllerFactory.java:48) ~[na:na] at io.cloudbeaver.server.CBApplication.createGlobalSecurityController(CBApplication.java:483) ~[na:na] at io.cloudbeaver.server.CBApplication.initializeSecurityController(CBApplication.java:479) ~[na:na] at io.cloudbeaver.server.CBApplication.startServer(CBApplication.java:324) ~[na:na] at io.cloudbeaver.model.app.BaseWebApplication.start(BaseWebApplication.java:181) ~[na:na] at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203) ~[na:na] at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136) ~[na:na] at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) ~[na:na] at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402) ~[na:na] at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659) ~[org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar:na] at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596) ~[org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar:na] at org.eclipse.equinox.launcher.Main.run(Main.java:1467) ~[org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar:na] at org.eclipse.equinox.launcher.Main.main(Main.java:1440) ~[org.eclipse.equinox.launcher_1.6.400.v20210924-0641.jar:na] 14:55:56.901 [Framework stop - Equinox Container: bdf3cb72-3f9e-4736-bcc1-0b2ccd7ea85b] DEBUG io.cloudbeaver.server.CBPlatform - Shutdown Core... 14:55:56.925 [Framework stop - Equinox Container: bdf3cb72-3f9e-4736-bcc1-0b2ccd7ea85b] DEBUG io.cloudbeaver.server.CBPlatform - Shutdown completed in 24ms Job found still running after platform shutdown. Jobs should be canceled by the plugin that scheduled them during shutdown: org.jkiss.dbeaver.model.navigator.DBNModel$EventProcessingJob
Author
Owner

@Danst-bjtu commented on GitHub (Nov 23, 2022):

GOOD ! This way is useful.
I forget to change the version of jars, because the version of jar must be same with deploy/cloudbeaver/server/artifacts.xml, of course, We can docker pull the lastest cloudbeaver, and enter the container, then, add new driver and update plugin.xml of io.cloudbeaver.resources.drivers.base_version.jar and org.jkiss.dbeaver.ext.generic_version.jar, after do these thing, restart cloudbeaver container, It will be ok!

<!-- gh-comment-id:1324501966 --> @Danst-bjtu commented on GitHub (Nov 23, 2022): GOOD ! This way is useful. I forget to change the version of jars, because the version of jar must be same with deploy/cloudbeaver/server/artifacts.xml, of course, We can docker pull the lastest cloudbeaver, and enter the container, then, add new driver and update plugin.xml of io.cloudbeaver.resources.drivers.base_version.jar and org.jkiss.dbeaver.ext.generic_version.jar, after do these thing, restart cloudbeaver container, It will be ok!
Author
Owner

@kseniaguzeeva commented on GitHub (Nov 23, 2022):

I'm glad that the issue isn't actual anymore.

<!-- gh-comment-id:1325160792 --> @kseniaguzeeva commented on GitHub (Nov 23, 2022): I'm glad that the issue isn't actual anymore.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/cloudbeaver#284
No description provided.