Hi Gaby. Thanks for your update.
Some comments. https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jStore.java#L156 Please create EXISTS constraints for the other properties of the Node as well. https://neo4j.com/docs/cypher-manual/current/administration/constraints/#administration-constraints-prop-exist-nodes You can use the mapping parsed from the XML. https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/mapping/Neo4jMapping.java#L38 Please use a specific docker image tag of Neo4j instead of the 'latest' or 'enterprise' https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/test/java/org/apache/gora/neo4j/GoraNeo4jTestDriver.java#L60 This might break the code when a new version of Neo4j is released. Regards, John El dom, 17 ene 2021 a las 14:39, gabriela ortiz (<arqgabyor...@gmail.com>) escribió: > Hi all. > > I wanted to inform the tasks I worked on this week: Jan 09 - Jan 15 . > > - Enhance the javadocs documentation. > - Replace literal values with constants. > - Develop the put() method of the datastore. > - Test the put / exists methods. > - Write a blog for this week. > > My code is here: https://github.com/mgov88/gora/tree/GORA-663 > > Regardss > Gaby > > El lun, 11 de ene. de 2021 a la(s) 09:46, gabriela ortiz ( > arqgabyor...@gmail.com) escribió: > >> Hi >> >> Thanks for your comments. I will add the missing documentation and thanks >> for your reminder I will fill the form now. >> >> Best regards, >> Gaby >> >> El lun, 11 de ene. de 2021 a la(s) 00:16, John Mora (jhnmora...@gmail.com) >> escribió: >> >>> Hi. >>> >>> Thanks for the update. >>> >>> Some comments: >>> >>> Please use constants instead of literal values here: >>> >>> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/test/java/org/apache/gora/neo4j/GoraNeo4jTestDriver.java#L37 >>> >>> Add javadocs in these classes: >>> >>> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/test/java/org/apache/gora/neo4j/store/Neo4jStoreTest.java >>> >>> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/test/java/org/apache/gora/neo4j/GoraNeo4jTestDriver.java >>> >>> Add descriptions for the attributes of these classes: >>> >>> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/mapping/Neo4jMapping.java >>> >>> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/mapping/Property.java >>> >>> Please do not forget to submit your midpoint feedback. It is due Jan. 12 >>> 4pm UTC. >>> >>> Cheers, >>> John >>> >>> El sáb, 9 ene 2021 a las 18:18, gabriela ortiz (<arqgabyor...@gmail.com>) >>> escribió: >>> >>>> Hi all. >>>> >>>> I wanted to inform the tasks I worked on this week: Jan 01 - Jan 08 >>>> >>>> - Develop a test for XSD validations. >>>> - Develop methods: exists and delete in the datastore. >>>> - Switch to Neo4j Enterprise from Neo4j Community in the container of >>>> the tests. >>>> - Add comments and javadocs >>>> - Change the UNIQUE indexes for NODE KEY indexes (present in the Neo4j >>>> Enterprise version) >>>> >>>> My code is here: https://github.com/mgov88/gora/tree/GORA-663 >>>> >>>> Regardss >>>> Gaby >>>> >>>> El jue, 7 de ene. de 2021 a la(s) 13:28, gabriela ortiz ( >>>> arqgabyor...@gmail.com) escribió: >>>> >>>>> Hi John >>>>> >>>>> Thanks for your comments. >>>>> >>>>> >>>>> El mié, 6 de ene. de 2021 a la(s) 16:10, John Mora ( >>>>> jhnmora...@gmail.com) escribió: >>>>> >>>>>> Hi >>>>>> >>>>>> Thanks for your report. >>>>>> >>>>>> Some comments: >>>>>> >>>>>> You are creating a UNIQUE index instead of the NODE KEY you mentioned >>>>>> on your design document. why? >>>>>> >>>>>> >>>>>> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jStore.java#L141 >>>>>> >>>>>> >>>>> I found this limitation in the Neo4j community version: "Node key >>>>> constraints, node property existence constraints and relationship property >>>>> existence constraints are only available in Neo4j Enterprise Edition". >>>>> >>>>> And, the UNIQUE indexes work in the community version. Should I seek a >>>>> trial version of the enterprise version or work only with the UNIQUE >>>>> indexes of the community version? >>>>> >>>>> >>>>> >>>>>> Also, can you write the CREATE CONSTRAINT query with Cypher-DSL? >>>>>> >>>>>> >>>>> I could not find a API for constraints creation in Cypher DSL. The >>>>> create statements that I found are only for nodes. >>>>> >>>>> Please add javadoc documentation and comments on these classes: >>>>>> >>>>>> >>>>>> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jConstants.java >>>>>> >>>>>> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/java/org/apache/gora/neo4j/store/Neo4jParameters.java >>>>>> >>>>>> I will add the documentation >>>>> >>>>> >>>>>> Please add a test for the XSD Validation >>>>>> >>>>>> >>>>>> https://github.com/mgov88/gora/blob/GORA-663/gora-neo4j/src/main/resources/gora-neo4j.xsd >>>>>> >>>>>> I will add a test for this. >>>>> >>>>> >>>>>> Cheers, >>>>>> John >>>>>> >>>>>> El dom, 3 ene 2021 a las 23:12, gabriela ortiz (< >>>>>> arqgabyor...@gmail.com>) escribió: >>>>>> >>>>>>> Hi >>>>>>> >>>>>>> I wanted to inform the tasks I worked on this week: Dec 26 - Dec 31 >>>>>>> >>>>>>> * Develop the Datastore methods: getSchemaName, createSchema, >>>>>>> deleteSchema, >>>>>>> schemaExists >>>>>>> * Enable tests in Neo4jStoreTest : testCreateSchema , >>>>>>> testSchemaExists >>>>>>> * Enhance the implementation of the connection to the backend. >>>>>>> * Write a blog about my project. >>>>>>> >>>>>>> You can find my code in my branch: >>>>>>> >>>>>>> https://github.com/mgov88/gora/tree/GORA-663 >>>>>>> >>>>>>> Best Regards, >>>>>>> Gaby >>>>>>> >>>>>>> El mié, 30 de dic. de 2020 a la(s) 13:28, John Mora ( >>>>>>> jhnmora...@gmail.com) escribió: >>>>>>> >>>>>>>> Hi >>>>>>>> >>>>>>>> Thanks for your report. >>>>>>>> >>>>>>>> The Utils package is specific for each datastore; it is not >>>>>>>> mandatory. You can move some code there to improve the readability of >>>>>>>> the >>>>>>>> core classes of the datastore but it is up to you. >>>>>>>> >>>>>>>> I could not find your last changes in your branch in github, please >>>>>>>> make sure to push the commits, so I can review the code. >>>>>>>> >>>>>>>> Cheers, >>>>>>>> John >>>>>>>> >>>>>>>> >>>>>>>> El mar, 29 dic 2020 a las 1:03, gabriela ortiz (< >>>>>>>> arqgabyor...@gmail.com>) escribió: >>>>>>>> >>>>>>>>> Hi >>>>>>>>> >>>>>>>>> I wanted to inform the tasks I worked on this week: Dec 19 - Dec 25 >>>>>>>>> >>>>>>>>> * I developed a GoraTestDriver for Neo4j using GenericContainer >>>>>>>>> from the Test Containers library >>>>>>>>> * I developed the initialize method from Neo4jStore to establish >>>>>>>>> connection to the backend (Neo4j) >>>>>>>>> * I developed a XSD validation file for the XML mapping >>>>>>>>> >>>>>>>>> I have a question, I realized that some Datastores have 'utils' >>>>>>>>> packages in the code, are they obligatory? What kind of code should >>>>>>>>> go in >>>>>>>>> them? >>>>>>>>> >>>>>>>>> Best Regards, >>>>>>>>> Gaby >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> El lun, 21 de dic. de 2020 a la(s) 15:45, gabriela ortiz ( >>>>>>>>> arqgabyor...@gmail.com) escribió: >>>>>>>>> >>>>>>>>>> Hi John >>>>>>>>>> >>>>>>>>>> El sáb, 19 de dic. de 2020 a la(s) 17:13, John Mora ( >>>>>>>>>> jhnmora...@gmail.com) escribió: >>>>>>>>>> >>>>>>>>>>> Hi Gaby >>>>>>>>>>> >>>>>>>>>>> Thanks for your report and your hard work! >>>>>>>>>>> >>>>>>>>>>> I left some comments on your design document please give them a >>>>>>>>>>> look. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> Thanks you for your comments, >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> Some comments about your code: >>>>>>>>>>> >>>>>>>>>>> IMHO, the attributes unique, exists and index should be optional >>>>>>>>>>> (default: false) [0]. >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> I agree I will change that >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> The KeyClassCanonicalName and PersistentClassCanonicalName >>>>>>>>>>> should be read from the datastore not hard coded [1] >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> I put that hard coded because I had an error because the >>>>>>>>>> Datastore methods are not yet implemented, but I will change that. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> I think this class [2] should be deleted, there are proper tests >>>>>>>>>>> for this in the DataStoreTestBase class. If you are using this for >>>>>>>>>>> your own >>>>>>>>>>> experiments please do not push it to github. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> yes, I am using this class to temporary test my code, you are >>>>>>>>>> right I will remove it from github. >>>>>>>>>> >>>>>>>>>> Thanks you for your feedback. >>>>>>>>>> >>>>>>>>>> Regards, >>>>>>>>>> Gaby >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> [0] >>>>>>>>>>> https://github.com/mgov88/gora/blob/867d06e1fcf29e90b0431b9a42b82810c5409dda/gora-neo4j/src/test/resources/gora-neo4j-mapping.xml >>>>>>>>>>> [1] >>>>>>>>>>> https://github.com/mgov88/gora/blob/867d06e1fcf29e90b0431b9a42b82810c5409dda/gora-neo4j/src/main/java/org/apache/gora/neo4j/mapping/Neo4jMappingBuilder.java#L44 >>>>>>>>>>> [2] >>>>>>>>>>> https://github.com/mgov88/gora/blob/867d06e1fcf29e90b0431b9a42b82810c5409dda/gora-neo4j/src/main/java/org/apache/gora/neo4j/experimental/experiment.java >>>>>>>>>>> >>>>>>>>>>> Cheers >>>>>>>>>>> John >>>>>>>>>>> >>>>>>>>>>> El vie, 18 dic 2020 a las 23:06, gabriela ortiz (< >>>>>>>>>>> arqgabyor...@gmail.com>) escribió: >>>>>>>>>>> >>>>>>>>>>>> Hi >>>>>>>>>>>> >>>>>>>>>>>> I wanted to inform the tasks I worked on this week: Dec 12 - >>>>>>>>>>>> Dec 18 >>>>>>>>>>>> >>>>>>>>>>>> * I wrote a blog about the struggles learning CQL of Neo4j : >>>>>>>>>>>> https://gabycoder88.wordpress.com/2020/12/18/discovering-cypher-everybody-struggles/ >>>>>>>>>>>> * I created the suggested design document (link below ) with >>>>>>>>>>>> details about the Neo4j datastore. >>>>>>>>>>>> * I finished creating the structure of the datastore project. >>>>>>>>>>>> * I developed and tested the parsing of XML mappings for the >>>>>>>>>>>> datastore from gora-neo4j-mapping.xml >>>>>>>>>>>> * I developed and tested the read of connection properties from >>>>>>>>>>>> gora.properties >>>>>>>>>>>> >>>>>>>>>>>> My code is here: >>>>>>>>>>>> https://github.com/mgov88/gora/commits/GORA-663 >>>>>>>>>>>> >>>>>>>>>>>> My design document: >>>>>>>>>>>> >>>>>>>>>>>> https://docs.google.com/document/d/1fQbCHNIFEKxAUlOuwqDRDdnpecLk2S4TkOJSWIk6qCE/edit?usp=sharing >>>>>>>>>>>> >>>>>>>>>>>> Best Regards, >>>>>>>>>>>> Gaby >>>>>>>>>>>> >>>>>>>>>>>> El lun, 14 de dic. de 2020 a la(s) 15:25, gabriela ortiz ( >>>>>>>>>>>> arqgabyor...@gmail.com) escribió: >>>>>>>>>>>> >>>>>>>>>>>>> Hi John. >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks very much for your feedback. I shall work on the >>>>>>>>>>>>> document and the structure of the datastore project. >>>>>>>>>>>>> >>>>>>>>>>>>> Best regards, >>>>>>>>>>>>> Gaby >>>>>>>>>>>>> >>>>>>>>>>>>> El sáb, 12 de dic. de 2020 a la(s) 17:43, John Mora ( >>>>>>>>>>>>> jhnmora...@gmail.com) escribió: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi Gaby, >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks for the update and your hard work. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Do not worry about the paid versions of Neo4j. They all >>>>>>>>>>>>>> share a common interface (Cypher Graph Query Language) and >>>>>>>>>>>>>> connect using >>>>>>>>>>>>>> the same protocols, so it is fine that your work only with >>>>>>>>>>>>>> community >>>>>>>>>>>>>> version. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Nice to see that you added a basic input/output example >>>>>>>>>>>>>> working with Neo4j but eventually you should move it to another >>>>>>>>>>>>>> project. >>>>>>>>>>>>>> Now let's create all the packages and resources needed for the >>>>>>>>>>>>>> structure of >>>>>>>>>>>>>> a datastore. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I think you should put your ideas in a Google Docs document >>>>>>>>>>>>>> and share in the mailing list. >>>>>>>>>>>>>> * Your UML design* The branch that you are working on.* How >>>>>>>>>>>>>> the connection will be implemented.* Which connection parameters >>>>>>>>>>>>>> the >>>>>>>>>>>>>> datastore will need,* How you will set up a testing instance in >>>>>>>>>>>>>> the unit >>>>>>>>>>>>>> test of Gora.* The data type mapping between your datastore and >>>>>>>>>>>>>> Java data >>>>>>>>>>>>>> types. >>>>>>>>>>>>>> Keep it simple, here [0] you have a document that I made for >>>>>>>>>>>>>> the Kudu datastore a couple of years ago. >>>>>>>>>>>>>> >>>>>>>>>>>>>> [0] >>>>>>>>>>>>>> https://docs.google.com/document/d/1colS1ooQZIvuJcnx6DSsZIgesokK8TjwaEfgdygt4mo/edit#heading=h.pcphnswc4uen >>>>>>>>>>>>>> >>>>>>>>>>>>>> Best regards, >>>>>>>>>>>>>> John >>>>>>>>>>>>>> >>>>>>>>>>>>>> El vie, 11 dic 2020 a las 23:06, gabriela ortiz (< >>>>>>>>>>>>>> arqgabyor...@gmail.com>) escribió: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Hi all. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I wanted to inform the tasks I worked on this week: Dec 06 - >>>>>>>>>>>>>>> Dec 11 >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> - I created a new branch for my project : >>>>>>>>>>>>>>> https://github.com/mgov88/gora/tree/GORA-663 >>>>>>>>>>>>>>> - I created a new module for datastore gora-neo4j >>>>>>>>>>>>>>> - I add the maven dependencies for neo4j JDBC and Cypher-DSL >>>>>>>>>>>>>>> - I read the JDBC and DSL documentation. >>>>>>>>>>>>>>> - I implemented a example inserting and querying nodes into >>>>>>>>>>>>>>> neo4j >>>>>>>>>>>>>>> - I joined the Interns chat session of this week. >>>>>>>>>>>>>>> - I submitted the forms asked by Outreachy. >>>>>>>>>>>>>>> - I submitted the initial feedback of Outreachy. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I have a question, neo4j has many editions ( >>>>>>>>>>>>>>> https://neo4j.com/subscriptions/ ) and the docker that I >>>>>>>>>>>>>>> have been using is the community. >>>>>>>>>>>>>>> Should I be test all the editions, there are demos or open >>>>>>>>>>>>>>> server that I can use instead of buying a subscription ? >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Regardss >>>>>>>>>>>>>>> Gaby >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> El sáb, 5 de dic. de 2020 a la(s) 15:21, John Mora ( >>>>>>>>>>>>>>> jhnmora...@gmail.com) escribió: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Hi Gaby. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Thanks for your work and the update of your progress. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Working with docker containers is totally fine, but take >>>>>>>>>>>>>>>> into account that you need to expose all the necessary ports >>>>>>>>>>>>>>>> in the >>>>>>>>>>>>>>>> container for the communication with Apache Gora. Also you can >>>>>>>>>>>>>>>> start >>>>>>>>>>>>>>>> checking out testcontainers [1] for the unit test of the new >>>>>>>>>>>>>>>> datastore. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Your design looks good to me, I noticed that you plan to >>>>>>>>>>>>>>>> use the Neo4j driver. If you have some experience working with >>>>>>>>>>>>>>>> JDBC you can >>>>>>>>>>>>>>>> also use the Neo4j JDBC Driver [2]. But it is up to you, it >>>>>>>>>>>>>>>> should not have >>>>>>>>>>>>>>>> any impact on the functionality of the datastore. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> [1] https://www.testcontainers.org/ >>>>>>>>>>>>>>>> [2] https://github.com/neo4j-contrib/neo4j-jdbc >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Regards, >>>>>>>>>>>>>>>> John >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> El sáb, 5 dic 2020 a las 8:20, Madhawa Kasun Gunasekara (< >>>>>>>>>>>>>>>> madhaw...@gmail.com>) escribió: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Hi Gaby, >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Thanks for the update. Yes, we haven't tested Gora in >>>>>>>>>>>>>>>>> java11, So I don't think you should spend time on installing >>>>>>>>>>>>>>>>> neo4j locally. >>>>>>>>>>>>>>>>> docker container is enough. >>>>>>>>>>>>>>>>> Please add your project proposal to the confluence page as >>>>>>>>>>>>>>>>> well [1]. I wish you good luck with this project. Let me know >>>>>>>>>>>>>>>>> if you have >>>>>>>>>>>>>>>>> any questions. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> [1] >>>>>>>>>>>>>>>>> https://cwiki.apache.org/confluence/display/GORA/Outreachy%3A+2020+Winter >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>> Madhawa >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Sat, Dec 5, 2020 at 6:29 AM gabriela ortiz < >>>>>>>>>>>>>>>>> arqgabyor...@gmail.com> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Hi >>>>>>>>>>>>>>>>>> I wanted to inform the tasks I worked on this week: Dec >>>>>>>>>>>>>>>>>> 01 - Dec 05 >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> 1. I created a personal Blog for Outreachy reports: >>>>>>>>>>>>>>>>>> https://gabycoder88.wordpress.com/ >>>>>>>>>>>>>>>>>> 2. I wrote the first post of my blog titled 'About me': >>>>>>>>>>>>>>>>>> https://gabycoder88.wordpress.com/2020/11/30/example-post-3/ >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> 3. I joined the Outreachy Zulip server for the chats. >>>>>>>>>>>>>>>>>> 4. I installed Neo4j on my computer using docker * . >>>>>>>>>>>>>>>>>> 5. I drew a class diagram of my project (attached). >>>>>>>>>>>>>>>>>> 6. I read the Neo4j documentation about the Java >>>>>>>>>>>>>>>>>> connector, Neo4j (Neo4j Driver) syntax and concepts of graph >>>>>>>>>>>>>>>>>> databases. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> * I tried to install native Neo4j, but I figured that >>>>>>>>>>>>>>>>>> Neo4j requires java 11 and apache gora requires java 8, >>>>>>>>>>>>>>>>>> hence I preferred >>>>>>>>>>>>>>>>>> to install using docker to avoid any issues with the java >>>>>>>>>>>>>>>>>> version. Is a >>>>>>>>>>>>>>>>>> docker container enough or I must install natively? >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Regards, >>>>>>>>>>>>>>>>>> Gaby >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>