Re: [Neo4j] Spring Data Graph in an OSGi environment

2011-05-15 Thread Neale Upstone
  In OSGi, missing classes can be down to which bundles are visible to 
the bundle doing the scanning.  In this case, whatever is doing the 
classpath scanning cannot see the bundle exporting your domain package.

 From a number of years back, I remember having to use 
eclipse-registerbuddy to solve a classloader visibility issue.  I'm not 
sure what the standard approach to this became.  A quick search doesn't 
deliver anything definitive for bundle-buddypolicy, which I suspect is 
the standardised mechanism.



On 13/05/2011 15:10, Jean-Pierre Bergamin wrote:
> I just could resove some more issues.
> First of all I had to excplicitely add an Import-Package directive in
> the template.mf of our project for packages that are not recognized by
> bundlor (as the one for the missing Neo4jConfiguration):
>
> Import-Package:
>   org.springframework.data.graph.neo4j.config;version="[1.1.0, 1.2.0)",
>   org.springframework.data.repository.support;version="[1.0.0, 1.2.0)",
>   org.springframework.transaction.aspectj;version="[3.0, 3.1)"
>
> I also had to put Import-Pacakge statements for cglib packages to the
> spring data neo4j bundle.
>
> The next problem I'm facing is that graph repositories cannot be
> injected, because they seem not to be created by SDG:
>
> [2011-05-13 16:06:29.786] region-dm-0
> Application context creation failure for bundle
> 'com.example.neo4j.domain' version '0.0.1.BUILD-SNAPSHOT'.
> org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'serviceRepositoryImpl': Injection of
> autowired dependencies failed; nested exception is
> org.springframework.beans.factory.BeanCreationException: Could not
> autowire field: private com.example.neo4j.ServiceRepository
> com.example.neo4j.ServiceRepositoryImpl.serviceRepository; nested
> exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
> No matching bean of type [com.example.neo4j.ServiceRepository] found
> for dependency: expected at least 1 bean which qualifies as autowire
> candidate for this dependency. Dependency annotations:
> {@org.springframework.beans.factory.annotation.Autowired(required=true)}
>   at 
> org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285)
>   at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1074)
>   at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
>   at 
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
>   at 
> org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
>   at 
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
>   at 
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)
>   at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)
>   at 
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580)
>   at 
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
>   at 
> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$1600(AbstractDelegatedExecutionApplicationContext.java:69)
>   at 
> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:355)
>   at 
> org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
>   at 
> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)
>   at 
> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:132)
>   at 
> org.eclipse.virgo.kernel.agent.dm.ContextPropagatingTaskExecutor$2.run(ContextPropagatingTaskExecutor.java:95)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>   at java.lang.Thread.run(Thread.java:662)
> Caused by: org.springframework.beans.factory.BeanCreationException:
> Could not autowire field: private com.example.neo4j.ServiceRepository
> com.example.neo4j.ServiceRepositoryImpl.serviceRepository; nested
> exception is org.springframework.beans.factory.NoSuchBeanD

Re: [Neo4j] about Dijkstra

2011-05-15 Thread Jose Angel Inda Herrera
El 5/15/2011 7:30 AM, Peter Neubauer escribió:
> Jose,
> I believe this is the lines you are looking for? *
> https://github.com/neo4j/community/blob/master/graph-algo/src/main/java/org/neo4j/graphalgo/impl/shortestpath/Dijkstra.java#L272
> *
>
> 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 Sun, May 15, 2011 at 5:41 AM, Jose Angel Inda Herrera<
> jai...@estudiantes.uci.cu>  wrote:
>
>> El 15/05/11 07:04, Mattias Persson escribió:
>>> Is there a particular reason to use that implementation instead of the
>> one
>>> provided by GraphAlgoFactory?
>> the problem is I'm doing some tests and the implementation
>> GraphAlgoFactory can not find where is the comparison in the dijkstra to
>> select the lower edge. You know where I can find it in the
>> implementation GraphAlgoFactory,
>> thank mattias for all.
>> ___
>> 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
thanks you peter for your answer.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] [ANN] Neo4j 1.4.M02 "Kiruna Stol" - Chugging Along

