diff --git a/.gitignore b/.gitignore
index e66dbc4..73a0854 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@
# Mac
.DS_Store
+.shell_history
# Maven
log/
diff --git a/src/main/java/com/comsysto/neo4j/showcase/main/Main.java b/src/main/java/com/comsysto/neo4j/showcase/main/Main.java
new file mode 100644
index 0000000..ce701a5
--- /dev/null
+++ b/src/main/java/com/comsysto/neo4j/showcase/main/Main.java
@@ -0,0 +1,28 @@
+package com.comsysto.neo4j.showcase.main;
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.transaction.jta.JtaTransactionManager;
+
+import javax.transaction.*;
+
+/**
+ * @author: rkowalewski
+ */
+public class Main {
+
+ private static final String CLASSPATH_LOCATION = "classpath:com/comsysto/neo4j/showcase/main/related-to-via-test-context.xml";
+
+ public static void main(String[] args) throws SystemException, NotSupportedException, HeuristicRollbackException, HeuristicMixedException, RollbackException {
+
+ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(CLASSPATH_LOCATION);
+
+ JtaTransactionManager tx = (JtaTransactionManager) context.getBean("neo4jTransactionManager");
+ Neo4jPersister neo4jPersister = (Neo4jPersister) context.getBean("neo4jPersister");
+
+ tx.getTransactionManager().begin();
+
+ neo4jPersister.createTestData();
+
+ tx.getTransactionManager().commit();
+ }
+}
diff --git a/src/main/java/com/comsysto/neo4j/showcase/main/Neo4jPersister.java b/src/main/java/com/comsysto/neo4j/showcase/main/Neo4jPersister.java
new file mode 100644
index 0000000..4d0cee4
--- /dev/null
+++ b/src/main/java/com/comsysto/neo4j/showcase/main/Neo4jPersister.java
@@ -0,0 +1,64 @@
+package com.comsysto.neo4j.showcase.main;
+
+import com.comsysto.neo4j.showcase.model.Product;
+import com.comsysto.neo4j.showcase.repository.ProductRepository;
+import com.comsysto.neo4j.showcase.model.User;
+import com.comsysto.neo4j.showcase.repository.UserRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @author: rkowalewski
+ */
+@Component
+@Transactional(propagation = Propagation.REQUIRED)
+public class Neo4jPersister {
+
+ @Autowired
+ public ProductRepository productRepository;
+ @Autowired
+ public UserRepository userRepository;
+
+ private void userClickedProduct(User user, Product product) {
+
+ user.addClickedProduct(product);
+
+ userRepository.save(user);
+ productRepository.save(product);
+ }
+
+ private Product createProduct(String id, String name) {
+ return productRepository.save(new Product(id, name));
+ }
+
+ private User createUser(String id, String name) {
+ return userRepository.save(new User(id, name));
+ }
+
+ public void createTestData() {
+ User jordan = createUser("MJ", "Monika Jordan");
+ User pippen = createUser("SP", "Sandra Pippen");
+ User miller = createUser("JM", "John Miller");
+
+ Product pizzaMargarita = createProduct("Pizza_1", "Pizza Margarita");
+ Product pizzaFungi = createProduct("Pizza_2", "Pizza Fungi");
+ Product pizzaSalami = createProduct("Pizza_3", "Pizza Salami");
+ Product pizzaVegitarian = createProduct("Pizza_4", "Pizza Vegitarian");
+ Product pizzaRustica = createProduct("Pizza_5", "Pizza Rustica");
+
+ userClickedProduct(jordan, pizzaMargarita);
+ userClickedProduct(jordan, pizzaFungi);
+ userClickedProduct(jordan, pizzaSalami);
+
+ userClickedProduct(pippen, pizzaMargarita);
+ userClickedProduct(pippen, pizzaVegitarian);
+ userClickedProduct(pippen, pizzaRustica);
+ userClickedProduct(pippen, pizzaMargarita);
+ userClickedProduct(pippen, pizzaVegitarian);
+
+ userClickedProduct(miller, pizzaFungi);
+ }
+
+}
diff --git a/src/main/java/com/comsysto/springDataNeo4j/showcase/ClickedRelationship.java b/src/main/java/com/comsysto/neo4j/showcase/model/ClickedRelationship.java
similarity index 97%
rename from src/main/java/com/comsysto/springDataNeo4j/showcase/ClickedRelationship.java
rename to src/main/java/com/comsysto/neo4j/showcase/model/ClickedRelationship.java
index 55c1165..69e41da 100644
--- a/src/main/java/com/comsysto/springDataNeo4j/showcase/ClickedRelationship.java
+++ b/src/main/java/com/comsysto/neo4j/showcase/model/ClickedRelationship.java
@@ -1,4 +1,4 @@
-package com.comsysto.springDataNeo4j.showcase;
+package com.comsysto.neo4j.showcase.model;
import org.springframework.data.neo4j.annotation.*;
diff --git a/src/main/java/com/comsysto/springDataNeo4j/showcase/IdentifiableEntity.java b/src/main/java/com/comsysto/neo4j/showcase/model/IdentifiableEntity.java
similarity index 91%
rename from src/main/java/com/comsysto/springDataNeo4j/showcase/IdentifiableEntity.java
rename to src/main/java/com/comsysto/neo4j/showcase/model/IdentifiableEntity.java
index 2f9f422..fbe845a 100644
--- a/src/main/java/com/comsysto/springDataNeo4j/showcase/IdentifiableEntity.java
+++ b/src/main/java/com/comsysto/neo4j/showcase/model/IdentifiableEntity.java
@@ -1,4 +1,4 @@
-package com.comsysto.springDataNeo4j.showcase;
+package com.comsysto.neo4j.showcase.model;
import org.springframework.data.neo4j.annotation.GraphId;
diff --git a/src/main/java/com/comsysto/springDataNeo4j/showcase/Product.java b/src/main/java/com/comsysto/neo4j/showcase/model/Product.java
similarity index 98%
rename from src/main/java/com/comsysto/springDataNeo4j/showcase/Product.java
rename to src/main/java/com/comsysto/neo4j/showcase/model/Product.java
index ef5cac1..3036e36 100644
--- a/src/main/java/com/comsysto/springDataNeo4j/showcase/Product.java
+++ b/src/main/java/com/comsysto/neo4j/showcase/model/Product.java
@@ -1,4 +1,4 @@
-package com.comsysto.springDataNeo4j.showcase;
+package com.comsysto.neo4j.showcase.model;
import org.springframework.data.neo4j.annotation.Indexed;
import org.springframework.data.neo4j.annotation.NodeEntity;
diff --git a/src/main/java/com/comsysto/springDataNeo4j/showcase/RecommendRelationship.java b/src/main/java/com/comsysto/neo4j/showcase/model/RecommendRelationship.java
similarity index 97%
rename from src/main/java/com/comsysto/springDataNeo4j/showcase/RecommendRelationship.java
rename to src/main/java/com/comsysto/neo4j/showcase/model/RecommendRelationship.java
index b73bd9a..d5729d5 100644
--- a/src/main/java/com/comsysto/springDataNeo4j/showcase/RecommendRelationship.java
+++ b/src/main/java/com/comsysto/neo4j/showcase/model/RecommendRelationship.java
@@ -1,4 +1,4 @@
-package com.comsysto.springDataNeo4j.showcase;
+package com.comsysto.neo4j.showcase.model;
import org.springframework.data.neo4j.annotation.*;
diff --git a/src/main/java/com/comsysto/springDataNeo4j/showcase/RelationshipTypes.java b/src/main/java/com/comsysto/neo4j/showcase/model/RelationshipTypes.java
similarity index 79%
rename from src/main/java/com/comsysto/springDataNeo4j/showcase/RelationshipTypes.java
rename to src/main/java/com/comsysto/neo4j/showcase/model/RelationshipTypes.java
index 36f9ecc..8767e9a 100644
--- a/src/main/java/com/comsysto/springDataNeo4j/showcase/RelationshipTypes.java
+++ b/src/main/java/com/comsysto/neo4j/showcase/model/RelationshipTypes.java
@@ -1,4 +1,4 @@
-package com.comsysto.springDataNeo4j.showcase;
+package com.comsysto.neo4j.showcase.model;
/**
* @author: rkowalewski
diff --git a/src/main/java/com/comsysto/springDataNeo4j/showcase/User.java b/src/main/java/com/comsysto/neo4j/showcase/model/User.java
similarity index 98%
rename from src/main/java/com/comsysto/springDataNeo4j/showcase/User.java
rename to src/main/java/com/comsysto/neo4j/showcase/model/User.java
index 3a42302..0d8e4cc 100644
--- a/src/main/java/com/comsysto/springDataNeo4j/showcase/User.java
+++ b/src/main/java/com/comsysto/neo4j/showcase/model/User.java
@@ -1,4 +1,4 @@
-package com.comsysto.springDataNeo4j.showcase;
+package com.comsysto.neo4j.showcase.model;
import org.springframework.data.neo4j.annotation.Indexed;
import org.springframework.data.neo4j.annotation.NodeEntity;
diff --git a/src/main/java/com/comsysto/springDataNeo4j/showcase/ProductRepository.java b/src/main/java/com/comsysto/neo4j/showcase/repository/ProductRepository.java
similarity index 93%
rename from src/main/java/com/comsysto/springDataNeo4j/showcase/ProductRepository.java
rename to src/main/java/com/comsysto/neo4j/showcase/repository/ProductRepository.java
index 7e8b703..26d12d7 100644
--- a/src/main/java/com/comsysto/springDataNeo4j/showcase/ProductRepository.java
+++ b/src/main/java/com/comsysto/neo4j/showcase/repository/ProductRepository.java
@@ -1,5 +1,6 @@
-package com.comsysto.springDataNeo4j.showcase;
+package com.comsysto.neo4j.showcase.repository;
+import com.comsysto.neo4j.showcase.model.Product;
import org.springframework.data.neo4j.annotation.Query;
import org.springframework.data.neo4j.repository.GraphRepository;
import org.springframework.data.repository.query.Param;
diff --git a/src/main/java/com/comsysto/springDataNeo4j/showcase/UserRepository.java b/src/main/java/com/comsysto/neo4j/showcase/repository/UserRepository.java
similarity index 70%
rename from src/main/java/com/comsysto/springDataNeo4j/showcase/UserRepository.java
rename to src/main/java/com/comsysto/neo4j/showcase/repository/UserRepository.java
index c3150e7..20f9c6c 100644
--- a/src/main/java/com/comsysto/springDataNeo4j/showcase/UserRepository.java
+++ b/src/main/java/com/comsysto/neo4j/showcase/repository/UserRepository.java
@@ -1,5 +1,6 @@
-package com.comsysto.springDataNeo4j.showcase;
+package com.comsysto.neo4j.showcase.repository;
+import com.comsysto.neo4j.showcase.model.User;
import org.springframework.data.neo4j.repository.GraphRepository;
diff --git a/src/main/resources/com/comsysto/neo4j/showcase/main/related-to-via-test-context.xml b/src/main/resources/com/comsysto/neo4j/showcase/main/related-to-via-test-context.xml
new file mode 100644
index 0000000..7ac8be1
--- /dev/null
+++ b/src/main/resources/com/comsysto/neo4j/showcase/main/related-to-via-test-context.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/test/java/com/comsysto/springDataNeo4j/showcase/SpringDataNeo4jProductUserTest.java b/src/test/java/com/comsysto/neo4j/showcase/SpringDataNeo4jProductUserTest.java
similarity index 90%
rename from src/test/java/com/comsysto/springDataNeo4j/showcase/SpringDataNeo4jProductUserTest.java
rename to src/test/java/com/comsysto/neo4j/showcase/SpringDataNeo4jProductUserTest.java
index c27fd8a..78d2ec2 100644
--- a/src/test/java/com/comsysto/springDataNeo4j/showcase/SpringDataNeo4jProductUserTest.java
+++ b/src/test/java/com/comsysto/neo4j/showcase/SpringDataNeo4jProductUserTest.java
@@ -1,5 +1,9 @@
-package com.comsysto.springDataNeo4j.showcase;
+package com.comsysto.neo4j.showcase;
+import com.comsysto.neo4j.showcase.model.Product;
+import com.comsysto.neo4j.showcase.model.User;
+import com.comsysto.neo4j.showcase.repository.ProductRepository;
+import com.comsysto.neo4j.showcase.repository.UserRepository;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -7,6 +11,7 @@
import org.neo4j.graphdb.GraphDatabaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.neo4j.support.node.Neo4jHelper;
+import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
@@ -14,12 +19,12 @@
import java.util.List;
import java.util.Set;
-import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = {"classpath:com/comsysto/springDataNeo4j/showcase/related-to-via-test-context.xml"})
+@ContextConfiguration(locations = {"classpath:com/comsysto/neo4j/showcase/related-to-via-test-context.xml"})
@Transactional
public class SpringDataNeo4jProductUserTest {
@@ -29,8 +34,8 @@ public class SpringDataNeo4jProductUserTest {
@Autowired
private UserRepository userRepository;
-// @Autowired
-// GraphDatabaseService graphDatabaseService;
+ @Autowired
+ GraphDatabaseService graphDatabaseService;
User jordan, pippen, miller;
Product pizzaMargarita, pizzaFungi, pizzaSalami, pizzaVegitarian, pizzaRustica;
@@ -138,8 +143,8 @@ private void userClickedProduct(User user, Product product) {
productRepository.save(product);
}
-// @After
+ @After
public void cleanDB() {
-// Neo4jHelper.cleanDb(graphDatabaseService);
+ Neo4jHelper.cleanDb(graphDatabaseService);
}
}
diff --git a/src/test/resources/com/comsysto/springDataNeo4j/showcase/related-to-via-test-context.xml b/src/test/resources/com/comsysto/neo4j/showcase/related-to-via-test-context.xml
similarity index 72%
rename from src/test/resources/com/comsysto/springDataNeo4j/showcase/related-to-via-test-context.xml
rename to src/test/resources/com/comsysto/neo4j/showcase/related-to-via-test-context.xml
index 44f1cce..b179bd4 100644
--- a/src/test/resources/com/comsysto/springDataNeo4j/showcase/related-to-via-test-context.xml
+++ b/src/test/resources/com/comsysto/neo4j/showcase/related-to-via-test-context.xml
@@ -11,10 +11,10 @@
-
+
-
+
-
+
\ No newline at end of file