Re: [Neo4j] Trying to use Neo4J with Atomikos transaction manager, issues with Lucene index

2011-10-08 Thread Thibaut Colar
OK, I've modified the unit test and it shows something strange now ... 
assuming I'm not just too tired and messed up again :)

So the previous  test, corrected, passes fine, but now after the first 
transaction is commited, i start a second one where i do the same exact 
check (node by prop)

see: 
https://bitbucket.org/tcolar/stuff/src/0c4116d5b6ba/AtomikosNeo4j/src/test/java/net/colar/atomikosNeo4j/AtomikosNeo4jTest.java#cl-41

Now in this second transaction the test fails 

org.neo4j.graphdb.NotFoundException: testProp property not found for 
NodeImpl#1.
 at 
org.neo4j.kernel.impl.core.Primitive.newPropertyNotFoundException(Primitive.java:173)
 at org.neo4j.kernel.impl.core.Primitive.getProperty(Primitive.java:168)
 at org.neo4j.kernel.impl.core.NodeProxy.getProperty(NodeProxy.java:145)
 at 
net.colar.atomikosNeo4j.AtomikosNeo4jTest.test(AtomikosNeo4jTest.java:59)

I assume that should work no, am I doing something wrong ?

Thanks again.

On 10/8/11 10:34 PM, Thibaut Colar wrote:
> You are right, was just using that in this (poor) unit test I made
> quickly late last week, it's not used in the real code.
>
> So the unit test does work and does not have the issue I have in the
> real and much more complex code.
>
> I guess I'll try to bring more of it in this unit test until i break it too.
>
> One of the thing we use, is the neo4j events mechanism(to sync data to
> another system), so i wonder if maybe using that in the context of
> transactions might cause the issue, or maybe some other sort of
> threading issue(what it looked like when i was debugging).
>
> Anyway will try to see if i can give you a failing test and/or better
> info tomorrow or Monday.
>
> Thanks
>
>
> On 10/8/11 1:51 PM, Mattias Persson wrote:
>> The implicit key is "_id_" but that's an implementation detail and shouldn't
>> be used to assert correctness of the index in unit tests.
>>
>> 2011/10/8 Thibaut Colar
>>
>>> Actually you are right, seems like "id" is the only one that fails ... i
>>> really thought that was implicitly created, could it be possible than
>>> somehow it should be but doesn't when using the transaction manager ?
>>>
>>> On 10/8/11 11:41 AM, Thibaut Colar wrote:
 Right, id is an implicit field ... works when not in transaction.
 If i remove that test, then I fail on the later index.get.

 As far as deleting the db, it's not in my test, but i removed the folder
 in y real code and manually before running the test.

 On 10/8/11 11:10 AM, Rick Bullotta wrote:
> If I remember correctly, neo has an implicit field on each index, and
>>> the name is either "id" or "_id".
> On Oct 8, 2011, at 1:58 PM, "Chris Gioran"<
>>> chris.gio...@neotechnology.com> wrote:
>> Hi Thibaut,
>>
>> I noticed the following snippet in your test case code:
>>
>>long id = node.getId();
>>node.setProperty("testProp", "test");
>>index.add(node, "testProp", "test");
>>
>>Assert.assertEquals(node.getProperty("testProp"), "test");
>>
>>// Lookup By id
>>Assert.assertNotNull(graphDb.getNodeById(id));
>>
>>// Now via Index
>>Node found = index.get("id", id).getSingle();
>>Assert.assertNotNull(found);
>>Assert.assertEquals(found.getId(), id);
>>
>> which leads to the first test failure with a null result returned.
>> Here you are indexing a node with key "testProp" and value "test" but
>> you go on to ask it from the index with key "id" and value its id.
>> Since you haven't added that key/value pair in the index, rightfully
>> you don't get any results - the test fails in my setup even with the
>> native Neo4j transaction manager.
>>
>> I changed that to ask the node from the index with the proper
>> key/value pair and the test passes - the same thing happens a bit
>> further down where you ask the index for a node with a key/value of
>> "testProp"/"prop" (instead of "testProp"/"test"). Moreover, it passes
>> with both the native Transaction Manager and the Atomikos
>> implementation.
>>
>> Also, you are not deleting the db for the test - this means that since
>> you add to the index nodes with the same key/value the test will pass
>> only on the first run as getSingle() on the index hits will find the
>> previously added nodes and it will fail.
>>
>> Could you try that out and see if it solves your issues?
>>
>> I am glad that this functionality is being used in production - please
>> provide any feedback on any problems and what you think of this
>> feature.
>>
>> hope that helps,
>> CG
>>
>> On Thu, Oct 6, 2011 at 7:50 PM, tcolar wrote:
>>> I've been trying to make this work for a few days but while it mostly
>>> works,
>>> the Lucene index just won't.
>>>
>>> We h

Re: [Neo4j] Trying to use Neo4J with Atomikos transaction manager, issues with Lucene index

2011-10-08 Thread Thibaut Colar
You are right, was just using that in this (poor) unit test I made 
quickly late last week, it's not used in the real code.

So the unit test does work and does not have the issue I have in the 
real and much more complex code.

I guess I'll try to bring more of it in this unit test until i break it too.

One of the thing we use, is the neo4j events mechanism(to sync data to 
another system), so i wonder if maybe using that in the context of 
transactions might cause the issue, or maybe some other sort of 
threading issue(what it looked like when i was debugging).

Anyway will try to see if i can give you a failing test and/or better 
info tomorrow or Monday.

Thanks


