diff --git a/pom.xml b/pom.xml
index da38b15..19ec39b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -44,6 +44,20 @@
docjava
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 3.1.2
+
+
+
+ repackage
+
+
+
+
+
diff --git a/src/main/java/ru/javaops/docjava/Commands.java b/src/main/java/ru/javaops/docjava/Commands.java
index d7d639c..05d819b 100644
--- a/src/main/java/ru/javaops/docjava/Commands.java
+++ b/src/main/java/ru/javaops/docjava/Commands.java
@@ -12,12 +12,20 @@
@ShellComponent
public class Commands {
+
@ShellMethod(key = "xsd", value = "Validate XML file against XSD (XML Schema)")
public void xsdValidate(@ShellOption(value = {"input", "-i"}, help = "Input file") File inputFile,
@ShellOption(value = {"schema", "-s"}, help = "XSD schema file") File xsdSchema) throws IOException, SAXException {
SchemaUtil.validate(inputFile, xsdSchema);
}
+ @ShellMethod(key = "say", value = "Say hello to user", group = "Math")
+ public String sayHello(@ShellOption(value = {"-n", "--name"}, defaultValue = "User") String name) {
+ System.out.println("Hello " + name);
+ return name;
+ }
+
+
@ShellMethod(key = "jaxb", value = "Process XML file via JAXB")
public void jaxbProcess(
@ShellOption(value = {"input", "-i"}, help = "Input file") File inputFile,
diff --git a/src/main/java/ru/javaops/docjava/xml/xsd/SchemaUtil.java b/src/main/java/ru/javaops/docjava/xml/xsd/SchemaUtil.java
index 249dc60..a1b1408 100644
--- a/src/main/java/ru/javaops/docjava/xml/xsd/SchemaUtil.java
+++ b/src/main/java/ru/javaops/docjava/xml/xsd/SchemaUtil.java
@@ -9,10 +9,14 @@
public class SchemaUtil {
+ private SchemaUtil() {
+ }
+
public static void validate(File inputFile, File xsdSchema) throws IOException, SAXException {
try (Reader reader = Files.newBufferedReader(inputFile.toPath())) {
Schemas.validate(reader, Schemas.of(xsdSchema));
}
System.out.println(inputFile.getAbsolutePath() + " is valid");
}
+
}
diff --git a/src/main/java/ru/javaops/docjava/xml/xsd/Schemas.java b/src/main/java/ru/javaops/docjava/xml/xsd/Schemas.java
index 8d7f403..cab7d97 100644
--- a/src/main/java/ru/javaops/docjava/xml/xsd/Schemas.java
+++ b/src/main/java/ru/javaops/docjava/xml/xsd/Schemas.java
@@ -14,7 +14,6 @@
public class Schemas {
private static final SchemaFactory SCHEMA_FACTORY = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
- // SchemaFactory is not thread-safe
public static synchronized Schema of(File file) {
try {
return SCHEMA_FACTORY.newSchema(file);
@@ -27,7 +26,9 @@ public static void validate(String str, Schema schema) throws IOException, SAXEx
validate(new StringReader(str), schema);
}
+
public static void validate(Reader reader, Schema schema) throws IOException, SAXException {
schema.newValidator().validate(new StreamSource(reader));
}
-}
\ No newline at end of file
+
+}
diff --git a/src/test/java/ru/javaops/docjava/xml/xsd/SchemaUtilTest.java b/src/test/java/ru/javaops/docjava/xml/xsd/SchemaUtilTest.java
index fd59015..fe81038 100644
--- a/src/test/java/ru/javaops/docjava/xml/xsd/SchemaUtilTest.java
+++ b/src/test/java/ru/javaops/docjava/xml/xsd/SchemaUtilTest.java
@@ -2,24 +2,24 @@
import org.junit.jupiter.api.Test;
import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
import java.io.File;
import java.io.IOException;
-import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.*;
class SchemaUtilTest {
- private static final File xmlSchema = new File("in/usersWithMeals.xsd");
+
+ private static final File xmlSchema = new File("in/userWithMeals.xsd");
@Test
- void validateOK() throws IOException, SAXException {
+ void validateOk() throws IOException, SAXException {
SchemaUtil.validate(new File("in/usersWithMeals.xml"), xmlSchema);
}
@Test
- void testValidateNOK() throws IOException {
- assertThrows(SAXParseException.class,
+ void testValidateNOK() {
+ assertThrows(SAXException.class,
() -> SchemaUtil.validate(new File("in/badXmlFile.xml"), xmlSchema), "Except bad format exception");
}
}
\ No newline at end of file