diff options
Diffstat (limited to 'dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util')
28 files changed, 1371 insertions, 0 deletions
diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/AnalyticsModelIOUtils.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/AnalyticsModelIOUtils.java new file mode 100644 index 0000000..d6d5dc2 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/AnalyticsModelIOUtils.java @@ -0,0 +1,137 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.Charset; +import java.util.Properties; + +/** + * Utility class containing methods for IO related operations + * <p> + * @author Rajiv Singla . Creation Date: 10/17/2016. + */ +public abstract class AnalyticsModelIOUtils extends AnalyticsModelJsonUtils { + + private static final Logger LOG = LoggerFactory.getLogger(AnalyticsModelIOUtils.class); + + /** + * Parses given valid JSON file Location to object of given binding class type. + * + * @param fileLocation valid JSON File Location + * @param bindingClass class Type of Binding object + * + * @param <T> binding Class Type + * + * @return binding Class Object which properties populated from JSON File Location + */ + public static final <T> T convertToJsonObject(String fileLocation, Class<T> bindingClass) { + + // Load Resource from give path + final InputStream resourceAsStream = loadResourceAsStream(fileLocation); + + // If resource is null throw an exception + if (resourceAsStream == null) { + final String errorMessage = String.format("Invalid File location: %s", fileLocation); + throw new RuntimeException(errorMessage, new FileNotFoundException(errorMessage)); + } + + // Parse input stream + try (InputStreamReader inputStreamReader = new InputStreamReader(resourceAsStream, Charset.forName("UTF-8"))) { + + return ANALYTICS_MODEL_OBJECT_MAPPER.readValue(inputStreamReader, bindingClass); + + } catch (JsonMappingException | JsonParseException e) { + + // If parsing fails due to Invalid Json or Json IO Issues throw an exception + final String errorMessage = String.format("Json parsing error while parsing Json File location: %s", + fileLocation); + + LOG.error(errorMessage); + throw new RuntimeException(errorMessage, e); + + } catch (IOException e) { + + // If parsing fails due to IO Issues throw an exception + final String errorMessage = String.format("IO Error while parsing Json File location: %s", fileLocation); + LOG.error(errorMessage); + throw new RuntimeException(errorMessage, e); + + } + + } + + /** + * Loads properties from a given file location. Throws {@link RuntimeException} if file location is invalid + * or there were exception when loading properties + * + * @param propertiesFileLocation path string for properties file + * @param properties properties object that needs to be populated with give file properties + * + * @return properties object with populated properties from properties file + * + */ + public static Properties loadPropertiesFile(String propertiesFileLocation, final Properties properties) { + + // Load Resource from give properties file path + final InputStream propertiesFileInputStream = loadResourceAsStream(propertiesFileLocation); + + // If properties file is not present throw an exception + if (propertiesFileInputStream == null) { + final String errorMessage = String.format("Invalid Properties File at location: %s", + propertiesFileLocation); + throw new RuntimeException(errorMessage, new FileNotFoundException(errorMessage)); + } + + try { + properties.load(propertiesFileInputStream); + } catch (IOException e) { + final String errorMessage = String.format("IO Exception while reading Properties File at location: %s", + propertiesFileLocation); + throw new RuntimeException(errorMessage, e); + } + + return properties; + + } + + /** + * Loads Input file from the given classpath file location and returns file InputStream + * + * @param fileLocation classpath file location + * + * @return {@link InputStream} for classpath file + */ + public static InputStream loadResourceAsStream(String fileLocation) { + // Load Resource from give path + return Thread.currentThread().getContextClassLoader().getResourceAsStream(fileLocation); + } + + +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/AnalyticsModelJsonUtils.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/AnalyticsModelJsonUtils.java new file mode 100644 index 0000000..f6b9dc9 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/AnalyticsModelJsonUtils.java @@ -0,0 +1,104 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Suppliers; +import org.openecomp.dcae.apod.analytics.model.util.json.AnalyticsModelObjectMapperSupplier; + +import java.io.IOException; +import java.io.InputStream; + +/** + * + * @author Rajiv Singla . Creation Date: 11/7/2016. + */ +public abstract class AnalyticsModelJsonUtils { + + /** + * Object mapper to be used for all TCA Json Parsing + */ + protected static final ObjectMapper ANALYTICS_MODEL_OBJECT_MAPPER = + Suppliers.memoize(new AnalyticsModelObjectMapperSupplier()).get(); + + + /** + * Converts Input Stream to given type reference object + * + * @param inputStream input stream + * @param valueTypeRef type reference + * @param <T> type of type reference + * + * @return parsed json object + * + * @throws IOException IO Exception + */ + public static <T> T readValue(InputStream inputStream, TypeReference<T> valueTypeRef) throws IOException { + return ANALYTICS_MODEL_OBJECT_MAPPER.readValue(inputStream, valueTypeRef); + } + + + /** + * Converts Input Stream to given target class object + * + * @param inputStream input stream + * @param targetClass target class type + * @param <T> type of class + * + * @return parsed json object + * + * @throws IOException IO Exception + */ + public static <T> T readValue(InputStream inputStream, Class<T> targetClass) throws IOException { + return ANALYTICS_MODEL_OBJECT_MAPPER.readValue(inputStream, targetClass); + } + + + /** + * Converts given object to JSON string + * + * @param value object that needs to converted to json string + * + * @return json string + * @throws JsonProcessingException Json Processing exception + */ + public static String writeValueAsString(Object value) throws JsonProcessingException { + return ANALYTICS_MODEL_OBJECT_MAPPER.writeValueAsString(value); + } + + + /** + * Method to deserialize JSON content from given JSON content String. + * + * @param jsonString JSON String + * @param objectClass target object class + * @param <T> object class type + * + * @return converted Object from JSON String + * + * @throws IOException IO Exception + */ + public static <T> T readValue(final String jsonString, final Class<T> objectClass) throws IOException { + return ANALYTICS_MODEL_OBJECT_MAPPER.readValue(jsonString, objectClass); + } +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/AnalyticsModelObjectMapperSupplier.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/AnalyticsModelObjectMapperSupplier.java new file mode 100644 index 0000000..75561a8 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/AnalyticsModelObjectMapperSupplier.java @@ -0,0 +1,112 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.Supplier; +import com.jayway.jsonpath.Configuration; +import com.jayway.jsonpath.JsonPath; +import com.jayway.jsonpath.Option; +import com.jayway.jsonpath.spi.json.JacksonJsonProvider; +import com.jayway.jsonpath.spi.json.JsonProvider; +import com.jayway.jsonpath.spi.mapper.JacksonMappingProvider; +import com.jayway.jsonpath.spi.mapper.MappingProvider; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; + +import java.util.EnumSet; +import java.util.Set; + +/** + *<p> + * {@link Supplier} that can be used by clients to get Object Mapper which specializes + * in serialize and deserialize - DCAE Analytics Model JSON Objects. Clients can + * choose to memoize this Supplier for performance enhancements + * <br> + * NOTE: This supplier also setups up {@link JsonPath} default + * config to make use of this Supplier object mapper + *</p> + * @author Rajiv Singla . Creation Date: 11/10/2016. + */ +@SuppressFBWarnings("SIC_INNER_SHOULD_BE_STATIC_ANON") +public class AnalyticsModelObjectMapperSupplier implements Supplier<ObjectMapper> { + + @Override + public ObjectMapper get() { + + final ObjectMapper objectMapper = new ObjectMapper(); + + // Serialize null values + objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + + // Don't fail on unknown properties + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + + // Register Common Event Format Module + objectMapper.registerModule(new CommonEventFormatModule()); + // Register TCA Policy Module + objectMapper.registerModule(new TCAPolicyModule()); + // Register TCA Facade Module + objectMapper.registerModule(new TCAFacadeModelModule()); + + + // Setup JsonPath default config + setupJsonPathDefaultConfig(objectMapper); + + return objectMapper; + } + + + /** + * Setups up default Config for {@link JsonPath} + * + * @param objectMapper Jackson object mapper + */ + private void setupJsonPathDefaultConfig(final ObjectMapper objectMapper) { + + Configuration.setDefaults(new Configuration.Defaults() { + + private final JsonProvider jsonProvider = new JacksonJsonProvider(objectMapper); + private final MappingProvider mappingProvider = new JacksonMappingProvider(objectMapper); + + @Override + public JsonProvider jsonProvider() { + return jsonProvider; + } + + @Override + public MappingProvider mappingProvider() { + return mappingProvider; + } + + @Override + public Set<Option> options() { + + // Json Path exceptions are suppressed, also missing properties are tolerated + return EnumSet.of(Option.DEFAULT_PATH_LEAF_TO_NULL, Option.SUPPRESS_EXCEPTIONS); + } + }); + + + } + +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/CommonEventFormatModule.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/CommonEventFormatModule.java new file mode 100644 index 0000000..f30cecf --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/CommonEventFormatModule.java @@ -0,0 +1,84 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json; + +import com.fasterxml.jackson.core.Version; +import com.fasterxml.jackson.databind.module.SimpleModule; +import org.openecomp.dcae.apod.analytics.model.domain.cef.AlertAction; +import org.openecomp.dcae.apod.analytics.model.domain.cef.AlertType; +import org.openecomp.dcae.apod.analytics.model.domain.cef.BaseCEFModel; +import org.openecomp.dcae.apod.analytics.model.domain.cef.CommonEventHeader; +import org.openecomp.dcae.apod.analytics.model.domain.cef.Criticality; +import org.openecomp.dcae.apod.analytics.model.domain.cef.Event; +import org.openecomp.dcae.apod.analytics.model.domain.cef.EventListener; +import org.openecomp.dcae.apod.analytics.model.domain.cef.EventSeverity; +import org.openecomp.dcae.apod.analytics.model.domain.cef.MeasurementsForVfScalingFields; +import org.openecomp.dcae.apod.analytics.model.domain.cef.PerformanceCounter; +import org.openecomp.dcae.apod.analytics.model.domain.cef.Priority; +import org.openecomp.dcae.apod.analytics.model.domain.cef.ThresholdCrossingAlertFields; +import org.openecomp.dcae.apod.analytics.model.domain.cef.VNicUsageArray; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef.AlertActionMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef.AlertTypeMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef.BaseCEFModelMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef.CommonEventHeaderMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef.CriticalityMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef.EventListenerMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef.EventMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef.EventSeverityMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef.MeasurementsForVfScalingFieldsMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef.PerformanceCounterMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef.PriorityMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef.ThresholdCrossingAlertFieldsMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef.VNicUsageArrayMixin; + +/** + * @author Rajiv Singla . Creation Date: 10/18/2016. + */ +public class CommonEventFormatModule extends SimpleModule { + + private static final long serialVersionUID = 1L; + + public CommonEventFormatModule() { + super("Common Event Format", + new Version(25, 0, 0, null, " org.openecomp.dcae.apod.analytics.model", "dcae-analytics-model")); + } + + @Override + public void setupModule(final SetupContext setupContext) { + + setupContext.setMixInAnnotations(AlertAction.class, AlertActionMixin.class); + setupContext.setMixInAnnotations(AlertType.class, AlertTypeMixin.class); + setupContext.setMixInAnnotations(BaseCEFModel.class, BaseCEFModelMixin.class); + setupContext.setMixInAnnotations(CommonEventHeader.class, CommonEventHeaderMixin.class); + setupContext.setMixInAnnotations(Criticality.class, CriticalityMixin.class); + setupContext.setMixInAnnotations(EventListener.class, EventListenerMixin.class); + setupContext.setMixInAnnotations(Event.class, EventMixin.class); + setupContext.setMixInAnnotations(EventSeverity.class, EventSeverityMixin.class); + setupContext.setMixInAnnotations(MeasurementsForVfScalingFields.class, + MeasurementsForVfScalingFieldsMixin.class); + setupContext.setMixInAnnotations(PerformanceCounter.class, PerformanceCounterMixin.class); + setupContext.setMixInAnnotations(Priority.class, PriorityMixin.class); + setupContext.setMixInAnnotations(ThresholdCrossingAlertFields.class, ThresholdCrossingAlertFieldsMixin.class); + setupContext.setMixInAnnotations(VNicUsageArray.class, VNicUsageArrayMixin.class); + + } + +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/TCAFacadeModelModule.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/TCAFacadeModelModule.java new file mode 100644 index 0000000..8f29872 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/TCAFacadeModelModule.java @@ -0,0 +1,49 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json; + +import com.fasterxml.jackson.core.Version; +import com.fasterxml.jackson.databind.module.SimpleModule; +import org.openecomp.dcae.apod.analytics.model.facade.tca.AAI; +import org.openecomp.dcae.apod.analytics.model.facade.tca.TCAVESResponse; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.facade.tca.AAIMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.facade.tca.VESCEFMessageResponseMixin; + +/** + * + * @author Rajiv Singla . Creation Date: 11/9/2016. + */ +public class TCAFacadeModelModule extends SimpleModule { + + private static final long serialVersionUID = 1L; + + public TCAFacadeModelModule() { + super("Threshold Crossing Alert Facade", + new Version(1, 0, 0, null, "org.openecomp.dace.apod.analytics.model", "dcae-analytics-model")); + } + + @Override + public void setupModule(final SetupContext setupContext) { + setupContext.setMixInAnnotations(TCAVESResponse.class, VESCEFMessageResponseMixin.class); + setupContext.setMixInAnnotations(AAI.class, AAIMixin.class); + } + +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/TCAPolicyModule.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/TCAPolicyModule.java new file mode 100644 index 0000000..ce8997c --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/TCAPolicyModule.java @@ -0,0 +1,61 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json; + +import com.fasterxml.jackson.core.Version; +import com.fasterxml.jackson.databind.module.SimpleModule; +import org.openecomp.dcae.apod.analytics.model.domain.policy.tca.BaseTCAPolicyModel; +import org.openecomp.dcae.apod.analytics.model.domain.policy.tca.Direction; +import org.openecomp.dcae.apod.analytics.model.domain.policy.tca.MetricsPerFunctionalRole; +import org.openecomp.dcae.apod.analytics.model.domain.policy.tca.TCAPolicy; +import org.openecomp.dcae.apod.analytics.model.domain.policy.tca.Threshold; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.policy.tca.BaseTCAPolicyModelMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.policy.tca.DirectionMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.policy.tca.MetricsPerFunctionalRoleMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.policy.tca.TCAPolicyMixin; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.policy.tca.ThresholdMixin; + +/** + * + * @author Rajiv Singla . Creation Date: 11/5/2016. + */ +public class TCAPolicyModule extends SimpleModule { + + private static final long serialVersionUID = 1L; + + public TCAPolicyModule() { + super("Threshold Crossing Alert Policy", + new Version(1, 0, 0, null, " org.openecomp.dcae.apod.analytics.model", "dcae-analytics-model")); + } + + @Override + public void setupModule(final SetupContext setupContext) { + + setupContext.setMixInAnnotations(BaseTCAPolicyModel.class, BaseTCAPolicyModelMixin.class); + setupContext.setMixInAnnotations(Direction.class, DirectionMixin.class); + setupContext.setMixInAnnotations(TCAPolicy.class, TCAPolicyMixin.class); + setupContext.setMixInAnnotations(MetricsPerFunctionalRole.class, MetricsPerFunctionalRoleMixin.class); + setupContext.setMixInAnnotations(Threshold.class, ThresholdMixin.class); + setupContext.setMixInAnnotations(TCAPolicy.class, TCAPolicyMixin.class); + + + } +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/BaseDynamicPropertiesProviderMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/BaseDynamicPropertiesProviderMixin.java new file mode 100644 index 0000000..8c50997 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/BaseDynamicPropertiesProviderMixin.java @@ -0,0 +1,61 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import org.openecomp.dcae.apod.analytics.model.domain.BaseDynamicPropertiesProvider; + +import java.util.Map; + +/** + * Json Mixin for {@link BaseDynamicPropertiesProvider} + * + * @author Rajiv Singla . Creation Date: 11/5/2016. + */ +public abstract class BaseDynamicPropertiesProviderMixin implements JsonMixin { + + /** + * Provides hint to Jackson Json Object mapper to bind any put all dynamic properties in a map + * + * @param propertyName dynamic property name + * @param propertyValue dynamic property value + */ + @JsonAnySetter + public abstract void addDynamicProperties(String propertyName, Object propertyValue); + + /** + * Provides hint to serialize dynamic properties as map + * + * @return dynamic properties map + */ + @JsonAnyGetter + public abstract Map<String, Object> getDynamicProperties(); + + /** + * Ignores isDynamicPropertiesPresent for json serialization + * + * @return true if dynamic properties are present + */ + @JsonIgnore + public abstract boolean isDynamicPropertiesPresent(); +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/JsonMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/JsonMixin.java new file mode 100644 index 0000000..131d1f0 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/JsonMixin.java @@ -0,0 +1,31 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin; + +import java.io.Serializable; + +/** + * Marker Interface for all Json Mixin classes + * + * @author Rajiv Singla . Creation Date: 11/3/2016. + */ +public interface JsonMixin extends Serializable { +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/AlertActionMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/AlertActionMixin.java new file mode 100644 index 0000000..45577db --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/AlertActionMixin.java @@ -0,0 +1,30 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef; + +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.JsonMixin; + +/** + * + * @author Rajiv Singla . Creation Date: 11/5/2016. + */ +public abstract class AlertActionMixin implements JsonMixin { +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/AlertTypeMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/AlertTypeMixin.java new file mode 100644 index 0000000..efed8b8 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/AlertTypeMixin.java @@ -0,0 +1,74 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; +import org.openecomp.dcae.apod.analytics.model.domain.cef.AlertType; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.JsonMixin; + +/** + * Mixin for Alert Type + * + * @author Rajiv Singla . Creation Date: 11/3/2016. + */ +public abstract class AlertTypeMixin implements JsonMixin { + + private String name; + + /** + * Provides hint to Jackson Json to parse alert type string which are not valid java variable names + * to proper java alert types + * + * @param name name of Alert coming from incoming Json + * + * @return java representation of alert type + */ + @JsonCreator + public static AlertType forValue(String name) { + + switch (name) { + case "CARD-ANOMALY": + return AlertType.CARD_ANOMALY; + case "ELEMENT-ANOMALY": + return AlertType.ELEMENT_ANOMALY; + case "INTERFACE-ANOMALY": + return AlertType.INTERFACE_ANOMALY; + case "SERVICE-ANOMALY": + return AlertType.SERVICE_ANOMALY; + default: + return AlertType.UNKNOWN; + } + + } + + /** + * Provide hint to Jackson Json to parse java object variable name to CEF specification alert String + * + * @return alert string in CEF format + */ + @JsonValue + public String getName() { + return name; + } + + +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/BaseCEFModelMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/BaseCEFModelMixin.java new file mode 100644 index 0000000..b332867 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/BaseCEFModelMixin.java @@ -0,0 +1,33 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef; + +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.BaseDynamicPropertiesProviderMixin; + +/** + * Abstract Mixin for all CEF Model Mixins + * + * @author Rajiv Singla . Creation Date: 10/18/2016. + */ +public abstract class BaseCEFModelMixin extends BaseDynamicPropertiesProviderMixin { + + +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/CommonEventHeaderMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/CommonEventHeaderMixin.java new file mode 100644 index 0000000..87fd396 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/CommonEventHeaderMixin.java @@ -0,0 +1,27 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef; + +/** + * @author Rajiv Singla . Creation Date: 10/18/2016. + */ +public abstract class CommonEventHeaderMixin extends BaseCEFModelMixin { +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/CriticalityMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/CriticalityMixin.java new file mode 100644 index 0000000..a47e4f0 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/CriticalityMixin.java @@ -0,0 +1,30 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef; + +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.JsonMixin; + +/** + * + * @author Rajiv Singla . Creation Date: 11/5/2016. + */ +public abstract class CriticalityMixin implements JsonMixin { +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/EventListenerMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/EventListenerMixin.java new file mode 100644 index 0000000..c19d386 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/EventListenerMixin.java @@ -0,0 +1,31 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef; + +/** + * Event Listener Json Mixin class + * <p> + * @author Rajiv Singla . Creation Date: 10/18/2016. + */ +public abstract class EventListenerMixin extends BaseCEFModelMixin { + + +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/EventMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/EventMixin.java new file mode 100644 index 0000000..9e9c96a --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/EventMixin.java @@ -0,0 +1,31 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef; + +/** + * Event Json Mixin class + * <p> + * @author Rajiv Singla . Creation Date: 10/18/2016. + */ +public abstract class EventMixin extends BaseCEFModelMixin { + + +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/EventSeverityMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/EventSeverityMixin.java new file mode 100644 index 0000000..48aafcf --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/EventSeverityMixin.java @@ -0,0 +1,30 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef; + +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.JsonMixin; + +/** + * + * @author Rajiv Singla . Creation Date: 11/5/2016. + */ +public abstract class EventSeverityMixin implements JsonMixin { +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/MeasurementsForVfScalingFieldsMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/MeasurementsForVfScalingFieldsMixin.java new file mode 100644 index 0000000..8cde5d6 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/MeasurementsForVfScalingFieldsMixin.java @@ -0,0 +1,39 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef; + +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; +import org.openecomp.dcae.apod.analytics.model.domain.cef.VNicUsageArray; + +import java.util.List; + +/** + * @author Rajiv Singla . Creation Date: 10/18/2016. + */ +public abstract class MeasurementsForVfScalingFieldsMixin extends BaseCEFModelMixin { + + @JsonSetter("vNicUsageArray") + public abstract void setVNicUsageArray(List<VNicUsageArray> vNicUsageArrays); + + @JsonGetter("vNicUsageArray") + public abstract List<VNicUsageArray> getVNicUsageArray(); +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/PerformanceCounterMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/PerformanceCounterMixin.java new file mode 100644 index 0000000..2c049fe --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/PerformanceCounterMixin.java @@ -0,0 +1,29 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef; + +/** + * CEF Performance Counter Mixin + * + * @author Rajiv Singla . Creation Date: 11/3/2016. + */ +public abstract class PerformanceCounterMixin extends BaseCEFModelMixin { +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/PriorityMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/PriorityMixin.java new file mode 100644 index 0000000..ee2404e --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/PriorityMixin.java @@ -0,0 +1,30 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef; + +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.JsonMixin; + +/** + * + * @author Rajiv Singla . Creation Date: 11/5/2016. + */ +public abstract class PriorityMixin implements JsonMixin { +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/ThresholdCrossingAlertFieldsMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/ThresholdCrossingAlertFieldsMixin.java new file mode 100644 index 0000000..44e17ac --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/ThresholdCrossingAlertFieldsMixin.java @@ -0,0 +1,29 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef; + +/** + * Mixin class for ThresholdCrossingAlertFields + * + * @author Rajiv Singla . Creation Date: 11/3/2016. + */ +public abstract class ThresholdCrossingAlertFieldsMixin extends BaseCEFModelMixin { +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/VNicUsageArrayMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/VNicUsageArrayMixin.java new file mode 100644 index 0000000..e882183 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/cef/VNicUsageArrayMixin.java @@ -0,0 +1,48 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.cef; + +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; + +/** + * @author Rajiv Singla . Creation Date: 10/18/2016. + */ +public abstract class VNicUsageArrayMixin extends BaseCEFModelMixin { + + /** + * Provides hint to Jackson Jackson deserialization to bind "vNicIdentifier" string to "vNicIdentifier" + * variable in CEF parsed Java Object + * + * @param name of the vNicIdentifier + */ + @JsonSetter("vNicIdentifier") + public abstract void setVNicIdentifier(String name); + + /** + * Provides hint to Jackson Jackson serialization to bind "vNicIdentifier" field to "vNicIdentifier" in json + * + * @return name of vNicIdentifier + */ + @JsonGetter("vNicIdentifier") + public abstract String getVNicIdentifier(); + +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/facade/tca/AAIMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/facade/tca/AAIMixin.java new file mode 100644 index 0000000..177b3d3 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/facade/tca/AAIMixin.java @@ -0,0 +1,55 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.facade.tca; + +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.JsonMixin; + +/** + * + * @author Rajiv Singla . Creation Date: 11/9/2016. + */ +public abstract class AAIMixin implements JsonMixin { + + private String genericVNFId; + private String genericServerId; + + @JsonGetter("generic-vnf.vnf-id") + public String getGenericVNFId() { + return genericVNFId; + } + + @JsonSetter("generic-vnf.vnf-id") + public void setGenericVNFId(String genericVNFId) { + this.genericVNFId = genericVNFId; + } + + @JsonGetter("vserver.vserver-name") + public String getGenericServerId() { + return genericServerId; + } + + @JsonSetter("vserver.vserver-name") + public void setGenericServerId(String genericServerId) { + this.genericServerId = genericServerId; + } +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/facade/tca/VESCEFMessageResponseMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/facade/tca/VESCEFMessageResponseMixin.java new file mode 100644 index 0000000..f3f44ab --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/facade/tca/VESCEFMessageResponseMixin.java @@ -0,0 +1,56 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.facade.tca; + +import com.fasterxml.jackson.annotation.JsonGetter; +import com.fasterxml.jackson.annotation.JsonSetter; +import org.openecomp.dcae.apod.analytics.model.facade.tca.AAI; +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.JsonMixin; + +/** + * + * @author Rajiv Singla . Creation Date: 11/9/2016. + */ +public abstract class VESCEFMessageResponseMixin implements JsonMixin { + + private String targetType; + private AAI aai; + + @JsonGetter("target_type") + public String getTargetType() { + return targetType; + } + + @JsonSetter("target_type") + public void setTargetType(String targetType) { + this.targetType = targetType; + } + + @JsonGetter("AAI") + public AAI getAai() { + return aai; + } + + @JsonSetter("AAI") + public void setAai(AAI aai) { + this.aai = aai; + } +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/policy/tca/BaseTCAPolicyModelMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/policy/tca/BaseTCAPolicyModelMixin.java new file mode 100644 index 0000000..9c589db --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/policy/tca/BaseTCAPolicyModelMixin.java @@ -0,0 +1,30 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.policy.tca; + +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.BaseDynamicPropertiesProviderMixin; + +/** + * + * @author Rajiv Singla . Creation Date: 11/5/2016. + */ +public abstract class BaseTCAPolicyModelMixin extends BaseDynamicPropertiesProviderMixin { +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/policy/tca/DirectionMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/policy/tca/DirectionMixin.java new file mode 100644 index 0000000..dbc66b9 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/policy/tca/DirectionMixin.java @@ -0,0 +1,30 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.policy.tca; + +import org.openecomp.dcae.apod.analytics.model.util.json.mixin.JsonMixin; + +/** + * + * @author Rajiv Singla . Creation Date: 11/5/2016. + */ +public abstract class DirectionMixin implements JsonMixin { +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/policy/tca/MetricsPerFunctionalRoleMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/policy/tca/MetricsPerFunctionalRoleMixin.java new file mode 100644 index 0000000..8ca10fc --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/policy/tca/MetricsPerFunctionalRoleMixin.java @@ -0,0 +1,28 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.policy.tca; + +/** + * + * @author Rajiv Singla . Creation Date: 11/5/2016. + */ +public abstract class MetricsPerFunctionalRoleMixin extends BaseTCAPolicyModelMixin { +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/policy/tca/TCAPolicyMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/policy/tca/TCAPolicyMixin.java new file mode 100644 index 0000000..627f211 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/policy/tca/TCAPolicyMixin.java @@ -0,0 +1,28 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.policy.tca; + +/** + * + * @author Rajiv Singla . Creation Date: 11/5/2016. + */ +public abstract class TCAPolicyMixin extends BaseTCAPolicyModelMixin { +} diff --git a/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/policy/tca/ThresholdMixin.java b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/policy/tca/ThresholdMixin.java new file mode 100644 index 0000000..d450a30 --- /dev/null +++ b/dcae-analytics-model/src/main/java/org/openecomp/dcae/apod/analytics/model/util/json/mixin/policy/tca/ThresholdMixin.java @@ -0,0 +1,44 @@ +/* + * ===============================LICENSE_START====================================== + * dcae-analytics + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============================LICENSE_END=========================================== + */ + +package org.openecomp.dcae.apod.analytics.model.util.json.mixin.policy.tca; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * + * @author Rajiv Singla . Creation Date: 11/5/2016. + */ +public abstract class ThresholdMixin extends BaseTCAPolicyModelMixin { + + @JsonIgnore + private Long actualFieldValue; + + @JsonIgnore + public Long getActualFieldValue() { + return actualFieldValue; + } + + @JsonProperty + public void setActualFieldValue(Long actualFieldValue) { + this.actualFieldValue = actualFieldValue; + } +} |