Browse Source

Formatting

pull/276/head
Decebal Suiu 6 years ago
parent
commit
8feda969a0
  1. 6
      pf4j/src/main/java/org/pf4j/DependencyResolver.java
  2. 1
      pf4j/src/main/java/org/pf4j/Extension.java
  3. 3
      pf4j/src/main/java/org/pf4j/PluginDependency.java
  4. 7
      pf4j/src/main/java/org/pf4j/asm/ExtensionInfo.java
  5. 23
      pf4j/src/main/java/org/pf4j/asm/ExtensionVisitor.java

6
pf4j/src/main/java/org/pf4j/DependencyResolver.java

@ -145,8 +145,7 @@ public class DependencyResolver {
} else {
boolean edgeAdded = false;
for (PluginDependency dependency : dependencies) {
// Don't register optional plugins in the dependency graph
// to avoid automatic disabling of the plugin,
// Don't register optional plugins in the dependency graph to avoid automatic disabling of the plugin,
// if an optional dependency is missing.
if (!dependency.isOptional()) {
edgeAdded = true;
@ -155,8 +154,7 @@ public class DependencyResolver {
}
}
// Register the plugin without dependencies,
// if all of its dependencies are optional.
// Register the plugin without dependencies, if all of its dependencies are optional.
if (!edgeAdded) {
dependenciesGraph.addVertex(pluginId);
dependentsGraph.addVertex(pluginId);

1
pf4j/src/main/java/org/pf4j/Extension.java

@ -59,4 +59,5 @@ public @interface Extension {
* @return plugin IDs, that have to be available in order to load this extension
*/
String[] plugins() default {};
}

3
pf4j/src/main/java/org/pf4j/PluginDependency.java

@ -35,8 +35,7 @@ public class PluginDependency {
}
}
// A dependency is considered as optional,
// if the plugin id ends with a question mark.
// A dependency is considered as optional, if the plugin id ends with a question mark.
this.optional = this.pluginId.endsWith("?");
if (this.optional) {
this.pluginId = this.pluginId.substring(0, this.pluginId.length() - 1);

7
pf4j/src/main/java/org/pf4j/asm/ExtensionInfo.java

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.pf4j.asm;
import org.objectweb.asm.ClassReader;
@ -35,14 +34,16 @@ import java.util.List;
* @author Decebal Suiu
*/
public final class ExtensionInfo {
private static final Logger log = LoggerFactory.getLogger(ExtensionInfo.class);
private final String className;
int ordinal = 0;
List<String> plugins = new ArrayList<>();
List<String> points = new ArrayList<>();
private ExtensionInfo(String className) {
super();
this.className = className;
}
@ -93,10 +94,12 @@ public final class ExtensionInfo {
try (InputStream input = classLoader.getResourceAsStream(className.replace('.', '/') + ".class")) {
ExtensionInfo info = new ExtensionInfo(className);
new ClassReader(input).accept(new ExtensionVisitor(info), ClassReader.SKIP_DEBUG);
return info;
} catch (IOException e) {
log.error(e.getMessage(), e);
return null;
}
}
}

23
pf4j/src/main/java/org/pf4j/asm/ExtensionVisitor.java

@ -13,7 +13,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.pf4j.asm;
import org.objectweb.asm.AnnotationVisitor;
@ -21,6 +20,8 @@ import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.Type;
import org.pf4j.Extension;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Arrays;
@ -38,8 +39,11 @@ import java.util.Arrays;
* @author Decebal Suiu
*/
class ExtensionVisitor extends ClassVisitor {
//private static final Logger log = LoggerFactory.getLogger(ExtensionVisitor.class);
private static final Logger log = LoggerFactory.getLogger(ExtensionVisitor.class);
private static final int ASM_VERSION = Opcodes.ASM7;
private final ExtensionInfo extensionInfo;
ExtensionVisitor(ExtensionInfo extensionInfo) {
@ -63,24 +67,23 @@ class ExtensionVisitor extends ClassVisitor {
@Override
public void visit(String key, Object value) {
//log.debug("Load annotation attribute {} = {} ({})", name, value, value.getClass().getName());
log.debug("Load annotation attribute {} = {} ({})", name, value, value.getClass().getName());
if ("ordinal".equals(name)) {
extensionInfo.ordinal = Integer.parseInt(value.toString());
} else if ("plugins".equals(name)) {
if (value instanceof String) {
//log.debug("found plugin " + value);
log.debug("Found plugin {}", value);
extensionInfo.plugins.add((String) value);
} else if (value instanceof String[]) {
//log.debug("found plugins " + Arrays.toString((String[]) value));
log.debug("Found plugins {}", Arrays.toString((String[]) value));
extensionInfo.plugins.addAll(Arrays.asList((String[]) value));
} else {
//log.debug("found plugin " + value.toString());
log.debug("Found plugin {}", value.toString());
extensionInfo.plugins.add(value.toString());
}
} else if ("points".equals(name)) {
} else {
String pointClassName = ((Type) value).getClassName();
//log.debug("found point " + pointClassName);
log.debug("Found point " + pointClassName);
extensionInfo.points.add(pointClassName);
}
@ -91,6 +94,8 @@ class ExtensionVisitor extends ClassVisitor {
return super.visitArray(name);
}
};
}
}

Loading…
Cancel
Save