2011-05-15 Thread Peter Neubauer
Rick,
very valid requests. We are not sure what issue tracking system to use at
the moment, that is why a lot of issues are kept in Google Docs right now.
Hope to sort that out very soon and open a much better channel (GITHub
issues is currently the favorite) so we can keep track of these.

Have saved you other suggestions on the composite indexes, so we can put it
in then.

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, May 14, 2011 at 1:17 PM, Rick Bullotta
wrote:

> I'd like to see if we can have a discussion about the Index Framework
> features I have proposed over the past couple of weeks to see if they can
> get into 1.4.  I haven't gotten any feedback from anyone, but I can't
> imagine I'm the only one interested in expanding the capabilities of
> indexing!
>
>
> 
> From: user-boun...@lists.neo4j.org [user-boun...@lists.neo4j.org] On
> Behalf Of Andreas Kollegger [andreas.kolleg...@neotechnology.com]
> Sent: Friday, May 13, 2011 2:03 PM
> To: Neo4j user discussions
> Subject: [Neo4j] [ANN] Neo4j 1.4.M02 "Kiruna Stol" - Chugging Along
>
> Hi peeps,
>
> Another two weeks have flown by since the first milestone of “Kiruna Stol”,
> so it’s time for a new milestone release. 1.4.M02 brings mostly performance
> improvements, in the form of dependency updates and internal changes, but
> also new indexing operations via the REST API.
>
> NOTICE: This version introduces a non backwards compatible upgrade in the
> format of the index store. Always backup your data and do not try out on
> production settings before testing.
>
> Lucene upgrade:
> The most prominent change is probably the upgrade of Lucene to version 3.1,
> allowing for significant speedups prominently in lookups, with index writes
> seeing some measurable benefit as well. Depending on your use case, you will
> notice up to twice as fast queries, reducing what was a prominent
> bottleneck.
>
> Note, again, that Lucene 3.1 introduces a store format that is backwards
> *incompatible* with 3.0.1, meaning that after you upgrade to M02 you will
> not be able to get your index data back with previous Neo4j versions.
>
> Additions to the REST API:
> The REST API so far has been left wanting regarding the available index
> operations. This milestone exposes all the Neo4j specific index operations
> users of the embedded version enjoy, enabling deletion of indexes, complete
> Lucene queries and setting of default keys for indexing operations.
>
> Append-only logical log
> Then there’s the new default implementation for how things are written to
> the logical logs. Instead of a memory mapped file there’s the append-only
> file backed by a buffer. This will reduce the bottleneck that is the logical
> log, mostly apparent in small transactions. We’ve measured a throughput
> improvement of up to 20 times. Whereas this is an improvement which will
> benefit any setup it will make its most exquisite appearance in the server
> and when working with the REST API.
>
> We would love to hear about your experiences with the new milestone. Since
> performance improvements are difficult to quantify given the multitude of
> use cases, your feedback will be even more useful than usual.
>
> Read more in the official blog announcement via DZone, and vote us up if
> you like it:
> http://www.dzone.com/links/neo4j_14m02_enhanced_indexability.html
>
> Cheers,
> Andreas
>
> ___
> 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] Out of memory with Neo4j Spatial

2011-05-15 Thread Peter Neubauer
Nolan,
Short heads-up: I could run the texas node imports on a bigger machine
without problems in around 15 minutes with a Xmx of 16G. However, in the way
creation phase the code is looking up all nodes for a given way. In the
batchinserter, since there are no caches involved that means going back to
storage all the time which is very slow. I am going to set up a
configuration to insert the data using the normal mode, and see how that
performs.

Texas.osm has 13M OSM nodes, 1.2M ways and a couple of relations btw. In the
model, that will be probably around 30M Neo4j nodes in the graph, so from a
dataset PoV this is not a big problem, but the way insert is taking the
time.

