diff --git a/pom.xml b/pom.xml
index 00ff97c..2a02de4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -62,6 +62,11 @@
javax.servlet-api
3.0.1
+
+ org.slf4j
+ slf4j-api
+ 1.7.25
+
diff --git a/src/main/java/io/asfjava/ui/core/FormDefinitionGeneratorFactory.java b/src/main/java/io/asfjava/ui/core/FormDefinitionGeneratorFactory.java
index 2ee2c3f..78bcb6b 100644
--- a/src/main/java/io/asfjava/ui/core/FormDefinitionGeneratorFactory.java
+++ b/src/main/java/io/asfjava/ui/core/FormDefinitionGeneratorFactory.java
@@ -16,15 +16,15 @@ void register(String annotationName, FormDefinitionGenerator generator) {
}
public static FormDefinitionGeneratorFactory getInstance() {
- if (INSTANCE == null) {
- INSTANCE = new FormDefinitionGeneratorFactory();
+ if (instance == null) {
+ instance = new FormDefinitionGeneratorFactory();
}
- return INSTANCE;
+ return instance;
}
private static final Map GENERATORS = new ConcurrentHashMap<>();
- private static FormDefinitionGeneratorFactory INSTANCE;
+ private static FormDefinitionGeneratorFactory instance;
private FormDefinitionGeneratorFactory() {
}
diff --git a/src/main/java/io/asfjava/ui/core/GeneratorFactoryInitializer.java b/src/main/java/io/asfjava/ui/core/GeneratorFactoryInitializer.java
index 09de369..6acd17e 100644
--- a/src/main/java/io/asfjava/ui/core/GeneratorFactoryInitializer.java
+++ b/src/main/java/io/asfjava/ui/core/GeneratorFactoryInitializer.java
@@ -15,6 +15,6 @@ public final void contextInitialized(final ServletContextEvent sce) {
@Override
public final void contextDestroyed(final ServletContextEvent sce) {
-
+ //to implement it
}
}
diff --git a/src/main/java/io/asfjava/ui/core/GeneratorFactoryLoader.java b/src/main/java/io/asfjava/ui/core/GeneratorFactoryLoader.java
index 171fffe..37cc847 100644
--- a/src/main/java/io/asfjava/ui/core/GeneratorFactoryLoader.java
+++ b/src/main/java/io/asfjava/ui/core/GeneratorFactoryLoader.java
@@ -5,11 +5,12 @@
import org.reflections.Reflections;
import io.asfjava.ui.core.generators.FormDefinitionGenerator;
+import io.asfjava.ui.core.logging.ASFUILogger;
+import static io.asfjava.ui.core.logging.ErrorCode.*;
final class GeneratorFactoryLoader {
private static final String PACKAGESCAN = "io.asfjava.ui.core.generators";
private static Reflections reflections = new Reflections(PACKAGESCAN);
-
void load() {
Set> subTypes = reflections
@@ -20,12 +21,8 @@ void load() {
formDefinitionGenerator = (FormDefinitionGenerator) Class.forName(subtype.getName()).newInstance();
FormDefinitionGeneratorFactory.getInstance().register(formDefinitionGenerator.getAnnoation(),
formDefinitionGenerator);
- } catch (InstantiationException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
+ } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
+ ASFUILogger.getLogger().error(ASF01, e);
}
}
}
@@ -35,12 +32,12 @@ void unload() {
}
static GeneratorFactoryLoader getInstance() {
- if (INSTANCE == null)
- INSTANCE = new GeneratorFactoryLoader();
- return INSTANCE;
+ if (instance == null)
+ instance = new GeneratorFactoryLoader();
+ return instance;
}
- private static GeneratorFactoryLoader INSTANCE;
+ private static GeneratorFactoryLoader instance;
private GeneratorFactoryLoader() {
}
diff --git a/src/main/java/io/asfjava/ui/core/SchemaDecoratorFactory.java b/src/main/java/io/asfjava/ui/core/SchemaDecoratorFactory.java
index f9973b3..11dea08 100644
--- a/src/main/java/io/asfjava/ui/core/SchemaDecoratorFactory.java
+++ b/src/main/java/io/asfjava/ui/core/SchemaDecoratorFactory.java
@@ -3,27 +3,27 @@
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-import io.asfjava.ui.schema.decorator.SchemaDecorator;
+import io.asfjava.ui.core.schema.decorator.SchemaDecorator;
public final class SchemaDecoratorFactory {
public SchemaDecorator getGenerator(String annotationName) {
- return GENERATORS.get(annotationName);
+ return decorators.get(annotationName);
}
void register(String annotationName, SchemaDecorator generator) {
- GENERATORS.put(annotationName, generator);
+ decorators.put(annotationName, generator);
}
public static SchemaDecoratorFactory getInstance() {
- if (INSTANCE == null) {
- INSTANCE = new SchemaDecoratorFactory();
+ if (instance == null) {
+ instance = new SchemaDecoratorFactory();
}
- return INSTANCE;
+ return instance;
}
- private static final Map GENERATORS = new ConcurrentHashMap<>();
+ private static final Map decorators = new ConcurrentHashMap<>();
- private static SchemaDecoratorFactory INSTANCE;
+ private static SchemaDecoratorFactory instance;
private SchemaDecoratorFactory() {
}
diff --git a/src/main/java/io/asfjava/ui/core/SchemaDecoratorLoader.java b/src/main/java/io/asfjava/ui/core/SchemaDecoratorLoader.java
index 8e8ee86..67b8f65 100644
--- a/src/main/java/io/asfjava/ui/core/SchemaDecoratorLoader.java
+++ b/src/main/java/io/asfjava/ui/core/SchemaDecoratorLoader.java
@@ -1,33 +1,29 @@
package io.asfjava.ui.core;
+import static io.asfjava.ui.core.logging.ErrorCode.ASF02;
+
import java.util.Set;
import org.reflections.Reflections;
-import io.asfjava.ui.schema.decorator.SchemaDecorator;
-
-
+import io.asfjava.ui.core.logging.ASFUILogger;
+import io.asfjava.ui.core.schema.decorator.SchemaDecorator;
final class SchemaDecoratorLoader {
private static final String PACKAGESCAN = "io.asfjava.ui.schema.decorator";
private static Reflections reflections = new Reflections(PACKAGESCAN);
+
void load() {
- Set> subTypes = reflections
- .getSubTypesOf(SchemaDecorator.class);
+ Set> subTypes = reflections.getSubTypesOf(SchemaDecorator.class);
for (Class extends SchemaDecorator> subtype : subTypes) {
SchemaDecorator schemaDecorator;
try {
schemaDecorator = (SchemaDecorator) Class.forName(subtype.getName()).newInstance();
- SchemaDecoratorFactory.getInstance().register(schemaDecorator.getAnnotation(),
- schemaDecorator);
- } catch (InstantiationException e) {
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
+ SchemaDecoratorFactory.getInstance().register(schemaDecorator.getAnnotation(), schemaDecorator);
+ } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
+ ASFUILogger.getLogger().error(ASF02, e);
}
}
}
diff --git a/src/main/java/io/asfjava/ui/core/generators/CheckBoxGenerator.java b/src/main/java/io/asfjava/ui/core/generators/CheckBoxGenerator.java
index 8a9cf31..c65a011 100644
--- a/src/main/java/io/asfjava/ui/core/generators/CheckBoxGenerator.java
+++ b/src/main/java/io/asfjava/ui/core/generators/CheckBoxGenerator.java
@@ -10,6 +10,7 @@
import io.asfjava.ui.core.form.CheckBox;
import io.asfjava.ui.core.form.ValuesContainer;
+import io.asfjava.ui.core.logging.ASFUILogger;
public class CheckBoxGenerator implements FormDefinitionGenerator {
@@ -20,8 +21,6 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
fieldFormDefinition.put("type", "checkboxes");
fieldFormDefinition.put("multiple", annotation.multiple());
fieldFormDefinition.put("required", annotation.required());
-// fieldFormDefinition.put("title", annotation.title());
-
ObjectMapper checkBoxMapper = new ObjectMapper();
ArrayNode titlesMap = checkBoxMapper.createArrayNode();
if (annotation.values().length > 0) {
@@ -40,7 +39,7 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
});
fieldFormDefinition.set("titleMap", titlesMap);
} catch (InstantiationException | IllegalAccessException e) {
- e.printStackTrace();
+ ASFUILogger.getLogger().error(e.getMessage());
}
}
}
diff --git a/src/main/java/io/asfjava/ui/core/generators/ComboBoxGenerator.java b/src/main/java/io/asfjava/ui/core/generators/ComboBoxGenerator.java
index 5d552b1..8811624 100644
--- a/src/main/java/io/asfjava/ui/core/generators/ComboBoxGenerator.java
+++ b/src/main/java/io/asfjava/ui/core/generators/ComboBoxGenerator.java
@@ -10,6 +10,7 @@
import io.asfjava.ui.core.form.ComboBox;
import io.asfjava.ui.core.form.ValuesContainer;
+import io.asfjava.ui.core.logging.ASFUILogger;
public class ComboBoxGenerator implements FormDefinitionGenerator {
@@ -23,7 +24,6 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
fieldFormDefinition.put("multiple", annotation.multiple());
fieldFormDefinition.put("required", annotation.required());
fieldFormDefinition.put("size", annotation.size());
-// fieldFormDefinition.put("title", annotation.title());
ObjectMapper comboMapper = new ObjectMapper();
ArrayNode titlesMap = comboMapper.createArrayNode();
@@ -43,7 +43,7 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
});
fieldFormDefinition.set("titleMap", titlesMap);
} catch (InstantiationException | IllegalAccessException e) {
- e.printStackTrace();
+ ASFUILogger.getLogger().error(e.getMessage());
}
}
diff --git a/src/main/java/io/asfjava/ui/core/generators/PasswordGenerator.java b/src/main/java/io/asfjava/ui/core/generators/PasswordGenerator.java
index cd4cc65..047ba51 100644
--- a/src/main/java/io/asfjava/ui/core/generators/PasswordGenerator.java
+++ b/src/main/java/io/asfjava/ui/core/generators/PasswordGenerator.java
@@ -12,7 +12,6 @@ public class PasswordGenerator implements FormDefinitionGenerator {
public void generate(ObjectNode fieldFormDefinition, Field field) {
Password annotation = field.getAnnotation(Password.class);
fieldFormDefinition.put("key", field.getName());
-// fieldFormDefinition.put("title", annotation.title());
fieldFormDefinition.put("type", "password");
String description = annotation.description();
diff --git a/src/main/java/io/asfjava/ui/core/generators/RadioBoxGenerator.java b/src/main/java/io/asfjava/ui/core/generators/RadioBoxGenerator.java
index a0bde26..b3f9b51 100644
--- a/src/main/java/io/asfjava/ui/core/generators/RadioBoxGenerator.java
+++ b/src/main/java/io/asfjava/ui/core/generators/RadioBoxGenerator.java
@@ -9,6 +9,7 @@
import com.fasterxml.jackson.databind.node.ObjectNode;
import io.asfjava.ui.core.form.RadioBox;
+import io.asfjava.ui.core.logging.ASFUILogger;
public class RadioBoxGenerator implements FormDefinitionGenerator {
@@ -19,7 +20,6 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
fieldFormDefinition.put("key", field.getName());
fieldFormDefinition.put("readOnly", annotation.readOnly());
fieldFormDefinition.put("type", "radios");
-// fieldFormDefinition.put("title", annotation.title());
JsonNode radioFieldFormDefinition = ((JsonNode) fieldFormDefinition);
@@ -40,8 +40,7 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
}
} catch (InstantiationException | IllegalAccessException e) {
- // TODO Log It into a Logger
- e.printStackTrace();
+ ASFUILogger.getLogger().error(e.getMessage());
}
((ObjectNode) radioFieldFormDefinition).set("titleMap", titlesMap);
diff --git a/src/main/java/io/asfjava/ui/core/generators/TextAreaGenerator.java b/src/main/java/io/asfjava/ui/core/generators/TextAreaGenerator.java
index 1dfdbcf..8d35d76 100644
--- a/src/main/java/io/asfjava/ui/core/generators/TextAreaGenerator.java
+++ b/src/main/java/io/asfjava/ui/core/generators/TextAreaGenerator.java
@@ -12,7 +12,6 @@ public class TextAreaGenerator implements FormDefinitionGenerator {
public void generate(ObjectNode fieldFormDefinition, Field field) {
TextArea annotation = field.getAnnotation(TextArea.class);
fieldFormDefinition.put("key", field.getName());
-// fieldFormDefinition.put("title", annotation.title());
fieldFormDefinition.put("type", "textarea");
String description = annotation.description();
diff --git a/src/main/java/io/asfjava/ui/core/generators/TextFieldGenerator.java b/src/main/java/io/asfjava/ui/core/generators/TextFieldGenerator.java
index ddf2db9..236c549 100644
--- a/src/main/java/io/asfjava/ui/core/generators/TextFieldGenerator.java
+++ b/src/main/java/io/asfjava/ui/core/generators/TextFieldGenerator.java
@@ -13,8 +13,6 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
TextField annotation = field.getAnnotation(TextField.class);
fieldFormDefinition.put("key", field.getName());
-// fieldFormDefinition.put("title", annotation.title());
-
String description = annotation.description();
if (!description.isEmpty()) {
fieldFormDefinition.put("description", description);
@@ -45,7 +43,4 @@ public void generate(ObjectNode fieldFormDefinition, Field field) {
public String getAnnoation() {
return TextField.class.getName();
}
-
- public TextFieldGenerator() {
- }
}
diff --git a/src/main/java/io/asfjava/ui/core/logging/ASFUILogger.java b/src/main/java/io/asfjava/ui/core/logging/ASFUILogger.java
new file mode 100644
index 0000000..bf448d4
--- /dev/null
+++ b/src/main/java/io/asfjava/ui/core/logging/ASFUILogger.java
@@ -0,0 +1,12 @@
+package io.asfjava.ui.core.logging;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public final class ASFUILogger {
+
+ private final static Logger LOGGER=LoggerFactory.getLogger("ASFUILogger");
+ public static Logger getLogger(){
+ return LOGGER;
+ }
+}
diff --git a/src/main/java/io/asfjava/ui/core/logging/ErrorCode.java b/src/main/java/io/asfjava/ui/core/logging/ErrorCode.java
new file mode 100644
index 0000000..244944c
--- /dev/null
+++ b/src/main/java/io/asfjava/ui/core/logging/ErrorCode.java
@@ -0,0 +1,9 @@
+package io.asfjava.ui.core.logging;
+
+public final class ErrorCode {
+public final static String ASF01="Failure when trying to load Generators";
+public final static String ASF02="Failure when trying to load Decorators";
+private ErrorCode(){
+
+}
+}
diff --git a/src/main/java/io/asfjava/ui/core/schema/CustomStringSchema.java b/src/main/java/io/asfjava/ui/core/schema/CustomStringSchema.java
index aacc9da..f666afa 100644
--- a/src/main/java/io/asfjava/ui/core/schema/CustomStringSchema.java
+++ b/src/main/java/io/asfjava/ui/core/schema/CustomStringSchema.java
@@ -11,11 +11,10 @@ class CustomStringSchema extends StringSchema {
@Override
public void enrichWithBeanProperty(BeanProperty beanProperty) {
- super.enrichWithBeanProperty(beanProperty);
+ super.enrichWithBeanProperty(beanProperty);
Iterable it = beanProperty.getMember().annotations();
String anno = it.iterator().next().annotationType().getName();
SchemaDecoratorFactory.getInstance().getGenerator(anno).customizeSchema(beanProperty, this);
-
}
}
diff --git a/src/main/java/io/asfjava/ui/schema/decorator/CheckBoxSchemaDecorator.java b/src/main/java/io/asfjava/ui/core/schema/decorator/CheckBoxSchemaDecorator.java
similarity index 93%
rename from src/main/java/io/asfjava/ui/schema/decorator/CheckBoxSchemaDecorator.java
rename to src/main/java/io/asfjava/ui/core/schema/decorator/CheckBoxSchemaDecorator.java
index ddb13e4..b0f1216 100644
--- a/src/main/java/io/asfjava/ui/schema/decorator/CheckBoxSchemaDecorator.java
+++ b/src/main/java/io/asfjava/ui/core/schema/decorator/CheckBoxSchemaDecorator.java
@@ -1,4 +1,4 @@
-package io.asfjava.ui.schema.decorator;
+package io.asfjava.ui.core.schema.decorator;
import com.fasterxml.jackson.databind.BeanProperty;
import com.fasterxml.jackson.module.jsonSchema.JsonSchema;
diff --git a/src/main/java/io/asfjava/ui/schema/decorator/ComboBoxSchemaDecorator.java b/src/main/java/io/asfjava/ui/core/schema/decorator/ComboBoxSchemaDecorator.java
similarity index 93%
rename from src/main/java/io/asfjava/ui/schema/decorator/ComboBoxSchemaDecorator.java
rename to src/main/java/io/asfjava/ui/core/schema/decorator/ComboBoxSchemaDecorator.java
index 3e8ca7a..2efb6e3 100644
--- a/src/main/java/io/asfjava/ui/schema/decorator/ComboBoxSchemaDecorator.java
+++ b/src/main/java/io/asfjava/ui/core/schema/decorator/ComboBoxSchemaDecorator.java
@@ -1,4 +1,4 @@
-package io.asfjava.ui.schema.decorator;
+package io.asfjava.ui.core.schema.decorator;
import com.fasterxml.jackson.databind.BeanProperty;
import com.fasterxml.jackson.module.jsonSchema.JsonSchema;
diff --git a/src/main/java/io/asfjava/ui/schema/decorator/PasswordSchemaDecorator.java b/src/main/java/io/asfjava/ui/core/schema/decorator/PasswordSchemaDecorator.java
similarity index 93%
rename from src/main/java/io/asfjava/ui/schema/decorator/PasswordSchemaDecorator.java
rename to src/main/java/io/asfjava/ui/core/schema/decorator/PasswordSchemaDecorator.java
index 10511cc..eba23ee 100644
--- a/src/main/java/io/asfjava/ui/schema/decorator/PasswordSchemaDecorator.java
+++ b/src/main/java/io/asfjava/ui/core/schema/decorator/PasswordSchemaDecorator.java
@@ -1,4 +1,4 @@
-package io.asfjava.ui.schema.decorator;
+package io.asfjava.ui.core.schema.decorator;
import com.fasterxml.jackson.databind.BeanProperty;
import com.fasterxml.jackson.module.jsonSchema.JsonSchema;
diff --git a/src/main/java/io/asfjava/ui/schema/decorator/RadioBoxSchemaDecorator.java b/src/main/java/io/asfjava/ui/core/schema/decorator/RadioBoxSchemaDecorator.java
similarity index 88%
rename from src/main/java/io/asfjava/ui/schema/decorator/RadioBoxSchemaDecorator.java
rename to src/main/java/io/asfjava/ui/core/schema/decorator/RadioBoxSchemaDecorator.java
index b0d3f4c..c4d2b77 100644
--- a/src/main/java/io/asfjava/ui/schema/decorator/RadioBoxSchemaDecorator.java
+++ b/src/main/java/io/asfjava/ui/core/schema/decorator/RadioBoxSchemaDecorator.java
@@ -1,10 +1,9 @@
-package io.asfjava.ui.schema.decorator;
+package io.asfjava.ui.core.schema.decorator;
import com.fasterxml.jackson.databind.BeanProperty;
import com.fasterxml.jackson.module.jsonSchema.JsonSchema;
import com.fasterxml.jackson.module.jsonSchema.types.StringSchema;
-import io.asfjava.ui.core.form.Password;
import io.asfjava.ui.core.form.RadioBox;
public class RadioBoxSchemaDecorator implements SchemaDecorator {
diff --git a/src/main/java/io/asfjava/ui/schema/decorator/SchemaDecorator.java b/src/main/java/io/asfjava/ui/core/schema/decorator/SchemaDecorator.java
similarity index 84%
rename from src/main/java/io/asfjava/ui/schema/decorator/SchemaDecorator.java
rename to src/main/java/io/asfjava/ui/core/schema/decorator/SchemaDecorator.java
index 8039412..46ffc54 100644
--- a/src/main/java/io/asfjava/ui/schema/decorator/SchemaDecorator.java
+++ b/src/main/java/io/asfjava/ui/core/schema/decorator/SchemaDecorator.java
@@ -1,4 +1,4 @@
-package io.asfjava.ui.schema.decorator;
+package io.asfjava.ui.core.schema.decorator;
import com.fasterxml.jackson.databind.BeanProperty;
import com.fasterxml.jackson.module.jsonSchema.JsonSchema;
diff --git a/src/main/java/io/asfjava/ui/schema/decorator/TextAreaSchemaDecorator.java b/src/main/java/io/asfjava/ui/core/schema/decorator/TextAreaSchemaDecorator.java
similarity index 93%
rename from src/main/java/io/asfjava/ui/schema/decorator/TextAreaSchemaDecorator.java
rename to src/main/java/io/asfjava/ui/core/schema/decorator/TextAreaSchemaDecorator.java
index 537f316..f231856 100644
--- a/src/main/java/io/asfjava/ui/schema/decorator/TextAreaSchemaDecorator.java
+++ b/src/main/java/io/asfjava/ui/core/schema/decorator/TextAreaSchemaDecorator.java
@@ -1,4 +1,4 @@
-package io.asfjava.ui.schema.decorator;
+package io.asfjava.ui.core.schema.decorator;
import com.fasterxml.jackson.databind.BeanProperty;
import com.fasterxml.jackson.module.jsonSchema.JsonSchema;
diff --git a/src/main/java/io/asfjava/ui/schema/decorator/TextFieldSchemaDecorator.java b/src/main/java/io/asfjava/ui/core/schema/decorator/TextFieldSchemaDecorator.java
similarity index 69%
rename from src/main/java/io/asfjava/ui/schema/decorator/TextFieldSchemaDecorator.java
rename to src/main/java/io/asfjava/ui/core/schema/decorator/TextFieldSchemaDecorator.java
index e850675..44775b1 100644
--- a/src/main/java/io/asfjava/ui/schema/decorator/TextFieldSchemaDecorator.java
+++ b/src/main/java/io/asfjava/ui/core/schema/decorator/TextFieldSchemaDecorator.java
@@ -1,4 +1,4 @@
-package io.asfjava.ui.schema.decorator;
+package io.asfjava.ui.core.schema.decorator;
import com.fasterxml.jackson.databind.BeanProperty;
import com.fasterxml.jackson.module.jsonSchema.JsonSchema;
@@ -6,18 +6,17 @@
import io.asfjava.ui.core.form.TextField;
-public class TextFieldSchemaDecorator implements SchemaDecorator{
+public class TextFieldSchemaDecorator implements SchemaDecorator {
@Override
public void customizeSchema(BeanProperty property, JsonSchema jsonschema) {
TextField annotation = property.getAnnotation(TextField.class);
if (annotation != null) {
- if(annotation.title()!=null){
- ((StringSchema) jsonschema).setTitle(annotation.title());
+ if (annotation.title() != null) {
+ ((StringSchema) jsonschema).setTitle(annotation.title());
}
- if(annotation.pattern()!=null)
- {
- ((StringSchema) jsonschema).setPattern(annotation.pattern());
+ if (annotation.pattern() != null) {
+ ((StringSchema) jsonschema).setPattern(annotation.pattern());
}
}
}