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

Reply via email to