What JVM config have you been running when you go thte errors?

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, May 14, 2011 at 6:49 AM, Peter Neubauer <
peter.neuba...@neotechnology.com> wrote:

> Nolan,
> what memory settings are you running the code with, and do you have any
> neo4j.properties tuned somehwere?
>
>
> 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 Fri, May 13, 2011 at 8:25 AM, Nolan Darilek wrote:
>
>> I'm importing the dataset for Texas. My version is a few weeks old, but
>> you can find the newest here:
>>
>>
>> http://downloads.cloudmade.com/americas/northern_america/united_states/texas/texas.osm.bz2
>>
>> My import code, more or less, let me know if you need more
>> implementation details:
>>
>> class Neo4jImport(filename:String, layer:String = "map") extends Import {
>>
>>   val importer = new OSMImporter(layer)
>>
>>   private var processed = 0
>>
>>   def processedEntities = processed
>>
>>   private def ds = dataset.asInstanceOf[Neo4JDataSet]
>>   private def database = ds.database
>>
>>   class MyBatchInserter extends BatchInserterImpl(database.getStoreDir) {
>>
>> override def createNode(properties:JMap[String, Object]) = {
>>   processed += 1
>>   super.createNode(properties)
>> }
>>
>> override def createNode(id:Long, properties:JMap[String, Object]){
>>   super.createNode(id, properties)
>>   processed += 1
>> }
>>
>> override def createRelationship(n1:Long, n2:Long,
>> rt:RelationshipType, properties:JMap[String, Object]) = {
>>   processed += 1
>>   super.createRelationship(n1, n2, rt, properties)
>> }
>>
>>   }
>>
>>   def performImport() {
>> database.shutdown()
>> val batchInserter = new MyBatchInserter
>> importer.importFile(batchInserter, filename)
>> batchInserter.shutdown()
>> ds.init(true)
>> importer.reIndex(database, 1000)
>>   }
>>
>> }
>>
>> Console output:
>>
>> Fri May 13 10:22:20 CDT 2011: Saving node 6525309
>> (13713.904715468341 node/second)
>> Fri May 13 10:22:21 CDT 2011: Saving node 6539916
>> (13703.333682556313 node/second)
>> java.lang.OutOfMemoryError: Java heap space
>> Dumping heap to java_pid13506.hprof ...
>> Heap dump file created [1426787760 bytes in 30.001 secs]
>> scala.actors.Actor$$anon$1@764e2837: caught
>> java.lang.IllegalStateException: this writer hit an OutOfMemoryError;
>> cannot flush
>> java.lang.IllegalStateException: this writer hit an OutOfMemoryError;
>> cannot flush
>> at org.apache.lucene.index.IndexWriter.doFlush(IndexWriter.java:3307)
>> at org.apache.lucene.index.IndexWriter.flush(IndexWriter.java:3296)
>> at org.apache.lucene.index.IndexWriter.optimize(IndexWriter.java:2376)
>> at org.apache.lucene.index.IndexWriter.optimize(IndexWriter.java:2352)
>> at
>>
>> org.neo4j.index.impl.lucene.LuceneBatchInserterIndex.closeWriter(LuceneBatchInserterIndex.java:279)
>>
>> at
>>
>> org.neo4j.index.impl.lucene.LuceneBatchInserterIndex.shutdown(LuceneBatchInserterIndex.java:354)
>>
>> at
>>
>> org.neo4j.index.impl.lucene.LuceneBatchInserterIndexProvider.shutdown(LuceneBatchInserterIndexProvider.java:145)
>>
>> at
>>
>> org.neo4j.gis.spatial.osm.OSMImporter$OSMBatchWriter.finish(OSMImporter.java:1144)
>>
>> at
>> org.neo4j.gis.spatial.osm.OSMImporter.importFile(OSMImporter.java:1320)
>> at
>> org.neo4j.gis.spatial.osm.OSMImporter.importFile(OSMImporter.java:1219)
>> at
>> org.neo4j.gis.spatial.osm.OSMImporter.importFile(OSMImporter.java:1215)
>> at
>>
>> info.hermesnav.core.model.data.