On 10/8/11 1:51 PM, Mattias Persson wrote:
> The implicit key is "_id_" but that's an implementation detail and shouldn't
> be used to assert correctness of the index in unit tests.
>
> 2011/10/8 Thibaut Colar
>
>> Actually you are right, seems like "id" is the only one that fails ... i
>> really thought that was implicitly created, could it be possible than
>> somehow it should be but doesn't when using the transaction manager ?
>>
>> On 10/8/11 11:41 AM, Thibaut Colar wrote:
>>> Right, id is an implicit field ... works when not in transaction.
>>> If i remove that test, then I fail on the later index.get.
>>>
>>> As far as deleting the db, it's not in my test, but i removed the folder
>>> in y real code and manually before running the test.
>>>
>>> On 10/8/11 11:10 AM, Rick Bullotta wrote:
 If I remember correctly, neo has an implicit field on each index, and
>> the name is either "id" or "_id".
 On Oct 8, 2011, at 1:58 PM, "Chris Gioran"<
>> chris.gio...@neotechnology.com>wrote:
> Hi Thibaut,
>
> I noticed the following snippet in your test case code:
>
>   long id = node.getId();
>   node.setProperty("testProp", "test");
>   index.add(node, "testProp", "test");
>
>   Assert.assertEquals(node.getProperty("testProp"), "test");
>
>   // Lookup By id
>   Assert.assertNotNull(graphDb.getNodeById(id));
>
>   // Now via Index
>   Node found = index.get("id", id).getSingle();
>   Assert.assertNotNull(found);
>   Assert.assertEquals(found.getId(), id);
>
> which leads to the first test failure with a null result returned.
> Here you are indexing a node with key "testProp" and value "test" but
> you go on to ask it from the index with key "id" and value its id.
> Since you haven't added that key/value pair in the index, rightfully
> you don't get any results - the test fails in my setup even with the
> native Neo4j transaction manager.
>
> I changed that to ask the node from the index with the proper
> key/value pair and the test passes - the same thing happens a bit
> further down where you ask the index for a node with a key/value of
> "testProp"/"prop" (instead of "testProp"/"test"). Moreover, it passes
> with both the native Transaction Manager and the Atomikos
> implementation.
>
> Also, you are not deleting the db for the test - this means that since
> you add to the index nodes with the same key/value the test will pass
> only on the first run as getSingle() on the index hits will find the
> previously added nodes and it will fail.
>
> Could you try that out and see if it solves your issues?
>
> I am glad that this functionality is being used in production - please
> provide any feedback on any problems and what you think of this
> feature.
>
> hope that helps,
> CG
>
> On Thu, Oct 6, 2011 at 7:50 PM, tcolarwrote:
>> I've been trying to make this work for a few days but while it mostly
>> works,
>> the Lucene index just won't.
>>
>> We have a fairly complex setup including neo4j, mysql, mongo and JMS
>> ad
>> trying to do transactions accross all that with Atomikos.
>>
>> Since that is quite complex, I've made a smaller unit test just using
>> Atomikos and Neo4j to demonstrate the issue:
>>
>> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j
>>
>> The main test is here:
>>
>> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/src/test/java/net/colar/atomikosNeo4j/AtomikosNeo4jTest.java
>> and results:
>>
>> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/test.log
>> I used
>>
>> http://digitalstain.blogspot.com/2010/11/using-jotm-as-transactionmanager-in.html
>> to get me going.
>>
>> And my code for that part is here:
>>
>> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/src/main/java/net/colar/atomikosNeo4j
>> I'm thinking that's probably where I'm doing something wrong maybe ?
>>
>> I'm probably not doing something right but i can't seem to find what's
>> going
>> on with Lucene.
>>
>> 

[Neo4j] Different instances in Neo4j REST db

2011-10-08 Thread andrew ton
Hello,

Does Neo4J REST db allow us to create multiple different graphs, e.g. one graph 
is for a set of data A and another for a set of data B?
My question is about the similar feature in the relational db where we can 
create multiple db instances.
If Neo4J does how can I do it?

Thanks,
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Run test and development DBs at same time

2011-10-08 Thread jadell
For development using the REST interface, I usually run two databases on
separate ports or hosts.  On the development/testing database, I use the
remote clean extension found at
https://github.com/jexp/neo4j-clean-remote-db-addon to reset the database
before running my automated tests.

-- Josh Adell


--
View this message in context: 
http://neo4j-community-discussions.438527.n3.nabble.com/Neo4j-Run-test-and-development-DBs-at-same-time-tp3405951p3406525.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Run test and development DBs at same time

2011-10-08 Thread Javier de la Rosa
On Sat, Oct 8, 2011 at 16:30, Michael Hunger
 wrote:
> You can use a import org.neo4j.test.ImpermanentGraphDatabase;

Do you know if it could be possible to use this from the REST server?



-- 
Javier de la Rosa
http://versae.es
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Importing data from oracle to neo4j

2011-10-08 Thread Michael Hunger
What is your use-case for importing the DWH data?

How are you going to model the data of the DWH in neo4j. How does the 
domain-model look like?

BI data is normally denormalized. So for creating a good graph structure it 
would be sensible to normalize it during the import.

10k rows is not that much. You can import them using the normal neo4j 
transactional facilities in a few seconds.
For building up your graph model you probably want to index your data or create 
category nodes to access certain parts of your domain model.

Peter wrote a tool to import relational data into neo4j but that was normalized 
data where each table was represented by a certain type of node in the graph 
and foreign key relationships were converted to graph relationships. I don't 
know if that also handled m:n connection tables efficiently by converting them 
to relationships too.

