Search code examples
neo4jprocedures

Neo4j Procedure throwing error


I'm just starting to learn how to write procedures. My simple proof of concept still isn't passing muster when Neo4j starts up. Here is the code:

import java.util.ArrayList;
import java.util.stream.Stream;

import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.logging.Log;
import org.neo4j.procedure.Context;
import org.neo4j.procedure.Mode;
import org.neo4j.procedure.Procedure;

public class Procedures {

@Context
public GraphDatabaseService db;

@Context
public Log log;

@Procedure( name = "create_user", mode = Mode.WRITE )
public Stream<Create_user_response> create_user() {

    ArrayList<Create_user_response> myList = new ArrayList<>();

    Create_user_response res1 = new Create_user_response();
    res1.out = 1;
    myList.add(res1);

    Stream<Create_user_response> myStream = myList.stream();

    return myStream;        

}

}

Here's my Create_user_response class:

public class Create_user_response {
    public int out;
}

When Neo4j starts up it complains that my procedure needs to return a stream of records. I'm new to streams so I must be doing something wrong but just can't figure it out.

I appreciate any help. Thanks.


Solution

  • Turns out I had a bad dependency,

    <dependency>
        <groupId>org.neo4j.test</groupId>
        <artifactId>neo4j-harness</artifactId>
        <version>3.2.3</version>
        <scope>test</scope>
    </dependency>
    

    wasn't working. I found it in a tutorial and its in Maven, but for some reason I must not have been doing something correctly with it.