Re: [Neo4j] Index Framework - Query Question

2011-05-15 Thread Peter Neubauer
Rick,
hacking in Sweden on indexing would be a very cool option. Need to
coordinate that but let me know how we can do it best! Meanwhile, we are
deciding on an issue tracking system better than Trac. Until then, I will
add this to our Google Spreadsheet so we don't loose your suggestions here!

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 Thu, May 12, 2011 at 5:20 PM, Rick Bullotta
wrote:

> Hi, Mattias.
>
> I'll definitely give it a try.
>
> Ultimately, I'd like to achieve the following scenario (and maybe you can
> give us some guidance on how to implement it):
>
> As a use case: we want to index the node associated with a "collaboration
> entry" (that has a timestamp, tag(s), location, textual content, and
> potentially some numeric values as properties) on a combination of what is
> currently many different types of indexes in Neo - fulltext, timeline,
> spatial, and "plain" (key/value field(s)).We'd like to search/query on
> any combination of those elements.
>
> We've been considering a few options:
>
> - use relationships (that wouldn't meet our performance/concurrency
> requirements)
> - use the current index framework with separate indexes, query multiple
> times, and do the set comparison/intersection in our code
> - bypass Neo's indexing model altogether and go directly to Lucene, though
> we'd lose the transaction capabilities
> - hack the Neo code for the various Lucene index implementations and create
> our own "composite index" index type that supports fulltext fields,
> geospatial fields, simple data types (string, number, boolean), timeline,
> and multi-valued fields
>
> I like option #4, but we'd definitely need some help and input to build it
> in a way that wasn't too fragile from version to version of Neo.  I think it
> is a capability that would be broadly useful for a lot of Neo users, though,
> and would fit nicely with some of the work Anders is doing in a Neo query
> language/syntax.
>
> I do think the ability to have more control at the "field" level could lead
> to some cool capabilities and significant optimizations both in storage and
> retrieval.  I also think you've managed to work around the transactioning
> issues, so it would be foolish to re-invent the wheel there.  The basic idea
> would be a composite index that perhaps had a new "add" method which
> accepted a Field definition instead of just a simple string field name.  The
> Lucene index implementation could leverage this to exploit a lot of the
> power of Lucene to meet the overall goal of a very flexible indexing/query
> subsystem for Neo4J.  Additionally, the Field definition for full-text
> fields could have an analyzer associated with it, rather than an Analyzer at
> the index level only.
>
> If you would be up for it, maybe we come over to Sweden for a couple days
> and hack #4 together, or we could do it "virtually"?
>
> Thoughts?
>
> Rick
>
> -Original Message-
> From: user-boun...@lists.neo4j.org [mailto:user-boun...@lists.neo4j.org]
> On Behalf Of Mattias Persson
> Sent: Thursday, May 12, 2011 3:55 AM
> To: Neo4j user discussions
> Subject: Re: [Neo4j] Index Framework - Query Question
>
> Could you perhaps create an index with a custom Analyzer which treats
> titles
> as fulltext and others as non-analyzed?
>
> 2011/5/11 Rick Bullotta 
>
> > Is there currently any way to have a composite index consisting of
> fulltext
> > and non-analyzed (simple fields), and to query them in a single query
> > statement?  e.g. :  title:Reloaded AND year:1999
> >
> > In this case, I'd be using a Lucene Analyzer on the title, but indexing
> the
> > primitive types without using the analyzer/norms/etc...I know how to do
> it
> > with Lucene directly, but not clear if it can be done w/Neo4J.
> >
> > Thanks!
> >
> > Rick
> >
> > ___
> > 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.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] about Dijkstra

