Browse Source

Improve DevelopmentPluginClasspath according #195 (#219)

pull/221/head
Decebal Suiu 7 years ago committed by GitHub
parent
commit
291d1b8b88
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 32
      pf4j/src/main/java/org/pf4j/DevelopmentPluginClasspath.java
  2. 48
      pf4j/src/main/java/org/pf4j/PluginClasspath.java

32
pf4j/src/main/java/org/pf4j/DevelopmentPluginClasspath.java

@ -16,17 +16,39 @@
package org.pf4j;
/**
* Overwrite classes directories to {@code target/classes} and lib directories to {@code target/lib}.
* It's a compound {@link PluginClasspath} ({@link #MAVEN} + {@link #GRADLE} + {@link #KOTLIN})
* used in development mode ({@link RuntimeMode#DEVELOPMENT}).
*
* @author Decebal Suiu
*/
public class DevelopmentPluginClasspath extends PluginClasspath {
public DevelopmentPluginClasspath() {
super();
/**
* The development plugin classpath for <a href="https://maven.apache.org">Maven</a>.
* The classes directory is {@code target/classes} and the lib directory is {@code target/lib}.
*/
public static final PluginClasspath MAVEN = new PluginClasspath().addClassesDirectories("target/classes").addLibDirectories("target/lib");
addClassesDirectories("target/classes");
addLibDirectories("target/lib");
/**
* The development plugin classpath for <a href="https://gradle.org">Gradle</a>.
* The classes directories are {@code build/classes/java/main, build/resources/main}.
*/
public static final PluginClasspath GRADLE = new PluginClasspath().addClassesDirectories("build/classes/java/main", "build/resources/main");
/**
* The development plugin classpath for <a href="https://kotlinlang.org">Kotlin</a>.
* The classes directories are {@code build/classes/kotlin/main", build/resources/main, build/tmp/kapt3/classes/main}.
*/
public static final PluginClasspath KOTLIN = new PluginClasspath().addClassesDirectories("build/classes/kotlin/main", "build/resources/main", "build/tmp/kapt3/classes/main");
public DevelopmentPluginClasspath() {
addClassesDirectories(MAVEN.getClassesDirectories());
addClassesDirectories(GRADLE.getClassesDirectories());
addClassesDirectories(KOTLIN.getClassesDirectories());
addLibDirectories(MAVEN.getLibDirectories());
addLibDirectories(GRADLE.getLibDirectories());
addLibDirectories(KOTLIN.getLibDirectories());
}
}

48
pf4j/src/main/java/org/pf4j/PluginClasspath.java

@ -15,9 +15,10 @@
*/
package org.pf4j;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
/**
* The classpath of the plugin.
@ -27,28 +28,35 @@ import java.util.List;
*/
public class PluginClasspath {
private List<String> classesDirectories;
private List<String> libDirectories;
private Set<String> classesDirectories = new HashSet<>();
private Set<String> libDirectories = new HashSet<>();
public PluginClasspath() {
classesDirectories = new ArrayList<>();
libDirectories = new ArrayList<>();
}
public Set<String> getClassesDirectories() {
return classesDirectories;
}
public List<String> getClassesDirectories() {
return classesDirectories;
}
public PluginClasspath addClassesDirectories(String... classesDirectories) {
return addClassesDirectories(Arrays.asList(classesDirectories));
}
public void addClassesDirectories(String... classesDirectories) {
this.classesDirectories.addAll(Arrays.asList(classesDirectories));
}
public PluginClasspath addClassesDirectories(Collection<String> classesDirectories) {
this.classesDirectories.addAll(classesDirectories);
public List<String> getLibDirectories() {
return libDirectories;
}
return this;
}
public void addLibDirectories(String... libDirectories) {
this.libDirectories.addAll(Arrays.asList(libDirectories));
}
public Set<String> getLibDirectories() {
return libDirectories;
}
public PluginClasspath addLibDirectories(String... libDirectories) {
return addLibDirectories(Arrays.asList(libDirectories));
}
public PluginClasspath addLibDirectories(Collection<String> libDirectories) {
this.libDirectories.addAll(libDirectories);
return this;
}
}

Loading…
Cancel
Save