HTH

Michael

Am 08.10.2011 um 23:05 schrieb jiteshks:

> I am very new to neo4j.So I don't know all of its features.I am reading its
> documentation to understand how it works.
> 
> My project's requirement is to import the data from a data warehouse( which
> is an oracle db) once every month.We are thinking of implementing neo4j in
> our project which means we will have to read the data from oracle db and put
> it into neo4j.
> There will be around 1 lakh rows(10^5) to be fetched from oracle db.What is
> the fast/efficient way of doing it?
> 
> Thanks!
> 
> --
> View this message in context: 
> http://neo4j-community-discussions.438527.n3.nabble.com/Importing-data-from-oracle-to-neo4j-tp3406024p3406024.html
> Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
> ___
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


[Neo4j] Importing data from oracle to neo4j

2011-10-08 Thread jiteshks
I am very new to neo4j.So I don't know all of its features.I am reading its
documentation to understand how it works.

My project's requirement is to import the data from a data warehouse( which
is an oracle db) once every month.We are thinking of implementing neo4j in
our project which means we will have to read the data from oracle db and put
it into neo4j.
There will be around 1 lakh rows(10^5) to be fetched from oracle db.What is
the fast/efficient way of doing it?

Thanks!

--
View this message in context: 
http://neo4j-community-discussions.438527.n3.nabble.com/Importing-data-from-oracle-to-neo4j-tp3406024p3406024.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Trying to use Neo4J with Atomikos transaction manager, issues with Lucene index

2011-10-08 Thread Mattias Persson
The implicit key is "_id_" but that's an implementation detail and shouldn't
be used to assert correctness of the index in unit tests.

2011/10/8 Thibaut Colar 

> Actually you are right, seems like "id" is the only one that fails ... i
> really thought that was implicitly created, could it be possible than
> somehow it should be but doesn't when using the transaction manager ?
>
> On 10/8/11 11:41 AM, Thibaut Colar wrote:
> > Right, id is an implicit field ... works when not in transaction.
> > If i remove that test, then I fail on the later index.get.
> >
> > As far as deleting the db, it's not in my test, but i removed the folder
> > in y real code and manually before running the test.
> >
> > On 10/8/11 11:10 AM, Rick Bullotta wrote:
> >> If I remember correctly, neo has an implicit field on each index, and
> the name is either "id" or "_id".
> >>
> >> On Oct 8, 2011, at 1:58 PM, "Chris Gioran"<
> chris.gio...@neotechnology.com>   wrote:
> >>
> >>> Hi Thibaut,
> >>>
> >>> I noticed the following snippet in your test case code:
> >>>
> >>>  long id = node.getId();
> >>>  node.setProperty("testProp", "test");
> >>>  index.add(node, "testProp", "test");
> >>>
> >>>  Assert.assertEquals(node.getProperty("testProp"), "test");
> >>>
> >>>  // Lookup By id
> >>>  Assert.assertNotNull(graphDb.getNodeById(id));
> >>>
> >>>  // Now via Index
> >>>  Node found = index.get("id", id).getSingle();
> >>>  Assert.assertNotNull(found);
> >>>  Assert.assertEquals(found.getId(), id);
> >>>
> >>> which leads to the first test failure with a null result returned.
> >>> Here you are indexing a node with key "testProp" and value "test" but
> >>> you go on to ask it from the index with key "id" and value its id.
> >>> Since you haven't added that key/value pair in the index, rightfully
> >>> you don't get any results - the test fails in my setup even with the
> >>> native Neo4j transaction manager.
> >>>
> >>> I changed that to ask the node from the index with the proper
> >>> key/value pair and the test passes - the same thing happens a bit
> >>> further down where you ask the index for a node with a key/value of
> >>> "testProp"/"prop" (instead of "testProp"/"test"). Moreover, it passes
> >>> with both the native Transaction Manager and the Atomikos
> >>> implementation.
> >>>
> >>> Also, you are not deleting the db for the test - this means that since
> >>> you add to the index nodes with the same key/value the test will pass
> >>> only on the first run as getSingle() on the index hits will find the
> >>> previously added nodes and it will fail.
> >>>
> >>> Could you try that out and see if it solves your issues?
> >>>
> >>> I am glad that this functionality is being used in production - please
> >>> provide any feedback on any problems and what you think of this
> >>> feature.
> >>>
> >>> hope that helps,
> >>> CG
> >>>
> >>> On Thu, Oct 6, 2011 at 7:50 PM, tcolar   wrote:
>  I've been trying to make this work for a few days but while it mostly
> works,
>  the Lucene index just won't.
> 
>  We have a fairly complex setup including neo4j, mysql, mongo and JMS
> ad
>  trying to do transactions accross all that with Atomikos.
> 
>  Since that is quite complex, I've made a smaller unit test just using
>  Atomikos and Neo4j to demonstrate the issue:
> 
>  https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j
> 
>  The main test is here:
> 
> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/src/test/java/net/colar/atomikosNeo4j/AtomikosNeo4jTest.java
> 
>  and results:
> 
> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/test.log
> 
>  I used
> 
> http://digitalstain.blogspot.com/2010/11/using-jotm-as-transactionmanager-in.html
>  to get me going.
> 
>  And my code for that part is here:
> 
> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/src/main/java/net/colar/atomikosNeo4j
> 
>  I'm thinking that's probably where I'm doing something wrong maybe ?
> 
>  I'm probably not doing something right but i can't seem to find what's
> going
>  on with Lucene.
> 
>  The test works if not using Atomikos but just plain Neo4j
> Transactions.
> 
>  Anybody as an idea what is wrong?
> 
>  Thanks.
> 
>  --
>  View this message in context:
> http://neo4j-community-discussions.438527.n3.nabble.com/Trying-to-use-Neo4J-with-Atomikos-transaction-manager-issues-with-Lucene-index-tp3400319p3400319.html
>  Sent from the Neo4j Community Discussions mailing list archive at
> Nabble.com.
>  ___
>  Neo4j mailing list
>  User@lists.neo4j.org
>  https://lists.neo4j.org/mailman/listinfo/user
> 
> >>> ___
> >>> Neo4j mailing list
> >>> User@lists.neo4j.org
> >

