private void createBootNodeInfo(final boolean skipPlugins) throws JsonProcessingException { final DateTime bootTime = clock.getUTCNow(); final Iterable<PluginInfo> rawPluginInfo = skipPlugins ? ImmutableList.<PluginInfo>of() : pluginInfoApi.getPluginsInfo(); final List<PluginInfo> pluginInfo = rawPluginInfo.iterator().hasNext() ? ImmutableList.<PluginInfo>copyOf(rawPluginInfo) : ImmutableList.<PluginInfo>of(); final String kbVersion = org.killbill.billing.util.nodes.KillbillVersions.getKillbillVersion(); final String kbApiVersion = org.killbill.billing.util.nodes.KillbillVersions.getApiVersion(); final String kbPluginApiVersion = org.killbill.billing.util.nodes.KillbillVersions.getPluginApiVersion(); final String kbPlatformVersion = org.killbill.billing.util.nodes.KillbillVersions.getPlatformVersion(); final String kbCommonVersion = org.killbill.billing.util.nodes.KillbillVersions.getCommonVersion(); final NodeInfoModelJson nodeInfo = new NodeInfoModelJson(CreatorName.get(), bootTime, bootTime, kbVersion, kbApiVersion, kbPluginApiVersion, kbCommonVersion, kbPlatformVersion, ImmutableList.copyOf(Iterables.transform(pluginInfo, new Function<PluginInfo, PluginInfoModelJson>() { @Override public PluginInfoModelJson apply(final PluginInfo input) { return new PluginInfoModelJson(input); } }))); final String nodeInfoValue = mapper.serializeNodeInfo(nodeInfo); final NodeInfoModelDao bootNodeInfo = new NodeInfoModelDao(CreatorName.get(), clock.getUTCNow(), nodeInfoValue); nodeInfoDao.create(bootNodeInfo); } }
@Subscribe public void handleExternalEvents(final ExtBusEvent extBusEvent) { if (extBusEvent.getEventType().equals(ExtBusEventType.BROADCAST_SERVICE)) { final String metadata = extBusEvent.getMetaData(); try { final BroadcastMetadata broadcastMetadata = objectMapper.readValue(metadata, BroadcastMetadata.class); final PluginNodeCommandMetadata nodeCommandMetadata = (PluginNodeCommandMetadata) nodeInfoMapper.deserializeNodeCommand(broadcastMetadata.getEventJson(), broadcastMetadata.getCommandType()); ((FakePluginFinder) pluginFinder).addPlugin(createPluginConfig(nodeCommandMetadata)); pluginsInfoApi.notifyOfStateChanged(PluginStateChange.NEW_VERSION, nodeCommandMetadata.getPluginKey(), nodeCommandMetadata.getPluginName(), nodeCommandMetadata.getPluginVersion(), PluginLanguage.JAVA); } catch (IOException e) { throw new RuntimeException(e); } } } }
@TimedResource @GET @Produces(APPLICATION_JSON) @ApiOperation(value = "Retrieve the list of registered plugins", response = PluginInfoJson.class, responseContainer = "List") public Response getPluginsInfo(@javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException { return Response.status(Status.OK).entity(ImmutableList.copyOf(Iterables.transform(pluginsInfoApi.getPluginsInfo(), new Function<PluginInfo, PluginInfoJson>() { @Override public PluginInfoJson apply(final PluginInfo input) { return new PluginInfoJson(input); } }))).build(); }
private void createBootNodeInfo(final boolean skipPlugins) throws JsonProcessingException { final DateTime bootTime = clock.getUTCNow(); final Iterable<PluginInfo> rawPluginInfo = skipPlugins ? ImmutableList.<PluginInfo>of() : pluginInfoApi.getPluginsInfo(); final List<PluginInfo> pluginInfo = rawPluginInfo.iterator().hasNext() ? ImmutableList.<PluginInfo>copyOf(rawPluginInfo) : ImmutableList.<PluginInfo>of(); final String kbVersion = org.killbill.billing.util.nodes.KillbillVersions.getKillbillVersion(); final String kbApiVersion = org.killbill.billing.util.nodes.KillbillVersions.getApiVersion(); final String kbPluginApiVersion = org.killbill.billing.util.nodes.KillbillVersions.getPluginApiVersion(); final String kbPlatformVersion = org.killbill.billing.util.nodes.KillbillVersions.getPlatformVersion(); final String kbCommonVersion = org.killbill.billing.util.nodes.KillbillVersions.getCommonVersion(); final NodeInfoModelJson nodeInfo = new NodeInfoModelJson(CreatorName.get(), bootTime, bootTime, kbVersion, kbApiVersion, kbPluginApiVersion, kbCommonVersion, kbPlatformVersion, ImmutableList.copyOf(Iterables.transform(pluginInfo, new Function<PluginInfo, PluginInfoModelJson>() { @Override public PluginInfoModelJson apply(final PluginInfo input) { return new PluginInfoModelJson(input); } }))); final String nodeInfoValue = mapper.serializeNodeInfo(nodeInfo); final NodeInfoModelDao bootNodeInfo = new NodeInfoModelDao(CreatorName.get(), clock.getUTCNow(), nodeInfoValue); nodeInfoDao.create(bootNodeInfo); } }