Skip to content

Commit 600ef6a

Browse files
committed
✨ Enable plugin lookup for Java classes in classpath
Previously, plugins had to be packaged as JARs to be discovered. This change allows plugins to be loaded from Java classes present in the classpath. Additionally, performed minor refactoring, including adding @OverRide annotations and updating Javadoc.
1 parent ce0e1ac commit 600ef6a

File tree

4 files changed

+18
-14
lines changed

4 files changed

+18
-14
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,3 +287,5 @@ $RECYCLE.BIN/
287287
# infer- http://fbinfer.com/
288288
infer-out
289289
/commons/nbproject/
290+
291+
rebel.xml

commons/src/main/java/org/restheart/metrics/Metrics.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public static void xffValueRIndex(int ridx) {
121121
}
122122

123123

124-
private static AttachmentKey<List<MetricLabel>> CUSTOM_METRIC_LABELS = AttachmentKey.create(List.class);
124+
private static final AttachmentKey<List<MetricLabel>> CUSTOM_METRIC_LABELS = AttachmentKey.create(List.class);
125125

126126
/**
127127
* attach metrics labels to request
@@ -141,7 +141,7 @@ public static void attachMetricLabels(Request<?> request, List<MetricLabel> labe
141141
* RequestsMetricsCollector adds labels to the collected metrics
142142
*
143143
* @param request
144-
* @param labels
144+
* @param label
145145
*/
146146
public static void attachMetricLabel(Request<?> request, MetricLabel label) {
147147
var labels = new ArrayList<MetricLabel>();
@@ -153,7 +153,7 @@ public static void attachMetricLabel(Request<?> request, MetricLabel label) {
153153
* retrives the metrics labels attached to request
154154
*
155155
* @param request
156-
* @param labels
156+
* @return
157157
*/
158158
public static List<MetricLabel> getMetricLabels(Request<?> request) {
159159
return request.getExchange().getAttachment(CUSTOM_METRIC_LABELS);

core/src/main/java/org/restheart/plugins/PluginsScanner.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -386,17 +386,18 @@ public RuntimeClassGraph() {
386386
.map(path -> path.getFileName().toString())
387387
.toArray(String[]::new);
388388

389-
this.classGraph = new ClassGraph().disableModuleScanning().disableDirScanning()
390-
.disableNestedJarScanning()
391-
.disableRuntimeInvisibleAnnotations()
392-
.addClassLoader(PluginsClassloader.getInstance())
393-
.addClassLoader(ClassLoader.getSystemClassLoader())
394-
.rejectJars(libJars) // avoids scanning lib jars
395-
.enableAnnotationInfo()
396-
.enableMethodInfo()
397-
.enableFieldInfo()
398-
.ignoreFieldVisibility()
399-
.initializeLoadedClasses();
389+
this.classGraph = new ClassGraph()
390+
.disableModuleScanning()
391+
.disableNestedJarScanning()
392+
.disableRuntimeInvisibleAnnotations()
393+
.addClassLoader(PluginsClassloader.getInstance())
394+
.addClassLoader(ClassLoader.getSystemClassLoader())
395+
.rejectJars(libJars) // avoids scanning lib jars
396+
.enableAnnotationInfo()
397+
.enableMethodInfo()
398+
.enableFieldInfo()
399+
.ignoreFieldVisibility()
400+
.initializeLoadedClasses();
400401
}
401402

402403
private long starScanTime = 0;

core/src/main/java/org/restheart/providers/RHConfigurationProvider.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
@RegisterPlugin(name = "rh-config", description = "provides the RESTHeart configuration")
3131
public class RHConfigurationProvider implements Provider<Configuration> {
32+
@Override
3233
public Configuration get(PluginRecord<?> caller) {
3334
return Bootstrapper.getConfiguration();
3435
}

0 commit comments

Comments
 (0)