Re: [Neo4j] Recommended way to deploy server software

2011-10-08 Thread Peter Neubauer
Yes,
Downloading, untar , adjust config and start via the scripts is the best way
to run the server, this is what the QA tests do, too.

On Saturday, October 8, 2011, doubleagent  wrote:
> When I download the package form the main page and run bin/neo4j start,
does
> that just wrap an embedded db, or is that intended to be an easy way to
get
> going with an actual server?
>
> Would there be any drawback to just writing a script to pull that package,
> untar it, change some configuration parameters, and start/stop the server
> from there?
>
> --
> View this message in context:
http://neo4j-community-discussions.438527.n3.nabble.com/Recommended-way-to-deploy-server-software-tp3399621p3405755.html
> Sent from the Neo4j Community Discussions mailing list archive at
Nabble.com.
> ___
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>

-- 

Cheers,

/peter neubauer

GTalk:  neubauer.peter
Skype   peter.neubauer
Phone   +46 704 106975
LinkedIn   http://www.linkedin.com/in/neubauer
Twitter  http://twitter.com/peterneubauer

http://www.neo4j.org   - Your high performance graph database.
http://startupbootcamp.org/- Öresund - Innovation happens HERE.
http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] trying to delete all reletionships but only got some

2011-10-08 Thread Mattias Persson
I believe you've found a bug in the per-node relationship cache when
deleting relationships in the same iteration session as the lazy loading
(grab size 100) of those relationships, and at the same time doing commits
now and then in the middle of the iteration. At first sight it may be
non-trivial to fix though. I've created a ticket for it:
https://github.com/neo4j/community/issues/52 which points to a reduced
version of your test case. Thank you for reporting it.

Best,
Mattias

2011/10/6 st.pa 

>
> community 1.4.1. embedded
>
>
> Am 05.10.2011 15:54, schrieb Mattias Persson:
> > Hi,
> >
> > which version of neo4j were you running this with?
> >
> > 2011/10/5 st.pa
> >
> >>
> >> Hi.
> >>
> >> I tried to delete several million relationships of certain types from
> the
> >> reference node of an embedded graphdb, where there were several other
> >> relationshiptypes that were not to be affected. The Javadoc of
> >> Node#getRelationships(**RelationshipType...) says that it returns all
> >> relationships of the given type(s), so I expected that after one call
> I'd
> >> really get all. That was not the case. In my test-production-db i needed
> >> about 8 iterations, haven't recreated that in the test yet. But the test
> >> shows that not returning all desired relationships doesn't seem to
> depend on
> >> the total number of relationships as i thought in the beginning, if one
> runs
> >> the test with different numbers for insertions.
> >>
> >> Here's the log:
> >>
> >> 05.10.2011 13:36:16 test01 - create graph
> >> 05.10.2011 13:36:16 try to delete c:/_src/neo4j-test-remove-**
> >> relationships
> >> 05.10.2011 13:36:16 done deleting
> >> 05.10.2011 13:36:16 create graph db at c:/_src/neo4j-test-remove-**
> >> relationships
> >> 05.10.2011 13:36:22 retrieve root node and add another node
> >> 05.10.2011 13:36:22 prepare to cycle through relTypes
> >> 05.10.2011 13:36:22 loop to insert relationships by cycling through
> >> relTypes
> >> 05.10.2011 13:36:22 0 of 2097152 relationships inserted
> >> 05.10.2011 13:36:26 131072 of 2097152 relationships inserted
> >> 05.10.2011 13:36:28 262144 of 2097152 relationships inserted
> >> 05.10.2011 13:36:33 393216 of 2097152 relationships inserted
> >> 05.10.2011 13:36:35 524288 of 2097152 relationships inserted
> >> 05.10.2011 13:36:40 655360 of 2097152 relationships inserted
> >> 05.10.2011 13:36:43 786432 of 2097152 relationships inserted
> >> 05.10.2011 13:36:48 917504 of 2097152 relationships inserted
> >> 05.10.2011 13:36:53 1048576 of 2097152 relationships inserted
> >> 05.10.2011 13:36:58 1179648 of 2097152 relationships inserted
> >> 05.10.2011 13:37:02 1310720 of 2097152 relationships inserted
> >> 05.10.2011 13:37:08 1441792 of 2097152 relationships inserted
> >> 05.10.2011 13:37:12 1572864 of 2097152 relationships inserted
> >> 05.10.2011 13:37:20 1703936 of 2097152 relationships inserted
> >> 05.10.2011 13:37:25 1835008 of 2097152 relationships inserted
> >> 05.10.2011 13:37:33 1966080 of 2097152 relationships inserted
> >> 05.10.2011 13:37:37 2097152 of 2097152 relationships inserted
> >> 05.10.2011 13:37:37 finished inserting 2097152 relationships
> >> 05.10.2011 13:37:37 second part of test: deleting relationships
> >> 05.10.2011 13:37:37 get all relationships of the given type
> >> 05.10.2011 13:37:37 delete them all
> >> 05.10.2011 13:38:21 131072 relationships deleted
> >> 05.10.2011 13:38:39 262144 relationships deleted
> >> 05.10.2011 13:38:41 262153 relationships deleted in iteration 1
> >> 05.10.2011 13:38:41 get all relationships of the given type
> >> 05.10.2011 13:38:41 delete them all
> >> 05.10.2011 13:39:12 131072 relationships deleted
> >> 05.10.2011 13:39:22 262135 relationships deleted in iteration 2
> >> 05.10.2011 13:39:22 get all relationships of the given type
> >> 05.10.2011 13:39:22 delete them all
> >> 05.10.2011 13:39:22 0 relationships deleted in iteration 3
> >> 05.10.2011 13:39:22 could expect that one iteration is sufficient
> >> 05.10.2011 13:39:22 to get all relationships of the given types,
> >> 05.10.2011 13:39:22 so that it finished after the second iterations when
> >> deletions == 0
> >> 05.10.2011 13:39:22 if this line gets logged, then there were more than
> two
> >> iterations, which is bad
> >>
> >>
> >> And the testcase is attached as .java-file. Could please somebody take a
> >> look at it and the log and maybe find my mistake or confirm that this is
> >> strange behaviour.
> >>
> >> ciao,
> >> st.p.
> >>
> >> ___
> >> Neo4j mailing list
> >> User@lists.neo4j.org
> >> https://lists.neo4j.org/mailman/listinfo/user
> >>
> >>
> >
> >
>
> ___
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>



