parent
129c751cb4
commit
b0e15fcca0
|
@ -165,19 +165,61 @@
|
||||||
<groupId>org.javamoney</groupId>
|
<groupId>org.javamoney</groupId>
|
||||||
<artifactId>moneta</artifactId>
|
<artifactId>moneta</artifactId>
|
||||||
<version>1.1</version>
|
<version>1.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.owasp.esapi</groupId>
|
||||||
|
<artifactId>esapi</artifactId>
|
||||||
|
<version>2.1.0.1</version>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<artifactId>commons-logging</artifactId>
|
||||||
|
<groupId>commons-logging</groupId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
<!-- JDO -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.datanucleus</groupId>
|
||||||
|
<artifactId>javax.jdo</artifactId>
|
||||||
|
<version>3.2.0-m6</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.datanucleus</groupId>
|
||||||
|
<artifactId>datanucleus-core</artifactId>
|
||||||
|
<version>5.1.0-m1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.datanucleus</groupId>
|
||||||
|
<artifactId>datanucleus-api-jdo</artifactId>
|
||||||
|
<version>5.1.0-m1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.datanucleus</groupId>
|
||||||
|
<artifactId>datanucleus-rdbms</artifactId>
|
||||||
|
<version>5.1.0-m1</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.datanucleus</groupId>
|
||||||
|
<artifactId>datanucleus-maven-plugin</artifactId>
|
||||||
|
<version>5.0.2</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.h2database</groupId>
|
||||||
|
<artifactId>h2</artifactId>
|
||||||
|
<version>1.4.194</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.owasp.esapi</groupId>
|
<groupId>org.owasp.esapi</groupId>
|
||||||
<artifactId>esapi</artifactId>
|
<artifactId>esapi</artifactId>
|
||||||
<version>2.1.0.1</version>
|
<version>2.1.0.1</version>
|
||||||
<exclusions>
|
<exclusions>
|
||||||
<exclusion>
|
<exclusion>
|
||||||
<artifactId>commons-logging</artifactId>
|
<artifactId>commons-logging</artifactId>
|
||||||
<groupId>commons-logging</groupId>
|
<groupId>commons-logging</groupId>
|
||||||
</exclusion>
|
</exclusion>
|
||||||
</exclusions>
|
</exclusions>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
@ -191,7 +233,6 @@
|
||||||
</resources>
|
</resources>
|
||||||
|
|
||||||
<plugins>
|
<plugins>
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
@ -201,7 +242,6 @@
|
||||||
<target>1.8</target>
|
<target>1.8</target>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
|
@ -214,7 +254,6 @@
|
||||||
<testFailureIgnore>true</testFailureIgnore>
|
<testFailureIgnore>true</testFailureIgnore>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-dependency-plugin</artifactId>
|
<artifactId>maven-dependency-plugin</artifactId>
|
||||||
|
@ -245,7 +284,6 @@
|
||||||
</archive>
|
</archive>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-assembly-plugin</artifactId>
|
<artifactId>maven-assembly-plugin</artifactId>
|
||||||
|
@ -269,7 +307,6 @@
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-shade-plugin</artifactId>
|
<artifactId>maven-shade-plugin</artifactId>
|
||||||
|
@ -290,7 +327,6 @@
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>com.jolira</groupId>
|
<groupId>com.jolira</groupId>
|
||||||
<artifactId>onejar-maven-plugin</artifactId>
|
<artifactId>onejar-maven-plugin</artifactId>
|
||||||
|
@ -307,7 +343,6 @@
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
@ -323,6 +358,28 @@
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
|
<!-- JDO Plugin -->
|
||||||
|
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.datanucleus</groupId>
|
||||||
|
<artifactId>datanucleus-maven-plugin</artifactId>
|
||||||
|
<version>5.0.2</version>
|
||||||
|
<configuration>
|
||||||
|
<api>JDO</api>
|
||||||
|
<props>${basedir}/datanucleus.properties</props>
|
||||||
|
<log4jConfiguration>${basedir}/log4j.properties</log4jConfiguration>
|
||||||
|
<verbose>true</verbose>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<phase>process-classes</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>enhance</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
</plugins>
|
</plugins>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,83 @@
|
||||||
|
package com.baeldung.jdo;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
import javax.jdo.JDOHelper;
|
||||||
|
import javax.jdo.PersistenceManager;
|
||||||
|
import javax.jdo.PersistenceManagerFactory;
|
||||||
|
import javax.jdo.Query;
|
||||||
|
import javax.jdo.Transaction;
|
||||||
|
|
||||||
|
public class GuideToJDO {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = Logger.getLogger(GuideToJDO.class.getName());
|
||||||
|
private Random rnd = new Random();
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
new GuideToJDO();
|
||||||
|
}
|
||||||
|
|
||||||
|
public GuideToJDO() {
|
||||||
|
CreateProducts();
|
||||||
|
ListProducts();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CreateProducts() {
|
||||||
|
PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory("Tutorial");
|
||||||
|
PersistenceManager pm = pmf.getPersistenceManager();
|
||||||
|
Transaction tx = pm.currentTransaction();
|
||||||
|
try {
|
||||||
|
tx.begin();
|
||||||
|
Product product = new Product("Tablet", 80.0);
|
||||||
|
pm.makePersistent(product);
|
||||||
|
Product product2 = new Product("Phone", 20.0);
|
||||||
|
pm.makePersistent(product2);
|
||||||
|
Product product3 = new Product("Laptop", 200.0);
|
||||||
|
pm.makePersistent(product3);
|
||||||
|
for (int i = 0; i < 100; i++) {
|
||||||
|
String nam = "Product-" + i;
|
||||||
|
double price = rnd.nextDouble();
|
||||||
|
Product productx = new Product(nam, price);
|
||||||
|
pm.makePersistent(productx);
|
||||||
|
}
|
||||||
|
tx.commit();
|
||||||
|
} finally {
|
||||||
|
if (tx.isActive()) {
|
||||||
|
tx.rollback();
|
||||||
|
}
|
||||||
|
pm.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public void ListProducts() {
|
||||||
|
PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory("Tutorial");
|
||||||
|
PersistenceManager pm = pmf.getPersistenceManager();
|
||||||
|
Transaction tx = pm.currentTransaction();
|
||||||
|
try {
|
||||||
|
tx.begin();
|
||||||
|
|
||||||
|
@SuppressWarnings("rawtypes")
|
||||||
|
Query q = pm.newQuery("SELECT FROM " + Product.class.getName() + " WHERE price < 1");
|
||||||
|
List<Product> products = (List<Product>) q.execute();
|
||||||
|
Iterator<Product> iter = products.iterator();
|
||||||
|
while (iter.hasNext()) {
|
||||||
|
Product p = iter.next();
|
||||||
|
LOGGER.log(Level.WARNING, "Product name: {0} - Price: {1}", new Object[] { p.name, p.price });
|
||||||
|
}
|
||||||
|
|
||||||
|
tx.commit();
|
||||||
|
} finally {
|
||||||
|
if (tx.isActive()) {
|
||||||
|
tx.rollback();
|
||||||
|
}
|
||||||
|
|
||||||
|
pm.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
package com.baeldung.jdo;
|
||||||
|
|
||||||
|
import javax.jdo.annotations.IdGeneratorStrategy;
|
||||||
|
import javax.jdo.annotations.PersistenceCapable;
|
||||||
|
import javax.jdo.annotations.Persistent;
|
||||||
|
import javax.jdo.annotations.PrimaryKey;
|
||||||
|
|
||||||
|
@PersistenceCapable
|
||||||
|
public class Product {
|
||||||
|
|
||||||
|
@PrimaryKey
|
||||||
|
@Persistent(valueStrategy = IdGeneratorStrategy.INCREMENT)
|
||||||
|
long id;
|
||||||
|
String name = null;
|
||||||
|
Double price = 0.0;
|
||||||
|
|
||||||
|
public Product() {
|
||||||
|
this.name = null;
|
||||||
|
this.price = 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Product(String name, Double price) {
|
||||||
|
this.name = name;
|
||||||
|
this.price = price;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Double getPrice() {
|
||||||
|
return price;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPrice(Double price) {
|
||||||
|
this.price = price;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
|
||||||
|
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" version="2.1">
|
||||||
|
|
||||||
|
<!-- JDO tutorial "unit" -->
|
||||||
|
<persistence-unit name="Tutorial">
|
||||||
|
<exclude-unlisted-classes/>
|
||||||
|
<properties>
|
||||||
|
<property name="javax.jdo.PersistenceManagerFactoryClass" value="org.datanucleus.api.jdo.JDOPersistenceManagerFactory"/>
|
||||||
|
<property name="javax.jdo.option.ConnectionURL" value="jdbc:h2:mem:mypersistence"/>
|
||||||
|
<property name="javax.jdo.option.ConnectionDriverName" value="org.h2.Driver"/>
|
||||||
|
<property name="javax.jdo.option.ConnectionUserName" value="sa"/>
|
||||||
|
<property name="javax.jdo.option.ConnectionPassword" value=""/>
|
||||||
|
<property name="datanucleus.schema.autoCreateAll" value="true"/>
|
||||||
|
</properties>
|
||||||
|
</persistence-unit>
|
||||||
|
</persistence>
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
package com.baeldung.java8.comparator;
|
package com.baeldung.java8.comparator;
|
||||||
|
/*
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -15,9 +16,10 @@ public class Employee implements Comparable<Employee>{
|
||||||
double salary;
|
double salary;
|
||||||
long mobile;
|
long mobile;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compareTo(Employee argEmployee) {
|
public int compareTo(Employee argEmployee) {
|
||||||
return name.compareTo(argEmployee.getName());
|
return name.compareTo(argEmployee.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
*/
|
|
@ -1,5 +1,5 @@
|
||||||
package com.baeldung.java8.comparator;
|
package com.baeldung.java8.comparator;
|
||||||
|
/*
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
|
||||||
|
@ -165,3 +165,4 @@ public class Java8ComparatorTest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*/
|
|
@ -0,0 +1,96 @@
|
||||||
|
package com.baeldung.jdo;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.fail;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
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.junit.Test;
|
||||||
|
|
||||||
|
public class GuideToJDOTest {
|
||||||
|
@Test
|
||||||
|
public void givenProduct_WhenNewThenPerformTransaction() {
|
||||||
|
PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory("Tutorial");
|
||||||
|
PersistenceManager pm = pmf.getPersistenceManager();
|
||||||
|
Transaction tx = pm.currentTransaction();
|
||||||
|
try {
|
||||||
|
tx.begin();
|
||||||
|
for (int i = 0; i < 100; i++){
|
||||||
|
String nam = "Product-" + i;
|
||||||
|
double price = i;
|
||||||
|
Product productx = new Product(nam, price);
|
||||||
|
pm.makePersistent(productx);
|
||||||
|
}
|
||||||
|
tx.commit();
|
||||||
|
} catch (Throwable thr) {
|
||||||
|
fail("Failed test : " + thr.getMessage());
|
||||||
|
} finally {
|
||||||
|
if (tx.isActive()) {
|
||||||
|
tx.rollback();
|
||||||
|
}
|
||||||
|
pm.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
pmf.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenProduct_WhenQueryThenExist() {
|
||||||
|
PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory("Tutorial");
|
||||||
|
PersistenceManager pm = pmf.getPersistenceManager();
|
||||||
|
Transaction tx = pm.currentTransaction();
|
||||||
|
try {
|
||||||
|
tx.begin();
|
||||||
|
Product product = new Product("Tablet", 80.0);
|
||||||
|
pm.makePersistent(product);
|
||||||
|
Product product2 = new Product("Phone", 20.0);
|
||||||
|
pm.makePersistent(product2);
|
||||||
|
Product product3 = new Product("Laptop", 200.0);
|
||||||
|
pm.makePersistent(product3);
|
||||||
|
tx.commit();
|
||||||
|
} catch (Throwable thr) {
|
||||||
|
fail("Failed test : " + thr.getMessage());
|
||||||
|
} finally {
|
||||||
|
if (tx.isActive()) {
|
||||||
|
tx.rollback();
|
||||||
|
}
|
||||||
|
pm.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
pmf.close();
|
||||||
|
|
||||||
|
PersistenceManagerFactory pmf2 = JDOHelper.getPersistenceManagerFactory("Tutorial");
|
||||||
|
PersistenceManager pm2 = pmf2.getPersistenceManager();
|
||||||
|
Transaction tx2 = pm2.currentTransaction();
|
||||||
|
try {
|
||||||
|
tx2.begin();
|
||||||
|
|
||||||
|
@SuppressWarnings("rawtypes")
|
||||||
|
Query q = pm2.newQuery("SELECT FROM " + Product.class.getName() + " WHERE price == 200");
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
List<Product> products = (List<Product>) q.execute();
|
||||||
|
Iterator<Product> iter = products.iterator();
|
||||||
|
while (iter.hasNext()) {
|
||||||
|
Product p = iter.next();
|
||||||
|
assertEquals("Laptop", p.name);
|
||||||
|
}
|
||||||
|
|
||||||
|
tx2.commit();
|
||||||
|
} finally {
|
||||||
|
if (tx2.isActive()) {
|
||||||
|
tx2.rollback();
|
||||||
|
}
|
||||||
|
|
||||||
|
pm2.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue