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 >>>>>>>>>>>>>> >>>>>>>>>>>>>