killbill-memoizeit

Details

diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/PluginInfoJson.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/PluginInfoJson.java
index 5957022..e1bdd1e 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/PluginInfoJson.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/json/PluginInfoJson.java
@@ -40,16 +40,20 @@ public class PluginInfoJson {
 
     private final Set<PluginServiceInfoJson> services;
 
+    private final Boolean isSelectedForStart;
+
     @JsonCreator
     public PluginInfoJson(@JsonProperty("bundleSymbolicName") final String bundleSymbolicName,
                           @JsonProperty("pluginName") final String pluginName,
                           @JsonProperty("version") final String version,
                           @JsonProperty("state") final String state,
+                          @JsonProperty("isSelectedForStart") final Boolean isSelectedForStart,
                           @JsonProperty("services") final Set<PluginServiceInfoJson> services) {
         this.bundleSymbolicName = bundleSymbolicName;
         this.pluginName = pluginName;
         this.version = version;
         this.state = state;
+        this.isSelectedForStart = isSelectedForStart;
         this.services = services;
     }
 
@@ -58,6 +62,7 @@ public class PluginInfoJson {
              input.getPluginName(),
              input.getVersion(),
              input.getPluginState().name(),
+             input.isSelectedForStart(),
              ImmutableSet.copyOf(Iterables.transform(input.getServices(), new Function<PluginServiceInfo, PluginServiceInfoJson>() {
                  @Override
                  public PluginServiceInfoJson apply(final PluginServiceInfo input) {
@@ -82,6 +87,11 @@ public class PluginInfoJson {
         return state;
     }
 
+    @JsonProperty("isSelectedForStart")
+    public Boolean isSelectedForStart() {
+        return isSelectedForStart;
+    }
+
     public Set<PluginServiceInfoJson> getServices() {
         return services;
     }
diff --git a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/NodesInfoResource.java b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/NodesInfoResource.java
index 0686221..5d92b8d 100644
--- a/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/NodesInfoResource.java
+++ b/jaxrs/src/main/java/org/killbill/billing/jaxrs/resources/NodesInfoResource.java
@@ -120,6 +120,7 @@ public class NodesInfoResource extends JaxRsResourceBase {
                                                   input.getPluginName(),
                                                   input.getVersion(),
                                                   input.getPluginState().name(),
+                                                  input.isSelectedForStart(),
                                                   servicesJson);
                     }
                 }));

pom.xml 2(+1 -1)

diff --git a/pom.xml b/pom.xml
index 8d58ac4..71ef422 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>killbill-oss-parent</artifactId>
         <groupId>org.kill-bill.billing</groupId>
-        <version>0.72</version>
+        <version>0.74</version>
     </parent>
     <artifactId>killbill</artifactId>
     <version>0.15.11-SNAPSHOT</version>
diff --git a/util/src/main/java/org/killbill/billing/util/nodes/DefaultKillbillNodesApi.java b/util/src/main/java/org/killbill/billing/util/nodes/DefaultKillbillNodesApi.java
index ddb6a38..13bcb98 100644
--- a/util/src/main/java/org/killbill/billing/util/nodes/DefaultKillbillNodesApi.java
+++ b/util/src/main/java/org/killbill/billing/util/nodes/DefaultKillbillNodesApi.java
@@ -111,7 +111,7 @@ public class DefaultKillbillNodesApi implements KillbillNodesApi {
         NodeInfoModelJson nodeInfoJson = mapper.deserializeNodeInfo(nodeInfo.getNodeInfo());
 
         final Iterable<PluginInfo> rawPluginInfo = pluginInfoApi.getPluginsInfo();
-        final List<PluginInfo> pluginInfo = rawPluginInfo.iterator().hasNext() ? ImmutableList.<PluginInfo>copyOf(rawPluginInfo) : ImmutableList.<PluginInfo>of();
+        final List<PluginInfo> pluginInfos = rawPluginInfo.iterator().hasNext() ? ImmutableList.<PluginInfo>copyOf(rawPluginInfo) : ImmutableList.<PluginInfo>of();
 
         final NodeInfoModelJson updatedNodeInfoJson = new NodeInfoModelJson(CreatorName.get(),
                                                                             nodeInfoJson.getBootTime(),
@@ -121,7 +121,7 @@ public class DefaultKillbillNodesApi implements KillbillNodesApi {
                                                                             nodeInfoJson.getPluginApiVersion(),
                                                                             nodeInfoJson.getCommonVersion(),
                                                                             nodeInfoJson.getPlatformVersion(),
-                                                                            ImmutableList.copyOf(Iterables.transform(pluginInfo, new Function<PluginInfo, PluginInfoModelJson>() {
+                                                                            ImmutableList.copyOf(Iterables.transform(pluginInfos, new Function<PluginInfo, PluginInfoModelJson>() {
                                                                                 @Override
                                                                                 public PluginInfoModelJson apply(final PluginInfo input) {
                                                                                     return new PluginInfoModelJson(input);
diff --git a/util/src/main/java/org/killbill/billing/util/nodes/DefaultNodeInfo.java b/util/src/main/java/org/killbill/billing/util/nodes/DefaultNodeInfo.java
index 53afd81..941a9b6 100644
--- a/util/src/main/java/org/killbill/billing/util/nodes/DefaultNodeInfo.java
+++ b/util/src/main/java/org/killbill/billing/util/nodes/DefaultNodeInfo.java
@@ -94,8 +94,7 @@ public class DefaultNodeInfo implements NodeInfo {
         return Iterables.transform(plugins, new Function<PluginInfoModelJson, PluginInfo>() {
             @Override
             public PluginInfo apply(final PluginInfoModelJson input) {
-
-                return new DefaultPluginInfo(input.getBundleSymbolicName(), input.getPluginName(), input.getVersion(), input.getState(), toPluginServiceInfo(input.getServices()));
+                return new DefaultPluginInfo(input.getBundleSymbolicName(), input.getPluginName(), input.getVersion(), input.getState(), input.isSelectedForStart(), toPluginServiceInfo(input.getServices()));
             }
         });
     }
diff --git a/util/src/main/java/org/killbill/billing/util/nodes/json/PluginInfoModelJson.java b/util/src/main/java/org/killbill/billing/util/nodes/json/PluginInfoModelJson.java
index bd48b20..487c83e 100644
--- a/util/src/main/java/org/killbill/billing/util/nodes/json/PluginInfoModelJson.java
+++ b/util/src/main/java/org/killbill/billing/util/nodes/json/PluginInfoModelJson.java
@@ -41,16 +41,20 @@ public class PluginInfoModelJson {
 
     private final Set<PluginServiceInfoModelJson> services;
 
+    private final Boolean isSelectedForStart;
+
     @JsonCreator
     public PluginInfoModelJson(@JsonProperty("bundleSymbolicName") final String bundleSymbolicName,
                                @JsonProperty("pluginName") final String pluginName,
                                @JsonProperty("version") final String version,
                                @JsonProperty("state") final PluginState state,
+                               @JsonProperty("isSelectedForStart") final Boolean isSelectedForStart,
                                @JsonProperty("services") final Set<PluginServiceInfoModelJson> services) {
         this.bundleSymbolicName = bundleSymbolicName;
         this.pluginName = pluginName;
         this.version = version;
         this.state = state;
+        this.isSelectedForStart = isSelectedForStart;
         this.services = services;
     }
 
@@ -59,6 +63,7 @@ public class PluginInfoModelJson {
              input.getPluginName(),
              input.getVersion(),
              input.getPluginState(),
+             input.isSelectedForStart(),
              ImmutableSet.copyOf(Iterables.transform(input.getServices(), new Function<PluginServiceInfo, PluginServiceInfoModelJson>() {
                  @Override
                  public PluginServiceInfoModelJson apply(final PluginServiceInfo input) {
@@ -83,6 +88,11 @@ public class PluginInfoModelJson {
         return state;
     }
 
+    @JsonProperty("isSelectedForStart")
+    public boolean isSelectedForStart() {
+        return isSelectedForStart;
+    }
+
     public Set<PluginServiceInfoModelJson> getServices() {
         return services;
     }
@@ -104,6 +114,9 @@ public class PluginInfoModelJson {
         if (state != null ? !state.equals(that.state) : that.state != null) {
             return false;
         }
+        if (isSelectedForStart != that.isSelectedForStart) {
+            return false;
+        }
         if (pluginName != null ? !pluginName.equals(that.pluginName) : that.pluginName != null) {
             return false;
         }
diff --git a/util/src/test/java/org/killbill/billing/util/nodes/TestNodeInfoMapper.java b/util/src/test/java/org/killbill/billing/util/nodes/TestNodeInfoMapper.java
index d9e48fb..8d4ab12 100644
--- a/util/src/test/java/org/killbill/billing/util/nodes/TestNodeInfoMapper.java
+++ b/util/src/test/java/org/killbill/billing/util/nodes/TestNodeInfoMapper.java
@@ -48,7 +48,7 @@ public class TestNodeInfoMapper extends UtilTestSuiteNoDB {
         services1.add(svc);
 
         final List<PluginInfoModelJson> pluginInfos = new ArrayList<PluginInfoModelJson>();
-        final PluginInfoModelJson info1 = new PluginInfoModelJson("sym1", "name1", "vers1", PluginState.STOPPED, services1);
+        final PluginInfoModelJson info1 = new PluginInfoModelJson("sym1", "name1", "vers1", PluginState.STOPPED, true, services1);
         pluginInfos.add(info1);
         final NodeInfoModelJson input = new NodeInfoModelJson("nodeName", clock.getUTCNow(), clock.getUTCNow(), "1.0", "1.0", "1.0", "1.0", "1.0", pluginInfos);