Update dependencies and cleanup code master
authorNikita Timofeev <stariy95@gmail.com>
Tue, 21 Jun 2022 08:30:53 +0000 (11:30 +0300)
committerNikita Timofeev <stariy95@gmail.com>
Tue, 21 Jun 2022 08:30:53 +0000 (11:30 +0300)
cayenne-jdbc-type-other/pom.xml
cayenne-jdbc-type-other/src/main/java/org/apache/cayenne/demo/GeoTestCommand.java
cayenne-jdbc-type-other/src/main/java/org/apache/cayenne/demo/JsonTestCommand.java
cayenne-jdbc-type-other/src/main/java/org/apache/cayenne/demo/model/types/JsonValueType.java
cayenne-jdbc-type-other/src/main/resources/config.yml

index ce36e1d26538230cf1f806755b97dcd5bbea3bef..8b7803da9876145ffc62b8090ca3a2c545407f85 100644 (file)
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
-        <bootique.version>2.0.M1</bootique.version>
-        <cayenne.version>4.2.M2</cayenne.version>
+        <bootique.version>2.0.1</bootique.version>
+        <cayenne.version>4.2.RC1</cayenne.version>
 
-        <postgres.jdbc.version>9.4.1209</postgres.jdbc.version>
+        <postgres.jdbc.version>42.3.3</postgres.jdbc.version>
         <mysql.jdbc.version>8.0.28</mysql.jdbc.version>
         <slf4j.version>1.7.30</slf4j.version>
 
index af1112044ac1edcb395102a6c5318089cd8ab76e..28a909369c42ca868a2217539d01018204da8f65 100644 (file)
@@ -14,6 +14,9 @@ import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.query.SQLExec;
 import org.apache.cayenne.value.Wkt;
 
+/**
+ * Command that demonstrates usage of the {@link Wkt} type
+ */
 public class GeoTestCommand extends CommandWithMetadata {
 
     @Inject
index 3a009fcdfa26a6a62bdc1cfe335464ba3fca5f05..8dc97d7d2e6a37809194499e18edca3022f006d7 100644 (file)
@@ -5,7 +5,6 @@ import javax.inject.Inject;
 import javax.inject.Provider;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ObjectNode;
 import io.bootique.cli.Cli;
 import io.bootique.command.CommandOutcome;
 import io.bootique.command.CommandWithMetadata;
@@ -15,7 +14,11 @@ import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.demo.model.TestJson;
 import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.query.SQLExec;
+import org.apache.cayenne.value.Json;
 
+/**
+ * Command that demonstrates usage of the {@link Json} type
+ */
 class JsonTestCommand extends CommandWithMetadata {
 
     @Inject
@@ -45,12 +48,10 @@ class JsonTestCommand extends CommandWithMetadata {
     }
 
     private void createJsonObject(ObjectContext context) {
+        Pojo pojo = new Pojo(123, "abc", false);
+
         TestJson testJson = context.newObject(TestJson.class);
-        ObjectNode objectNode = new ObjectNode(objectMapper.getNodeFactory());
-        objectNode.put("test", 123);
-        objectNode.put("field1", "abc");
-        objectNode.put("field2", false);
-        testJson.setJson(objectNode);
+        testJson.setJson(objectMapper.valueToTree(pojo));
         context.commitChanges();
     }
 
@@ -71,4 +72,31 @@ class JsonTestCommand extends CommandWithMetadata {
         System.out.println("JSON values for path 'test':");
         testValues.forEach(v -> System.out.println("\t" + v));
     }
+
+    /**
+     * Simple value-object to convert to Json
+     */
+    static class Pojo {
+        private final int test;
+        private final String field1;
+        private final boolean field2;
+
+        Pojo(int test, String field1, boolean field2) {
+            this.test = test;
+            this.field1 = field1;
+            this.field2 = field2;
+        }
+
+        public int getTest() {
+            return test;
+        }
+
+        public String getField1() {
+            return field1;
+        }
+
+        public boolean isField2() {
+            return field2;
+        }
+    }
 }
index 200578335b5ee689e873ea17591c22084a0e4ef7..b2c35eac4187346d8ecefe3413d18809fd900169 100644 (file)
@@ -7,6 +7,9 @@ import org.apache.cayenne.access.types.ValueObjectType;
 import org.apache.cayenne.value.Json;
 import org.apache.cayenne.di.Inject;
 
+/**
+ * This value type allows to use Jackson's {@link ObjectNode} directly as a Json value
+ */
 public class JsonValueType implements ValueObjectType<ObjectNode, Json> {
 
     @Inject
index 28755cc7f6949058b6329db5f6dc03ee5c37f318..cbcc8fc8077d852dd884704256e221df5860a5ba 100644 (file)
@@ -12,5 +12,5 @@ cayenne:
   datasource: geo
   createSchema: true
   maps:
-    - location: classpath:demo.map.xml
-      name: map1
\ No newline at end of file
+    map1:
+      location: classpath:demo.map.xml
\ No newline at end of file