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

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

 IteratorRelationship 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


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 demi...@gmail.com 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.

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

  IteratorRelationship 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


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 jai...@estudiantes.uci.cu

 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 DijkstraCostType implements
 SingleSourceSingleSinkShortestPathCostType/
 ___
 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] 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 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] 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
rick.bullo...@thingworx.comwrote:

 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 rick.bullo...@thingworx.com

  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] 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 no...@thewordnerd.infowrote:

 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.impl.neo4j.Neo4jImport.performImport(neo4j.scala:54)

 at

 info.hermesnav.core.model.data.Import$$anonfun$start$1.apply$mcV$sp(data.scala:25)

 at 

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
rick.bullo...@thingworx.comwrote:

 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] 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] 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-0AGE
 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.NoSuchBeanDefinitionException:
 No matching bean of type