Skip to content

Commit cc08fc3

Browse files
author
TheProgramSrc
committed
ChangeLog:
• Added DependencyManager to reduce the file size • Added Base Class (ToDo) • Working on JavaDocs
1 parent 56778a7 commit cc08fc3

File tree

14 files changed

+136
-144
lines changed

14 files changed

+136
-144
lines changed

SuperCoreAPI.iml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,5 +45,7 @@
4545
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.6" level="project" />
4646
<orderEntry type="library" name="Maven: commons-io:commons-io:2.6" level="project" />
4747
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" />
48+
<orderEntry type="library" scope="PROVIDED" name="Maven: com.zaxxer:HikariCP:3.3.1" level="project" />
49+
<orderEntry type="library" scope="PROVIDED" name="Maven: org.xerial:sqlite-jdbc:3.25.2" level="project" />
4850
</component>
4951
</module>

dependency-reduced-pom.xml

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,7 @@
3535
</goals>
3636
<configuration>
3737
<createDependencyReducedPom>true</createDependencyReducedPom>
38-
<transformers>
39-
<transformer>
40-
<resource>META-INF/services/java.sql.Driver</resource>
41-
</transformer>
42-
</transformers>
38+
<minimizeJar>true</minimizeJar>
4339
</configuration>
4440
</execution>
4541
</executions>
@@ -131,6 +127,18 @@
131127
<version>1.15.2-R0.1-20200509.094844-17</version>
132128
<scope>provided</scope>
133129
</dependency>
130+
<dependency>
131+
<groupId>com.zaxxer</groupId>
132+
<artifactId>HikariCP</artifactId>
133+
<version>3.3.1</version>
134+
<scope>provided</scope>
135+
</dependency>
136+
<dependency>
137+
<groupId>org.xerial</groupId>
138+
<artifactId>sqlite-jdbc</artifactId>
139+
<version>3.25.2</version>
140+
<scope>provided</scope>
141+
</dependency>
134142
</dependencies>
135143
<distributionManagement>
136144
<repository>

pom.xml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@
123123
<groupId>org.slf4j</groupId>
124124
<artifactId>slf4j-nop</artifactId>
125125
<version>1.7.30</version>
126-
<scope>compile</scope>
127126
</dependency>
128127
<dependency>
129128
<groupId>org.slf4j</groupId>
@@ -150,5 +149,19 @@
150149
<version>2.8.6</version>
151150
<scope>compile</scope>
152151
</dependency>
152+
<!-- HikariCP -->
153+
<dependency>
154+
<groupId>com.zaxxer</groupId>
155+
<artifactId>HikariCP</artifactId>
156+
<version>3.3.1</version>
157+
<scope>provided</scope>
158+
</dependency>
159+
<!-- SQLite -->
160+
<dependency>
161+
<groupId>org.xerial</groupId>
162+
<artifactId>sqlite-jdbc</artifactId>
163+
<version>3.25.2</version>
164+
<scope>provided</scope>
165+
</dependency>
153166
</dependencies>
154167
</project>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package xyz.theprogramsrc;
2+
3+
4+
/**
5+
* This is a set of utils that need to be loaded
6+
*
7+
* TODO
8+
*/
9+
public class Base {
10+
11+
public Base(){
12+
13+
}
14+
}

src/main/java/xyz/theprogramsrc/plugin/MyPlugin.java

Lines changed: 0 additions & 77 deletions
This file was deleted.

