diff --git a/algorithms/pom.xml b/algorithms/pom.xml
index 967bcbc706..e972f39494 100644
--- a/algorithms/pom.xml
+++ b/algorithms/pom.xml
@@ -34,6 +34,11 @@
jenetics
3.7.0
+
+ org.jgrapht
+ jgrapht-core
+ 1.0.1
+
diff --git a/libraries/src/test/java/com/baeldung/jgrapht/CompleteGraphTest.java b/algorithms/src/test/java/com/baeldung/jgrapht/CompleteGraphTest.java
similarity index 100%
rename from libraries/src/test/java/com/baeldung/jgrapht/CompleteGraphTest.java
rename to algorithms/src/test/java/com/baeldung/jgrapht/CompleteGraphTest.java
diff --git a/libraries/src/test/java/com/baeldung/jgrapht/DirectedGraphTests.java b/algorithms/src/test/java/com/baeldung/jgrapht/DirectedGraphTests.java
similarity index 100%
rename from libraries/src/test/java/com/baeldung/jgrapht/DirectedGraphTests.java
rename to algorithms/src/test/java/com/baeldung/jgrapht/DirectedGraphTests.java
diff --git a/libraries/src/test/java/com/baeldung/jgrapht/EulerianCircuitTest.java b/algorithms/src/test/java/com/baeldung/jgrapht/EulerianCircuitTest.java
similarity index 100%
rename from libraries/src/test/java/com/baeldung/jgrapht/EulerianCircuitTest.java
rename to algorithms/src/test/java/com/baeldung/jgrapht/EulerianCircuitTest.java
diff --git a/atomix/.gitignore b/atomix/.gitignore
new file mode 100644
index 0000000000..ea8c4bf7f3
--- /dev/null
+++ b/atomix/.gitignore
@@ -0,0 +1 @@
+/target
diff --git a/atomix/pom.xml b/atomix/pom.xml
new file mode 100644
index 0000000000..80c573dd86
--- /dev/null
+++ b/atomix/pom.xml
@@ -0,0 +1,46 @@
+
+ 4.0.0
+ com.atomix.io
+ atomix
+ 0.0.1-SNAPSHOT
+
+
+ com.baeldung
+ parent-modules
+ 1.0.0-SNAPSHOT
+
+
+
+
+ io.atomix
+ atomix-all
+ 1.0.0-rc9
+
+
+ junit
+ junit
+ 4.9
+ test
+
+
+ log4j
+ log4j
+ 1.2.17
+
+
+
+
+
+ maven-compiler-plugin
+ 3.7.0
+
+ 1.8
+ 1.8
+
+
+
+
+
+
+
diff --git a/atomix/src/main/java/com/atomix/example/BootstrapingCluster.java b/atomix/src/main/java/com/atomix/example/BootstrapingCluster.java
new file mode 100644
index 0000000000..6c5c94d307
--- /dev/null
+++ b/atomix/src/main/java/com/atomix/example/BootstrapingCluster.java
@@ -0,0 +1,27 @@
+package com.atomix.example;
+
+import io.atomix.AtomixReplica;
+import io.atomix.catalyst.transport.Address;
+import io.atomix.catalyst.transport.netty.NettyTransport;
+import io.atomix.copycat.server.storage.Storage;
+import io.atomix.copycat.server.storage.StorageLevel;
+
+import java.io.File;
+import java.util.concurrent.CompletableFuture;
+
+public class BootstrapingCluster {
+
+ public static void main(String[] args) {
+ Storage storage = Storage.builder()
+ .withDirectory(new File("log"))
+ .withStorageLevel(StorageLevel.DISK)
+ .build();
+ AtomixReplica replica = AtomixReplica.builder(new Address("localhost", 8700))
+ .withStorage(storage)
+ .withTransport(new NettyTransport())
+ .build();
+
+ CompletableFuture completableFuture = replica.bootstrap();
+ completableFuture.join();
+ }
+}
diff --git a/atomix/src/main/java/com/atomix/example/OtherNodes.java b/atomix/src/main/java/com/atomix/example/OtherNodes.java
new file mode 100644
index 0000000000..e5688b062f
--- /dev/null
+++ b/atomix/src/main/java/com/atomix/example/OtherNodes.java
@@ -0,0 +1,71 @@
+package com.atomix.example;
+
+import io.atomix.AtomixReplica;
+import io.atomix.catalyst.transport.Address;
+import io.atomix.catalyst.transport.netty.NettyTransport;
+import io.atomix.concurrent.DistributedLock;
+import io.atomix.copycat.server.storage.Storage;
+import io.atomix.copycat.server.storage.StorageLevel;
+
+import java.io.File;
+import java.util.Arrays;
+import java.util.List;
+
+public class OtherNodes {
+
+ public static void main(String[] args) throws InterruptedException {
+ List cluster = Arrays
+ .asList(
+ new Address("localhost", 8700),
+ new Address("localhost", 8701),
+ new Address("localhost", 8702));
+
+ Storage storage = Storage.builder()
+ .withDirectory(new File("log"))
+ .withStorageLevel(StorageLevel.DISK)
+ .build();
+
+ AtomixReplica replica2 = AtomixReplica.builder(new Address("localhost", 8701))
+ .withStorage(storage)
+ .withTransport(new NettyTransport())
+ .build();
+
+ WorkerThread WT1 = new WorkerThread(replica2, cluster);
+ WT1.run();
+
+ AtomixReplica replica3 = AtomixReplica.builder(new Address("localhost", 8702))
+ .withStorage(storage)
+ .withTransport(new NettyTransport())
+ .build();
+
+ WorkerThread WT2 = new WorkerThread(replica3, cluster);
+ WT2.run();
+
+ Thread.sleep(6000);
+
+ DistributedLock lock = replica2.getLock("my-lock")
+ .join();
+ lock.lock()
+ .thenRun(() -> System.out.println("Acquired a lock"));
+
+ replica2.getMap("map")
+ .thenCompose(m -> m.put("bar", "Hello world!"))
+ .thenRun(() -> System.out.println("Value is set in Distributed Map"))
+ .join();
+ }
+
+ private static class WorkerThread extends Thread {
+ private AtomixReplica replica;
+ private List cluster;
+
+ WorkerThread(AtomixReplica replica, List cluster) {
+ this.replica = replica;
+ this.cluster = cluster;
+ }
+
+ public void run() {
+ replica.join(cluster)
+ .join();
+ }
+ }
+}
\ No newline at end of file
diff --git a/atomix/src/test/java/com/atomix/exampletest/AtomixClientLiveTest.java b/atomix/src/test/java/com/atomix/exampletest/AtomixClientLiveTest.java
new file mode 100644
index 0000000000..9268a4a69b
--- /dev/null
+++ b/atomix/src/test/java/com/atomix/exampletest/AtomixClientLiveTest.java
@@ -0,0 +1,35 @@
+package com.atomix.exampletest;
+
+import io.atomix.AtomixClient;
+import io.atomix.catalyst.transport.Address;
+import io.atomix.catalyst.transport.netty.NettyTransport;
+import org.junit.Test;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.ExecutionException;
+
+import static org.junit.Assert.assertEquals;
+
+public class AtomixClientLiveTest {
+
+ private final AtomixClient client = AtomixClient.builder()
+ .withTransport(new NettyTransport())
+ .build();
+
+ @Test
+ public void whenBootstrap_thenShouldGet() throws InterruptedException, ExecutionException {
+ List cluster = Arrays.asList(
+ new Address("localhost", 8700),
+ new Address("localhsot", 8701));
+
+ String value = client.connect(cluster)
+ .thenRun(() -> System.out.println("Client Connected"))
+ .thenCompose(c -> client.getMap("map"))
+ .thenCompose(m -> m.get("bar"))
+ .thenApply(a -> (String) a)
+ .get();
+
+ assertEquals("Hello world!", value);
+ }
+}
diff --git a/libraries/pom.xml b/libraries/pom.xml
index 03919b9cec..97ddff96ec 100644
--- a/libraries/pom.xml
+++ b/libraries/pom.xml
@@ -585,11 +585,6 @@
fugue
3.0.0-m007
-
- org.jgrapht
- jgrapht-core
- 1.0.1
-
diff --git a/libraries/src/main/java/com/baeldung/jdo/xml/AnnotadedPerson.java b/libraries/src/main/java/com/baeldung/jdo/xml/AnnotadedPerson.java
new file mode 100644
index 0000000000..53e86524a5
--- /dev/null
+++ b/libraries/src/main/java/com/baeldung/jdo/xml/AnnotadedPerson.java
@@ -0,0 +1,72 @@
+package com.baeldung.jdo.xml;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.jdo.annotations.Element;
+import javax.jdo.annotations.PersistenceCapable;
+import javax.jdo.annotations.PrimaryKey;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+
+@PersistenceCapable(
+ schema="/myproduct/people",
+ table="person"
+ )
+public class AnnotadedPerson {
+ @XmlAttribute
+ private long personNum;
+
+ @PrimaryKey
+ private String firstName;
+ private String lastName;
+
+ @XmlElementWrapper(name="phone-numbers")
+ @XmlElement(name="phone-number")
+ @Element(types=String.class)
+ private List phoneNumbers = new ArrayList();
+
+
+ public AnnotadedPerson(long personNum, String firstName, String lastName) {
+ super();
+ this.personNum = personNum;
+ this.firstName = firstName;
+ this.lastName = lastName;
+ }
+
+ public long getPersonNum() {
+ return personNum;
+ }
+
+ public void setPersonNum(long personNum) {
+ this.personNum = personNum;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public List getPhoneNumbers() {
+ return phoneNumbers;
+ }
+
+ public void setPhoneNumbers(List phoneNumbers) {
+ this.phoneNumbers = phoneNumbers;
+ }
+
+}
diff --git a/libraries/src/main/java/com/baeldung/jdo/xml/MyApp.java b/libraries/src/main/java/com/baeldung/jdo/xml/MyApp.java
new file mode 100644
index 0000000000..97ec49eec1
--- /dev/null
+++ b/libraries/src/main/java/com/baeldung/jdo/xml/MyApp.java
@@ -0,0 +1,105 @@
+package com.baeldung.jdo.xml;
+
+import java.util.List;
+
+import javax.jdo.JDOHelper;
+import javax.jdo.PersistenceManager;
+import javax.jdo.PersistenceManagerFactory;
+import javax.jdo.Query;
+import javax.jdo.Transaction;
+
+import org.datanucleus.api.jdo.JDOPersistenceManagerFactory;
+import org.datanucleus.metadata.PersistenceUnitMetaData;
+
+public class MyApp {
+
+ private static PersistenceUnitMetaData pumd;
+ private static PersistenceManagerFactory pmf;
+ private static PersistenceManager pm;
+
+ public static void main( String[] args ) {
+
+ //persist product object using dynamic persistence unit
+ defineDynamicPersistentUnit();
+ Product product = new Product("id1","Sony Discman", "A standard discman from Sony", 49.99);
+ persistObject(product);
+ closePersistenceManager();
+
+ //persist AnnotatedPerson object using named pmf
+ defineNamedPersistenceManagerFactory("XmlDatastore");
+ AnnotadedPerson annotatedPerson = new AnnotadedPerson(654320,"annotated","person");
+ annotatedPerson.getPhoneNumbers().add("999999999");
+ annotatedPerson.getPhoneNumbers().add("000000000");
+ persistObject(annotatedPerson);
+ queryAnnotatedPersonsInXML();
+ closePersistenceManager();
+
+ //persist Person object using PMF created by properties file
+ definePersistenceManagerFactoryUsingPropertiesFile("META-INF\\datanucleus.properties");
+ Person person = new Person(654321,"bealdung","author");
+ person.getPhoneNumbers().add("123456789");
+ person.getPhoneNumbers().add("987654321");
+ persistObject(person);
+ queryPersonsInXML();
+ closePersistenceManager();
+ }
+
+ public static void defineDynamicPersistentUnit(){
+
+ PersistenceUnitMetaData pumd = new PersistenceUnitMetaData("dynamic-unit", "RESOURCE_LOCAL", null);
+ pumd.addProperty("javax.jdo.option.ConnectionURL", "xml:file:myfile_dynamicPMF.xml");
+ pumd.addProperty("datanucleus.schema.autoCreateAll", "true");
+ pumd.addProperty("datanucleus.xml.indentSize", "4");
+
+ pmf = new JDOPersistenceManagerFactory(pumd, null);
+ pm = pmf.getPersistenceManager();
+ }
+
+ public static void defineNamedPersistenceManagerFactory(String pmfName){
+
+ pmf = JDOHelper.getPersistenceManagerFactory("XmlDatastore");
+ pm = pmf.getPersistenceManager();
+ }
+
+ public static void definePersistenceManagerFactoryUsingPropertiesFile(String filePath){
+
+ pmf = JDOHelper.getPersistenceManagerFactory(filePath);
+ pm = pmf.getPersistenceManager();
+ }
+
+ public static void closePersistenceManager(){
+
+ if(pm!=null && !pm.isClosed()){
+ pm.close();
+ }
+ }
+
+ public static void persistObject(Object obj){
+
+ Transaction tx = pm.currentTransaction();
+
+ try {
+ tx.begin();
+ pm.makePersistent(obj);
+ tx.commit();
+ } finally {
+ if (tx.isActive()) {
+ tx.rollback();
+ }
+ }
+ }
+
+ public static void queryPersonsInXML(){
+
+ Query query = pm.newQuery(Person.class);
+ List result = query.executeList();
+ System.out.println("name: "+result.get(0).getFirstName());
+ }
+
+ public static void queryAnnotatedPersonsInXML(){
+
+ Query query = pm.newQuery(AnnotadedPerson.class);
+ List result = query.executeList();
+ System.out.println("name: "+result.get(0).getFirstName());
+ }
+}
diff --git a/libraries/src/main/java/com/baeldung/jdo/xml/Person.java b/libraries/src/main/java/com/baeldung/jdo/xml/Person.java
new file mode 100644
index 0000000000..e3ec5c6bab
--- /dev/null
+++ b/libraries/src/main/java/com/baeldung/jdo/xml/Person.java
@@ -0,0 +1,65 @@
+package com.baeldung.jdo.xml;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.jdo.annotations.Element;
+import javax.jdo.annotations.PersistenceCapable;
+import javax.jdo.annotations.PrimaryKey;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
+
+
+@PersistenceCapable
+public class Person {
+ private long personNum;
+
+ @PrimaryKey
+ private String firstName;
+ private String lastName;
+
+ private List phoneNumbers = new ArrayList();
+
+ public Person(long personNum, String firstName, String lastName) {
+ super();
+ this.personNum = personNum;
+ this.firstName = firstName;
+ this.lastName = lastName;
+ }
+
+ public long getPersonNum() {
+ return personNum;
+ }
+
+ public void setPersonNum(long personNum) {
+ this.personNum = personNum;
+ }
+
+ public String getFirstName() {
+ return firstName;
+ }
+
+ public void setFirstName(String firstName) {
+ this.firstName = firstName;
+ }
+
+ public String getLastName() {
+ return lastName;
+ }
+
+ public void setLastName(String lastName) {
+ this.lastName = lastName;
+ }
+
+ public List getPhoneNumbers() {
+ return phoneNumbers;
+ }
+
+ public void setPhoneNumbers(List phoneNumbers) {
+ this.phoneNumbers = phoneNumbers;
+ }
+
+}
diff --git a/libraries/src/main/java/com/baeldung/jdo/xml/Product.java b/libraries/src/main/java/com/baeldung/jdo/xml/Product.java
new file mode 100644
index 0000000000..d8d3bb17b2
--- /dev/null
+++ b/libraries/src/main/java/com/baeldung/jdo/xml/Product.java
@@ -0,0 +1,58 @@
+package com.baeldung.jdo.xml;
+
+import javax.jdo.annotations.IdGeneratorStrategy;
+import javax.jdo.annotations.PersistenceAware;
+import javax.jdo.annotations.PersistenceCapable;
+import javax.jdo.annotations.Persistent;
+import javax.jdo.annotations.PrimaryKey;
+
+@PersistenceCapable
+public class Product {
+
+ @PrimaryKey
+ String id;
+ String name;
+ String description;
+ double price;
+
+ public Product(){
+
+ }
+
+ public Product(String id,String name,String description,double price){
+ this.id = id;
+ this.name=name;
+ this.description = description;
+ this.price = price;
+ }
+
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+ public String getDescription() {
+ return description;
+ }
+ public void setDescription(String description) {
+ this.description = description;
+ }
+ public double getPrice() {
+ return price;
+ }
+ public void setPrice(double price) {
+ this.price = price;
+ }
+
+
+}
diff --git a/libraries/src/main/resources/META-INF/datanucleus.properties b/libraries/src/main/resources/META-INF/datanucleus.properties
new file mode 100644
index 0000000000..a3cd4a450a
--- /dev/null
+++ b/libraries/src/main/resources/META-INF/datanucleus.properties
@@ -0,0 +1,4 @@
+javax.jdo.PersistenceManagerFactoryClass=org.datanucleus.api.jdo.JDOPersistenceManagerFactory
+javax.jdo.option.ConnectionURL= xml:file:myfile-ds.xml
+datanucleus.xml.indentSize=6
+datanucleus.schema.autoCreateAll=true
\ No newline at end of file
diff --git a/libraries/src/main/resources/META-INF/jdoconfig.xml b/libraries/src/main/resources/META-INF/jdoconfig.xml
new file mode 100644
index 0000000000..77da460686
--- /dev/null
+++ b/libraries/src/main/resources/META-INF/jdoconfig.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/libraries/src/main/resources/META-INF/package.jdo b/libraries/src/main/resources/META-INF/package.jdo
new file mode 100644
index 0000000000..d30207e2e0
--- /dev/null
+++ b/libraries/src/main/resources/META-INF/package.jdo
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index dd0871ae79..ff4b490c6b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,6 +28,7 @@
+ atomix
apache-cayenne
aws
akka-streams
diff --git a/spring-5/src/main/java/com/baeldung/jsonb/Person.java b/spring-5/src/main/java/com/baeldung/jsonb/Person.java
index 99ebd54f0b..7a54b37574 100644
--- a/spring-5/src/main/java/com/baeldung/jsonb/Person.java
+++ b/spring-5/src/main/java/com/baeldung/jsonb/Person.java
@@ -10,6 +10,7 @@ import javax.json.bind.annotation.JsonbTransient;
public class Person {
+ private int id;
@JsonbProperty("person-name")
private String name;
@JsonbProperty(nillable = true)
@@ -23,8 +24,9 @@ public class Person {
public Person() {
}
- public Person(String name, String email, int age, LocalDate registeredDate, BigDecimal salary) {
+ public Person(int id, String name, String email, int age, LocalDate registeredDate, BigDecimal salary) {
super();
+ this.id = id;
this.name = name;
this.email = email;
this.age = age;
@@ -32,6 +34,14 @@ public class Person {
this.salary = salary;
}
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
public int getAge() {
return age;
}
@@ -76,7 +86,9 @@ public class Person {
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
- builder.append("Person [name=");
+ builder.append("Person [id=");
+ builder.append(id);
+ builder.append(", name=");
builder.append(name);
builder.append(", email=");
builder.append(email);
@@ -94,11 +106,7 @@ public class Person {
public int hashCode() {
final int prime = 31;
int result = 1;
- result = prime * result + age;
- result = prime * result + ((email == null) ? 0 : email.hashCode());
- result = prime * result + ((name == null) ? 0 : name.hashCode());
- result = prime * result + ((registeredDate == null) ? 0 : registeredDate.hashCode());
- result = prime * result + ((salary == null) ? 0 : salary.hashCode());
+ result = prime * result + id;
return result;
}
@@ -111,27 +119,7 @@ public class Person {
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
- if (age != other.age)
- return false;
- if (email == null) {
- if (other.email != null)
- return false;
- } else if (!email.equals(other.email))
- return false;
- if (name == null) {
- if (other.name != null)
- return false;
- } else if (!name.equals(other.name))
- return false;
- if (registeredDate == null) {
- if (other.registeredDate != null)
- return false;
- } else if (!registeredDate.equals(other.registeredDate))
- return false;
- if (salary == null) {
- if (other.salary != null)
- return false;
- } else if (!salary.equals(other.salary))
+ if (id != other.id)
return false;
return true;
}
diff --git a/spring-5/src/main/java/com/baeldung/jsonb/PersonController.java b/spring-5/src/main/java/com/baeldung/jsonb/PersonController.java
index 75fcd1e2cc..e216a282eb 100644
--- a/spring-5/src/main/java/com/baeldung/jsonb/PersonController.java
+++ b/spring-5/src/main/java/com/baeldung/jsonb/PersonController.java
@@ -26,12 +26,12 @@ public class PersonController {
public void init() {
// @formatter:off
personRepository = new ArrayList<>(Arrays.asList(
- new Person("Jhon", "jhon@test.com", 20, LocalDate.of(2019, 9, 9), BigDecimal.valueOf(1000)),
- new Person("Jhon", "jhon1@test.com", 20, LocalDate.of(2019, 9, 9), BigDecimal.valueOf(1500)),
- new Person("Jhon", null, 20, LocalDate.of(2019, 9, 9), BigDecimal.valueOf(1000)),
- new Person("Tom", "tom@test.com", 21, LocalDate.of(2019, 9, 9), BigDecimal.valueOf(1500)),
- new Person("Mark", "mark@test.com", 21, LocalDate.of(2019, 9, 9), BigDecimal.valueOf(1200)),
- new Person("Julia", "jhon@test.com", 20, LocalDate.of(2019, 9, 9), BigDecimal.valueOf(1000))));
+ new Person(1, "Jhon", "jhon@test.com", 20, LocalDate.of(2019, 9, 9), BigDecimal.valueOf(1000)),
+ new Person(2, "Jhon", "jhon1@test.com", 20, LocalDate.of(2019, 9, 9), BigDecimal.valueOf(1500)),
+ new Person(3, "Jhon", null, 20, LocalDate.of(2019, 9, 9), BigDecimal.valueOf(1000)),
+ new Person(4, "Tom", "tom@test.com", 21, LocalDate.of(2019, 9, 9), BigDecimal.valueOf(1500)),
+ new Person(5, "Mark", "mark@test.com", 21, LocalDate.of(2019, 9, 9), BigDecimal.valueOf(1200)),
+ new Person(6, "Julia", "jhon@test.com", 20, LocalDate.of(2019, 9, 9), BigDecimal.valueOf(1000))));
// @formatter:on
}
diff --git a/spring-5/src/test/java/com/baeldung/jsonb/JsonbIntegrationTest.java b/spring-5/src/test/java/com/baeldung/jsonb/JsonbIntegrationTest.java
index a31a16d610..756b303f3b 100644
--- a/spring-5/src/test/java/com/baeldung/jsonb/JsonbIntegrationTest.java
+++ b/spring-5/src/test/java/com/baeldung/jsonb/JsonbIntegrationTest.java
@@ -30,15 +30,14 @@ public class JsonbIntegrationTest {
ResponseEntity response = template.withBasicAuth(username, password)
.getForEntity("/person/1", Person.class);
Person person = response.getBody();
- assertTrue(person.equals(new Person("Jhon", "jhon1@test.com", 0, LocalDate.of(2019, 9, 9), BigDecimal.valueOf(1500.0))));
+ assertTrue(person.equals(new Person(2, "Jhon", "jhon1@test.com", 0, LocalDate.of(2019, 9, 9), BigDecimal.valueOf(1500.0))));
}
@Test
public void whenSendPostAPerson_thenGetOkStatus() {
ResponseEntity response = template.withBasicAuth(username, password)
- .postForEntity("/person", "{\"birthDate\":\"07-09-2017\",\"email\":\"jhon1@test.com\",\"person-name\":\"Jhon\"}", Boolean.class);
- boolean value = response.getBody();
- assertTrue(true == value);
+ .postForEntity("/person", "{\"birthDate\":\"07-09-2017\",\"email\":\"jhon1@test.com\",\"person-name\":\"Jhon\",\"id\":10}", Boolean.class);
+ assertTrue(response.getBody());
}
}
diff --git a/spring-5/src/test/java/com/baeldung/jsonb/JsonbTest.java b/spring-5/src/test/java/com/baeldung/jsonb/JsonbTest.java
index 7133999551..4caab86f7d 100644
--- a/spring-5/src/test/java/com/baeldung/jsonb/JsonbTest.java
+++ b/spring-5/src/test/java/com/baeldung/jsonb/JsonbTest.java
@@ -22,15 +22,15 @@ public class JsonbTest {
@Test
public void givenPersonObject_whenSerializeWithJsonb_thenGetPersonJson() {
- Person person = new Person("Jhon", "jhon@test.com", 20, LocalDate.of(2019, 9, 7), BigDecimal.valueOf(1000));
+ Person person = new Person(1, "Jhon", "jhon@test.com", 20, LocalDate.of(2019, 9, 7), BigDecimal.valueOf(1000));
String jsonPerson = jsonb.toJson(person);
- assertTrue("{\"email\":\"jhon@test.com\",\"person-name\":\"Jhon\",\"registeredDate\":\"07-09-2019\",\"salary\":\"1000.0\"}".equals(jsonPerson));
+ assertTrue("{\"email\":\"jhon@test.com\",\"id\":1,\"person-name\":\"Jhon\",\"registeredDate\":\"07-09-2019\",\"salary\":\"1000.0\"}".equals(jsonPerson));
}
@Test
public void givenPersonJson_whenDeserializeWithJsonb_thenGetPersonObject() {
- Person person = new Person("Jhon", "jhon@test.com", 0, LocalDate.of(2019, 9, 7), BigDecimal.valueOf(1000.0));
- String jsonPerson = "{\"email\":\"jhon@test.com\",\"person-name\":\"Jhon\",\"registeredDate\":\"07-09-2019\",\"salary\":\"1000.0\"}";
+ Person person = new Person(1, "Jhon", "jhon@test.com", 0, LocalDate.of(2019, 9, 7), BigDecimal.valueOf(1000.0));
+ String jsonPerson = "{\"email\":\"jhon@test.com\",\"id\":1,\"person-name\":\"Jhon\",\"registeredDate\":\"07-09-2019\",\"salary\":\"1000.0\"}";
assertTrue(jsonb.fromJson(jsonPerson, Person.class)
.equals(person));
}