mirror of
https://github.com/ysoftdevs/DependencyCheck.git
synced 2026-01-15 16:23:37 +01:00
Major improvements in NVD CVE Import speed
Former-commit-id: 918f7e6a6d0336b7620962bc909bef204653346d
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* To change this template, choose Tools | Templates
|
||||
* and open the template in the editor.
|
||||
*/
|
||||
package org.codesecure.dependencycheck.data.nvdcve.xml;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.apache.lucene.index.CorruptIndexException;
|
||||
import org.codesecure.dependencycheck.data.nvdcve.InvalidDataException;
|
||||
import org.junit.After;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Jeremy Long (jeremy.long@gmail.com)
|
||||
*/
|
||||
public class NvdCveParserTest {
|
||||
|
||||
public NvdCveParserTest() {
|
||||
}
|
||||
|
||||
@BeforeClass
|
||||
public static void setUpClass() throws Exception {
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
public static void tearDownClass() throws Exception {
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Test of parse method, of class NvdCveParser.
|
||||
*/
|
||||
@Test
|
||||
public void testParse() throws InvalidDataException {
|
||||
NvdCveParser instance = null;
|
||||
try {
|
||||
System.out.println("parse");
|
||||
File file = new File(this.getClass().getClassLoader().getResource("nvdcve-2.0-2012.xml").getPath());
|
||||
instance = new NvdCveParser();
|
||||
instance.openIndexWriter();
|
||||
instance.parse(file);
|
||||
} catch (CorruptIndexException ex) {
|
||||
throw new InvalidDataException("corrupt index", ex);
|
||||
} catch (IOException ex) {
|
||||
throw new InvalidDataException("IO Exception", ex);
|
||||
} finally {
|
||||
if (instance != null) {
|
||||
instance.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -12,10 +12,14 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.Reader;
|
||||
import java.net.MalformedURLException;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.bind.JAXBException;
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.parsers.SAXParserFactory;
|
||||
import org.apache.lucene.index.CorruptIndexException;
|
||||
import org.codesecure.dependencycheck.data.nvdcve.InvalidDataException;
|
||||
import org.codesecure.dependencycheck.data.nvdcve.generated.VulnerabilityType;
|
||||
import org.junit.After;
|
||||
import org.junit.AfterClass;
|
||||
@@ -58,20 +62,42 @@ public class NvdCveXmlFilterTest {
|
||||
* Test of process method, of class NvdCveXmlFilter.
|
||||
*/
|
||||
@Test
|
||||
public void testFilter() throws JAXBException, SAXException, ParserConfigurationException, MalformedURLException, IOException {
|
||||
System.out.println("filter");
|
||||
|
||||
SAXParserFactory factory = SAXParserFactory.newInstance();
|
||||
factory.setNamespaceAware(true);
|
||||
XMLReader reader = factory.newSAXParser().getXMLReader();
|
||||
|
||||
JAXBContext context = JAXBContext.newInstance("org.codesecure.dependencycheck.data.nvdcve.generated");
|
||||
NvdCveXmlFilter filter = new NvdCveXmlFilter(context);
|
||||
public void testFilter() throws InvalidDataException {
|
||||
Indexer indexer = null;
|
||||
try {
|
||||
System.out.println("filter");
|
||||
|
||||
SAXParserFactory factory = SAXParserFactory.newInstance();
|
||||
factory.setNamespaceAware(true);
|
||||
XMLReader reader = factory.newSAXParser().getXMLReader();
|
||||
|
||||
JAXBContext context = JAXBContext.newInstance("org.codesecure.dependencycheck.data.nvdcve.generated");
|
||||
NvdCveXmlFilter filter = new NvdCveXmlFilter(context);
|
||||
|
||||
indexer = new Indexer();
|
||||
indexer.openIndexWriter();
|
||||
|
||||
reader.setContentHandler(filter);
|
||||
File file = new File(this.getClass().getClassLoader().getResource("nvdcve-2.0-2012.xml").getPath());
|
||||
Reader fileReader = new FileReader(file);
|
||||
InputSource is = new InputSource(fileReader);
|
||||
reader.parse(is);
|
||||
filter.registerSaveDelegate(indexer);
|
||||
|
||||
reader.setContentHandler(filter);
|
||||
File file = new File(this.getClass().getClassLoader().getResource("nvdcve-2.0-2012.xml").getPath());
|
||||
Reader fileReader = new FileReader(file);
|
||||
InputSource is = new InputSource(fileReader);
|
||||
reader.parse(is);
|
||||
} catch (JAXBException ex) {
|
||||
throw new InvalidDataException("JAXBException", ex);
|
||||
} catch (SAXException ex) {
|
||||
throw new InvalidDataException("SAXException", ex);
|
||||
} catch (ParserConfigurationException ex) {
|
||||
throw new InvalidDataException("ParserConfigurationException", ex);
|
||||
} catch (CorruptIndexException ex) {
|
||||
throw new InvalidDataException("CorruptIndexException", ex);
|
||||
} catch (IOException ex) {
|
||||
throw new InvalidDataException("IOException", ex);
|
||||
} finally {
|
||||
if (indexer != null) {
|
||||
indexer.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user