2011-05-15 Thread Peter Neubauer
Jose,
I believe this is the lines you are looking for? *
https://github.com/neo4j/community/blob/master/graph-algo/src/main/java/org/neo4j/graphalgo/impl/shortestpath/Dijkstra.java#L272
*

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 Sun, May 15, 2011 at 5:41 AM, Jose Angel Inda Herrera <
jai...@estudiantes.uci.cu> wrote:

> El 15/05/11 07:04, Mattias Persson escribió:
> > Is there a particular reason to use that implementation instead of the
> one
> > provided by GraphAlgoFactory?
> the problem is I'm doing some tests and the implementation
> GraphAlgoFactory can not find where is the comparison in the dijkstra to
> select the lower edge. You know where I can find it in the
> implementation GraphAlgoFactory,
> thank mattias for all.
> ___
> 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] about Dijkstra

2011-05-15 Thread Jose Angel Inda Herrera
El 15/05/11 07:04, Mattias Persson escribió:
> Is there a particular reason to use that implementation instead of the one
> provided by GraphAlgoFactory?
the problem is I'm doing some tests and the implementation 
GraphAlgoFactory can not find where is the comparison in the dijkstra to 
select the lower edge. You know where I can find it in the 
implementation GraphAlgoFactory,
thank mattias for all.
___
Neo4j mailing list
User@lists.neo4j.org
https://lists.neo4j.org/mailman/listinfo/user


Re: [Neo4j] about Dijkstra

2011-05-15 Thread Mattias Persson
Is there a particular reason to use that implementation instead of the one
provided by GraphAlgoFactory?

2011/5/15 Jose Angel Inda Herrera 

> El 14/05/11 18:48, Saikat Kanjilal escribió:
> > Hi Jose,
> > See the following:
> >
> > https://github.com/neo4j-examples/java-dijkstra
> >
> > Andreas has done a great job in showing the use of this algorithm through
> examples, is this what you need?  I used this t get my POC off the ground.
> >
> > Regards
> >
> >> Date: Sat, 14 May 2011 17:32:21 -0700
> >> From: jai...@estudiantes.uci.cu
> >> To: user@lists.neo4j.org
> >> Subject: Re: [Neo4j] about Dijkstra
> >>
> >> Peter,
> >> thanks for replying but the Dijkstra algorithm to which I refer is that
> >> development by Patrik Larssonand need to know if anyone can help me find
> >> some example of it. is in the package impl
> >> cheers,
> >> jose
> >> El 5/14/2011 7:44 AM, Peter Neubauer escribió:
> >>> Hi Jose,
> >>> there is documentation at
> >>> http://docs.neo4j.org/chunked/snapshot/graph-algo-path-finding.html.
> Would
> >>> that help?
> >>>
> >>> 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, May 14, 2011 at 7:40 AM, Jose Angel Inda Herrera<
> >>> jai...@estudiantes.uci.cu>   wrote:
> >>>
>  hello list, a greeting to all,
>  I'm trying to use the class Dijkstra developed by Patrik Larsson and
> was
>  wondering if anyone had some example of how it works.
>  thanks beforehand
>  ___
>  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
>
>
> this is the package where the class dijkstra to which I refer. If anyone
> has documentation on this I would be very helpful
> *org.neo4j.graphalgo.impl.shortestpath;
>
> *this is the class
> /public class Dijkstra implements
> SingleSourceSingleSinkShortestPath/
> ___
> 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.neo4j.org/mailman/listinfo/user


Re: [Neo4j] Neo4J-Spatial Delete Note Exception

2011-05-15 Thread Peter Neubauer
Deniz,
could you fork Neo4j Spatial and add a failing test, so we can have a look
at it? Would be most appreciated. Maybe you can even fix it?

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 Sun, May 15, 2011 at 12:22 AM, Deniz Demir  wrote:

