3838import com .djrapitops .plan .utilities .java .ThrowableUtils ;
3939import com .djrapitops .plan .utilities .logging .ErrorContext ;
4040import com .djrapitops .plan .utilities .logging .ErrorLogger ;
41+ import dev .vankka .dependencydownload .ApplicationDependencyManager ;
4142import dev .vankka .dependencydownload .DependencyManager ;
4243import dev .vankka .dependencydownload .classloader .IsolatedClassLoader ;
44+ import dev .vankka .dependencydownload .repository .MavenRepository ;
4345import dev .vankka .dependencydownload .repository .Repository ;
44- import dev .vankka .dependencydownload .repository . StandardRepository ;
46+ import dev .vankka .dependencydownload .resource . DependencyDownloadResource ;
4547import net .playeranalytics .plugin .scheduling .PluginRunnable ;
4648import net .playeranalytics .plugin .scheduling .RunnableFactory ;
4749import net .playeranalytics .plugin .scheduling .TimeAmount ;
@@ -67,8 +69,8 @@ public abstract class SQLDB extends AbstractDatabase {
6769 private static boolean downloadDriver = true ;
6870
6971 private static final List <Repository > DRIVER_REPOSITORIES = Arrays .asList (
70- new StandardRepository ("https://repo.papermc.io/repository/maven-public" ),
71- new StandardRepository ("https://repo1.maven.org/maven2" )
72+ new MavenRepository ("https://repo.papermc.io/repository/maven-public" ),
73+ new MavenRepository ("https://repo1.maven.org/maven2" )
7274 );
7375
7476 private final Supplier <ServerUUID > serverUUIDSupplier ;
@@ -79,6 +81,7 @@ public abstract class SQLDB extends AbstractDatabase {
7981 protected final RunnableFactory runnableFactory ;
8082 protected final PluginLogger logger ;
8183 protected final ErrorLogger errorLogger ;
84+ protected final ApplicationDependencyManager applicationDependencyManager ;
8285
8386 protected ClassLoader driverClassLoader ;
8487
@@ -97,7 +100,8 @@ protected SQLDB(
97100 PlanFiles files ,
98101 RunnableFactory runnableFactory ,
99102 PluginLogger logger ,
100- ErrorLogger errorLogger
103+ ErrorLogger errorLogger ,
104+ ApplicationDependencyManager applicationDependencyManager
101105 ) {
102106 this .serverUUIDSupplier = serverUUIDSupplier ;
103107 this .locale = locale ;
@@ -106,6 +110,7 @@ protected SQLDB(
106110 this .runnableFactory = runnableFactory ;
107111 this .logger = logger ;
108112 this .errorLogger = errorLogger ;
113+ this .applicationDependencyManager = applicationDependencyManager ;
109114
110115 this .transactionExecutorServiceProvider = () -> {
111116 String nameFormat = "Plan " + getClass ().getSimpleName () + "-transaction-thread-%d" ;
@@ -129,8 +134,12 @@ public static void setDownloadDriver(boolean downloadDriver) {
129134
130135 public void downloadDriver () {
131136 if (downloadDriver ) {
132- DependencyManager dependencyManager = new DependencyManager (files .getDataDirectory ().resolve ("libraries" ));
133- dependencyManager .loadFromResource (getDependencyResource ());
137+ DependencyManager dependencyManager = new DependencyManager (
138+ applicationDependencyManager .getDependencyPathProvider (),
139+ applicationDependencyManager .getLogger ()
140+ );
141+ dependencyManager .loadResource (DependencyDownloadResource .parse (getDependencyResource ()));
142+
134143 try {
135144 dependencyManager .downloadAll (null , DRIVER_REPOSITORIES ).get ();
136145 } catch (InterruptedException e ) {
@@ -141,6 +150,10 @@ public void downloadDriver() {
141150
142151 IsolatedClassLoader classLoader = new IsolatedClassLoader ();
143152 dependencyManager .load (null , classLoader );
153+
154+ // Include this dependency manager in the application dependency manager for library cleaning purposes
155+ applicationDependencyManager .include (dependencyManager );
156+
144157 this .driverClassLoader = classLoader ;
145158 } else {
146159 this .driverClassLoader = getClass ().getClassLoader ();
0 commit comments