diff --git a/pom.xml b/pom.xml
index 4598629..63ddc08 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,24 +26,11 @@
- 1.0.0-alpha.6
+ 1.0.0-alpha.7
1.8
1.8
UTF-8
UTF-8
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.10.1
-
-
- -parameters
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/tigrisdata/starter/collections/Order.java b/src/main/java/com/tigrisdata/starter/collections/Order.java
index 2ce0a6c..9496ac0 100644
--- a/src/main/java/com/tigrisdata/starter/collections/Order.java
+++ b/src/main/java/com/tigrisdata/starter/collections/Order.java
@@ -13,8 +13,8 @@
*/
package com.tigrisdata.starter.collections;
-import com.tigrisdata.db.annotation.TigrisDBCollectionField;
-import com.tigrisdata.db.annotation.TigrisDBCollectionPrimaryKey;
+import com.tigrisdata.db.annotation.TigrisField;
+import com.tigrisdata.db.annotation.TigrisPrimaryKey;
import com.tigrisdata.db.type.TigrisCollectionType;
import java.util.List;
@@ -22,18 +22,20 @@
public class Order implements TigrisCollectionType {
- @TigrisDBCollectionField(description = "A unique identifier for the order")
- @TigrisDBCollectionPrimaryKey(1)
- private final int id;
+ @TigrisField(description = "A unique identifier for the order")
+ @TigrisPrimaryKey(1)
+ private int id;
- @TigrisDBCollectionField(description = "The identifier of the user that placed the order")
- private final int userId;
+ @TigrisField(description = "The identifier of the user that placed the order")
+ private int userId;
- @TigrisDBCollectionField(description = "The total cost of the order")
- private final double orderTotal;
+ @TigrisField(description = "The total cost of the order")
+ private double orderTotal;
- @TigrisDBCollectionField(description = "The list of products that are part of this order")
- private final List productItems;
+ @TigrisField(description = "The list of products that are part of this order")
+ private List productItems;
+
+ public Order() {}
public Order(int id, int userId, double orderTotal, List productItems) {
this.id = id;
@@ -43,11 +45,13 @@ public Order(int id, int userId, double orderTotal, List productIte
}
public static class ProductItem {
- @TigrisDBCollectionField(description = "The product identifier")
- private final int productId;
+ @TigrisField(description = "The product identifier")
+ private int productId;
+
+ @TigrisField(description = "The quantity of this product in this order")
+ private int quantity;
- @TigrisDBCollectionField(description = "The quantity of this product in this order")
- private final int quantity;
+ public ProductItem() {}
public ProductItem(int productId, int quantity) {
this.productId = productId;
@@ -62,6 +66,14 @@ public int getQuantity() {
return quantity;
}
+ public void setProductId(int productId) {
+ this.productId = productId;
+ }
+
+ public void setQuantity(int quantity) {
+ this.quantity = quantity;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
@@ -97,28 +109,35 @@ public List getProductItems() {
return productItems;
}
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public void setUserId(int userId) {
+ this.userId = userId;
+ }
+
+ public void setOrderTotal(double orderTotal) {
+ this.orderTotal = orderTotal;
+ }
+
+ public void setProductItems(List productItems) {
+ this.productItems = productItems;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
-
Order order = (Order) o;
-
- if (id != order.id) return false;
- if (userId != order.userId) return false;
- if (Double.compare(order.orderTotal, orderTotal) != 0) return false;
- return Objects.equals(productItems, order.productItems);
+ return id == order.id
+ && userId == order.userId
+ && Double.compare(order.orderTotal, orderTotal) == 0
+ && Objects.equals(productItems, order.productItems);
}
@Override
public int hashCode() {
- int result;
- long temp;
- result = id;
- result = 31 * result + userId;
- temp = Double.doubleToLongBits(orderTotal);
- result = 31 * result + (int) (temp ^ (temp >>> 32));
- result = 31 * result + (productItems != null ? productItems.hashCode() : 0);
- return result;
+ return Objects.hash(id, userId, orderTotal, productItems);
}
}
diff --git a/src/main/java/com/tigrisdata/starter/collections/Product.java b/src/main/java/com/tigrisdata/starter/collections/Product.java
index 5a25013..268e61f 100644
--- a/src/main/java/com/tigrisdata/starter/collections/Product.java
+++ b/src/main/java/com/tigrisdata/starter/collections/Product.java
@@ -13,26 +13,30 @@
*/
package com.tigrisdata.starter.collections;
-import com.tigrisdata.db.annotation.TigrisDBCollectionField;
-import com.tigrisdata.db.annotation.TigrisDBCollectionPrimaryKey;
+import com.tigrisdata.db.annotation.TigrisCollection;
+import com.tigrisdata.db.annotation.TigrisField;
+import com.tigrisdata.db.annotation.TigrisPrimaryKey;
import com.tigrisdata.db.type.TigrisCollectionType;
import java.util.Objects;
+@TigrisCollection("product_collection")
public class Product implements TigrisCollectionType {
- @TigrisDBCollectionField(description = "A unique identifier for the product")
- @TigrisDBCollectionPrimaryKey(1)
- private final int id;
+ @TigrisField(description = "A unique identifier for the product")
+ @TigrisPrimaryKey(1)
+ private int id;
- @TigrisDBCollectionField(description = "Name of the product")
- private final String name;
+ @TigrisField(description = "Name of the product")
+ private String name;
- @TigrisDBCollectionField(description = "Number of products available in the store")
- private final int quantity;
+ @TigrisField(description = "Number of products available in the store")
+ private int quantity;
- @TigrisDBCollectionField(description = "Price of the product")
- private final double price;
+ @TigrisField(description = "Price of the product")
+ private double price;
+
+ public Product() {}
public Product(int id, String name, int quantity, double price) {
this.id = id;
@@ -57,28 +61,35 @@ public double getPrice() {
return price;
}
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setQuantity(int quantity) {
+ this.quantity = quantity;
+ }
+
+ public void setPrice(double price) {
+ this.price = price;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
-
Product product = (Product) o;
-
- if (id != product.id) return false;
- if (quantity != product.quantity) return false;
- if (Double.compare(product.price, price) != 0) return false;
- return Objects.equals(name, product.name);
+ return id == product.id
+ && quantity == product.quantity
+ && Double.compare(product.price, price) == 0
+ && Objects.equals(name, product.name);
}
@Override
public int hashCode() {
- int result;
- long temp;
- result = id;
- result = 31 * result + (name != null ? name.hashCode() : 0);
- result = 31 * result + quantity;
- temp = Double.doubleToLongBits(price);
- result = 31 * result + (int) (temp ^ (temp >>> 32));
- return result;
+ return Objects.hash(id, name, quantity, price);
}
}
diff --git a/src/main/java/com/tigrisdata/starter/collections/User.java b/src/main/java/com/tigrisdata/starter/collections/User.java
index 87e85e0..c869826 100644
--- a/src/main/java/com/tigrisdata/starter/collections/User.java
+++ b/src/main/java/com/tigrisdata/starter/collections/User.java
@@ -13,27 +13,24 @@
*/
package com.tigrisdata.starter.collections;
-import com.tigrisdata.db.annotation.TigrisDBCollectionField;
-import com.tigrisdata.db.annotation.TigrisDBCollectionPrimaryKey;
+import com.tigrisdata.db.annotation.TigrisField;
+import com.tigrisdata.db.annotation.TigrisPrimaryKey;
import com.tigrisdata.db.type.TigrisCollectionType;
import java.util.Objects;
public class User implements TigrisCollectionType {
- @TigrisDBCollectionField(description = "A unique identifier for the user")
- @TigrisDBCollectionPrimaryKey(1)
- private final int id;
+ @TigrisField(description = "A unique identifier for the user")
+ @TigrisPrimaryKey(1)
+ private int id;
- @TigrisDBCollectionField(description = "Name of the user")
- private final String name;
+ @TigrisField(description = "Name of the user")
+ private String name;
- @TigrisDBCollectionField(description = "User account balance")
- private final double balance;
+ @TigrisField(description = "User account balance")
+ private double balance;
- public User(int id, String name, double balance) {
- this.id = id;
- this.name = name;
- this.balance = balance;
+ public User() {
}
public int getId() {
@@ -48,26 +45,30 @@ public double getBalance() {
return balance;
}
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setBalance(double balance) {
+ this.balance = balance;
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
-
User user = (User) o;
-
- if (id != user.id) return false;
- if (Double.compare(user.balance, balance) != 0) return false;
- return Objects.equals(name, user.name);
+ return id == user.id
+ && Double.compare(user.balance, balance) == 0
+ && Objects.equals(name, user.name);
}
@Override
public int hashCode() {
- int result;
- long temp;
- result = id;
- result = 31 * result + (name != null ? name.hashCode() : 0);
- temp = Double.doubleToLongBits(balance);
- result = 31 * result + (int) (temp ^ (temp >>> 32));
- return result;
+ return Objects.hash(id, name, balance);
}
}
diff --git a/src/main/java/com/tigrisdata/starter/controller/OrderController.java b/src/main/java/com/tigrisdata/starter/controller/OrderController.java
index 8b93c9b..d5f005f 100644
--- a/src/main/java/com/tigrisdata/starter/controller/OrderController.java
+++ b/src/main/java/com/tigrisdata/starter/controller/OrderController.java
@@ -15,7 +15,7 @@
import com.tigrisdata.db.client.Filters;
import com.tigrisdata.db.client.TigrisDatabase;
-import com.tigrisdata.db.client.error.TigrisDBException;
+import com.tigrisdata.db.client.error.TigrisException;
import com.tigrisdata.starter.collections.Order;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@@ -36,7 +36,7 @@ public OrderController(TigrisDatabase tigrisStarterDatabase) {
}
@GetMapping("/{id}")
- public Order read(@PathVariable("id") int id) throws TigrisDBException {
+ public Order read(@PathVariable("id") int id) throws TigrisException {
return tigrisStarterDatabase.getCollection(Order.class).readOne(Filters.eq("id", id)).get();
}
}
diff --git a/src/main/java/com/tigrisdata/starter/controller/ProductController.java b/src/main/java/com/tigrisdata/starter/controller/ProductController.java
index 78d3f1c..da245ae 100644
--- a/src/main/java/com/tigrisdata/starter/controller/ProductController.java
+++ b/src/main/java/com/tigrisdata/starter/controller/ProductController.java
@@ -16,7 +16,7 @@
import com.tigrisdata.db.client.Filters;
import com.tigrisdata.db.client.TigrisCollection;
import com.tigrisdata.db.client.TigrisDatabase;
-import com.tigrisdata.db.client.error.TigrisDBException;
+import com.tigrisdata.db.client.error.TigrisException;
import com.tigrisdata.starter.collections.Product;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -39,18 +39,18 @@ public ProductController(TigrisDatabase tigrisDatabase) {
}
@PostMapping("/create")
- public ResponseEntity create(@RequestBody Product product) throws TigrisDBException {
+ public ResponseEntity create(@RequestBody Product product) throws TigrisException {
productTigrisCollection.insert(product);
return ResponseEntity.status(HttpStatus.CREATED).body("product created");
}
@GetMapping("/{id}")
- public Product read(@PathVariable("id") int id) throws TigrisDBException {
+ public Product read(@PathVariable("id") int id) throws TigrisException {
return productTigrisCollection.readOne(Filters.eq("id", id)).get();
}
@DeleteMapping("/{id}")
- public ResponseEntity delete(@PathVariable("id") int id) throws TigrisDBException {
+ public ResponseEntity delete(@PathVariable("id") int id) throws TigrisException {
productTigrisCollection.delete(Filters.eq("id", id));
return ResponseEntity.status(HttpStatus.OK).body("product deleted");
}
diff --git a/src/main/java/com/tigrisdata/starter/controller/TigrisDBExceptionAdvice.java b/src/main/java/com/tigrisdata/starter/controller/TigrisDBExceptionAdvice.java
index 1d8ab36..9496cbe 100644
--- a/src/main/java/com/tigrisdata/starter/controller/TigrisDBExceptionAdvice.java
+++ b/src/main/java/com/tigrisdata/starter/controller/TigrisDBExceptionAdvice.java
@@ -13,7 +13,7 @@
*/
package com.tigrisdata.starter.controller;
-import com.tigrisdata.db.client.error.TigrisDBException;
+import com.tigrisdata.db.client.error.TigrisException;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
@@ -24,9 +24,9 @@
public class TigrisDBExceptionAdvice {
@ResponseBody
- @ExceptionHandler(TigrisDBException.class)
+ @ExceptionHandler(TigrisException.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
- String exceptionHandler(TigrisDBException ex) {
+ String exceptionHandler(TigrisException ex) {
String errorMessage = ex.getMessage();
if (ex.getCause() != null && ex.getCause().getMessage() != null) {
errorMessage += ", " + ex.getCause().getMessage();
diff --git a/src/main/java/com/tigrisdata/starter/controller/UserController.java b/src/main/java/com/tigrisdata/starter/controller/UserController.java
index 056007c..1b50d13 100644
--- a/src/main/java/com/tigrisdata/starter/controller/UserController.java
+++ b/src/main/java/com/tigrisdata/starter/controller/UserController.java
@@ -16,7 +16,7 @@
import com.tigrisdata.db.client.Filters;
import com.tigrisdata.db.client.TigrisCollection;
import com.tigrisdata.db.client.TigrisDatabase;
-import com.tigrisdata.db.client.error.TigrisDBException;
+import com.tigrisdata.db.client.error.TigrisException;
import com.tigrisdata.starter.collections.User;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -39,18 +39,18 @@ public UserController(TigrisDatabase tigrisDatabase) {
}
@PostMapping("/create")
- public ResponseEntity create(@RequestBody User user) throws TigrisDBException {
+ public ResponseEntity create(@RequestBody User user) throws TigrisException {
userTigrisCollection.insert(user);
return ResponseEntity.status(HttpStatus.CREATED).body("User created");
}
@GetMapping("/{id}")
- public User read(@PathVariable("id") int id) throws TigrisDBException {
+ public User read(@PathVariable("id") int id) throws TigrisException {
return userTigrisCollection.readOne(Filters.eq("id", id)).get();
}
@DeleteMapping("/{id}")
- public ResponseEntity delete(@PathVariable("id") int id) throws TigrisDBException {
+ public ResponseEntity delete(@PathVariable("id") int id) throws TigrisException {
userTigrisCollection.delete(Filters.eq("id", id));
return ResponseEntity.status(HttpStatus.OK).body("User deleted");
}
diff --git a/src/main/java/com/tigrisdata/starter/spring/JacksonConfigurer.java b/src/main/java/com/tigrisdata/starter/spring/JacksonConfigurer.java
deleted file mode 100644
index 9be17b4..0000000
--- a/src/main/java/com/tigrisdata/starter/spring/JacksonConfigurer.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.tigrisdata.starter.spring;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.module.paramnames.ParameterNamesModule;
-import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
-
-/** This is to customize default ObjectMapper used by spring-mvc. */
-@Configuration
-public class JacksonConfigurer implements Jackson2ObjectMapperBuilderCustomizer {
- /**
- * Customization here enables jackson to work with immutable objects
- *
- * @param builder ongoing builder
- */
- @Override
- public void customize(Jackson2ObjectMapperBuilder builder) {
- builder.modules(new ParameterNamesModule(JsonCreator.Mode.PROPERTIES));
- }
-}
diff --git a/src/main/java/com/tigrisdata/starter/spring/TigrisDBInitializer.java b/src/main/java/com/tigrisdata/starter/spring/TigrisDBInitializer.java
index 776db7a..07ffa26 100644
--- a/src/main/java/com/tigrisdata/starter/spring/TigrisDBInitializer.java
+++ b/src/main/java/com/tigrisdata/starter/spring/TigrisDBInitializer.java
@@ -13,7 +13,8 @@
*/
package com.tigrisdata.starter.spring;
-import com.tigrisdata.db.client.TigrisDBClient;
+import com.tigrisdata.db.client.TigrisClient;
+import com.tigrisdata.db.client.TigrisDatabase;
import com.tigrisdata.starter.collections.Order;
import com.tigrisdata.starter.collections.Product;
import com.tigrisdata.starter.collections.User;
@@ -23,12 +24,12 @@
public class TigrisDBInitializer implements CommandLineRunner {
- private final TigrisDBClient tigrisDBClient;
+ private final TigrisClient tigrisDBClient;
private final String dbName;
private static final Logger log = LoggerFactory.getLogger(TigrisDBInitializer.class);
- public TigrisDBInitializer(TigrisDBClient tigrisDBClient, String dbName) {
+ public TigrisDBInitializer(TigrisClient tigrisDBClient, String dbName) {
this.tigrisDBClient = tigrisDBClient;
this.dbName = dbName;
}
@@ -36,11 +37,9 @@ public TigrisDBInitializer(TigrisDBClient tigrisDBClient, String dbName) {
@Override
public void run(String... args) throws Exception {
log.info("createDbIfNotExists db: {}", dbName);
- tigrisDBClient.createDatabaseIfNotExists(dbName);
+ TigrisDatabase tigrisDatabase = tigrisDBClient.createDatabaseIfNotExists(dbName);
log.info("creating collections on db {}", dbName);
- tigrisDBClient
- .getDatabase(dbName)
- .createOrUpdateCollections(User.class, Product.class, Order.class);
+ tigrisDatabase.createOrUpdateCollections(User.class, Product.class, Order.class);
log.info("Finished initializing TigrisDB");
}
}
diff --git a/src/main/java/com/tigrisdata/starter/spring/TigrisDBSpringConfiguration.java b/src/main/java/com/tigrisdata/starter/spring/TigrisDBSpringConfiguration.java
index bc2db4e..135dd7e 100644
--- a/src/main/java/com/tigrisdata/starter/spring/TigrisDBSpringConfiguration.java
+++ b/src/main/java/com/tigrisdata/starter/spring/TigrisDBSpringConfiguration.java
@@ -13,11 +13,10 @@
*/
package com.tigrisdata.starter.spring;
-import com.tigrisdata.db.client.StandardTigrisDBClient;
-import com.tigrisdata.db.client.TigrisDBClient;
+import com.tigrisdata.db.client.StandardTigrisClient;
+import com.tigrisdata.db.client.TigrisClient;
import com.tigrisdata.db.client.TigrisDatabase;
-import com.tigrisdata.db.client.auth.TigrisAuthorizationToken;
-import com.tigrisdata.db.client.config.TigrisDBConfiguration;
+import com.tigrisdata.db.client.config.TigrisConfiguration;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -26,35 +25,29 @@
public class TigrisDBSpringConfiguration {
@Bean
public TigrisDatabase tigrisDatabase(
- @Value("${tigrisdb.db.name}") String dbName, TigrisDBClient client) {
+ @Value("${tigrisdb.db.name}") String dbName, TigrisClient client) {
return client.getDatabase(dbName);
}
@Bean
- public TigrisDBConfiguration tigrisDBConfiguration(
- @Value("${tigrisdb.server.url}") String baseUrl,
+ public TigrisClient tigrisDBClient(
+ @Value("${tigrisdb.server.url}") String serverURL,
@Value("${tigrisdb.network.usePlainText:false}") boolean usePlainText) {
- TigrisDBConfiguration.NetworkConfig.NetworkConfigBuilder networkConfigBuilder =
- TigrisDBConfiguration.NetworkConfig.newBuilder();
+ TigrisConfiguration.NetworkConfig.Builder networkConfigBuilder =
+ TigrisConfiguration.NetworkConfig.newBuilder();
if (usePlainText) {
networkConfigBuilder.usePlainText();
}
- return TigrisDBConfiguration.newBuilder(baseUrl)
- .withNetwork(networkConfigBuilder.build())
- .build();
- }
-
- @Bean
- public TigrisDBClient tigrisDBClient(
- @Value("${tigrisdb.authorization.token}") String token,
- TigrisDBConfiguration tigrisDBConfiguration) {
- return StandardTigrisDBClient.getInstance(
- new TigrisAuthorizationToken(token), tigrisDBConfiguration);
+ TigrisConfiguration configuration =
+ TigrisConfiguration.newBuilder(serverURL)
+ .withNetwork(networkConfigBuilder.build())
+ .build();
+ return StandardTigrisClient.getInstance(configuration);
}
@Bean
public TigrisDBInitializer tigrisDBInitializr(
- TigrisDBClient tigrisDBClient, @Value("${tigrisdb.db.name}") String dbName) {
+ TigrisClient tigrisDBClient, @Value("${tigrisdb.db.name}") String dbName) {
return new TigrisDBInitializer(tigrisDBClient, dbName);
}
}