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:08 UTC
[1/4] brooklyn-server git commit: Initial work to simplify the rest
server
Repository: brooklyn-server
Updated Branches:
refs/heads/master 46ae22385 -> 5c8bb4ebb
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/BrooklynJacksonJsonProvider.java
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/BrooklynJacksonJsonProvider.java b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/BrooklynJacksonJsonProvider.java
index 053e8b4..f6d2a08 100644
--- a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/BrooklynJacksonJsonProvider.java
+++ b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/BrooklynJacksonJsonProvider.java
@@ -27,18 +27,17 @@ import org.apache.brooklyn.config.ConfigKey;
import org.apache.brooklyn.core.config.ConfigKeys;
import org.apache.brooklyn.core.internal.BrooklynProperties;
import org.apache.brooklyn.core.mgmt.ManagementContextInjectable;
-import org.apache.brooklyn.core.mgmt.internal.ManagementContextInternal;
import org.apache.brooklyn.core.server.BrooklynServiceAttributes;
import org.apache.brooklyn.rest.util.OsgiCompat;
-import org.codehaus.jackson.Version;
-import org.codehaus.jackson.jaxrs.JacksonJsonProvider;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.SerializationConfig;
-import org.codehaus.jackson.map.module.SimpleModule;
-import org.codehaus.jackson.map.type.TypeFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.fasterxml.jackson.core.Version;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.datatype.guava.GuavaModule;
+import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
+
public class BrooklynJacksonJsonProvider extends JacksonJsonProvider implements ManagementContextInjectable {
private static final Logger log = LoggerFactory.getLogger(BrooklynJacksonJsonProvider.class);
@@ -107,7 +106,7 @@ public class BrooklynJacksonJsonProvider extends JacksonJsonProvider implements
mapper = newPrivateObjectMapper(mgmt);
log.debug("Storing new ObjectMapper against "+mgmt+" because no ServletContext available: "+mapper);
- ((ManagementContextInternal)mgmt).getBrooklynProperties().put(key, mapper);
+ ((BrooklynProperties)mgmt.getConfig()).put(key, mapper);
return mapper;
}
}
@@ -137,25 +136,21 @@ public class BrooklynJacksonJsonProvider extends JacksonJsonProvider implements
throw new IllegalStateException("No management context available for creating ObjectMapper");
}
- SerializationConfig defaultConfig = new ObjectMapper().getSerializationConfig();
- SerializationConfig sc = new SerializationConfig(
- defaultConfig.getClassIntrospector() /* ObjectMapper.DEFAULT_INTROSPECTOR */,
- defaultConfig.getAnnotationIntrospector() /* ObjectMapper.DEFAULT_ANNOTATION_INTROSPECTOR */,
- new PossiblyStrictPreferringFieldsVisibilityChecker(),
- null, null, TypeFactory.defaultInstance(), null);
-
ConfigurableSerializerProvider sp = new ConfigurableSerializerProvider();
sp.setUnknownTypeSerializer(new ErrorAndToStringUnknownTypeSerializer());
- ObjectMapper mapper = new ObjectMapper(null, sp, null, sc, null);
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.setSerializerProvider(sp);
+ mapper.setVisibility(new PossiblyStrictPreferringFieldsVisibilityChecker());
+
SimpleModule mapperModule = new SimpleModule("Brooklyn", new Version(0, 0, 0, "ignored"));
new BidiSerialization.ManagementContextSerialization(mgmt).install(mapperModule);
new BidiSerialization.EntitySerialization(mgmt).install(mapperModule);
new BidiSerialization.LocationSerialization(mgmt).install(mapperModule);
- mapperModule.addSerializer(new MultimapSerializer());
- mapper.registerModule(mapperModule);
+ mapper.registerModule(new GuavaModule()).registerModule(mapperModule);
+
return mapper;
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/ConfigurableSerializerProvider.java
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/ConfigurableSerializerProvider.java b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/ConfigurableSerializerProvider.java
index 3078524..a84c695 100644
--- a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/ConfigurableSerializerProvider.java
+++ b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/ConfigurableSerializerProvider.java
@@ -21,66 +21,62 @@ package org.apache.brooklyn.rest.util.json;
import java.io.IOException;
import org.apache.brooklyn.util.exceptions.Exceptions;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.JsonStreamContext;
-import org.codehaus.jackson.map.JsonSerializer;
-import org.codehaus.jackson.map.SerializationConfig;
-import org.codehaus.jackson.map.SerializerFactory;
-import org.codehaus.jackson.map.ser.StdSerializerProvider;
-import org.codehaus.jackson.type.JavaType;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonStreamContext;
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializationConfig;
+import com.fasterxml.jackson.databind.ser.DefaultSerializerProvider;
+import com.fasterxml.jackson.databind.ser.SerializerFactory;
/** allows the serializer-of-last-resort to be customized, ie used for unknown-types */
-final class ConfigurableSerializerProvider extends StdSerializerProvider {
-
+final class ConfigurableSerializerProvider extends DefaultSerializerProvider {
+
+ protected JsonSerializer<Object> unknownTypeSerializer;
+
public ConfigurableSerializerProvider() {}
-
- public ConfigurableSerializerProvider(SerializationConfig config) {
- // NB: not usually necessary to pass config, as object mapper gets its own config set explicitly
- this(config, new ConfigurableSerializerProvider(), null);
+
+ @Override
+ public DefaultSerializerProvider createInstance(SerializationConfig config, SerializerFactory jsf) {
+ return new ConfigurableSerializerProvider(config, this, jsf);
}
-
+
public ConfigurableSerializerProvider(SerializationConfig config, ConfigurableSerializerProvider src, SerializerFactory jsf) {
- super(config, src, jsf);
+ super(src, config, jsf);
unknownTypeSerializer = src.unknownTypeSerializer;
}
-
- protected StdSerializerProvider createInstance(SerializationConfig config, SerializerFactory jsf) {
- return new ConfigurableSerializerProvider(config, this, jsf);
- }
- protected JsonSerializer<Object> unknownTypeSerializer;
-
public JsonSerializer<Object> getUnknownTypeSerializer(Class<?> unknownType) {
if (unknownTypeSerializer!=null) return unknownTypeSerializer;
return super.getUnknownTypeSerializer(unknownType);
}
-
+
public void setUnknownTypeSerializer(JsonSerializer<Object> unknownTypeSerializer) {
this.unknownTypeSerializer = unknownTypeSerializer;
}
@Override
- protected void _serializeValue(JsonGenerator jgen, Object value) throws IOException, JsonProcessingException {
+ public void serializeValue(JsonGenerator jgen, Object value) throws IOException {
JsonStreamContext ctxt = jgen.getOutputContext();
try {
- super._serializeValue(jgen, value);
+ super.serializeValue(jgen, value);
} catch (Exception e) {
onSerializationException(ctxt, jgen, value, e);
}
}
@Override
- protected void _serializeValue(JsonGenerator jgen, Object value, JavaType rootType) throws IOException, JsonProcessingException {
+ public void serializeValue(JsonGenerator jgen, Object value, JavaType rootType) throws IOException {
JsonStreamContext ctxt = jgen.getOutputContext();
try {
- super._serializeValue(jgen, value, rootType);
+ super.serializeValue(jgen, value, rootType);
} catch (Exception e) {
onSerializationException(ctxt, jgen, value, e);
}
}
- protected void onSerializationException(JsonStreamContext ctxt, JsonGenerator jgen, Object value, Exception e) throws IOException, JsonProcessingException {
+ protected void onSerializationException(JsonStreamContext ctxt, JsonGenerator jgen, Object value, Exception e) throws IOException {
Exceptions.propagateIfFatal(e);
JsonSerializer<Object> unknownTypeSerializer = getUnknownTypeSerializer(value.getClass());
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/ErrorAndToStringUnknownTypeSerializer.java
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/ErrorAndToStringUnknownTypeSerializer.java b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/ErrorAndToStringUnknownTypeSerializer.java
index 8d18c8a..e529ec9 100644
--- a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/ErrorAndToStringUnknownTypeSerializer.java
+++ b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/ErrorAndToStringUnknownTypeSerializer.java
@@ -27,43 +27,42 @@ import javax.annotation.Nullable;
import org.apache.brooklyn.util.collections.MutableSet;
import org.apache.brooklyn.util.javalang.Reflections;
-import org.codehaus.jackson.JsonGenerationException;
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.JsonProcessingException;
-import org.codehaus.jackson.JsonStreamContext;
-import org.codehaus.jackson.map.JsonMappingException;
-import org.codehaus.jackson.map.SerializerProvider;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.codehaus.jackson.map.ser.impl.UnknownSerializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonStreamContext;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.impl.UnknownSerializer;
+
/**
* for non-json-serializable classes (quite a lot of them!) simply provide a sensible error message and a toString.
- * TODO maybe we want to attempt to serialize fields instead? (but being careful not to be self-referential!)
+ * TODO maybe we want to attempt to serialize fields instead? (but being careful not to be self-referential!)
*/
public class ErrorAndToStringUnknownTypeSerializer extends UnknownSerializer {
-
+
private static final Logger log = LoggerFactory.getLogger(ErrorAndToStringUnknownTypeSerializer.class);
private static Set<String> WARNED_CLASSES = Collections.synchronizedSet(MutableSet.<String>of());
-
+
@Override
- public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
+ public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
if (BidiSerialization.isStrictSerialization())
throw new JsonMappingException("Cannot serialize object containing "+value.getClass().getName()+" when strict serialization requested");
serializeFromError(jgen.getOutputContext(), null, value, jgen, provider);
}
- public void serializeFromError(JsonStreamContext ctxt, @Nullable Exception error, Object value, JsonGenerator jgen, SerializerProvider configurableSerializerProvider) throws JsonGenerationException, IOException {
+ public void serializeFromError(JsonStreamContext ctxt, @Nullable Exception error, Object value, JsonGenerator jgen, SerializerProvider configurableSerializerProvider) throws IOException {
if (log.isDebugEnabled())
log.debug("Recovering from json serialization error, serializing "+value+": "+error);
-
+
if (BidiSerialization.isStrictSerialization())
throw new JsonMappingException("Cannot serialize "
+ (ctxt!=null && !ctxt.inRoot() ? "object containing " : "")
+ value.getClass().getName()+" when strict serialization requested");
-
+
if (WARNED_CLASSES.add(value.getClass().getCanonicalName())) {
log.warn("Standard serialization not possible for "+value.getClass()+" ("+value+")", error);
}
@@ -73,12 +72,12 @@ public class ErrorAndToStringUnknownTypeSerializer extends UnknownSerializer {
// without this, when serializing the large (1.5M) Server json object from BrooklynJacksonSerializerTest creates invalid json,
// containing: "foo":false,"{"error":true,...
jgen.flush();
-
+
boolean createObject = !newCtxt.inObject() || newCtxt.getCurrentName()!=null;
if (createObject) {
jgen.writeStartObject();
}
-
+
if (allowEmpty(value.getClass())) {
// write nothing
} else {
@@ -99,16 +98,16 @@ public class ErrorAndToStringUnknownTypeSerializer extends UnknownSerializer {
jgen.writeFieldName("causedByError");
jgen.writeString(error.toString());
}
-
+
}
-
+
if (createObject) {
jgen.writeEndObject();
}
-
+
while (newCtxt!=null && !newCtxt.equals(ctxt)) {
if (jgen.getOutputContext().inArray()) { jgen.writeEndArray(); continue; }
- if (jgen.getOutputContext().inObject()) { jgen.writeEndObject(); continue; }
+ if (jgen.getOutputContext().inObject()) { jgen.writeEndObject(); continue; }
break;
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/MultimapSerializer.java
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/MultimapSerializer.java b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/MultimapSerializer.java
deleted file mode 100644
index 1c2f8c1..0000000
--- a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/MultimapSerializer.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * 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.util.json;
-
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Map;
-
-import org.codehaus.jackson.JsonGenerator;
-import org.codehaus.jackson.map.SerializerProvider;
-import org.codehaus.jackson.map.ser.std.SerializerBase;
-
-import com.google.common.annotations.Beta;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Multimap;
-
-/**
- * Provides a serializer for {@link Multimap} instances.
- * <p>
- * When Brooklyn's Jackson dependency is updated from org.codehaus.jackson:1.9.13 to
- * com.fasterxml.jackson:2.3+ then this class should be replaced with a dependency on
- * jackson-datatype-guava and a GuavaModule registered with Brooklyn's ObjectMapper.
- */
-@Beta
-public class MultimapSerializer extends SerializerBase<Multimap<?, ?>> {
-
- @SuppressWarnings({ "unchecked", "rawtypes" })
- protected MultimapSerializer() {
- super((Class<Multimap<?, ?>>) (Class) Multimap.class);
- }
-
- @Override
- public void serialize(Multimap<?, ?> value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
- jgen.writeStartObject();
- writeEntries(value, jgen, provider);
- jgen.writeEndObject();
- }
-
- private void writeEntries(Multimap<?, ?> value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
- for (Map.Entry<?, ? extends Collection<?>> entry : value.asMap().entrySet()) {
- provider.findKeySerializer(provider.constructType(String.class), null)
- .serialize(entry.getKey(), jgen, provider);
- provider.defaultSerializeValue(Lists.newArrayList(entry.getValue()), jgen);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/PossiblyStrictPreferringFieldsVisibilityChecker.java
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/PossiblyStrictPreferringFieldsVisibilityChecker.java b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/PossiblyStrictPreferringFieldsVisibilityChecker.java
index 502f063..e474467 100644
--- a/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/PossiblyStrictPreferringFieldsVisibilityChecker.java
+++ b/rest/rest-server/src/main/java/org/apache/brooklyn/rest/util/json/PossiblyStrictPreferringFieldsVisibilityChecker.java
@@ -22,13 +22,14 @@ import java.lang.reflect.Field;
import java.lang.reflect.Member;
import java.lang.reflect.Method;
-import org.codehaus.jackson.annotate.JsonAutoDetect;
-import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;
-import org.codehaus.jackson.annotate.JsonMethod;
-import org.codehaus.jackson.map.introspect.AnnotatedField;
-import org.codehaus.jackson.map.introspect.AnnotatedMember;
-import org.codehaus.jackson.map.introspect.AnnotatedMethod;
-import org.codehaus.jackson.map.introspect.VisibilityChecker;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.introspect.AnnotatedField;
+import com.fasterxml.jackson.databind.introspect.AnnotatedMember;
+import com.fasterxml.jackson.databind.introspect.AnnotatedMethod;
+import com.fasterxml.jackson.databind.introspect.VisibilityChecker;
+
+import static com.fasterxml.jackson.annotation.JsonAutoDetect.*;
/** a visibility checker which disables getters, but allows private access,
* unless {@link BidiSerialization#isStrictSerialization()} is enabled in which case public fields or annotations must be used.
@@ -39,13 +40,13 @@ import org.codehaus.jackson.map.introspect.VisibilityChecker;
* causes infinite recursion)
**/
public class PossiblyStrictPreferringFieldsVisibilityChecker implements VisibilityChecker<PossiblyStrictPreferringFieldsVisibilityChecker> {
- VisibilityChecker<?>
+ VisibilityChecker<?>
vizDefault = new VisibilityChecker.Std(Visibility.NONE, Visibility.NONE, Visibility.NONE, Visibility.ANY, Visibility.ANY),
vizStrict = new VisibilityChecker.Std(Visibility.NONE, Visibility.NONE, Visibility.NONE, Visibility.PUBLIC_ONLY, Visibility.PUBLIC_ONLY);
@Override public PossiblyStrictPreferringFieldsVisibilityChecker with(JsonAutoDetect ann) { throw new UnsupportedOperationException(); }
@Override public PossiblyStrictPreferringFieldsVisibilityChecker with(Visibility v) { throw new UnsupportedOperationException(); }
- @Override public PossiblyStrictPreferringFieldsVisibilityChecker withVisibility(JsonMethod method, Visibility v) { throw new UnsupportedOperationException(); }
+ @Override public PossiblyStrictPreferringFieldsVisibilityChecker withVisibility(PropertyAccessor method, Visibility v) { throw new UnsupportedOperationException(); }
@Override public PossiblyStrictPreferringFieldsVisibilityChecker withGetterVisibility(Visibility v) { throw new UnsupportedOperationException(); }
@Override public PossiblyStrictPreferringFieldsVisibilityChecker withIsGetterVisibility(Visibility v) { throw new UnsupportedOperationException(); }
@Override public PossiblyStrictPreferringFieldsVisibilityChecker withSetterVisibility(Visibility v) { throw new UnsupportedOperationException(); }
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/main/webapp/WEB-INF/web.xml b/rest/rest-server/src/main/webapp/WEB-INF/web.xml
index 1c44b02..ae98ff6 100644
--- a/rest/rest-server/src/main/webapp/WEB-INF/web.xml
+++ b/rest/rest-server/src/main/webapp/WEB-INF/web.xml
@@ -91,7 +91,7 @@
<param-value>
io.swagger.jaxrs.listing.SwaggerSerializers;
org.apache.brooklyn.rest.util.FormMapProvider;
- org.codehaus.jackson.jaxrs.JacksonJsonProvider;
+ com.fasterxml.jackson.jaxrs.json.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/src/test/java/org/apache/brooklyn/rest/domain/ApplicationTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/test/java/org/apache/brooklyn/rest/domain/ApplicationTest.java b/rest/rest-server/src/test/java/org/apache/brooklyn/rest/domain/ApplicationTest.java
index 7e9c910..8708fb1 100644
--- a/rest/rest-server/src/test/java/org/apache/brooklyn/rest/domain/ApplicationTest.java
+++ b/rest/rest-server/src/test/java/org/apache/brooklyn/rest/domain/ApplicationTest.java
@@ -41,7 +41,7 @@ import com.google.common.collect.ImmutableSet;
public class ApplicationTest {
final EntitySpec entitySpec = new EntitySpec("Vanilla Java App", "org.apache.brooklyn.entity.java.VanillaJavaApp",
- ImmutableMap.<String, String>of(
+ ImmutableMap.of(
"initialSize", "1",
"creationScriptUrl", "http://my.brooklyn.io/storage/foo.sql"));
@@ -50,20 +50,15 @@ public class ApplicationTest {
.locations(ImmutableSet.of("/v1/locations/1"))
.build();
- final ApplicationSummary application = new ApplicationSummary(null, applicationSpec, Status.STARTING, null);
+ final Map<String, URI> links = ImmutableMap.of(
+ "self", URI.create("/v1/applications/" + applicationSpec.getName()),
+ "entities", URI.create("fixtures/entity-summary-list.json"));
+ final ApplicationSummary application = new ApplicationSummary("myapp_id", applicationSpec, Status.STARTING, links);
@SuppressWarnings("serial")
@Test
public void testSerializeToJSON() throws IOException {
- ApplicationSummary application1 = new ApplicationSummary("myapp_id", applicationSpec, Status.STARTING, null) {
- @Override
- public Map<String, URI> getLinks() {
- return ImmutableMap.of(
- "self", URI.create("/v1/applications/" + applicationSpec.getName()),
- "entities", URI.create("fixtures/entity-summary-list.json"));
- }
- };
- assertEquals(asJson(application1), jsonFixture("fixtures/application.json"));
+ assertEquals(asJson(application), jsonFixture("fixtures/application.json"));
}
@Test
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/src/test/java/org/apache/brooklyn/rest/domain/LocationSummaryTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/test/java/org/apache/brooklyn/rest/domain/LocationSummaryTest.java b/rest/rest-server/src/test/java/org/apache/brooklyn/rest/domain/LocationSummaryTest.java
deleted file mode 100644
index 7df3de1..0000000
--- a/rest/rest-server/src/test/java/org/apache/brooklyn/rest/domain/LocationSummaryTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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 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.util.Collections;
-import java.util.List;
-
-import org.codehaus.jackson.type.TypeReference;
-import org.testng.annotations.Test;
-
-import org.apache.brooklyn.rest.transform.LocationTransformer;
-
-public class LocationSummaryTest {
-
- @SuppressWarnings("deprecation")
- final LocationSummary summary = LocationTransformer.newInstance("123", LocationSpec.localhost());
-
- @Test
- public void testSerializeToJSON() throws IOException {
- assertEquals(asJson(summary), jsonFixture("fixtures/location-summary.json"));
- }
-
- @Test
- public void testDeserializeFromJSON() throws IOException {
- assertEquals(fromJson(jsonFixture("fixtures/location-summary.json"), LocationSummary.class), summary);
- }
-
- @Test
- public void testDeserializeListFromJSON() throws IOException {
- assertEquals(fromJson(jsonFixture("fixtures/location-list.json"), new TypeReference<List<LocationSummary>>() {}),
- Collections.singletonList(summary));
- }
-}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/src/test/java/org/apache/brooklyn/rest/resources/DescendantsTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/test/java/org/apache/brooklyn/rest/resources/DescendantsTest.java b/rest/rest-server/src/test/java/org/apache/brooklyn/rest/resources/DescendantsTest.java
index a8748a7..3f42c8d 100644
--- a/rest/rest-server/src/test/java/org/apache/brooklyn/rest/resources/DescendantsTest.java
+++ b/rest/rest-server/src/test/java/org/apache/brooklyn/rest/resources/DescendantsTest.java
@@ -37,8 +37,6 @@ import org.apache.brooklyn.rest.testing.BrooklynRestResourceTest;
import org.apache.brooklyn.rest.testing.mocks.RestMockSimpleEntity;
import org.apache.brooklyn.util.collections.MutableList;
import org.apache.brooklyn.util.text.StringEscapes;
-import org.codehaus.jackson.JsonGenerationException;
-import org.codehaus.jackson.map.JsonMappingException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.annotations.Test;
@@ -63,7 +61,7 @@ public class DescendantsTest extends BrooklynRestResourceTest {
build();
@Test
- public void testDescendantsInSimpleDeployedApplication() throws InterruptedException, TimeoutException, JsonGenerationException, JsonMappingException, UniformInterfaceException, ClientHandlerException, IOException {
+ public void testDescendantsInSimpleDeployedApplication() throws InterruptedException, TimeoutException, UniformInterfaceException, ClientHandlerException, IOException {
ClientResponse response = clientDeploy(simpleSpec);
assertTrue(response.getStatus()/100 == 2, "response is "+response);
Application application = Iterables.getOnlyElement( getManagementContext().getApplications() );
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/src/test/java/org/apache/brooklyn/rest/resources/EntityResourceTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/test/java/org/apache/brooklyn/rest/resources/EntityResourceTest.java b/rest/rest-server/src/test/java/org/apache/brooklyn/rest/resources/EntityResourceTest.java
index d6857fb..1c091da 100644
--- a/rest/rest-server/src/test/java/org/apache/brooklyn/rest/resources/EntityResourceTest.java
+++ b/rest/rest-server/src/test/java/org/apache/brooklyn/rest/resources/EntityResourceTest.java
@@ -38,14 +38,14 @@ import org.apache.brooklyn.rest.testing.mocks.RestMockSimpleEntity;
import org.apache.brooklyn.util.collections.MutableList;
import org.apache.brooklyn.util.exceptions.Exceptions;
import org.apache.brooklyn.util.http.HttpAsserts;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.type.TypeReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/src/test/java/org/apache/brooklyn/rest/testing/BrooklynRestApiTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/test/java/org/apache/brooklyn/rest/testing/BrooklynRestApiTest.java b/rest/rest-server/src/test/java/org/apache/brooklyn/rest/testing/BrooklynRestApiTest.java
index e63a239..45aec4a 100644
--- a/rest/rest-server/src/test/java/org/apache/brooklyn/rest/testing/BrooklynRestApiTest.java
+++ b/rest/rest-server/src/test/java/org/apache/brooklyn/rest/testing/BrooklynRestApiTest.java
@@ -26,10 +26,10 @@ import org.apache.brooklyn.core.location.BasicLocationRegistry;
import org.apache.brooklyn.core.mgmt.ManagementContextInjectable;
import org.apache.brooklyn.core.mgmt.internal.LocalManagementContext;
import org.apache.brooklyn.core.test.entity.LocalManagementContextForTests;
-import org.codehaus.jackson.map.ObjectMapper;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeMethod;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.base.Preconditions;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/src/test/java/org/apache/brooklyn/rest/testing/BrooklynRestResourceTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/test/java/org/apache/brooklyn/rest/testing/BrooklynRestResourceTest.java b/rest/rest-server/src/test/java/org/apache/brooklyn/rest/testing/BrooklynRestResourceTest.java
index c644643..b94e73c 100644
--- a/rest/rest-server/src/test/java/org/apache/brooklyn/rest/testing/BrooklynRestResourceTest.java
+++ b/rest/rest-server/src/test/java/org/apache/brooklyn/rest/testing/BrooklynRestResourceTest.java
@@ -28,7 +28,6 @@ import java.util.logging.Level;
import javax.ws.rs.core.MediaType;
-import org.codehaus.jackson.map.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.Assert;
@@ -43,6 +42,7 @@ import org.apache.brooklyn.util.exceptions.Exceptions;
import org.apache.brooklyn.util.repeat.Repeater;
import org.apache.brooklyn.util.time.Duration;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.UniformInterfaceException;
import com.sun.jersey.spi.inject.Errors;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-server/src/test/java/org/apache/brooklyn/rest/util/json/BrooklynJacksonSerializerTest.java
----------------------------------------------------------------------
diff --git a/rest/rest-server/src/test/java/org/apache/brooklyn/rest/util/json/BrooklynJacksonSerializerTest.java b/rest/rest-server/src/test/java/org/apache/brooklyn/rest/util/json/BrooklynJacksonSerializerTest.java
index 7a255a3..9542eda 100644
--- a/rest/rest-server/src/test/java/org/apache/brooklyn/rest/util/json/BrooklynJacksonSerializerTest.java
+++ b/rest/rest-server/src/test/java/org/apache/brooklyn/rest/util/json/BrooklynJacksonSerializerTest.java
@@ -28,9 +28,6 @@ import javax.ws.rs.core.MediaType;
import org.apache.http.client.HttpClient;
import org.apache.http.client.utils.URIBuilder;
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.ObjectMapper;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.eclipse.jetty.server.Server;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -52,6 +49,9 @@ import org.apache.brooklyn.util.exceptions.Exceptions;
import org.apache.brooklyn.util.stream.Streams;
import org.apache.brooklyn.util.text.Strings;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Multimap;
import com.google.common.collect.MultimapBuilder;
[2/4] brooklyn-server git commit: Initial work to simplify the rest
server
Posted by sv...@apache.org.
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);
[3/4] brooklyn-server git commit: Initial work to simplify the rest
server
Posted by sv...@apache.org.
Initial work to simplify the rest server
- remove JsonNode from API interfaces
- refactor consistently toStringand hashCode and equals for the domain objects
- remove deprecated code
- simplified pom dependencies
- remove com.codehaus.jackson dependency and promote com.fasterxml.jackson usage
- adjust BrooklynJacksonSerializer to use jackson 2 api
- fix web.xml for rest-api and rest-client
- update feature.xml dependencies, following maven dependency changes
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/1a53a3f9
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/1a53a3f9
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/1a53a3f9
Branch: refs/heads/master
Commit: 1a53a3f9de92ef9002c19bdad467b85699f32f1b
Parents: 46ae223
Author: Andrea Turli <an...@gmail.com>
Authored: Tue Feb 9 09:32:37 2016 +0100
Committer: Andrea Turli <an...@gmail.com>
Committed: Wed Feb 10 09:22:16 2016 +0100
----------------------------------------------------------------------
camp/camp-server/pom.xml | 5 -
core/pom.xml | 8 --
.../apache/brooklyn/core/mgmt/BrooklynTags.java | 7 +-
.../brooklyn/core/mgmt/BrooklynTaskTags.java | 2 +-
.../ha/dto/BasicManagementNodeSyncRecord.java | 5 +-
.../rebind/dto/BasicCatalogItemMemento.java | 2 +-
.../mgmt/rebind/dto/BasicEntityMemento.java | 5 +-
.../mgmt/rebind/dto/MutableBrooklynMemento.java | 5 +-
karaf/features/src/main/feature/feature.xml | 25 ++--
parent/pom.xml | 27 +---
pom.xml | 7 +-
rest/rest-api/pom.xml | 15 ++-
.../apache/brooklyn/rest/api/ActivityApi.java | 1 -
.../brooklyn/rest/api/ApplicationApi.java | 14 +-
.../brooklyn/rest/domain/AccessSummary.java | 19 +--
.../apache/brooklyn/rest/domain/ApiError.java | 83 ++++++------
.../brooklyn/rest/domain/ApplicationSpec.java | 63 ++++-----
.../rest/domain/ApplicationSummary.java | 29 ++--
.../rest/domain/BrooklynFeatureSummary.java | 37 +++++-
.../rest/domain/CatalogEntitySummary.java | 50 ++++---
.../rest/domain/CatalogItemSummary.java | 69 ++++++----
.../rest/domain/CatalogLocationSummary.java | 27 +++-
.../rest/domain/CatalogPolicySummary.java | 32 +++--
.../brooklyn/rest/domain/ConfigSummary.java | 50 ++++---
.../brooklyn/rest/domain/EffectorSummary.java | 60 ++++-----
.../rest/domain/EntityConfigSummary.java | 31 +++--
.../brooklyn/rest/domain/EntityDetail.java | 80 +++++++++++
.../apache/brooklyn/rest/domain/EntitySpec.java | 38 ++----
.../brooklyn/rest/domain/EntitySummary.java | 38 +++---
.../rest/domain/HighAvailabilitySummary.java | 51 +++++---
.../brooklyn/rest/domain/LinkWithMetadata.java | 55 ++++----
.../rest/domain/LocationConfigSummary.java | 32 +++--
.../brooklyn/rest/domain/LocationSpec.java | 35 +++--
.../brooklyn/rest/domain/LocationSummary.java | 34 +++--
.../rest/domain/PolicyConfigSummary.java | 34 +++--
.../brooklyn/rest/domain/PolicySummary.java | 43 +++---
.../rest/domain/ScriptExecutionSummary.java | 48 +++++--
.../brooklyn/rest/domain/SensorSummary.java | 49 +++----
.../brooklyn/rest/domain/TaskSummary.java | 123 +++++++++++------
.../brooklyn/rest/domain/UsageStatistic.java | 38 +++---
.../brooklyn/rest/domain/UsageStatistics.java | 26 ++--
.../brooklyn/rest/domain/VersionSummary.java | 30 ++++-
rest/rest-api/src/main/webapp/WEB-INF/web.xml | 4 +-
.../rest/domain/AbstractDomainTest.java | 44 +++++++
.../brooklyn/rest/domain/ApiErrorTest.java | 18 ++-
.../rest/domain/ApplicationSpecTest.java | 37 ++----
.../rest/domain/EffectorSummaryTest.java | 37 ++----
.../brooklyn/rest/domain/EntitySpecTest.java | 20 ++-
.../brooklyn/rest/domain/EntitySummaryTest.java | 35 ++---
.../rest/domain/LocationSummaryTest.java | 41 ++++++
.../rest/domain/VersionSummaryTest.java | 51 +++-----
.../brooklyn/rest/util/RestApiTestUtils.java | 5 +-
rest/rest-client/pom.xml | 2 +-
.../rest-client/src/test/webapp/WEB-INF/web.xml | 2 +-
rest/rest-server/pom.xml | 41 ++----
.../resources/AbstractBrooklynRestResource.java | 3 +-
.../rest/resources/ApplicationResource.java | 131 +++++++------------
.../brooklyn/rest/util/WebResourceUtils.java | 2 +-
.../rest/util/json/BidiSerialization.java | 41 +++---
.../util/json/BrooklynJacksonJsonProvider.java | 31 ++---
.../json/ConfigurableSerializerProvider.java | 52 ++++----
.../ErrorAndToStringUnknownTypeSerializer.java | 41 +++---
.../rest/util/json/MultimapSerializer.java | 62 ---------
...StrictPreferringFieldsVisibilityChecker.java | 19 +--
.../rest-server/src/main/webapp/WEB-INF/web.xml | 2 +-
.../brooklyn/rest/domain/ApplicationTest.java | 17 +--
.../rest/domain/LocationSummaryTest.java | 55 --------
.../rest/resources/DescendantsTest.java | 4 +-
.../rest/resources/EntityResourceTest.java | 4 +-
.../rest/testing/BrooklynRestApiTest.java | 2 +-
.../rest/testing/BrooklynRestResourceTest.java | 2 +-
.../json/BrooklynJacksonSerializerTest.java | 6 +-
72 files changed, 1156 insertions(+), 1087 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/camp/camp-server/pom.xml
----------------------------------------------------------------------
diff --git a/camp/camp-server/pom.xml b/camp/camp-server/pom.xml
index 502c83e..1ef149d 100644
--- a/camp/camp-server/pom.xml
+++ b/camp/camp-server/pom.xml
@@ -142,11 +142,6 @@
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
- <!-- ATTN: this moves the dependency version from 1.9.2 to 1.9.13 -->
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-core-asl</artifactId>
- </dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/core/pom.xml
----------------------------------------------------------------------
diff --git a/core/pom.xml b/core/pom.xml
index 3be573d..fadc689 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -66,10 +66,6 @@
<artifactId>xstream</artifactId>
</dependency>
<dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- </dependency>
- <dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
@@ -139,10 +135,6 @@
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-core-asl</artifactId>
- </dependency>
- <dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTags.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTags.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTags.java
index 0ddc79a..7a0171e 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTags.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTags.java
@@ -23,9 +23,9 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.brooklyn.util.collections.MutableList;
-import org.codehaus.jackson.annotate.JsonIgnore;
-import org.codehaus.jackson.annotate.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.annotations.Beta;
import com.google.common.base.Function;
import com.google.common.base.Objects;
@@ -40,7 +40,8 @@ public class BrooklynTags {
public static class NamedStringTag implements Serializable {
private static final long serialVersionUID = 7932098757009051348L;
- @JsonProperty final String kind;
+ @JsonProperty
+ final String kind;
@JsonProperty final String contents;
public NamedStringTag(@JsonProperty("kind") String kind, @JsonProperty("contents") String contents) {
this.kind = kind;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTaskTags.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTaskTags.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTaskTags.java
index 1fba49d..0ce9a2e 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTaskTags.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/BrooklynTaskTags.java
@@ -42,10 +42,10 @@ import org.apache.brooklyn.util.javalang.MemoryUsageTracker;
import org.apache.brooklyn.util.stream.Streams;
import org.apache.brooklyn.util.text.StringEscapes.BashStringEscapes;
import org.apache.brooklyn.util.text.Strings;
-import org.codehaus.jackson.annotate.JsonProperty;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.annotations.Beta;
import com.google.common.base.Functions;
import com.google.common.base.Objects;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/dto/BasicManagementNodeSyncRecord.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/dto/BasicManagementNodeSyncRecord.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/dto/BasicManagementNodeSyncRecord.java
index d8f18b1..265540c 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/dto/BasicManagementNodeSyncRecord.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/ha/dto/BasicManagementNodeSyncRecord.java
@@ -25,9 +25,8 @@ import org.apache.brooklyn.api.mgmt.ha.ManagementNodeState;
import org.apache.brooklyn.api.mgmt.ha.ManagementNodeSyncRecord;
import org.apache.brooklyn.core.BrooklynVersion;
import org.apache.brooklyn.util.time.Time;
-import org.codehaus.jackson.annotate.JsonAutoDetect;
-import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.google.common.base.Objects;
/**
@@ -36,7 +35,7 @@ import com.google.common.base.Objects;
*
* @author aled
*/
-@JsonAutoDetect(fieldVisibility=Visibility.ANY, getterVisibility=Visibility.NONE)
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE)
public class BasicManagementNodeSyncRecord implements ManagementNodeSyncRecord, Serializable {
private static final long serialVersionUID = 4918161834047884244L;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/BasicCatalogItemMemento.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/BasicCatalogItemMemento.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/BasicCatalogItemMemento.java
index bf252e0..3651267 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/BasicCatalogItemMemento.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/BasicCatalogItemMemento.java
@@ -29,8 +29,8 @@ import org.apache.brooklyn.api.mgmt.rebind.mementos.CatalogItemMemento;
import org.apache.brooklyn.api.objs.SpecParameter;
import org.apache.brooklyn.core.catalog.internal.BasicBrooklynCatalog;
import org.apache.brooklyn.core.catalog.internal.CatalogUtils;
-import org.codehaus.jackson.annotate.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.google.common.base.Joiner;
import com.google.common.base.Objects;
import com.google.common.collect.ImmutableList;
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/BasicEntityMemento.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/BasicEntityMemento.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/BasicEntityMemento.java
index 8294562..f06ff36 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/BasicEntityMemento.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/BasicEntityMemento.java
@@ -30,8 +30,6 @@ import org.apache.brooklyn.api.mgmt.rebind.mementos.EntityMemento;
import org.apache.brooklyn.api.mgmt.rebind.mementos.TreeNode;
import org.apache.brooklyn.api.sensor.AttributeSensor;
import org.apache.brooklyn.api.sensor.Sensor;
-import org.codehaus.jackson.annotate.JsonAutoDetect;
-import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.brooklyn.config.ConfigKey;
@@ -41,6 +39,7 @@ import org.apache.brooklyn.core.entity.AbstractEntity;
import org.apache.brooklyn.core.objs.BrooklynTypes;
import org.apache.brooklyn.core.sensor.Sensors;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.google.common.base.Objects.ToStringHelper;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
@@ -54,7 +53,7 @@ import com.google.common.collect.Maps;
*
* @author aled
*/
-@JsonAutoDetect(fieldVisibility=Visibility.ANY, getterVisibility=Visibility.NONE)
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility= JsonAutoDetect.Visibility.NONE)
public class BasicEntityMemento extends AbstractTreeNodeMemento implements EntityMemento, Serializable {
private static final Logger log = LoggerFactory.getLogger(BasicEntityMemento.class);
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/MutableBrooklynMemento.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/MutableBrooklynMemento.java b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/MutableBrooklynMemento.java
index 293207b..fa0fe19 100644
--- a/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/MutableBrooklynMemento.java
+++ b/core/src/main/java/org/apache/brooklyn/core/mgmt/rebind/dto/MutableBrooklynMemento.java
@@ -31,9 +31,8 @@ import org.apache.brooklyn.api.mgmt.rebind.mementos.EntityMemento;
import org.apache.brooklyn.api.mgmt.rebind.mementos.FeedMemento;
import org.apache.brooklyn.api.mgmt.rebind.mementos.LocationMemento;
import org.apache.brooklyn.api.mgmt.rebind.mementos.PolicyMemento;
-import org.codehaus.jackson.annotate.JsonAutoDetect;
-import org.codehaus.jackson.annotate.JsonAutoDetect.Visibility;
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
@@ -44,7 +43,7 @@ import com.google.common.collect.Sets;
/**
* @deprecated since 0.7.0; this code will move to src/tests/java
*/
-@JsonAutoDetect(fieldVisibility=Visibility.ANY, getterVisibility=Visibility.NONE)
+@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE)
public class MutableBrooklynMemento implements BrooklynMemento {
// TODO Is this class pulling its weight? Do we really need it?
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/karaf/features/src/main/feature/feature.xml
----------------------------------------------------------------------
diff --git a/karaf/features/src/main/feature/feature.xml b/karaf/features/src/main/feature/feature.xml
index bc520e7..19d439e 100644
--- a/karaf/features/src/main/feature/feature.xml
+++ b/karaf/features/src/main/feature/feature.xml
@@ -85,6 +85,7 @@
<feature name="brooklyn-rest-api" version="${project.version}" description="Brooklyn REST API">
<feature>brooklyn-utils-rest-swagger</feature>
<feature>brooklyn-api</feature>
+ <feature>brooklyn-core</feature>
<bundle>mvn:org.apache.brooklyn/brooklyn-rest-api/${project.version}</bundle>
@@ -98,8 +99,8 @@
<!--<feature>jersey</feature>-->
<bundle dependency="true">mvn:com.sun.jersey/jersey-servlet/${jersey.version}</bundle>
<bundle dependency="true">mvn:org.apache.commons/commons-lang3/${commons-lang3.version}</bundle>
- <bundle dependency="true">mvn:org.codehaus.jackson/jackson-core-asl/${jackson.version}</bundle>
- <bundle dependency="true">mvn:org.codehaus.jackson/jackson-mapper-asl/${jackson.version}</bundle>
+ <bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-annotations/${fasterxml.jackson.version}</bundle>
+ <bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-databind/${fasterxml.jackson.version}</bundle>
<!--<bundle dependency="true">mvn:javax.ws.rs/jsr311-api/${jsr311-api.version}</bundle>-->
<bundle dependency="true">mvn:javax.servlet/javax.servlet-api/${javax-servlet.version}</bundle>
@@ -116,7 +117,7 @@
<bundle>mvn:org.apache.brooklyn/brooklyn-core/${project.version}</bundle>
<bundle>mvn:org.apache.brooklyn/brooklyn-rt-osgi/${project.version}</bundle>
<bundle>mvn:org.apache.brooklyn/brooklyn-utils-groovy/${project.version}</bundle>
-
+
<bundle dependency="true">mvn:com.google.code.gson/gson/${gson.version}</bundle>
<bundle dependency="true">mvn:com.jayway.jsonpath/json-path/${jsonPath.version}</bundle>
<bundle dependency="true">mvn:com.fasterxml.jackson.core/jackson-core/${fasterxml.jackson.version}</bundle>
@@ -132,9 +133,6 @@
<bundle dependency="true">mvn:org.bouncycastle/bcpkix-jdk15on/${bouncycastle.version}</bundle>
<bundle dependency="true">mvn:commons-codec/commons-codec/${commons-codec.version}</bundle>
<bundle dependency="true">mvn:org.apache.commons/commons-lang3/${commons-lang3.version}</bundle>
- <bundle dependency="true">mvn:org.codehaus.jackson/jackson-core-asl/${jackson.version}</bundle>
- <bundle dependency="true">mvn:org.codehaus.jackson/jackson-mapper-asl/${jackson.version}</bundle>
- <bundle dependency="true">mvn:org.codehaus.jackson/jackson-jaxrs/${jackson.version}</bundle>
<!-- TODO: don't use wrap -->
<bundle dependency="true">wrap:mvn:com.google.http-client/google-http-client/1.18.0-rc</bundle> <!-- from geoip -->
@@ -168,16 +166,10 @@
<feature>brooklyn-camp-base</feature>
<feature>brooklyn-utils-rest-swagger</feature>
<feature>jetty</feature> <!-- TODO: pax-jetty??? -->
-
- <bundle dependency="true">mvn:org.codehaus.jackson/jackson-core-asl/${jackson.version}</bundle>
-
- <bundle dependency="true">wrap:mvn:javax.validation/validation-api/${validation-api.version}</bundle>
- <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.reflections/${reflections.bundle.version}</bundle>
</feature>
<feature name="brooklyn-rest-server" version="${project.version}" description="Brooklyn REST Server">
<bundle>mvn:org.apache.brooklyn/brooklyn-rest-server/${project.version}</bundle>
- <feature>brooklyn-core</feature>
<feature>brooklyn-rest-api</feature>
<feature>brooklyn-camp-brooklyn</feature>
<feature>brooklyn-camp-base</feature>
@@ -188,18 +180,21 @@
<bundle dependency="true">mvn:com.sun.jersey/jersey-server/${jersey.version}</bundle>
<bundle dependency="true">mvn:com.sun.jersey/jersey-core/${jersey.version}</bundle>
<bundle dependency="true">mvn:com.sun.jersey/jersey-servlet/${jersey.version}</bundle>
+
+ <bundle dependency="true">mvn:com.fasterxml.jackson.datatype/jackson-datatype-guava/${fasterxml.jackson.version}</bundle>
+ <bundle dependency="true">mvn:com.fasterxml.jackson.jaxrs/jackson-jaxrs-json-provider/${fasterxml.jackson.version}</bundle>
</feature>
<feature name="brooklyn-jsgui" version="${project.version}" description="Brooklyn REST JavaScript Web GUI">
<bundle>mvn:org.apache.brooklyn/brooklyn-jsgui/${project.version}/war</bundle>
<feature>war</feature>
</feature>
-
+
<feature name="brooklyn-commands" version="${project.version}" description="Brooklyn Shell Commands">
<bundle>mvn:org.apache.brooklyn/brooklyn-commands/${project.version}</bundle>
<!--<feature version="${project.version}">brooklyn-core</feature>-->
</feature>
-
+
<feature name="brooklyn-software-winrm" version="${project.version}" description="Brooklyn WinRM Software Entities">
<bundle>mvn:org.apache.brooklyn/brooklyn-software-winrm/${project.version}</bundle>
<feature>brooklyn-core</feature>
@@ -285,5 +280,5 @@
<feature>brooklyn-software-base</feature>
<bundle dependency="true">mvn:com.google.guava/guava/${guava.version}</bundle>
</feature>
-
+
</features>
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index 6c1817e..2b1f4a5 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -174,26 +174,6 @@
<version>${jetty-schemas.version}</version>
</dependency>
<dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-core-asl</artifactId>
- <version>${jackson.version}</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- <version>${jackson.version}</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-jaxrs</artifactId>
- <version>${jackson.version}</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-xc</artifactId>
- <version>${jackson.version}</version>
- </dependency>
- <dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${fasterxml.jackson.version}</version>
@@ -219,6 +199,11 @@
<version>${fasterxml.jackson.version}</version>
</dependency>
<dependency>
+ <groupId>com.fasterxml.jackson.datatype</groupId>
+ <artifactId>jackson-datatype-guava</artifactId>
+ <version>${fasterxml.jackson.version}</version>
+ </dependency>
+ <dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>${swagger.version}</version>
@@ -402,7 +387,7 @@
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jackson-provider</artifactId>
+ <artifactId>resteasy-jackson2-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index e066e13..5078260 100644
--- a/pom.xml
+++ b/pom.xml
@@ -97,8 +97,7 @@
<slf4j.version>1.6.6</slf4j.version> <!-- used for java.util.logging jul-to-slf4j interception -->
<guava.version>17.0</guava.version>
<xstream.version>1.4.7</xstream.version>
- <jackson.version>1.9.13</jackson.version> <!-- codehaus jackson, used by brooklyn rest server -->
- <fasterxml.jackson.version>2.4.5</fasterxml.jackson.version> <!-- more recent jackson, but not compatible with old annotations! -->
+ <fasterxml.jackson.version>2.7.0</fasterxml.jackson.version> <!-- more recent jackson, but not compatible with old annotations! -->
<jersey.version>1.19</jersey.version>
<httpclient.version>4.4.1</httpclient.version>
<commons-lang3.version>3.3.2</commons-lang3.version>
@@ -127,12 +126,12 @@
<geronimo-jta_1.1_spec.version>1.1.1</geronimo-jta_1.1_spec.version>
<sleepycat-je.version>5.0.34</sleepycat-je.version>
<commons-cli.version>1.2</commons-cli.version>
- <astyanax.version>1.56.24</astyanax.version>
+ <astyanax.version>3.8.0</astyanax.version>
<jcouchdb.version>0.11.0-1</jcouchdb.version>
<solr.version>4.7.0</solr.version>
<jtidy.version>r8-20060801</jtidy.version>
<opendmk_jmxremote_optional_jar.version>1.0-b01-ea</opendmk_jmxremote_optional_jar.version>
- <resteasy.version>3.0.8.Final</resteasy.version>
+ <resteasy.version>3.0.14.Final</resteasy.version>
<jopt.version>4.3</jopt.version>
<concurrentlinkedhashmap.version>1.0_jdk5</concurrentlinkedhashmap.version>
<javax-servlet.version>3.1.0</javax-servlet.version>
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/pom.xml
----------------------------------------------------------------------
diff --git a/rest/rest-api/pom.xml b/rest/rest-api/pom.xml
index 9a74d52..fc61f97 100644
--- a/rest/rest-api/pom.xml
+++ b/rest/rest-api/pom.xml
@@ -35,12 +35,19 @@
<dependencies>
<dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-core-asl</artifactId>
+ <groupId>org.apache.brooklyn</groupId>
+ <artifactId>brooklyn-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ <version>${fasterxml.jackson.version}</version>
</dependency>
<dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ <version>${fasterxml.jackson.version}</version>
</dependency>
<dependency>
<groupId>com.sun.jersey.contribs</groupId>
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/ActivityApi.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/ActivityApi.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/ActivityApi.java
index 2482608..de93c64 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/ActivityApi.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/ActivityApi.java
@@ -43,7 +43,6 @@ public interface ActivityApi {
@ApiResponses(value = {
@ApiResponse(code = 404, message = "Could not find task")
})
-// @Produces("text/json")
public TaskSummary get(
@ApiParam(value = "Task ID", required = true) @PathParam("task") String taskId
);
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/ApplicationApi.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/ApplicationApi.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/ApplicationApi.java
index c412644..cd8f22e 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/ApplicationApi.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/api/ApplicationApi.java
@@ -35,11 +35,10 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
-import org.codehaus.jackson.JsonNode;
-
import org.apache.brooklyn.rest.domain.ApplicationSpec;
import org.apache.brooklyn.rest.domain.ApplicationSummary;
import org.apache.brooklyn.rest.domain.EntitySummary;
+import org.apache.brooklyn.rest.domain.EntityDetail;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
@@ -53,20 +52,11 @@ import io.swagger.annotations.ApiParam;
public interface ApplicationApi {
@GET
- @Path("/tree")
- @ApiOperation(
- value = "Fetch applications and entities tree hierarchy"
- )
- /** @deprecated since 0.6.0 use {@link #fetch(String)} (with slightly different, but better semantics) */
- @Deprecated
- public JsonNode applicationTree();
-
- @GET
@Path("/fetch")
@ApiOperation(
value = "Fetch display details for all applications and optionally selected additional entities"
)
- public JsonNode fetch(
+ public List<EntityDetail> fetch(
@ApiParam(value="Selected additional entity ID's to include, comma-separated", required=false)
@DefaultValue("")
@QueryParam("items") String items);
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/AccessSummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/AccessSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/AccessSummary.java
index 8d5aefa..13ea344 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/AccessSummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/AccessSummary.java
@@ -21,18 +21,17 @@ 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 com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.annotations.Beta;
-import com.google.common.base.Objects;
import com.google.common.collect.ImmutableMap;
@Beta
public class AccessSummary implements Serializable {
private static final long serialVersionUID = 5097292906225042890L;
-
+
private final boolean locationProvisioningAllowed;
private final Map<String, URI> links;
@@ -51,23 +50,25 @@ public class AccessSummary implements Serializable {
public Map<String, URI> getLinks() {
return links;
}
-
+
@Override
public boolean equals(Object o) {
+ if (this == o) return true;
if (!(o instanceof AccessSummary)) return false;
- AccessSummary other = (AccessSummary) o;
- return locationProvisioningAllowed == other.isLocationProvisioningAllowed();
+ AccessSummary that = (AccessSummary) o;
+ return locationProvisioningAllowed == that.locationProvisioningAllowed &&
+ Objects.equals(links, that.links);
}
@Override
public int hashCode() {
- return Objects.hashCode(locationProvisioningAllowed);
+ return Objects.hash(locationProvisioningAllowed, links);
}
@Override
public String toString() {
return "AccessSummary{" +
- "locationProvisioningAllowed='" + locationProvisioningAllowed + '\'' +
+ "locationProvisioningAllowed=" + locationProvisioningAllowed +
", 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/ApiError.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ApiError.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ApiError.java
index f26be79..89ee744 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ApiError.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ApiError.java
@@ -21,17 +21,16 @@ package org.apache.brooklyn.rest.domain;
import static com.google.common.base.Preconditions.checkNotNull;
import java.io.Serializable;
+import java.util.Objects;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import org.apache.brooklyn.util.text.Strings;
-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.base.Optional;
import com.google.common.base.Throwables;
@@ -46,17 +45,17 @@ public class ApiError implements Serializable {
public static ApiError of(Throwable t) {
return builderFromThrowable(t).build();
}
-
+
public static ApiError of(String message) {
return builder().message(message).build();
}
-
+
/** @deprecated since 0.7.0; use {@link #builderFromThrowable(Throwable)} */
@Deprecated
public static Builder fromThrowable(Throwable t) {
return builderFromThrowable(t);
}
-
+
/**
* @return An {@link ApiError.Builder} whose message is initialised to either the throwable's
* message or the throwable's class name if the message is null and whose details are
@@ -89,17 +88,17 @@ public class ApiError implements Serializable {
public Builder errorCode(Status errorCode) {
return errorCode(errorCode.getStatusCode());
}
-
+
public Builder errorCode(Integer errorCode) {
this.errorCode = errorCode;
return this;
}
-
+
/** as {@link #prefixMessage(String, String)} with default separator of `: ` */
public Builder prefixMessage(String prefix) {
return prefixMessage(prefix, ": ");
}
-
+
/** puts a prefix in front of the message, with the given separator if there is already a message;
* if there is no message, it simply sets the prefix as the message
*/
@@ -108,7 +107,7 @@ public class ApiError implements Serializable {
else message(prefix+separatorIfMessageNotBlank+message);
return this;
}
-
+
public ApiError build() {
return new ApiError(message, details, errorCode);
}
@@ -118,25 +117,25 @@ public class ApiError implements Serializable {
public Builder fromApiError(ApiError error) {
return copy(error);
}
-
+
public Builder copy(ApiError error) {
return this
.message(error.message)
.details(error.details)
.errorCode(error.error);
}
-
+
public String getMessage() {
return message;
}
}
private final String message;
-
- @JsonSerialize(include=Inclusion.NON_EMPTY)
+
+ @JsonSerialize(include= JsonSerialize.Inclusion.NON_EMPTY)
private final String details;
- @JsonSerialize(include=Inclusion.NON_NULL)
+ @JsonSerialize(include= JsonSerialize.Inclusion.NON_NULL)
private final Integer error;
public ApiError(String message) { this(message, null); }
@@ -161,30 +160,6 @@ public class ApiError implements Serializable {
public Integer getError() {
return error;
}
-
- @Override
- public boolean equals(Object other) {
- if (this == other) return true;
- if (other == null || getClass() != other.getClass()) return false;
- ApiError that = ApiError.class.cast(other);
- return Objects.equal(this.message, that.message) &&
- Objects.equal(this.details, that.details) &&
- Objects.equal(this.error, that.error);
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(message, details, error);
- }
-
- @Override
- public String toString() {
- return Objects.toStringHelper(this)
- .add("message", message)
- .add("details", details)
- .add("error", error)
- .toString();
- }
public Response asBadRequestResponseJson() {
return asResponse(Status.BAD_REQUEST, MediaType.APPLICATION_JSON_TYPE);
@@ -196,12 +171,36 @@ public class ApiError implements Serializable {
.entity(this)
.build();
}
-
+
public Response asResponse(MediaType type) {
return asResponse(null, type);
}
-
+
public Response asJsonResponse() {
return asResponse(MediaType.APPLICATION_JSON_TYPE);
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof ApiError)) return false;
+ ApiError apiError = (ApiError) o;
+ return Objects.equals(message, apiError.message) &&
+ Objects.equals(details, apiError.details) &&
+ Objects.equals(error, apiError.error);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(message, details, error);
+ }
+
+ @Override
+ public String toString() {
+ return "ApiError{" +
+ "message='" + message + '\'' +
+ ", details='" + details + '\'' +
+ ", error=" + error +
+ '}';
+ }
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ApplicationSpec.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ApplicationSpec.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ApplicationSpec.java
index 8e82c8e..52f7efd 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ApplicationSpec.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ApplicationSpec.java
@@ -24,12 +24,11 @@ import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
-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;
import com.google.common.collect.ImmutableSet;
@@ -86,12 +85,12 @@ public class ApplicationSpec implements HasName, Serializable {
}
private final String name;
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final String type;
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final Set<EntitySpec> entities;
private final Set<String> locations;
- @JsonSerialize(include = Inclusion.NON_EMPTY)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
private final Map<String, String> config;
public ApplicationSpec(
@@ -110,7 +109,7 @@ public class ApplicationSpec implements HasName, Serializable {
this.locations = ImmutableSet.copyOf(checkNotNull(locations, "locations must be provided for an application spec"));
this.config = config == null ? Collections.<String, String>emptyMap() : ImmutableMap.<String, String>copyOf(config);
if (this.entities!=null && this.type!=null) throw new IllegalStateException("cannot supply both type and entities for an application spec");
- // valid for both to be null, e.g. for an anonymous type
+ // valid for both to be null, e.g. for an anonymous type
// if (this.entities==null && this.type==null) throw new IllegalStateException("must supply either type or entities for an application spec");
}
@@ -137,45 +136,29 @@ public class ApplicationSpec implements HasName, Serializable {
@Override
public boolean equals(Object o) {
- if (this == o)
- return true;
- if (o == null || getClass() != o.getClass())
- return false;
-
+ if (this == o) return true;
+ if (!(o instanceof ApplicationSpec)) return false;
ApplicationSpec that = (ApplicationSpec) o;
-
- if (name != null ? !name.equals(that.name) : that.name != null)
- return false;
- if (type != null ? !type.equals(that.type) : that.type != null)
- return false;
- if (entities != null ? !entities.equals(that.entities) : that.entities != null)
- return false;
- if (locations != null ? !locations.equals(that.locations) : that.locations != null)
- return false;
- if (config != null ? !config.equals(that.config) : that.config != null)
- return false;
-
- return true;
+ return Objects.equals(name, that.name) &&
+ Objects.equals(type, that.type) &&
+ Objects.equals(entities, that.entities) &&
+ Objects.equals(locations, that.locations) &&
+ Objects.equals(config, that.config);
}
@Override
public int hashCode() {
- int result = name != null ? name.hashCode() : 0;
- result = 31 * result + (type != null ? type.hashCode() : 0);
- result = 31 * result + (entities != null ? entities.hashCode() : 0);
- result = 31 * result + (locations != null ? locations.hashCode() : 0);
- result = 31 * result + (config != null ? config.hashCode() : 0);
- return result;
+ return Objects.hash(name, type, entities, locations, config);
}
@Override
public String toString() {
- return "ApplicationSpec{"
- + "name='" + name + '\''
- + ", type=" + type
- + ", entitySpecs=" + entities
- + ", locations=" + locations
- + ", config=" + config
- + '}';
- }
+ return "ApplicationSpec{" +
+ "name='" + name + '\'' +
+ ", type='" + type + '\'' +
+ ", entities=" + entities +
+ ", locations=" + locations +
+ ", 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/ApplicationSummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ApplicationSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ApplicationSummary.java
index 3d8ead9..9bc9fe6 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ApplicationSummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ApplicationSummary.java
@@ -23,9 +23,9 @@ import static com.google.common.base.Preconditions.checkNotNull;
import java.io.Serializable;
import java.net.URI;
import java.util.Map;
+import java.util.Objects;
-import org.codehaus.jackson.annotate.JsonProperty;
-
+import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.ImmutableMap;
public class ApplicationSummary implements HasId, Serializable {
@@ -63,7 +63,7 @@ public class ApplicationSummary implements HasId, Serializable {
public String getId() {
return id;
}
-
+
public ApplicationSpec getSpec() {
return spec;
}
@@ -87,31 +87,26 @@ public class ApplicationSummary implements HasId, Serializable {
@Override
public boolean equals(Object o) {
if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
+ if (!(o instanceof ApplicationSummary)) return false;
ApplicationSummary that = (ApplicationSummary) o;
-
- if (spec != null ? !spec.equals(that.spec) : that.spec != null)
- return false;
- if (status != that.status) return false;
-
- return true;
+ return Objects.equals(id, that.id) &&
+ Objects.equals(spec, that.spec) &&
+ status == that.status &&
+ Objects.equals(links, that.links);
}
@Override
public int hashCode() {
- int result = spec != null ? spec.hashCode() : 0;
- result = 31 * result + (status != null ? status.hashCode() : 0);
- return result;
+ return Objects.hash(id, spec, status, links);
}
@Override
public String toString() {
- return "Application{" +
- "id=" + id +
+ return "ApplicationSummary{" +
+ "id='" + id + '\'' +
", spec=" + spec +
", status=" + status +
+ ", 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/BrooklynFeatureSummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/BrooklynFeatureSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/BrooklynFeatureSummary.java
index 3f0c95d..97a3f68 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/BrooklynFeatureSummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/BrooklynFeatureSummary.java
@@ -23,12 +23,12 @@ 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.JsonAnyGetter;
-import org.codehaus.jackson.annotate.JsonAnySetter;
-import org.codehaus.jackson.annotate.JsonIgnore;
-import org.codehaus.jackson.annotate.JsonProperty;
-
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.Maps;
public class BrooklynFeatureSummary implements Serializable {
@@ -88,4 +88,31 @@ public class BrooklynFeatureSummary implements Serializable {
additionalData.put(name, value);
}
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof BrooklynFeatureSummary)) return false;
+ BrooklynFeatureSummary that = (BrooklynFeatureSummary) o;
+ return Objects.equals(name, that.name) &&
+ Objects.equals(symbolicName, that.symbolicName) &&
+ Objects.equals(version, that.version) &&
+ Objects.equals(lastModified, that.lastModified) &&
+ Objects.equals(additionalData, that.additionalData);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, symbolicName, version, lastModified, additionalData);
+ }
+
+ @Override
+ public String toString() {
+ return "BrooklynFeatureSummary{" +
+ "name='" + name + '\'' +
+ ", symbolicName='" + symbolicName + '\'' +
+ ", version='" + version + '\'' +
+ ", lastModified='" + lastModified + '\'' +
+ ", additionalData=" + additionalData +
+ '}';
+ }
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogEntitySummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogEntitySummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogEntitySummary.java
index 48e49cb..61724bc 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogEntitySummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogEntitySummary.java
@@ -20,25 +20,27 @@ package org.apache.brooklyn.rest.domain;
import java.net.URI;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
-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.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
public class CatalogEntitySummary extends CatalogItemSummary {
private static final long serialVersionUID = 1063908984191424539L;
- @JsonSerialize(include=Inclusion.NON_EMPTY)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
private final Set<EntityConfigSummary> config;
-
- @JsonSerialize(include=Inclusion.NON_EMPTY)
+
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
private final Set<SensorSummary> sensors;
- @JsonSerialize(include=Inclusion.NON_EMPTY)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
private final Set<EffectorSummary> effectors;
+ @JsonCreator
public CatalogEntitySummary(
@JsonProperty("symbolicName") String symbolicName,
@JsonProperty("version") String version,
@@ -48,8 +50,8 @@ public class CatalogEntitySummary extends CatalogItemSummary {
@JsonProperty("description") String description,
@JsonProperty("iconUrl") String iconUrl,
@JsonProperty("tags") Set<Object> tags,
- @JsonProperty("config") Set<EntityConfigSummary> config,
- @JsonProperty("sensors") Set<SensorSummary> sensors,
+ @JsonProperty("config") Set<EntityConfigSummary> config,
+ @JsonProperty("sensors") Set<SensorSummary> sensors,
@JsonProperty("effectors") Set<EffectorSummary> effectors,
@JsonProperty("deprecated") boolean deprecated,
@JsonProperty("links") Map<String, URI> links
@@ -63,21 +65,37 @@ public class CatalogEntitySummary extends CatalogItemSummary {
public Set<EntityConfigSummary> getConfig() {
return config;
}
-
+
public Set<SensorSummary> getSensors() {
return sensors;
}
-
+
public Set<EffectorSummary> getEffectors() {
return effectors;
}
@Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof CatalogEntitySummary)) return false;
+ if (!super.equals(o)) return false;
+ CatalogEntitySummary that = (CatalogEntitySummary) o;
+ return Objects.equals(config, that.config) &&
+ Objects.equals(sensors, that.sensors) &&
+ Objects.equals(effectors, that.effectors);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(super.hashCode(), config, sensors, effectors);
+ }
+
+ @Override
public String toString() {
- return super.toString()+"["+
- "config="+getConfig()+"; " +
- "sensors="+getSensors()+"; "+
- "effectors="+getEffectors()+"; "+
- "deprecated="+isDeprecated()+"]";
+ return "CatalogEntitySummary{" +
+ "config=" + config +
+ ", sensors=" + sensors +
+ ", effectors=" + effectors +
+ '}';
}
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogItemSummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogItemSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogItemSummary.java
index e3daf87..b2555a1 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogItemSummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogItemSummary.java
@@ -23,15 +23,12 @@ import java.net.URI;
import java.util.Collection;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
-import org.apache.commons.lang.builder.EqualsBuilder;
-import org.codehaus.jackson.annotate.JsonIgnoreProperties;
-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.JsonIgnoreProperties;
+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;
@@ -42,7 +39,7 @@ import com.google.common.collect.ImmutableMap;
public class CatalogItemSummary implements HasId, HasName, Serializable {
private static final long serialVersionUID = -823483595879417681L;
-
+
private final String id;
private final String symbolicName;
private final String version;
@@ -50,19 +47,19 @@ public class CatalogItemSummary implements HasId, HasName, Serializable {
//needed for backwards compatibility only (json serializer works on fields, not getters)
@Deprecated
private final String type;
-
+
private final String javaType;
-
+
private final String name;
- @JsonSerialize(include=Inclusion.NON_EMPTY)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
private final String description;
- @JsonSerialize(include=Inclusion.NON_EMPTY)
+ @JsonSerialize(include= JsonSerialize.Inclusion.NON_EMPTY)
private final String iconUrl;
private final String planYaml;
- @JsonSerialize(include=Inclusion.NON_EMPTY)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
private final List<Object> tags;
private final boolean deprecated;
-
+
private final Map<String, URI> links;
public CatalogItemSummary(
@@ -142,22 +139,44 @@ public class CatalogItemSummary implements HasId, HasName, Serializable {
}
@Override
- public String toString() {
- return Objects.toStringHelper(this)
- .add("id", symbolicName)
- .add("version", version)
- .add("deprecated", deprecated)
- .toString();
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof CatalogItemSummary)) return false;
+ CatalogItemSummary that = (CatalogItemSummary) o;
+ return deprecated == that.deprecated &&
+ Objects.equals(id, that.id) &&
+ Objects.equals(symbolicName, that.symbolicName) &&
+ Objects.equals(version, that.version) &&
+ Objects.equals(type, that.type) &&
+ Objects.equals(javaType, that.javaType) &&
+ Objects.equals(name, that.name) &&
+ Objects.equals(description, that.description) &&
+ Objects.equals(iconUrl, that.iconUrl) &&
+ Objects.equals(planYaml, that.planYaml) &&
+ Objects.equals(tags, that.tags) &&
+ Objects.equals(links, that.links);
}
@Override
public int hashCode() {
- return Objects.hashCode(symbolicName, version, name, javaType, tags, deprecated);
+ return Objects.hash(id, symbolicName, version, type, javaType, name, description, iconUrl, planYaml, tags, deprecated, links);
}
-
+
@Override
- public boolean equals(Object obj) {
- return EqualsBuilder.reflectionEquals(this, obj);
+ public String toString() {
+ return "CatalogItemSummary{" +
+ "id='" + id + '\'' +
+ ", symbolicName='" + symbolicName + '\'' +
+ ", version='" + version + '\'' +
+ ", type='" + type + '\'' +
+ ", javaType='" + javaType + '\'' +
+ ", name='" + name + '\'' +
+ ", description='" + description + '\'' +
+ ", iconUrl='" + iconUrl + '\'' +
+ ", planYaml='" + planYaml + '\'' +
+ ", tags=" + tags +
+ ", deprecated=" + deprecated +
+ ", 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/CatalogLocationSummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogLocationSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogLocationSummary.java
index cd94d8e..eb061c5 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogLocationSummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogLocationSummary.java
@@ -20,16 +20,16 @@ package org.apache.brooklyn.rest.domain;
import java.net.URI;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
-import org.codehaus.jackson.annotate.JsonProperty;
-
+import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.ImmutableSet;
public class CatalogLocationSummary extends CatalogItemSummary {
private static final long serialVersionUID = 8420991584336514673L;
-
+
private final Set<LocationConfigSummary> config;
public CatalogLocationSummary(
@@ -49,14 +49,29 @@ public class CatalogLocationSummary extends CatalogItemSummary {
// TODO expose config from policies
this.config = (config == null) ? ImmutableSet.<LocationConfigSummary>of() : config;
}
-
+
public Set<LocationConfigSummary> getConfig() {
return config;
}
@Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof CatalogLocationSummary)) return false;
+ if (!super.equals(o)) return false;
+ CatalogLocationSummary that = (CatalogLocationSummary) o;
+ return Objects.equals(config, that.config);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(super.hashCode(), config);
+ }
+
+ @Override
public String toString() {
- return super.toString()+"["+
- "config="+getConfig()+"]";
+ return "CatalogLocationSummary{" +
+ "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/CatalogPolicySummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogPolicySummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogPolicySummary.java
index 2b34f55..79187eb 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogPolicySummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/CatalogPolicySummary.java
@@ -20,19 +20,18 @@ package org.apache.brooklyn.rest.domain;
import java.net.URI;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
-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.ImmutableSet;
public class CatalogPolicySummary extends CatalogItemSummary {
private static final long serialVersionUID = -588856488327394445L;
-
- @JsonSerialize(include=Inclusion.NON_EMPTY)
+
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
private final Set<PolicyConfigSummary> config;
public CatalogPolicySummary(
@@ -52,14 +51,29 @@ public class CatalogPolicySummary extends CatalogItemSummary {
// TODO expose config from policies
this.config = (config == null) ? ImmutableSet.<PolicyConfigSummary>of() : config;
}
-
+
public Set<PolicyConfigSummary> getConfig() {
return config;
}
@Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof CatalogPolicySummary)) return false;
+ if (!super.equals(o)) return false;
+ CatalogPolicySummary that = (CatalogPolicySummary) o;
+ return Objects.equals(config, that.config);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(super.hashCode(), config);
+ }
+
+ @Override
public String toString() {
- return super.toString()+"["+
- "config="+getConfig()+"]";
+ return "CatalogPolicySummary{" +
+ "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/ConfigSummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ConfigSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ConfigSummary.java
index 8e3d460..22e88d6 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ConfigSummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/ConfigSummary.java
@@ -23,15 +23,15 @@ import java.net.URI;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import javax.annotation.Nullable;
import org.apache.brooklyn.config.ConfigKey;
import org.apache.brooklyn.util.collections.Jsonya;
-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.base.Function;
import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableMap;
@@ -39,20 +39,20 @@ import com.google.common.collect.ImmutableMap;
public abstract class ConfigSummary implements HasName, Serializable {
private static final long serialVersionUID = -2831796487073496730L;
-
+
private final String name;
private final String type;
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final Object defaultValue;
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final String description;
@JsonSerialize
private final boolean reconfigurable;
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final String label;
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final Double priority;
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final List<Map<String, String>> possibleValues;
protected ConfigSummary(
@@ -150,22 +150,34 @@ public abstract class ConfigSummary 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 ConfigSummary)) return false;
ConfigSummary that = (ConfigSummary) o;
-
- if (name != null ? !name.equals(that.name) : that.name != null)
- return false;
-
- return true;
+ return reconfigurable == that.reconfigurable &&
+ Objects.equals(name, that.name) &&
+ Objects.equals(type, that.type) &&
+ Objects.equals(defaultValue, that.defaultValue) &&
+ Objects.equals(description, that.description) &&
+ Objects.equals(label, that.label) &&
+ Objects.equals(priority, that.priority) &&
+ Objects.equals(possibleValues, that.possibleValues);
}
@Override
public int hashCode() {
- int result = name != null ? name.hashCode() : 0;
- return result;
+ return Objects.hash(name, type, defaultValue, description, reconfigurable, label, priority, possibleValues);
}
@Override
- public abstract String toString();
+ public String toString() {
+ return "ConfigSummary{" +
+ "name='" + name + '\'' +
+ ", type='" + type + '\'' +
+ ", defaultValue=" + defaultValue +
+ ", description='" + description + '\'' +
+ ", reconfigurable=" + reconfigurable +
+ ", label='" + label + '\'' +
+ ", priority=" + priority +
+ ", possibleValues=" + possibleValues +
+ '}';
+ }
}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EffectorSummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EffectorSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EffectorSummary.java
index 9a2d4ae..8ad7812 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EffectorSummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EffectorSummary.java
@@ -23,10 +23,8 @@ import java.net.URI;
import java.util.Map;
import java.util.Set;
-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.base.Objects;
import com.google.common.collect.ImmutableMap;
@@ -36,10 +34,10 @@ public class EffectorSummary implements HasName, Serializable {
public static class ParameterSummary<T> implements HasName, Serializable {
private static final long serialVersionUID = -6393686096290306153L;
-
+
private final String name;
private final String type;
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final String description;
private final T defaultValue;
@@ -75,9 +73,9 @@ public class EffectorSummary implements HasName, Serializable {
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
-
+
ParameterSummary<?> that = (ParameterSummary<?>) o;
-
+
return Objects.equal(this.name, that.name)
&& Objects.equal(this.type, that.type)
&& Objects.equal(this.description, that.description)
@@ -104,9 +102,9 @@ public class EffectorSummary implements HasName, Serializable {
private final String name;
private final String returnType;
private final Set<ParameterSummary<?>> parameters;
- @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 EffectorSummary(
@@ -146,42 +144,28 @@ public class EffectorSummary 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 EffectorSummary)) return false;
EffectorSummary that = (EffectorSummary) 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 (parameters != null ? !parameters.equals(that.parameters) : that.parameters != null)
- return false;
- if (returnType != null ? !returnType.equals(that.returnType) : that.returnType != null)
- return false;
-
- return true;
+ return java.util.Objects.equals(name, that.name) &&
+ java.util.Objects.equals(returnType, that.returnType) &&
+ java.util.Objects.equals(parameters, that.parameters) &&
+ java.util.Objects.equals(description, that.description) &&
+ java.util.Objects.equals(links, that.links);
}
@Override
public int hashCode() {
- int result = name != null ? name.hashCode() : 0;
- result = 31 * result + (description != null ? description.hashCode() : 0);
- result = 31 * result + (returnType != null ? returnType.hashCode() : 0);
- result = 31 * result + (parameters != null ? parameters.hashCode() : 0);
- result = 31 * result + (links != null ? links.hashCode() : 0);
- return result;
+ return java.util.Objects.hash(name, returnType, parameters, description, links);
}
@Override
public String toString() {
- return "EffectorSummary{"
- + "name='" + name + '\''
- + ", description='" + description + '\''
- + ", returnType='" + returnType + '\''
- + ", parameters=" + parameters
- + ", links=" + links
- + '}';
+ return "EffectorSummary{" +
+ "name='" + name + '\'' +
+ ", returnType='" + returnType + '\'' +
+ ", parameters=" + parameters +
+ ", 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/EntityConfigSummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntityConfigSummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntityConfigSummary.java
index 62c6717..1e1de5b 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntityConfigSummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntityConfigSummary.java
@@ -18,22 +18,22 @@
*/
package org.apache.brooklyn.rest.domain;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.google.common.collect.ImmutableMap;
import org.apache.brooklyn.config.ConfigKey;
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
import java.net.URI;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
public class EntityConfigSummary extends ConfigSummary {
private static final long serialVersionUID = -1336134336883426030L;
-
- @JsonSerialize(include = Inclusion.NON_NULL)
+
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final Map<String, URI> links;
public EntityConfigSummary(
@@ -61,10 +61,23 @@ public class EntityConfigSummary extends ConfigSummary {
}
@Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof EntityConfigSummary)) return false;
+ if (!super.equals(o)) return false;
+ EntityConfigSummary that = (EntityConfigSummary) o;
+ return Objects.equals(links, that.links);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(super.hashCode(), links);
+ }
+
+ @Override
public String toString() {
- return "EntityConfigSummary{"
- + "name='" + getName() + '\''
- + ", type='" + getType() + '\''
- + '}';
+ return "EntityConfigSummary{" +
+ "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/EntityDetail.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntityDetail.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntityDetail.java
new file mode 100644
index 0000000..830c0b1
--- /dev/null
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntityDetail.java
@@ -0,0 +1,80 @@
+/*
+ * 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.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+import org.apache.brooklyn.core.entity.lifecycle.Lifecycle;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.google.common.collect.ImmutableList;
+
+public class EntityDetail extends EntitySummary {
+
+ private static final long serialVersionUID = 100490507982229165L;
+
+ private final String parentId;
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
+ private final List<EntitySummary> children;
+ private final List<String> groupIds;
+ private final List<Map<String, String>> members;
+
+ public EntityDetail(
+ @JsonProperty("id") String id,
+ @JsonProperty("parentId") String parentId,
+ @JsonProperty("name") String name,
+ @JsonProperty("type") String type,
+ @JsonProperty("serviceUp") Boolean serviceUp,
+ @JsonProperty("serviceState") Lifecycle serviceState,
+ @JsonProperty("iconUrl") String iconUrl,
+ @JsonProperty("catalogItemId") String catalogItemId,
+ @JsonProperty("children") List<EntitySummary> children,
+ @JsonProperty("groupIds") List<String> groupIds,
+ @JsonProperty("members") List<Map<String, String>> members) {
+ super(id, name, type, catalogItemId, null);
+ this.parentId = parentId;
+ this.children = (children == null) ? ImmutableList.<EntitySummary>of() : ImmutableList.copyOf(children);
+ this.groupIds = (groupIds == null) ? ImmutableList.<String>of() : ImmutableList.copyOf(groupIds);
+ this.members = (members == null) ? ImmutableList.<Map<String,String>>of() : ImmutableList.copyOf(members);
+ }
+
+ public static long getSerialVersionUID() {
+ return serialVersionUID;
+ }
+
+ public String getParentId() {
+ return parentId;
+ }
+
+ public List<EntitySummary> getChildren() {
+ return children;
+ }
+
+ public List<String> getGroupIds() {
+ return groupIds;
+ }
+
+ public List<Map<String, String>> getMembers() {
+ return members;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a53a3f9/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntitySpec.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntitySpec.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntitySpec.java
index a7110a2..b4d9c04 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntitySpec.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntitySpec.java
@@ -20,18 +20,18 @@ package org.apache.brooklyn.rest.domain;
import static com.google.common.base.Preconditions.checkNotNull;
+import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.ImmutableMap;
-import org.codehaus.jackson.annotate.JsonProperty;
-
import java.io.Serializable;
import java.util.Collections;
import java.util.Map;
+import java.util.Objects;
public class EntitySpec implements HasName, Serializable {
private static final long serialVersionUID = -3882575609132757188L;
-
+
private final String name;
private final String type;
private final Map<String, String> config;
@@ -69,34 +69,24 @@ public class EntitySpec implements HasName, Serializable {
@Override
public boolean equals(Object o) {
if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- EntitySpec entitySpec = (EntitySpec) o;
-
- if (config != null ? !config.equals(entitySpec.config) : entitySpec.config != null)
- return false;
- if (name != null ? !name.equals(entitySpec.name) : entitySpec.name != null)
- return false;
- if (type != null ? !type.equals(entitySpec.type) : entitySpec.type != null)
- return false;
-
- return true;
+ if (!(o instanceof EntitySpec)) return false;
+ EntitySpec that = (EntitySpec) o;
+ return Objects.equals(name, that.name) &&
+ Objects.equals(type, that.type) &&
+ Objects.equals(config, that.config);
}
@Override
public int hashCode() {
- int result = name != null ? name.hashCode() : 0;
- result = 31 * result + (type != null ? type.hashCode() : 0);
- result = 31 * result + (config != null ? config.hashCode() : 0);
- return result;
+ return Objects.hash(name, type, config);
}
@Override
public String toString() {
- return "EntitySpec{"
- + "name='" + name + '\''
- + ", type='" + type + '\''
- + ", config=" + config
- + '}';
+ return "EntitySpec{" +
+ "name='" + name + '\'' +
+ ", type='" + type + '\'' +
+ ", 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/EntitySummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntitySummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntitySummary.java
index b2bb9b1..e0a585a 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntitySummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/EntitySummary.java
@@ -18,24 +18,23 @@
*/
package org.apache.brooklyn.rest.domain;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.google.common.collect.ImmutableMap;
-import org.codehaus.jackson.annotate.JsonProperty;
-import org.codehaus.jackson.map.annotate.JsonSerialize;
-import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;
-
import java.io.Serializable;
import java.net.URI;
import java.util.Map;
+import java.util.Objects;
public class EntitySummary implements HasId, HasName, Serializable {
private static final long serialVersionUID = 100490507982229165L;
-
+
private final String id;
private final String name;
private final String type;
- @JsonSerialize(include = Inclusion.NON_NULL)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
private final String catalogItemId;
private final Map<String, URI> links;
@@ -76,22 +75,29 @@ public class EntitySummary implements HasId, HasName, Serializable {
@Override
public boolean equals(Object o) {
- return (o instanceof EntitySummary) && id.equals(((EntitySummary) o).getId());
+ if (this == o) return true;
+ if (!(o instanceof EntitySummary)) return false;
+ EntitySummary that = (EntitySummary) o;
+ return Objects.equals(id, that.id) &&
+ Objects.equals(name, that.name) &&
+ Objects.equals(type, that.type) &&
+ Objects.equals(catalogItemId, that.catalogItemId) &&
+ Objects.equals(links, that.links);
}
@Override
public int hashCode() {
- return id != null ? id.hashCode() : 0;
+ return Objects.hash(id, name, type, catalogItemId, links);
}
@Override
public String toString() {
- return "EntitySummary{"
- + "id='" + id + '\''
- + ", name=" + name
- + ", type=" + type
- + ", catalogItemId=" + catalogItemId
- + ", links=" + links
- + '}';
- }
+ return "EntitySummary{" +
+ "id='" + id + '\'' +
+ ", name='" + name + '\'' +
+ ", type='" + type + '\'' +
+ ", catalogItemId='" + catalogItemId + '\'' +
+ ", 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/HighAvailabilitySummary.java
----------------------------------------------------------------------
diff --git a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/HighAvailabilitySummary.java b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/HighAvailabilitySummary.java
index c63d13f..037c08e 100644
--- a/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/HighAvailabilitySummary.java
+++ b/rest/rest-api/src/main/java/org/apache/brooklyn/rest/domain/HighAvailabilitySummary.java
@@ -21,10 +21,9 @@ 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 com.google.common.base.Objects;
+import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.ImmutableMap;
public class HighAvailabilitySummary implements Serializable {
@@ -33,13 +32,13 @@ public class HighAvailabilitySummary implements Serializable {
public static class HaNodeSummary implements Serializable {
private static final long serialVersionUID = 9205960988226816539L;
-
+
private final String nodeId;
private final URI nodeUri;
private final String status;
private final Long localTimestamp;
private final Long remoteTimestamp;
-
+
public HaNodeSummary(
@JsonProperty("nodeId") String nodeId,
@JsonProperty("nodeUri") URI nodeUri,
@@ -75,20 +74,30 @@ public class HighAvailabilitySummary implements Serializable {
@Override
public boolean equals(Object o) {
- return (o instanceof HaNodeSummary) && Objects.equal(nodeId, ((HaNodeSummary) o).getNodeId());
+ if (this == o) return true;
+ if (!(o instanceof HaNodeSummary)) return false;
+ HaNodeSummary that = (HaNodeSummary) o;
+ return Objects.equals(nodeId, that.nodeId) &&
+ Objects.equals(nodeUri, that.nodeUri) &&
+ Objects.equals(status, that.status) &&
+ Objects.equals(localTimestamp, that.localTimestamp) &&
+ Objects.equals(remoteTimestamp, that.remoteTimestamp);
}
@Override
public int hashCode() {
- return Objects.hashCode(nodeId);
+ return Objects.hash(nodeId, nodeUri, status, localTimestamp, remoteTimestamp);
}
@Override
public String toString() {
- return "HighAvailabilitySummary{"
- + "nodeId='" + nodeId + '\''
- + ", status='" + status + '\''
- + '}';
+ return "HaNodeSummary{" +
+ "nodeId='" + nodeId + '\'' +
+ ", nodeUri=" + nodeUri +
+ ", status='" + status + '\'' +
+ ", localTimestamp=" + localTimestamp +
+ ", remoteTimestamp=" + remoteTimestamp +
+ '}';
}
}
@@ -126,19 +135,27 @@ public class HighAvailabilitySummary implements Serializable {
@Override
public boolean equals(Object o) {
- return (o instanceof HighAvailabilitySummary) && ownId.equals(((HighAvailabilitySummary) o).getOwnId());
+ if (this == o) return true;
+ if (!(o instanceof HighAvailabilitySummary)) return false;
+ HighAvailabilitySummary that = (HighAvailabilitySummary) o;
+ return Objects.equals(ownId, that.ownId) &&
+ Objects.equals(masterId, that.masterId) &&
+ Objects.equals(nodes, that.nodes) &&
+ Objects.equals(links, that.links);
}
@Override
public int hashCode() {
- return ownId != null ? ownId.hashCode() : 0;
+ return Objects.hash(ownId, masterId, nodes, links);
}
@Override
public String toString() {
- return "HighAvailabilitySummary{"
- + "ownId='" + ownId + '\''
- + ", links=" + links
- + '}';
+ return "HighAvailabilitySummary{" +
+ "ownId='" + ownId + '\'' +
+ ", masterId='" + masterId + '\'' +
+ ", nodes=" + nodes +
+ ", links=" + links +
+ '}';
}
}
[4/4] brooklyn-server git commit: Closes #11
Posted by sv...@apache.org.
Closes #11
Initial work to simplify the rest server
- remove JsonNode from API interfaces
- refactor consistently toStringand hashCode and equals for the domain objects
- remove deprecated code
- simplified pom dependencies
- remove com.codehaus.jackson dependency and promote com.fasterxml.jackson usage
- adjust BrooklynJacksonSerializer to use jackson 2 api
- fix web.xml for rest-api and rest-client
- update feature.xml dependencies, following maven dependency changes
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/5c8bb4eb
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/5c8bb4eb
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/5c8bb4eb
Branch: refs/heads/master
Commit: 5c8bb4ebbc5b480226aa2c45ce167b3e950cb38f
Parents: 46ae223 1a53a3f
Author: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Authored: Wed Feb 10 12:48:24 2016 +0200
Committer: Svetoslav Neykov <sv...@cloudsoftcorp.com>
Committed: Wed Feb 10 12:48:24 2016 +0200
----------------------------------------------------------------------
camp/camp-server/pom.xml | 5 -
core/pom.xml | 8 --
.../apache/brooklyn/core/mgmt/BrooklynTags.java | 7 +-
.../brooklyn/core/mgmt/BrooklynTaskTags.java | 2 +-
.../ha/dto/BasicManagementNodeSyncRecord.java | 5 +-
.../rebind/dto/BasicCatalogItemMemento.java | 2 +-
.../mgmt/rebind/dto/BasicEntityMemento.java | 5 +-
.../mgmt/rebind/dto/MutableBrooklynMemento.java | 5 +-
karaf/features/src/main/feature/feature.xml | 25 ++--
parent/pom.xml | 27 +---
pom.xml | 7 +-
rest/rest-api/pom.xml | 15 ++-
.../apache/brooklyn/rest/api/ActivityApi.java | 1 -
.../brooklyn/rest/api/ApplicationApi.java | 14 +-
.../brooklyn/rest/domain/AccessSummary.java | 19 +--
.../apache/brooklyn/rest/domain/ApiError.java | 83 ++++++------
.../brooklyn/rest/domain/ApplicationSpec.java | 63 ++++-----
.../rest/domain/ApplicationSummary.java | 29 ++--
.../rest/domain/BrooklynFeatureSummary.java | 37 +++++-
.../rest/domain/CatalogEntitySummary.java | 50 ++++---
.../rest/domain/CatalogItemSummary.java | 69 ++++++----
.../rest/domain/CatalogLocationSummary.java | 27 +++-
.../rest/domain/CatalogPolicySummary.java | 32 +++--
.../brooklyn/rest/domain/ConfigSummary.java | 50 ++++---
.../brooklyn/rest/domain/EffectorSummary.java | 60 ++++-----
.../rest/domain/EntityConfigSummary.java | 31 +++--
.../brooklyn/rest/domain/EntityDetail.java | 80 +++++++++++
.../apache/brooklyn/rest/domain/EntitySpec.java | 38 ++----
.../brooklyn/rest/domain/EntitySummary.java | 38 +++---
.../rest/domain/HighAvailabilitySummary.java | 51 +++++---
.../brooklyn/rest/domain/LinkWithMetadata.java | 55 ++++----
.../rest/domain/LocationConfigSummary.java | 32 +++--
.../brooklyn/rest/domain/LocationSpec.java | 35 +++--
.../brooklyn/rest/domain/LocationSummary.java | 34 +++--
.../rest/domain/PolicyConfigSummary.java | 34 +++--
.../brooklyn/rest/domain/PolicySummary.java | 43 +++---
.../rest/domain/ScriptExecutionSummary.java | 48 +++++--
.../brooklyn/rest/domain/SensorSummary.java | 49 +++----
.../brooklyn/rest/domain/TaskSummary.java | 123 +++++++++++------
.../brooklyn/rest/domain/UsageStatistic.java | 38 +++---
.../brooklyn/rest/domain/UsageStatistics.java | 26 ++--
.../brooklyn/rest/domain/VersionSummary.java | 30 ++++-
rest/rest-api/src/main/webapp/WEB-INF/web.xml | 4 +-
.../rest/domain/AbstractDomainTest.java | 44 +++++++
.../brooklyn/rest/domain/ApiErrorTest.java | 18 ++-
.../rest/domain/ApplicationSpecTest.java | 37 ++----
.../rest/domain/EffectorSummaryTest.java | 37 ++----
.../brooklyn/rest/domain/EntitySpecTest.java | 20 ++-
.../brooklyn/rest/domain/EntitySummaryTest.java | 35 ++---
.../rest/domain/LocationSummaryTest.java | 41 ++++++
.../rest/domain/VersionSummaryTest.java | 51 +++-----
.../brooklyn/rest/util/RestApiTestUtils.java | 5 +-
rest/rest-client/pom.xml | 2 +-
.../rest-client/src/test/webapp/WEB-INF/web.xml | 2 +-
rest/rest-server/pom.xml | 41 ++----
.../resources/AbstractBrooklynRestResource.java | 3 +-
.../rest/resources/ApplicationResource.java | 131 +++++++------------
.../brooklyn/rest/util/WebResourceUtils.java | 2 +-
.../rest/util/json/BidiSerialization.java | 41 +++---
.../util/json/BrooklynJacksonJsonProvider.java | 31 ++---
.../json/ConfigurableSerializerProvider.java | 52 ++++----
.../ErrorAndToStringUnknownTypeSerializer.java | 41 +++---
.../rest/util/json/MultimapSerializer.java | 62 ---------
...StrictPreferringFieldsVisibilityChecker.java | 19 +--
.../rest-server/src/main/webapp/WEB-INF/web.xml | 2 +-
.../brooklyn/rest/domain/ApplicationTest.java | 17 +--
.../rest/domain/LocationSummaryTest.java | 55 --------
.../rest/resources/DescendantsTest.java | 4 +-
.../rest/resources/EntityResourceTest.java | 4 +-
.../rest/testing/BrooklynRestApiTest.java | 2 +-
.../rest/testing/BrooklynRestResourceTest.java | 2 +-
.../json/BrooklynJacksonSerializerTest.java | 6 +-
72 files changed, 1156 insertions(+), 1087 deletions(-)
----------------------------------------------------------------------