-- 
Mattias Persson, [matt...@neotechnology.com]
Hacker, Neo Technology
www.neotechnology.com
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.n

Re: [Neo4j] Run test and development DBs at same time

2011-10-08 Thread Michael Hunger
You can use a import org.neo4j.test.ImpermanentGraphDatabase;

which uses a temporary directory and cleans its contents before startup.

It is contained in the neo4j-kernel-tests.jar.


org.neo4j
neo4j-kernel
test-jar
test


HTH

Michael

Am 08.10.2011 um 22:19 schrieb Steve Jalim:

> Hi
> 
> Is there a common pattern for test-driven development (or even just running
> unit tests) against a Neo DB without filling your development DB with test
> data?
> 
> One solution I've thought might work is to run two Neo DBs, one in
> /path/to/my/sandboxed/dev/data and another in
> /path/to/my/sandboxed/test/data. However, looking at the conf files for neo,
> I can't see scope for that without some fiddling around -- am I missing
> something obvious?
> 
> Cheers
> Steve
> ___
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Run test and development DBs at same time

2011-10-08 Thread Andreas Kollegger
Take a look at ImpermanentTestDatabse, available from the kernel-tests library.

import org.neo4j.test.ImpermanentGraphDatabase;

Maven dependency…


  org.neo4j
  neo4j-kernel
  ${neo4j.version}
  tests


Cheers,
Andreas
 
On Oct 8, 2011, at 1:19 PM, Steve Jalim wrote:

> Hi
> 
> Is there a common pattern for test-driven development (or even just running
> unit tests) against a Neo DB without filling your development DB with test
> data?
> 
> One solution I've thought might work is to run two Neo DBs, one in
> /path/to/my/sandboxed/dev/data and another in
> /path/to/my/sandboxed/test/data. However, looking at the conf files for neo,
> I can't see scope for that without some fiddling around -- am I missing
> something obvious?
> 
> Cheers
> Steve
> ___
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


[Neo4j] Run test and development DBs at same time

2011-10-08 Thread Steve Jalim
Hi

Is there a common pattern for test-driven development (or even just running
unit tests) against a Neo DB without filling your development DB with test
data?

One solution I've thought might work is to run two Neo DBs, one in
/path/to/my/sandboxed/dev/data and another in
/path/to/my/sandboxed/test/data. However, looking at the conf files for neo,
I can't see scope for that without some fiddling around -- am I missing
something obvious?

Cheers
Steve
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Trying to use Neo4J with Atomikos transaction manager, issues with Lucene index

2011-10-08 Thread Thibaut Colar
Actually you are right, seems like "id" is the only one that fails ... i 
really thought that was implicitly created, could it be possible than 
somehow it should be but doesn't when using the transaction manager ?