src/main/java/xyz/theprogramsrc/supercoreapi/bungee/BungeePlugin.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import xyz.theprogramsrc.supercoreapi.bungee.events.BungeeEventManager;
1414
import xyz.theprogramsrc.supercoreapi.bungee.storage.Settings;
1515
import xyz.theprogramsrc.supercoreapi.bungee.utils.BungeeUtils;
16-
import xyz.theprogramsrc.supercoreapi.global.dependencies.BaseDependencies;
16+
import xyz.theprogramsrc.supercoreapi.global.dependencies.Dependencies;
1717
import xyz.theprogramsrc.supercoreapi.global.dependencies.DependencyManager;
1818
import xyz.theprogramsrc.supercoreapi.global.dependencies.classloader.PluginClassLoader;
1919
import xyz.theprogramsrc.supercoreapi.global.dependencies.classloader.ReflectionClassLoader;
@@ -39,6 +39,7 @@ public abstract class BungeePlugin extends Plugin implements SuperPlugin<Plugin>
3939
@Override
4040
public void onLoad() {
4141
long start = System.currentTimeMillis();
42+
new xyz.theprogramsrc.Base();
4243
this.log("Loading plugin &3v"+this.getPluginVersion());
4344
this.disableHooks = new ArrayList<>();
4445
this.firstStart = !this.getDataFolder().exists();
@@ -57,7 +58,7 @@ public void onEnable() {
5758
new BungeeEventManager(this);
5859
PluginClassLoader classLoader = new ReflectionClassLoader(this);
5960
this.dependencyManager = new DependencyManager(this, classLoader);
60-
Arrays.stream(BaseDependencies.values()).forEach(d-> dependencyManager.loadDependencies(d.getDependency()));
61+
this.dependencyManager.loadDependencies(Dependencies.get());
6162
this.onPluginEnable();
6263
this.log("Enabled plugin");
6364
if(this.isFirstStart()){

src/main/java/xyz/theprogramsrc/supercoreapi/global/dependencies/BaseDependencies.java renamed to src/main/java/xyz/theprogramsrc/supercoreapi/global/dependencies/Dependencies.java

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import xyz.theprogramsrc.supercoreapi.global.dependencies.classloader.LoaderType;
44

5-
public enum BaseDependencies {
5+
import java.util.Arrays;
6+
7+
public enum Dependencies {
68

79
SQLITE_DRIVER(
810
"org.xerial",
@@ -12,22 +14,42 @@ public enum BaseDependencies {
1214
LoaderType.ISOLATED
1315
),
1416
HIKARI(
15-
"com{}zaxxer",
17+
"com.zaxxer",
1618
"HikariCP",
1719
"3.3.1",
1820
"SIaA1yzGHOZNpZNoIt903f5ScJrIB3u8CT2cNkaLcy0=",
1921
LoaderType.REFLECTION
2022
),
2123

24+
SLF4J_API(
25+
"org.slf4j",
26+
"slf4j-api",
27+
"1.7.25",
28+
"GMSgCV1cHaa4F1kudnuyPSndL1YK1033X/OWHb3iW3k=",
29+
LoaderType.REFLECTION
30+
),
31+
32+
SLF4J_NOP(
33+
"org.slf4j",
34+
"slf4j-nop",
35+
"1.7.25",
36+
"bLEnE49Btahp+ezdBhrRd5mg4/5yBGAHlxVOsEMu6xI=",
37+
LoaderType.REFLECTION
38+
)
39+
2240
;
2341

2442
private final Dependency dependency;
2543

26-
BaseDependencies(String groupId, String artifactId, String version, String checksum, LoaderType loaderType) {
44+
Dependencies(String groupId, String artifactId, String version, String checksum, LoaderType loaderType) {
2745
this.dependency = new Dependency(name(), groupId, artifactId, version, checksum, loaderType);
2846
}
2947

3048
public Dependency getDependency() {
3149
return dependency;
3250
}
51+
52+
public static Dependency[] get(){
53+
return Arrays.stream(values()).map(Dependencies::getDependency).toArray(Dependency[]::new);
54+
}
3355
}

src/main/java/xyz/theprogramsrc/supercoreapi/global/dependencies/Dependency.java

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@
3333

3434
public class Dependency {
3535

36-
private static final String MAVEN_CENTRAL_REPO = "https://repo1.maven.org/maven2/";
37-
private static final String LUCK_MIRROR_REPO = "https://nexus.lucko.me/repository/maven-central/";
3836
private static final String MAVEN_FORMAT = "%s/%s/%s/%s-%s.jar";
3937

4038
private final String name;
@@ -57,10 +55,11 @@ public Dependency(String name, String groupId, String artifactId, String version
5755
version
5856
);
5957
try {
60-
this.urls = ImmutableList.of(
61-
new URL(LUCK_MIRROR_REPO + path),
62-
new URL(MAVEN_CENTRAL_REPO + path)
63-
);
58+
ImmutableList.Builder<URL> b = ImmutableList.builder();
59+
for(Repositories r : Repositories.values()){
60+
b.add(new URL(r.getURL() + path));
61+
}
62+
this.urls = b.build();
6463
} catch (Exception e) {
6564
throw new RuntimeException(e); // propagate
6665
}
@@ -72,14 +71,6 @@ private static String rewriteEscaping(String s) {
7271
return s.replace("{}", ".");
7372
}
7473

75-
public static String getMavenCentralRepo() {
76-
return MAVEN_CENTRAL_REPO;
77-
}
78-
79-
public static String getLuckMirrorRepo() {
80-
return LUCK_MIRROR_REPO;
81-
}
82-
8374
public static String getMavenFormat() {
8475
return MAVEN_FORMAT;
8576
}

src/main/java/xyz/theprogramsrc/supercoreapi/global/dependencies/DependencyManager.java

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import xyz.theprogramsrc.supercoreapi.SuperPlugin;
3030
import xyz.theprogramsrc.supercoreapi.global.dependencies.classloader.IsolatedClassLoader;
3131
import xyz.theprogramsrc.supercoreapi.global.dependencies.classloader.PluginClassLoader;
32+
import xyz.theprogramsrc.supercoreapi.global.utils.Utils;
3233

3334
import java.io.File;
3435
import java.io.InputStream;
@@ -39,12 +40,7 @@
3940
import java.nio.file.Path;
4041
import java.security.MessageDigest;
4142
import java.security.NoSuchAlgorithmException;
42-
import java.util.ArrayList;
43-
import java.util.Arrays;
44-
import java.util.Base64;
45-
import java.util.HashMap;
46-
import java.util.List;
47-
import java.util.Map;
43+
import java.util.*;
4844
import java.util.concurrent.TimeUnit;
4945

5046
/**
@@ -106,39 +102,43 @@ public Map<ImmutableSet<Dependency>, IsolatedClassLoader> getLoaders() {
106102
* @param dependencies The dependencies to load
107103
*/
108104
public void loadDependencies(Dependency... dependencies) {
109-
File saveDirectory = getSaveDirectory();
110-
111-
// create a list of file sources
112-
List<Source> sources = new ArrayList<>();
113-
114-
// obtain a file for each of the dependencies
115-
for (Dependency dependency : dependencies) {
116-
if (this.loaded.containsKey(dependency)) {
117-
continue;
118-
}
105+
if(!Utils.isConnected()){
106+
this.plugin.log("&cCannot download dependencies. Please connect to internet. Some features will be disabled");
107+
}else{
108+
File saveDirectory = getSaveDirectory();
109+
110+
// create a list of file sources
111+
List<Source> sources = new ArrayList<>();
112+
113+
// obtain a file for each of the dependencies
114+
for (Dependency dependency : dependencies) {
115+
if (this.loaded.containsKey(dependency)) {
116+
continue;
117+
}
119118

120-
try {
121-
Path file = downloadDependency(saveDirectory.toPath(), dependency);
122-
sources.add(new Source(dependency, file));
123-
} catch (Throwable e) {
124-
this.plugin.log("Exception whilst downloading dependency " + dependency.getName());
125-
e.printStackTrace();
119+
try {
120+
Path file = downloadDependency(saveDirectory.toPath(), dependency);
121+
sources.add(new Source(dependency, file));
122+
} catch (Throwable e) {
123+
this.plugin.log("Exception whilst downloading dependency " + dependency.getName());
124+
e.printStackTrace();
125+
}
126126
}
127-
}
128127

129-
// load each of the jars
130-
for (Source source : sources) {
131-
if (!source.dependency.isAutoLoad()) {
132-
this.loaded.put(source.dependency, source.file);
133-
continue;
134-
}
128+
// load each of the jars
129+
for (Source source : sources) {
130+
if (!source.dependency.isAutoLoad()) {
131+
this.loaded.put(source.dependency, source.file);
132+
continue;
133+
}
135134

136-
try {
137-
this.pluginClassLoader.loadJar(source.file);
138-
this.loaded.put(source.dependency, source.file);
139-
} catch (Throwable e) {
140-
this.plugin.log("&cFailed to load dependency jar '" + source.file.getFileName().toString() + "'.");
141-
e.printStackTrace();
135+
try {
136+
this.pluginClassLoader.loadJar(source.file);
137+
this.loaded.put(source.dependency, source.file);
138+
} catch (Throwable e) {
139+
this.plugin.log("&cFailed to load dependency jar '" + source.file.getFileName().toString() + "'.");
140+
e.printStackTrace();
141+
}
142142
}
143143
}
144144
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package xyz.theprogramsrc.supercoreapi.global.dependencies;
2+
3+
public enum Repositories {
4+
5+
MAVEN_CENTRAL("https://repo1.maven.org/maven2/"),
6+
SONATYPE("https://oss.sonatype.org/content/groups/public/"),
7+
CODE_MC("https://repo.codemc.org/repository/maven-public/"),
8+
9+
10+
;
11+
private final String url;
12+
13+
Repositories(String url){
14+
this.url = url;
15+
}
16+
17+
public String getURL() {
18+
return url;
19+
}
20+
}

0 commit comments

Comments
 (0)