/** * A dummy plugin class for {@link ServiceArtifactTestRun}. */ @Plugin public class DummyPlugin extends DummyPluginBase { }
/** * No-op plugin, for CLI testing */ @Plugin(type = "runnable") @Name("FakePlugin") public class FakePlugin implements Runnable { public static final String NAME = "FakePlugin"; @Override public void run() { // do nothing } }
/** * */ @Plugin(type = "udt") @Name("len") public class StringLengthUDT implements UDT { @Override public int apply(String str) { return str.length(); } }
/** * Template plugin for tests */ @Plugin(type = "function") @Name("flip") public class FlipPlugin implements Function<Long, Long> { @Nullable @Override public Long apply(Long input) { return 0 - input; } }
/** * */ @Plugin(type = "function") @Name("len") public class StringLengthFunc implements ToIntFunction<String> { @Override public int applyAsInt(String value) { return value.length(); } }
/** * Template plugin for tests */ @Plugin(type = "callable") @Name("square") public class SquarePlugin implements Callable<Long> { private Config config; @Override public Long call() throws Exception { return config.x * config.x; } public static final class Config extends PluginConfig { @Name("x") private Long x; } }
/** * plugin doesn't actually do anything, just for tests */ @Plugin(type = "invalid") @Name("invalidParams") @Description("This is a Plugin with invalid params for method") public class InvalidPluginMethodParams { @Path("ping") public String callMe(String input, EndpointPluginContext context, Long timestamp) { return "hello"; } }
@Plugin(type = PLUGIN_TYPE) @Name(PLUGIN_NAME) @Description(PLUGIN_DESCRIPTION) public static class AppPlugin { private PConfig pluginConf; public double doSomething() { return pluginConf.y; } } }
/** * plugin should fail deploy. */ @Plugin(type = "invalid") @Name("invalidParamType") @Description("This is a Plugin with invalid params for method") public class InvalidPluginMethodParamType { @Path("ping") public String callMe(String input, Long timestamp) { return "hello"; } }
@Plugin(type = PLUGIN_TYPE) @Name(PLUGIN_NAME) @Description(PLUGIN_DESCRIPTION) public static class AppPlugin { private PConfig pluginConf; public double doSomething() { return pluginConf.y; } }
/** * plugin doesn't actually do anything, just for tests */ @Plugin(type = "dummy") @Name("Plugin1") @Description("This is plugin1") public class Plugin1 { private P1Config config; public static class P1Config extends PluginConfig { private int x; @Macro private String stuff; } }
/** * plugin doesn't actually do anything, just for tests */ @Plugin(type = "interactive") @Name("CallingPlugin") @Description("This is plugin4") public class CallingPlugin { @Path("ping") public String callMe(String input, EndpointPluginContext pluginContext) throws Exception { Class<? extends Callable> plugin3 = pluginContext.loadPluginClass("interactive", "CallablePlugin", PluginProperties.builder().build()); return plugin3.newInstance().call() + " " + input; } }
/** * this plugin should fail deploy */ @Plugin(type = "interactive") @Name("CallablePlugin") @Description("This is plugin with endpoint") public class CallablePlugin implements Callable { @Path("ping") public String callMe(String input) { return "hello"; } @Override public Object call() throws Exception { return "hi"; } }
@Plugin(type = PLUGIN_TYPE) @Name("SingleRequirementPlugin") @Description(PLUGIN_DESCRIPTION) @Requirements(datasetTypes = Table.TYPE) public static class SingleRequirementPlugin { private PConfig pluginConf; public double doSomething() { return pluginConf.y; } }
@Plugin(type = PLUGIN_TYPE) @Name("DuplicateRequirementsPlugin") @Description(PLUGIN_DESCRIPTION) @Requirements(datasetTypes = {Table.TYPE, " DupliCate ", " duplicate "}) public static class DuplicateRequirementsPlugin { private PConfig pluginConf; public double doSomething() { return pluginConf.y; } }
@Plugin(type = PLUGIN_TYPE) @Name("NonTransactionalPlugin") @Description(PLUGIN_DESCRIPTION) @Requirements(datasetTypes = {"req1", "req2"}) public static class NonTransactionalPlugin { private PConfig pluginConf; public double doSomething() { return pluginConf.y; } } }
@Plugin(type = PLUGIN_TYPE) @Name(MULTIPLE_REQUIREMENTS_PLUGIN) @Description(PLUGIN_DESCRIPTION) @Requirements(datasetTypes = {Table.TYPE, KeyValueTable.TYPE}) public static class MultipleRequirementsPlugin { private PConfig pluginConf; public double doSomething() { return pluginConf.y; } }
@Plugin(type = PLUGIN_TYPE) @Name("EmptyRequirementPlugin") @Description(PLUGIN_DESCRIPTION) @Requirements(datasetTypes = {}) public static class EmptyRequirementPlugin { private PConfig pluginConf; public double doSomething() { return pluginConf.y; } }
@Plugin(type = PLUGIN_TYPE) @Name("SingleEmptyRequirementPlugin") @Description(PLUGIN_DESCRIPTION) @Requirements(datasetTypes = "") public static class SingleEmptyRequirementPlugin { private PConfig pluginConf; public double doSomething() { return pluginConf.y; } }
@Plugin(type = PLUGIN_TYPE) @Name("ValidAndEmptyRequirementsPlugin") @Description(PLUGIN_DESCRIPTION) @Requirements(datasetTypes = {Table.TYPE, ""}) public static class ValidAndEmptyRequirementsPlugin { private PConfig pluginConf; public double doSomething() { return pluginConf.y; } }