On 10/8/11 11:41 AM, Thibaut Colar wrote:
> Right, id is an implicit field ... works when not in transaction.
> If i remove that test, then I fail on the later index.get.
>
> As far as deleting the db, it's not in my test, but i removed the folder
> in y real code and manually before running the test.
>
> On 10/8/11 11:10 AM, Rick Bullotta wrote:
>> If I remember correctly, neo has an implicit field on each index, and the 
>> name is either "id" or "_id".
>>
>> On Oct 8, 2011, at 1:58 PM, "Chris Gioran"   
>> wrote:
>>
>>> Hi Thibaut,
>>>
>>> I noticed the following snippet in your test case code:
>>>
>>>  long id = node.getId();
>>>  node.setProperty("testProp", "test");
>>>  index.add(node, "testProp", "test");
>>>
>>>  Assert.assertEquals(node.getProperty("testProp"), "test");
>>>
>>>  // Lookup By id
>>>  Assert.assertNotNull(graphDb.getNodeById(id));
>>>
>>>  // Now via Index
>>>  Node found = index.get("id", id).getSingle();
>>>  Assert.assertNotNull(found);
>>>  Assert.assertEquals(found.getId(), id);
>>>
>>> which leads to the first test failure with a null result returned.
>>> Here you are indexing a node with key "testProp" and value "test" but
>>> you go on to ask it from the index with key "id" and value its id.
>>> Since you haven't added that key/value pair in the index, rightfully
>>> you don't get any results - the test fails in my setup even with the
>>> native Neo4j transaction manager.
>>>
>>> I changed that to ask the node from the index with the proper
>>> key/value pair and the test passes - the same thing happens a bit
>>> further down where you ask the index for a node with a key/value of
>>> "testProp"/"prop" (instead of "testProp"/"test"). Moreover, it passes
>>> with both the native Transaction Manager and the Atomikos
>>> implementation.
>>>
>>> Also, you are not deleting the db for the test - this means that since
>>> you add to the index nodes with the same key/value the test will pass
>>> only on the first run as getSingle() on the index hits will find the
>>> previously added nodes and it will fail.
>>>
>>> Could you try that out and see if it solves your issues?
>>>
>>> I am glad that this functionality is being used in production - please
>>> provide any feedback on any problems and what you think of this
>>> feature.
>>>
>>> hope that helps,
>>> CG
>>>
>>> On Thu, Oct 6, 2011 at 7:50 PM, tcolar   wrote:
 I've been trying to make this work for a few days but while it mostly 
 works,
 the Lucene index just won't.

 We have a fairly complex setup including neo4j, mysql, mongo and JMS ad
 trying to do transactions accross all that with Atomikos.

 Since that is quite complex, I've made a smaller unit test just using
 Atomikos and Neo4j to demonstrate the issue:

 https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j

 The main test is here:
 https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/src/test/java/net/colar/atomikosNeo4j/AtomikosNeo4jTest.java

 and results:
 https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/test.log

 I used
 http://digitalstain.blogspot.com/2010/11/using-jotm-as-transactionmanager-in.html
 to get me going.

 And my code for that part is here:
 https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/src/main/java/net/colar/atomikosNeo4j

 I'm thinking that's probably where I'm doing something wrong maybe ?

 I'm probably not doing something right but i can't seem to find what's 
 going
 on with Lucene.

 The test works if not using Atomikos but just plain Neo4j Transactions.

 Anybody as an idea what is wrong?

 Thanks.

 --
 View this message in context: 
 http://neo4j-community-discussions.438527.n3.nabble.com/Trying-to-use-Neo4J-with-Atomikos-transaction-manager-issues-with-Lucene-index-tp3400319p3400319.html
 Sent from the Neo4j Community Discussions mailing list archive at 
 Nabble.com.
 ___
 Neo4j mailing list
 User@lists.neo4j.org
 https://lists.neo4j.org/mailman/listinfo/user

>>> ___
>>> Neo4j mailing list
>>> User@lists.neo4j.org
>>> https://lists.neo4j.org/mailman/listinfo/user
>> ___
>> Neo4j mailing list
>> User@lists.neo4j.org
>> https://lists.neo4j.org/mailman/listinfo/user
> ___
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user

___
Neo4j mailing list

Re: [Neo4j] Trying to use Neo4J with Atomikos transaction manager, issues with Lucene index

2011-10-08 Thread Thibaut Colar
Right, id is an implicit field ... works when not in transaction.
If i remove that test, then I fail on the later index.get.

As far as deleting the db, it's not in my test, but i removed the folder 
in y real code and manually before running the test.

On 10/8/11 11:10 AM, Rick Bullotta wrote:
> If I remember correctly, neo has an implicit field on each index, and the 
> name is either "id" or "_id".
>
> On Oct 8, 2011, at 1:58 PM, "Chris Gioran"  
> wrote:
>
>> Hi Thibaut,
>>
>> I noticed the following snippet in your test case code:
>>
>> long id = node.getId();
>> node.setProperty("testProp", "test");
>> index.add(node, "testProp", "test");
>>
>> Assert.assertEquals(node.getProperty("testProp"), "test");
>>
>> // Lookup By id
>> Assert.assertNotNull(graphDb.getNodeById(id));
>>
>> // Now via Index
>> Node found = index.get("id", id).getSingle();
>> Assert.assertNotNull(found);
>> Assert.assertEquals(found.getId(), id);
>>
>> which leads to the first test failure with a null result returned.
>> Here you are indexing a node with key "testProp" and value "test" but
>> you go on to ask it from the index with key "id" and value its id.
>> Since you haven't added that key/value pair in the index, rightfully
>> you don't get any results - the test fails in my setup even with the
>> native Neo4j transaction manager.
>>
>> I changed that to ask the node from the index with the proper
>> key/value pair and the test passes - the same thing happens a bit
>> further down where you ask the index for a node with a key/value of
>> "testProp"/"prop" (instead of "testProp"/"test"). Moreover, it passes
>> with both the native Transaction Manager and the Atomikos
>> implementation.
>>
>> Also, you are not deleting the db for the test - this means that since
>> you add to the index nodes with the same key/value the test will pass
>> only on the first run as getSingle() on the index hits will find the
>> previously added nodes and it will fail.
>>
>> Could you try that out and see if it solves your issues?
>>
>> I am glad that this functionality is being used in production - please
>> provide any feedback on any problems and what you think of this
>> feature.
>>
>> hope that helps,
>> CG
>>
>> On Thu, Oct 6, 2011 at 7:50 PM, tcolar  wrote:
>>> I've been trying to make this work for a few days but while it mostly works,
>>> the Lucene index just won't.
>>>
>>> We have a fairly complex setup including neo4j, mysql, mongo and JMS ad
>>> trying to do transactions accross all that with Atomikos.
>>>
>>> Since that is quite complex, I've made a smaller unit test just using
>>> Atomikos and Neo4j to demonstrate the issue:
>>>
>>> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j
>>>
>>> The main test is here:
>>> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/src/test/java/net/colar/atomikosNeo4j/AtomikosNeo4jTest.java
>>>
>>> and results:
>>> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/test.log
>>>
>>> I used
>>> http://digitalstain.blogspot.com/2010/11/using-jotm-as-transactionmanager-in.html
>>> to get me going.
>>>
>>> And my code for that part is here:
>>> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/src/main/java/net/colar/atomikosNeo4j
>>>
>>> I'm thinking that's probably where I'm doing something wrong maybe ?
>>>
>>> I'm probably not doing something right but i can't seem to find what's going
>>> on with Lucene.
>>>
>>> The test works if not using Atomikos but just plain Neo4j Transactions.
>>>
>>> Anybody as an idea what is wrong?
>>>
>>> Thanks.
>>>
>>> --
>>> View this message in context: 
>>> http://neo4j-community-discussions.438527.n3.nabble.com/Trying-to-use-Neo4J-with-Atomikos-transaction-manager-issues-with-Lucene-index-tp3400319p3400319.html
>>> Sent from the Neo4j Community Discussions mailing list archive at 
>>> Nabble.com.
>>> ___
>>> Neo4j mailing list
>>> User@lists.neo4j.org
>>> https://lists.neo4j.org/mailman/listinfo/user
>>>
>> ___
>> Neo4j mailing list
>> User@lists.neo4j.org
>> https://lists.neo4j.org/mailman/listinfo/user
> ___
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user