> I am trying to use neo4j-spatial, and wrote a simple test code just to add
> one node and then delete; however, delete operation causes an exception.
>
>IndexHits hits = names.get("name", "Deniz");
>
>Node n = hits.getSingle();
>
>System.out.println("node hit: " + n.getProperty("name"));
>
>
>
>Transaction tx = graph.beginTx();
>
>try {
>
>layer.delete(n.getId());
>
>tx.success();
>
>} finally {
>
>tx.finish();
>
>}
>
> It throws this exception:
>
> node hit: Deniz
>
> Exception in thread "main" java.lang.NullPointerException
>
> at org.neo4j.gis.spatial.RTreeIndex.adjustParentBoundingBox(
> RTreeIndex.java:613)
>
> at org.neo4j.gis.spatial.RTreeIndex.remove(RTreeIndex.java:131)
>
> at
> org.neo4j.gis.spatial.EditableLayerImpl.delete(EditableLayerImpl.java:74)
>
> at SimpleNeo4JExample.main(SimpleNeo4JExample.java:55)
>
>
> Looks like RTreeIndex.adjustParentBoundingBox() method expects parent node
> in any case but in my example there is parent because it is the only node
> in
> the layer:
>
> /**
>
>  * Fix an IndexNode bounding box after a child has been removed
>
>  * @param indexNode
>
>  */
>
> private void adjustParentBoundingBox(Node indexNode, RelationshipType
> relationshipType) {
>
> Envelope bbox = null;
>
>  Iterator iterator =
> indexNode.getRelationships(relationshipType,
> Direction.OUTGOING).iterator();
>
> while (iterator.hasNext()) {
>
> Node childNode = iterator.next().getEndNode();
>
> if (bbox == null) bbox = getLeafNodeEnvelope(childNode);
>
> else bbox.expandToInclude(getLeafNodeEnvelope(childNode));
>
> }
>
> indexNode.setProperty(PROP_BBOX, new double[] { bbox.getMinX(),
> bbox.getMinY(), bbox.getMaxX(), bbox.getMaxY() });
>
> }
>
>
> Any comments?
>
>
> Thanks,
>
> Deniz
> ___
> 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] Neo4J-Spatial Delete Note Exception

2011-05-15 Thread Deniz Demir
I am trying to use neo4j-spatial, and wrote a simple test code just to add
one node and then delete; however, delete operation causes an exception.

IndexHits hits = names.get("name", "Deniz");

Node n = hits.getSingle();

System.out.println("node hit: " + n.getProperty("name"));



Transaction tx = graph.beginTx();

try {

layer.delete(n.getId());

tx.success();

} finally {

tx.finish();

}

It throws this exception:

node hit: Deniz

Exception in thread "main" java.lang.NullPointerException

at org.neo4j.gis.spatial.RTreeIndex.adjustParentBoundingBox(
RTreeIndex.java:613)

at org.neo4j.gis.spatial.RTreeIndex.remove(RTreeIndex.java:131)

at org.neo4j.gis.spatial.EditableLayerImpl.delete(EditableLayerImpl.java:74)

at SimpleNeo4JExample.main(SimpleNeo4JExample.java:55)


Looks like RTreeIndex.adjustParentBoundingBox() method expects parent node
in any case but in my example there is parent because it is the only node in
the layer:

/**

 * Fix an IndexNode bounding box after a child has been removed

 * @param indexNode

 */

private void adjustParentBoundingBox(Node indexNode, RelationshipType
relationshipType) {

Envelope bbox = null;

 Iterator iterator =
indexNode.getRelationships(relationshipType, Direction.OUTGOING).iterator();

while (iterator.hasNext()) {

Node childNode = iterator.next().getEndNode();

if (bbox == null) bbox = getLeafNodeEnvelope(childNode);

else bbox.expandToInclude(getLeafNodeEnvelope(childNode));

}

indexNode.setProperty(PROP_BBOX, new double[] { bbox.getMinX(),
bbox.getMinY(), bbox.getMaxX(), bbox.getMaxY() });

}


Any comments?


Thanks,

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