Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 84 additions & 8 deletions SimpleAPI/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
<bouncycastle.version>1.85</bouncycastle.version>
</properties>
<build>
<finalName>${project.name}</finalName>
<sourceDirectory>src/main/java</sourceDirectory>
<pluginManagement>
<plugins>
Expand Down Expand Up @@ -68,14 +69,63 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.5.0</version>
<configuration>
<finalName>${project.name}</finalName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.4</version>
<executions>
<execution>
<id>shared-library</id>
<phase>package</phase>
<goals><goal>jar</goal></goals>
<configuration>
<classifier>shared</classifier>
<includes>
<include>com/bencodez/simpleapi/core/**</include>
<include>com/bencodez/simpleapi/file/config/*.class</include>
<include>com/bencodez/simpleapi/file/config/configurate/*.class</include>
<include>com/bencodez/simpleapi/file/annotation/AnnotationBinder*.class</include>
<include>com/bencodez/simpleapi/file/annotation/ConfigData*.class</include>
<include>com/bencodez/simpleapi/time/ParsedDuration*.class</include>
<include>com/bencodez/simpleapi/debug/DebugLevel.class</include>
<include>com/bencodez/simpleapi/sql/Column.class</include>
<include>com/bencodez/simpleapi/sql/DataType.class</include>
<include>com/bencodez/simpleapi/sql/data/*.class</include>
<include>com/bencodez/simpleapi/sql/mysql/AbstractSqlTable*.class</include>
<include>com/bencodez/simpleapi/sql/mysql/ConnectionManager*.class</include>
<include>com/bencodez/simpleapi/sql/mysql/DbType.class</include>
<include>com/bencodez/simpleapi/sql/mysql/MySQL*.class</include>
<include>com/bencodez/simpleapi/sql/mysql/config/MysqlConfig.class</include>
<include>com/bencodez/simpleapi/sql/mysql/config/MysqlConfigView.class</include>
<include>com/bencodez/simpleapi/sql/mysql/queries/*.class</include>
</includes>
</configuration>
</execution>
<execution>
<id>shared-library-sources</id>
<phase>package</phase>
<goals><goal>jar</goal></goals>
<configuration>
<classifier>shared-sources</classifier>
<classesDirectory>${project.build.sourceDirectory}</classesDirectory>
<includes>
<include>com/bencodez/simpleapi/core/**</include>
<include>com/bencodez/simpleapi/file/config/*.java</include>
<include>com/bencodez/simpleapi/file/config/configurate/*.java</include>
<include>com/bencodez/simpleapi/file/annotation/AnnotationBinder.java</include>
<include>com/bencodez/simpleapi/file/annotation/ConfigData*.java</include>
<include>com/bencodez/simpleapi/time/ParsedDuration.java</include>
<include>com/bencodez/simpleapi/debug/DebugLevel.java</include>
<include>com/bencodez/simpleapi/sql/Column.java</include>
<include>com/bencodez/simpleapi/sql/DataType.java</include>
<include>com/bencodez/simpleapi/sql/data/*.java</include>
<include>com/bencodez/simpleapi/sql/mysql/AbstractSqlTable.java</include>
<include>com/bencodez/simpleapi/sql/mysql/ConnectionManager.java</include>
<include>com/bencodez/simpleapi/sql/mysql/DbType.java</include>
<include>com/bencodez/simpleapi/sql/mysql/MySQL.java</include>
<include>com/bencodez/simpleapi/sql/mysql/config/MysqlConfig.java</include>
<include>com/bencodez/simpleapi/sql/mysql/config/MysqlConfigView.java</include>
<include>com/bencodez/simpleapi/sql/mysql/queries/*.java</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
Expand Down Expand Up @@ -124,6 +174,32 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.4</version>
<executions>
<execution>
<id>default-test</id>
<configuration>
<excludes><exclude>**/SharedArtifactTest.java</exclude></excludes>
</configuration>
</execution>
<execution>
<id>shared-artifact-test</id>
<phase>package</phase>
<goals><goal>test</goal></goals>
<configuration>
<includes><include>**/SharedArtifactTest.java</include></includes>
<reportsDirectory>${project.build.directory}/shared-artifact-reports</reportsDirectory>
<systemPropertyVariables>
<simpleapi.sharedJar>${project.build.directory}/${project.build.finalName}-shared.jar</simpleapi.sharedJar>
<simpleapi.fullJar>${project.build.directory}/${project.build.finalName}.jar</simpleapi.fullJar>
</systemPropertyVariables>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<repositories>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.bencodez.simpleapi.bukkit.config;

import org.bukkit.configuration.ConfigurationSection;
import com.bencodez.simpleapi.core.config.AnnotationBinder;

/** Bukkit entry point; native section-typed fields continue receiving the original section. */
public class AnnotationHandler {
private final AnnotationBinder binder = new AnnotationBinder(view -> ((BukkitConfigView) view).getSection());
public AnnotationHandler() { }
public void load(ConfigurationSection config, Object target) {
binder.load(config == null ? null : new BukkitConfigView(config), target);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.bencodez.simpleapi.bukkit.config;

import java.util.List;
import java.util.Objects;
import java.util.Set;
import org.bukkit.configuration.ConfigurationSection;
import com.bencodez.simpleapi.file.config.ConfigView;

/** Live Bukkit adapter. Defaults, coercions, native section identity and path rules are delegated. */
public class BukkitConfigView implements ConfigView {
private final ConfigurationSection section;
public BukkitConfigView(ConfigurationSection section) { this.section = Objects.requireNonNull(section, "section"); }
public ConfigurationSection getSection() { return section; }
@Override public boolean contains(String path) { return section.contains(path); }
@Override public String getString(String path, String fallback) { return section.getString(path, fallback); }
@Override public boolean getBoolean(String path, boolean fallback) { return section.getBoolean(path, fallback); }
@Override public int getInt(String path, int fallback) { return section.getInt(path, fallback); }
@Override public long getLong(String path, long fallback) { return section.getLong(path, fallback); }
@Override public double getDouble(String path, double fallback) { return section.getDouble(path, fallback); }
@Override public List<String> getStringList(String path) { return section.getStringList(path); }
@Override public List<Integer> getIntegerList(String path) { return section.getIntegerList(path); }
@Override public boolean isConfigurationSection(String path) { return section.isConfigurationSection(path); }
@Override public BukkitConfigView getConfigurationSection(String path) {
ConfigurationSection child = section.getConfigurationSection(path);
return child == null ? null : sectionView(child);
}
protected BukkitConfigView sectionView(ConfigurationSection child) { return new BukkitConfigView(child); }
@Override public Set<String> getKeys(boolean deep) { return section.getKeys(deep); }
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/**
* Bukkit adapters for the shared implementations. Legacy public entry points
* delegate here without requiring consumers to change imports. Forge, Fabric and
* other loader adapters will get sibling packages only when they are implemented.
*/
package com.bencodez.simpleapi.bukkit;
Loading
Loading