___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Trying to use Neo4J with Atomikos transaction manager, issues with Lucene index

2011-10-08 Thread Rick Bullotta
If I remember correctly, neo has an implicit field on each index, and the name 
is either "id" or "_id". 

On Oct 8, 2011, at 1:58 PM, "Chris Gioran"  
wrote:

> Hi Thibaut,
> 
> I noticed the following snippet in your test case code:
> 
>long id = node.getId();
>node.setProperty("testProp", "test");
>index.add(node, "testProp", "test");
> 
>Assert.assertEquals(node.getProperty("testProp"), "test");
> 
>// Lookup By id
>Assert.assertNotNull(graphDb.getNodeById(id));
> 
>// Now via Index
>Node found = index.get("id", id).getSingle();
>Assert.assertNotNull(found);
>Assert.assertEquals(found.getId(), id);
> 
> which leads to the first test failure with a null result returned.
> Here you are indexing a node with key "testProp" and value "test" but
> you go on to ask it from the index with key "id" and value its id.
> Since you haven't added that key/value pair in the index, rightfully
> you don't get any results - the test fails in my setup even with the
> native Neo4j transaction manager.
> 
> I changed that to ask the node from the index with the proper
> key/value pair and the test passes - the same thing happens a bit
> further down where you ask the index for a node with a key/value of
> "testProp"/"prop" (instead of "testProp"/"test"). Moreover, it passes
> with both the native Transaction Manager and the Atomikos
> implementation.
> 
> Also, you are not deleting the db for the test - this means that since
> you add to the index nodes with the same key/value the test will pass
> only on the first run as getSingle() on the index hits will find the
> previously added nodes and it will fail.
> 
> Could you try that out and see if it solves your issues?
> 
> I am glad that this functionality is being used in production - please
> provide any feedback on any problems and what you think of this
> feature.
> 
> hope that helps,
> CG
> 
> On Thu, Oct 6, 2011 at 7:50 PM, tcolar  wrote:
>> I've been trying to make this work for a few days but while it mostly works,
>> the Lucene index just won't.
>> 
>> We have a fairly complex setup including neo4j, mysql, mongo and JMS ad
>> trying to do transactions accross all that with Atomikos.
>> 
>> Since that is quite complex, I've made a smaller unit test just using
>> Atomikos and Neo4j to demonstrate the issue:
>> 
>> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j
>> 
>> The main test is here:
>> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/src/test/java/net/colar/atomikosNeo4j/AtomikosNeo4jTest.java
>> 
>> and results:
>> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/test.log
>> 
>> I used
>> http://digitalstain.blogspot.com/2010/11/using-jotm-as-transactionmanager-in.html
>> to get me going.
>> 
>> And my code for that part is here:
>> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/src/main/java/net/colar/atomikosNeo4j
>> 
>> I'm thinking that's probably where I'm doing something wrong maybe ?
>> 
>> I'm probably not doing something right but i can't seem to find what's going
>> on with Lucene.
>> 
>> The test works if not using Atomikos but just plain Neo4j Transactions.
>> 
>> Anybody as an idea what is wrong?
>> 
>> Thanks.
>> 
>> --
>> View this message in context: 
>> http://neo4j-community-discussions.438527.n3.nabble.com/Trying-to-use-Neo4J-with-Atomikos-transaction-manager-issues-with-Lucene-index-tp3400319p3400319.html
>> Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
>> ___
>> Neo4j mailing list
>> User@lists.neo4j.org
>> https://lists.neo4j.org/mailman/listinfo/user
>> 
> ___
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Trying to use Neo4J with Atomikos transaction manager, issues with Lucene index

2011-10-08 Thread Chris Gioran
Hi Thibaut,

I noticed the following snippet in your test case code:

long id = node.getId();
node.setProperty("testProp", "test");
index.add(node, "testProp", "test");

Assert.assertEquals(node.getProperty("testProp"), "test");

