<undertow.version>2.0.16.Final</undertow.version>
<gson.version>2.8.5</gson.version>
<freemarker.version>2.3.28</freemarker.version>
+ <commons.io.version>2.6</commons.io.version>
<!-- Testing.Test Dependencies -->
<junit.version>5.3.2</junit.version>
<mockito.version>2.23.4</mockito.version>
<artifactId>freemarker</artifactId>
<version>${freemarker.version}</version>
</dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>${commons.io.version}</version>
+ </dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
import java.util.function.Function;
import java.util.stream.Collectors;
+import org.apache.commons.io.FilenameUtils;
import org.onap.dcaegen2.services.pmmapper.model.Event;
import org.onap.dcaegen2.services.pmmapper.model.MeasCollecFile;
import org.onap.dcaegen2.services.pmmapper.model.MeasCollecFile.MeasData;
**/
public class MeasFilterHandler {
private static final ONAPLogAdapter logger = new ONAPLogAdapter(LoggerFactory.getLogger(MeasFilterHandler.class));
+ public static final String XML_EXTENSION = "xml";
private MeasConverter converter;
public MeasFilterHandler(MeasConverter converter) {
logger.unwrap().debug("Filtering the measurement by file type.");
String requestPath = event.getHttpServerExchange().getRequestPath();
String fileName = requestPath.substring(requestPath.lastIndexOf('/')+1);
- return (fileName.startsWith("C") || fileName.startsWith("A"));
+ boolean isXML = isXMLFile(fileName);
+ boolean isValidPMType = isValidPMType(fileName);
+ if(!isXML) {
+ logger.unwrap().info("PM measurement file must have an extension of .{}", XML_EXTENSION);
+ }
+ if(!isValidPMType) {
+ logger.unwrap().info("PM measurement file type not supported");
+ }
+
+ return isXML && isValidPMType;
+ }
+
+ private boolean isValidPMType(String fileName) {
+ return fileName.startsWith("C") || fileName.startsWith("A");
+ }
+
+ private boolean isXMLFile(String fileName) {
+ return FilenameUtils.getExtension(fileName).equals(XML_EXTENSION);
}
private void setMeasInfoFromMeasType(MeasInfo currentMeasInfo, List<MeasInfo> filteredMeasInfos, Filter filter) {
@Test
void invalid_fileType() {
Event event = mock(Event.class);
- List<String> invalidFiletypes = Arrays.asList("Bpm.xml","Dpm.xml","asdf","bsdf");
+ List<String> invalidFiletypes = Arrays.asList("Bpm.xml","Dpm.xml","Apm.xml.gz","Apm.xm1","asdf","bsdf");
when(event.getHttpServerExchange()).thenReturn(exchange);
when(exchange.getRequestPath())
.thenReturn(invalidFiletypes.toString());