You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by sv...@apache.org on 2016/02/10 11:49:09 UTC
[2/4] brooklyn-server git commit: Initial work to simplify the rest
server
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LinkWithMetadata.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LinkWithMetadata.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LinkWithMetadata.java
index 1d2af55..a47981c 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LinkWithMetadata.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LinkWithMetadata.java
@@ -20,11 +20,11 @@ package org.apache.brooklyn.rest.domain;
import java.io.Serializable;
import java.util.Map;
+import java.util.Objects;
import javax.annotation.Nullable;
-import org.codehaus.jackson.annotate.JsonProperty;
-
+import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.annotations.Beta;
import com.google.common.collect.ImmutableMap;
@@ -34,55 +34,44 @@ public class LinkWithMetadata implements Serializable {
// TODO remove 'metadata' and promote its contents to be top-level fields; then unmark as Beta
private static final long serialVersionUID = 3146368899471495143L;
-
+
private final String link;
private final Map<String,Object> metadata;
-
+
public LinkWithMetadata(
- @JsonProperty("link") String link,
+ @JsonProperty("link") String link,
@Nullable @JsonProperty("metadata") Map<String,?> metadata) {
this.link = link;
this.metadata = (metadata == null) ? ImmutableMap.<String,Object>of() : ImmutableMap.<String,Object>copyOf(metadata);
}
-
+
public String getLink() {
return link;
}
-
+
public Map<String, Object> getMetadata() {
return metadata;
}
@Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((link == null) ? 0 : link.hashCode());
- result = prime * result + ((metadata == null) ? 0 : metadata.hashCode());
- return result;
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof LinkWithMetadata)) return false;
+ LinkWithMetadata that = (LinkWithMetadata) o;
+ return Objects.equals(link, that.link) &&
+ Objects.equals(metadata, that.metadata);
}
@Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- LinkWithMetadata other = (LinkWithMetadata) obj;
- if (link == null) {
- if (other.link != null)
- return false;
- } else if (!link.equals(other.link))
- return false;
- if (metadata == null) {
- if (other.metadata != null)
- return false;
- } else if (!metadata.equals(other.metadata))
- return false;
- return true;
+ public int hashCode() {
+ return Objects.hash(link, metadata);
}
-
+ @Override
+ public String toString() {
+ return "LinkWithMetadata{" +
+ "link='" + link + '\'' +
+ ", metadata=" + metadata +
+ '}';
+ }
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LocationConfigSummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LocationConfigSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LocationConfigSummary.java
index 6b76c1e..21d5861 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LocationConfigSummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LocationConfigSummary.java
@@ -21,18 +21,17 @@ package org.apache.brooklyn.rest.domain;
import java.net.URI;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
-
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.google.common.collect.ImmutableMap;
public class LocationConfigSummary extends ConfigSummary {
private static final long serialVersionUID = 2232321501735217002L;
-
- @JsonSerialize(include = Inclusion.NON_NULL)
+
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final Map<String, URI> links;
public LocationConfigSummary(
@@ -55,10 +54,23 @@ public class LocationConfigSummary extends ConfigSummary {
}
@Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof LocationConfigSummary)) return false;
+ if (!super.equals(o)) return false;
+ LocationConfigSummary that = (LocationConfigSummary) o;
+ return Objects.equals(links, that.links);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(super.hashCode(), links);
+ }
+
+ @Override
public String toString() {
- return "LocationConfigSummary{"
- + "name='" + getName() + '\''
- + ", type='" + getType() + '\''
- + '}';
+ return "LocationConfigSummary{" +
+ "links=" + links +
+ '}';
}
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LocationSpec.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LocationSpec.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LocationSpec.java
index 8cbb9c5..4738381 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LocationSpec.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LocationSpec.java
@@ -21,14 +21,12 @@ package org.apache.brooklyn.rest.domain;
import java.io.Serializable;
import java.util.Collections;
import java.util.Map;
+import java.util.Objects;
import javax.annotation.Nullable;
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
-
-import com.google.common.base.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.google.common.collect.ImmutableMap;
// FIXME change name, due to confusion with LocationSpec <- no need, as we can kill the class instead soon!
@@ -36,13 +34,13 @@ import com.google.common.collect.ImmutableMap;
public class LocationSpec implements HasName, HasConfig, Serializable {
private static final long serialVersionUID = -1562824224808185255L;
-
- @JsonSerialize(include = Inclusion.NON_NULL)
+
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final String name;
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final String spec;
- @JsonSerialize(include = Inclusion.NON_EMPTY)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
private final Map<String, ?> config;
public static LocationSpec localhost() {
@@ -74,23 +72,24 @@ public class LocationSpec implements HasName, HasConfig, Serializable {
@Override
public boolean equals(Object o) {
if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
+ if (!(o instanceof LocationSpec)) return false;
LocationSpec that = (LocationSpec) o;
- return Objects.equal(name, that.name) && Objects.equal(spec, that.spec) && Objects.equal(config, that.config);
+ return Objects.equals(name, that.name) &&
+ Objects.equals(spec, that.spec) &&
+ Objects.equals(config, that.config);
}
@Override
public int hashCode() {
- return Objects.hashCode(spec, name, config);
+ return Objects.hash(name, spec, config);
}
@Override
public String toString() {
- return "LocationSpec{"
- + "name='" + name + '\''
- + "spec='" + spec + '\''
- + ", config=" + config
- + '}';
+ return "LocationSpec{" +
+ "name='" + name + '\'' +
+ ", spec='" + spec + '\'' +
+ ", config=" + config +
+ '}';
}
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LocationSummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LocationSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LocationSummary.java
index ec41544..4cad32b 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LocationSummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/LocationSummary.java
@@ -22,14 +22,12 @@ import static com.google.common.base.Preconditions.checkNotNull;
import java.net.URI;
import java.util.Map;
+import java.util.Objects;
import javax.annotation.Nullable;
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
-
-import com.google.common.base.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.google.common.collect.ImmutableMap;
public class LocationSummary extends LocationSpec implements HasName, HasId {
@@ -39,7 +37,7 @@ public class LocationSummary extends LocationSpec implements HasName, HasId {
private final String id;
/** only intended for instantiated Locations, not definitions */
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final String type;
private final Map<String, URI> links;
@@ -71,26 +69,26 @@ public class LocationSummary extends LocationSpec implements HasName, HasId {
@Override
public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof LocationSummary)) return false;
if (!super.equals(o)) return false;
LocationSummary that = (LocationSummary) o;
- return Objects.equal(id, that.id);
+ return Objects.equals(id, that.id) &&
+ Objects.equals(type, that.type) &&
+ Objects.equals(links, that.links);
}
@Override
public int hashCode() {
- return Objects.hashCode(id, links);
+ return Objects.hash(super.hashCode(), id, type, links);
}
@Override
public String toString() {
- return "LocationSummary{"
- + "id='" + getId() + '\''
- + "name='" + getName() + '\''
- + "spec='" + getSpec() + '\''
- + "type='" + getType() + '\''
- + ", config=" + getConfig()
- + ", links=" + links
- + '}';
- }
-
+ return "LocationSummary{" +
+ "id='" + id + '\'' +
+ ", type='" + type + '\'' +
+ ", links=" + links +
+ '}';
+ }
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/PolicyConfigSummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/PolicyConfigSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/PolicyConfigSummary.java
index 91bd2f1..dd59507 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/PolicyConfigSummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/PolicyConfigSummary.java
@@ -20,18 +20,17 @@ package org.apache.brooklyn.rest.domain;
import java.net.URI;
import java.util.Map;
+import java.util.Objects;
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
-
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.google.common.collect.ImmutableMap;
public class PolicyConfigSummary extends ConfigSummary {
private static final long serialVersionUID = 4339330833863794513L;
-
- @JsonSerialize(include = Inclusion.NON_NULL)
+
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final Map<String, URI> links;
public PolicyConfigSummary(
@@ -51,10 +50,23 @@ public class PolicyConfigSummary extends ConfigSummary {
}
@Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof PolicyConfigSummary)) return false;
+ if (!super.equals(o)) return false;
+ PolicyConfigSummary that = (PolicyConfigSummary) o;
+ return Objects.equals(links, that.links);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(super.hashCode(), links);
+ }
+
+ @Override
public String toString() {
- return "PolicyConfigSummary{"
- + "name='" + getName() + '\''
- + ", type='" + getType() + '\''
- + '}';
- }
+ return "PolicyConfigSummary{" +
+ "links=" + links +
+ '}';
+ }
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/PolicySummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/PolicySummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/PolicySummary.java
index df6c722..a52ef53 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/PolicySummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/PolicySummary.java
@@ -21,20 +21,19 @@ package org.apache.brooklyn.rest.domain;
import java.io.Serializable;
import java.net.URI;
import java.util.Map;
+import java.util.Objects;
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
-
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.google.common.collect.ImmutableMap;
public class PolicySummary implements HasName, HasId, Serializable {
private static final long serialVersionUID = -5086680835225136768L;
-
+
private final String id;
private final String name;
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final String catalogItemId;
private final Status state;
private final Map<String, URI> links;
@@ -77,32 +76,28 @@ public class PolicySummary implements HasName, HasId, Serializable {
@Override
public boolean equals(Object o) {
if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
+ if (!(o instanceof PolicySummary)) return false;
PolicySummary that = (PolicySummary) o;
-
- if (id != null ? !id.equals(that.id) : that.id != null)
- return false;
- if (name != null ? !name.equals(that.name) : that.name != null)
- return false;
-
- return true;
+ return Objects.equals(id, that.id) &&
+ Objects.equals(name, that.name) &&
+ Objects.equals(catalogItemId, that.catalogItemId) &&
+ state == that.state &&
+ Objects.equals(links, that.links);
}
@Override
public int hashCode() {
- int result = name != null ? name.hashCode() : 0;
- result = 31 * result + (id != null ? id.hashCode() : 0);
- return result;
+ return Objects.hash(id, name, catalogItemId, state, links);
}
@Override
public String toString() {
- return "ConfigSummary{"
- + "name='" + name + '\''
- + ", id='" + id + '\''
- + ", catalogItemId='" + catalogItemId + '\''
- + ", links=" + links
- + '}';
+ return "PolicySummary{" +
+ "id='" + id + '\'' +
+ ", name='" + name + '\'' +
+ ", catalogItemId='" + catalogItemId + '\'' +
+ ", state=" + state +
+ ", links=" + links +
+ '}';
}
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ScriptExecutionSummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ScriptExecutionSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ScriptExecutionSummary.java
index 9f7d5d5..c84573c 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ScriptExecutionSummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ScriptExecutionSummary.java
@@ -19,28 +19,28 @@
package org.apache.brooklyn.rest.domain;
import java.io.Serializable;
+import java.util.Objects;
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
public class ScriptExecutionSummary implements Serializable {
private static final long serialVersionUID = -7707936602991185960L;
-
- @JsonSerialize(include = Inclusion.NON_NULL)
+
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final Object result;
- @JsonSerialize(include = Inclusion.NON_EMPTY)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
private final String problem;
- @JsonSerialize(include = Inclusion.NON_EMPTY)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
private final String stdout;
- @JsonSerialize(include = Inclusion.NON_EMPTY)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
private final String stderr;
public ScriptExecutionSummary(
- @JsonProperty("result") Object result,
- @JsonProperty("problem") String problem,
- @JsonProperty("stdout") String stdout,
+ @JsonProperty("result") Object result,
+ @JsonProperty("problem") String problem,
+ @JsonProperty("stdout") String stdout,
@JsonProperty("stderr") String stderr) {
super();
this.result = result;
@@ -64,4 +64,30 @@ public class ScriptExecutionSummary implements Serializable {
public String getStdout() {
return stdout;
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof ScriptExecutionSummary)) return false;
+ ScriptExecutionSummary that = (ScriptExecutionSummary) o;
+ return Objects.equals(result, that.result) &&
+ Objects.equals(problem, that.problem) &&
+ Objects.equals(stdout, that.stdout) &&
+ Objects.equals(stderr, that.stderr);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(result, problem, stdout, stderr);
+ }
+
+ @Override
+ public String toString() {
+ return "ScriptExecutionSummary{" +
+ "result=" + result +
+ ", problem='" + problem + '\'' +
+ ", stdout='" + stdout + '\'' +
+ ", stderr='" + stderr + '\'' +
+ '}';
+ }
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/SensorSummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/SensorSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/SensorSummary.java
index 890030e..11a4d2f 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/SensorSummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/SensorSummary.java
@@ -21,22 +21,21 @@ package org.apache.brooklyn.rest.domain;
import java.io.Serializable;
import java.net.URI;
import java.util.Map;
+import java.util.Objects;
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
-
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.google.common.collect.ImmutableMap;
public class SensorSummary implements HasName, Serializable {
private static final long serialVersionUID = 1154308408351165426L;
-
+
private final String name;
private final String type;
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final String description;
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final Map<String, URI> links;
public SensorSummary(
@@ -70,38 +69,26 @@ public class SensorSummary implements HasName, Serializable {
@Override
public boolean equals(Object o) {
if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
+ if (!(o instanceof SensorSummary)) return false;
SensorSummary that = (SensorSummary) o;
-
- if (description != null ? !description.equals(that.description) : that.description != null)
- return false;
- if (links != null ? !links.equals(that.links) : that.links != null)
- return false;
- if (name != null ? !name.equals(that.name) : that.name != null)
- return false;
- if (type != null ? !type.equals(that.type) : that.type != null)
- return false;
-
- return true;
+ return Objects.equals(name, that.name) &&
+ Objects.equals(type, that.type) &&
+ Objects.equals(description, that.description) &&
+ Objects.equals(links, that.links);
}
@Override
public int hashCode() {
- int result = name != null ? name.hashCode() : 0;
- result = 31 * result + (type != null ? type.hashCode() : 0);
- result = 31 * result + (description != null ? description.hashCode() : 0);
- result = 31 * result + (links != null ? links.hashCode() : 0);
- return result;
+ return Objects.hash(name, type, description, links);
}
@Override
public String toString() {
- return "SensorSummary{"
- + "name='" + name + '\''
- + ", type='" + type + '\''
- + ", description='" + description + '\''
- + ", links=" + links
- + '}';
+ return "SensorSummary{" +
+ "name='" + name + '\'' +
+ ", type='" + type + '\'' +
+ ", description='" + description + '\'' +
+ ", links=" + links +
+ '}';
}
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/TaskSummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/TaskSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/TaskSummary.java
index e4ce145..6de384e 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/TaskSummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/TaskSummary.java
@@ -24,21 +24,21 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import org.apache.brooklyn.util.collections.Jsonya;
-import org.codehaus.jackson.annotate.JsonIgnore;
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
public class TaskSummary implements HasId, Serializable {
private static final long serialVersionUID = 4637850742127078158L;
-
+
private final String id;
private final String displayName;
private final String entityId;
@@ -52,38 +52,38 @@ public class TaskSummary implements HasId, Serializable {
private final String currentStatus;
private final Object result;
- private final boolean isError;
- private final boolean isCancelled;
+ private final boolean error;
+ private final boolean cancelled;
private final List<LinkWithMetadata> children;
private final LinkWithMetadata submittedByTask;
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final LinkWithMetadata blockingTask;
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final String blockingDetails;
private final String detailedStatus;
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final Map<String, LinkWithMetadata> streams;
private final Map<String, URI> links;
public TaskSummary(
- @JsonProperty("id") String id,
- @JsonProperty("displayName") String displayName,
- @JsonProperty("description") String description,
- @JsonProperty("entityId") String entityId,
- @JsonProperty("entityDisplayName") String entityDisplayName,
+ @JsonProperty("id") String id,
+ @JsonProperty("displayName") String displayName,
+ @JsonProperty("description") String description,
+ @JsonProperty("entityId") String entityId,
+ @JsonProperty("entityDisplayName") String entityDisplayName,
@JsonProperty("tags") Set<Object> tags,
- @JsonProperty("submitTimeUtc") Long submitTimeUtc,
- @JsonProperty("startTimeUtc") Long startTimeUtc,
- @JsonProperty("endTimeUtc") Long endTimeUtc,
- @JsonProperty("currentStatus") String currentStatus,
- @JsonProperty("result") Object result,
- @JsonProperty("isError") boolean isError,
- @JsonProperty("isCancelled") boolean isCancelled,
+ @JsonProperty("submitTimeUtc") Long submitTimeUtc,
+ @JsonProperty("startTimeUtc") Long startTimeUtc,
+ @JsonProperty("endTimeUtc") Long endTimeUtc,
+ @JsonProperty("currentStatus") String currentStatus,
+ @JsonProperty("result") Object result,
+ @JsonProperty("error") boolean error,
+ @JsonProperty("cancelled") boolean cancelled,
@JsonProperty("children") List<LinkWithMetadata> children,
@JsonProperty("submittedByTask") LinkWithMetadata submittedByTask,
@JsonProperty("blockingTask") LinkWithMetadata blockingTask,
@@ -102,8 +102,8 @@ public class TaskSummary implements HasId, Serializable {
this.endTimeUtc = endTimeUtc;
this.currentStatus = currentStatus;
this.result = result;
- this.isError = isError;
- this.isCancelled = isCancelled;
+ this.error = error;
+ this.cancelled = cancelled;
this.children = children;
this.blockingDetails = blockingDetails;
this.blockingTask = blockingTask;
@@ -168,26 +168,26 @@ public class TaskSummary implements HasId, Serializable {
return result;
}
- /** @deprecated since 0.7.0 use {@link #isError} instead. */
+ /** @deprecated since 0.7.0 use {@link #error} instead. */
@Deprecated
@JsonIgnore
public boolean getIsError() {
- return isError;
+ return error;
}
- /** @deprecated since 0.7.0 use {@link #isCancelled} instead. */
+ /** @deprecated since 0.7.0 use {@link #cancelled} instead. */
@Deprecated
@JsonIgnore
public boolean getIsCancelled() {
- return isCancelled;
+ return cancelled;
}
public boolean isError() {
- return isError;
+ return error;
}
public boolean isCancelled() {
- return isCancelled;
+ return cancelled;
}
public List<LinkWithMetadata> getChildren() {
@@ -219,13 +219,60 @@ public class TaskSummary implements HasId, Serializable {
}
@Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof TaskSummary)) return false;
+ TaskSummary that = (TaskSummary) o;
+ return error == that.error &&
+ cancelled == that.cancelled &&
+ Objects.equals(id, that.id) &&
+ Objects.equals(displayName, that.displayName) &&
+ Objects.equals(entityId, that.entityId) &&
+ Objects.equals(entityDisplayName, that.entityDisplayName) &&
+ Objects.equals(description, that.description) &&
+ Objects.equals(tags, that.tags) &&
+ Objects.equals(submitTimeUtc, that.submitTimeUtc) &&
+ Objects.equals(startTimeUtc, that.startTimeUtc) &&
+ Objects.equals(endTimeUtc, that.endTimeUtc) &&
+ Objects.equals(currentStatus, that.currentStatus) &&
+ Objects.equals(result, that.result) &&
+ Objects.equals(children, that.children) &&
+ Objects.equals(submittedByTask, that.submittedByTask) &&
+ Objects.equals(blockingTask, that.blockingTask) &&
+ Objects.equals(blockingDetails, that.blockingDetails) &&
+ Objects.equals(detailedStatus, that.detailedStatus) &&
+ Objects.equals(streams, that.streams) &&
+ Objects.equals(links, that.links);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, displayName, entityId, entityDisplayName, description, tags, submitTimeUtc, startTimeUtc, endTimeUtc, currentStatus, result, error, cancelled, children, submittedByTask, blockingTask, blockingDetails, detailedStatus, streams, links);
+ }
+
+ @Override
public String toString() {
- return "TaskSummary{"
- + "id='" + id + '\''
- + ", displayName='" + displayName + '\''
- + ", currentStatus='" + currentStatus + '\''
- + ", startTimeUtc='" + startTimeUtc + '\''
- + ", endTimeUtc='" + endTimeUtc + '\''
- + '}';
- }
+ return "TaskSummary{" +
+ "id='" + id + '\'' +
+ ", displayName='" + displayName + '\'' +
+ ", entityId='" + entityId + '\'' +
+ ", entityDisplayName='" + entityDisplayName + '\'' +
+ ", description='" + description + '\'' +
+ ", tags=" + tags +
+ ", submitTimeUtc=" + submitTimeUtc +
+ ", startTimeUtc=" + startTimeUtc +
+ ", endTimeUtc=" + endTimeUtc +
+ ", currentStatus='" + currentStatus + '\'' +
+ ", result=" + result +
+ ", error=" + error +
+ ", cancelled=" + cancelled +
+ ", children=" + children +
+ ", submittedByTask=" + submittedByTask +
+ ", blockingTask=" + blockingTask +
+ ", blockingDetails='" + blockingDetails + '\'' +
+ ", detailedStatus='" + detailedStatus + '\'' +
+ ", streams=" + streams +
+ ", links=" + links +
+ '}';
+ }
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/UsageStatistic.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/UsageStatistic.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/UsageStatistic.java
index 4e04613..d7d4b7f 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/UsageStatistic.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/UsageStatistic.java
@@ -22,19 +22,15 @@ import static com.google.common.base.Preconditions.checkNotNull;
import java.io.Serializable;
import java.util.Map;
+import java.util.Objects;
-import org.codehaus.jackson.annotate.JsonProperty;
-
-import com.google.common.base.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.ImmutableMap;
-/**
- * @author Adam Lowe
- */
public class UsageStatistic implements HasId, Serializable {
-
+
private static final long serialVersionUID = 5701414937003064442L;
-
+
private final Status status;
private final String id;
private final String applicationId;
@@ -44,12 +40,12 @@ public class UsageStatistic implements HasId, Serializable {
private final Map<String,String> metadata;
public UsageStatistic(
- @JsonProperty("status") Status status,
- @JsonProperty("id") String id,
+ @JsonProperty("status") Status status,
+ @JsonProperty("id") String id,
@JsonProperty("applicationId") String applicationId,
@JsonProperty("start") String start,
@JsonProperty("end") String end,
- @JsonProperty("duration") long duration,
+ @JsonProperty("duration") long duration,
@JsonProperty("metadata") Map<String, String> metadata) {
this.status = checkNotNull(status, "status");
this.id = checkNotNull(id, "id");
@@ -92,20 +88,20 @@ public class UsageStatistic implements HasId, Serializable {
@Override
public boolean equals(Object o) {
if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
- UsageStatistic statistic = (UsageStatistic) o;
-
- return Objects.equal(status, statistic.status) &&
- Objects.equal(id, statistic.id) &&
- Objects.equal(applicationId, statistic.applicationId) &&
- Objects.equal(start, statistic.start) &&
- Objects.equal(end, statistic.end) &&
- Objects.equal(metadata, statistic.metadata);
+ if (!(o instanceof UsageStatistic)) return false;
+ UsageStatistic that = (UsageStatistic) o;
+ return duration == that.duration &&
+ status == that.status &&
+ Objects.equals(id, that.id) &&
+ Objects.equals(applicationId, that.applicationId) &&
+ Objects.equals(start, that.start) &&
+ Objects.equals(end, that.end) &&
+ Objects.equals(metadata, that.metadata);
}
@Override
public int hashCode() {
- return Objects.hashCode(status, id, applicationId, start, end, metadata);
+ return Objects.hash(status, id, applicationId, start, end, duration, metadata);
}
@Override
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/UsageStatistics.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/UsageStatistics.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/UsageStatistics.java
index 97b09cd..cef3316 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/UsageStatistics.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/UsageStatistics.java
@@ -22,20 +22,16 @@ import java.io.Serializable;
import java.net.URI;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
-import org.codehaus.jackson.annotate.JsonProperty;
-
-import com.google.common.base.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
-/**
- * @author Aled Sage
- */
public class UsageStatistics implements Serializable {
private static final long serialVersionUID = -1842301852728290967L;
-
+
// TODO populate links with /apps endpoint to link to /usage/applications/{id}, to make it more
// RESTy
@@ -58,19 +54,23 @@ public class UsageStatistics implements Serializable {
@Override
public boolean equals(Object o) {
- if (!(o instanceof UsageStatistics))
- return false;
- UsageStatistics other = (UsageStatistics) o;
- return Objects.equal(statistics, other.statistics);
+ if (this == o) return true;
+ if (!(o instanceof UsageStatistics)) return false;
+ UsageStatistics that = (UsageStatistics) o;
+ return Objects.equals(statistics, that.statistics) &&
+ Objects.equals(links, that.links);
}
@Override
public int hashCode() {
- return Objects.hashCode(statistics);
+ return Objects.hash(statistics, links);
}
@Override
public String toString() {
- return "UsageStatistics{" + "statistics=" + statistics + ", links=" + links + '}';
+ return "UsageStatistics{" +
+ "statistics=" + statistics +
+ ", links=" + links +
+ '}';
}
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/VersionSummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/VersionSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/VersionSummary.java
index 6ebf5e7..3e36cb5 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/VersionSummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/VersionSummary.java
@@ -23,16 +23,17 @@ import static com.google.common.base.Preconditions.checkNotNull;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
+import java.util.Objects;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import org.codehaus.jackson.annotate.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonProperty;
public class VersionSummary implements Serializable {
private static final long serialVersionUID = 7275038546963638540L;
-
+
private final String version;
private final String buildSha1;
private final String buildBranch;
@@ -77,4 +78,29 @@ public class VersionSummary implements Serializable {
return features;
}
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof VersionSummary)) return false;
+ VersionSummary that = (VersionSummary) o;
+ return Objects.equals(version, that.version) &&
+ Objects.equals(buildSha1, that.buildSha1) &&
+ Objects.equals(buildBranch, that.buildBranch) &&
+ Objects.equals(features, that.features);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(version, buildSha1, buildBranch, features);
+ }
+
+ @Override
+ public String toString() {
+ return "VersionSummary{" +
+ "version='" + version + '\'' +
+ ", buildSha1='" + buildSha1 + '\'' +
+ ", buildBranch='" + buildBranch + '\'' +
+ ", features=" + features +
+ '}';
+ }
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/webapp/WEB-INF/web.xml b/rest/rest-api/src/main/webapp/WEB-INF/web.xml
index 06331bd..bab259b 100644
--- a/rest/rest-api/src/main/webapp/WEB-INF/web.xml
+++ b/rest/rest-api/src/main/webapp/WEB-INF/web.xml
@@ -83,14 +83,14 @@
<!-- load our REST API jersey resources -->
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
- <param-value>io.swagger.jaxrs.listing;org.codehaus.jackson.jaxrs;org.apache.brooklyn.rest.resources;org.apache.brooklyn.rest.util</param-value>
+ <param-value>io.swagger.jaxrs.listing;com.fasterxml.jackson.jaxrs;org.apache.brooklyn.rest.resources;org.apache.brooklyn.rest.util</param-value>
</init-param>
<!-- install Jackson and turn on pojo/json serialization (could add org.codehaus.jackson.jaxrs
above but seems cleaner to pull in just the class -->
<init-param>
<param-name>com.sun.jersey.config.property.classnames</param-name>
- <param-value>org.codehaus.jackson.jaxrs.JacksonJsonProvider</param-value>
+ <param-value>com.fasterxml.jackson.jaxrs.JacksonJsonProvider</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/AbstractDomainTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/AbstractDomainTest.java b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/AbstractDomainTest.java
new file mode 100644
index 0000000..dc1131d
--- /dev/null
+++ b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/AbstractDomainTest.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.brooklyn.rest.domain;
+
+import java.io.IOException;
+
+import org.testng.annotations.Test;
+
+import static org.apache.brooklyn.rest.util.RestApiTestUtils.asJson;
+import static org.apache.brooklyn.rest.util.RestApiTestUtils.fromJson;
+import static org.apache.brooklyn.rest.util.RestApiTestUtils.jsonFixture;
+import static org.testng.Assert.assertEquals;
+
+public abstract class AbstractDomainTest {
+
+ protected abstract String getPath();
+ protected abstract Object getDomainObject();
+
+ @Test
+ public void testSerializeToJSON() throws IOException {
+ assertEquals(asJson(getDomainObject()), jsonFixture(getPath()));
+ }
+
+ @Test
+ public void testDeserializeFromJSON() throws IOException {
+ assertEquals(fromJson(jsonFixture(getPath()), getDomainObject().getClass()), getDomainObject());
+ }
+}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/ApiErrorTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/ApiErrorTest.java b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/ApiErrorTest.java
index 3b370a0..f73bd30 100644
--- a/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/ApiErrorTest.java
+++ b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/ApiErrorTest.java
@@ -25,19 +25,27 @@ import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse;
import java.io.IOException;
+import java.net.URI;
import org.testng.annotations.Test;
import org.testng.util.Strings;
-public class ApiErrorTest {
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
- @Test
- public void testSerializeApiError() throws IOException {
- ApiError error = ApiError.builder()
+public class ApiErrorTest extends AbstractDomainTest {
+
+ @Override
+ protected String getPath() {
+ return "fixtures/api-error-basic.json";
+ }
+
+ @Override
+ protected Object getDomainObject() {
+ return ApiError.builder()
.message("explanatory message")
.details("accompanying details")
.build();
- assertEquals(asJson(error), jsonFixture("fixtures/api-error-basic.json"));
}
@Test
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/ApplicationSpecTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/ApplicationSpecTest.java b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/ApplicationSpecTest.java
index a04d074..b2690d6 100644
--- a/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/ApplicationSpecTest.java
+++ b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/ApplicationSpecTest.java
@@ -18,36 +18,23 @@
*/
package org.apache.brooklyn.rest.domain;
-import static org.apache.brooklyn.rest.util.RestApiTestUtils.asJson;
-import static org.apache.brooklyn.rest.util.RestApiTestUtils.fromJson;
-import static org.apache.brooklyn.rest.util.RestApiTestUtils.jsonFixture;
-import static org.testng.Assert.assertEquals;
-
-import java.io.IOException;
-
-import org.testng.annotations.Test;
-
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
-public class ApplicationSpecTest {
+public class ApplicationSpecTest extends AbstractDomainTest {
- final EntitySpec entitySpec = new EntitySpec("Vanilla Java App", "org.apache.brooklyn.entity.java.VanillaJavaApp",
- ImmutableMap.<String, String>of(
- "initialSize", "1",
- "creationScriptUrl", "http://my.brooklyn.io/storage/foo.sql"));
-
- final ApplicationSpec applicationSpec = ApplicationSpec.builder().name("myapp")
- .entities(ImmutableSet.of(entitySpec)).locations(ImmutableSet.of("/v1/locations/1"))
- .build();
-
- @Test
- public void testSerializeToJSON() throws IOException {
- assertEquals(asJson(applicationSpec), jsonFixture("fixtures/application-spec.json"));
+ @Override
+ protected String getPath() {
+ return "fixtures/application-spec.json";
}
- @Test
- public void testDeserializeFromJSON() throws IOException {
- assertEquals(fromJson(jsonFixture("fixtures/application-spec.json"), ApplicationSpec.class), applicationSpec);
+ @Override
+ protected Object getDomainObject() {
+ EntitySpec entitySpec = new EntitySpec("Vanilla Java App", "org.apache.brooklyn.entity.java.VanillaJavaApp",
+ ImmutableMap.of("initialSize", "1", "creationScriptUrl", "http://my.brooklyn.io/storage/foo.sql"));
+ return ApplicationSpec.builder().name("myapp")
+ .entities(ImmutableSet.of(entitySpec)).locations(ImmutableSet.of("/v1/locations/1"))
+ .build();
}
+
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EffectorSummaryTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EffectorSummaryTest.java b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EffectorSummaryTest.java
index affce4e..71cb64d 100644
--- a/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EffectorSummaryTest.java
+++ b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EffectorSummaryTest.java
@@ -18,36 +18,27 @@
*/
package org.apache.brooklyn.rest.domain;
-import static org.apache.brooklyn.rest.util.RestApiTestUtils.asJson;
-import static org.apache.brooklyn.rest.util.RestApiTestUtils.fromJson;
-import static org.apache.brooklyn.rest.util.RestApiTestUtils.jsonFixture;
-import static org.testng.Assert.assertEquals;
-
-import java.io.IOException;
import java.net.URI;
-import org.testng.annotations.Test;
-
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
-public class EffectorSummaryTest {
+public class EffectorSummaryTest extends AbstractDomainTest {
- final EffectorSummary effectorSummary = new EffectorSummary(
- "stop",
- "void",
- ImmutableSet.<EffectorSummary.ParameterSummary<?>>of(),
- "Effector description",
- ImmutableMap.of(
- "self", URI.create("/v1/applications/redis-app/entities/redis-ent/effectors/stop")));
-
- @Test
- public void testSerializeToJSON() throws IOException {
- assertEquals(asJson(effectorSummary), jsonFixture("fixtures/effector-summary.json"));
+ @Override
+ protected String getPath() {
+ return "fixtures/effector-summary.json";
}
- @Test
- public void testDeserializeFromJSON() throws IOException {
- assertEquals(fromJson(jsonFixture("fixtures/effector-summary.json"), EffectorSummary.class), effectorSummary);
+ @Override
+ protected Object getDomainObject() {
+ return new EffectorSummary(
+ "stop",
+ "void",
+ ImmutableSet.<EffectorSummary.ParameterSummary<?>>of(),
+ "Effector description",
+ ImmutableMap.of(
+ "self", URI.create("/v1/applications/redis-app/entities/redis-ent/effectors/stop")));
}
+
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EntitySpecTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EntitySpecTest.java b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EntitySpecTest.java
index a61cfd5..1beb078 100644
--- a/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EntitySpecTest.java
+++ b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EntitySpecTest.java
@@ -18,7 +18,6 @@
*/
package org.apache.brooklyn.rest.domain;
-import static org.apache.brooklyn.rest.util.RestApiTestUtils.asJson;
import static org.apache.brooklyn.rest.util.RestApiTestUtils.fromJson;
import static org.apache.brooklyn.rest.util.RestApiTestUtils.jsonFixture;
import static org.testng.Assert.assertEquals;
@@ -27,24 +26,23 @@ import java.io.IOException;
import org.testng.annotations.Test;
-public class EntitySpecTest {
+public class EntitySpecTest extends AbstractDomainTest {
- final EntitySpec entitySpec = new EntitySpec("Vanilla Java App", "org.apache.brooklyn.entity.java.VanillaJavaApp");
-
- @Test
- public void testSerializeToJSON() throws IOException {
- assertEquals(asJson(new EntitySpec[] { entitySpec }), jsonFixture("fixtures/entity.json"));
+ @Override
+ protected String getPath() {
+ return "fixtures/entity.json";
}
- @Test
- public void testDeserializeFromJSON() throws IOException {
- assertEquals(fromJson(jsonFixture("fixtures/entity.json"), EntitySpec[].class), new EntitySpec[] { entitySpec });
+ @Override
+ protected Object getDomainObject() {
+ EntitySpec entitySpec = new EntitySpec("Vanilla Java App", "org.apache.brooklyn.entity.java.VanillaJavaApp");
+ return new EntitySpec[] { entitySpec };
}
@Test
public void testDeserializeFromJSONOnlyWithType() throws IOException {
EntitySpec actual = fromJson(jsonFixture("fixtures/entity-only-type.json"), EntitySpec.class);
- assertEquals(actual.getName(), actual.getType());
+ assertEquals(actual.getType(), "org.apache.brooklyn.entity.java.VanillaJavaApp");
assertEquals(actual.getConfig().size(), 0);
}
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EntitySummaryTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EntitySummaryTest.java b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EntitySummaryTest.java
index 7f20d7b..2d39cc9 100644
--- a/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EntitySummaryTest.java
+++ b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/EntitySummaryTest.java
@@ -18,24 +18,21 @@
*/
package org.apache.brooklyn.rest.domain;
-import static org.apache.brooklyn.rest.util.RestApiTestUtils.asJson;
-import static org.apache.brooklyn.rest.util.RestApiTestUtils.fromJson;
-import static org.apache.brooklyn.rest.util.RestApiTestUtils.jsonFixture;
-import static org.testng.Assert.assertEquals;
-
-import java.io.IOException;
import java.net.URI;
import java.util.Map;
-import org.testng.annotations.Test;
-
import com.google.common.collect.Maps;
-public class EntitySummaryTest {
+public class EntitySummaryTest extends AbstractDomainTest {
+
+ @Override
+ protected String getPath() {
+ return "fixtures/entity-summary.json";
+ }
- static final Map<String, URI> links;
- static {
- links = Maps.newLinkedHashMap();
+ @Override
+ protected Object getDomainObject() {
+ Map<String, URI> links = Maps.newLinkedHashMap();
links.put("self", URI.create("/v1/applications/tesr/entities/zQsqdXzi"));
links.put("catalog", URI.create("/v1/catalog/entities/org.apache.brooklyn.entity.webapp.tomcat.TomcatServer"));
links.put("application", URI.create("/v1/applications/tesr"));
@@ -43,19 +40,9 @@ public class EntitySummaryTest {
links.put("effectors", URI.create("fixtures/effector-summary-list.json"));
links.put("sensors", URI.create("fixtures/sensor-summary-list.json"));
links.put("activities", URI.create("fixtures/task-summary-list.json"));
- }
-
- static final EntitySummary entitySummary = new EntitySummary("zQsqdXzi", "MyTomcat",
- "org.apache.brooklyn.entity.webapp.tomcat.TomcatServer", null, links);
-
- @Test
- public void testSerializeToJSON() throws IOException {
- assertEquals(asJson(entitySummary), jsonFixture("fixtures/entity-summary.json"));
- }
- @Test
- public void testDeserializeFromJSON() throws IOException {
- assertEquals(fromJson(jsonFixture("fixtures/entity-summary.json"), EntitySummary.class), entitySummary);
+ return new EntitySummary("zQsqdXzi", "MyTomcat",
+ "org.apache.brooklyn.entity.webapp.tomcat.TomcatServer", null, links);
}
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/LocationSummaryTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/LocationSummaryTest.java b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/LocationSummaryTest.java
new file mode 100644
index 0000000..6279546
--- /dev/null
+++ b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/LocationSummaryTest.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.brooklyn.rest.domain;
+
+import java.net.URI;
+import java.util.Map;
+
+import com.google.common.collect.Maps;
+
+public class LocationSummaryTest extends AbstractDomainTest {
+
+ @Override
+ protected String getPath() {
+ return "fixtures/location-summary.json";
+ }
+
+ @Override
+ protected Object getDomainObject() {
+ Map<String, URI> links = Maps.newLinkedHashMap();
+ links.put("self", URI.create("/v1/locations/123"));
+
+ return new LocationSummary("123", "localhost", "localhost", null, null, links);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/VersionSummaryTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/VersionSummaryTest.java b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/VersionSummaryTest.java
index bd4c2f0..7bed51b 100644
--- a/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/VersionSummaryTest.java
+++ b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/domain/VersionSummaryTest.java
@@ -19,44 +19,31 @@
package org.apache.brooklyn.rest.domain;
-import static org.apache.brooklyn.rest.util.RestApiTestUtils.asJson;
-import static org.apache.brooklyn.rest.util.RestApiTestUtils.fromJson;
-import static org.apache.brooklyn.rest.util.RestApiTestUtils.jsonFixture;
-import static org.testng.Assert.assertEquals;
-
-import org.testng.annotations.Test;
-
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
-public class VersionSummaryTest {
-
- BrooklynFeatureSummary features = new BrooklynFeatureSummary(
- "Sample Brooklyn Project com.acme.sample:brooklyn-sample v0.1.0-SNAPSHOT",
- "com.acme.sample.brooklyn-sample",
- "0.1.0.SNAPSHOT",
- "523305000",
- ImmutableMap.of("Brooklyn-Feature-Build-Id", "e0fee1adf795c84eec4735f039503eb18d9c35cc")
- );
- VersionSummary summary = new VersionSummary(
- "0.7.0-SNAPSHOT",
- "cb4f0a3af2f5042222dd176edc102bfa64e7e0b5",
- "versions",
- ImmutableList.of(features)
- );
+public class VersionSummaryTest extends AbstractDomainTest {
- @Test
- public void testSerialize() {
- assertEquals(asJson(summary), jsonFixture("fixtures/server-version.json"));
+ @Override
+ protected String getPath() {
+ return "fixtures/server-version.json";
}
- @Test
- public void testDeserialize() {
- VersionSummary deserialized = fromJson(jsonFixture("fixtures/server-version.json"), VersionSummary.class);
- assertEquals(deserialized.getBuildSha1(), summary.getBuildSha1());
- assertEquals(deserialized.getFeatures().size(), 1);
- assertEquals(deserialized.getFeatures().get(0).getSymbolicName(), features.getSymbolicName());
- assertEquals(deserialized.getFeatures().get(0).getAdditionalData().get("Brooklyn-Feature-Build-Id"), "e0fee1adf795c84eec4735f039503eb18d9c35cc");
+ @Override
+ protected Object getDomainObject() {
+ BrooklynFeatureSummary features = new BrooklynFeatureSummary(
+ "Sample Brooklyn Project com.acme.sample:brooklyn-sample v0.1.0-SNAPSHOT",
+ "com.acme.sample.brooklyn-sample",
+ "0.1.0.SNAPSHOT",
+ "523305000",
+ ImmutableMap.of("Brooklyn-Feature-Build-Id", "e0fee1adf795c84eec4735f039503eb18d9c35cc")
+ );
+ return new VersionSummary(
+ "0.7.0-SNAPSHOT",
+ "cb4f0a3af2f5042222dd176edc102bfa64e7e0b5",
+ "versions",
+ ImmutableList.of(features)
+ );
}
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/test/java/org/apache/brooklyn/rest/util/RestApiTestUtils.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/test/java/org/apache/brooklyn/rest/util/RestApiTestUtils.java b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/util/RestApiTestUtils.java
index 379cdfc..36ad69c 100644
--- a/rest/rest-api/src/test/java/org/apache/brooklyn/rest/util/RestApiTestUtils.java
+++ b/rest/rest-api/src/test/java/org/apache/brooklyn/rest/util/RestApiTestUtils.java
@@ -22,8 +22,9 @@ import java.io.InputStream;
import org.apache.brooklyn.util.exceptions.Exceptions;
import org.apache.brooklyn.util.stream.Streams;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.type.TypeReference;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
public class RestApiTestUtils {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-client/pom.xml
----------------------------------------------------------------------
diff --git a/rest/rest-client/pom.xml b/rest/rest-client/pom.xml
index f3fa883..d133518 100644
--- a/rest/rest-client/pom.xml
+++ b/rest/rest-client/pom.xml
@@ -56,7 +56,7 @@
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jackson-provider</artifactId>
+ <artifactId>resteasy-jackson2-provider</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-client/src/test/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/rest/rest-client/src/test/webapp/WEB-INF/web.xml b/rest/rest-client/src/test/webapp/WEB-INF/web.xml
index 83d76c0..38b637a 100644
--- a/rest/rest-client/src/test/webapp/WEB-INF/web.xml
+++ b/rest/rest-client/src/test/webapp/WEB-INF/web.xml
@@ -84,7 +84,7 @@
<param-value>
org.apache.brooklyn.rest.apidoc.ApidocHelpMessageBodyWriter;
org.apache.brooklyn.rest.util.FormMapProvider;
- org.codehaus.jackson.jaxrs.JacksonJsonProvider;
+ com.fasterxml.jackson.jaxrs.JacksonJsonProvider;
org.apache.brooklyn.rest.resources.ActivityResource;
org.apache.brooklyn.rest.resources.ApidocResource;
org.apache.brooklyn.rest.resources.ApplicationResource;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/pom.xml
----------------------------------------------------------------------
diff --git a/rest/rest-server/pom.xml b/rest/rest-server/pom.xml
index fdee3a5..9b36f69 100644
--- a/rest/rest-server/pom.xml
+++ b/rest/rest-server/pom.xml
@@ -7,9 +7,9 @@
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
-
+
http://www.apache.org/licenses/LICENSE-2.0
-
+
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -41,11 +41,6 @@
</dependency>
<dependency>
<groupId>org.apache.brooklyn</groupId>
- <artifactId>brooklyn-core</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.brooklyn</groupId>
<artifactId>brooklyn-camp</artifactId>
<version>${project.version}</version>
</dependency>
@@ -100,14 +95,12 @@
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
- <groupId>com.sun.jersey</groupId>
- <artifactId>jersey-json</artifactId>
- <exclusions>
- <exclusion>
- <groupId>com.sun.xml.bind</groupId>
- <artifactId>jaxb-impl</artifactId>
- </exclusion>
- </exclusions>
+ <groupId>com.fasterxml.jackson.datatype</groupId>
+ <artifactId>jackson-datatype-guava</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.jaxrs</groupId>
+ <artifactId>jackson-jaxrs-json-provider</artifactId>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
@@ -133,23 +126,7 @@
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
</dependency>
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-core-asl</artifactId>
- </dependency>
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- </dependency>
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-jaxrs</artifactId>
- </dependency>
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-xc</artifactId>
- </dependency>
-
+
<dependency>
<groupId>org.apache.brooklyn</groupId>
<artifactId>brooklyn-test-support</artifactId>
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/AbstractBrooklynRestResource.java
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/AbstractBrooklynRestResource.java b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/AbstractBrooklynRestResource.java
index a8cc909..9057a2c 100644
--- a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/AbstractBrooklynRestResource.java
+++ b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/AbstractBrooklynRestResource.java
@@ -33,7 +33,8 @@ import org.apache.brooklyn.rest.util.json.BrooklynJacksonJsonProvider;
import org.apache.brooklyn.util.core.task.Tasks;
import org.apache.brooklyn.util.guava.Maybe;
import org.apache.brooklyn.util.time.Duration;
-import org.codehaus.jackson.map.ObjectMapper;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
public abstract class AbstractBrooklynRestResource implements ManagementContextInjectable {
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java
index 22a4502..d9c38b6 100644
--- a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java
+++ b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/resources/ApplicationResource.java
@@ -64,6 +64,7 @@ import org.apache.brooklyn.entity.group.AbstractGroup;
import org.apache.brooklyn.rest.api.ApplicationApi;
import org.apache.brooklyn.rest.domain.ApplicationSpec;
import org.apache.brooklyn.rest.domain.ApplicationSummary;
+import org.apache.brooklyn.rest.domain.EntityDetail;
import org.apache.brooklyn.rest.domain.EntitySummary;
import org.apache.brooklyn.rest.domain.TaskSummary;
import org.apache.brooklyn.rest.filter.HaHotStateRequired;
@@ -79,15 +80,14 @@ import org.apache.brooklyn.util.exceptions.UserFacingException;
import org.apache.brooklyn.util.guava.Maybe;
import org.apache.brooklyn.util.javalang.JavaClassNames;
import org.apache.brooklyn.util.text.Strings;
-import org.codehaus.jackson.JsonNode;
-import org.codehaus.jackson.node.ArrayNode;
-import org.codehaus.jackson.node.ObjectNode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.base.Throwables;
import com.google.common.collect.FluentIterable;
+import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
@HaHotStateRequired
public class ApplicationResource extends AbstractBrooklynRestResource implements ApplicationApi {
@@ -97,127 +97,88 @@ public class ApplicationResource extends AbstractBrooklynRestResource implements
@Context
private UriInfo uriInfo;
- /** @deprecated since 0.6.0 use {@link #fetch(String)} (with slightly different, but better semantics) */
- @Deprecated
- @Override
- public JsonNode applicationTree() {
- ArrayNode apps = mapper().createArrayNode();
- for (Application application : mgmt().getApplications())
- apps.add(recursiveTreeFromEntity(application));
- return apps;
- }
-
- private ObjectNode entityBase(Entity entity) {
- ObjectNode aRoot = mapper().createObjectNode();
- aRoot.put("name", entity.getDisplayName());
- aRoot.put("id", entity.getId());
- aRoot.put("type", entity.getEntityType().getName());
-
+ private EntityDetail fromEntity(Entity entity) {
Boolean serviceUp = entity.getAttribute(Attributes.SERVICE_UP);
- if (serviceUp!=null) aRoot.put("serviceUp", serviceUp);
Lifecycle serviceState = entity.getAttribute(Attributes.SERVICE_STATE_ACTUAL);
- if (serviceState!=null) aRoot.put("serviceState", serviceState.toString());
String iconUrl = entity.getIconUrl();
if (iconUrl!=null) {
if (brooklyn().isUrlServerSideAndSafe(iconUrl))
// route to server if it is a server-side url
iconUrl = EntityTransformer.entityUri(entity)+"/icon";
- aRoot.put("iconUrl", iconUrl);
}
- return aRoot;
- }
-
- private JsonNode recursiveTreeFromEntity(Entity entity) {
- ObjectNode aRoot = entityBase(entity);
-
- if (!entity.getChildren().isEmpty())
- aRoot.put("children", childEntitiesRecursiveAsArray(entity));
-
- return aRoot;
- }
-
- // TODO when applicationTree can be removed, replace this with an extension to EntitySummary (without links)
- private JsonNode fromEntity(Entity entity) {
- ObjectNode aRoot = entityBase(entity);
-
- aRoot.put("applicationId", entity.getApplicationId());
-
- if (entity.getParent()!=null) {
- aRoot.put("parentId", entity.getParent().getId());
+ List<EntitySummary> children = Lists.newArrayList();
+ if (!entity.getChildren().isEmpty()) {
+ for (Entity child : entity.getChildren()) {
+ children.add(fromEntity(child));
+ }
}
- if (!entity.groups().isEmpty())
- aRoot.put("groupIds", entitiesIdAsArray(entity.groups()));
+ String parentId = null;
+ if (entity.getParent()!= null) {
+ parentId = entity.getParent().getId();
+ }
- if (!entity.getChildren().isEmpty())
- aRoot.put("children", entitiesIdAndNameAsArray(entity.getChildren()));
+ List<String> groupIds = Lists.newArrayList();
+ if (!entity.groups().isEmpty()) {
+ groupIds.addAll(entitiesIdAsArray(entity.groups()));
+ }
+ List<Map<String, String>> members = Lists.newArrayList();
if (entity instanceof Group) {
// use attribute instead of method in case it is read-only
- Collection<Entity> members = entity.getAttribute(AbstractGroup.GROUP_MEMBERS);
- if (members!=null && !members.isEmpty())
- aRoot.put("members", entitiesIdAndNameAsArray(members));
+ Collection<Entity> memberEntities = entity.getAttribute(AbstractGroup.GROUP_MEMBERS);
+ if (memberEntities != null && !memberEntities.isEmpty())
+ members.addAll(entitiesIdAndNameAsList(memberEntities));
}
- return aRoot;
+ return new EntityDetail(entity.getId(), parentId, entity.getDisplayName(),
+ entity.getEntityType().getName(), serviceUp, serviceState, iconUrl, entity.getCatalogItemId(),
+ children, groupIds, members);
}
- private ArrayNode childEntitiesRecursiveAsArray(Entity entity) {
- ArrayNode node = mapper().createArrayNode();
- for (Entity e : entity.getChildren()) {
- if (Entitlements.isEntitled(mgmt().getEntitlementManager(), Entitlements.SEE_ENTITY, entity)) {
- node.add(recursiveTreeFromEntity(e));
- }
- }
- return node;
- }
-
- private ArrayNode entitiesIdAndNameAsArray(Collection<? extends Entity> entities) {
- ArrayNode node = mapper().createArrayNode();
+ private List<Map<String, String>> entitiesIdAndNameAsList(Collection<? extends Entity> entities) {
+ List<Map<String, String>> members = Lists.newArrayList();
for (Entity entity : entities) {
if (Entitlements.isEntitled(mgmt().getEntitlementManager(), Entitlements.SEE_ENTITY, entity)) {
- ObjectNode holder = mapper().createObjectNode();
- holder.put("id", entity.getId());
- holder.put("name", entity.getDisplayName());
- node.add(holder);
+ members.add(ImmutableMap.of("id", entity.getId(), "name", entity.getDisplayName()));
}
}
- return node;
+ return members;
}
- private ArrayNode entitiesIdAsArray(Iterable<? extends Entity> entities) {
- ArrayNode node = mapper().createArrayNode();
+ private List<String> entitiesIdAsArray(Iterable<? extends Entity> entities) {
+ List<String> ids = Lists.newArrayList();
for (Entity entity : entities) {
if (Entitlements.isEntitled(mgmt().getEntitlementManager(), Entitlements.SEE_ENTITY, entity)) {
- node.add(entity.getId());
+ ids.add(entity.getId());
}
}
- return node;
+ return ids;
}
@Override
- public JsonNode fetch(String entityIds) {
- Map<String, JsonNode> jsonEntitiesById = MutableMap.of();
- for (Application application : mgmt().getApplications())
- jsonEntitiesById.put(application.getId(), fromEntity(application));
+ public List<EntityDetail> fetch(String entityIds) {
+
+ List<EntityDetail> entitySummaries = Lists.newArrayList();
+ for (Entity application : mgmt().getApplications()) {
+ entitySummaries.add(fromEntity(application));
+ }
+
if (entityIds != null) {
for (String entityId: entityIds.split(",")) {
Entity entity = mgmt().getEntityManager().getEntity(entityId.trim());
while (entity != null && entity.getParent() != null) {
if (Entitlements.isEntitled(mgmt().getEntitlementManager(), Entitlements.SEE_ENTITY, entity)) {
- jsonEntitiesById.put(entity.getId(), fromEntity(entity));
+ entitySummaries.add(fromEntity(entity));
}
entity = entity.getParent();
}
}
}
-
- ArrayNode result = mapper().createArrayNode();
- for (JsonNode n: jsonEntitiesById.values()) result.add(n);
- return result;
+ return entitySummaries;
}
@Override
@@ -280,7 +241,7 @@ public class ApplicationResource extends AbstractBrooklynRestResource implements
log.debug("Creating app from yaml:\n{}", yaml);
EntitySpec<? extends Application> spec = createEntitySpecForApplication(yaml);
-
+
if (!Entitlements.isEntitled(mgmt().getEntitlementManager(), Entitlements.DEPLOY_APPLICATION, spec)) {
throw WebResourceUtils.unauthorized("User '%s' is not authorized to start application %s",
Entitlements.getEntitlementContext().user(), yaml);
@@ -361,7 +322,7 @@ public class ApplicationResource extends AbstractBrooklynRestResource implements
@Override
public Response delete(String application) {
Application app = brooklyn().getApplication(application);
- if (!Entitlements.isEntitled(mgmt().getEntitlementManager(), Entitlements.INVOKE_EFFECTOR, Entitlements.EntityAndItem.of(app,
+ if (!Entitlements.isEntitled(mgmt().getEntitlementManager(), Entitlements.INVOKE_EFFECTOR, Entitlements.EntityAndItem.of(app,
StringAndArgument.of(Entitlements.LifecycleEffectors.DELETE, null)))) {
throw WebResourceUtils.unauthorized("User '%s' is not authorized to delete application %s",
Entitlements.getEntitlementContext().user(), app);
@@ -385,7 +346,7 @@ public class ApplicationResource extends AbstractBrooklynRestResource implements
}
}
}
-
+
private void checkApplicationTypesAreValid(ApplicationSpec applicationSpec) {
String appType = applicationSpec.getType();
if (appType != null) {
@@ -410,7 +371,7 @@ public class ApplicationResource extends AbstractBrooklynRestResource implements
typeV.get();
return;
}
-
+
// not found, try classloading
try {
brooklyn().getCatalogClassLoader().loadClass(type);
@@ -420,7 +381,7 @@ public class ApplicationResource extends AbstractBrooklynRestResource implements
}
log.info(JavaClassNames.simpleClassName(subType)+" type '{}' not defined in catalog but is on classpath; continuing", type);
}
-
+
private void checkEntityTypeIsValid(String type) {
checkSpecTypeIsValid(type, Entity.class);
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/WebResourceUtils.java
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/WebResourceUtils.java b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/WebResourceUtils.java
index 1a74a33..da72c6f 100644
--- a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/WebResourceUtils.java
+++ b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/WebResourceUtils.java
@@ -27,7 +27,6 @@ import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import org.codehaus.jackson.map.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.brooklyn.core.catalog.internal.CatalogUtils;
@@ -37,6 +36,7 @@ import org.apache.brooklyn.util.exceptions.Exceptions;
import org.apache.brooklyn.util.net.Urls;
import org.apache.brooklyn.util.text.StringEscapes.JavaStringEscapes;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.ImmutableMap;
import com.sun.jersey.spi.container.ContainerResponse;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/BidiSerialization.java
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/BidiSerialization.java b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/BidiSerialization.java
index d53e100..93cae3f 100644
--- a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/BidiSerialization.java
+++ b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/BidiSerialization.java
@@ -25,15 +25,14 @@ import org.apache.brooklyn.api.entity.Entity;
import org.apache.brooklyn.api.location.Location;
import org.apache.brooklyn.api.mgmt.ManagementContext;
import org.apache.brooklyn.api.objs.BrooklynObject;
-import org.codehaus.jackson.JsonGenerationException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonParser;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.map.DeserializationContext;
-import org.codehaus.jackson.map.JsonDeserializer;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializerProvider;
-import org.codehaus.jackson.map.module.SimpleModule;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.module.SimpleModule;
public class BidiSerialization {
@@ -65,14 +64,14 @@ public class BidiSerialization {
protected class Serializer extends JsonSerializer<T> {
@Override
- public void serialize(T value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
+ public void serialize(T value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
AbstractWithManagementContextSerialization.this.serialize(value, jgen, provider);
}
}
protected class Deserializer extends JsonDeserializer<T> {
@Override
- public T deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
+ public T deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
return AbstractWithManagementContextSerialization.this.deserialize(jp, ctxt);
}
}
@@ -95,27 +94,27 @@ public class BidiSerialization {
return deserializer;
}
- public void serialize(T value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
+ public void serialize(T value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
jgen.writeStartObject();
writeBody(value, jgen, provider);
jgen.writeEndObject();
}
- protected void writeBody(T value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException, JsonProcessingException {
+ protected void writeBody(T value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
jgen.writeStringField("type", value.getClass().getCanonicalName());
customWriteBody(value, jgen, provider);
}
- public abstract void customWriteBody(T value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException;
+ public abstract void customWriteBody(T value, JsonGenerator jgen, SerializerProvider provider) throws IOException;
- public T deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
+ public T deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
@SuppressWarnings("unchecked")
Map<Object,Object> values = jp.readValueAs(Map.class);
String type = (String) values.get("type");
return customReadBody(type, values, jp, ctxt);
}
- protected abstract T customReadBody(String type, Map<Object, Object> values, JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException;
+ protected abstract T customReadBody(String type, Map<Object, Object> values, JsonParser jp, DeserializationContext ctxt) throws IOException;
public void install(SimpleModule module) {
module.addSerializer(type, serializer);
@@ -126,9 +125,9 @@ public class BidiSerialization {
public static class ManagementContextSerialization extends AbstractWithManagementContextSerialization<ManagementContext> {
public ManagementContextSerialization(ManagementContext mgmt) { super(ManagementContext.class, mgmt); }
@Override
- public void customWriteBody(ManagementContext value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {}
+ public void customWriteBody(ManagementContext value, JsonGenerator jgen, SerializerProvider provider) throws IOException {}
@Override
- protected ManagementContext customReadBody(String type, Map<Object, Object> values, JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
+ protected ManagementContext customReadBody(String type, Map<Object, Object> values, JsonParser jp, DeserializationContext ctxt) throws IOException {
return mgmt;
}
}
@@ -138,16 +137,16 @@ public class BidiSerialization {
super(type, mgmt);
}
@Override
- protected void writeBody(T value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException, JsonProcessingException {
+ protected void writeBody(T value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
jgen.writeStringField("type", type.getCanonicalName());
customWriteBody(value, jgen, provider);
}
@Override
- public void customWriteBody(T value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
+ public void customWriteBody(T value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
jgen.writeStringField("id", value.getId());
}
@Override
- protected T customReadBody(String type, Map<Object, Object> values, JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException {
+ protected T customReadBody(String type, Map<Object, Object> values, JsonParser jp, DeserializationContext ctxt) throws IOException {
return getInstanceFromId((String) values.get("id"));
}
protected abstract T getInstanceFromId(String id);