// Lookup By id
Assert.assertNotNull(graphDb.getNodeById(id));

// Now via Index
Node found = index.get("id", id).getSingle();
Assert.assertNotNull(found);
Assert.assertEquals(found.getId(), id);

which leads to the first test failure with a null result returned.
Here you are indexing a node with key "testProp" and value "test" but
you go on to ask it from the index with key "id" and value its id.
Since you haven't added that key/value pair in the index, rightfully
you don't get any results - the test fails in my setup even with the
native Neo4j transaction manager.

I changed that to ask the node from the index with the proper
key/value pair and the test passes - the same thing happens a bit
further down where you ask the index for a node with a key/value of
"testProp"/"prop" (instead of "testProp"/"test"). Moreover, it passes
with both the native Transaction Manager and the Atomikos
implementation.

Also, you are not deleting the db for the test - this means that since
you add to the index nodes with the same key/value the test will pass
only on the first run as getSingle() on the index hits will find the
previously added nodes and it will fail.

Could you try that out and see if it solves your issues?

I am glad that this functionality is being used in production - please
provide any feedback on any problems and what you think of this
feature.

hope that helps,
CG

On Thu, Oct 6, 2011 at 7:50 PM, tcolar  wrote:
> I've been trying to make this work for a few days but while it mostly works,
> the Lucene index just won't.
>
> We have a fairly complex setup including neo4j, mysql, mongo and JMS ad
> trying to do transactions accross all that with Atomikos.
>
> Since that is quite complex, I've made a smaller unit test just using
> Atomikos and Neo4j to demonstrate the issue:
>
> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j
>
> The main test is here:
> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/src/test/java/net/colar/atomikosNeo4j/AtomikosNeo4jTest.java
>
> and results:
> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/test.log
>
> I used
> http://digitalstain.blogspot.com/2010/11/using-jotm-as-transactionmanager-in.html
> to get me going.
>
> And my code for that part is here:
> https://bitbucket.org/tcolar/stuff/src/ddd17191e9a4/AtomikosNeo4j/src/main/java/net/colar/atomikosNeo4j
>
> I'm thinking that's probably where I'm doing something wrong maybe ?
>
> I'm probably not doing something right but i can't seem to find what's going
> on with Lucene.
>
> The test works if not using Atomikos but just plain Neo4j Transactions.
>
> Anybody as an idea what is wrong?
>
> Thanks.
>
> --
> View this message in context: 
> http://neo4j-community-discussions.438527.n3.nabble.com/Trying-to-use-Neo4J-with-Atomikos-transaction-manager-issues-with-Lucene-index-tp3400319p3400319.html
> Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
> ___
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Recommended way to deploy server software

2011-10-08 Thread doubleagent
When I download the package form the main page and run bin/neo4j start, does
that just wrap an embedded db, or is that intended to be an easy way to get
going with an actual server?

Would there be any drawback to just writing a script to pull that package,
untar it, change some configuration parameters, and start/stop the server
from there?

--
View this message in context: 
http://neo4j-community-discussions.438527.n3.nabble.com/Recommended-way-to-deploy-server-software-tp3399621p3405755.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Heroku and Spatial Info

2011-10-08 Thread Hesham
Thanks Peter, my use case is pretty simple, members can post articles that
are location tagged, other members can retrieve articles that are
geographically near to them.

It seems with the spatial plugin, this is satisfied.

--
View this message in context: 
http://neo4j-community-discussions.438527.n3.nabble.com/Heroku-and-Spatial-Info-tp3404384p3405023.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Heroku and Spatial Info

2011-10-08 Thread Peter Neubauer
Hi Hesham,
right now, only part of the full Java API is exposed to the REST API
as a server plugin, it should be ok for the usual point operations,
see https://github.com/neo4j/spatial/blob/master/features/start-and-stop.feature
for an example.

We are in the process of documenting Neo4j Spatial better for 0.7, it
would be interesting to know what kind of operations you would like to
have exposed and in what form? See
https://github.com/neo4j/spatial/blob/master/src/test/java/org/neo4j/gis/spatial/pipes/GeoPipesTest.java
for a fluent Geo-API that could be a candidate to exposed via REST and
something like the Groovy scripting a la Gremlin plugin, see
http://docs.neo4j.org/chunked/snapshot/gremlin-plugin.html

Would that make sense for you?

For the hosting part, Michael, could we provide the spatial plugin as an addon?

Cheers,

/peter neubauer

GTalk:      neubauer.peter
Skype       peter.neubauer
Phone       +46 704 106975
LinkedIn   http://www.linkedin.com/in/neubauer
Twitter      http://twitter.com/peterneubauer

http://www.neo4j.org               - Your high performance graph database.
http://startupbootcamp.org/    - Öresund - Innovation happens HERE.
http://www.thoughtmade.com - Scandinavia's coolest Bring-a-Thing party.



On Sat, Oct 8, 2011 at 1:21 AM, Hesham  wrote:
> I'm pretty new to Neo4j and I have a rails application that will probably use
> Neo4j. Some of the items in the DB are currently location-tagged so I can
> perform spatial calculation.
>
> Can this be done with the Heroku add-on? Better yet, can some one point me
> to documentation/example of query records with spatial info?
>
> --
> View this message in context: 
> http://neo4j-community-discussions.438527.n3.nabble.com/Heroku-and-Spatial-Info-tp3404384p3404384.html
> Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
> ___
> Neo4j mailing list
> User@lists.neo4j.org
> https://lists.neo4j.org/mailman/listinfo/user
>
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user