lifecycle_state: 'Incubation'
project_lead: &onap_clamp_ptl
name: 'Gervais-Martial Ngueko'
- email: 'gn422w@intl.att.com'
+ email: 'gervais-martial.ngueko@intl.att.com'
id: 'osgn422w'
company: 'ATT'
timezone: 'Europe/Brussels'
committers:
- <<: *onap_clamp_ptl
- name: 'Christophe Closset'
- email: 'cc697w@intl.att.com'
+ email: 'christophe.closset@intl.att.com'
company: 'ATT'
id: 'ChrisC'
timezone: 'Europe/Brussels'
- name: 'Eddy Hautot'
- email: 'eh552t@intl.att.com'
+ email: 'eddy.hautot@intl.att.com'
company: 'ATT'
id: 'ehautot'
timezone: 'Europe/Brussels'
- name: 'Sébastien Determe'
- email: 'sd378r@intl.att.com'
+ email: 'sebastien.determe@intl.att.com'
company: 'ATT'
id: 'sebdet'
timezone: 'Europe/Brussels'
- name: 'Xue Gao'
- email: 'xg353y@intl.att.com'
+ email: 'xue.gao@intl.att.com'
company: 'ATT'
id: 'xuegao'
timezone: 'Europe/Brussels'
<artifactId>camel-servlet-starter</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-jackson-starter</artifactId>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-gson-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-ext</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-databind</artifactId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>
<dependency>
<groupId>org.onap.sdc.sdc-tosca</groupId>
<artifactId>sdc-tosca</artifactId>
- <version>1.4.1</version>
- <exclusions>
- <exclusion>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- </exclusion>
- </exclusions>
+ <version>1.5.0</version>
</dependency>
<!-- TESTING -->
<dependency>
apt-get -y dist-upgrade && \\r
apt-get install -y openjdk-8-jre-headless\r
\r
+RUN groupadd -r onap && useradd --no-log-init -r -g onap clamp\r
+VOLUME /opt/clamp/config\r
+RUN mkdir /var/log/onap\r
+RUN chmod a+rwx /var/log/onap\r
+\r
COPY onap-clamp/clamp.jar /opt/clamp/app.jar\r
-VOLUME /etc\r
+RUN chmod 700 /opt/clamp/app.jar\r
+\r
COPY onap-clamp/startService.sh /opt/clamp/startService.sh\r
RUN chmod 700 /opt/clamp/startService.sh\r
\r
+RUN chown -R clamp:onap /opt/clamp\r
+\r
+USER clamp\r
WORKDIR /opt/clamp/\r
ENTRYPOINT ./startService.sh \r
\r
import com.att.eelf.configuration.EELFLogger;\r
import com.att.eelf.configuration.EELFManager;\r
-import com.fasterxml.jackson.core.JsonProcessingException;\r
\r
import java.io.IOException;\r
import java.util.Date;\r
* @throws ParseException\r
* In case of DCAE Json parse exception\r
*/\r
- public void setEventInventory(CldsModel cldsModel, String userId) throws ParseException, InterruptedException {\r
+ public void setEventInventory(CldsModel cldsModel, String userId) throws InterruptedException {\r
String artifactName = cldsModel.getControlName();\r
DcaeEvent dcaeEvent = new DcaeEvent();\r
DcaeInventoryResponse dcaeResponse = null;\r
dcaeEvent.setArtifactName(artifactName);\r
dcaeEvent.setEvent(DcaeEvent.EVENT_DISTRIBUTION);\r
LoggingUtils.setResponseContext("0", "Set inventory success", this.getClass().getName());\r
- } catch (JsonProcessingException e) {\r
+ } catch (ParseException e) {\r
LoggingUtils.setResponseContext("900", "Set inventory failed", this.getClass().getName());\r
LoggingUtils.setErrorContext("900", "Set inventory error");\r
logger.error("Error during JSON decoding", e);\r
return totalCount.intValue();\r
}\r
\r
- private DcaeInventoryResponse getItemsFromDcaeInventoryResponse(String responseStr)\r
- throws ParseException {\r
+ private DcaeInventoryResponse getItemsFromDcaeInventoryResponse(String responseStr) throws ParseException {\r
JSONParser parser = new JSONParser();\r
Object obj0 = parser.parse(responseStr);\r
JSONObject jsonObj = (JSONObject) obj0;\r
@Override
public void configure() {
- restConfiguration().component("servlet").bindingMode(RestBindingMode.json)
- .dataFormatProperty("prettyPrint", "true")//.enableCORS(true)
- // turn on swagger api-doc
- .apiContextPath("api-doc")
- .apiVendorExtension(true)
- .apiProperty("api.title", "Clamp Rest API").apiProperty("api.version", ClampVersioning.getCldsVersionFromProps())
- .apiProperty("base.path", "/restservices/clds/v1/");
- //.apiProperty("cors", "true");
+ restConfiguration().component("servlet").bindingMode(RestBindingMode.json).jsonDataFormat("json-gson")
+ .dataFormatProperty("prettyPrint", "true")// .enableCORS(true)
+ // turn on swagger api-doc
+ .apiContextPath("api-doc").apiVendorExtension(true).apiProperty("api.title", "Clamp Rest API")
+ .apiProperty("api.version", ClampVersioning.getCldsVersionFromProps())
+ .apiProperty("base.path", "/restservices/clds/v1/");
+ // .apiProperty("cors", "true");
}
}
package org.onap.clamp.clds.model;
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonInclude.Include;
-
import java.util.ArrayList;
import java.util.List;
/**
* Represents a CLDS Dictionary.
*/
-@JsonInclude(Include.NON_NULL)
+
public class CldsDictionary {
private String dictionaryId;
package org.onap.clamp.clds.model;
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonInclude.Include;
-
import java.util.List;
import org.onap.clamp.clds.dao.CldsDao;
/**
* Represents a CLDS Dictionary Item.
*/
-@JsonInclude(Include.NON_NULL)
public class CldsDictionaryItem {
private String dictElementId;
* limitations under the License.
* ============LICENSE_END============================================
* ===================================================================
- *
+ *
*/
package org.onap.clamp.clds.model.dcae;
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-
/**
* This class maps the DCAE inventory answer to a nice pojo.
*/
-@JsonIgnoreProperties(ignoreUnknown = true)
public class DcaeInventoryResponse {
private String typeName;
* limitations under the License.
* ============LICENSE_END============================================
* ===================================================================
- *
+ *
*/
package org.onap.clamp.clds.model.sdc;
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-
-@JsonIgnoreProperties(ignoreUnknown = true)
public class SdcArtifact {
private String artifactName;
* limitations under the License.
* ============LICENSE_END============================================
* ===================================================================
- *
+ *
*/
package org.onap.clamp.clds.model.sdc;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.math.BigDecimal;
import java.util.List;
-@JsonIgnoreProperties(ignoreUnknown = true)
public class SdcResource implements Comparable<SdcResource> {
- protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcResource.class);
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcResource.class);
protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
- private String resourceInstanceName;
- private String resourceName;
- private String resourceInvariantUUID;
- private String resourceVersion;
- private String resoucreType;
- private String resourceUuid;
- private List<SdcArtifact> artifacts;
+ private String resourceInstanceName;
+ private String resourceName;
+ private String resourceInvariantUUID;
+ private String resourceVersion;
+ private String resoucreType;
+ private String resourceUuid;
+ private List<SdcArtifact> artifacts;
public String getResourceInstanceName() {
return resourceInstanceName;
* limitations under the License.
* ============LICENSE_END============================================
* ===================================================================
- *
+ *
*/
package org.onap.clamp.clds.model.sdc;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.math.BigDecimal;
-@JsonIgnoreProperties(ignoreUnknown = true)
public class SdcResourceBasicInfo implements Comparable<SdcResourceBasicInfo> {
- protected static final EELFLogger logger = EELFManager.getInstance()
- .getLogger(SdcResourceBasicInfo.class);
+ protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SdcResourceBasicInfo.class);
protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
- private String uuid;
- private String invariantUUID;
- private String name;
- private String version;
- private String toscaModelURL;
- private String category;
- private String subCategory;
- private String resourceType;
- private String lifecycleState;
- private String lastUpdaterUserId;
+ private String uuid;
+ private String invariantUUID;
+ private String name;
+ private String version;
+ private String toscaModelURL;
+ private String category;
+ private String subCategory;
+ private String resourceType;
+ private String lifecycleState;
+ private String lastUpdaterUserId;
@Override
public int compareTo(SdcResourceBasicInfo in) {
* limitations under the License.
* ============LICENSE_END============================================
* ===================================================================
- *
+ *
*/
package org.onap.clamp.clds.model.sdc;
import java.util.List;
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-
-@JsonIgnoreProperties(ignoreUnknown = true)
public class SdcServiceDetail {
- private String uuid;
- private String invariantUUID;
- private String name;
- private String version;
- private String toscaModelURL;
- private String category;
- private String lifecycleState;
- private String lastUpdaterUserId;
- private String distributionStatus;
- private String lastUpdaterFullName;
+ private String uuid;
+ private String invariantUUID;
+ private String name;
+ private String version;
+ private String toscaModelURL;
+ private String category;
+ private String lifecycleState;
+ private String lastUpdaterUserId;
+ private String distributionStatus;
+ private String lastUpdaterFullName;
private List<SdcResource> resources;
private List<SdcArtifact> artifacts;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.Spliterators;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
+
import org.onap.clamp.clds.model.properties.AbstractModelElement;
import org.onap.clamp.clds.service.SecureServicePermission;
import org.onap.clamp.clds.service.SecureServicePermissionDeserializer;
/**
- * This class is used to access the jackson with restricted type access.
+ * This class is used to access the GSON with restricted type access.
*/
public class JsonUtils {
private static final String LOG_ELEMENT_NOT_FOUND_IN_JSON = "Value '{}' for key 'name' not found in JSON {}";
public static final Gson GSON = new GsonBuilder()
- .registerTypeAdapter(SecureServicePermission.class, new SecureServicePermissionDeserializer())
- .create();
+ .registerTypeAdapter(SecureServicePermission.class, new SecureServicePermissionDeserializer()).create();
private JsonUtils() {
}
-
/**
- * Return the value field of the json node element that has a name field equals to the given name.
+ * Return the value field of the json node element that has a name field equals
+ * to the given name.
*/
public static String getStringValueByName(JsonElement jsonElement, String name) {
- String value = extractJsonValueFromElement(jsonElement, name)
- .map(JsonUtils::extractStringValueFromElement)
+ String value = extractJsonValueFromElement(jsonElement, name).map(JsonUtils::extractStringValueFromElement)
.orElse(null);
if (value == null) {
if (logger.isDebugEnabled()) {
}
/**
- * Return an array of values for the field of the json node element that has a name field equals to the given name.
+ * Return an array of values for the field of the json node element that has a
+ * name field equals to the given name.
*/
public static List<String> getStringValuesByName(JsonElement jsonElement, String name) {
List<String> values = extractJsonValueFromElement(jsonElement, name)
}
/**
- * Return the int value field of the json node element that has a name field equals to the given name.
+ * Return the int value field of the json node element that has a name field
+ * equals to the given name.
*/
public static Integer getIntValueByName(JsonElement element, String name) {
String value = getStringValueByName(element, name);
return Integer.valueOf(value);
}
-
/**
- * Return the Json value field of the json node element that has a name field equals to the given name.
+ * Return the Json value field of the json node element that has a name field
+ * equals to the given name.
*/
public static JsonObject getJsonObjectByName(JsonElement jsonElement, String name) {
JsonObject jsonObject = extractJsonValueFromElement(jsonElement, name).map(JsonElement::getAsJsonObject)
.orElse(null);
- if (jsonObject == null) {
+ if (jsonObject == null) {
logger.warn(LOG_ELEMENT_NOT_FOUND, name);
} else {
logger.debug(LOG_ELEMENT_NOT_FOUND_IN_JSON, name, jsonElement.toString());
}
private static Optional<JsonElement> extractJsonValueFromElement(JsonElement jsonElement, String name) {
- if(jsonElement != null ){
+ if (jsonElement != null) {
if (jsonElement.isJsonArray()) {
return extractValueJsonFromArray(jsonElement, name);
} else if (hasMatchingParameterName(name, jsonElement)) {
}
private static boolean hasMatchingParameterName(String name, JsonElement element) {
- return element.isJsonObject()
- && element.getAsJsonObject().has("name")
+ return element.isJsonObject() && element.getAsJsonObject().has("name")
&& name.equals(element.getAsJsonObject().get("name").getAsString());
}
private static List<String> extractStringValuesFromElement(JsonElement element) {
if (element.isJsonArray()) {
- return StreamSupport.stream(
- Spliterators.spliteratorUnknownSize(element.getAsJsonArray().iterator(), Spliterator.ORDERED),
- false)
- .filter(JsonElement::isJsonPrimitive)
- .map(JsonElement::getAsJsonPrimitive)
- .filter(JsonPrimitive::isString)
- .map(JsonPrimitive::getAsString)
- .collect(Collectors.toList());
+ return StreamSupport
+ .stream(Spliterators.spliteratorUnknownSize(element.getAsJsonArray().iterator(), Spliterator.ORDERED),
+ false)
+ .filter(JsonElement::isJsonPrimitive).map(JsonElement::getAsJsonPrimitive)
+ .filter(JsonPrimitive::isString).map(JsonPrimitive::getAsString).collect(Collectors.toList());
} else {
String value = extractStringValueFromElement(element);
return Lists.newArrayList(value);
-╔═╗╔╗╔╔═╗╔═╗ ╔═╗┌─┐┌─┐┌─┐┌┐ ┬ ┌─┐┌┐┌┌─┐┌─┐
-║ ║║║║╠═╣╠═╝ ║ ├─┤└─┐├─┤├┴┐│ ├─┤││││ ├─┤
-╚═╝╝╚╝╩ ╩╩ ╚═╝┴ ┴└─┘┴ ┴└─┘┴─┘┴ ┴┘└┘└─┘┴ ┴
- ╔═╗╦ ╔═╗╔╦╗╔═╗
- ║ ║ ╠═╣║║║╠═╝
- ╚═╝╩═╝╩ ╩╩ ╩╩
+ _____ _ _ __ ____ ____ __ __ ____ __ ____ _ _
+( _ )( \( ) /__\ ( _ \ ( _ \( )( )( _ \( ) (_ _)( \( )
+ )(_)( ) ( /(__)\ )___/ )(_) ))(__)( ) _ < )(__ _)(_ ) (
+(_____)(_)\_)(__)(__)(__) (____/(______)(____/(____)(____)(_)\_)
+ ___ __ __ __ __ ____
+ / __)( ) /__\ ( \/ )( _ \
+ ( (__ )(__ /(__)\ ) ( )___/
+ \___)(____)(__)(__)(_/\/\_)(__)
+
+
:: Starting ::
\ No newline at end of file
"Restart": "Restart",
"Rebuild": "Rebuild",
"Migrate": "Migrate",
- "HealthCheck": "Health Check",
+ "Health-Check": "Health Check",
"ModifyConfig": "Modify Config",
"VF Module Create":"VF Module Create",
"VF Module Delete":"VF Module Delete",
package org.onap.clamp.clds.util;
+import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
-import java.io.IOException;
+import java.io.IOException;
import java.util.List;
+
import org.junit.Test;
public class JsonUtilsTest {
}
/**
- * This method test that the security hole in Jackson is not enabled in the default ObjectMapper.
+ * This method test that the security hole in GSON is not enabled in the default
+ * ObjectMapper.
*/
@Test
public void testCreateBeanDeserializer() {
assertFalse(testObject instanceof TestObject);
}
-
@Test
public void shouldReturnJsonValueByName() throws IOException {
- //given
+ // given
String modelProperties = ResourceFileUtil
.getResourceAsString("example/model-properties/custom/modelBpmnPropertiesMultiVF.json");
JsonElement globalElement = JsonUtils.GSON.fromJson(modelProperties, JsonObject.class).get("global");
- //when
+ // when
String locationName = JsonUtils.getStringValueByName(globalElement, "location");
String timeoutValue = JsonUtils.getStringValueByName(globalElement, "timeout");
- //then
+ // then
assertThat(locationName).isEqualTo("SNDGCA64");
assertThat(timeoutValue).isEqualTo("500");
}
@Test
public void shouldReturnJsonObjectByPropertyName() throws IOException {
- //given
+ // given
String modelProperties = ResourceFileUtil
.getResourceAsString("example/model-properties/custom/modelBpmnPropertiesMultiVF.json");
JsonElement globalElement = JsonUtils.GSON.fromJson(modelProperties, JsonObject.class).get("global");
- //when
+ // when
JsonObject deployParameters = JsonUtils.getJsonObjectByName(globalElement, "deployParameters");
- //then
+ // then
assertThat(deployParameters).isEqualToComparingFieldByField(DEPLOY_PARAMETERS);
}
@Test
public void shouldReturnJsonValuesByPropertyName() throws IOException {
- //given
+ // given
String modelProperties = ResourceFileUtil
.getResourceAsString("example/model-properties/custom/modelBpmnPropertiesMultiVF.json");
JsonElement globalElement = JsonUtils.GSON.fromJson(modelProperties, JsonObject.class).get("global");
- //when
+ // when
List<String> vfs = JsonUtils.getStringValuesByName(globalElement, "vf");
- //then
+ // then
assertThat(vfs).containsExactly(
"6c7aaec2-59eb-41d9-8681-b7f976ab668d",
"8sadsad0-a98s-6a7s-fd12-sadji9sa8d12",
);
}
-
@Test
public void shouldReturnJsonValueAsInteger() throws IOException {
- //given
+ // given
String modelProperties = ResourceFileUtil
.getResourceAsString("example/model-properties/custom/modelBpmnPropertiesMultiVF.json");
JsonElement globalElement = JsonUtils.GSON.fromJson(modelProperties, JsonObject.class).get("global");
- //when
+ // when
Integer timeoutValue = JsonUtils.getIntValueByName(globalElement, "timeout");
- //then
+ // then
assertThat(timeoutValue).isEqualTo(500);
}
}