From cf87afa1bbf19cdaf8b60f1e689c2b82625c14f8 Mon Sep 17 00:00:00 2001 From: sebdet Date: Wed, 11 Sep 2019 13:18:42 +0200 Subject: [PATCH] Checkstyle fixes Checkstyle fixes done to solve the Unstable build Issue-ID: CLAMP-487 Change-Id: I694b13e03dd1e7220988fd0c08bfbf12a808f7f7 Signed-off-by: sebdet --- extra/docker/clamp/docker-compose.yml | 2 +- .../authorization/AuthorizationController.java | 43 ++++++----- ...AAFConfiguration.java => AafConfiguration.java} | 2 +- .../clds/config/DefaultUserConfiguration.java | 3 +- .../clds/config/spring/CldsConfiguration.java | 5 ++ .../sdc/controller/DistributionStatusMessage.java | 18 ++--- .../sdc/controller/installer/BlueprintParser.java | 26 +++++-- .../sdc/controller/installer/ChainGenerator.java | 10 ++- .../clds/sdc/controller/installer/CsarHandler.java | 36 ++++++--- .../sdc/controller/installer/MicroService.java | 18 +++-- .../clamp/clds/service/CldsHealthcheckService.java | 6 +- .../org/onap/clamp/clds/service/CldsService.java | 5 +- .../onap/clamp/clds/service/SecureServiceBase.java | 4 +- .../java/org/onap/clamp/clds/util/CryptoUtils.java | 38 ++++----- .../org/onap/clamp/clds/util/LoggingUtils.java | 90 +++++++++++----------- ...ONAPLogConstants.java => OnapLogConstants.java} | 8 +- .../org/onap/clamp/clds/util/ResourceFileUtil.java | 14 ++-- .../org/onap/clamp/clds/util/drawing/AwtUtils.java | 28 +++---- .../onap/clamp/clds/util/drawing/ClampGraph.java | 2 +- .../clamp/clds/util/drawing/ClampGraphBuilder.java | 5 ++ .../onap/clamp/clds/util/drawing/ImageBuilder.java | 29 +++---- .../org/onap/clamp/clds/util/drawing/Painter.java | 6 +- .../onap/clamp/clds/util/drawing/SvgFacade.java | 12 ++- .../org/onap/clamp/flow/log/FlowLogOperation.java | 16 ++-- .../loop/components/external/DcaeComponent.java | 53 +++++++------ .../external/ExternalComponentState.java | 23 ++++-- .../loop/components/external/PolicyComponent.java | 3 + src/main/java/org/onap/clamp/loop/log/LoopLog.java | 9 +++ .../operational/LegacyOperationalPolicy.java | 6 +- .../policy/operational/OperationalPolicy.java | 13 ++-- .../clamp/clds/config/CldsUserJsonDecoderTest.java | 45 +++++------ .../clamp/clds/it/PermissionTestDefaultHelper.java | 30 +++----- .../onap/clamp/clds/it/PermissionTestHelper.java | 8 +- .../org/onap/clamp/clds/util/LoggingUtilsTest.java | 38 ++++----- .../clamp/clds/util/drawing/ClampGraphTest.java | 6 +- .../org/onap/clamp/flow/FlowLogOperationTest.java | 63 +++++++-------- 36 files changed, 389 insertions(+), 334 deletions(-) rename src/main/java/org/onap/clamp/clds/config/{AAFConfiguration.java => AafConfiguration.java} (98%) rename src/main/java/org/onap/clamp/clds/util/{ONAPLogConstants.java => OnapLogConstants.java} (97%) diff --git a/extra/docker/clamp/docker-compose.yml b/extra/docker/clamp/docker-compose.yml index 7026de91..1fb51118 100644 --- a/extra/docker/clamp/docker-compose.yml +++ b/extra/docker/clamp/docker-compose.yml @@ -8,7 +8,7 @@ services: ports: - "443:443" db: - image: mariadb:10.3.12 + image: mariadb:10.4.7 volumes: - "/var/lib/mysql" - "../mariadb/conf1:/etc/mysql/conf.d:ro" diff --git a/src/main/java/org/onap/clamp/authorization/AuthorizationController.java b/src/main/java/org/onap/clamp/authorization/AuthorizationController.java index f9e618c8..b49be86b 100644 --- a/src/main/java/org/onap/clamp/authorization/AuthorizationController.java +++ b/src/main/java/org/onap/clamp/authorization/AuthorizationController.java @@ -30,10 +30,9 @@ import com.att.eelf.configuration.EELFManager; import java.util.Date; -import org.onap.clamp.clds.exception.NotAuthorizedException; - import org.apache.camel.Exchange; import org.onap.clamp.clds.config.ClampProperties; +import org.onap.clamp.clds.exception.NotAuthorizedException; import org.onap.clamp.clds.service.SecureServiceBase; import org.onap.clamp.clds.service.SecureServicePermission; import org.onap.clamp.clds.util.LoggingUtils; @@ -49,9 +48,9 @@ import org.springframework.stereotype.Component; @Component public class AuthorizationController { - protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SecureServiceBase.class); - protected static final EELFLogger auditLogger = EELFManager.getInstance().getMetricsLogger(); - protected static final EELFLogger securityLogger = EELFManager.getInstance().getSecurityLogger(); + protected static final EELFLogger logger = EELFManager.getInstance().getLogger(SecureServiceBase.class); + protected static final EELFLogger auditLogger = EELFManager.getInstance().getMetricsLogger(); + protected static final EELFLogger securityLogger = EELFManager.getInstance().getSecurityLogger(); // By default we'll set it to a default handler @Autowired @@ -61,23 +60,19 @@ public class AuthorizationController { private static final String PERM_INSTANCE = "security.permission.instance"; /** - * Insert authorize the api based on the permission + * Insert authorize the api based on the permission. * - * @param camelExchange - * The Camel Exchange object containing the properties - * @param typeVar - * The type of the permissions - * @param instanceVar - * The instance of the permissions. e.g. dev - * @param action - * The action of the permissions. e.g. read + * @param camelExchange The Camel Exchange object containing the properties + * @param typeVar The type of the permissions + * @param instanceVar The instance of the permissions. e.g. dev + * @param action The action of the permissions. e.g. read */ public void authorize(Exchange camelExchange, String typeVar, String instanceVar, String action) { String type = refProp.getStringValue(PERM_PREFIX + typeVar); String instance = refProp.getStringValue(PERM_INSTANCE); if (null == type || type.isEmpty()) { - //authorization is turned off, since the permission is not defined + // authorization is turned off, since the permission is not defined return; } if (null != instanceVar && !instanceVar.isEmpty()) { @@ -90,7 +85,7 @@ public class AuthorizationController { LoggingUtils.setTimeContext(startTime, new Date()); securityLogger.debug("checking if {} has permission: {}", principalName, perm); - if (!isUserPermitted(perm)){ + if (!isUserPermitted(perm)) { String msg = principalName + " does not have permission: " + perm; LoggingUtils.setErrorContext("100", "Authorization Error"); securityLogger.warn(msg); @@ -98,14 +93,20 @@ public class AuthorizationController { } } + /** + * Insert authorize the api based on the permission. + * + * @param inPermission Security permission in input + * @return True if user is permitted + */ public boolean isUserPermitted(SecureServicePermission inPermission) { String principalName = PrincipalUtils.getPrincipalName(); // check if the user has the permission key or the permission key with a - // combination of all instance and/or all action. + // combination of all instance and/or all action. if (hasRole(inPermission.getKey()) || hasRole(inPermission.getKeyAllInstance())) { - auditLogger.info("{} authorized because user has permission with * for instance: {}", - principalName, inPermission.getKey()); + auditLogger.info("{} authorized because user has permission with * for instance: {}", principalName, + inPermission.getKey()); return true; // the rest of these don't seem to be required - isUserInRole method // appears to take * as a wildcard @@ -114,8 +115,8 @@ public class AuthorizationController { principalName, inPermission.getKey()); return true; } else if (hasRole(inPermission.getKeyAllAction())) { - auditLogger.info("{} authorized because user has permission with * for action: {}", - principalName, inPermission.getKey()); + auditLogger.info("{} authorized because user has permission with * for action: {}", principalName, + inPermission.getKey()); return true; } else { return false; diff --git a/src/main/java/org/onap/clamp/clds/config/AAFConfiguration.java b/src/main/java/org/onap/clamp/clds/config/AafConfiguration.java similarity index 98% rename from src/main/java/org/onap/clamp/clds/config/AAFConfiguration.java rename to src/main/java/org/onap/clamp/clds/config/AafConfiguration.java index 99d64fd8..b137378d 100644 --- a/src/main/java/org/onap/clamp/clds/config/AAFConfiguration.java +++ b/src/main/java/org/onap/clamp/clds/config/AafConfiguration.java @@ -33,7 +33,7 @@ import org.springframework.context.annotation.Profile; @Configuration @Profile("clamp-aaf-authentication") -public class AAFConfiguration { +public class AafConfiguration { /** * Method to return clamp cadi filter. diff --git a/src/main/java/org/onap/clamp/clds/config/DefaultUserConfiguration.java b/src/main/java/org/onap/clamp/clds/config/DefaultUserConfiguration.java index 9d4e7d0c..6a539c7e 100644 --- a/src/main/java/org/onap/clamp/clds/config/DefaultUserConfiguration.java +++ b/src/main/java/org/onap/clamp/clds/config/DefaultUserConfiguration.java @@ -56,7 +56,8 @@ public class DefaultUserConfiguration extends WebSecurityConfigurerAdapter { protected static final EELFLogger logger = EELFManager.getInstance().getLogger(DefaultUserConfiguration.class); protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger(); - private static final String SETUP_WEB_USERS_EXCEPTION_MSG = "Exception occurred during the setup of the Web users in memory"; + private static final String SETUP_WEB_USERS_EXCEPTION_MSG = "Exception occurred during the " + + " setup of the Web users in memory"; @Autowired private ClampProperties refProp; @Value("${clamp.config.security.permission.type.cl:permission-type-cl}") diff --git a/src/main/java/org/onap/clamp/clds/config/spring/CldsConfiguration.java b/src/main/java/org/onap/clamp/clds/config/spring/CldsConfiguration.java index cb608941..fdac8523 100644 --- a/src/main/java/org/onap/clamp/clds/config/spring/CldsConfiguration.java +++ b/src/main/java/org/onap/clamp/clds/config/spring/CldsConfiguration.java @@ -55,6 +55,11 @@ public class CldsConfiguration { return new EncodedPasswordBasicDataSource(); } + /** + * This loads the file system.properties. + * + * @return + */ @Bean(name = "mapper") public PropertiesFactoryBean mapper() { PropertiesFactoryBean bean = new PropertiesFactoryBean(); diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/DistributionStatusMessage.java b/src/main/java/org/onap/clamp/clds/sdc/controller/DistributionStatusMessage.java index 06c77252..c80441fa 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/DistributionStatusMessage.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/DistributionStatusMessage.java @@ -28,9 +28,9 @@ import org.onap.sdc.utils.DistributionStatusEnum; public class DistributionStatusMessage implements IDistributionStatusMessage { - private String artifactURL; - private String consumerID; - private String distributionID; + private String artifactUrl; + private String consumerId; + private String distributionId; private DistributionStatusEnum distributionStatus; private long timestamp; @@ -50,26 +50,26 @@ public class DistributionStatusMessage implements IDistributionStatusMessage { */ public DistributionStatusMessage(final String artifactUrl, final String consumerId, final String distributionId, final DistributionStatusEnum distributionStatusEnum, final long timestamp) { - this.artifactURL = artifactUrl; - this.consumerID = consumerId; - this.distributionID = distributionId; + this.artifactUrl = artifactUrl; + this.consumerId = consumerId; + this.distributionId = distributionId; this.distributionStatus = distributionStatusEnum; this.timestamp = timestamp; } @Override public String getArtifactURL() { - return artifactURL; + return artifactUrl; } @Override public String getConsumerID() { - return consumerID; + return consumerId; } @Override public String getDistributionID() { - return distributionID; + return distributionId; } @Override diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java index 3792c172..0dd231f0 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/BlueprintParser.java @@ -60,6 +60,12 @@ public class BlueprintParser { private static final String CLAMP_NODE_RELATIONSHIPS_GETS_INPUT_FROM = "clamp_node.relationships.gets_input_from"; private static final String TARGET = "target"; + /** + * Get all micro services from blueprint. + * + * @param blueprintString the blueprint in a String + * @return A set of MircoService + */ public Set getMicroServices(String blueprintString) { Set microServices = new HashSet<>(); JsonObject blueprintJson = BlueprintParser.convertToJson(blueprintString); @@ -77,6 +83,12 @@ public class BlueprintParser { return microServices; } + /** + * Does a fallback to TCA or Holmes. + * + * @param blueprintString the blueprint in a String + * @return The list of microservices + */ public List fallbackToOneMicroService(String blueprintString) { JsonObject jsonObject = BlueprintParser.convertToJson(blueprintString); JsonObject results = jsonObject.get(NODE_TEMPLATES).getAsJsonObject(); @@ -92,7 +104,7 @@ public class BlueprintParser { } String msName = theBiggestMicroServiceKey.toLowerCase().contains(HOLMES_PREFIX) ? HOLMES : TCA; return Collections - .singletonList(new MicroService(msName, "onap.policies.monitoring.cdap.tca.hi.lo.app", "", "")); + .singletonList(new MicroService(msName, "onap.policies.monitoring.cdap.tca.hi.lo.app", "", "")); } String getName(Entry entry) { @@ -124,9 +136,9 @@ public class BlueprintParser { String findModelTypeInTargetArray(JsonArray jsonArray, JsonObject nodeTemplateList, JsonObject inputList) { for (JsonElement elem : jsonArray) { String modelType = getModelType( - new AbstractMap.SimpleEntry(elem.getAsJsonObject().get(TARGET).getAsString(), - nodeTemplateList.get(elem.getAsJsonObject().get(TARGET).getAsString()).getAsJsonObject()), - nodeTemplateList, inputList); + new AbstractMap.SimpleEntry(elem.getAsJsonObject().get(TARGET).getAsString(), + nodeTemplateList.get(elem.getAsJsonObject().get(TARGET).getAsString()).getAsJsonObject()), + nodeTemplateList, inputList); if (!modelType.isEmpty()) { return modelType; } @@ -143,7 +155,7 @@ public class BlueprintParser { if (properties.get(POLICY_MODELID).isJsonObject()) { // it's a blueprint parameter return inputList.get(properties.get(POLICY_MODELID).getAsJsonObject().get(GET_INPUT).getAsString()) - .getAsJsonObject().get("default").getAsString(); + .getAsJsonObject().get("default").getAsString(); } else { // It's a direct value return properties.get(POLICY_MODELID).getAsString(); @@ -158,7 +170,7 @@ public class BlueprintParser { } MicroService getNodeRepresentation(Entry entry, JsonObject nodeTemplateList, - JsonObject inputList) { + JsonObject inputList) { String name = getName(entry); String getInputFrom = getInput(entry); String modelType = getModelType(entry, nodeTemplateList, inputList); @@ -167,7 +179,7 @@ public class BlueprintParser { private String getTarget(JsonObject elementObject) { if (elementObject.has(TYPE) && elementObject.has(TARGET) - && elementObject.get(TYPE).getAsString().equals(CLAMP_NODE_RELATIONSHIPS_GETS_INPUT_FROM)) { + && elementObject.get(TYPE).getAsString().equals(CLAMP_NODE_RELATIONSHIPS_GETS_INPUT_FROM)) { return elementObject.get(TARGET).getAsString(); } return ""; diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/ChainGenerator.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/ChainGenerator.java index 8b555fca..9e76cc93 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/ChainGenerator.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/ChainGenerator.java @@ -36,6 +36,12 @@ public class ChainGenerator { ChainGenerator() { } + /** + * Get list of microservices chain. + * + * @param input A set of microservices + * @return The list of microservice chained + */ public List getChainOfMicroServices(Set input) { LinkedList returnList = new LinkedList<>(); if (preValidate(input)) { @@ -52,7 +58,7 @@ public class ChainGenerator { private boolean preValidate(Set input) { List noInputs = input.stream().filter(ms -> "".equals(ms.getInputFrom())) - .collect(Collectors.toList()); + .collect(Collectors.toList()); return noInputs.size() == 1; } @@ -68,7 +74,7 @@ public class ChainGenerator { } private void insertNodeTemplateIntoChain(MicroService microServicetoInsert, - LinkedList chainOfMicroServices) { + LinkedList chainOfMicroServices) { int insertIndex = 0; for (int i = 0; i < chainOfMicroServices.size(); i++) { MicroService current = chainOfMicroServices.get(i); diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java index f78b9d32..471415a3 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/CsarHandler.java @@ -75,6 +75,9 @@ public class CsarHandler { public static final String DATA_DEFINITION_NAME_SUFFIX = "Definitions/data.yml"; public static final String DATA_DEFINITION_KEY = "data_types:"; + /** + * Constructor for CsarHandler taking sdc notification in input. + */ public CsarHandler(INotificationData data, String controller, String clampCsarPath) throws CsarHandlerException { this.sdcNotification = data; this.controllerName = controller; @@ -96,8 +99,16 @@ public class CsarHandler { throw new CsarHandlerException("Unable to find a CSAR in the Sdc Notification"); } + /** + * This saves the notification to disk and database. + * + * @param resultArtifact The artifact to install + * @throws SdcArtifactInstallerException In case of issues with the installation + * @throws SdcToscaParserException In case of issues with the parsing of + * the CSAR + */ public synchronized void save(IDistributionClientDownloadResult resultArtifact) - throws SdcArtifactInstallerException, SdcToscaParserException { + throws SdcArtifactInstallerException, SdcToscaParserException { try { logger.info("Writing CSAR file to: " + csarFilePath + " UUID " + artifactElement.getArtifactUUID() + ")"); Path path = Paths.get(csarFilePath); @@ -110,12 +121,12 @@ public class CsarHandler { this.loadDcaeBlueprint(); } catch (IOException e) { throw new SdcArtifactInstallerException( - "Exception caught when trying to write the CSAR on the file system to " + csarFilePath, e); + "Exception caught when trying to write the CSAR on the file system to " + csarFilePath, e); } } private IResourceInstance searchForResourceByInstanceName(String blueprintResourceInstanceName) - throws SdcArtifactInstallerException { + throws SdcArtifactInstallerException { for (IResourceInstance resource : this.sdcNotification.getResources()) { String filteredString = resource.getResourceInstanceName().replaceAll("-", ""); filteredString = filteredString.replaceAll(" ", ""); @@ -124,7 +135,7 @@ public class CsarHandler { } } throw new SdcArtifactInstallerException("Error when searching for " + blueprintResourceInstanceName - + " as ResourceInstanceName in Sdc notification and did not find it"); + + " as ResourceInstanceName in Sdc notification and did not find it"); } private void loadDcaeBlueprint() throws IOException, SdcArtifactInstallerException { @@ -135,19 +146,20 @@ public class CsarHandler { if (!entry.isDirectory() && entry.getName().contains(BLUEPRINT_TYPE)) { BlueprintArtifact blueprintArtifact = new BlueprintArtifact(); blueprintArtifact.setBlueprintArtifactName( - entry.getName().substring(entry.getName().lastIndexOf('/') + 1, entry.getName().length())); + entry.getName().substring(entry.getName().lastIndexOf('/') + 1, entry.getName().length())); blueprintArtifact - .setBlueprintInvariantServiceUuid(this.getSdcNotification().getServiceInvariantUUID()); + .setBlueprintInvariantServiceUuid(this.getSdcNotification().getServiceInvariantUUID()); try (InputStream stream = zipFile.getInputStream(entry)) { blueprintArtifact.setDcaeBlueprint(IOUtils.toString(stream, StandardCharsets.UTF_8)); } blueprintArtifact.setResourceAttached(searchForResourceByInstanceName(entry.getName().substring( - entry.getName().indexOf(RESOURCE_INSTANCE_NAME_PREFIX) + RESOURCE_INSTANCE_NAME_PREFIX.length(), - entry.getName().indexOf(RESOURCE_INSTANCE_NAME_SUFFIX)))); + entry.getName().indexOf(RESOURCE_INSTANCE_NAME_PREFIX) + + RESOURCE_INSTANCE_NAME_PREFIX.length(), + entry.getName().indexOf(RESOURCE_INSTANCE_NAME_SUFFIX)))); this.mapOfBlueprints.put(blueprintArtifact.getBlueprintArtifactName(), blueprintArtifact); logger.info("Found a blueprint entry in the CSAR " + blueprintArtifact.getBlueprintArtifactName() - + " for resource instance Name " - + blueprintArtifact.getResourceAttached().getResourceInstanceName()); + + " for resource instance Name " + + blueprintArtifact.getResourceAttached().getResourceInstanceName()); } } logger.info(this.mapOfBlueprints.size() + " blueprint(s) will be converted to closed loop"); @@ -179,7 +191,9 @@ public class CsarHandler { } /** - * Get the whole policy model Yaml. It combines the content of policies.yaml and data.yaml. + * Get the whole policy model Yaml. It combines the content of policies.yaml and + * data.yaml. + * * @return The whole policy model yaml * @throws IOException The IO Exception */ diff --git a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/MicroService.java b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/MicroService.java index 5bbc980c..68ac842c 100644 --- a/src/main/java/org/onap/clamp/clds/sdc/controller/installer/MicroService.java +++ b/src/main/java/org/onap/clamp/clds/sdc/controller/installer/MicroService.java @@ -32,6 +32,14 @@ public class MicroService { private final String inputFrom; private String mappedNameJpa; + /** + * The Micro service constructor. + * + * @param name The name in String + * @param modelType The model type + * @param inputFrom Comes from (single chained) + * @param mappedNameJpa Name in database + */ public MicroService(String name, String modelType, String inputFrom, String mappedNameJpa) { this.name = name; this.inputFrom = inputFrom; @@ -54,7 +62,7 @@ public class MicroService { @Override public String toString() { return "MicroService{" + "name='" + name + '\'' + ", modelType='" + modelType + '\'' + ", inputFrom='" - + inputFrom + '\'' + ", mappedNameJpa='" + mappedNameJpa + '\'' + '}'; + + inputFrom + '\'' + ", mappedNameJpa='" + mappedNameJpa + '\'' + '}'; } public String getMappedNameJpa() { @@ -66,14 +74,14 @@ public class MicroService { } @Override - public boolean equals(Object o) { - if (this == o) { + public boolean equals(Object obj) { + if (this == obj) { return true; } - if (o == null || getClass() != o.getClass()) { + if (obj == null || getClass() != obj.getClass()) { return false; } - MicroService that = (MicroService) o; + MicroService that = (MicroService) obj; return name.equals(that.name) && modelType.equals(that.modelType) && inputFrom.equals(that.inputFrom) && mappedNameJpa.equals(that.mappedNameJpa); } diff --git a/src/main/java/org/onap/clamp/clds/service/CldsHealthcheckService.java b/src/main/java/org/onap/clamp/clds/service/CldsHealthcheckService.java index 39c12c8f..6203cdf8 100644 --- a/src/main/java/org/onap/clamp/clds/service/CldsHealthcheckService.java +++ b/src/main/java/org/onap/clamp/clds/service/CldsHealthcheckService.java @@ -29,7 +29,7 @@ import java.util.Date; import org.onap.clamp.clds.model.CldsHealthCheck; import org.onap.clamp.clds.util.LoggingUtils; -import org.onap.clamp.clds.util.ONAPLogConstants; +import org.onap.clamp.clds.util.OnapLogConstants; import org.onap.clamp.loop.LoopController; import org.slf4j.event.Level; import org.springframework.beans.factory.annotation.Autowired; @@ -65,7 +65,7 @@ public class CldsHealthcheckService { cldsHealthCheck.setHealthCheckStatus("UP"); cldsHealthCheck.setDescription("OK"); LoggingUtils.setResponseContext("0", "Get healthcheck success", this.getClass().getName()); - util.exiting("200", "Healthcheck success", Level.INFO, ONAPLogConstants.ResponseStatus.COMPLETED); + util.exiting("200", "Healthcheck success", Level.INFO, OnapLogConstants.ResponseStatus.COMPLETED); } catch (Exception e) { logger.error("CLAMP application Heath check failed", e); LoggingUtils.setResponseContext("999", "Get healthcheck failed", this.getClass().getName()); @@ -73,7 +73,7 @@ public class CldsHealthcheckService { cldsHealthCheck.setHealthCheckStatus("DOWN"); cldsHealthCheck.setDescription("NOT-OK"); util.exiting(HttpStatus.INTERNAL_SERVER_ERROR.toString(), "Healthcheck failed", Level.INFO, - ONAPLogConstants.ResponseStatus.ERROR); + OnapLogConstants.ResponseStatus.ERROR); } return cldsHealthCheck; } diff --git a/src/main/java/org/onap/clamp/clds/service/CldsService.java b/src/main/java/org/onap/clamp/clds/service/CldsService.java index 0e809112..783ee703 100644 --- a/src/main/java/org/onap/clamp/clds/service/CldsService.java +++ b/src/main/java/org/onap/clamp/clds/service/CldsService.java @@ -35,7 +35,7 @@ import javax.servlet.http.HttpServletRequest; import org.onap.clamp.clds.model.CldsInfo; import org.onap.clamp.clds.util.LoggingUtils; -import org.onap.clamp.clds.util.ONAPLogConstants; +import org.onap.clamp.clds.util.OnapLogConstants; import org.slf4j.event.Level; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -46,6 +46,7 @@ import org.springframework.stereotype.Component; */ @Component public class CldsService extends SecureServiceBase { + /** * The constant securityLogger. */ @@ -138,7 +139,7 @@ public class CldsService extends SecureServiceBase { // audit log LoggingUtils.setTimeContext(startTime, new Date()); securityLogger.info("GET cldsInfo completed"); - util.exiting("200", "Get cldsInfo success", Level.INFO, ONAPLogConstants.ResponseStatus.COMPLETED); + util.exiting("200", "Get cldsInfo success", Level.INFO, OnapLogConstants.ResponseStatus.COMPLETED); return cldsInfo; } diff --git a/src/main/java/org/onap/clamp/clds/service/SecureServiceBase.java b/src/main/java/org/onap/clamp/clds/service/SecureServiceBase.java index 0e28a4b9..debd687c 100644 --- a/src/main/java/org/onap/clamp/clds/service/SecureServiceBase.java +++ b/src/main/java/org/onap/clamp/clds/service/SecureServiceBase.java @@ -30,7 +30,7 @@ import java.util.Date; import javax.ws.rs.NotAuthorizedException; import org.onap.clamp.clds.util.LoggingUtils; -import org.onap.clamp.clds.util.ONAPLogConstants; +import org.onap.clamp.clds.util.OnapLogConstants; import org.slf4j.event.Level; import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; @@ -213,7 +213,7 @@ public abstract class SecureServiceBase { LoggingUtils.setTimeContext(startTime, new Date()); auditLogger.info(actionDescription + " completed"); util.exiting("200", actionDescription + " success", Level.INFO, - ONAPLogConstants.ResponseStatus.COMPLETED); + OnapLogConstants.ResponseStatus.COMPLETED); } protected void auditLogInfo(String actionDescription, Date startTime) { diff --git a/src/main/java/org/onap/clamp/clds/util/CryptoUtils.java b/src/main/java/org/onap/clamp/clds/util/CryptoUtils.java index 85aae0a5..f3ccbc85 100644 --- a/src/main/java/org/onap/clamp/clds/util/CryptoUtils.java +++ b/src/main/java/org/onap/clamp/clds/util/CryptoUtils.java @@ -65,12 +65,12 @@ public final class CryptoUtils { * Definition of encryption algorithm. */ private static final String ALGORITHM = "AES"; - + /** - * AES Encryption Key environment variable for external configuration + * AES Encryption Key environment variable for external configuration. */ private static final String AES_ENCRYPTION_KEY = "AES_ENCRYPTION_KEY"; - + /** * Detailed definition of encryption algorithm. */ @@ -99,13 +99,11 @@ public final class CryptoUtils { /** * Encrypt a value based on the Clamp Encryption Key. * - * @param value - * The value to encrypt + * @param value The value to encrypt * @return The encrypted string - * @throws GeneralSecurityException - * In case of issue with the encryption - * @throws UnsupportedEncodingException - * In case of issue with the charset conversion + * @throws GeneralSecurityException In case of issue with the encryption + * @throws UnsupportedEncodingException In case of issue with the charset + * conversion */ public static String encrypt(String value) throws GeneralSecurityException { Cipher cipher = Cipher.getInstance(ALGORITHM_DETAILS, "SunJCE"); @@ -119,14 +117,11 @@ public final class CryptoUtils { /** * Decrypt a value based on the Clamp Encryption Key. * - * @param message - * The encrypted string that must be decrypted using the Clamp - * Encryption Key + * @param message The encrypted string that must be decrypted using the Clamp + * Encryption Key * @return The String decrypted - * @throws GeneralSecurityException - * In case of issue with the encryption - * @throws DecoderException - * In case of issue to decode the HexString + * @throws GeneralSecurityException In case of issue with the encryption + * @throws DecoderException In case of issue to decode the HexString */ public static String decrypt(String message) throws GeneralSecurityException, DecoderException { byte[] encryptedMessage = Hex.decodeHex(message.toCharArray()); @@ -141,11 +136,9 @@ public final class CryptoUtils { /** * Method used to generate the SecretKeySpec from a Base64 String. * - * @param keyString - * The key as a string in Base 64 + * @param keyString The key as a string in Base 64 * @return The SecretKeySpec created - * @throws DecoderException - * In case of issues with the decoding of Base64 + * @throws DecoderException In case of issues with the decoding of Base64 */ private static SecretKeySpec getSecretKeySpec(String keyString) throws DecoderException { byte[] key = Hex.decodeHex(keyString.toCharArray()); @@ -155,8 +148,7 @@ public final class CryptoUtils { /** * Reads SecretKeySpec from file specified by propertiesFileName. * - * @param propertiesFileName - * File name with properties + * @param propertiesFileName File name with properties * @return SecretKeySpec secret key spec read from propertiesFileName */ private static SecretKeySpec readSecretKeySpec(String propertiesFileName) { @@ -165,7 +157,7 @@ public final class CryptoUtils { // Workaround fix to make encryption key configurable // System environment variable takes precedence for over clds/key.properties String encryptionKey = System.getenv(AES_ENCRYPTION_KEY); - if(encryptionKey != null && encryptionKey.trim().length() > 0) { + if (encryptionKey != null && encryptionKey.trim().length() > 0) { return getSecretKeySpec(encryptionKey); } else { props.load(ResourceFileUtil.getResourceAsStream(propertiesFileName)); diff --git a/src/main/java/org/onap/clamp/clds/util/LoggingUtils.java b/src/main/java/org/onap/clamp/clds/util/LoggingUtils.java index 163ab691..1a6cca6b 100644 --- a/src/main/java/org/onap/clamp/clds/util/LoggingUtils.java +++ b/src/main/java/org/onap/clamp/clds/util/LoggingUtils.java @@ -154,10 +154,10 @@ public class LoggingUtils { * @return A string with the request ID */ public static String getRequestId() { - String requestId = MDC.get(ONAPLogConstants.MDCs.REQUEST_ID); + String requestId = MDC.get(OnapLogConstants.Mdcs.REQUEST_ID); if (requestId == null || requestId.isEmpty()) { requestId = UUID.randomUUID().toString(); - MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, requestId); + MDC.put(OnapLogConstants.Mdcs.REQUEST_ID, requestId); } return requestId; } @@ -182,13 +182,13 @@ public class LoggingUtils { MDC.clear(); checkNotNull(request); // Extract MDC values from standard HTTP headers. - final String requestId = defaultToUUID(request.getHeader(ONAPLogConstants.Headers.REQUEST_ID)); - final String invocationId = defaultToUUID(request.getHeader(ONAPLogConstants.Headers.INVOCATION_ID)); - final String partnerName = defaultToEmpty(request.getHeader(ONAPLogConstants.Headers.PARTNER_NAME)); + final String requestId = defaultToUuid(request.getHeader(OnapLogConstants.Headers.REQUEST_ID)); + final String invocationId = defaultToUuid(request.getHeader(OnapLogConstants.Headers.INVOCATION_ID)); + final String partnerName = defaultToEmpty(request.getHeader(OnapLogConstants.Headers.PARTNER_NAME)); // Default the partner name to the user name used to login to clamp if (partnerName.equalsIgnoreCase(EMPTY_MESSAGE)) { - MDC.put(ONAPLogConstants.MDCs.PARTNER_NAME, new DefaultUserNameHandler() + MDC.put(OnapLogConstants.Mdcs.PARTNER_NAME, new DefaultUserNameHandler() .retrieveUserName(SecurityContextHolder.getContext())); } @@ -196,25 +196,25 @@ public class LoggingUtils { // others, OR set them BEFORE or AFTER the invocation of #entering, // depending on where you need them to appear, OR extend the // ServiceDescriptor to add them. - MDC.put(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP, + MDC.put(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP, ZonedDateTime.now(ZoneOffset.UTC) .format(DateTimeFormatter.ISO_INSTANT)); - MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, requestId); - MDC.put(ONAPLogConstants.MDCs.INVOCATION_ID, invocationId); - MDC.put(ONAPLogConstants.MDCs.CLIENT_IP_ADDRESS, defaultToEmpty(request.getRemoteAddr())); - MDC.put(ONAPLogConstants.MDCs.SERVER_FQDN, defaultToEmpty(request.getServerName())); - MDC.put(ONAPLogConstants.MDCs.INSTANCE_UUID, defaultToEmpty(sInstanceUUID)); + MDC.put(OnapLogConstants.Mdcs.REQUEST_ID, requestId); + MDC.put(OnapLogConstants.Mdcs.INVOCATION_ID, invocationId); + MDC.put(OnapLogConstants.Mdcs.CLIENT_IP_ADDRESS, defaultToEmpty(request.getRemoteAddr())); + MDC.put(OnapLogConstants.Mdcs.SERVER_FQDN, defaultToEmpty(request.getServerName())); + MDC.put(OnapLogConstants.Mdcs.INSTANCE_UUID, defaultToEmpty(sInstanceUUID)); // Default the service name to the requestURI, in the event that // no value has been provided. if (serviceName == null || serviceName.equalsIgnoreCase(EMPTY_MESSAGE)) { - MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, request.getRequestURI()); + MDC.put(OnapLogConstants.Mdcs.SERVICE_NAME, request.getRequestURI()); } else { - MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, serviceName); + MDC.put(OnapLogConstants.Mdcs.SERVICE_NAME, serviceName); } - this.mlogger.info(ONAPLogConstants.Markers.ENTRY); + this.mlogger.info(OnapLogConstants.Markers.ENTRY); } /** @@ -226,20 +226,20 @@ public class LoggingUtils { * @param severity response severity * @param status response status code */ - public void exiting(String code, String descrption, Level severity, ONAPLogConstants.ResponseStatus status) { + public void exiting(String code, String descrption, Level severity, OnapLogConstants.ResponseStatus status) { try { - MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, defaultToEmpty(code)); - MDC.put(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION, defaultToEmpty(descrption)); - MDC.put(ONAPLogConstants.MDCs.RESPONSE_SEVERITY, defaultToEmpty(severity)); - MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, defaultToEmpty(status)); + MDC.put(OnapLogConstants.Mdcs.RESPONSE_CODE, defaultToEmpty(code)); + MDC.put(OnapLogConstants.Mdcs.RESPONSE_DESCRIPTION, defaultToEmpty(descrption)); + MDC.put(OnapLogConstants.Mdcs.RESPONSE_SEVERITY, defaultToEmpty(severity)); + MDC.put(OnapLogConstants.Mdcs.RESPONSE_STATUS_CODE, defaultToEmpty(status)); - ZonedDateTime startTime = ZonedDateTime.parse(MDC.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP), + ZonedDateTime startTime = ZonedDateTime.parse(MDC.get(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP), DateTimeFormatter.ISO_INSTANT.withZone(ZoneOffset.UTC)); ZonedDateTime endTime = ZonedDateTime.now(ZoneOffset.UTC); - MDC.put(ONAPLogConstants.MDCs.END_TIMESTAMP, endTime.format(DateTimeFormatter.ISO_INSTANT)); + MDC.put(OnapLogConstants.Mdcs.END_TIMESTAMP, endTime.format(DateTimeFormatter.ISO_INSTANT)); long duration = ChronoUnit.MILLIS.between(startTime, endTime); - MDC.put(ONAPLogConstants.MDCs.ELAPSED_TIMESTAMP, String.valueOf(duration)); - this.mlogger.info(ONAPLogConstants.Markers.EXIT); + MDC.put(OnapLogConstants.Mdcs.ELAPSED_TIMESTAMP, String.valueOf(duration)); + this.mlogger.info(OnapLogConstants.Markers.EXIT); } finally { MDC.clear(); @@ -284,8 +284,8 @@ public class LoggingUtils { // Log INVOKE*, with the invocationID as the message body. // (We didn't really want this kind of behavior in the standard, // but is it worse than new, single-message MDC?) - this.mlogger.info(ONAPLogConstants.Markers.INVOKE); - this.mlogger.info(ONAPLogConstants.Markers.INVOKE_SYNC + "{" + invocationId + "}"); + this.mlogger.info(OnapLogConstants.Markers.INVOKE); + this.mlogger.info(OnapLogConstants.Markers.INVOKE_SYNC + "{" + invocationId + "}"); } /** @@ -306,7 +306,7 @@ public class LoggingUtils { */ public void invokeReturn() { // Add the Invoke-return marker and clear the needed MDC - this.mlogger.info(ONAPLogConstants.Markers.INVOKE_RETURN); + this.mlogger.info(OnapLogConstants.Markers.INVOKE_RETURN); invokeReturnContext(); } @@ -343,7 +343,7 @@ public class LoggingUtils { * @param in to be filtered * @return input string or null */ - private static String defaultToUUID(final String in) { + private static String defaultToUuid(final String in) { if (in == null) { return UUID.randomUUID().toString(); } @@ -355,13 +355,13 @@ public class LoggingUtils { * * @param targetEntity Target entity (an external/sub component, for ex. "sdc") * @param targetServiceName Target service name (name of API invoked on target) - * @param invocationID The invocation ID + * @param invocationId The invocation ID */ - private void invokeContext(String targetEntity, String targetServiceName, String invocationID) { - MDC.put(ONAPLogConstants.MDCs.TARGET_ENTITY, defaultToEmpty(targetEntity)); - MDC.put(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME, defaultToEmpty(targetServiceName)); - MDC.put(ONAPLogConstants.MDCs.INVOCATIONID_OUT, invocationID); - MDC.put(ONAPLogConstants.MDCs.INVOKE_TIMESTAMP, + private void invokeContext(String targetEntity, String targetServiceName, String invocationId) { + MDC.put(OnapLogConstants.Mdcs.TARGET_ENTITY, defaultToEmpty(targetEntity)); + MDC.put(OnapLogConstants.Mdcs.TARGET_SERVICE_NAME, defaultToEmpty(targetServiceName)); + MDC.put(OnapLogConstants.Mdcs.INVOCATIONID_OUT, invocationId); + MDC.put(OnapLogConstants.Mdcs.INVOKE_TIMESTAMP, ZonedDateTime.now(ZoneOffset.UTC) .format(DateTimeFormatter.ISO_INSTANT)); } @@ -370,30 +370,30 @@ public class LoggingUtils { * Clear target related logging variables in thread local data via MDC. */ private void invokeReturnContext() { - MDC.remove(ONAPLogConstants.MDCs.TARGET_ENTITY); - MDC.remove(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME); - MDC.remove(ONAPLogConstants.MDCs.INVOCATIONID_OUT); - MDC.remove(ONAPLogConstants.MDCs.INVOKE_TIMESTAMP); + MDC.remove(OnapLogConstants.Mdcs.TARGET_ENTITY); + MDC.remove(OnapLogConstants.Mdcs.TARGET_SERVICE_NAME); + MDC.remove(OnapLogConstants.Mdcs.INVOCATIONID_OUT); + MDC.remove(OnapLogConstants.Mdcs.INVOKE_TIMESTAMP); } private T invokeGeneric(final T con, String targetEntity, String targetServiceName) { final String invocationId = UUID.randomUUID().toString(); // Set standard HTTP headers on (southbound request) builder. - con.setRequestProperty(ONAPLogConstants.Headers.REQUEST_ID, - defaultToEmpty(MDC.get(ONAPLogConstants.MDCs.REQUEST_ID))); - con.setRequestProperty(ONAPLogConstants.Headers.INVOCATION_ID, + con.setRequestProperty(OnapLogConstants.Headers.REQUEST_ID, + defaultToEmpty(MDC.get(OnapLogConstants.Mdcs.REQUEST_ID))); + con.setRequestProperty(OnapLogConstants.Headers.INVOCATION_ID, invocationId); - con.setRequestProperty(ONAPLogConstants.Headers.PARTNER_NAME, - defaultToEmpty(MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME))); + con.setRequestProperty(OnapLogConstants.Headers.PARTNER_NAME, + defaultToEmpty(MDC.get(OnapLogConstants.Mdcs.PARTNER_NAME))); invokeContext(targetEntity, targetServiceName, invocationId); // Log INVOKE*, with the invocationID as the message body. // (We didn't really want this kind of behavior in the standard, // but is it worse than new, single-message MDC?) - this.mlogger.info(ONAPLogConstants.Markers.INVOKE); - this.mlogger.info(ONAPLogConstants.Markers.INVOKE_SYNC + "{" + invocationId + "}"); + this.mlogger.info(OnapLogConstants.Markers.INVOKE); + this.mlogger.info(OnapLogConstants.Markers.INVOKE_SYNC + "{" + invocationId + "}"); return con; } } diff --git a/src/main/java/org/onap/clamp/clds/util/ONAPLogConstants.java b/src/main/java/org/onap/clamp/clds/util/OnapLogConstants.java similarity index 97% rename from src/main/java/org/onap/clamp/clds/util/ONAPLogConstants.java rename to src/main/java/org/onap/clamp/clds/util/OnapLogConstants.java index 906f8e03..3c896b90 100644 --- a/src/main/java/org/onap/clamp/clds/util/ONAPLogConstants.java +++ b/src/main/java/org/onap/clamp/clds/util/OnapLogConstants.java @@ -26,7 +26,7 @@ package org.onap.clamp.clds.util; /** * Constants for standard ONAP headers, MDCs, etc. */ -public final class ONAPLogConstants { +public final class OnapLogConstants { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // @@ -37,7 +37,7 @@ public final class ONAPLogConstants { /** * Hide and forbid construction. */ - private ONAPLogConstants() { + private OnapLogConstants() { throw new UnsupportedOperationException(); } @@ -73,7 +73,7 @@ public final class ONAPLogConstants { /** * MDC name constants. */ - public static final class MDCs { + public static final class Mdcs { // Tracing. //////////////////////////////////////////////////////////// @@ -146,7 +146,7 @@ public final class ONAPLogConstants { /** * Hide and forbid construction. */ - private MDCs() { + private Mdcs() { throw new UnsupportedOperationException(); } } diff --git a/src/main/java/org/onap/clamp/clds/util/ResourceFileUtil.java b/src/main/java/org/onap/clamp/clds/util/ResourceFileUtil.java index e3010797..5deee467 100644 --- a/src/main/java/org/onap/clamp/clds/util/ResourceFileUtil.java +++ b/src/main/java/org/onap/clamp/clds/util/ResourceFileUtil.java @@ -55,13 +55,11 @@ public final class ResourceFileUtil { * Return resource as a String. */ public static String getResourceAsString(String name) throws IOException { - InputStream is = getResourceAsStream(name); - Scanner scanner = new Scanner(is); - Scanner delimitedScanner = scanner.useDelimiter("\\A"); - String text = delimitedScanner.hasNext() ? delimitedScanner.next() : ""; - delimitedScanner.close(); - scanner.close(); - is.close(); - return text; + try (InputStream is = getResourceAsStream(name)) { + try (Scanner scanner = new Scanner(is)) { + Scanner delimitedScanner = scanner.useDelimiter("\\A"); + return delimitedScanner.hasNext() ? delimitedScanner.next() : ""; + } + } } } diff --git a/src/main/java/org/onap/clamp/clds/util/drawing/AwtUtils.java b/src/main/java/org/onap/clamp/clds/util/drawing/AwtUtils.java index 7a1f122e..a4a5a384 100755 --- a/src/main/java/org/onap/clamp/clds/util/drawing/AwtUtils.java +++ b/src/main/java/org/onap/clamp/clds/util/drawing/AwtUtils.java @@ -40,7 +40,7 @@ public class AwtUtils { private static final int FONT_STYLE = Font.PLAIN; private static final String FONT_FACE = "SansSerif"; private static final Color TRANSPARENT = new Color(0.0f, 0.0f, 0.0f, 0.0f); - private static final int TEXT_PADDING = 5; + private static final int TEXT_PADDING = 5; private AwtUtils() { } @@ -58,12 +58,14 @@ public class AwtUtils { static void drawArrow(Graphics2D g2d, Point from, Point to, int lineThickness) { int x2 = to.x - lineThickness; g2d.drawLine(from.x, from.y, x2 - lineThickness, to.y); - g2d.drawPolygon(new int[]{x2 - ARROW_W, x2 - ARROW_W, x2}, new int[]{to.y - ARROW_H, to.y + ARROW_H, to.y}, 3); - g2d.fillPolygon(new int[]{x2 - ARROW_W, x2 - ARROW_W, x2}, new int[]{to.y - ARROW_H, to.y + ARROW_H, to.y}, 3); + g2d.drawPolygon(new int[] { x2 - ARROW_W, x2 - ARROW_W, x2 }, + new int[] { to.y - ARROW_H, to.y + ARROW_H, to.y }, 3); + g2d.fillPolygon(new int[] { x2 - ARROW_W, x2 - ARROW_W, x2 }, + new int[] { to.y - ARROW_H, to.y + ARROW_H, to.y }, 3); } private static void addText(Graphics2D g2d, String text, Rectangle rect) { - int textBoundingBoxLimit = rect.width - 2* TEXT_PADDING; + int textBoundingBoxLimit = rect.width - 2 * TEXT_PADDING; Font font = new Font(FONT_FACE, FONT_STYLE, FONT_SIZE); font = scaleFontToFit(text, textBoundingBoxLimit, g2d, font); Font oldFont = g2d.getFont(); @@ -71,21 +73,21 @@ public class AwtUtils { g2d.setFont(font); g2d.setColor(Color.BLACK); FontMetrics fm1 = g2d.getFontMetrics(); - float x1 = rect.x + (float)(rect.width - fm1.stringWidth(text)) / 2; - float y1 = rect.y + (float)(rect.height - fm1.getHeight()) / 2 + fm1.getAscent(); + float x1 = rect.x + (float) (rect.width - fm1.stringWidth(text)) / 2; + float y1 = rect.y + (float) (rect.height - fm1.getHeight()) / 2 + fm1.getAscent(); g2d.drawString(text, x1, y1); g2d.setFont(oldFont); } - private static Font scaleFontToFit(String text, int width, Graphics2D g2d, Font pFont) { - float fontSize = pFont.getSize(); - float fWidth = g2d.getFontMetrics(pFont).stringWidth(text); - if(fWidth <= width) { - return pFont; + private static Font scaleFontToFit(String text, int width, Graphics2D g2d, Font font) { + float fontSize = font.getSize(); + float stringWidth = g2d.getFontMetrics(font).stringWidth(text); + if (stringWidth <= width) { + return font; } - fontSize = ((float)width / fWidth) * fontSize; - return pFont.deriveFont(fontSize); + fontSize = (width / stringWidth) * fontSize; + return font.deriveFont(fontSize); } } diff --git a/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraph.java b/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraph.java index 46aa67b7..6b97de8e 100755 --- a/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraph.java +++ b/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraph.java @@ -39,7 +39,7 @@ public class ClampGraph { * * @return svg string */ - public String getAsSVG() { + public String getAsSvg() { if (Objects.isNull(svg) || svg.isEmpty()) { svg = XmlTools.exportXmlDocumentAsString(this.documentBuilder.getGroupingDocument()); } diff --git a/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java b/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java index c4ced5ef..8ded0cb8 100755 --- a/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java +++ b/src/main/java/org/onap/clamp/clds/util/drawing/ClampGraphBuilder.java @@ -60,6 +60,11 @@ public class ClampGraphBuilder { return this; } + /** + * Build the SVG. + * + * @return Clamp graph (SVG) + */ public ClampGraph build() { if (microServices.isEmpty()) { throw new InvalidStateException("At least one microservice is required"); diff --git a/src/main/java/org/onap/clamp/clds/util/drawing/ImageBuilder.java b/src/main/java/org/onap/clamp/clds/util/drawing/ImageBuilder.java index 5d37701f..4b887e4d 100644 --- a/src/main/java/org/onap/clamp/clds/util/drawing/ImageBuilder.java +++ b/src/main/java/org/onap/clamp/clds/util/drawing/ImageBuilder.java @@ -29,6 +29,7 @@ import java.awt.Shape; import java.awt.Stroke; import java.awt.geom.Ellipse2D; import java.util.UUID; + import org.apache.batik.svggen.SVGGraphics2D; public class ImageBuilder { @@ -47,8 +48,8 @@ public class ImageBuilder { private static final int LINE_THICKNESS = 2; private static final int CIRCLE_RADIUS = 17; - ImageBuilder(SVGGraphics2D svgGraphics2D, DocumentBuilder documentBuilder, - Point startingPoint, int baseLength, int rectHeight) { + ImageBuilder(SVGGraphics2D svgGraphics2D, DocumentBuilder documentBuilder, Point startingPoint, int baseLength, + int rectHeight) { this.g2d = svgGraphics2D; this.documentBuilder = documentBuilder; this.currentPoint = new Point(startingPoint); @@ -69,7 +70,7 @@ public class ImageBuilder { ImageBuilder arrow() { String dataElementId = "Arrow-" + UUID.randomUUID().toString(); - Point to = new Point(currentPoint.x + (int)(baseLength*ARROW_TO_BASELINE_RATIO), currentPoint.y); + Point to = new Point(currentPoint.x + (int) (baseLength * ARROW_TO_BASELINE_RATIO), currentPoint.y); AwtUtils.drawArrow(g2d, currentPoint, to, LINE_THICKNESS); documentBuilder.pushChangestoDocument(g2d, dataElementId); currentPoint = to; @@ -77,16 +78,15 @@ public class ImageBuilder { } ImageBuilder circle(String dataElementId, int lineThickness) { - Point to = new Point(currentPoint.x + 2 * CIRCLE_RADIUS, currentPoint.y); - Shape circleStart = - new Ellipse2D.Double(currentPoint.x, currentPoint.y - CIRCLE_RADIUS, - 2 * CIRCLE_RADIUS, 2 * CIRCLE_RADIUS); + Shape circleStart = new Ellipse2D.Double(currentPoint.x, currentPoint.y - CIRCLE_RADIUS, 2 * CIRCLE_RADIUS, + 2 * CIRCLE_RADIUS); Stroke oldStroke = g2d.getStroke(); g2d.setStroke(new BasicStroke(lineThickness)); g2d.draw(circleStart); g2d.setStroke(oldStroke); documentBuilder.pushChangestoDocument(g2d, dataElementId); + Point to = new Point(currentPoint.x + 2 * CIRCLE_RADIUS, currentPoint.y); currentPoint = to; return this; } @@ -107,17 +107,18 @@ public class ImageBuilder { case POLICY: drawDiagonalLineForPolicy(point, width, height); break; + default: } } private void drawVerticalLineForCollector(Point point, int width, int height) { g2d.drawLine(point.x + width / COLLECTOR_LINE_RATIO, point.y, point.x + width / COLLECTOR_LINE_RATIO, - point.y + height); + point.y + height); } private void drawHorizontalLineForMicroService(Point point, int width, int height) { - int y = calculateMsHorizontalLineYCoordinate(point,height); - g2d.drawLine(point.x, y, point.x + width, y); + int pointY = calculateMsHorizontalLineYCoordinate(point, height); + g2d.drawLine(point.x, pointY, point.x + width, pointY); } private void drawDiagonalLineForPolicy(Point point, int width, int height) { @@ -125,13 +126,13 @@ public class ImageBuilder { } private int calculateMsHorizontalLineYCoordinate(Point point, int height) { - return (int)(point.y * height * MS_LINE_TO_HEIGHT_RATIO); + return (int) (point.y * height * MS_LINE_TO_HEIGHT_RATIO); } private Point coordinatesForRectangle(Point from, Point next) { - int x = from.x; - int y = from.y - next.y + LINE_THICKNESS / 2; - return new Point(x,y); + int pointX = from.x; + int pointY = from.y - next.y + LINE_THICKNESS / 2; + return new Point(pointX, pointY); } } diff --git a/src/main/java/org/onap/clamp/clds/util/drawing/Painter.java b/src/main/java/org/onap/clamp/clds/util/drawing/Painter.java index ebb267f7..af6caf93 100755 --- a/src/main/java/org/onap/clamp/clds/util/drawing/Painter.java +++ b/src/main/java/org/onap/clamp/clds/util/drawing/Painter.java @@ -48,7 +48,7 @@ public class Painter { /** * Constructor to create instance of Painter. * - * @param svgGraphics2D svg graphics + * @param svgGraphics2D svg graphics * @param documentBuilder document builder */ public Painter(SVGGraphics2D svgGraphics2D, DocumentBuilder documentBuilder) { @@ -61,7 +61,7 @@ public class Painter { int numOfRectangles = 2 + microServices.size(); int numOfArrows = numOfRectangles + 1; int baseLength = (canvasSize - 2 * CIRCLE_RADIUS) / (numOfArrows + numOfRectangles); - if(baseLength < MINIMUM_BASE_LENGTH) { + if (baseLength < MINIMUM_BASE_LENGTH) { baseLength = MINIMUM_BASE_LENGTH; } int rectHeight = (int) (baseLength / RECT_RATIO); @@ -77,7 +77,7 @@ public class Painter { } private void doTheActualDrawing(String collector, List microServices, String policy, - ImageBuilder ib) { + ImageBuilder ib) { ib.circle("start-circle", SLIM_LINE).arrow().rectangle(collector, RectTypes.COLECTOR, collector); for (MicroService ms : microServices) { diff --git a/src/main/java/org/onap/clamp/clds/util/drawing/SvgFacade.java b/src/main/java/org/onap/clamp/clds/util/drawing/SvgFacade.java index f7bf92bf..ae0c1729 100644 --- a/src/main/java/org/onap/clamp/clds/util/drawing/SvgFacade.java +++ b/src/main/java/org/onap/clamp/clds/util/drawing/SvgFacade.java @@ -34,15 +34,21 @@ import org.w3c.dom.Document; @Component public class SvgFacade { + /** + * Generate the SVG images from the microservice Chain. + * + * @param microServicesChain THe chain of microservices + * @return A String containing the SVG + */ public String getSvgImage(List microServicesChain) { SVGGraphics2D svgGraphics2D = new SVGGraphics2D(XmlTools.createEmptySvgDocument()); Document document = XmlTools.createEmptySvgDocument(); DocumentBuilder dp = new DocumentBuilder(document, svgGraphics2D.getDOMFactory()); - Painter p = new Painter(svgGraphics2D, dp); - ClampGraphBuilder cgp = new ClampGraphBuilder(p).collector("VES"); + Painter painter = new Painter(svgGraphics2D, dp); + ClampGraphBuilder cgp = new ClampGraphBuilder(painter).collector("VES"); cgp.addAllMicroServices(microServicesChain); ClampGraph cg = cgp.policy("OperationalPolicy").build(); - return cg.getAsSVG(); + return cg.getAsSvg(); } } diff --git a/src/main/java/org/onap/clamp/flow/log/FlowLogOperation.java b/src/main/java/org/onap/clamp/flow/log/FlowLogOperation.java index 3da93b26..868e424e 100644 --- a/src/main/java/org/onap/clamp/flow/log/FlowLogOperation.java +++ b/src/main/java/org/onap/clamp/flow/log/FlowLogOperation.java @@ -30,7 +30,7 @@ import javax.servlet.http.HttpServletRequest; import org.apache.camel.Exchange; import org.onap.clamp.clds.util.LoggingUtils; -import org.onap.clamp.clds.util.ONAPLogConstants; +import org.onap.clamp.clds.util.OnapLogConstants; import org.slf4j.event.Level; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -57,18 +57,18 @@ public class FlowLogOperation { */ public void startLog(Exchange exchange, String serviceDesc) { util.entering(request, serviceDesc); - exchange.setProperty(ONAPLogConstants.Headers.REQUEST_ID, util.getProperties(ONAPLogConstants.MDCs.REQUEST_ID)); - exchange.setProperty(ONAPLogConstants.Headers.INVOCATION_ID, - util.getProperties(ONAPLogConstants.MDCs.INVOCATION_ID)); - exchange.setProperty(ONAPLogConstants.Headers.PARTNER_NAME, - util.getProperties(ONAPLogConstants.MDCs.PARTNER_NAME)); + exchange.setProperty(OnapLogConstants.Headers.REQUEST_ID, util.getProperties(OnapLogConstants.Mdcs.REQUEST_ID)); + exchange.setProperty(OnapLogConstants.Headers.INVOCATION_ID, + util.getProperties(OnapLogConstants.Mdcs.INVOCATION_ID)); + exchange.setProperty(OnapLogConstants.Headers.PARTNER_NAME, + util.getProperties(OnapLogConstants.Mdcs.PARTNER_NAME)); } /** * Generate the exiting log. */ public void endLog() { - util.exiting(HttpStatus.OK.toString(), "Successful", Level.INFO, ONAPLogConstants.ResponseStatus.COMPLETED); + util.exiting(HttpStatus.OK.toString(), "Successful", Level.INFO, OnapLogConstants.ResponseStatus.COMPLETED); } /** @@ -76,7 +76,7 @@ public class FlowLogOperation { */ public void errorLog() { util.exiting(HttpStatus.INTERNAL_SERVER_ERROR.toString(), "Failed", Level.INFO, - ONAPLogConstants.ResponseStatus.ERROR); + OnapLogConstants.ResponseStatus.ERROR); } /** diff --git a/src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java b/src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java index 35b3a454..9b131299 100644 --- a/src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java +++ b/src/main/java/org/onap/clamp/loop/components/external/DcaeComponent.java @@ -40,27 +40,27 @@ public class DcaeComponent extends ExternalComponent { private static final String DCAE_INPUTS = "inputs"; public static final ExternalComponentState BLUEPRINT_DEPLOYED = new ExternalComponentState("BLUEPRINT_DEPLOYED", - "The DCAE blueprint has been found in the DCAE inventory but not yet instancianted for this loop"); + "The DCAE blueprint has been found in the DCAE inventory but not yet instancianted for this loop"); public static final ExternalComponentState PROCESSING_MICROSERVICE_INSTALLATION = new ExternalComponentState( - "PROCESSING_MICROSERVICE_INSTALLATION", - "Clamp has requested DCAE to install the microservices defined in the DCAE blueprint and it's currently processing the request"); + "PROCESSING_MICROSERVICE_INSTALLATION", "Clamp has requested DCAE to install the microservices " + + "defined in the DCAE blueprint and it's currently processing the request"); public static final ExternalComponentState MICROSERVICE_INSTALLATION_FAILED = new ExternalComponentState( - "MICROSERVICE_INSTALLATION_FAILED", - "Clamp has requested DCAE to install the microservices defined in the DCAE blueprint and it failed"); + "MICROSERVICE_INSTALLATION_FAILED", + "Clamp has requested DCAE to install the microservices defined in the DCAE blueprint and it failed"); public static final ExternalComponentState MICROSERVICE_INSTALLED_SUCCESSFULLY = new ExternalComponentState( - "MICROSERVICE_INSTALLED_SUCCESSFULLY", - "Clamp has requested DCAE to install the DCAE blueprint and it has been installed successfully"); + "MICROSERVICE_INSTALLED_SUCCESSFULLY", + "Clamp has requested DCAE to install the DCAE blueprint and it has been installed successfully"); public static final ExternalComponentState PROCESSING_MICROSERVICE_UNINSTALLATION = new ExternalComponentState( - "PROCESSING_MICROSERVICE_UNINSTALLATION", - "Clamp has requested DCAE to uninstall the microservices defined in the DCAE blueprint and it's currently processing the request"); + "PROCESSING_MICROSERVICE_UNINSTALLATION", "Clamp has requested DCAE to uninstall the microservices " + + "defined in the DCAE blueprint and it's currently processing the request"); public static final ExternalComponentState MICROSERVICE_UNINSTALLATION_FAILED = new ExternalComponentState( - "MICROSERVICE_UNINSTALLATION_FAILED", - "Clamp has requested DCAE to uninstall the microservices defined in the DCAE blueprint and it failed"); + "MICROSERVICE_UNINSTALLATION_FAILED", + "Clamp has requested DCAE to uninstall the microservices defined in the DCAE blueprint and it failed"); public static final ExternalComponentState MICROSERVICE_UNINSTALLED_SUCCESSFULLY = new ExternalComponentState( - "MICROSERVICE_UNINSTALLED_SUCCESSFULLY", - "Clamp has requested DCAE to uninstall the DCAE blueprint and it has been uninstalled successfully"); + "MICROSERVICE_UNINSTALLED_SUCCESSFULLY", + "Clamp has requested DCAE to uninstall the DCAE blueprint and it has been uninstalled successfully"); public static final ExternalComponentState IN_ERROR = new ExternalComponentState("IN_ERROR", - "There was an error during the request done to DCAE, look at the logs or try again"); + "There was an error during the request done to DCAE, look at the logs or try again"); public DcaeComponent() { super(BLUEPRINT_DEPLOYED); @@ -71,6 +71,12 @@ public class DcaeComponent extends ExternalComponent { return "DCAE"; } + /** + * Convert the json response to a DcaeOperationStatusResponse. + * + * @param responseBody The DCAE response Json paylaod + * @return The dcae object provisioned + */ public static DcaeOperationStatusResponse convertDcaeResponse(String responseBody) { if (responseBody != null && !responseBody.isEmpty()) { return JsonUtils.GSON_JPA_MODEL.fromJson(responseBody, DcaeOperationStatusResponse.class); @@ -80,7 +86,7 @@ public class DcaeComponent extends ExternalComponent { } /** - * Generate the deployment id, it's random + * Generate the deployment id, it's random. * * @return The deployment id */ @@ -89,9 +95,10 @@ public class DcaeComponent extends ExternalComponent { } /** - * This method prepare the url returned by DCAE to check the status if fine. + * This method prepare the url returned by DCAE to check the status if fine. It + * extracts it from the dcaeResponse. * - * @param statusUrl + * @param dcaeResponse The dcae response object * @return the Right Url modified if needed */ public static String getStatusUrl(DcaeOperationStatusResponse dcaeResponse) { @@ -101,8 +108,7 @@ public class DcaeComponent extends ExternalComponent { /** * Return the deploy payload for DCAE. * - * @param loop - * The loop object + * @param loop The loop object * @return The payload used to send deploy closed loop request */ public static String getDeployPayload(Loop loop) { @@ -122,8 +128,7 @@ public class DcaeComponent extends ExternalComponent { /** * Return the uninstallation payload for DCAE. * - * @param loop - * The loop object + * @param loop The loop object * @return The payload in string (json) */ public static String getUndeployPayload(Loop loop) { @@ -136,7 +141,7 @@ public class DcaeComponent extends ExternalComponent { public ExternalComponentState computeState(Exchange camelExchange) { DcaeOperationStatusResponse dcaeResponse = (DcaeOperationStatusResponse) camelExchange.getIn().getExchange() - .getProperty("dcaeResponse"); + .getProperty("dcaeResponse"); if (dcaeResponse == null) { setState(BLUEPRINT_DEPLOYED); @@ -147,10 +152,10 @@ public class DcaeComponent extends ExternalComponent { } else if (dcaeResponse.getOperationType().equals("install") && dcaeResponse.getStatus().equals("failed")) { setState(MICROSERVICE_INSTALLATION_FAILED); } else if (dcaeResponse.getOperationType().equals("uninstall") - && dcaeResponse.getStatus().equals("succeeded")) { + && dcaeResponse.getStatus().equals("succeeded")) { setState(MICROSERVICE_UNINSTALLED_SUCCESSFULLY); } else if (dcaeResponse.getOperationType().equals("uninstall") - && dcaeResponse.getStatus().equals("processing")) { + && dcaeResponse.getStatus().equals("processing")) { setState(PROCESSING_MICROSERVICE_UNINSTALLATION); } else if (dcaeResponse.getOperationType().equals("uninstall") && dcaeResponse.getStatus().equals("failed")) { setState(MICROSERVICE_UNINSTALLATION_FAILED); diff --git a/src/main/java/org/onap/clamp/loop/components/external/ExternalComponentState.java b/src/main/java/org/onap/clamp/loop/components/external/ExternalComponentState.java index a220ee1d..a57234af 100644 --- a/src/main/java/org/onap/clamp/loop/components/external/ExternalComponentState.java +++ b/src/main/java/org/onap/clamp/loop/components/external/ExternalComponentState.java @@ -41,6 +41,14 @@ public class ExternalComponentState implements Comparable { public LoopLog() { } + /** + * Constructor For LoopLog taking message and logtype, logComponent and loop + * reference. + * + * @param message The message as string + * @param logType Type like INFO, WARN, DEBUG + * @param logComponent A String with DCAE, POLICY, CLAMP ,etc... + * @param loop The loop object that this log is about + */ public LoopLog(String message, LogType logType, String logComponent, Loop loop) { this.message = message; this.logType = logType; diff --git a/src/main/java/org/onap/clamp/policy/operational/LegacyOperationalPolicy.java b/src/main/java/org/onap/clamp/policy/operational/LegacyOperationalPolicy.java index 0b4040d0..725bfe88 100644 --- a/src/main/java/org/onap/clamp/policy/operational/LegacyOperationalPolicy.java +++ b/src/main/java/org/onap/clamp/policy/operational/LegacyOperationalPolicy.java @@ -155,16 +155,14 @@ public class LegacyOperationalPolicy { * @return The Yaml as string */ public static String createPolicyPayloadYamlLegacy(JsonElement operationalPolicyJsonElement) { - JsonElement opPolicy = fulfillPoliciesTreeField( - removeAllQuotes(reworkPayloadAttributes(operationalPolicyJsonElement.getAsJsonObject().deepCopy()))); - Map jsonMap = createMap(opPolicy); DumperOptions options = new DumperOptions(); options.setDefaultScalarStyle(ScalarStyle.PLAIN); options.setIndent(2); options.setPrettyFlow(true); // Policy can't support { } in the yaml options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); - return (new Yaml(options)).dump(jsonMap); + return (new Yaml(options)).dump(createMap(fulfillPoliciesTreeField( + removeAllQuotes(reworkPayloadAttributes(operationalPolicyJsonElement.getAsJsonObject().deepCopy()))))); } /** diff --git a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java index 86f8ac39..c6ed4984 100644 --- a/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java +++ b/src/main/java/org/onap/clamp/policy/operational/OperationalPolicy.java @@ -158,6 +158,11 @@ public class OperationalPolicy implements Serializable, Policy { return true; } + /** + * Create policy Yaml from json defined here. + * + * @return A string containing Yaml + */ public String createPolicyPayloadYaml() { JsonObject policyPayloadResult = new JsonObject(); @@ -184,21 +189,17 @@ public class OperationalPolicy implements Serializable, Policy { operationalPolicyDetails.add("properties", LegacyOperationalPolicy .reworkPayloadAttributes(this.configurationsJson.get("operational_policy").deepCopy())); - Gson gson = new GsonBuilder().create(); - - Map jsonMap = gson.fromJson(gson.toJson(policyPayloadResult), Map.class); - DumperOptions options = new DumperOptions(); options.setIndent(2); options.setPrettyFlow(true); options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); + Gson gson = new GsonBuilder().create(); - return (new Yaml(options)).dump(jsonMap); + return (new Yaml(options)).dump(gson.fromJson(gson.toJson(policyPayloadResult), Map.class)); } @Override public String createPolicyPayload() throws UnsupportedEncodingException { - // Now using the legacy payload fo Dublin JsonObject payload = new JsonObject(); payload.addProperty("policy-id", this.getName()); diff --git a/src/test/java/org/onap/clamp/clds/config/CldsUserJsonDecoderTest.java b/src/test/java/org/onap/clamp/clds/config/CldsUserJsonDecoderTest.java index 549c9132..a9480421 100644 --- a/src/test/java/org/onap/clamp/clds/config/CldsUserJsonDecoderTest.java +++ b/src/test/java/org/onap/clamp/clds/config/CldsUserJsonDecoderTest.java @@ -27,43 +27,37 @@ package org.onap.clamp.clds.config; import static org.assertj.core.api.Assertions.assertThat; + import org.junit.Test; import org.onap.clamp.clds.exception.CldsUsersException; import org.onap.clamp.clds.service.CldsUser; - public class CldsUserJsonDecoderTest { private String user1 = "admin1"; private String user2 = "admin2"; private String password = "5f4dcc3b5aa765d61d8327deb882cf99"; - private String[] normalPermissionsArray = { - "permission-type-cl|dev|read", "permission-type-cl|dev|update", "permission-type-cl-manage|dev|*", - "permission-type-filter-vf|dev|*", "permission-type-template|dev|read", - "permission-type-template|dev|update" - }; - private String[] incompletePermissionsArray = { - "permission-type-cl|dev|*", "permission-type-cl|dev|*", "permission-type-cl-manage|dev|*", - "permission-type-filter-vf|dev|*", "permission-type-template|dev|read", - "permission-type-template|dev|update" - }; + private String[] normalPermissionsArray = { "permission-type-cl|dev|read", "permission-type-cl|dev|update", + "permission-type-cl-manage|dev|*", "permission-type-filter-vf|dev|*", "permission-type-template|dev|read", + "permission-type-template|dev|update" }; + private String[] incompletePermissionsArray = { "permission-type-cl|dev|*", "permission-type-cl|dev|*", + "permission-type-cl-manage|dev|*", "permission-type-filter-vf|dev|*", "permission-type-template|dev|read", + "permission-type-template|dev|update" }; @Test public void testDecodingDoubleUsers() { - //when + // when CldsUser[] usersArray = CldsUserJsonDecoder - .decodeJson(CldsUserJsonDecoderTest.class.getResourceAsStream("/clds/clds-users-two-users.json")); + .decodeJson(CldsUserJsonDecoderTest.class.getResourceAsStream("/clds/clds-users-two-users.json")); - //then + // then assertThat(usersArray).hasSize(2); - assertThat(usersArray[0]) - .extracting(CldsUser::getUser, CldsUser::getPassword, CldsUser::getPermissionsString) - .containsExactly(user1, password, normalPermissionsArray); + assertThat(usersArray[0]).extracting(CldsUser::getUser, CldsUser::getPassword, CldsUser::getPermissionsString) + .containsExactly(user1, password, normalPermissionsArray); - assertThat(usersArray[1]) - .extracting(CldsUser::getUser, CldsUser::getPassword, CldsUser::getPermissionsString) - .containsExactly(user2, password, normalPermissionsArray); + assertThat(usersArray[1]).extracting(CldsUser::getUser, CldsUser::getPassword, CldsUser::getPermissionsString) + .containsExactly(user2, password, normalPermissionsArray); } @@ -73,7 +67,7 @@ public class CldsUserJsonDecoderTest { CldsUser[] usersArray = CldsUserJsonDecoder .decodeJson(this.getClass().getResourceAsStream("/clds/clds-users-no-permission.json")); - //then + // then assertThat(usersArray).hasSize(1); CldsUser user = usersArray[0]; assertThat(user.getUser()).isEqualTo(user1); @@ -84,11 +78,11 @@ public class CldsUserJsonDecoderTest { @Test public void testDecodingIncompletePermissions() { - //when + // when CldsUser[] usersArray = CldsUserJsonDecoder .decodeJson(this.getClass().getResourceAsStream("/clds/clds-users-incomplete-permissions.json")); - //then + // then assertThat(usersArray).hasSize(1); CldsUser user = usersArray[0]; assertThat(user.getUser()).isEqualTo(user1); @@ -98,9 +92,8 @@ public class CldsUserJsonDecoderTest { @Test(expected = CldsUsersException.class) public void shouldThrowCldsUsersException() { - //when - CldsUserJsonDecoder - .decodeJson(this.getClass().getResourceAsStream("/clds/clds-parse-exception.json")); + // when + CldsUserJsonDecoder.decodeJson(this.getClass().getResourceAsStream("/clds/clds-parse-exception.json")); } } diff --git a/src/test/java/org/onap/clamp/clds/it/PermissionTestDefaultHelper.java b/src/test/java/org/onap/clamp/clds/it/PermissionTestDefaultHelper.java index fa22b02b..1830115f 100644 --- a/src/test/java/org/onap/clamp/clds/it/PermissionTestDefaultHelper.java +++ b/src/test/java/org/onap/clamp/clds/it/PermissionTestDefaultHelper.java @@ -28,32 +28,22 @@ import java.util.Map; public class PermissionTestDefaultHelper extends PermissionTestHelper { - private static final String[] ALL_ACTION = new String[] {"*"}; - private static final String[] READ_UPDATE_ACTION = new String[] {"read", "update"}; + private static final String[] ALL_ACTION = new String[] { "*" }; + private static final String[] READ_UPDATE_ACTION = new String[] { "read", "update" }; private static final String DEV_INSTANCE = "dev"; private static final String TEST_INSTANCE = "test"; - private static final Map defaultPermission = ImmutableMap.of( - "permission-type-cl", ImmutableMap.of( - DEV_INSTANCE, ALL_ACTION), - "permission-type-cl-event", ImmutableMap.of( - DEV_INSTANCE, ALL_ACTION, - TEST_INSTANCE, READ_UPDATE_ACTION), - "permission-type-cl-manage", ImmutableMap.of( - DEV_INSTANCE, ALL_ACTION, - TEST_INSTANCE, READ_UPDATE_ACTION), - "permission-type-filter-vf", ImmutableMap.of( - DEV_INSTANCE, ALL_ACTION, - TEST_INSTANCE, READ_UPDATE_ACTION), - "permission-type-template", ImmutableMap.of( - DEV_INSTANCE, ALL_ACTION, - TEST_INSTANCE, READ_UPDATE_ACTION) - ); + private static final Map> defaultPermission = ImmutableMap.of("permission-type-cl", + ImmutableMap.of(DEV_INSTANCE, ALL_ACTION), "permission-type-cl-event", + ImmutableMap.of(DEV_INSTANCE, ALL_ACTION, TEST_INSTANCE, READ_UPDATE_ACTION), "permission-type-cl-manage", + ImmutableMap.of(DEV_INSTANCE, ALL_ACTION, TEST_INSTANCE, READ_UPDATE_ACTION), "permission-type-filter-vf", + ImmutableMap.of(DEV_INSTANCE, ALL_ACTION, TEST_INSTANCE, READ_UPDATE_ACTION), "permission-type-template", + ImmutableMap.of(DEV_INSTANCE, ALL_ACTION, TEST_INSTANCE, READ_UPDATE_ACTION)); /** - * Permission test default helper constructor. - * This class setup the default permission in the parent PermissionTestHelper class. + * Permission test default helper constructor. This class setup the default + * permission in the parent PermissionTestHelper class. */ public PermissionTestDefaultHelper() { super(defaultPermission); diff --git a/src/test/java/org/onap/clamp/clds/it/PermissionTestHelper.java b/src/test/java/org/onap/clamp/clds/it/PermissionTestHelper.java index ee073b01..905b7f70 100644 --- a/src/test/java/org/onap/clamp/clds/it/PermissionTestHelper.java +++ b/src/test/java/org/onap/clamp/clds/it/PermissionTestHelper.java @@ -36,14 +36,14 @@ import org.springframework.security.core.authority.SimpleGrantedAuthority; public class PermissionTestHelper { private static final String securityPrefix = CONFIG_PREFIX + PERM_PREFIX; - private final Map permission; + private final Map> permission; private static final List authList = new LinkedList<>(); /** - * Permission Test Helper constructor - * Generate authList base on general permission collection + * Permission Test Helper constructor. Generate authList base on general + * permission collection. */ - public PermissionTestHelper(Map permission) { + public PermissionTestHelper(Map> permission) { this.permission = permission; this.createAuthList(); } diff --git a/src/test/java/org/onap/clamp/clds/util/LoggingUtilsTest.java b/src/test/java/org/onap/clamp/clds/util/LoggingUtilsTest.java index 7e2da4d1..27a06b21 100644 --- a/src/test/java/org/onap/clamp/clds/util/LoggingUtilsTest.java +++ b/src/test/java/org/onap/clamp/clds/util/LoggingUtilsTest.java @@ -21,10 +21,10 @@ package org.onap.clamp.clds.util; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertEquals; import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; @@ -58,7 +58,7 @@ public class LoggingUtilsTest { private static final EELFLogger logger = EELFManager.getInstance().getLogger(LoggingUtilsTest.class); - private static final String SERVICE_NAME = "LogginUtilsTest: Test Entering method"; + private static final String SERVICE_NAME = "LogginUtilsTest: Test Entering method"; private LoggingUtils util; @@ -72,8 +72,6 @@ public class LoggingUtilsTest { // given final String userName = "test"; - HttpServletRequest request = Mockito.mock(HttpServletRequest.class); - UserDetails userDetails = Mockito.mock(UserDetails.class); Mockito.when(userDetails.getUsername()).thenReturn(userName); @@ -84,34 +82,29 @@ public class LoggingUtilsTest { Mockito.when(securityContext.getAuthentication()).thenReturn(localAuth); SecurityContextHolder.setContext(securityContext); + HttpServletRequest request = Mockito.mock(HttpServletRequest.class); // when util.entering(request, SERVICE_NAME); // then - String[] keys = { ONAPLogConstants.MDCs.PARTNER_NAME, - ONAPLogConstants.MDCs.ENTRY_TIMESTAMP, - ONAPLogConstants.MDCs.REQUEST_ID, - ONAPLogConstants.MDCs.INVOCATION_ID, - ONAPLogConstants.MDCs.CLIENT_IP_ADDRESS, - ONAPLogConstants.MDCs.SERVER_FQDN, - ONAPLogConstants.MDCs.INSTANCE_UUID, - ONAPLogConstants.MDCs.SERVICE_NAME - }; + String[] keys = { OnapLogConstants.Mdcs.PARTNER_NAME, OnapLogConstants.Mdcs.ENTRY_TIMESTAMP, + OnapLogConstants.Mdcs.REQUEST_ID, OnapLogConstants.Mdcs.INVOCATION_ID, + OnapLogConstants.Mdcs.CLIENT_IP_ADDRESS, OnapLogConstants.Mdcs.SERVER_FQDN, + OnapLogConstants.Mdcs.INSTANCE_UUID, OnapLogConstants.Mdcs.SERVICE_NAME }; Map mdc = MDC.getMDCAdapter().getCopyOfContextMap(); assertTrue(checkMapKeys(mdc, keys)); - assertEquals(userName, - mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME)); + assertEquals(userName, mdc.get(OnapLogConstants.Mdcs.PARTNER_NAME)); } @Test public void testExistingLoggingUtils() { // given - MDC.put(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP, + MDC.put(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP, ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_INSTANT)); // when - util.exiting("200", SERVICE_NAME, Level.INFO, ONAPLogConstants.ResponseStatus.COMPLETED); + util.exiting("200", SERVICE_NAME, Level.INFO, OnapLogConstants.ResponseStatus.COMPLETED); // then Map mdc = MDC.getMDCAdapter().getCopyOfContextMap(); @@ -130,16 +123,13 @@ public class LoggingUtilsTest { // then assertNotNull(secureConnection); - String[] keys = {ONAPLogConstants.MDCs.TARGET_ENTITY, - ONAPLogConstants.MDCs.TARGET_SERVICE_NAME, - ONAPLogConstants.MDCs.INVOCATIONID_OUT, - ONAPLogConstants.MDCs.INVOKE_TIMESTAMP - }; + String[] keys = { OnapLogConstants.Mdcs.TARGET_ENTITY, OnapLogConstants.Mdcs.TARGET_SERVICE_NAME, + OnapLogConstants.Mdcs.INVOCATIONID_OUT, OnapLogConstants.Mdcs.INVOKE_TIMESTAMP }; Map mdc = MDC.getMDCAdapter().getCopyOfContextMap(); assertTrue(checkMapKeys(mdc, keys)); - assertEquals(targetEntity, mdc.get(ONAPLogConstants.MDCs.TARGET_ENTITY)); - assertEquals(targetServiceName, mdc.get(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME)); + assertEquals(targetEntity, mdc.get(OnapLogConstants.Mdcs.TARGET_ENTITY)); + assertEquals(targetServiceName, mdc.get(OnapLogConstants.Mdcs.TARGET_SERVICE_NAME)); } private boolean checkMapKeys(Map map, String[] keys) { diff --git a/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphTest.java b/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphTest.java index e46db1a2..4ae0a490 100644 --- a/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphTest.java +++ b/src/test/java/org/onap/clamp/clds/util/drawing/ClampGraphTest.java @@ -52,7 +52,7 @@ public class ClampGraphTest { when(mockDocumentBuilder.getGroupingDocument()).thenReturn(document); - String actual = new ClampGraph(mockDocumentBuilder).getAsSVG(); + String actual = new ClampGraph(mockDocumentBuilder).getAsSvg(); Assert.assertEquals(expected.trim(), actual.trim()); } @@ -64,10 +64,10 @@ public class ClampGraphTest { when(mockDocumentBuilder.getGroupingDocument()).thenReturn(document); ClampGraph cg = new ClampGraph(mockDocumentBuilder); - String actualFirst = cg.getAsSVG(); + String actualFirst = cg.getAsSvg(); verify(mockDocumentBuilder, times(1)).getGroupingDocument(); - String actualSecond = cg.getAsSVG(); + String actualSecond = cg.getAsSvg(); verifyNoMoreInteractions(mockDocumentBuilder); Assert.assertEquals(expected.trim(), actualFirst.trim()); diff --git a/src/test/java/org/onap/clamp/flow/FlowLogOperationTest.java b/src/test/java/org/onap/clamp/flow/FlowLogOperationTest.java index 16136ae2..648c0330 100644 --- a/src/test/java/org/onap/clamp/flow/FlowLogOperationTest.java +++ b/src/test/java/org/onap/clamp/flow/FlowLogOperationTest.java @@ -25,13 +25,14 @@ package org.onap.clamp.flow; import static junit.framework.Assert.assertEquals; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.mock; + import org.apache.camel.CamelContext; import org.apache.camel.Exchange; import org.apache.camel.impl.DefaultExchange; import org.junit.Test; import org.mockito.Mockito; import org.onap.clamp.clds.util.LoggingUtils; -import org.onap.clamp.clds.util.ONAPLogConstants; +import org.onap.clamp.clds.util.OnapLogConstants; import org.onap.clamp.flow.log.FlowLogOperation; import org.slf4j.MDC; import org.slf4j.spi.MDCAdapter; @@ -43,57 +44,57 @@ public class FlowLogOperationTest { @Test public void testStratLog() { - //given - Exchange exchange = new DefaultExchange(mock(CamelContext.class)); + // given LoggingUtils loggingUtils = mock(LoggingUtils.class); ReflectionTestUtils.setField(flowLogOperation, "util", loggingUtils); - //when - Mockito.when(loggingUtils.getProperties(ONAPLogConstants.MDCs.REQUEST_ID)).thenReturn("MockRequestId"); - Mockito.when(loggingUtils.getProperties(ONAPLogConstants.MDCs.INVOCATION_ID)).thenReturn("MockInvocationId"); - Mockito.when(loggingUtils.getProperties(ONAPLogConstants.MDCs.PARTNER_NAME)).thenReturn("MockPartnerName"); + // when + Mockito.when(loggingUtils.getProperties(OnapLogConstants.Mdcs.REQUEST_ID)).thenReturn("MockRequestId"); + Mockito.when(loggingUtils.getProperties(OnapLogConstants.Mdcs.INVOCATION_ID)).thenReturn("MockInvocationId"); + Mockito.when(loggingUtils.getProperties(OnapLogConstants.Mdcs.PARTNER_NAME)).thenReturn("MockPartnerName"); + Exchange exchange = new DefaultExchange(mock(CamelContext.class)); flowLogOperation.startLog(exchange, "serviceName"); - //then - assertThat(exchange.getProperty(ONAPLogConstants.Headers.REQUEST_ID)).isEqualTo("MockRequestId"); - assertThat(exchange.getProperty(ONAPLogConstants.Headers.INVOCATION_ID)).isEqualTo("MockInvocationId"); - assertThat(exchange.getProperty(ONAPLogConstants.Headers.PARTNER_NAME)).isEqualTo("MockPartnerName"); + // then + assertThat(exchange.getProperty(OnapLogConstants.Headers.REQUEST_ID)).isEqualTo("MockRequestId"); + assertThat(exchange.getProperty(OnapLogConstants.Headers.INVOCATION_ID)).isEqualTo("MockInvocationId"); + assertThat(exchange.getProperty(OnapLogConstants.Headers.PARTNER_NAME)).isEqualTo("MockPartnerName"); } @Test public void testInvokeLog() { - //given + // given final String mockEntity = "mockEntity"; final String mockServiceName = "mockSerivceName"; MDCAdapter mdcAdapter = MDC.getMDCAdapter(); - //when + // when flowLogOperation.invokeLog(mockEntity, mockServiceName); - //then - String entity = mdcAdapter.get(ONAPLogConstants.MDCs.TARGET_ENTITY); - String serviceName = mdcAdapter.get(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME); - assertEquals(entity,mockEntity); - assertEquals(serviceName,mockServiceName); + // then + String entity = mdcAdapter.get(OnapLogConstants.Mdcs.TARGET_ENTITY); + String serviceName = mdcAdapter.get(OnapLogConstants.Mdcs.TARGET_SERVICE_NAME); + assertEquals(entity, mockEntity); + assertEquals(serviceName, mockServiceName); } - @Test + @Test public void testEndLog() { - //given - MDC.put(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP, "2019-05-19T00:00:00.007Z"); - MDCAdapter mdcAdapter = MDC.getMDCAdapter(); - ///when - flowLogOperation.endLog(); - //then - assertThat(mdcAdapter.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP)).isNull(); + // given + MDC.put(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP, "2019-05-19T00:00:00.007Z"); + MDCAdapter mdcAdapter = MDC.getMDCAdapter(); + /// when + flowLogOperation.endLog(); + // then + assertThat(mdcAdapter.get(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP)).isNull(); } @Test public void testErrorLog() { - //given - MDC.put(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP, "2019-05-19T00:00:00.007Z"); + // given + MDC.put(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP, "2019-05-19T00:00:00.007Z"); MDCAdapter mdcAdapter = MDC.getMDCAdapter(); - //when + // when flowLogOperation.errorLog(); - //then - assertThat(mdcAdapter.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP)).isNull(); + // then + assertThat(mdcAdapter.get(OnapLogConstants.Mdcs.ENTRY_TIMESTAMP)).isNull(); } } \ No newline at end of file -- 2.16.6